1var e,a=Object.defineProperty,t=(e,t,s)=>((e,t,s)=>t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);import{d as s,w as o,o as l,c as n,r as i,_ as r,a as c,b as d,e as u,n as m,f as h,t as p,g,F as v,h as y,i as f,j as w,k as _,l as C,m as b,p as k,T as S,q as L,s as M,u as T,v as D,x as $,y as I,z as x,A as E,B as R,C as A,D as H,E as N}from"./chunks/ApiService-C243rzhF.js";function P(){const e="undefined"!=typeof window&&window.mspFrontend||{};return{base:(e.matchApiBase||"").replace(/\/+$/,""),rest:e.restUrl||"/wp-json/msp/v1/",lang:e.siteLang||"vi"}}function F(e,a,t,s){return`${e}/v1/${a}?${t}&lang=${encodeURIComponent(s)}`}function O(){const e="undefined"!=typeof window&&window.mspFrontend||{};return{base:(e.matchApiBase||"").replace(/\/+$/,""),lang:e.siteLang||"vi"}}async function U(e,a,t){const{base:s,rest:o,lang:l}=P();if(s)try{const t=await fetch(F(s,e,a,l));if(t.ok)return await t.json()}catch(i){}const n=await fetch(`${o}${t}`);return await n.json()}function z(e){return Array.isArray(e)?B(e):e&&Array.isArray(e.data)?B(e.data):e&&Array.isArray(e.matches)?e.matches:function(e){var a;if(!e||"object"!=typeof e)return[];const t=[];for(const s of Object.values(e))if(s&&s.rounds)for(const e of Object.values(s.rounds))Array.isArray(e.group_stages)&&0===e.group_stages.length?t.push(...e.fixtures||[]):e.group_stages&&"object"==typeof e.group_stages&&t.push(...(null==(a=e.group_stages.All)?void 0:a.fixtures)||[]);return t}(e)}function B(e){return e.length&&e[0]&&Array.isArray(e[0].matches)?e.flatMap(e=>(e.matches||[]).map(a=>a.competition?a:{...a,competition:e.competition})):e}function j(e){if(!Array.isArray(e))return[];const a={};e.forEach(e=>{var t,s,o;const l=(null==(t=e.competition)?void 0:t.uuid)||e.competition_uuid||"unknown";a[l]||(a[l]={competition:e.competition||{uuid:l,name:"Unknown Competition",logo:null},matches:[],is_hot:(null==(s=e.competition)?void 0:s.is_hot)||!1,is_featured:(null==(o=e.competition)?void 0:o.is_featured)||!1}),a[l].matches.push(e)});const t=Object.values(a);return t.sort((e,a)=>{var t,s;return((null==(t=e.competition)?void 0:t.sort)??999)-((null==(s=a.competition)?void 0:s.sort)??999)}),t}const V=class e{constructor(){this.priorityMap=new Map,this.lastFetchTime=0,this.fetchPromise=null}async fetchPriorities(){const e=this.getCachedPriorities();if(e)return s.log("CompetitionPriorityService","Using cached priorities",{entries:e.size,age_minutes:Math.round((Date.now()-this.lastFetchTime)/6e4)}),e;if(this.fetchPromise)return s.log("CompetitionPriorityService","Returning existing fetch promise"),this.fetchPromise;this.fetchPromise=this._doFetch();try{return await this.fetchPromise}finally{this.fetchPromise=null}}async _doFetch(){var e;try{s.log("CompetitionPriorityService","Fetching competition priorities from API");const a=await fetch("/wp-json/msp/v1/competitions/active",{method:"GET",headers:{"Content-Type":"application/json","X-WP-Nonce":(null==(e=window.mspFrontend)?void 0:e.nonce)||""}});if(!a.ok)throw new Error(`HTTP ${a.status}: ${a.statusText}`);const t=await a.json();if(!t.success||!t.data)return s.warn("CompetitionPriorityService","API returned no data",t),this.priorityMap;this.priorityMap.clear();const o=t.data;return o.forEach(e=>{const a=e.uuid||e.id;a&&this.priorityMap.set(a,{is_hot:Boolean(e.is_hot),is_featured:Boolean(e.is_featured),priority:e.priority||999,name:e.name})}),this.cachePriorities(),this.lastFetchTime=Date.now(),s.log("CompetitionPriorityService","Priorities fetched and cached",{total_competitions:o.length,hot_count:[...this.priorityMap.values()].filter(e=>e.is_hot).length,featured_count:[...this.priorityMap.values()].filter(e=>e.is_featured).length}),this.priorityMap}catch(a){return s.error("CompetitionPriorityService","Failed to fetch priorities",a),this.priorityMap}}getPriority(e){const a=this.priorityMap.get(e);return a||{is_hot:!1,is_featured:!1,priority:999}}hasLoaded(){return this.priorityMap.size>0||this.lastFetchTime>0}getPriorityMap(){return Object.fromEntries(this.priorityMap)}cachePriorities(){try{const a={timestamp:Date.now(),data:Object.fromEntries(this.priorityMap)};sessionStorage.setItem(e.CACHE_KEY,JSON.stringify(a))}catch(a){s.warn("CompetitionPriorityService","Cache storage failed",a.message)}}getCachedPriorities(){try{const a=sessionStorage.getItem(e.CACHE_KEY);if(!a)return null;const{timestamp:t,data:o}=JSON.parse(a);return Date.now()-t>e.CACHE_TTL_MS?(s.log("CompetitionPriorityService","Cache expired, will refetch"),null):(this.priorityMap=new Map(Object.entries(o)),this.lastFetchTime=t,this.priorityMap)}catch(a){return s.warn("CompetitionPriorityService","Cache read failed",a.message),null}}clearCache(){this.priorityMap.clear(),this.lastFetchTime=0;try{sessionStorage.removeItem(e.CACHE_KEY)}catch(a){}
1s.log("CompetitionPriorityService","Cache cleared")}destroy(){this.clearCache(),this.fetchPromise=null}};t(V,"CACHE_KEY","msp_competition_priorities"),t(V,"CACHE_TTL_MS",3e5);const q=new V;const G="msp_cache_",K=3e5,W=(e,a={})=>{const t=Object.keys(a).sort().map(e=>`${e}:${a[e]}`).join("|"),s=Math.floor(Date.now()/K);return`${G}${e}_${t}_${s}`},Z=()=>{try{const e=[];for(let t=0;t<sessionStorage.length;t++){const a=sessionStorage.key(t);a&&a.startsWith(G)&&e.push(a)}e.sort().reverse(),e.length>10&&e.slice(10).forEach(e=>{sessionStorage.removeItem(e)});const a=Date.now();e.slice(0,10).forEach(e=>{try{const t=sessionStorage.getItem(e);if(t){const s=JSON.parse(t);a-s.timestamp>K&&sessionStorage.removeItem(e)}}catch(t){sessionStorage.removeItem(e)}})}catch(e){s.warn("cacheManager","Cache cleanup failed:",e)}},Q=e=>{try{const a=sessionStorage.getItem(e);if(a){const t=JSON.parse(a);if(Date.now()-t.timestamp<K)return t.payload;sessionStorage.removeItem(e)}}catch(a){s.warn("cacheManager","Cache retrieval failed:",a);try{sessionStorage.removeItem(e)}catch(t){}}return null},Y=(e,a)=>{const t={payload:a,timestamp:Date.now()};try{Z(),sessionStorage.setItem(e,JSON.stringify(t))}catch(o){if(s.warn("cacheManager","Cache storage failed:",o),"QuotaExceededError"===o.name)try{Z(),sessionStorage.setItem(e,JSON.stringify(t))}catch(l){s.warn("cacheManager","Cache storage failed after cleanup:",l)}}};function X(e,a=null,t=null){const r=i({}),c=i({}),d=i({}),u=i({}),m=i([]),h=i(null),p=i(null),g=[],v=e=>{const a=e.match_time||e.timestamp||0;if("number"==typeof a)return a;if("string"==typeof a){const e=parseInt(a);if(!isNaN(e))return e}return 0},y=(e,a="priority",t={})=>e&&Array.isArray(e)?"time-asc"===a?(e=>e&&Array.isArray(e)?[...e].sort((e,a)=>v(e)-v(a)):e)(e):[...e].sort((e,a)=>{const s=e=>{const a=e.uuid,s=t[a];return(null==s?void 0:s.isFeatured)?5:(null==s?void 0:s.isHot)?4:e.is_featured||e.bals_is_featured?3.5:e.is_hot||e.bals_is_hot?3:1},o=s(e),l=s(a);return o!==l?l-o:v(e)-v(a)}):e,f=()=>(null==a?void 0:a.value)||"priority",w=()=>(null==t?void 0:t.value)||{},_=async(e,a=1,t=!1)=>{var o,l,n,i;if(e){if(!e.season_id)return s.error("useScheduleLeagueMatches","fetchLeagueSchedule: League missing season_id:",e),r.value={...r.value,[e.id]:[]},void(c.value={...c.value,[e.id]:!1});s.log("useScheduleLeagueMatches","fetchLeagueSchedule: Starting fetch for league:",{league_id:e.id,league_name:e.name,season_id:e.season_id,page:a,append:t,status:"upcoming"});try{t?d.value={...d.value,[e.id]:!0}:(c.value={...c.value,[e.id]:!0},u.value={...u.value,[e.id]:null});let p,v=null,_="";if(!t&&1===a&&(_=W("schedule_league",{season_id:e.season_id,league_id:e.id,status:"upcoming",api_type:"msp"}),v=Q(_),v)){s.log("useScheduleLeagueMatches","Using cached data (sessionStorage)",{season_id:e.season_id,cache_age_minutes:Math.round((Date.now()-v.timestamp)/6e4),entries:(null==(o=v.data)?void 0:o.length)||0}),r.value={...r.value,[e.id]:y(v.data||[],f(),w())},v.pagination&&(u.value={...u.value,[e.id]:v.pagination}),c.value={...c.value,[e.id]:!1};const a=setTimeout(()=>C(e,!0),200);return void g.push(a)}try{const t=`uuid=${encodeURIComponent(e.season_id)}`,s=`fixtures/results?season_id=${encodeURIComponent(e.season_id)}&status=upcoming&per_page=1000&page=1`,o=z(await U("league-fixtures",t,s)).filter(e=>1===parseInt(e.status,10)),l=30,n=o.length,i=Math.max(1,Math.ceil(n/l)),r=(a-1)*l;p={success:!0,data:o.slice(r,r+l),total:n,pagination:{current_page:a,per_page:l,total_items:n,total_pages:i,has_more:a<i}}}catch(m){throw new Error((null==m?void 0:m.message)||"API request failed")}if(s.log("useScheduleLeagueMatches","League Schedule API Response:",{league_id:e.id,league_name:e.name,season_id:e.season_id,data_length:(null==(l=p.data)?void 0:l.length)||0,pagination:p.pagination}),p.pagination)u.value={...u.value,[e.id]:p.pagination};else{const t=(null==(n=p.data)?void 0:n.length)||0,s=30,o=Math.max(1,Math.ceil(t/s));u.value={...u.value,[e.id]:{current_page:a,per_page:s,total_items:t,total_pages:o,has_more:t===s&&a<o}}}if(t&&a>1&&r.value[e.id]){const a=p.data||[];r.value={...r.value,[e.id]:y([...r.value[e.id],...a],f(),w())},a.length<((null==(i=p.pagination)?void 0:i.per_page)||30)&&u.value[e.id]&&(u.value={...u.value,[e.id]:{...u.value[e.id],has_more:!1}})}else{const t=p.data||[];if(r.value={...r.value,[e.id]:y(t,f(),w())},s.log("useScheduleLeagueMatches","League Schedule Data Storage:",{league_id:e.id,stored_data_length:r.value[e.id].length,storage_key_used:e.id,data_stored_successfully:!!r.value[e.id],sort_mode:f()}),1===a&&_)try{Y(_,{data:t,pagination:p.pagination,timestamp:Date.now()}),s.log("useScheduleLeagueMatches","Cached to sessionStorage",{season_id:e.season_id,entries:(null==t?void 0:t.length)||0})}catch(h){s.warn("useScheduleLeagueMatches","Cache storage failed (non-critical)",h.message)}}b(r.value[e.id])}catch(v){t||(r.value={...r.value,[e.id]:[]}),p.value=v.message}finally{c.value={...c.value,[e.id]:!1},d.value={...d.value,[e.id]:!1}}}else s.error("useScheduleLeagueMatches","fetchLeagueSchedule: No league provided")},C=async(e,a=!1)=>{try{a||(c.value={...c.value,[e.id]:!0});const o=`uuid=${encodeURIComponent(e.season_id)}`,l=`fixtures/results?season_id=${encodeURIComponent(e.season_id)}&status=upcoming&per_page=1000&page=1`,n=z(await U("league-fixtures",o,l)).filter(e=>
11===parseInt(e.status,10)),i=30,d=n.length,m=Math.max(1,Math.ceil(d/i)),h={current_page:1,per_page:i,total_items:d,total_pages:m,has_more:m>1};if(r.value={...r.value,[e.id]:y(n,f(),w())},u.value={...u.value,[e.id]:h},a){const a=W("schedule_league",{season_id:e.season_id,league_id:e.id,status:"upcoming",api_type:"msp"});try{Y(a,{data:n,pagination:h,timestamp:Date.now()}),s.log("useScheduleLeagueMatches","Background cache updated",{season_id:e.season_id})}catch(t){s.warn("useScheduleLeagueMatches","Background cache update failed (non-critical)",t.message)}}b(r.value[e.id])}catch(o){a||(p.value=o.message)}finally{a||(c.value={...c.value,[e.id]:!1})}},b=e=>{if(s.log("useScheduleLeagueMatches","generateAvailableRounds called with:",{matches_count:(null==e?void 0:e.length)||0}),!(null==e?void 0:e.length))return m.value=[],void(h.value=null);const a=new Map;e.forEach(e=>{if(e.round){const t=e.round,s=0===t.group_count?t.round_num:t.group_num;if(void 0!==s&&!a.has(s)){let e="";e=t.group_count>0&&t.round_count>0&&void 0!==t.group_num&&void 0!==t.round_num?`Group ${t.group_num} - Round ${t.round_num}`:t.group_count>0&&void 0!==t.group_num?`Group ${t.group_num}`:(t.round_count>0||0===t.group_count)&&void 0!==t.round_num?`Round ${t.round_num}`:t.name?t.name:`Round ${s}`,a.set(s,{group_num:s,name:e,order:t.order||s,group_count:t.group_count||0})}}});const t=Array.from(a.values()).sort((e,a)=>(e.order||e.group_num)-(a.order||a.group_num));m.value=t,t.length>0?null!==h.value&&t.find(e=>e.group_num===h.value)||(h.value=t[0].group_num):h.value=null},k=n(()=>e=>{const a=u.value[e];return!!a&&("boolean"==typeof a.has_more?a.has_more:!(!a.current_page||!a.total_pages)&&a.current_page<a.total_pages)}),S=n(()=>e=>d.value[e]||!1),L=n(()=>e=>c.value[e]||!1),M=n(()=>{var e;if(!m.value.length)return"No Rounds Available";const a=m.value.find(e=>e.group_num===h.value);return(null==a?void 0:a.name)||(null==(e=m.value[0])?void 0:e.name)||"No Rounds Available"});if(a&&o(a,e=>{const a=Object.keys(r.value);if(a.length>0){s.log("useScheduleLeagueMatches",`Sorting mode changed to: ${e}`);const t=w(),o={};a.forEach(a=>{const s=r.value[a];s&&s.length>0?o[a]=y(s,e,t):o[a]=s}),r.value=o,s.log("useScheduleLeagueMatches","Re-sorted all league data:",{mode:e,leagueCount:a.length})}}),t){const e=()=>Object.values(t.value||{}).filter(e=>(null==e?void 0:e.isFeatured)||(null==e?void 0:e.isHot)).length,a=()=>Object.entries(t.value||{}).map(([e,a])=>`${e}:${(null==a?void 0:a.isFeatured)?"F":""}${(null==a?void 0:a.isHot)?"H":""}`).sort().join("|");let l="";o(()=>({urlCount:Object.keys(t.value||{}).length,prioritySignature:a()}),(a,o)=>{const n=e();s.log("useScheduleLeagueMatches","GraphQL matchUrls updated",{urlCount:a.urlCount,priorityCount:n,hasLeagueData:Object.keys(r.value).length>0,signatureChanged:a.prioritySignature!==l});const i=a.prioritySignature!==l;if(Object.keys(r.value).length>0&&(i||a.urlCount!==((null==o?void 0:o.urlCount)||0))){const e=f();if("priority"===e){s.log("useScheduleLeagueMatches","Re-sorting with GraphQL priorities",{priorityCount:n,urlCount:a.urlCount,reason:i?"priority_change":"url_count_change"});const o=Object.keys(r.value),l={};o.forEach(a=>{const s=r.value[a];s&&s.length>0?l[a]=y(s,e,t.value):l[a]=s}),r.value=l}l=a.prioritySignature}},{deep:!0})}const T=()=>{r.value={},c.value={},d.value={},u.value={},m.value=[],h.value=null,p.value=null,g.forEach(clearTimeout),g.length=0};return l(()=>{T()}),{leagueData:r,loadingStates:c,loadMoreStates:d,paginationData:u,availableRounds:m,selectedRoundGroupNum:h,error:p,hasMore:k,isLoadingMore:S,isLoading:L,currentDropdownLabel:M,fetchLeagueSchedule:_,refreshLeagueSchedule:C,generateAvailableRounds:b,clearRoundState:()=>{s.log("useScheduleLeagueMatches","Clearing round state"),m.value=[],h.value=null},initializeLeague:e=>{c.value={...c.value,[e.id]:!1},d.value={...d.value,[e.id]:!1},u.value={...u.value,[e.id]:null},r.value[e.id]||(r.value={...r.value,[e.id]:[]})},loadMore:async e=>{if(!e||d.value[e.id])return;const a=u.value[e.id];if(!a)return void s.warn("useScheduleLeagueMatches","No pagination data available for league:",e.id);if(!(a.has_more||a.current_page&&a.total_pages&&a.current_page<a.total_pages))return void s.log("useScheduleLeagueMatches","N
1o more pages to load for league:",e.id);const t=a.current_page+1;s.log("useScheduleLeagueMatches","Loading more scheduled matches:",{league_id:e.id,league_name:e.name,current_page:a.current_page,next_page:t}),await _(e,t,!0)},getFilteredMatches:(e,a=null)=>{const t=r.value[e];return(null==t?void 0:t.length)?null===a||0===m.value.length?t:t.filter(e=>{const t=e.round;if(!t)return!1;return(0===t.group_count?t.round_num:t.group_num)===a}):[]},getNoDataMessage:e=>e?`Không tìm thấy tráºn Äấu sắp diá»
n ra cho ${e.name}.\n\nÄiá»u nà y có thá» do:\n⢠Mùa giải Äã kết thúc\n⢠Hiá»n không có tráºn Äấu nà o ÄÆ°á»£c lên lá»ch\n⢠Tất cả tráºn Äấu Äã ÄÆ°á»£c thi Äấu\n\nHãy quay lại sau hoặc thá» má»t giải Äấu khác.`:"Không tìm thấy tráºn Äấu sắp diá»
n ra. Vui lòng thá» lại sau hoặc liên há» há» trợ nếu vấn Äá» vẫn tiếp diá»
n.",getNextKickoffTime:e=>{const a=r.value[e];if(!(null==a?void 0:a.length))return null;let t=null;const s=Date.now();return a.forEach(e=>{const a=1e3*e.match_time;a>s&&(!t||a<t)&&(t=a)}),t},clear:T}}const J=(null==(e=window.mspFrontend)?void 0:e.graphqlUrl)||"/graphql";const ee=new class{constructor(){this.cache=new Map,this.pendingRequests=new Map,this.cacheExpiry=864e5}async fetchMatchUrls(e){if(!Array.isArray(e)||0===e.length)return{};const a=[...new Set(e.filter(Boolean))];if(0===a.length)return{};const t=a.filter(e=>!this.isCached(e)),o=this.getCachedResults(a.filter(e=>this.isCached(e)));if(0===t.length)return s.log("GraphQL","All match URLs served from cache",{count:a.length}),o;const l=this.chunkArray(t,200);try{let e={};for(const a of l){const t=a.sort().join(",");let s;if(this.pendingRequests.has(t))s=await this.pendingRequests.get(t);else{const e=this.executeQuery(a);this.pendingRequests.set(t,e);try{s=await e}finally{this.pendingRequests.delete(t)}}e={...e,...s}}return{...o,...e}}catch(n){return s.error("GraphQL","Batch fetch failed, trying REST fallback:",n),this.fallbackToRest(t).then(e=>({...o,...e}))}}async executeQuery(e){var a;const t=performance.now();try{const o=await fetch(J,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({query:"\n query GetMatchUrls($uuids: [String!]!) {\n matchUrlsByUuids(uuids: $uuids) {\n matchId\n postSlug\n matchUrl\n found\n isFeatured\n isHot\n }\n }\n ",variables:{uuids:e}})});if(!o.ok)throw new Error(`GraphQL request failed: ${o.status} ${o.statusText}`);const{data:l,errors:n}=await o.json(),i=null==n?void 0:n.some(e=>{var a,t;return(null==(a=e.message)?void 0:a.includes("Internal server error"))||(null==(t=e.message)?void 0:t.includes("internal error"))});if(n&&n.length>0&&(s.warn("GraphQL","Query returned errors:",n),i))throw new Error(`GraphQL server error: ${(null==(a=n[0])?void 0:a.message)||"Unknown error"}`);const r={},c=(null==l?void 0:l.matchUrlsByUuids)||[];
1c.forEach(e=>{const a={postSlug:e.postSlug,matchUrl:e.matchUrl,found:e.found,isFeatured:e.isFeatured||!1,isHot:e.isHot||!1};r[e.matchId]=a,this.setCached(e.matchId,a)}),e.forEach(e=>{if(!r[e]){const a={postSlug:null,matchUrl:null,found:!1,isFeatured:!1,isHot:!1};r[e]=a,this.setCached(e,a)}});const d=performance.now()-t;return s.log("GraphQL","Match URLs fetched",{requested:e.length,found:c.filter(e=>e.found).length,elapsed:`${d.toFixed(2)}ms`}),r}catch(o){throw s.error("GraphQL","Query execution failed:",o),o}}async fallbackToRest(e){var a;try{s.log("GraphQL","Using REST API fallback");const t=(null==(a=window.mspFrontend)?void 0:a.restUrl)||"/wp-json/msp/v1/",o=await fetch(t+"match-urls",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({match_ids:e})});if(!o.ok)throw new Error(`REST fallback failed: ${o.status}`);const l=(await o.json()).data||{},n={};return e.forEach(e=>{const a=l[e];n[e]=a?{postSlug:a.post_slug,matchUrl:a.match_url,found:!0,isFeatured:a.is_featured||!1,isHot:a.is_hot||!1}:{postSlug:null,matchUrl:null,found:!1,isFeatured:!1,isHot:!1},this.setCached(e,n[e])}),n}catch(t){s.error("GraphQL","REST fallback also failed:",t);const a={};return e.forEach(e=>{a[e]={postSlug:null,matchUrl:null,found:!1,isFeatured:!1,isHot:!1}}),a}}isCached(e){const a=this.cache.get(e);return!!a&&Date.now()-a.timestamp<this.cacheExpiry}getCachedResults(e){const a={};return e.forEach(e=>{const t=this.cache.get(e);t&&(a[e]=t.data)}),a}setCached(e,a){this.cache.set(e,{data:a,timestamp:Date.now()})}clearCache(){this.cache.clear(),s.log("GraphQL","Match URL cache cleared")}clearCacheForUuids(e){e.forEach(e=>this.cache.delete(e))}async getMatchUrl(e){var a;if(!e)return null;return(null==(a=(await this.fetchMatchUrls([e]))[e])?void 0:a.matchUrl)||null}chunkArray(e,a){const t=[];for(let s=0;s<e.length;s+=a)t.push(e.slice(s,s+a));return t}};function ae(e,a={}){const{autoFetch:t=!0,matchIdKey:r="uuid",debounceMs:c=100}=a,d=i({}),u=i(!1),m=i(null),h=i(0);let p=null;const g=async(a=null)=>{const t=(e=>{if(!e||!Array.isArray(e))return[];const a=[];return e.forEach(e=>{e.matches&&Array.isArray(e.matches)?e.matches.forEach(e=>{const t=e[r];t&&a.push(t)}):e[r]&&a.push(e[r])}),[...new Set(a.filter(Boolean))]})(a||((null==e?void 0:e.value)??e));if(0===t.length)return d.value={},{};try{u.value=!0,m.value=null,h.value++,s.log("useGraphQLMatchUrls","Fetching URLs for",t.length,"matches");const e=await ee.fetchMatchUrls(t);return d.value=e,s.log("useGraphQLMatchUrls","Fetch complete",{requested:t.length,found:Object.values(e).filter(e=>e.found).length}),e}catch(o){return s.error("useGraphQLMatchUrls","Fetch failed:",o),m.value=o.message||"Failed to fetch match URLs",{}}finally{u.value=!1}},v=n(()=>Object.keys(d.value).length>0),y=n(()=>Object.values(d.value).filter(e=>e.found).length),f=n(()=>u.value);if(t){const a=o(()=>(null==e?void 0:e.value)??e,e=>{p&&clearTimeout(p),p=setTimeout(()=>{e&&(!Array.isArray(e)||e.length>0)&&g(e)},c)},{immediate:!0,deep:!0});l(()=>{a(),p&&clearTimeout(p)})}return{matchUrls:d,loading:u,error:m,fetchCount:h,hasUrls:v,foundCount:y,isLoading:f,fetchMatchUrls:g,getMatchUrl:e=>{var a;return e&&(null==(a=d.value[e])?void 0:a.matchUrl)||null},getMatchUrlData:e=>e&&d.value[e]||null,hasMatchUrl:e=>{if(!e)return!1;const a=d.value[e];return!0===(null==a?void 0:a.found)&&Boolean(null==a?void 0:a.matchUrl)},refetch:()=>g(),clear:()=>{d.value={},m.value=null,u.value=!1},clearCacheAndRefetch:()=>(ee.clearCache(),g()),isMatchFeatured:e=>{var a;return!!e&&!0===(null==(a=d.value[e])?void 0:a.isFeatured)},isMatchHot:e=>{var a;return!!e&&!0===(null==(a=d.value[e])?void 0:a.isHot)},getMatchWpPriorityScore:e=>{if(!e)return 0;const a=d.value[e];return a?a.isFeatured?5:a.isHot?4:0:0}}}const te={class:"msp-results-navigation"},se={class:"msp-filter-tags-top"},oe={class:"msp-filter-tags__day"},le={class:"msp-mode-toggles"},ne={key:0,class:"msp-today-badge"},ie={key:0,class:"msp-date-strip"},re=["onClick","aria-label","aria-pressed"],ce={class:"msp-date-strip__day"},de={class:"msp-date-strip__num"},ue=["min","max"],me={class:"msp-sort-by"},he={class:"msp-sort-toggle-container"},pe=["data-pressed","title"],ge={class:"msp-sort-toggle-text"},ve={key:0,class:"msp-schedule-refresh-indicator"};const ye=r({name:"ScheduleNavigation",props:{mode:{type:String,required:!0,validator:e=>["today","league"].includes(e)},sortBy:{type:String,default:"time-asc"},selectedDate:{type:String,default:""},leagues:{type:Array,default:()=>[]},selectedLeagueId:{type:[String,Number],default:null},leagueMatchCounts:{type:Object,default:()=>({})},refreshInterval:{type:Number,default:0}},emits:["update:mode","update:sortBy","update:selectedLeagueId","today-cl
1ick","date-change","date-clear"],setup(e,{emit:a}){const t=i(e.selectedDate||""),s=i(null),r=i({isPressed:!1}),d=["CN","T2","T3","T4","T5","T6","T7"],u=n(()=>{const e=[],a=new Date;for(let t=1;t<=6;t++){const s=new Date(a);s.setDate(a.getDate()+t);const o=s.toISOString().split("T")[0];e.push({dateString:o,dayAbbrev:d[s.getDay()],dayNum:s.getDate()})}return e}),m=n(()=>e.selectedDate||""),h=n(()=>{if(!e.selectedDate)return!1;return!u.value.map(e=>e.dateString).includes(e.selectedDate)});o(()=>e.selectedDate,e=>{t.value=e||""},{immediate:!0});const p=n(()=>"time-asc"===e.sortBy),g=n(()=>"time-asc"===e.sortBy),v=n(()=>p.value?"Theo thá»i gian":"Mặc Äá»nh"),y=n(()=>v.value),f=n(()=>e.leagues.find(a=>a.id===e.selectedLeagueId));return c(()=>{console.log("[MSP NAVIGATION] ScheduleNavigation component mounted")}),l(()=>{r.value={isPressed:!1},console.log("[MSP NAVIGATION] ScheduleNavigation cleanup complete")}),{selectedDateString:t,selectedLeague:f,hiddenDateInput:s,handleTodayClick:()=>{a("today-click"),a("update:mode","today")},handleLeagueClick:()=>{a("update:mode","league")},handleDateStripClick:e=>{a("date-change",e.dateString)},handleCalendarOverflowClick:()=>{try{const e=s.value;if(!e)return;if(e.focus(),e.showPicker&&"function"==typeof e.showPicker)e.showPicker();else{const a=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(a)}}catch(e){console.warn("Failed to open date picker:",e),s.value&&s.value.focus()}},onHiddenDateChange:e=>{const t=e.target.value;t&&a("date-change",t)},dateStrip:u,activeDateString:m,isDateActive:e=>m.value===e,isCalendarDateSelected:h,getStripEndDate:()=>{const e=new Date;return e.setDate(e.getDate()+7),e.toISOString().split("T")[0]},isSortByCompetition:g,currentSortLabel:v,sortButtonLabel:y,toggleSort:()=>{console.log("[MSP NAVIGATION] toggleSort called");const e=p.value?"priority":"time-asc";var t;console.log("[MSP NAVIGATION] Toggling to:",e),t=e,console.log("[MSP NAVIGATION] Sort button clicked:",t),r.value.isPressed=!0,a("update:sortBy",t),setTimeout(()=>{r.value.isPressed=!1},100)},onSortComplete:()=>{console.log("[MSP Performance] Sort completed callback")},getTodayDate:()=>(new Date).toISOString().split("T")[0],getFutureMaxDate:()=>{const e=new Date;return e.setDate(e.getDate()+30),e.toISOString().split("T")[0]},formatRefreshTime:e=>{if(e<60)return`${e}s`;return`${Math.floor(e/60)}m`},updateSelectedDate:e=>{t.value=e},buttonState:r}}},[["render",function(e,a,t,s,o,l){var n,i;return f(),d("div",te,[u("div",se,[u("div",oe,[u("div",le,[u("div",{onClick:a[0]||(a[0]=(...e)=>s.handleTodayClick&&s.handleTodayClick(...e)),class:m(["msp-today msp-mode-toggle",{"msp-today-active":"today"===t.mode}])},[...a[5]||(a[5]=[u("svg",{class:"msp-today-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M12 2C13.1 2 14 2.9 14 4V6H10V4C10 2.9 10.9 2 12 2ZM21 9V7C21 5.9 20.1 5 19 5H17V7H19V9H5V7H7V5H5C3.9 5 3 5.9 3 7V9H21ZM3 11V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V11H3ZM7 13H9V15H7V13ZM11 13H13V15H11V13ZM15 13H17V15H15V13Z"})],-1),h(" Hôm nay ",-1)])],2),(null==(n=t.leagues)?void 0:n.length)>0?(f(),d("div",{key:0,onClick:a[1]||(a[1]=(...e)=>s.handleLeagueClick&&s.handleLeagueClick(...e)),class:m(["msp-league-toggle msp-mode-toggle",{"msp-league-toggle-active":"league"===t.mode}])},[a[6]||(a[6]=u("svg",{class:"msp-league-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M12 2L15.09 8.26L22 9L17 14.14L18.18 21L12 17.77L5.82 21L7 14.14L2 9L8.91 8.26L12 2Z"})],-1)),a[7]||(a[7]=h(" Leagues ",-1)),(null==(i=t.leagues)?void 0:i.length)>0?(f(),d("span",ne,p(t.leagues.length),1)):g("",!0)],2)):g("",!0)]),"today"===t.mode?(f(),d("div",ie,[(f(!0),d(v,null,y(s.dateStrip,e=>(f(),d("button",{key:e.dateString,onClick:a=>s.handleDateStripClick(e),class:m(["msp-date-strip__btn",{"msp-date-strip__btn--active":s.isDateActive(e.dateString)}]),"aria-label":`${e.dayAbbrev} ngà y ${e.dayNum}`,"aria-pressed":s.isDateActive(e.dateString),type:"button"},[u("span",ce,p(e.dayAbbrev),1),u("span",de,p(e.dayNum),1)],10,re))),128)),u("button",{onClick:a[2]||(a[2]=(...e)=>s.handleCalendarOverflowClick&&s.handleCalendarOverflowClick(...e)),class:m(["msp-date-strip__btn msp-date-strip__btn--calendar",{"msp-date-strip__btn--active":s.isCalendarDateSelected}]),"aria-label":"Chá»n ngà y khác",type:"button"},[...a[8]||(a[8]=[u("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"
1currentColor"},[u("path",{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"})],-1)])],2),u("input",{ref:"hiddenDateInput",type:"date",class:"msp-date-strip__hidden-input",onChange:a[3]||(a[3]=(...e)=>s.onHiddenDateChange&&s.onHiddenDateChange(...e)),min:s.getStripEndDate(),max:s.getFutureMaxDate(),tabindex:"-1","aria-hidden":"true"},null,40,ue)])):g("",!0)]),u("div",me,[a[10]||(a[10]=u("span",{class:"msp-title"},"Sắp xếp:",-1)),u("div",he,[u("button",{onClick:a[4]||(a[4]=(...e)=>s.toggleSort&&s.toggleSort(...e)),class:m(["msp-sort-toggle-button",{"msp-sort-toggle-active":s.isSortByCompetition}]),"data-pressed":s.buttonState.isPressed,title:s.currentSortLabel},[u("span",ge,p(s.currentSortLabel),1),a[9]||(a[9]=u("span",{class:"msp-sort-toggle-icon"},"â²â¼",-1))],10,pe)])])]),t.refreshInterval>0?(f(),d("div",ve,[a[11]||(a[11]=u("svg",{class:"refresh-icon",width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M12 2v6l4-4-4-4zm0 20v-6l-4 4 4 4zm10-10h-6l4-4-4-4h6v8zm-20 0h6l-4 4 4 4H2v-8z"})],-1)),u("span",null,"Auto-refresh: "+p(s.formatRefreshTime(t.refreshInterval)),1)])):g("",!0)])}],["__scopeId","data-v-16dead6b"]]),fe=["data-id"],we=["href"],_e={class:"kickoff-time"},Ce={class:"kickoff-date"},be={key:0},ke={key:1,class:"starting-soon-mobile"},Se={class:"league-name-mobile"},Le=["src","alt"],Me=["src","alt"],Te={key:0,class:"countdown-timer"},De={key:1,class:"match-status-scheduled"},$e={key:0,class:"msp-priority-badges"},Ie={key:1,class:"msp-priority-badges"},xe={class:"kickoff-time"},Ee={class:"kickoff-date"},Re={key:0},Ae={key:1,class:"starting-soon-mobile"},He={class:"league-name-mobile"},Ne=["src","alt"],Pe=["src","alt"],Fe={key:0,class:"countdown-timer"},Oe={key:1,class:"match-status-scheduled"},Ue={key:0,class:"msp-priority-badges"},ze={key:1,class:"msp-priority-badges"};const Be=r({name:"ScheduleMatchItem",props:{match:{type:Object,required:!0},viewMode:{type:String,default:"today",validator:e=>["today","league"].includes(e)},matchIndex:{type:Number,default:0}},emits:["click","score-click"],setup(e,{emit:a}){const t=_("getMatchUrl",()=>null);_("hasMatchUrl",()=>!1);const s=_("isMatchFeatured",()=>!1),o=_("isMatchHot",()=>!1),r=i(Date.now());let d=null;const u=n(()=>{const a=e.match.uuid||e.match.id;if(e.match.match_url)return`/${e.match.match_url}`;const s=t(a);return s?`/${s}`:(console.debug(`â ï¸ [ScheduleMatchItem] No URL for match ${a}`),null)}),m=n(()=>e.match.uuid||e.match.id),h=n(()=>s(m.value)),p=n(()=>o(m.value)),g=n(()=>h.value||p.value);c(()=>{"undefined"!=typeof window&&(window.testStartingSoon=a=>{e.match.uuid||e.match.id}),d=setInterval(()=>{r.value,r.value=Date.now()},6e4)}),l(()=>{d&&clearInterval(d),"undefined"!=typeof window&&window.testStartingSoon&&delete window.testStartingSoon});const v=n(()=>{if(!e.match.match_time)return console.log("[MSP Starting Soon Debug] No match_time - returning false"),!1;let a=e.match.match_time;a<1e10&&(a*=1e3);const t=a-r.value;return t>0&&t<=36e5}),y=n(()=>{if(!e.match.match_time)return!1;let a=e.match.match_time;a<1e10&&(a*=1e3);const t=a-r.value;return t>0&&t<=864e5}),f=n(()=>{if(!e.match.match_time)return"";let a=e.match.match_time;a<1e10&&(a*=1e3);const t=a-r.value;if(t<=0)return"";const s=Math.floor(t/36e5),o=Math.floor(t%36e5/6e4);return s>0?`in ${s}h ${o}m`:`in ${o}m`}),w="Asia/Ho_Chi_Minh",C=n(()=>"today"===e.viewMode?"msp-today":"msp-league"),b=n(()=>`${C.value}-match__item msp-match-scheduled`),k=n(()=>`${C.value}-match__item--wrap`),S=n(()=>`${C.value}-match__sm`),L=n(()=>`${C.value}-match__label`),M=n(()=>`${C.value}-match__label-item`),T=n(()=>`${C.value}-match__scores ${C.value}-match__teams`),D=n(()=>`${C.value}-match__team ${C.value}-match__team--home`),$=n(()=>`${C.value}-match__team ${C.value}-match__team--away`),I=n(()=>`${C.value}-match__team--logo`),x=n(()=>`${C.value}-match__team--name ${C.value}-match__team-home-name`),E=n(()=>`${C.value}-match__team--name ${C.value}-match__team-away-name`),R=n(()=>`${C.value}-scoreboard`),A=n(()=>"msp-vs-display"),H=n(()=>"msp-countdown-badge"),N=n(()=>`${C.value}-match__ht ${C.value}-d-none ${C.value}-d-lg-flex`),P=n(()=>`${C.value}-ht-btn`),F=n(()=>`${C.value}-match__priority ${C.value}-d-none ${C.value}-d-lg-flex`),O=n(()=>`${C.value}-match__corner ${C.value}-d-none ${C.value}-d-lg-flex`),U=n(()=>`${C.value}-match__kickoff-status ${C.value}-d-none ${C.value}-d-lg-flex`),z=n(()=>`${C.value}-match__kickoff-display`),B=n(()=>`${C.value}-match__status-section`),j=n(()=>`${C.value}-match__mobile-stats ${C.value}-d-lg-none`),V=n(()=>`${C.value}-mobile-stat`),q=n(()=>`${C.value}-mobile-stat-label`);return{currentTime:r,isStartingSoon:v,showCountdown:y,countdownText:f,matchUrl:u,matchI
1d:m,isFeatured:h,isHot:p,hasPriorityBadge:g,formatMatchTime:e=>{if(!e)return"";return new Date(1e3*e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:w})},formatMatchDate:e=>{if(!e)return"";const a=new Date(1e3*e),t=new Intl.DateTimeFormat("en-CA",{timeZone:w}),s=t.format(a),o=t.format(new Date),l=new Date;l.setDate(l.getDate()+1);const n=t.format(l);return s===o?"Today":s===n?"Tomorrow":a.toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:w})},sanitizeTeamName:(e,a)=>e&&e.name||a,truncateLeagueName:e=>e?e.length>12?e.substring(0,12)+"...":e:"",handleImageError:e=>{e.target.style.display="none"},handleClick:()=>{a("click",e.match)},handleScoreClick:t=>{t.stopPropagation(),a("score-click",e.match)},handleMatchLinkClick:()=>{a("click",e.match)},matchItemClass:b,matchWrapClass:k,matchSmClass:S,matchLabelClass:L,matchLabelItemClass:M,matchScoresClass:T,homeTeamClass:D,awayTeamClass:$,teamLogoClass:I,homeTeamNameClass:x,awayTeamNameClass:E,scoreboardClass:R,vsClass:A,countdownBadgeClass:H,htStatsClass:N,htBtnClass:P,priorityStatsClass:F,cornerStatsClass:O,kickoffStatusClass:U,kickoffDisplayClass:z,statusSectionClass:B,mobileStatsClass:j,mobileStatClass:V,mobileStatLabelClass:q}}},[["render",function(e,a,t,s,o,l){var n,i,r,c,h,v;return f(),d("div",{class:m(s.matchItemClass),"data-id":t.match.uuid||t.match.id},[s.matchUrl?(f(),d("a",{key:0,href:s.matchUrl,onClick:a[3]||(a[3]=(...e)=>s.handleMatchLinkClick&&s.handleMatchLinkClick(...e)),style:{"text-decoration":"none",color:"inherit",display:"block"}},[u("div",{class:m(s.matchWrapClass)},[u("div",{class:m(s.matchSmClass)},[u("div",{class:m(s.matchLabelClass)},[u("div",{class:m(s.matchLabelItemClass)},[u("span",_e,p(s.formatMatchTime(t.match.match_time)),1),u("span",Ce,p(s.formatMatchDate(t.match.match_time)),1)],2),t.match.round?(f(),d("div",{key:0,class:m(s.matchLabelItemClass)},"Round "+p(t.match.round.round_num),3)):g("",!0)],2),u("div",{class:m(s.mobileStatsClass)},[s.isFeatured?(f(),d("div",{key:0,class:m(s.mobileStatClass)},[...a[8]||(a[8]=[u("span",{class:"msp-priority-badge msp-badge-featured msp-priority-badge--icon-only"},[u("span",{class:"msp-priority-badge__icon"},"â
")],-1)])],2)):s.isHot?(f(),d("div",{key:1,class:m(s.mobileStatClass)},[...a[9]||(a[9]=[u("span",{class:"msp-priority-badge msp-badge-hot msp-priority-badge--icon-only"},[u("span",{class:"msp-priority-badge__icon"},"ð¥")],-1)])],2)):g("",!0),s.showCountdown||s.isStartingSoon?(f(),d("div",{key:2,class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[10]||(a[10]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor","stroke-width":"2",fill:"none"}),u("path",{d:"M8 4v4l3 3",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],2),s.showCountdown?(f(),d("span",be,p(s.countdownText),1)):s.isStartingSoon?(f(),d("span",ke,"XEM TRá»°C TIẾP")):g("",!0)],2)):g("",!0),"league"===t.viewMode&&(null==(n=t.match.competition)?void 0:n.name)?(f(),d("div",{key:3,class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[11]||(a[11]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("path",{d:"M8 1L10.5 6H15.5L11.75 9.5L13.25 14.5L8 11L2.75 14.5L4.25 9.5L0.5 6H5.5L8 1Z",fill:"#FFE400"})],-1)])],2),u("span",Se,p(s.truncateLeagueName(t.match.competition.name)),1)],2)):g("",!0)],2)],2),u("div",{class:m(s.matchScoresClass)},[u("div",{class:m(s.homeTeamClass)},[(null==(i=t.match.home_team)?void 0:i.logo)?(f(),d("img",{key:0,src:t.match.home_team.logo,alt:t.match.home_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[0]||(a[0]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Le)):g("",!0),u("div",{class:m(s.homeTeamNameClass)},p(s.sanitizeTeamName(t.match.home_team,"Home")),3)],2),u("div",{class:m(s.scoreboardClass)},[u("div",{class:m(s.vsClass),onClick:a[1]||(a[1]=w((...e)=>s.handleScoreClick&&s.handleScoreClick(...e),["stop"]))}," VS ",2)],2),u("div",{class:m(s.awayTeamClass)},[(null==(r=t.match.away_team)?void 0:r.logo)?(f(),d("img",{key:0,src:t.match.away_team.logo,alt:t.match.away_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[2]||(a[2]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Me)):g("",!0),u("div",{class:m(s.awayTeamNameClass)},p(s.sanitizeTeamName(t.match.away_team,"Away")),3)],2)],2),u("div",{class:m(s.htStatsClass)},[u("div",{class:m(s.htBtnClass)}
1,[s.showCountdown?(f(),d("div",Te,p(s.countdownText),1)):(f(),d("div",De," Scheduled "))],2)],2),u("div",{class:m(s.priorityStatsClass)},[s.isFeatured?(f(),d("div",$e,[...a[12]||(a[12]=[u("span",{class:"msp-priority-badge msp-badge-featured"},[u("span",{class:"msp-priority-badge__icon"},"â
"),u("span",null,"Ná»i báºt")],-1)])])):s.isHot?(f(),d("div",Ie,[...a[13]||(a[13]=[u("span",{class:"msp-priority-badge msp-badge-hot"},[u("span",{class:"msp-priority-badge__icon"},"ð¥"),u("span",null,"Hot")],-1)])])):g("",!0)],2),u("div",{class:m(s.cornerStatsClass)},[s.isStartingSoon?(f(),d("div",{key:0,class:m(s.countdownBadgeClass)},[...a[14]||(a[14]=[u("span",{class:"pulse-dot"},null,-1),u("span",null,"XEM TRá»°C TIẾP",-1)])],2)):g("",!0)],2)],2)],8,we)):(f(),d("div",{key:1,class:m(s.matchWrapClass),onClick:a[7]||(a[7]=(...e)=>s.handleClick&&s.handleClick(...e))},[u("div",{class:m(s.matchSmClass)},[u("div",{class:m(s.matchLabelClass)},[u("div",{class:m(s.matchLabelItemClass)},[u("span",xe,p(s.formatMatchTime(t.match.match_time)),1),u("span",Ee,p(s.formatMatchDate(t.match.match_time)),1)],2),t.match.round?(f(),d("div",{key:0,class:m(s.matchLabelItemClass)},"Round "+p(t.match.round.round_num),3)):g("",!0)],2),u("div",{class:m(s.mobileStatsClass)},[s.isFeatured?(f(),d("div",{key:0,class:m(s.mobileStatClass)},[...a[15]||(a[15]=[u("span",{class:"msp-priority-badge msp-badge-featured msp-priority-badge--icon-only"},[u("span",{class:"msp-priority-badge__icon"},"â
")],-1)])],2)):s.isHot?(f(),d("div",{key:1,class:m(s.mobileStatClass)},[...a[16]||(a[16]=[u("span",{class:"msp-priority-badge msp-badge-hot msp-priority-badge--icon-only"},[u("span",{class:"msp-priority-badge__icon"},"ð¥")],-1)])],2)):g("",!0),s.showCountdown||s.isStartingSoon?(f(),d("div",{key:2,class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[17]||(a[17]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor","stroke-width":"2",fill:"none"}),u("path",{d:"M8 4v4l3 3",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])],2),s.showCountdown?(f(),d("span",Re,p(s.countdownText),1)):s.isStartingSoon?(f(),d("span",Ae,"XEM TRá»°C TIẾP")):g("",!0)],2)):g("",!0),t.match.round?(f(),d("div",{key:3,class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},"R",2),u("span",null,p(t.match.round.round_num),1)],2)):g("",!0),"league"===t.viewMode&&(null==(c=t.match.competition)?void 0:c.name)?(f(),d("div",{key:4,class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[18]||(a[18]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("path",{d:"M8 1L10.5 6H15.5L11.75 9.5L13.25 14.5L8 11L2.75 14.5L4.25 9.5L0.5 6H5.5L8 1Z",fill:"#FFE400"})],-1)])],2),u("span",He,p(s.truncateLeagueName(t.match.competition.name)),1)],2)):g("",!0)],2)],2),u("div",{class:m(s.matchScoresClass)},[u("div",{class:m(s.homeTeamClass)},[(null==(h=t.match.home_team)?void 0:h.logo)?(f(),d("img",{key:0,src:t.match.home_team.logo,alt:t.match.home_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[4]||(a[4]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Ne)):g("",!0),u("div",{class:m(s.homeTeamNameClass)},p(s.sanitizeTeamName(t.match.home_team,"Home")),3)],2),u("div",{class:m(s.scoreboardClass)},[u("div",{class:m(s.vsClass),onClick:a[5]||(a[5]=w((...e)=>s.handleScoreClick&&s.handleScoreClick(...e),["stop"]))}," VS ",2)],2),u("div",{class:m(s.awayTeamClass)},[(null==(v=t.match.away_team)?void 0:v.logo)?(f(),d("img",{key:0,src:t.match.away_team.logo,alt:t.match.away_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[6]||(a[6]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Pe)):g("",!0),u("div",{class:m(s.awayTeamNameClass)},p(s.sanitizeTeamName(t.match.away_team,"Away")),3)],2)],2),u("div",{class:m(s.htStatsClass)},[u("div",{class:m(s.htBtnClass)},[s.showCountdown?(f(),d("div",Fe,p(s.countdownText),1)):(f(),d("div",Oe," Scheduled "))],2)],2),u("div",{class:m(s.priorityStatsClass)},[s.isFeatured?(f(),d("div",Ue,[...a[19]||(a[19]=[u("span",{class:"msp-priority-badge msp-badge-featured"},[u("span",{class:"msp-priority-badge__icon"},"â
"),u("span",null,"Ná»i báºt")],-1)])])):s.isHot?(f(),d("div",ze,[...a[20]||(a[20]=[u("span",{class:"msp-priority-badge msp-badge-hot"},[u("span",{class:"msp-priority-badge__icon"},"ð¥"),u("span",null,"Hot")],-1)])])):g("",!0)],2),u("div",{class:m(s.cornerStatsClass)},[s.isStartingSoon?(f(),d("div",{key:0,class:m(s.countdownBadgeClass)},[...a[21]||(a[21]=[u("span",{class:"pulse-dot"},null,-1),u("span",null,"XEM TRá»°C TIẾP",-1)])],2)):g("",!0)],2)],2))],10,fe)}]]),je=["aria-label"],Ve={class:"sr-only"},qe={class:"msp-results-loading-container"},Ge={class:"msp-results-skeleton"},Ke={class:"msp-matches-skeleton"};const We=r({name:"MatchScheduleSkeleton",props:{competitionCount:{type:Number,default:3,validator:e=>{const a=e>0&&e<=10;return a||console.warn(`[MatchScheduleSkeleton] competitionCount must be between 1 and 10, received: ${e}`),a}},matchesPerCompetition:{type:Number,default:3,validator:e=>{const a=e>0&&e<=20;return a||console.warn(`[MatchScheduleSkeleton] matchesPerCompetition must be between 1 and 20, received: ${e}`),a}},mode:{type:String,default:"today",validator:e=>{const a=["today","league"],t=a.includes(e);return t||console.warn(`[MatchScheduleSkeleton] mode must be one of ${a.join(", ")}, received: ${e}`),t}}}},[["render",function(e,a,t,s,o,l){return f(),d("div",{class:"msp-results-loading",role:"status","aria-busy":"true","aria-live":"polite","aria-label":`Äang tải lá»ch thi Äấu ${t.mode}`},[u("span",Ve,"Äang tải lá»ch thi Äấu "+p(t.mode)+", vui lòng chá»...",1),u("div",qe,[u("div",Ge,[(f(!0),d(v,null,y(t.competitionCount,e=>(f(),d("div",{key:`competition-skeleton-${e}`,class:"msp-competition-skeleton"},[a[1]||(a[1]=u("div",{class:"msp-competition-header-skeleton"},[u("div",{class:"msp-skeleton-placeholder msp-competition-logo-skeleton"}),u("div",{class:"msp-skeleton-placeholder msp-competition-name-skeleton"})],-1)),u("div",Ke,[(f(!0),d(v,null,y(t.matchesPerCompetition,t=>(f(),d("div",{key:`match-skeleton-${e}-${t}`,class:"msp-match-skeleton"},[...a[0]||(a[0]=[C('<div class="msp-skeleton-placeholder msp-match-time-skeleton" data-v-34c0db8c></div><div class="msp-skeleton-placeholder msp-team-skeleton" data-v-34c0db8c></div><div class="msp-skeleton-placeholder msp-score-skeleton" data-v-34c0db8c></div><div class="msp-skeleton-placeholder msp-team-skeleton" data-v-34c0db8c></div><div class="msp-skeleton-placeholder msp-stats-skeleton" data-v-34c0db8c></div>',5)])]))),128))])]))),128))])])],8,je)}],["__scopeId","data-v-34c0db8c"]]);function Ze(e){if(!e||"string"!=typeof e)return"";const a=document.createElement("div");return a.textContent=e,a.innerHTML}function Qe(e,a="Unknown Team"){return Ze((null==e?void 0:e.name)||a)}function Ye(e,a="Unknown Competition"){return Ze((null==e?void 0:e.name)||a)}const Xe={name:"TodaySchedule",components:{ScheduleMatchItem:Be,MatchScheduleSkeleton:We},props:{matches:{type:Array,default:()=>[]},isLoading:{type:Boolean,default:!1},error:{type:String,default:null},selectedDate:{type:String,default:""}},emits:["retry","match-click","score-click"],setup:e=>({isEmpty:n(()=>!(e.isLoading||e.matches&&0!==e.matches.length)),hasMatches:n(()=>e.matches&&e.matches.length>0),totalMatchCount:n(()=>e.matches.reduce((e,a)=>{var t;return e+((null==(t=a.matches)?void 0:t.length)||0)},0)),handleImageError:e=>{e.target.style.display="none"},getNoDataMessage:()=>{const a=e.selectedDate||(new Date).toLocaleDateString("vi-VN",{timeZone:"Asia/Ho_Chi_Minh"});return`Không tìm thấy tráºn Äấu ÄÆ°á»£c lên lá»ch cho ${e.selectedDate?`ngà y Äã chá»n (${a})`:`hôm nay (${a})`}. Äiá»u nà y có thá» do:\n⢠Không có tráºn Äấu nà o ÄÆ°á»£c lên lá»ch cho ngà y nà y\n⢠Tất cả tráºn Äấu Äã bắt Äầu\n⢠Hạn chế dữ liá»u từ API\n\nHãy thá» kiá»m tra ngà y khác hoặc chuyá»n sang chế Äá» Giải Äấu Äá» xem lá»ch thi Äấu.`},sanitizeCompetitionName:Ye})},Je={class:"msp-today-results"},ea={key:"error",class:"msp-error"},aa={class:"msp-error-message"},ta={key:"empty",class:"msp-no-data"},sa={class:"msp-no-data-message"},oa={key:"content",class:"msp-results-wrapper"},la={class:"msp-today-matches"},na={class:"msp-today-league_title"},ia={class:"msp-today-match_competition"},ra=["src","alt"],ca={class:"msp-truncate"};const da=r(Xe,[["render",function(e,a,t,s,o,l){const n=L("MatchScheduleSkeleton"),i=L("ScheduleMatchItem");return f(),d("div",Je,[b(S,{name:"skeleton-fade",mode:"out-in"},{default:k(()=>[t.isLoading&&!t.matches.length?(f(),M(n,{key:"skeleton","competition-count":3,"matches-per-compet
1ition":3,mode:"today"})):t.error?(f(),d("div",ea,[u("div",aa,p(t.error),1),u("button",{onClick:a[0]||(a[0]=a=>e.$emit("retry")),class:"msp-button msp-button-secondary"},"Retry")])):t.isLoading||t.matches&&0!==t.matches.length?t.matches&&t.matches.length>0?(f(),d("div",oa,[u("div",la,[(f(!0),d(v,null,y(t.matches,(t,o)=>{var l,n;return f(),d("div",{key:`competition-${o}`,class:"msp-today-competition-wrapper msp-today-competition-wrapper-antz"},[u("div",na,[u("div",ia,[(null==(l=t.competition)?void 0:l.logo)?(f(),d("img",{key:0,src:t.competition.logo,alt:null==(n=t.competition)?void 0:n.name,class:"msp-today-lazyload",onError:a[1]||(a[1]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,ra)):g("",!0),u("span",ca,p(s.sanitizeCompetitionName(t.competition,"Unknown Competition")),1)]),a[2]||(a[2]=u("div",{class:"msp-today-match__teams msp-today-d-none msp-today-d-lg-flex"},[u("div",{class:"msp-today-match__team msp-today-match__team--home"},"Chá»§ nhà "),u("div",{class:"msp-today-scoreboard"},"Tá»· sá»"),u("div",{class:"msp-today-match__team msp-today-match__team--away"},"Khách")],-1)),a[3]||(a[3]=u("div",{class:"msp-today-match__ht msp-today-d-none msp-today-d-lg-flex"},"Kick-off",-1)),a[4]||(a[4]=u("div",{class:"msp-today-match__corner msp-today-d-none msp-today-d-lg-flex"},"Status",-1))]),(f(!0),d(v,null,y(t.matches,(a,t)=>(f(),M(i,{key:`match-${a.uuid||a.id||t}`,match:a,"view-mode":"today","match-index":t,onClick:t=>e.$emit("match-click",a),onScoreClick:t=>e.$emit("score-click",a)},null,8,["match","match-index","onClick","onScoreClick"]))),128))])}),128))])])):g("",!0):(f(),d("div",ta,[u("div",sa,p(s.getNoDataMessage()),1)]))]),_:1})])}],["__scopeId","data-v-7328c0c8"]]),ua={name:"LeagueSchedule",components:{ScheduleMatchItem:Be,MatchScheduleSkeleton:We},props:{leagueConfigs:{type:Array,default:()=>[]},activeLeagueIndex:{type:Number,default:0},leagueData:{type:Object,default:()=>({})},leagueLoadingStates:{type:Object,default:()=>({})},matches:{type:Array,default:()=>[]},filteredMatches:{type:Array,default:()=>[]},isLoading:{type:Boolean,default:!1},isLoadingMore:{type:Boolean,default:!1},hasMore:{type:Boolean,default:!1},error:{type:String,default:null},availableRounds:{type:Array,default:()=>[]},selectedRoundGroupNum:{type:[Number,String,null],default:null},getNoDataMessage:{type:Function,required:!0},nextKickoffTime:{type:Number,default:null}},emits:["retry","match-click","score-click","load-more","round-change","league-change","tab-hover","tab-hover-end"],setup(e,{emit:a}){const t=i(!1),s=n(()=>!(e.isLoading||e.filteredMatches&&0!==e.filteredMatches.length)),l=n(()=>e.filteredMatches&&e.filteredMatches.length>0),r=n(()=>{var a;return(null==(a=e.filteredMatches)?void 0:a.length)||0}),c=n(()=>e.leagueConfigs.length?e.leagueConfigs[e.activeLeagueIndex]:null),d=n(()=>{var a,t;const s=c.value?e.leagueData[c.value.id]:null;return console.log("LeagueSchedule Display Debug:",{currentLeague:c.value,currentLeague_id:null==(a=c.value)?void 0:a.id,matches_available:!!s,matches_length:(null==s?void 0:s.length)||0,activeLeagueIndex:e.activeLeagueIndex,leagueConfigs_length:(null==(t=e.leagueConfigs)?void 0:t.length)||0}),s||[]}),u=n(()=>{if(!e.selectedRoundGroupNum)return"All Rounds";const a=e.availableRounds.find(a=>a.group_num===e.selectedRoundGroupNum);return a?a.name:"All Rounds"}),m=e=>{e.target.closest(".msp-dropdown-wrapper")||(t.value=!1)};o(()=>e.selectedRoundGroupNum,e=>{console.log("Schedule round changed to:",e),t.value=!1}),o(()=>e.activeLeagueIndex,()=>{t.value=!1});return o(t,e=>{e?document.addEventListener("click",m):document.removeEventListener("click",m)}),{dropdownOpen:t,isEmpty:s,hasMatches:l,totalMatchCount:r,currentLeague:c,currentMatches:d,currentDropdownLabel:u,retry:()=>{a("retry")},handleMatchClick:e=>{a("match-click",e),console.log("League schedule match clicked:",e)},handleScoreClick:e=>{a("score-click",e),console.log("League schedule score area clicked:",e)},handleLoadMore:()=>{a("load-more")},handleRoundChange:e=>{const t=e.target.value;a("round-change","null"===t?null:Number(t))},formatNextKickoff:e=>{if(!e)return"";const a=e-Date.now();if(a<=0)return"Starting now";const t=Math.floor(a/864e5),s=Math.floor(a%864e5/36e5),o=Math.floor(a%36e5/6e4);return t>0?`in ${t}d ${s}h`:s>0?`in ${s}h ${o}m`:`in ${o}m`},handleLeagueChange:e=>{a("league-change",e)},handleTabHover:(e,t)=>{a("tab-hover",e,t)},handleTabHoverEnd:(e,t)=>{a("tab-hover-end",e,t)},handleImageError:e=>{console.warn("League logo failed to load:",e.target.src),e.target.style.display="none"},toggleRoundDropdown:()=>{t.value=!t.value},selectRoundGroup:e=>{a("round-change",e),t.value=!1},getNoDataMessage:()=>"function"==typeof e.getNoDataMessage?e.getNoDataMessage():"Không tìm thấy lá»ch thi Äấu sắp tá»i cho giải Äấu nà y.",sanitizeText:Ze}}},ma={class:"msp-league-results"},ha={key:0,class:"msp-league-tabs-section"},pa={class:"msp-league-tabs-wrapper"},ga=["onClick","onMouseenter","onMouseleave","data-tab-index","data-league-id","disabled"],va=["src","alt"],ya={class:"msp-league-name"},fa={key:1,class:"msp-tab-spinner"},wa={key:1,class:"msp-tabs-container"},_a={class:"msp-dropdown-wrapper"},Ca=["aria-expanded"],ba={class:"msp-dropdown-label"},ka=["onClick","aria-selected"],Sa={key:"error",class:"msp-error"},La={class:"msp-error-message"},Ma={key:"empty",class:"msp-no-data"},Ta={class:"msp-no-data-message"},Da={key:"content",class:"msp-results-wrapper"},$a={class:"msp-league-matches"},Ia={class:"msp-league-competition-wrapper"},xa={class:"msp-league-league_title"},Ea={class:"msp-league-match_competition"},Ra=["src","alt"],Aa={class:"msp-league-match-list"},Ha={key:0,class:"msp-load-more-container"},Na={key:1,class:"msp-loading-more"},Pa={key:2,class:"msp-next-match-indicator"};const Fa=["data-mode"],Oa={class:"msp-results-header"},Ua={key:0,class:"msp-loading-indicator"},za={key:3,class:"refresh-countdown"};const Ba=r({name:"Schedule",components:{ScheduleNavigation:ye,TodaySchedule:da,LeagueSchedule:r(ua,[["render",function(e,a,t,s,o,l){var n,i;const r=L("MatchScheduleSkeleton"),c=L("ScheduleMatchItem");return f(),d("div",ma,[(null==(n=t.leagueConfigs)?void 0:n.length)>0?(f(),d("div",ha,[u("div",pa,[(f(!0),d(v,null,y(t.leagueConfigs,(e,o)=>(f(),d("button",{key:e.id,onClick:e=>s.handleLeagueChange(o),onMouseenter:a=>s.handleTabHover(e.id,o),onMouseleave:a=>s.handleTabHoverEnd(e.id,o),"data-tab-index":o,"data-league-id":e.id,class:m(["msp-league-tab",{"msp-league-tab-active":t.activeLeagueIndex===o},{"msp-league-tab-loading":t.leagueLoadingStates[e.id]}]),disabled:t.leagueLoadingStates[e.id]},[e.logo?(f(),d("img",{key:0,src:e.logo,alt:e.name,class:"msp-league-logo",onError:a[0]||(a[0]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,va)):g("",!0),u("span",ya,p(s.sanitizeText(e.name)),1),t.leagueLoadingStates[e.id]?(f(),d("div",fa)):g("",!0)],42,ga))),128))])])):g("",!0),(null==(i=t.availableRounds)?void 0:i.length)>1&&s.currentLeague?(f(),d("div",wa,[u("div",_a,[u("button",{onClick:a[1]||(a[1]=(...e)=>s.toggleRoundDropdown&&s.toggleRoundDropdown(...e)),class:"msp-dropdown-button","aria-expanded":s.dropdownOpen,"aria-haspopup":"true"},[u("span",ba,p(s.currentDropdownLabel),1),(f(),d("svg",{class:m(["msp-dropdown-icon",{"msp-dropdown-icon-open":s.dropdownOpen}]),width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"},[...a[5]||(a[5]=[u("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1)])],2))],8,Ca),b(S,{name:"msp-dropdown"},{default:k(()=>[s.dropdownOpen?(f(),d("div",{key:0,class:"msp-dropdown-menu",onClick:a[2]||(a[2]=w(()=>{},["stop"]))},[(f(!0),d(v,null,y(t.availableRounds,(e,a)=>(f(),d("button",{key:a,onClick:a=>s.selectRoundGroup(e.group_num),class:m(["msp-dropdown-item",{"msp-dropdown-item-active":t.selectedRoundGroupNum===e.group_num}]),"aria-selected":t.selectedRoundGroupNum===e.group_num},p(e.name),11,ka))),128))])):g("",!0)]),_:1})])])):g("",!0),b(S,{name:"skeleton-fade",mode:"out-in"},{default:k(()=>{var e,o;return[t.isLoading?(f(),M(r,{key:"skeleton","competition-count":2,"matches-per-compet
1ition":3,mode:"league"})):t.error?(f(),d("div",Sa,[u("div",La,p(t.error),1),u("button",{onClick:a[3]||(a[3]=(...e)=>s.retry&&s.retry(...e)),class:"msp-button msp-button-secondary"},"Retry")])):s.isEmpty?(f(),d("div",Ma,[u("div",Ta,[a[6]||(a[6]=u("h3",null,"No Upcoming Fixtures",-1)),u("p",null,p(s.getNoDataMessage()),1)])])):s.hasMatches?(f(),d("div",Da,[u("div",$a,[u("div",Ia,[u("div",xa,[u("div",Ea,[(null==(e=s.currentLeague)?void 0:e.logo)?(f(),d("img",{key:0,src:s.currentLeague.logo,alt:s.currentLeague.name,class:"msp-league-lazyload"},null,8,Ra)):g("",!0),u("span",null,p(s.sanitizeText((null==(o=s.currentLeague)?void 0:o.name)||"Schedule")),1)]),a[7]||(a[7]=u("div",{class:"msp-league-match__teams msp-league-d-none msp-league-d-lg-flex"},[u("div",{class:"msp-league-match__team msp-league-match__team--home msp-league-header-teams"},"Chá»§ nhà "),u("div",{class:"msp-league-scoreboard msp-league-header-vs"},"Tá»· sá»"),u("div",{class:"msp-league-match__team msp-league-match__team--away msp-league-header-away"},"Khách")],-1)),a[8]||(a[8]=u("div",{class:"msp-league-header-kickoff"},"Kick-off",-1)),a[9]||(a[9]=u("div",{class:"msp-league-header-status"},"Status",-1))]),u("div",Aa,[(f(!0),d(v,null,y(t.filteredMatches,e=>(f(),M(c,{key:e.uuid||e.id,match:e,"view-mode":"league",onClick:s.handleMatchClick,onScoreClick:s.handleScoreClick,class:"msp-league-match__item"},null,8,["match","onClick","onScoreClick"]))),128))])]),t.hasMore&&!t.isLoadingMore?(f(),d("div",Ha,[u("button",{onClick:a[4]||(a[4]=(...e)=>s.handleLoadMore&&s.handleLoadMore(...e)),class:"msp-button msp-button-primary"}," Xem thêm lá»ch thi Äấu ")])):g("",!0),t.isLoadingMore?(f(),d("div",Na,[...a[10]||(a[10]=[u("div",{class:"msp-loading-spinner-small"},null,-1),u("span",null,"Äang tải thêm lá»ch thi Äấu...",-1)])])):g("",!0)])])):g("",!0)]}),_:1}),t.nextKickoffTime&&s.hasMatches?(f(),d("div",Pa,[a[11]||(a[11]=u("svg",{class:"msp-clock-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[u("circle",{cx:"12",cy:"12",r:"10",fill:"none",stroke:"currentColor","stroke-width":"2"}),u("polyline",{points:"12 6 12 12 16 14",fill:"none",stroke:"currentColor","stroke-width":"2"})],-1)),u("span",null,"Next match: "+p(s.formatNextKickoff(t.nextKickoffTime)),1)])):g("",!0)])}],["__scopeId","data-v-6786dc42"]])},props:{limit:{type:[String,Number],default:100},todayMatchLimit:{type:[String,Number],default:100},initialLeague:{type:String,default:""},date:{type:String,default:""},sportType:{type:String,default:"football"},refreshInterval:{type:[String,Number],default:60},leagues:{type:Array,default:()=>[]},leagueSet:{type:String,default:""}},setup(e){const a=i("today"),t=i("priority"),r=i(""),d=i(null),u=i(null),m=i(0),h=i([]),p=i({}),g=i(parseInt(e.refreshInterval)||0),v=n(()=>g.value),y=i(0),f=i(null),w=i(null),_=i(null),C=i([{value:"priority",label:"Mặc Äá»nh"},{value:"time-asc",label:"Theo thá»i gian"}]),b=i([]),{matchUrls:k,getMatchUrl:S,hasMatchUrl:L,fetchMatchUrls:M,isMatchFeatured:T,isMatchHot:$,getMatchWpPriorityScore:I}=ae(b,{autoFetch:!1}),x=function(e,a,t=null){const r=i([]),c=i(!1),d=i(null),u=i(0),m=i([]),h=[],p=e=>{const a=e.match_time||e.timestamp||0;if("number"==typeof a)return a;if("string"==typeof a){const e=parseInt(a);if(!isNaN(e))return e}return 0},g=(e,a="priority",t={})=>{if(!e||!Array.isArray(e))return[];const o=e.map(e=>({...e,matches:Array.isArray(e.matches)?[...e.matches]:[]}));if("time-asc"===a)return o.forEach(e=>{e.matches.sort((e,a)=>p(e)-p(a))}),o.sort((e,a)=>(e.matches.length>0?p(e.matches[0]):1/0)-(a.matches.length>0?p(a.matches[0]):1/0));const l=e=>{const a=e.uuid,s=t[a];return(null==s?void 0:s.isFeatured)?5:(null==s?void 0:s.isHot)?4:e.is_featured||e.bals_is_featured?3.5:e.is_hot||e.bals_is_hot?3:e._competition_is_featured?2:e._competition_is_hot?1.5:1};o.forEach(e=>{e.matches.sort((e,a)=>{const t=l(e),s=l(a);return t!==s?s-t:p(e)-p(a)})}),o.forEach(e=>{var a,t;const s=e.matches.reduce((e,a)=>Math.max(e,l(a)),0);let o=0;const n=e.is_hot||(null==(a=e.competition)?void 0:a.is_hot);e.is_featured||(null==(t=e.competition)?void 0:t.is_featured)?o=1:n&&(o=.5),e._sortScore=s+o});const n=Object.values(t).filter(e=>(null==e?void 0:e.isFeatured)||(null==e?void 0:e.isHot)).length,i=o.filter(e=>{var a;return e.is_hot||(null==(a=e.competition)?void 0:a.is_hot)}),r=o.filter(e=>{var a;return e.is_featured||(null==(a=e.competition)?void 0:a.is_featured)});return s.log("useScheduleTodayMatches","Priority sorting applied:",{totalGroups:o.length,hotCompetitions:i.length,featuredCompetitions:r.length,wpPriorityMatches:n,topScores:o.slice(0,3).map(e=>{var a,t;return{name:null==(t=null==(a=e.competition)?void 0:a.name)?void 0:t.substring(0,20),score:e._sortScore}})}),o.sort((e,a)=>Math.abs(e._sortScore-a._sortScore)>.1?a._sortScore-e._sortScore:(e.matches.length>0?p(e.matches[0]):1/0)-(a.matches.length>0?p(a.matches[0]):1/0))},v=async(e=null)=>{try{c.value=!0,d.value=null;let n,i=null;try{await q.fetchPriorities(),i=q.getPriorityMap(),s.log("useScheduleTodayMatches","Competition priorities loaded",{count:Object.keys(i).length})}catch(o){s.warn("useScheduleTodayMatches","Failed to load competition priorities, using default sorting",o)}try{const a=e||(new Date).toISOString().split("T")[0],t=`date=${encodeURIComponent(a)}&sport_id=1&status=upcoming`,s=`matches/today-schedule?date=${encodeURIComponent(a)}`;let o=j(z(await U("match-list",t,s)));i&&Object.keys(i).length>0&&(o=o.map(e=>{var a,t,s;const o=null==(a=e.competition)?void 0:a.uuid,l=o?i[o]:null;return l?{...e,is_hot:l.is_hot||e.is_hot,is_featured:l.is_featured||e.is_featured,competition:{...e.competition,is_hot:l.is_hot||(null==(t=e.competition)?void 0:t.is_hot),is_featured:l.is_featured||(null==(s=e.competition)?void 0:s.is_featured)},matches:e.matches.map(e=>({...e,_competition_is_hot:l.is_hot,_competition_is_featured:l.is_featured}))}:e})),n={success:!0,data:o,total:o.reduce((e,a)=>{var t;return e+((null==(t=a.matches)?void 0:t.length)||0)},0),info:{}}}catch(l){throw new Error((null==l?void 0:l.message)||"Failed to fetch schedule")}if(!n.success)throw new Error(n.message||"Failed to fetch schedule");{m.value=n.data;const e=(null==t?void 0:t.value)||{};r.value=g(m.value,(null==a?void 0:a.value)||"priority",e),u.value=n.total}}catch(n){d.value=n.message,r.value=[],m.value=[],u.value=0}finally{c.value=!1}};if(a&&o(a,e=>{if(m.value&&m.value.length>0){s.log("useScheduleTodayMatches",`Sorting mode changed to: ${e}`);const a=(null==t?void 0:t.value)||{};r.value=g(m.value,e,a),s.log("useScheduleTodayMatches","Re-sorted data:",{mode:e,groupCount:r.value.length})}}),t){const e=()=>Object.values(t.value||{}).filter(e=>(null==e?void 0:e.isFeatured)||(null==e?void 0:e.isHot)).length,l=()=>Object.entries(t.value||{}).map(([e,a])=>`${e}:${(null==a?void 0:a.isFeatured)?"F":""}${(null==a?void 0:a.isHot)?"H":""}`).sort().join("|");let n="";o(()=>({urlCount:Object.keys(t.value||{}).length,prioritySignature:l()}),(o,l)=>{var i;const c=e();s.log("useScheduleTodayMatches","GraphQL matchUrls updated",{urlCount:o.urlCount,priorityCount:c,hasRawData:(null==(i=m.value)?void 0:i.length)>0,signatureChanged:o.prioritySignature!==n});const d=o.prioritySignature!==n;if(m.value&&m.value.length>0&&(d||o.urlCount!==((null==l?void 0:l.urlCount)||0))){const e=(null==a?void 0:a.value)||"priority";"priority"===e&&(s.log("useScheduleTodayMatches","Re-sorting with GraphQL priorities",{priorityCount:c,urlCount:o.urlCount,reason:d?"priority_change":"url_c
1ount_change"}),r.value=g(m.value,e,t.value)),n=o.prioritySignature}},{deep:!0})}const y=()=>{r.value=[],u.value=0,d.value=null,c.value=!1,h.forEach(clearTimeout),h.length=0};l(()=>{y()});const f=n(()=>r.value&&r.value.length>0),w=n(()=>!(c.value||r.value&&0!==r.value.length)),_=n(()=>c.value);return{matches:r,loading:c,error:d,matchCount:u,hasMatches:f,isEmpty:w,isLoading:_,fetchTodaySchedule:v,refreshTodaySchedule:async(e=!1,o=null)=>{s.log("useScheduleTodayMatches","Refreshing today schedule:",{background:e,customDate:o});try{e||(c.value=!0);let i,d=null;try{d=q.getPriorityMap()}catch(l){s.warn("useScheduleTodayMatches","Failed to get priorities for refresh",l)}try{const e=o||(new Date).toISOString().split("T")[0],a=`date=${encodeURIComponent(e)}&sport_id=1&status=upcoming`,t=`matches/today-schedule?date=${encodeURIComponent(e)}`;let s=j(z(await U("match-list",a,t)));d&&Object.keys(d).length>0&&(s=s.map(e=>{var a,t,s;const o=null==(a=e.competition)?void 0:a.uuid,l=o?d[o]:null;return l?{...e,is_hot:l.is_hot||e.is_hot,is_featured:l.is_featured||e.is_featured,competition:{...e.competition,is_hot:l.is_hot||(null==(t=e.competition)?void 0:t.is_hot),is_featured:l.is_featured||(null==(s=e.competition)?void 0:s.is_featured)},matches:e.matches.map(e=>({...e,_competition_is_hot:l.is_hot,_competition_is_featured:l.is_featured}))}:e})),i={success:!0,data:s,total:s.reduce((e,a)=>{var t;return e+((null==(t=a.matches)?void 0:t.length)||0)},0),info:{}}}catch(n){if(e)return;throw new Error((null==n?void 0:n.message)||"Failed to fetch schedule")}if(i.success){m.value=i.data;const e=(null==t?void 0:t.value)||{};r.value=g(m.value,(null==a?void 0:a.value)||"priority",e),u.value=i.total,s.log("useScheduleTodayMatches","Refresh completed successfully")}}catch(i){s.error("useScheduleTodayMatches","Refresh failed:",i),e||(d.value=i.message)}finally{e||(c.value=!1)}},retry:()=>{v()},clear:y,getNoDataMessage:(e="")=>{const a=e||(new Date).toLocaleDateString("vi-VN",{timeZone:"Asia/Ho_Chi_Minh"});return`Không tìm thấy tráºn Äấu sắp diá»
n ra cho ${e?`ngà y Äã chá»n (${a})`:`hôm nay (${a})`}. Äiá»u nà y có thá» do:\n⢠Không có tráºn Äấu nà o ÄÆ°á»£c lên lá»ch cho ngà y nà y\n⢠Tất cả tráºn Äấu Äã bắt Äầu hoặc kết thúc\n⢠Hạn chế dữ liá»u từ API\n\nHãy thá» kiá»m tra ngà y khác hoặc chuyá»n sang chế Äá» Giải Äấu Äá» xem lá»ch thi Äấu.`},getNextKickoffTime:()=>{let e=null;const a=Date.now();return r.value.forEach(t=>{(t.matches||[]).forEach(t=>{const s=1e3*t.match_time;s>a&&(!e||s<e)&&(e=s)})}),e}}}(0,t,k),E=X(0,t,k);D("getMatchUrl",S),D("hasMatchUrl",L),D("isMatchFeatured",T),D("isMatchHot",$),D("getMatchWpPriorityScore",I);const{matches:R,loading:A,error:H,fetchTodaySchedule:N,refreshTodaySchedule:P,getNoDataMessage:F,getNextKickoffTime:O,retry:B}=x,{leagueData:V,loadingStates:G,loadMoreStates:K,paginationData:W,availableRounds:Z,error:Q,fetchLeagueSchedule:Y,refreshLeagueSchedule:J,initializeLeague:ee,loadMore:te,getFilteredMatches:se,getNoDataMessage:oe,getNextKickoffTime:le}=E,ne=n(()=>!0),ie=n(()=>0===h.value.length?null:h.value[m.value]||h.value[0]),re=n(()=>ie.value&&V.value[ie.value.id]||[]),ce=n(()=>{var e;if(!ie.value)return[];const a=se(ie.value.id,u.value);return console.log("filteredLeagueMatches computed:",{selectedLeague:ie.value,league_id:null==(e=ie.value)?void 0:e.id,matches_length:(null==a?void 0:a.length)||0,selectedRoundGroupNum:u.value}),a||[]}),de=n(()=>ie.value&&G.value[ie.value.id]||!1),ue=n(()=>ie.value&&K.value[ie.value.id]||!1),me=n(()=>{if(!ie.value)return!1;const e=W.value[ie.value.id];return(null==e?void 0:e.has_more)||!1}),he=n(()=>"today"===a.value?O():ie.value?le(ie.value.id):null),pe=n(()=>"today"===a.value?A.value:!("league"!==a.value||!ie.value)&&de.value);return o(a,e=>{if("today"!==e||R.value.length){if("league"===e&&h.value.length>0){const e=h.value[m.value];!e||V.value[e.id]&&0!==V.value[e.id].length||(console.log("Mode switch to league: Fetching schedule for:",e.name),Y(e))}}else N(r.value)}),o(m,e=>{if(null!==e&&"league"===a.value&&h.value.length>0){const a=h.value[e];!a||V.value[a.id]&&0!==V.value[a.id].length||(console.log("activeLeagueIndex watch: Fetching schedule for league:",a.name),Y(a))}}),o(d,e=>{if(e&&"league"===a.value){const a=h.value.find(a=>a.id===e);!a||V.value[e]&&0!==V.value[e].length||(console.log("selectedLeagueId watch: Fetching schedule for league:",a.name),Y(a))}}),o(V,()=>{(()=>{const e={};h.value.forEach(a=>{const t=V.value[a.id];e[a.id]=(null==t?void 0:t.length)||0}),p.value=e})()},{deep:!0}),o([R,V],([e,a])=>{const t=[];e&&e.length>
10&&t.push(...e),a&&"object"==typeof a&&Object.values(a).forEach(e=>{e&&e.length>0&&t.push(...e)}),t.length>0&&(b.value=t,M(t))},{deep:!0}),c(async()=>{await(async()=>{try{if(e.leagues&&e.leagues.length>0)h.value=e.leagues;else{const a=e.leagueSet?`/wp-json/msp/v1/competitions/by-set/${e.leagueSet}`:"/wp-json/msp/v1/competitions/active",t=await fetch(a),s=await t.json();s.success&&s.data&&(h.value=s.data)}h.value.length>0&&(m.value=0,d.value=h.value[0].id),h.value.forEach(e=>{ee(e)})}catch(a){console.error("Failed to initialize leagues:",a)}})(),"today"===a.value?N(e.date):ie.value&&Y(ie.value),g.value>0&&(y.value=g.value,f.value=setInterval(()=>{"today"===a.value?P(!0,r.value):ie.value&&J(ie.value,!0),y.value=g.value},1e3*g.value),w.value=setInterval(()=>{y.value>0&&y.value--},1e3))}),l(()=>{f.value&&(clearInterval(f.value),f.value=null),w.value&&(clearInterval(w.value),w.value=null),x&&"function"==typeof x.clear&&x.clear(),E&&"function"==typeof E.clear&&E.clear(),console.log("Schedule component cleanup complete")}),{currentMode:a,sortBy:t,selectedDate:r,selectedLeagueId:d,selectedRoundGroupNum:u,activeLeagueIndex:m,leagues:h,leagueMatchCounts:p,refreshIntervalSeconds:v,countdown:y,sortOptions:C,scheduleNavigation:_,showNavigation:ne,selectedLeague:ie,currentLeagueMatches:re,filteredLeagueMatches:ce,isLeagueLoading:de,isLeagueLoadingMore:ue,hasMoreLeagueMatches:me,nextKickoffTime:he,isLoading:pe,todayMatches:R,todayLoading:A,todayError:H,leagueRounds:Z,leagueError:Q,handleTodayClick:()=>{r.value="",N()},handleDateChange:e=>{r.value=e,N(e)},handleDateClear:()=>{r.value="",N()},handleSortByUpdate:e=>{t.value=e,console.log("Sort updated to:",e)},handleMatchClick:e=>{console.log("Schedule match clicked:",e)},handleScoreClick:e=>{console.log("Schedule score clicked:",e)},handleLoadMore:()=>{ie.value&&te(ie.value)},handleRoundChange:e=>{u.value=e},handleLeagueChange:async e=>{var a;console.log("Schedule handleLeagueChange:",{oldIndex:m.value,newIndex:e,league:h.value[e]}),m.value=e,d.value=null==(a=h.value[e])?void 0:a.id,u.value=null;const t=h.value[e];!t||V.value[t.id]&&0!==V.value[t.id].length||(console.log("Fetching schedule for new league:",t.name),await Y(t))},handleTabHover:(e,a)=>{console.log("Tab hover:",{leagueId:e,tabIndex:a})},handleTabHoverEnd:(e,a)=>{console.log("Tab hover end:",{leagueId:e,tabIndex:a})},retryTodaySchedule:B,retryLeagueSchedule:()=>{ie.value&&Y(ie.value)},getNoDataMessageToday:F,getNoDataMessageLeague:oe}}},[["render",function(e,a,t,s,o,l){const n=L("ScheduleNavigation"),i=L("TodaySchedule"),r=L("LeagueSchedule");return f(),d("div",{class:"msp-results-container msp-schedule-container msp-theme-default","data-mode":s.currentMode},[u("div",Oa,[s.isLoading&&"single"===s.currentMode?(f(),d("div",Ua,"Äang tải...")):g("",!0)]),s.showNavigation?(f(),M(n,{key:0,ref:"scheduleNavigation",mode:s.currentMode,sortBy:s.sortBy,selectedLeagueId:s.selectedLeagueId,leagues:s.leagues,selectedDate:s.selectedDate,leagueMatchCounts:s.leagueMatchCounts,refreshInterval:s.refreshIntervalSeconds,sortOptions:s.sortOptions,"onUpdate:mode":a[0]||(a[0]=e=>s.currentMode=e),"onUpdate:sortBy":s.handleSortByUpdate,"onUpdate:selectedLeagueId":a[1]||(a[1]=e=>s.selectedLeagueId=e),onTodayClick:s.handleTodayClick,onDateChange:s.handleDateChange,onDateClear:s.handleDateClear},null,8,["mode","sortBy","selectedLeagueId","leagues","selectedDate","leagueMatchCounts","refreshInterval","sortOptions","onUpdate:sortBy","onTodayClick","onDateChange","onDateClear"])):g("",!0),"today"===s.currentMode?(f(),M(i,{key:1,matches:s.todayMatches,isLoading:s.todayLoading,error:s.todayError,selectedDate:s.selectedDate,onRetry:s.retryTodaySchedule,onMatchClick:s.handleMatchClick,onScoreClick:s.handleScoreClick},null,8,["matches","isLoading","error","selectedDate","onRetry","onMatchClick","onScoreClick"])):g("",!0),"league"===s.currentMode&&s.leagues.length>0?(f(),M(r,{key:2,leagueConfigs:s.leagues,activeLeagueIndex:s.activeLeagueIndex,leagueData:e.leagueData,leagueLoadingStates:e.loadingStates,matches:s.currentLeagueMatches,filteredMatches:s.filteredLeagueMatches,isLoading:s.isLeagueLoading,isLoadingMore:s.isLeagueLoadingMore,hasMore:s.hasMoreLeagueMatches,error:s.leagueError,availableRounds:s.leagueRounds,selectedRoundGroupNum:s.selectedRoundGroupNum,getNoDataMessage:s.getNoDataMessageLeague,nextKickoffTime:s.nextKickoffTime,onRetry:s.retryLeagueSchedule,onMatchClick:s.handleMatchClick,onScoreClick:s.handleScoreClick,onLoadMore:s.handleLoadMore,onRoundChange:s.handleRoundChange,onLeagueChange:s.handleLeagueChange,onTabHover:s.handleTabHover,onTabHoverEnd:s.handleTabHoverEnd},null,8,["leagueConfigs","activeLeagueIndex","leagueData","leagueLoadingStates","matches","filteredMatches","isLoading","isLoadingMore","hasMore","error","availableRounds","
1selectedRoundGroupNum","getNoDataMessage","nextKickoffTime","onRetry","onMatchClick","onScoreClick","onLoadMore","onRoundChange","onLeagueChange","onTabHover","onTabHoverEnd"])):g("",!0),t.refreshInterval>0&&s.countdown>0?(f(),d("div",za,[u("div",{class:"countdown-bar",style:T({width:s.countdown/t.refreshInterval*100+"%"})},null,4)])):g("",!0)],8,Fa)}]]);class ja{constructor(e=null){this.component=e,this.preloadQueue=new Map,this.pendingRequests=new Map,this.preloadCache=new Map,this.intersectionObserver=null,this.scrollObserver=null,this.lastScrollY=0,this.scrollDirection="down",this.connectionInfo=this.getConnectionInfo(),this.config={nextPageDelay:2e3,tabHoverDelay:500,scrollThreshold:.7,maxConcurrentPreloads:this.getMaxConcurrentPreloads(),maxMemoryUsage:52428800,preloadCacheTTL:6e5,preloadResultsTTL:3e5,priorities:{NEXT_PAGE:1,VISIBLE_TAB:2,HOVERED_TAB:3,SCROLL_TRIGGER:4,BACKGROUND:5}},this.metrics={preloadsStarted:0,preloadsCompleted:0,preloadsCancelled:0,cacheHits:0,instantResponses:0,bandwidthSaved:0},this.initializeObservers(),this.initializeNetworkMonitoring(),s.log("PreloadManager","Phase 3: Initialized",{connectionType:this.connectionInfo.type,maxConcurrent:this.config.maxConcurrentPreloads,adaptiveMode:this.isSlowConnection()})}getConnectionInfo(){const e=navigator.connection||navigator.mozConnection||navigator.webkitConnection;return{type:(null==e?void 0:e.effectiveType)||"unknown",downlink:(null==e?void 0:e.downlink)||null,rtt:(null==e?void 0:e.rtt)||null,saveData:(null==e?void 0:e.saveData)||!1}}getMaxConcurrentPreloads(){const e=this.getConnectionInfo();if(e.saveData)return 1;switch(e.type){case"slow-2g":case"2g":return 1;case"3g":return 2;case"4g":return 4;default:return 3}}isSlowConnection(){const e=this.connectionInfo;return e.saveData||["slow-2g","2g"].includes(e.type)||e.downlink&&e.downlink<1.5}initializeObservers(){this.intersectionObserver=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){const a=e.target,t=parseInt(a.dataset.tabIndex),s=a.dataset.leagueId;!isNaN(t)&&s&&this.scheduleTabPreload(s,t,this.config.priorities.VISIBLE_TAB)}})},{threshold:.5,rootMargin:"0px 50px"}),"undefined"!=typeof window&&this.initializeScrollObserver()}initializeScrollObserver(){let e;const a=()=>{clearTimeout(e),e=setTimeout(()=>{this.handleScrollTrigger()},150)};window.addEventListener("scroll",a,{passive:!0}),this.scrollHandler=a}handleScrollTrigger(){if(!this.component)return;const e=window.pageYOffset;if(this.scrollDirection=e>this.lastScrollY?"down":"up",this.lastScrollY=e,"down"!==this.scrollDirection)return;const a=document.documentElement.scrollHeight;(e+window.innerHeight)/a>=this.config.scrollThreshold&&this.triggerLoadMorePreload()}initializeNetworkMonitoring(){"connection"in navigator&&navigator.connection.addEventListener("change",()=>{this.connectionInfo=this.getConnectionInfo(),this.config.maxConcurrentPreloads=this.getMaxConcurrentPreloads(),s.log("PreloadManager","Connection changed",{type:this.connectionInfo.type,maxConcurrent:this.config.maxConcurrentPreloads}),this.isSlowConnection()&&this.cancelLowPriorityPreloads()})}observeTabElements(e){this.intersectionObserver&&e.forEach(e=>{"true"!==e.dataset.observed&&(this.intersectionObserver.observe(e),e.dataset.observed="true")})}scheduleNextPagePreload(e,a=1){if(!e||this.isSlowConnection())return;const t=a+1,o=`next_page_${e}_${t}`;this.preloadQueue.has(o)&&clearTimeout(this.preloadQueue.get(o).timeoutId);const l=setTimeout(()=>{this.executePreload({key:o,type:"league_page",leagueId:e,page:t,priority:this.config.priorities.NEXT_PAGE,reason:"next_page_prediction"})},this.config.nextPageDelay);this.preloadQueue.set(o,{type:"next_page",timeoutId:l,leagueId:e,page:t,scheduledAt:Date.now()}),s.log("PreloadManager","Next page preload scheduled",{leagueId:e,nextPage:t,delay:this.config.nextPageDelay})}scheduleTabPreload(e,a,t=this.config.priorities.BACKGROUND){var s,o,l;if(!e||this.isSlowConnection())return;const n=`tab_${e}_page_1`;if(this.preloadCache.has(n)||this.pendingRequests.has(n))return;if((null==(l=null==(o=null==(s=this.component)?void 0:s.currentLeague)?void 0:o.value)?void 0:l.id)===e)return;const i=t===this.config.priorities.HOVERED_TAB?this.config.tabHoverDelay:0,r=setTimeout(()=>{this.executePreload({key:n,type:"league_tab",leagueId:e,tabIndex:a,page:1,priority:t,reason:t===this.config.priorities.HOVERED_TAB?"tab_hover":"tab_visible"})},i);this.preloadQueue.set(n,{type:"tab",timeoutId:r,leagueId:e,tabIndex:a,priority:t,scheduledAt:Date.now()})}handleTabHover(e,a){e&&!this.isSlowConnection()&&this.scheduleTabPreload(e,a,this.config.priorities.HOVERED_TAB)}handleTabHoverEnd(e,a){const t=`tab_${e}_page_1`,s=this.preloadQueue.get(t);s&&s.priority===this.config.priorities.HOVERED_TAB&&(clearTimeout(s.timeoutId),this.preloadQueue.delete(t))}triggerLoadMorePreload(){var e,a,t;if(!(null==(a=null==(e=this.component)?void 0:e.currentLeague)?void 0:a.value))return;const s=this.component.currentLeague.value,o=null==(t=this.component.paginationData)?void 0:t[s.id];if(!o||!o.has_more)return;const l=o.current_page+1,n=`load_more_${s.id}_${l}`;this.pendingRequests.has(n)||this.preloadCache.has(n)||this.executePreload({key:n,type:"load_more",leagueId:s.id,page:l,priority:this.config.priorities.SCROLL_TRIGGER,reason:"scroll_trigger"})}async executePreload(e){var a,t,o,l;const{key:n,type:i,leagueId:r,page:c,priority:d,reason:u}=e;if(this.pendingRequests.size>=this.config.maxConcurrentPreloads)s.log("PreloadManager","Preload cancelled - concurrent limit reached",{key:n,reason:u});else{if(this.getCurrentMemoryUsage()>
1=this.config.maxMemoryUsage)return s.log("PreloadManager","Preload cancelled - memory limit reached",{key:n,reason:u}),void this.cleanupExpiredCache();try{this.metrics.preloadsStarted++;const e=null==(o=null==(t=null==(a=this.component)?void 0:a.leagueConfigs)?void 0:t.value)?void 0:o.find(e=>e.id===r);if(!e)return void s.warn("PreloadManager","League not found for preload",{leagueId:r,key:n});const m=performance.now();let h;if(this.pendingRequests.set(n,{startTime:m,type:i,priority:d,reason:u,abortController:new AbortController}),s.log("PreloadManager","Starting preload",{key:n,type:i,leagueId:r,page:c,priority:d,reason:u,pending:this.pendingRequests.size}),"league_page"!==i&&"league_tab"!==i&&"load_more"!==i||(h=await this.preloadLeagueData(e,c,this.pendingRequests.get(n).abortController)),h&&!(null==(l=this.pendingRequests.get(n))?void 0:l.abortController.signal.aborted)){this.preloadCache.set(n,{data:h,timestamp:Date.now(),ttl:this.config.preloadResultsTTL,type:i,leagueId:r,page:c}),this.metrics.preloadsCompleted++;const e=performance.now()-m;s.log("PreloadManager","Preload completed",{key:n,reason:u,duration:Math.round(e),cacheSize:this.preloadCache.size}),this.notifyPreloadComplete(n,i,h)}}catch(m){"AbortError"===m.name?(this.metrics.preloadsCancelled++,s.log("PreloadManager","Preload cancelled",{key:n,reason:u})):s.error("PreloadManager","Preload failed",{key:n,reason:u,error:m.message})}finally{this.pendingRequests.delete(n),this.preloadQueue.delete(n)}}}async preloadLeagueData(e,a,t){const{base:o}=O();if(!o)return null;if(!(null==e?void 0:e.season_id))return s.warn("PreloadManager","preloadLeagueData: league missing season_id",{leagueId:null==e?void 0:e.id}),null;return function(e,a,t){const{base:s,lang:o}=P();s&&fetch(F(s,e,a,o),t?{signal:t}:void 0).catch(()=>{})}("league-fixtures",`uuid=${encodeURIComponent(e.season_id)}`,null==t?void 0:t.signal),{warmed:!0}}getPreloadedData(e,a=1){const t=this.generatePreloadKey(e,a),o=this.preloadCache.get(t);if(!o)return null;const l=Date.now()-o.timestamp;return l>o.ttl?(this.preloadCache.delete(t),null):(this.metrics.cacheHits++,this.metrics.instantResponses++,s.log("PreloadManager","Using preloaded data",{key:t,age:Math.round(l/1e3),type:o.type}),o.data)}generatePreloadKey(e,a,t="league"){return`${t}_${e}_page_${a}`}cancelLowPriorityPreloads(){const e=this.config.priorities.HOVERED_TAB;for(const[a,t]of this.pendingRequests)t.priority>=e&&(t.abortController.abort(),this.pendingRequests.delete(a),this.metrics.preloadsCancelled++);for(const[a,t]of this.preloadQueue)t.priority>=e&&(clearTimeout(t.timeoutId),this.preloadQueue.delete(a))}cancelLeaguePreloads(e){for(const[a,t]of this.pendingRequests)a.includes(e)&&(t.abortController.abort(),this.pendingRequests.delete(a));for(const[a,t]of this.preloadQueue)t.leagueId===e&&(clearTimeout(t.timeoutId),this.preloadQueue.delete(a))}cancelAllPreloads(){for(const[e,a]of this.pendingRequests)a.abortController.abort();this.pendingRequests.clear();for(const[e,a]of this.preloadQueue)clearTimeout(a.timeoutId);this.preloadQueue.clear(),s.log("PreloadManager","All preloads cancelled")}cleanupExpiredCache(){const e=Date.now();let a=0;for(const[t,s]of this.preloadCache){e-s.timestamp>s.ttl&&(this.preloadCache.delete(t),a++)}a>0&&s.log("PreloadManager","Cleaned up expired cache",{cleaned:a,remaining:this.preloadCache.size})}getCurrentMemoryUsage(){let e=0;for(const[a,t]of this.preloadCache)e+=2*JSON.stringify(t.data).length;return e}notifyPreloadComplete(e,a,t){this.component&&"function"==typeof this.component.onPreloadComplete&&this.component.onPreloadComplete(e,a,t)}getMetrics(){return{...this.metrics,pendingRequests:this.pendingRequests.size,queuedPreloads:this.preloadQueue.size,cachedItems:this.preloadCache.size,memoryUsage:this.getCurrentMemoryUsage(),connectionType:this.connectionInfo.type,isSlowConnection:this.isSlowConnection()}}showPreloadIndicator(e,a=null){if(this.isSlowConnection())return;const t=document.createElement("div");t.className="msp-preload-indicator",t.innerHTML='\n <div class="msp-preload-spinner"></div>
1\n <span class="msp-preload-text">Loading...</span>\n ',a?a.appendChild(t):document.body.appendChild(t),setTimeout(()=>{t.parentNode&&t.parentNode.removeChild(t)},2e3)}destroy(){this.cancelAllPreloads(),this.preloadCache.clear(),this.intersectionObserver&&this.intersectionObserver.disconnect(),this.scrollHandler&&window.removeEventListener("scroll",this.scrollHandler),"connection"in navigator&&navigator.connection.removeEventListener("change",this.handleConnectionChange),s.log("PreloadManager","Destroyed",this.getMetrics())}}const Va=class e{static create(a){return e.instance&&e.instance.destroy(),e.instance=new ja(a),e.instance}static getInstance(){return e.instance}static destroy(){e.instance&&(e.instance.destroy(),e.instance=null)}};t(Va,"instance",null);let qa=Va;function Ga(e,a,t=null){const r=i([]),c=i(!1),d=i(null),u=i(0),m=i([]),h=[],p=e=>{const a=e.match_time||e.timestamp||0;if("number"==typeof a)return a;if("string"==typeof a){const e=parseInt(a);if(!isNaN(e))return e}return 0},g=(e,a="priority",t={})=>{if(!e||!Array.isArray(e))return[];const o=e.map(e=>({...e,matches:Array.isArray(e.matches)?[...e.matches]:[]}));if("time"===a)return o.forEach(e=>{e.matches.sort((e,a)=>p(a)-p(e))}),o.sort((e,a)=>{const t=e.matches.length>0?p(e.matches[0]):1/0;return(a.matches.length>0?p(a.matches[0]):1/0)-t});if("league"===a)return o.sort((e,a)=>{var t,s;return((null==(t=e.competition)?void 0:t.name)||"").localeCompare((null==(s=a.competition)?void 0:s.name)||"")});if("status"===a){const e={finished:0,live:1,upcoming:2};return o.forEach(a=>{a.matches.sort((a,t)=>{const s=a.status||"upcoming",o=t.status||"upcoming";return(e[s]||2)-(e[o]||2)})}),o}const l=e=>{const a=e.uuid,s=t[a];return(null==s?void 0:s.isFeatured)?5:(null==s?void 0:s.isHot)?4:e.is_featured||e.bals_is_featured?3.5:e.is_hot||e.bals_is_hot?3:e._competition_is_featured?2:e._competition_is_hot?1.5:1};o.forEach(e=>{e.matches.sort((e,a)=>{const t=l(e),s=l(a);return t!==s?s-t:p(e)-p(a)})}),o.forEach(e=>{var a,t;const s=e.matches.reduce((e,a)=>Math.max(e,l(a)),0);let o=0;const n=e.is_hot||(null==(a=e.competition)?void 0:a.is_hot);e.is_featured||(null==(t=e.competition)?void 0:t.is_featured)?o=1:n&&(o=.5),e._sortScore=s+o});const n=Object.values(t).filter(e=>(null==e?void 0:e.isFeatured)||(null==e?void 0:e.isHot)).length,i=o.filter(e=>{var a;return e.is_hot||(null==(a=e.competition)?void 0:a.is_hot)}),r=o.filter(e=>{var a;return e.is_featured||(null==(a=e.competition)?void 0:a.is_featured)});return s.log("useTodayMatches","Priority sorting applied:",{totalGroups:o.length,hotCompetitions:i.length,featuredCompetitions:r.length,wpPriorityMatches:n,topScores:o.slice(0,3).map(e=>{var a,t;return{name:null==(t=null==(a=e.competition)?void 0:a.name)?void 0:t.substring(0,20),score:e._sortScore}})}),o.sort((e,a)=>{if(Math.abs(e._sortScore-a._sortScore)>.1)return a._sortScore-e._sortScore;return(e.matches.length>0?p(e.matches[0]):1/0)-(a.matches.length>0?p(a.matches[0]):1/0)})},v=async(e=null)=>{try{c.value=!0,d.value=null;let n,i=null;try{await q.fetchPriorities(),i=q.getPriorityMap(),s.log("useTodayMatches","Competition priorities loaded",{count:Object.keys(i).length})}catch(o){s.warn("useTodayMatches","Failed to load competition priorities, using default sorting",o)}try{const a=e||(new Date).toISOString().split("T")[0],t=`date=${encodeURIComponent(a)}&sport_id=1&status=finished`,s=`matches/today-results?date=${encodeURIComponent(a)}`;let o=j(z(await U("match-list",t,s)));i&&Object.keys(i).length>0&&(o=o.map(e=>{var a,t,s;const o=null==(a=e.competition)?void 0:a.uuid,l=o?i[o]:null;return l?{...e,is_hot:l.is_hot||e.is_hot,is_featured:l.is_featured||e.is_featured,competition:{...e.competition,is_hot:l.is_hot||(null==(t=e.competition)?void 0:t.is_hot),is_featured:l.is_featured||(null==(s=e.competition)?void 0:s.is_featured)},matches:(e.matches||[]).map(e=>({...e,_competition_is_hot:l.is_hot,_competition_is_featured:l.is_featured}))}:e})),n={success:!0,data:o,total:o.reduce((e,a)=>{var t;return e+((null==(t=a.matches)?void 0:t.length)||0)},0),info:{}}}catch(l){throw new Error((null==l?void 0:l.message)||"Failed to fetch results")}if(!n.success)throw new Error(n.message||"Failed to fetch results");{m.value=n.data;const e=(null==t?void 0:t.value)||{};r.value=g(m.value,(null==a?void 0:a.value)||"priority",e),u.value=n.total}}catch(n){d.value=n.message,r.value=[],m.value=[],u.value=0}finally{c.value=!1}};if(a&&o(a,e=>{if(m.value&&m.value.length>0){s.log("useTodayMatches",`Sorting mode changed to: ${e}`);const a=(null==t?void 0:t.value)||{};r.value=g(m.value,e,a),s.log("useTodayMatches","Re-sorted data:",{mode:e,groupCount:r.value.length})}}),t){const e=()=>Object.entries(t.value||{}).map(([e,a])=>`${e}:${(null==a?void 0:a.isFeatured)?"F":""}${(null==a?void 0:a.isHot)?"H":""}`).sort().join("|");let l="";o(()=>({urlCount:Object.keys(t.value||{}).length,prioritySignature:e()}),(e,o)=>{const n=e.prioritySignature!==l;if(m.value&&m.value.length>0&&(n||e.urlCount!==((null==o?void 0:o.urlCount)||0))){const o=(null==a?void 0:a.value)||"priority";"priority"===o&&(s.log("useTodayMatches","Re-sorting with GraphQL priorities",{urlCount:e.urlCount,reason:n?"priority_change":"url_c
1ount_change"}),r.value=g(m.value,o,t.value)),l=e.prioritySignature}},{deep:!0})}const y=()=>{r.value=[],m.value=[],u.value=0,d.value=null,c.value=!1,h.forEach(clearTimeout),h.length=0};l(()=>{y()});const f=n(()=>r.value&&r.value.length>0),w=n(()=>!(c.value||r.value&&0!==r.value.length)),_=n(()=>c.value);return{matches:r,loading:c,error:d,matchCount:u,hasMatches:f,isEmpty:w,isLoading:_,fetchTodayResults:v,refreshTodayResults:async(e=!1,o=null)=>{try{e||(c.value=!0);let i,d=null;try{d=q.getPriorityMap()}catch(l){s.warn("useTodayMatches","Failed to get priorities for refresh",l)}try{const e=o||(new Date).toISOString().split("T")[0],a=`date=${encodeURIComponent(e)}&sport_id=1&status=finished`,t=`matches/today-results?date=${encodeURIComponent(e)}`;let s=j(z(await U("match-list",a,t)));d&&Object.keys(d).length>0&&(s=s.map(e=>{var a,t,s;const o=null==(a=e.competition)?void 0:a.uuid,l=o?d[o]:null;return l?{...e,is_hot:l.is_hot||e.is_hot,is_featured:l.is_featured||e.is_featured,competition:{...e.competition,is_hot:l.is_hot||(null==(t=e.competition)?void 0:t.is_hot),is_featured:l.is_featured||(null==(s=e.competition)?void 0:s.is_featured)},matches:(e.matches||[]).map(e=>({...e,_competition_is_hot:l.is_hot,_competition_is_featured:l.is_featured}))}:e})),i={success:!0,data:s,total:s.reduce((e,a)=>{var t;return e+((null==(t=a.matches)?void 0:t.length)||0)},0),info:{}}}catch(n){if(e)return;throw new Error((null==n?void 0:n.message)||"Failed to fetch results")}if(i.success){m.value=i.data;const e=(null==t?void 0:t.value)||{};r.value=g(m.value,(null==a?void 0:a.value)||"priority",e),u.value=i.total,s.log("useTodayMatches","Refresh completed successfully")}}catch(i){e||(d.value=i.message)}finally{e||(c.value=!1)}},resortMatches:e=>{if(m.value&&m.value.length>0){const s=(null==t?void 0:t.value)||{};r.value=g(m.value,e||(null==a?void 0:a.value)||"priority",s)}},retry:()=>{v()},clear:y,getNoDataMessage:(e="")=>{const a=e||(new Date).toLocaleDateString("vi-VN",{timeZone:"Asia/Ho_Chi_Minh"});return`Không tìm thấy tráºn Äấu Äã kết thúc cho ${e?`ngà y Äã chá»n (${a})`:`hôm nay (${a})`}. Äiá»u nà y có thá» do:\n⢠Không có tráºn Äấu nà o ÄÆ°á»£c lên lá»ch cho ngà y nà y\n⢠Tất cả tráºn Äấu vẫn Äang diá»
n ra\n⢠Hạn chế dữ liá»u từ API\n\nHãy thá» kiá»m tra ngà y khác hoặc chuyá»n sang chế Äá» Giải Äấu Äá» xem kết quả.`}}}function Ka(e){const a=$({}),t=$({}),o=$({}),r=$({}),c=i([]),d=i(null),u=i(null),m=[],h=async(e,l=1,n=!1)=>{var i,c,d,h;if(e){if(!e.season_id)return s.error("useLeagueMatches","fetchLeagueResults: League missing season_id:",e),a[e.id]=[],void(t[e.id]=!1);try{n?o[e.id]=!0:(t[e.id]=!0,r[e.id]=null);let u,f=null,w="";if(!n&&1===l&&(w=W("league_results",{season_id:e.season_id,league_id:e.id,api_type:"msp"}),f=Q(w),f)){s.log("useLeagueMatches","Using cached data (sessionStorage)",{season_id:e.season_id,cache_age_minutes:Math.round((Date.now()-f.timestamp)/6e4),entries:(null==(i=f.data)?void 0:i.length)||0}),a[e.id]=f.data||[],f.pagination&&(r[e.id]=f.pagination),t[e.id]=!1;const o=setTimeout(()=>p(e,!0),200);return void m.push(o)}try{const a=`uuid=${encodeURIComponent(e.season_id)}`,t=`fixtures/results?season_id=${encodeURIComponent(e.season_id)}&status=all&per_page=1000&page=1`,s=z(await U("league-fixtures",a,t)),o=30,n=s.length,i=Math.max(1,Math.ceil(n/o)),r=(l-1)*o;u={success:!0,data:s.slice(r,r+o),total:n,pagination:{current_page:l,per_page:o,total_items:n,total_pages:i,has_more:l<i}}}catch(v){throw new Error((null==v?void 0:v.message)||"API request failed")}if(u.pagination)r[e.id]=u.pagination;else{const a=(null==(c=u.data)?void 0:c.length)||0,t=30,s=Math.max(1,Math.ceil(a/t));r[e.id]={current_page:l,per_page:t,total_items:a,total_pages:s,has_more:a===t&&l<s}}if(n&&l>1&&a[e.id]){const t=u.data||[];a[e.id]=[...a[e.id],...t],t.length<((null==(d=u.pagination)?void 0:d.per_page)||30)&&r[e.id]&&(r[e.id].has_more=!1)}else if(a[e.id]=u.data||[],1===l&&w)try{Y(w,{data:u.data||[],pagination:u.pagination,timestamp:Date.now()}),s.log("useLeagueMatches","Cached to sessionStorage",{season_id:e.season_id,entries:(null==(h=u.data)?void 0:h.length)||0})}catch(y){s.warn("useLeagueMatches","Cache storage failed (non-critical)",y.message)}g(a[e.id])}catch(f){n||(a[e.id]=[]),u.value=f.message}finally{t[e.id]=!1,o[e.id]=!1}}else s.error("useLeagueMatches","fetchLeagueResults: No league provided")},p=async(e,o=!1)=>{try{o||(t[e.id]=!0);const n=`uuid=${encodeURIComponent(e.season_id)}`,i=`fixtures/results?season_id=${encodeURIComponent(e.season_id)}&status=all&per_page=1000&page=1`,c=z(await U("league-fixtures",n,i)),d=30,u=c.length,m=Math.max(1,Math.ceil(u/d)),h={current_page:1,per_page:d,total_items:u,total_pages:m,has_more:m>1};if(a[e.id]=c,r[e.id]=h,o){const a=W("league_results",{season_id:e.season_id,league_id:e.id,api_type:"msp"});try{Y(a,{data:c,pagination:h,timestamp:Date.now()}
1),s.log("useLeagueMatches","Background cache updated",{season_id:e.season_id})}catch(l){s.warn("useLeagueMatches","Background cache update failed (non-critical)",l.message)}}g(a[e.id])}catch(n){o||(u.value=n.message)}finally{o||(t[e.id]=!1)}},g=e=>{if(!(null==e?void 0:e.length))return c.value=[],void(d.value=null);const a=new Map;e.forEach(e=>{if(e.round){const t=e.round,s=0===t.group_count?t.round_num:t.group_num;if(void 0!==s&&!a.has(s)){let e="";e=t.group_count>0&&t.round_count>0&&void 0!==t.group_num&&void 0!==t.round_num?`Group ${t.group_num} - Round ${t.round_num}`:t.group_count>0&&void 0!==t.group_num?`Group ${t.group_num}`:(t.round_count>0||0===t.group_count)&&void 0!==t.round_num?`Round ${t.round_num}`:t.name?t.name:`Round ${s}`,a.set(s,{group_num:s,name:e,order:t.order||s,group_count:t.group_count||0})}}});const t=Array.from(a.values()).sort((e,a)=>(e.order||e.group_num)-(a.order||a.group_num));c.value=t,t.length>0?null!==d.value&&t.find(e=>e.group_num===d.value)||(d.value=t[0].group_num):d.value=null},v=n(()=>e=>{const a=r[e];return!!a&&("boolean"==typeof a.has_more?a.has_more:!(!a.current_page||!a.total_pages)&&a.current_page<a.total_pages)}),y=n(()=>e=>o[e]||!1),f=n(()=>e=>t[e]||!1),w=n(()=>{var e;if(!c.value.length)return"Không có vòng Äấu";const a=c.value.find(e=>e.group_num===d.value);return(null==a?void 0:a.name)||(null==(e=c.value[0])?void 0:e.name)||"Không có vòng Äấu"}),_=()=>{Object.keys(a).forEach(e=>delete a[e]),Object.keys(t).forEach(e=>delete t[e]),Object.keys(o).forEach(e=>delete o[e]),Object.keys(r).forEach(e=>delete r[e]),c.value=[],d.value=null,u.value=null,m.forEach(clearTimeout),m.length=0};return l(()=>{_()}),{leagueData:a,loadingStates:t,loadMoreStates:o,paginationData:r,availableRounds:c,selectedRoundGroupNum:d,error:u,hasMore:v,isLoadingMore:y,isLoading:f,currentDropdownLabel:w,fetchLeagueResults:h,refreshLeagueResults:p,generateAvailableRounds:g,clearRoundState:()=>{c.value=[],d.value=null},initializeLeague:e=>{t[e.id]=!1,o[e.id]=!1,r[e.id]=null,a[e.id]||(a[e.id]=[])},loadMore:async e=>{if(!e||o[e.id])return;const a=r[e.id];if(!a)return void s.warn("useLeagueMatches","No pagination data available for league:",e.id);if(!(a.has_more||a.current_page&&a.total_pages&&a.current_page<a.total_pages))return;const t=a.current_page+1;await h(e,t,!0)},getFilteredMatches:(e,t=null)=>{const s=a[e];return(null==s?void 0:s.length)?null===t||0===c.value.length?s:s.filter(e=>{const a=e.round;if(!a)return!1;return(0===a.group_count?a.round_num:a.group_num)===t}):[]},getNoDataMessage:e=>e?`Không tìm thấy kết quả tráºn Äấu cho ${e.name}.\n\nÄiá»u nà y có thá» do:\n⢠Mùa giải chưa bắt Äầu\n⢠Chưa có tráºn Äấu nà o hoà n thà nh\n⢠Dữ liá»u Äang ÄÆ°á»£c cáºp nháºt\n\nHãy quay lại sau hoặc thá» má»t giải Äấu khác.`:"Không tìm thấy kết quả tráºn Äấu. Vui lòng thá» lại sau hoặc liên há» há» trợ nếu vấn Äá» vẫn tiếp diá»
n.",clear:_}}const Wa=["data-id"],Za=["href"],Qa=["src","alt"],Ya=["src","alt"],Xa=["src","alt"],Ja=["src","alt"];const et=r({name:"MatchItem",props:{match:{type:Object,required:!0},displayMode:{type:String,required:!0,validator:e=>["today","league"].includes(e)},matchIndex:{type:Number,default:0}},emits:["click"],setup(e,{emit:a}){const t=_("getMatchUrl",()=>null);_("hasMatchUrl",()=>!1);const s=n(()=>{const a=e.match.uuid||e.match.id;if(e.match.match_url)return`/${e.match.match_url}`;const s=t(a);return s?`/${s}`:(console.debug(`â ï¸ [MatchItem] No URL for match ${a}`),null)}),o=n(()=>"today"===e.displayMode?"msp-today":"msp-league"),l=n(()=>`${o.value}-match__item`),i=n(()=>`${o.value}-match__item--wrap`),r=n(()=>`${o.value}-match__sm`),c=n(()=>`${o.value}-match__label`),d=n(()=>`${o.value}-match__label-item`),u=n(()=>`${o.value}-match__mobile-labels ${o.value}-d-lg-none`),m=n(()=>`${o.value}-match__mobile-label`),h=n(()=>`${o.value}-match__scores ${o.value}-match__teams`),p=n(()=>`${o.value}-match__team ${o.value}-match__team--home`),g=n(()=>`${o.value}-match__team ${o.value}-match__team--away`),v=n(()=>`${o.value}-match__team--logo`),y=n(()=>`${o.value}-match__team--name ${o.value}-match__team-home-name`),f=n(()=>`${o.value}-match__team--name ${o.value}-match__team-away-name`),w=n(()=>`${o.value}-scoreboard`),C=n(()=>`${o.value}-home-score`),b=n(()=>"today"===e.displayMode?"msp-away-score":`${o.value}-away-score`),k=n(()=>`${o.value}-winner`),S=n(()=>`${o.value}-winner-stat`),L=n(()=>`${o.value}-match__ht ${o.value}-d-none ${o.value}-d-lg-flex`),M=n(()=>`${o.value}-ht-btn`),T=n(()=>`${o.value}-match__corner ${o.value}-d-none ${o.value}-d-lg-flex`),D=n(()=>`${o.value}-match__yellow-goal ${o.value}-d-none ${o.value}-d-lg-flex`),$=n(()=>`${o.value}-separator`),I=n(()=>`${o.value}-match__mobile-stats ${o.value}-d-lg-none`),x=n(()=>`${o.value}-mobile-stat`),E=n(()=>`${o.value}-mobile-stat-label`),R="Asia/Ho_Chi_Minh",A=e=>Array.isArray(e)?e.length>0?e[0]:0:(null==e?void 0:e.score)??0;return{matchUrl:s,matchItemClass:l,matchWrapClass:i,matchSmClass:r,matchLabelClass:c,matchLabelItemClass:d,mobileLabelClass:u,mobileLabelItemClass:m,matchScoresClass:h,homeTeamClass:p,awayTeamClass:g,teamLogoClass:v,homeTeamNameClass:y,awayTeamNameClass:f,scoreboardClass:w,homeScoreClass:C,awayScoreClass:b,winnerClass:k,winnerStatClass:S,htStatsClass:L,htBtnClass:M,cornerStatsClass:T,cardStatsClass:D,separatorClass:$,mobileStatsClass:I,mobileStatClass:x,mobileStatLabelClass:E,formatMatchTime:e=>{if(!e)return"";return new Date(1e3*e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:R})},formatMatchDate:e=>{if(!e)return"";const a=new Date(1e3*e),t=new Intl.DateTimeFormat("en-CA",{timeZone:R}),s=t.format(a),o=t.format(new Date),l=new Date;l.setDate(l.getDate()-1);const n=t.format(l);return s===o?"Today":s===n?a.toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:R}):a.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:R})},getScore:A,getHTScore:e=>Array.isArray(e)?e.length>1?e[1]:null:(null==e?void 0:e.ht_score)??null,getYellowCards:e=>Array.isArray(e)?e.length>3?e[3]:0:(null==e?void 0:e.yellow_cards)??0,getRedCards:e=>Array.isArray(e)?e.length>2?e[2]:0:(null==e?void 0:e.red_cards)??0,getCornerHTHome:e=>{var a;return(null==(a=e.corners)?void 0:a.ht_home)||0},getCornerHTAway:e=>{var a;return(null==(a=e.corners)?void 0:a.ht_away)||0},getCornerFTHome:e=>{var a,t;return(null==(a=e.corners)?void 0:a.ft_home)||(null==(t=e.corners)?void 0:t.home)||0},getCornerFTAway:e=>{var a,t;return(null==(a=e.corners)?void 0:a.ft_away)||(null==(t=e.corners)?void 0:t.away)||0},getCardSeverityClass:(e,a)=>0===a?"card-none":"red"===e?a>=1?"card-high":"card-none":"yellow"===e?a>=3?"card-high":a>=1?"card-low":"card-none":"card-none",isWinner:(e,a)=>{const t=A(e.home_scores),s=A(e.away_scores);return t!==s&&("home"===a&&t>s||"away"===a&&s>t)},isMatchUnstarted:e=>{const a=A(e.home_scores);return"string"==typeof a&&"vs"===a.toLowerCase()},getScoreVsClass:()=>{const a=A(e.match.home_scores),t=A(e.match.away_scores),s=`${o.value}-score-vs ${o.value}-score-vs__num ${o.value}-score-vs__28 ${o.value}-score-vs-antz`;return a>t?`${s} ${o.value}-score-vs-antz__home-win`:t>a?`${s} ${o.value}-score-vs-antz__away-win`:`${s} ${o.value}-score-vs-antz__draw`},getVsOnlyClass:()=>`${o.value}-score-vs ${o.value}-score-vs__num ${o.value}-score-vs__28 ${o.value}-score-vs-antz ${o.value}-score-vs-only`,handleImageError:e=>{e.target.style.display="none"},handleClick:()=>{a("click",e.match)},handleScoreClick:()=>{a("click",e.match)},handleMatchLinkClick:t=>{a("click",e.match)},sanitizeTeamName:Qe}}},[["render",function(e,a,t,s,o,l){var n,i,r,c;return f(),d("div",{class:m(s.matchItemClass),"data-id":t.match.uuid||t.match.id},[s.matchUrl?(f(),d("a",{key:0,href:s.matchUrl,onClick:a[4]||(a[4]=(...e)=>s.handleMatchLinkClick&&s.handleMatchLinkClick(...e))},[u("div",{class:m(s.matchWrapClass)},[u("div",{class:m(s.matchSmClass)},[u("div",{class:m(s.matchLabelClass)},[u("div",{class:m(s.matchLabelItemClass)},p(s.formatMatchTime(t.match.match_time))+" "+p(s.formatMatchDate(t.match.match_time)),3),t.match.roun
1d?(f(),d("div",{key:0,class:m(s.matchLabelItemClass)},"Round "+p(t.match.round.round_num),3)):g("",!0)],2),u("div",{class:m(s.mobileStatsClass)},[u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},"HT",2),u("span",null,p(s.getHTScore(t.match.home_scores)||0)+"-"+p(s.getHTScore(t.match.away_scores)||0),1)],2),u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[10]||(a[10]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("path",{d:"M9.74443 9.27539C8.48074 11.1829 6.23396 12.3038 3.95224 12.2129C3.6399 12.2125 3.00646 12.2132 2.6938 12.2129L0.667969 14.0002H9.74443L12.668 9.27539H9.74443Z",fill:"#5EB24A"}),u("path",{d:"M4.23031 11.2754C5.88703 11.2797 7.49953 10.5287 8.56656 9.27541H5.99969V4.18666L9.88406 2.36322L5.06219 0.100098V9.56479L3.53125 11.2754H4.23031Z",fill:"#FFE400"})],-1)])],2),u("span",null,p(s.getCornerFTHome(t.match)||0)+"-"+p(s.getCornerFTAway(t.match)||0),1)],2)],2)],2),u("div",{class:m(s.matchScoresClass)},[u("div",{class:m(s.homeTeamClass)},[(null==(n=t.match.home_team)?void 0:n.logo)?(f(),d("img",{key:0,src:t.match.home_team.logo,alt:t.match.home_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[0]||(a[0]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Qa)):g("",!0),u("div",{class:m(s.homeTeamNameClass)},p(s.sanitizeTeamName(t.match.home_team,"Home")),3)],2),u("div",{class:m(s.scoreboardClass)},[s.isMatchUnstarted(t.match)?(f(),d("div",{key:0,class:m(s.getVsOnlyClass()),onClick:a[1]||(a[1]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))}," vs ",2)):(f(),d("div",{key:1,class:m(s.getScoreVsClass()),onClick:a[2]||(a[2]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))},[u("span",{class:m([s.homeScoreClass,{[s.winnerClass]:s.isWinner(t.match,"home")}])},p(s.getScore(t.match.home_scores)),3),a[11]||(a[11]=u("b",null,":",-1)),u("span",{class:m([s.awayScoreClass,{[s.winnerClass]:s.isWinner(t.match,"away")}])},p(s.getScore(t.match.away_scores)),3)],2))],2),u("div",{class:m(s.awayTeamClass)},[(null==(i=t.match.away_team)?void 0:i.logo)?(f(),d("img",{key:0,src:t.match.away_team.logo,alt:t.match.away_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[3]||(a[3]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Ya)):g("",!0),u("div",{class:m(s.awayTeamNameClass)},p(s.sanitizeTeamName(t.match.away_team,"Away")),3)],2)],2),u("div",{class:m(s.htStatsClass)},[u("div",{class:m(s.htBtnClass)},[u("span",{class:m({[s.winnerStatClass]:s.isWinner(t.match,"home")})},p(s.getHTScore(t.match.home_scores)||0),3),a[12]||(a[12]=h(":",-1)),u("span",{class:m({[s.winnerStatClass]:s.isWinner(t.match,"away")})},p(s.getHTScore(t.match.away_scores)||0),3)],2)],2),u("div",{class:m(s.cornerStatsClass)},[u("div",{class:m(s.matchLabelItemClass)},[u("span",{class:m({[s.winnerStatClass]:s.getCornerHTHome(t.match)>s.getCornerHTAway(t.match)})},p(s.getCornerHTHome(t.match)||0),3),a[13]||(a[13]=h("-",-1)),u("span",{class:m({[s.winnerStatClass]:s.getCornerHTAway(t.match)>s.getCornerHTHome(t.match)})},p(s.getCornerHTAway(t.match)||0),3),u("span",{class:m(s.separatorClass)},"|",2),u("span",{class:m({[s.winnerStatClass]:s.getCornerFTHome(t.match)>s.getCornerFTAway(t.match)})},p(s.getCornerFTHome(t.match)||0),3),a[14]||(a[14]=h("-",-1)),u("span",{class:m({[s.winnerStatClass]:s.getCornerFTAway(t.match)>s.getCornerFTHome(t.match)})},p(s.getCornerFTAway(t.match)||0),3)],2)],2),u("div",{class:m(s.cardStatsClass)},[u("div",{class:m(s.matchLabelItemClass)},[u("span",{class:m(s.getCardSeverityClass("yellow",s.getYellowCards(t.match.home_scores)))},p(s.getYellowCards(t.match.home_scores)||0),3),a[15]||(a[15]=h("-",-1)),u("span",{class:m(s.getCardSeverityClass("yellow",s.getYellowCards(t.match.away_scores)))},p(s.getYellowCards(t.match.away_scores)||0),3),u("span",{class:m(s.separatorClass)},"|",2),u("span",{class:m(s.getCardSeverityClass("red",s.getRedCards(t.match.home_scores)))},p(s.getRedCards(t.match.home_scores)||0),3),a[16]||(a[16]=h("-",-1)),u("span",{class:m(s.getCardSeverityClass("red",s.getRedCards(t.match.away_scores)))}
1,p(s.getRedCards(t.match.away_scores)||0),3)],2)],2)],2)],8,Za)):(f(),d("div",{key:1,class:m(s.matchWrapClass),onClick:a[9]||(a[9]=(...e)=>s.handleClick&&s.handleClick(...e))},[u("div",{class:m(s.matchSmClass)},[u("div",{class:m(s.matchLabelClass)},[u("div",{class:m(s.matchLabelItemClass)},p(s.formatMatchTime(t.match.match_time))+" "+p(s.formatMatchDate(t.match.match_time)),3),t.match.round?(f(),d("div",{key:0,class:m(s.matchLabelItemClass)},"Round "+p(t.match.round.round_num),3)):g("",!0)],2),u("div",{class:m(s.mobileStatsClass)},[u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},"HT",2),u("span",null,p(s.getHTScore(t.match.home_scores)||0)+"-"+p(s.getHTScore(t.match.away_scores)||0),1)],2),u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[17]||(a[17]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("path",{d:"M9.74443 9.27539C8.48074 11.1829 6.23396 12.3038 3.95224 12.2129C3.6399 12.2125 3.00646 12.2132 2.6938 12.2129L0.667969 14.0002H9.74443L12.668 9.27539H9.74443Z",fill:"#5EB24A"}),u("path",{d:"M4.23031 11.2754C5.88703 11.2797 7.49953 10.5287 8.56656 9.27541H5.99969V4.18666L9.88406 2.36322L5.06219 0.100098V9.56479L3.53125 11.2754H4.23031Z",fill:"#FFE400"})],-1)])],2),u("span",null,p(s.getCornerFTHome(t.match)||0)+"-"+p(s.getCornerFTAway(t.match)||0),1)],2)],2)],2),u("div",{class:m(s.matchScoresClass)},[u("div",{class:m(s.homeTeamClass)},[(null==(r=t.match.home_team)?void 0:r.logo)?(f(),d("img",{key:0,src:t.match.home_team.logo,alt:t.match.home_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[5]||(a[5]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Xa)):g("",!0),u("div",{class:m(s.homeTeamNameClass)},p(s.sanitizeTeamName(t.match.home_team,"Home")),3)],2),u("div",{class:m(s.scoreboardClass)},[s.isMatchUnstarted(t.match)?(f(),d("div",{key:0,class:m(s.getVsOnlyClass()),onClick:a[6]||(a[6]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))}," vs ",2)):(f(),d("div",{key:1,class:m(s.getScoreVsClass()),onClick:a[7]||(a[7]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))},[u("span",{class:m([s.homeScoreClass,{[s.winnerClass]:s.isWinner(t.match,"home")}])},p(s.getScore(t.match.home_scores)),3),a[18]||(a[18]=u("b",null,":",-1)),u("span",{class:m([s.awayScoreClass,{[s.winnerClass]:s.isWinner(t.match,"away")}])},p(s.getScore(t.match.away_scores)),3)],2))],2),u("div",{class:m(s.awayTeamClass)},[(null==(c=t.match.away_team)?void 0:c.logo)?(f(),d("img",{key:0,src:t.match.away_team.logo,alt:t.match.away_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[8]||(a[8]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Ja)):g("",!0),u("div",{class:m(s.awayTeamNameClass)},p(s.sanitizeTeamName(t.match.away_team,"Away")),3)],2)],2),u("div",{class:m(s.htStatsClass)},[u("div",{class:m(s.htBtnClass)},[u("span",{class:m({[s.winnerStatClass]:s.isWinner(t.match,"home")})},p(s.getHTScore(t.match.home_scores)||0),3),a[19]||(a[19]=h(":",-1)),u("span",{class:m({[s.winnerStatClass]:s.isWinner(t.match,"away")})},p(s.getHTScore(t.match.away_scores)||0),3)],2)],2),u("div",{class:m(s.cornerStatsClass)},[u("div",{class:m(s.matchLabelItemClass)},[u("span",{class:m({[s.winnerStatClass]:s.getCornerHTHome(t.match)>s.getCornerHTAway(t.match)})},p(s.getCornerHTHome(t.match)||0),3),a[20]||(a[20]=h("-",-1)),u("span",{class:m({[s.winnerStatClass]:s.getCornerHTAway(t.match)>s.getCornerHTHome(t.match)})},p(s.getCornerHTAway(t.match)||0),3),u("span",{class:m(s.separatorClass)},"|",2),u("span",{class:m({[s.winnerStatClass]:s.getCornerFTHome(t.match)>s.getCornerFTAway(t.match)})},p(s.getCornerFTHome(t.match)||0),3),a[21]||(a[21]=h("-",-1)),u("span",{class:m({[s.winnerStatClass]:s.getCornerFTAway(t.match)>s.getCornerHTHome(t.match)})},p(s.getCornerFTAway(t.match)||0),3)],2)],2),u("div",{class:m(s.cardStatsClass)},[u("div",{class:m(s.matchLabelItemClass)},[u("span",{class:m(s.getCardSeverityClass("yellow",s.getYellowCards(t.match.home_scores)))},p(s.getYellowCards(t.match.home_scores)||0),3),a[22]||(a[22]=h("-",-1)),u("span",{class:m(s.getCardSeverityClass("yellow",s.getYellowCards(t.match.away_scores)))},p(s.getYellowCards(t.match.away_scores)||0),3),u("span",{class:m(s.separatorClass)},"|",2),u("span",{class:m(s.getCardSeverityClass("red",s.getRedCards(t.match.home_scores)))},p(s.getRedCards(t.match.home_scores)||0),3),a[23]||(a[23]=h("-",-1)),u("span",{class:m(s.getCardSeverityClass("red",s.getRedCards(t.match.away_scores)))}
1,p(s.getRedCards(t.match.away_scores)||0),3)],2)],2)],2))],10,Wa)}]]),at=["aria-label"],tt={class:"sr-only"},st={class:"msp-results-loading-container"},ot={class:"msp-results-skeleton"},lt={class:"msp-matches-skeleton"};const nt=r({name:"MatchResultsSkeleton",props:{competitionCount:{type:Number,default:3,validator:e=>{const a=e>0&&e<=10;return a||console.warn(`[MatchResultsSkeleton] competitionCount must be between 1 and 10, received: ${e}`),a}},matchesPerCompetition:{type:Number,default:3,validator:e=>{const a=e>0&&e<=20;return a||console.warn(`[MatchResultsSkeleton] matchesPerCompetition must be between 1 and 20, received: ${e}`),a}},mode:{type:String,default:"today",validator:e=>{const a=["today","league"],t=a.includes(e);return t||console.warn(`[MatchResultsSkeleton] mode must be one of ${a.join(", ")}, received: ${e}`),t}}}},[["render",function(e,a,t,s,o,l){return f(),d("div",{class:"msp-results-loading",role:"status","aria-busy":"true","aria-live":"polite","aria-label":`Äang tải kết quả tráºn Äấu ${t.mode}`},[u("span",tt,"Äang tải kết quả tráºn Äấu "+p(t.mode)+", vui lòng chá»...",1),u("div",st,[u("div",ot,[(f(!0),d(v,null,y(t.competitionCount,e=>(f(),d("div",{key:`competition-skeleton-${e}`,class:"msp-competition-skeleton"},[a[1]||(a[1]=u("div",{class:"msp-competition-header-skeleton"},[u("div",{class:"msp-skeleton-placeholder msp-competition-logo-skeleton"}),u("div",{class:"msp-skeleton-placeholder msp-competition-name-skeleton"})],-1)),u("div",lt,[(f(!0),d(v,null,y(t.matchesPerCompetition,t=>(f(),d("div",{key:`match-skeleton-${e}-${t}`,class:"msp-match-skeleton"},[...a[0]||(a[0]=[C('<div class="msp-skeleton-placeholder msp-match-time-skeleton" data-v-78981b5a></div><div class="msp-skeleton-placeholder msp-team-skeleton" data-v-78981b5a></div><div class="msp-skeleton-placeholder msp-score-skeleton" data-v-78981b5a></div><div class="msp-skeleton-placeholder msp-team-skeleton" data-v-78981b5a></div><div class="msp-skeleton-placeholder msp-stats-skeleton" data-v-78981b5a></div>',5)])]))),128))])]))),128))])])],8,at)}],["__scopeId","data-v-78981b5a"]]),it={name:"TodayResults",components:{MatchItem:et,MatchResultsSkeleton:nt},props:{matches:{type:Array,default:()=>[]},isLoading:{type:Boolean,default:!1},error:{type:String,default:null},selectedDate:{type:String,default:""}},emits:["match-click","retry"],setup(e){o(()=>e.matches,(e,a)=>{var t,s;console.log("[TodayResults] ð DIAGNOSTIC: Matches prop changed:",{component:"TodayResults",previous_matches:{was_array:Array.isArray(a),length:(null==a?void 0:a.length)||0},new_matches:{is_array:Array.isArray(e),length:(null==e?void 0:e.length)||0,first_item_structure:(null==e?void 0:e[0])?{keys:Object.keys(e[0]),has_competition:!!e[0].competition,has_matches:!!e[0].matches,competition_name:(null==(t=e[0].competition)?void 0:t.name)||"N/A",matches_count:(null==(s=e[0].matches)?void 0:s.length)||0}:null},will_render:!!(e&&e.length>0)})},{immediate:!0,deep:!0});return{getNoDataMessage:()=>{const a=e.selectedDate||(new Date).toLocaleDateString("vi-VN",{timeZone:"Asia/Ho_Chi_Minh"});return`Không tìm thấy tráºn Äấu Äã kết thúc cho ${e.selectedDate?`ngà y Äã chá»n (${a})`:`hôm nay (${a})`}. Äiá»u nà y có thá» do:\n⢠Không có tráºn Äấu nà o ÄÆ°á»£c lên lá»ch cho ngà y nà y\n⢠Tất cả tráºn Äấu vẫn Äang diá»
n ra\n⢠Hạn chế dữ liá»u từ API\n\nHãy thá» kiá»m tra ngà y khác hoặc chuyá»n sang chế Äá» Giải Äấu Äá» xem kết quả.`},handleImageError:e=>{e.target.style.display="none"},sanitizeCompetitionName:Ye}}},rt={class:"msp-today-results"},ct={key:"error",class:"msp-error"},dt={class:"msp-error-message"},ut={key:"empty",class:"msp-no-data"},mt={class:"msp-no-data-message"},ht={key:"content",class:"msp-results-wrapper"},pt={class:"msp-today-matches"},gt={class:"msp-today-league_title"},vt={class:"msp-today-match_competition"},yt=["src","alt"],ft={class:"msp-truncate"};const wt=r(it,[["render",function(e,a,t,s,o,l){const n=L("MatchResultsSkeleton"),i=L("MatchItem");return f(),d("div",rt,[b(S,{name:"skeleton-fade",mode:"out-in"},{default:k(()=>[t.isLoading&&!t.matches.length?(f(),M(n,{key:"skeleton","competition-count":3,"matches-per-compet
1ition":3,mode:"today"})):t.error?(f(),d("div",ct,[u("div",dt,p(t.error),1),u("button",{onClick:a[0]||(a[0]=a=>e.$emit("retry")),class:"msp-button msp-button-secondary"},"Retry")])):t.isLoading||t.matches&&0!==t.matches.length?t.matches&&t.matches.length>0?(f(),d("div",ht,[u("div",pt,[(f(!0),d(v,null,y(t.matches,(t,o)=>{var l;return f(),d("div",{key:`competition-${o}`,class:"msp-today-competition-wrapper msp-today-competition-wrapper-antz"},[u("div",gt,[u("div",vt,[(null==(l=t.competition)?void 0:l.logo)?(f(),d("img",{key:0,src:t.competition.logo,alt:t.competition.name,class:"msp-today-lazyload",onError:a[1]||(a[1]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,yt)):g("",!0),u("span",ft,p(s.sanitizeCompetitionName(t.competition,"Unknown Competition")),1)]),a[2]||(a[2]=u("div",{class:"msp-today-match__teams msp-today-d-none msp-today-d-lg-flex"},[u("div",{class:"msp-today-match__team msp-today-match__team--home"},"Chá»§ nhà "),u("div",{class:"msp-today-scoreboard"},"Tá»· sá»"),u("div",{class:"msp-today-match__team msp-today-match__team--away"},"Khách")],-1)),a[3]||(a[3]=u("div",{class:"msp-today-match__ht msp-today-d-none msp-today-d-lg-flex"},"HT",-1)),a[4]||(a[4]=u("div",{class:"msp-today-match__corner msp-today-d-none msp-today-d-lg-flex"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",class:"msp-today-corner-icon"},[u("path",{d:"M2 2v7l3-3h4V2H2zm15 13v7l3-3h4v-4h-7z"})]),h(" HT | FT ")],-1)),a[5]||(a[5]=u("div",{class:"msp-today-match__yellow-goal msp-today-d-none msp-today-d-lg-flex"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",class:"msp-today-yellow-icon"},[u("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",ry:"2",fill:"#ffd700"})]),h(" HT | FT ")],-1))]),(f(!0),d(v,null,y(t.matches,(a,t)=>(f(),M(i,{key:`match-${a.uuid||a.id||t}`,match:a,"display-mode":"today","match-index":t,onClick:t=>e.$emit("match-click",a)},null,8,["match","match-index","onClick"]))),128))])}),128))])])):g("",!0):(f(),d("div",ut,[u("div",mt,p(s.getNoDataMessage()),1)]))]),_:1})])}],["__scopeId","data-v-5fa0a302"]]),_t={name:"LeagueResults",components:{MatchItem:et,MatchResultsSkeleton:nt},props:{leagueConfigs:{type:Array,default:()=>[]},activeLeagueIndex:{type:Number,default:0},leagueData:{type:Object,default:()=>({})},leagueLoadingStates:{type:Object,default:()=>({})},availableRounds:{type:Array,default:()=>[]},selectedRoundGroupNum:{type:Number,default:null},hasMoreFunction:{type:Function,default:()=>()=>!1},isLoadingMore:{type:Boolean,default:!1},error:{type:String,default:null}},emits:["league-change","match-click","load-more","retry","tab-hover","tab-hover-end","round-select"],setup(e,{emit:a}){const t=i(!1),s=i(null),r=i(!1);let d=null;const u=n(()=>e.leagueConfigs.length?e.leagueConfigs[e.activeLeagueIndex]:null),m=n(()=>{var a;const t=u.value?e.leagueData[u.value.id]:null;return console.log("LeagueResults Display Debug:",{currentLeague:u.value,currentLeague_id:null==(a=u.value)?void 0:a.id,leagueData_keys:Object.keys(e.leagueData||{}),matches_length:(null==t?void 0:t.length)||0,matches_sample:(null==t?void 0:t.slice(0,2))||[],all_leagueData:e.leagueData}),t}),h=n(()=>!!u.value&&e.hasMoreFunction(u.value.id)),p=n(()=>
1{if(!u.value)return!1;const a=m.value&&m.value.length>0,t=!e.hasMoreFunction(u.value.id);return a&&t&&!g.value}),g=n(()=>u.value&&e.leagueLoadingStates[u.value.id]),v=n(()=>{var a,t,s;const o=m.value;if(!(null==o?void 0:o.length))return[];let l=o;return null!==e.selectedRoundGroupNum&&e.availableRounds.length>0&&(l=o.filter(a=>{const t=a.round;if(!t)return!1;return(0===t.group_count?t.round_num:t.group_num)===e.selectedRoundGroupNum})),[{competition:{uuid:(null==(a=u.value)?void 0:a.id)||"unknown",name:(null==(t=u.value)?void 0:t.name)||"Match Results",logo:(null==(s=u.value)?void 0:s.logo)||null},matches:l}]}),y=n(()=>{var a;if(!e.availableRounds.length)return"No Rounds Available";const t=e.availableRounds.find(a=>a.group_num===e.selectedRoundGroupNum);return(null==t?void 0:t.name)||(null==(a=e.availableRounds[0])?void 0:a.name)||"No Rounds Available"}),f=()=>{s.value&&!d&&(d=new IntersectionObserver(a=>{const[t]=a,s=!!u.value&&e.hasMoreFunction(u.value.id);t.isIntersecting&&s&&!e.isLoadingMore&&!r.value&&w()},{root:null,rootMargin:"100px",threshold:.1}),d.observe(s.value))},w=()=>{const t=!!u.value&&e.hasMoreFunction(u.value.id);if(!r.value&&!e.isLoadingMore&&t){r.value=!0;try{a("load-more"),setTimeout(()=>{r.value=!1},500)}catch(s){console.error("Error loading more results:",s),r.value=!1}}},_=()=>{d&&(d.disconnect(),d=null)};return o(()=>h.value,async e=>{await I(),e&&s.value&&!d?f():!e&&d&&_()}),o(()=>e.availableRounds,()=>{t.value&&(console.log("Available rounds changed - closing dropdown"),t.value=!1)},{deep:!0}),c(async()=>{await I(),"undefined"!=typeof window&&"IntersectionObserver"in window&&setTimeout(f,100)}),l(()=>{_()}),{dropdownOpen:t,scrollTrigger:s,isAutoLoading:r,currentLeague:u,currentMatches:m,isLoading:g,groupedMatches:v,currentDropdownLabel:y,shouldShowScrollTrigger:h,shouldShowAllLoadedMessage:p,getNoDataMessage:()=>u.value?`Không tìm thấy kết quả tráºn Äấu cho ${u.value.name}.\n\nÄiá»u nà y có thá» do:\n⢠Mùa giải chưa bắt Äầu\n⢠Chưa có tráºn Äấu nà o hoà n thà nh\n⢠Dữ liá»u Äang ÄÆ°á»£c cáºp nháºt\n\nHãy quay lại sau hoặc thá» má»t giải Äấu khác.`:"Không tìm thấy kết quả tráºn Äấu. Vui lòng thá» lại sau hoặc liên há» há» trợ nếu vấn Äá» vẫn tiếp diá»
n.",handleImageError:e=>{e.target.style.display="none"},handleLeagueChange:e=>{a("league-change",e)},handleTabHover:(e,t)=>{a("tab-hover",e,t)},handleTabHoverEnd:(e,t)=>{a("tab-hover-end",e,t)},toggleRoundDropdown:()=>{t.value=!t.value},selectRoundGroup:e=>{a("round-select",e),t.value=!1},setupInfiniteScroll:f,cleanupInfiniteScroll:_,sanitizeText:Ze,sanitizeCompetitionName:Ye}}},Ct={class:"msp-league-results"},bt={key:0,class:"msp-league-tabs-section"},kt={class:"msp-league-tabs-wrapper"},St=["onClick","onMouseenter","onMouseleave","data-tab-index","data-league-id","disabled"],Lt=["src","alt"],Mt={class:"msp-league-name"},Tt={key:1,class:"msp-tab-spinner"},Dt={key:1,class:"msp-tabs-container"},$t={class:"msp-dropdown-wrapper"},It=["aria-expanded"],xt={class:"msp-dropdown-label"},Et=["onClick","aria-selected"],Rt={key:"error",class:"msp-error"},At={class:"msp-error-message"},Ht={key:"empty",class:"msp-no-data"},Nt={class:"msp-no-data-message"},Pt={key:"content",class:"msp-results-wrapper"},Ft={class:"msp-league-matches"},Ot={class:"msp-league-league_title"},Ut={class:"msp-league-match_competition"},zt=["src","alt"],Bt={class:"msp-truncate"},jt={key:0,class:"msp-infinite-scroll-trigger",ref:"scrollTrigger"},Vt={key:0,class:"msp-auto-loading"},qt={key:1,class:"msp-scroll-indicator"},Gt={key:1,class:"msp-all-loaded-indicator"};const Kt=r(_t,[["render",function(e,a,t,s,o,l){var n,i;const r=L("MatchResultsSkeleton"),c=L("MatchItem");return f(),d("div",Ct,[(null==(n=t.leagueConfigs)?void 0:n.length)>0?(f(),d("div",bt,[u("div",kt,[(f(!0),d(v,null,y(t.leagueConfigs,(e,o)=>(f(),d("button",{key:e.id,onClick:e=>s.handleLeagueChange(o),onMouseenter:a=>s.handleTabHover(e.id,o),onMouseleave:a=>s.handleTabHoverEnd(e.id,o),"data-tab-index":o,"data-league-id":e.id,class:m(["msp-league-tab",{"msp-league-tab-active":t.activeLeagueIndex===o},{"msp-league-tab-loading":t.leagueLoadingStates[e.id]}]),disabled:t.leagueLoadingStates[e.id]},[e.logo?(f(),d("img",{key:0,src:e.logo,alt:e.name,class:"msp-league-logo",onError:a[0]||(a[0]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,Lt)):g("",!0),u("span",Mt,p(s.sanitizeText(e.name)),1),t.leagueLoadingStates[e.id]?(f(),d("div",Tt)):g("",!0)],42,St))),128))])])):g("",!0),(null==(i=t.availableRounds)?void 0:i.length)>1&&s.currentLeague?(f(),d("div",Dt,[u("div",$t,[u("button",{onClick:a[1]||(a[1]=(...e)=>s.toggleRoundDropdown&&s.toggleRoundDropdown(...e)),class:"msp-dropdown-button","aria-expanded":s.dropdownOpen,"aria-haspopup":"true"}
1,[u("span",xt,p(s.currentDropdownLabel),1),(f(),d("svg",{class:m(["msp-dropdown-icon",{"msp-dropdown-icon-open":s.dropdownOpen}]),width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"},[...a[5]||(a[5]=[u("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1)])],2))],8,It),b(S,{name:"msp-dropdown"},{default:k(()=>[s.dropdownOpen?(f(),d("div",{key:0,class:"msp-dropdown-menu",onClick:a[2]||(a[2]=w(()=>{},["stop"]))},[(f(!0),d(v,null,y(t.availableRounds,(e,a)=>(f(),d("button",{key:a,onClick:a=>s.selectRoundGroup(e.group_num),class:m(["msp-dropdown-item",{"msp-dropdown-item-active":t.selectedRoundGroupNum===e.group_num}]),"aria-selected":t.selectedRoundGroupNum===e.group_num},p(e.name),11,Et))),128))])):g("",!0)]),_:1})])])):g("",!0),b(S,{name:"skeleton-fade",mode:"out-in"},{default:k(()=>[s.isLoading&&!s.currentMatches.length?(f(),M(r,{key:"skeleton","competition-count":2,"matches-per-competition":3,mode:"league"})):t.error?(f(),d("div",Rt,[u("div",At,p(t.error),1),u("button",{onClick:a[3]||(a[3]=a=>e.$emit("retry")),class:"msp-button msp-button-secondary"},"Retry")])):s.isLoading||s.currentMatches&&0!==s.currentMatches.length?s.currentMatches&&s.currentMatches.length>0?(f(),d("div",Pt,[u("div",Ft,[(f(!0),d(v,null,y(s.groupedMatches,(t,o)=>{var l;return f(),d("div",{key:`league-${o}`,class:"msp-league-competition-wrapper msp-league-competition-wrapper-antz"},[u("div",Ot,[u("div",Ut,[(null==(l=t.competition)?void 0:l.logo)?(f(),d("img",{key:0,src:t.competition.logo,alt:t.competition.name,class:"msp-league-lazyload",loading:"lazy",onError:a[4]||(a[4]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,zt)):g("",!0),u("span",Bt,p(s.sanitizeCompetitionName(t.competition,"Unknown Competition")),1)]),a[6]||(a[6]=u("div",{class:"msp-league-match__teams msp-league-d-none msp-league-d-lg-flex"},[u("div",{class:"msp-league-match__team msp-league-match__team--home"},"Chá»§ nhà "),u("div",{class:"msp-league-scoreboard"},"Tá»· sá»"),u("div",{class:"msp-league-match__team msp-league-match__team--away"},"Khách")],-1)),a[7]||(a[7]=u("div",{class:"msp-league-match__ht msp-league-d-none msp-league-d-lg-flex"},"HT",-1)),a[8]||(a[8]=u("div",{class:"msp-league-match__corner msp-league-d-none msp-league-d-lg-flex"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",class:"msp-league-corner-icon"},[u("path",{d:"M2 2v7l3-3h4V2H2zm15 13v7l3-3h4v-4h-7z"})]),h(" HT | FT ")],-1)),a[9]||(a[9]=u("div",{class:"msp-league-match__yellow-goal msp-league-d-none msp-league-d-lg-flex"},[u("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",class:"msp-league-yellow-icon"},[u("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",ry:"2",fill:"#ffd700"})]),h(" HT | FT ")],-1))]),(f(!0),d(v,null,y(t.matches,(a,t)=>(f(),M(c,{key:`league-match-${a.uuid||a.id||t}`,match:a,"display-mode":"league","match-index":t,onClick:t=>e.$emit("match-click",a)},null,8,["match","match-index","onClick"]))),128))])}),128)),s.shouldShowScrollTrigger?(f(),d("div",jt,[t.isLoadingMore?(f(),d("div",Vt,[...a[10]||(a[10]=[u("div",{class:"msp-auto-loading-spinner"},null,-1),u("span",{class:"msp-auto-loading-text"},"Äang tải thêm kết quả...",-1)])])):(f(),d("div",qt))],512)):g("",!0),s.shouldShowAllLoadedMessage?(f(),d("div",Gt,[...a[11]||(a[11]=[u("span",{class:"msp-all-loaded-text"},"Äã tải tất cả kết quả",-1)])])):g("",!0)])])):g("",!0):(f(),d("div",Ht,[u("div",Nt,p(s.getNoDataMessage()),1)]))]),_:1})])}],["__scopeId","data-v-4e22f5f8"]]),Wt={name:"ResultsNavigation",props:{viewM
1ode:{type:String,required:!0,validator:e=>["today","league","single"].includes(e)},showTodayButton:{type:Boolean,default:!0},leagueConfigs:{type:Array,default:()=>[]},todayMatchCount:{type:Number,default:0},todayLoading:{type:Boolean,default:!1},selectedDate:{type:String,default:""},currentSort:{type:String,default:"time"},sortOptions:{type:Array,default:()=>[{value:"time",label:"Theo thá»i gian"},{value:"league",label:"Theo giải Äấu"},{value:"status",label:"Theo trạng thái"}]}},emits:["view-change","date-change","date-clear","sort-change","today-click","league-click"],setup(e,{emit:a}){const t=i(e.selectedDate||"");o(()=>e.selectedDate,e=>{t.value=e||""},{immediate:!0});return{selectedDateString:t,getTodayButtonText:()=>"Hôm nay",handleTodayClick:()=>{a("today-click"),a("view-change","today")},handleLeagueClick:()=>{a("league-click"),a("view-change","league")},onDateChange:()=>{a("date-change",t.value)},clearDate:()=>{t.value="",a("date-clear")},handleCalendarClick:()=>{try{const e=document.querySelector('.msp-input[type="date"]');if(!e)return void console.warn("Date input not found");if(e.focus(),e.showPicker&&"function"==typeof e.showPicker)e.showPicker();else{const a=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(a)}}catch(e){console.warn("Failed to open date picker:",e);const a=document.querySelector('.msp-input[type="date"]');a&&a.focus()}},selectSortOption:e=>{a("sort-change",e)},updateSelectedDate:e=>{t.value=e}}}},Zt={class:"msp-results-navigation"},Qt={class:"msp-filter-tags-top"},Yt={class:"msp-filter-tags__day"},Xt={class:"msp-mode-toggles"},Jt={key:0,class:"msp-today-badge"},es={key:1,class:"msp-tab-spinner"},as={key:0,class:"msp-today-badge"},ts={key:0,class:"msp-calendar"},ss={class:"msp-datepicker"},os={class:"msp-input-wrapper"},ls=["max"],ns={class:"msp-sort-pills"},is={class:"msp-sort-pills__options"},rs=["onClick"];const cs={name:"Results",components:{TodayResults:wt,LeagueResults:Kt,ResultsNavigation:r(Wt,[["render",function(e,a,t,s,o,l){var n,i;return f(),d("div",Zt,[u("div",Qt,[u("div",Yt,[u("div",Xt,[t.showTodayButton?(f(),d("div",{key:0,onClick:a[0]||(a[0]=(...e)=>s.handleTodayClick&&s.handleTodayClick(...e)),class:m(["msp-today msp-mode-toggle",{"msp-today-active":"today"===t.viewMode}])},[a[6]||(a[6]=u("svg",{class:"msp-today-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M12 2C13.1 2 14 2.9 14 4V6H10V4C10 2.9 10.9 2 12 2ZM21 9V7C21 5.9 20.1 5 19 5H17V7H19V9H5V7H7V5H5C3.9 5 3 5.9 3 7V9H21ZM3 11V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V11H3ZM7 13H9V15H7V13ZM11 13H13V15H11V13ZM15 13H17V15H15V13Z"})],-1)),h(" "+p(s.getTodayButtonText())+" ",1),t.todayMatchCount>0?(f(),d("span",Jt,p(t.todayMatchCount),1)):g("",!0),t.todayLoading?(f(),d("div",es)):g("",!0)],2)):g("",!0),(null==(n=t.leagueConfigs)?void 0:n.length)>0?(f(),d("div",{key:1,onClick:a[1]||(a[1]=(...e)=>s.handleLeagueClick&&s.handleLeagueClick(...e)),class:m(["msp-league-toggle msp-mode-toggle",{"msp-league-toggle-active":"league"===t.viewMode}])},[a[7]||(a[7]=u("svg",{class:"msp-league-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M12 2L15.09 8.26L22 9L17 14.14L18.18 21L12 17.77L5.82 21L7 14.14L2 9L8.91 8.26L12 2Z"})],-1)),a[8]||(a[8]=h(" Leagues ",-1)),(null==(i=t.leagueConfigs)?void 0:i.length)>0?(f(),d("span",as,p(t.leagueConfigs.length),1)):g("",!0)],2)):g("",!0)]),"today"===t.viewMode?(f(),d("div",ts,[a[11]||(a[11]=u("div",{class:"msp-calendar-text"},"Cụ thá»",-1)),u("div",ss,[u("div",os,[x(u("input",{"onUpdate:modelValue":a[2]||(a[2]=e=>s.selectedDateString=e),onChange:a[3]||(a[3]=(...e)=>s.onDateChange&&s.onDateChange(...e)),name:"date",type:"date",class:"msp-input",placeholder:"Chá»n ngà y",max:(new Date).toISOString().split("T")[0],title:"Chá» có thá» chá»n ngà y trong quá khứ hoặc hôm nay"},null,40,ls),[[E,s.selectedDateString]]),s.selectedDateString?(f(),d("i",{key:0,class:"msp-icon-clear",onClick:a[4]||(a[4]=(...e)=>s.clearDate&&s.clearDate(...e))},[...a[9]||(a[9]=[u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"
1currentColor"},[u("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)])])):g("",!0),u("i",{class:"msp-icon-calendar",onClick:a[5]||(a[5]=(...e)=>s.handleCalendarClick&&s.handleCalendarClick(...e))},[...a[10]||(a[10]=[u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"})],-1)])])])])])):g("",!0)]),u("div",ns,[a[12]||(a[12]=u("span",{class:"msp-sort-pills__label"},"Sắp xếp:",-1)),u("div",is,[(f(!0),d(v,null,y(t.sortOptions,e=>(f(),d("button",{key:e.value,onClick:a=>s.selectSortOption(e.value),class:m(["msp-sort-pill",{"msp-sort-pill--active":t.currentSort===e.value}])},p(e.label),11,rs))),128))])])])])}]])},props:{uuid:{type:String,required:!1,validator:e=>!e||e.length>0},leagues:{type:[String,Array],required:!1,default:null},leagueSet:{type:String,required:!1,default:null},defaultView:{type:String,default:"today",validator:e=>["today","league","single"].includes(e)},showTodayButton:{type:Boolean,default:!0},todayMatchLimit:{type:Number,default:100},showDate:{type:Boolean,default:!0},dateRange:{type:String,default:"today",validator:e=>["today","yesterday","week","last_week","month"].includes(e)},showDateFilter:{type:Boolean,default:!0},title:{type:String,default:"Match Results"},limit:{type:[String,Number],default:50}},setup(e){const a=i(e.defaultView),t=i("priority"),s=i([{value:"priority",label:"Ná»i báºt"},{value:"time",label:"Theo thá»i gian"},{value:"league",label:"Theo giải Äấu"},{value:"status",label:"Theo trạng thái"}]),r=i([]),{matchUrls:d,getMatchUrl:u,hasMatchUrl:m,fetchMatchUrls:h}=ae(r,{autoFetch:!1}),p=Ga(0,t,d),g=Ka();D("getMatchUrl",u),D("hasMatchUrl",m);const v=i([]),y=i(0),f=i(!1),w=i(null),_=i("");let C=null,b=[];const k=n(()=>e.showTodayButton||e.leagues||e.leagueSet),S=n(()=>!(!e.leagues&&!e.leagueSet)),L=n(()=>"league"===a.value&&v.value.length?v.value[y.value]:null),M=n(()=>!("league"!==a.value||!L.value)&&g.hasMore.value(L.value.id)),T=n(()=>!("league"!==a.value||!L.value)&&g.isLoadingMore.value(L.value.id)),$=n(()=>"today"===a.value?p.isLoading.value:"league"===a.value&&L.value?g.isLoading.value(L.value.id):f.value),x=n(()=>p.matches.value),E=n(()=>p.loading.value),R=n(()=>p.error.value),A=n(()=>p.matchCount.value),H=n(()=>g.leagueData),N=n(()=>g.loadingStates),P=n(()=>g.availableRounds.value),F=n({get:()=>g.selectedRoundGroupNum.value,set:e=>g.selectedRoundGroupNum.value=e});o([x,H],([e,a])=>{const t=[];e&&e.length>0&&t.push(...e),a&&"object"==typeof a&&Object.values(a).forEach(e=>{e&&e.length>0&&t.push(...e)}),t.length>0&&(r.value=t,h(t))},{deep:!0});const O=()=>{var e,a;return(null==(e=window.wpData)?void 0:e.currentLanguage)||(null==(a=document.documentElement.lang)?void 0:a.split("-")[0])||"en"},U=async(e=null)=>{await p.fetchTodayResults(e)},z=async(e,a=1,t=!1)=>{await g.fetchLeagueResults(e,a,t)};return c(async()=>{try{await(async()=>{try{f.value=!0,w.value=null;let a=[];if(e.leagueSet){const t=await fetch(`/wp-json/msp/v1/competitions/by-set/${e.leagueSet}?language=${O()}`);if(t.ok){const e=await t.json();a=e.success?e.data:[]}}else if(e.leagues){const t=Array.isArray(e.leagues)?e.leagues:e.leagues.split(",").map(e=>e.trim()),s=await fetch(`/wp-json/msp/v1/competitions/by-ids?ids=${t.join(",")}&language=${O()}`);if(s.ok){const e=await s.json();a=e.success?e.data:[]}}else{const e=await fetch(`/wp-json/msp/v1/competitions/active?language=${O()}`);if(e.ok){const t=await e.json();a=t.success?t.data:[]}}if(0===a.length)return console.warn("No active competitions found. Please mark some competitions as Hot or Featured in WordPress Admin."),void(v.value=[]);v.value=a,console.log("League Initialization Debug:",{leagues_count:a.length,leagues_sample:a.slice(0,2).map(e=>({id:e.id,name:e.name,season_id:e.season_id,uuid:e.uuid})),activeLeagueIndex:y.value,currentLeague:a[y.value]}),a.forEach(e=>{g.initializeLeague(e)})}catch(a){console.error("Failed to load league configuration:",a),v.value=[]}finally{f.value=!1}})(),"today"===a.value?await U():"league"===a.value&&v.value.length>0&&await z(v.value[0]),await I(),C=qa.create({currentLeague:L,leagueConfigs:v,paginationData:g.paginationData,loadMoreStates:g.loadMoreStates,fetchLeagueResults:z})}catch(t){console.error("Error in Results component onMounted:",t)}}),l(()=>{try{C&&(C.destroy(),qa.destroy()),b.forEach(clearTimeout),b=[],p.
1clear()}catch(e){console.error("Error in Results component onUnmounted:",e)}}),{viewMode:a,todayMatches:x,todayLoading:E,todayError:R,todayMatchCount:A,leagueConfigs:v,leagueData:H,leagueLoadingStates:N,activeLeagueIndex:y,loading:f,error:w,selectedDateString:_,currentSort:t,sortOptions:s,availableRounds:P,selectedRoundGroupNum:F,showNavigation:k,isMultiLeague:S,currentLeague:L,hasMore:M,isLoadingMore:T,isLoading:$,handleViewChange:e=>{var t;if(console.log("View mode change:",{from:a.value,to:e}),a.value=e,"league"===e&&_.value&&(_.value=""),"today"===e)p.hasMatches.value||U();else if("league"===e&&v.value.length>0){g.clearRoundState();const e=v.value[y.value];!e||g.leagueData[e.id]&&0!==g.leagueData[e.id].length?e&&(null==(t=g.leagueData[e.id])?void 0:t.length)>0&&g.generateAvailableRounds(g.leagueData[e.id]):z(e)}},handleDateChange:e=>{_.value=e,"today"===a.value&&U(e)},handleDateClear:()=>{_.value="","today"===a.value&&U()},handleSortChange:e=>{t.value=e},handleTodayClick:()=>{_.value="",U()},handleLeagueClick:()=>{},handleMatchClick:e=>{console.log("Match clicked:",e)},handleLeagueChange:e=>{var a;const t=v.value[y.value],s=v.value[e];console.log("League change:",{from_league:(null==t?void 0:t.name)||"None",from_index:y.value,to_league:(null==s?void 0:s.name)||"None",to_index:e}),y.value=e,g.clearRoundState();const o=v.value[e];!o||g.leagueData[o.id]&&0!==g.leagueData[o.id].length?o&&(null==(a=g.leagueData[o.id])?void 0:a.length)>0&&(console.log("Regenerating rounds for cached league:",o.name),g.generateAvailableRounds(g.leagueData[o.id])):(console.log("Fetching fresh data for league:",o.name),z(o))},handleLoadMore:async()=>{if("league"!==a.value||!L.value||T.value)return;const e=L.value;await g.loadMore(e)},handleRoundSelect:e=>{g.selectedRoundGroupNum.value=e},handleTabHover:(e,a)=>{C&&C.handleTabHover(e,a)},handleTabHoverEnd:(e,a)=>{C&&C.handleTabHoverEnd(e,a)},retryTodayResults:()=>{p.retry()},retryLeagueResults:()=>{L.value&&z(L.value)}}}},ds={class:"msp-results-container msp-theme-default"},us={class:"msp-results-header"},ms={key:0,class:"msp-loading-indicator"};const hs=r(cs,[["render",function(e,a,t,s,o,l){const n=L("ResultsNavigation"),i=L("TodayResults"),r=L("LeagueResults");return f(),d("div",ds,[u("div",us,[s.isLoading&&"single"===s.viewMode?(f(),d("div",ms,"Äang tải...")):g("",!0)]),s.showNavigation?(f(),M(n,{key:0,"view-mode":s.viewMode,"show-today-button":t.showTodayButton,"league-configs":s.leagueConfigs,"today-match-count":s.todayMatchCount,"today-loading":s.todayLoading,"selected-date":s.selectedDateString,"current-sort":s.currentSort,"sort-options":s.sortOptions,onViewChange:s.handleViewChange,onDateChange:s.handleDateChange,onDateClear:s.handleDateClear,onSortChange:s.handleSortChange,onTodayClick:s.handleTodayClick,onLeagueClick:s.handleLeagueClick},null,8,["view-mode","show-today-button","league-configs","today-match-count","today-loading","selected-date","current-sort","sort-options","onViewChange","onDateChange","onDateClear","onSortChange","onTodayClick","onLeagueClick"])):g("",!0),"today"===s.viewMode?(f(),M(i,{key:1,matches:s.todayMatches,"is-loading":s.todayLoading,error:s.todayError,"selected-date":s.selectedDateString,onMatchClick:s.handleMatchClick,onRetry:s.retryTodayResults},null,8,["matches","is-loading","error","selected-date","onMatchClick","onRetry"])):g("",!0),"league"===s.viewMode?(f(),M(r,{key:2,"league-configs":s.leagueConfigs,"active-league-index":s.activeLeagueIndex,"league-data":s.leagueData,"league-loading-states":s.leagueLoadingStates,"available-rounds":s.availableRounds,"selected-round-group-num":s.selectedRoundGroupNum,"has-more":s.hasMore,"is-loading-more":s.isLoadingMore,error:s.error,onLeagueChange:s.handleLeagueChange,onMatchClick:s.handleMatchClick,onLoadMore:s.handleLoadMore,onRetry:s.retryLeagueResults,onTabHover:s.handleTabHover,onTabHoverEnd:s.handleTabHoverEnd,onRoundSelect:s.handleRoundSelect},null,8,["league-configs","active-league-index","league-data","league-loading-states","available-rounds","selected-round-group-num","has-more","is-loading-more","error","onLeagueChange","onMatchClick","onLoadMore","onRetry","onTabHover","onTabHoverEnd","onRoundSelect"])):g("",!0)])}]]),ps={name:"TeamFormBadge",components:{ExclamationTriangleIcon:{render:()=>R("svg",{fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor"},[R("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0-2.814-1.874-1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"})])},MinusIcon:{render:()=>R("svg",{fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor"},[R("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 12h-15"})])},CalendarIcon:{render:()=>R("svg",{fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor"},[R("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5a2.25 2.25 0 002.25-2.25m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5a2.25 2.25 0 002.25 2.25v7.5"})])},MapPinIcon:{render:()=>R("svg",{fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor"},[R("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 10.5a3 3 0 11-6 0 3 3 0 016 0z"}),R("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25s-7.5-4.108-7.5-11.25a7.5 7.5 0 0115 0z"})])},TrophyIcon:{render:()=>R("svg",{fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor"},[R("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 18.75h-9m9 0a3 3 0 013 3h-15a3 3 0 013-3m9 0v
1-3.375c0-.621-.503-1.125-1.125-1.125h-.871M7.5 18.75v-3.375c0-.621.504-1.125 1.125-1.125h.871m0 0L9 15.75m0 0l.621-3.497M9 15.75l-.621-3.497M16.5 15.75L15.879 12.253M16.5 15.75l.621-3.497M9.621 8.756L12 9l2.379-.244M9.621 8.756c.206-1.544.89-3.119 1.691-4.511.094-.164.158-.242.228-.242.07 0 .134.078.228.242.801 1.392 1.485 2.967 1.691 4.511M12 2.25c-3.128 0-4.216.749-4.216 2.497 0 .747.34 1.494 1.216 2.253 1.5.878 2.751-.256 3-1.75.249 1.494 1.5 2.628 3 1.75.876-.759 1.216-1.506 1.216-2.253 0-1.748-1.088-2.497-4.216-2.497z"})])}},props:{formData:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},error:{type:String,default:null},maxBadges:{type:Number,default:5},mobileMaxBadges:{type:Number,default:3},enableTooltips:{type:Boolean,default:!0},richTooltips:{type:Boolean,default:!0}},setup(e){const a=i({}),t=i(null),s=i(null),o=i(-1),r=i(-1),d=i(!1),u=i(""),m=i(!1),h=$({x:0,y:0,placement:"top"}),p=$({delay:150,hideDelay:100,offset:8,arrow:!0,maxWidth:300});let g=null,v=null;const y=i(!1),f=i(!1),w=n(()=>{var a;return(null==(a=e.formData)?void 0:a.length)?e.formData.slice(0,e.maxBadges):[]}),_=e=>{switch(null==e?void 0:e.toLowerCase()){case"w":case"win":return"Win";case"d":case"draw":return"Draw";case"l":case"loss":return"Loss";default:return"Unknown"}},C="Asia/Ho_Chi_Minh",b=e=>{if(!e)return"N/A";try{return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:C})}catch{return"N/A"}},k=e=>{if(!e||!t.value)return;const a=e.getBoundingClientRect(),s=t.value.getBoundingClientRect(),o=window.innerWidth,l=window.innerHeight,n=window.scrollX,i=window.scrollY;let r="top",c=a.left+a.width/2-s.width/2,d=a.top-s.height-p.offset;d<0&&(r="bottom",d=a.bottom+p.offset),c=Math.max(8,Math.min(c,o-s.width-8)),d=Math.max(8,Math.min(d,l-s.height-8)),h.x=c+n,h.y=d+i,h.placement=r},S=(a,t,o={})=>{v&&(clearTimeout(v),v=null),s.value=t,m.value=e.richTooltips,u.value=e.richTooltips?"":M(t),Object.assign(p,o),g=setTimeout(()=>{d.value=!0,I(()=>{k(a)})},p.delay)},L=()=>{g&&(clearTimeout(g),g=null),v=setTimeout(()=>{d.value=!1,s.value=null,u.value=""},p.hideDelay)},M=e=>{const a=_(e.result),t=e.opponent||e.away_team||e.home_team,s=b(e.date),o=void 0!==e.home_score?`${e.home_score}-${e.away_score}`:"";return`${a} ${o?`(${o})`:""} vs ${t} on ${s}`},T=()=>{y.value=window.matchMedia("(prefers-reduced-motion: reduce)").matches},D=()=>{f.value=window.matchMedia("(max-width: 768px)").matches||"ontouchstart"in window||navigator.maxTouchPoints>0},x=()=>{d.value&&t.value&&I(()=>{k(a.value[o.value])})};return c(()=>{T(),D();const e=window.matchMedia("(prefers-reduced-motion: reduce)"),a=window.matchMedia("(max-width: 768px)");e.addEventListener("change",T),a.addEventListener("change",D),window.addEventListener("resize",x),window.addEventListener("scroll",x,{passive:!0}),l(()=>{e.removeEventListener("change",T),a.removeEventListener("change",D),window.removeEventListener("resize",x),window.removeEventListener("scroll",x),g&&clearTimeout(g),v&&clearTimeout(v)})}),{tooltipEl:t,activeMatch:s,hoveredIndex:o,focusedIndex:r,isTooltipVisible:d,tooltipContent:u,tooltipIsRichContent:m,tooltipPosition:h,tooltipConfig:p,badgeRefs:a,reducedMotion:y,isMobile:f,displayedMatches:w,setBadgeRef:(e,t)=>{e&&(a.value[t]=e)},getBadgeClass:e=>{const a="form-badge";switch(null==e?void 0:e.toLowerCase()){case"w":case"win":return`${a} form-badge-win`;case"d":case"draw":return`${a} form-badge-draw`;case"l":case"loss":return`${a} form-badge-loss`;default:return`${a} form-badge-neutral`}},getScoreIndicatorClass:e=>{if(!e.home_score||!e.away_score)return"";const a=Math.abs(e.home_score-e.away_score);return a>=3?"score-big-win":a>=2?"score-comfortable":"score-close"},getResultText:_,formatDate:b,formatFullDate:e=>{if(!e)return"Date not available";try{return new Date(e).toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",timeZone:C})}catch{return"Date not available"}},handleMouseEnter:(a,t,s)=>{e.enableTooltips&&!f.value&&(o.value=s,S(a.currentTarget,t,{placement:"top",offset:8,maxWidth:e.richTooltips?350:250}))},handleMouseLeave:()=>{e.enableTooltips&&(o.value=-1,L())},handleTouchStart:(a,t,s)=>
1{e.enableTooltips&&f.value&&(a.preventDefault(),o.value=s,S(a.currentTarget,t,{placement:"top",offset:12,maxWidth:300}),setTimeout(()=>{L()},3e3))},handleKeyDown:(a,t,s)=>{e.enableTooltips&&("Enter"===a.key||" "===a.key?(a.preventDefault(),r.value=s,d.value?L():S(a.currentTarget,t,{placement:"top",offset:8,maxWidth:e.richTooltips?350:250})):"Escape"===a.key&&L())},handleFocus:(e,a,t)=>{r.value=t},handleBlur:()=>{r.value=-1,d.value&&L()},handleImageError:e=>{e.target.style.display="none"},handleTooltipMouseEnter:()=>{v&&(clearTimeout(v),v=null)},handleTooltipMouseLeave:()=>{L()}}}},gs={class:"team-form-container"},vs={key:0,class:"form-loading"},ys={key:1,class:"form-error"},fs={class:"form-error-badge"},ws={key:2,class:"form-badges"},_s=["onMouseenter","onTouchstart","onKeydown","onFocus","aria-label"],Cs={class:"form-result-text"},bs={key:3,class:"form-empty"},ks={class:"form-empty-badge"},Ss={class:"tooltip-content"},Ls={key:0,class:"tooltip-rich-content"},Ms={class:"tooltip-header"},Ts={key:0,class:"tooltip-score"},Ds={class:"tooltip-body"},$s={class:"tooltip-match-info"},Is={class:"tooltip-teams"},xs={class:"tooltip-team"},Es=["src","alt"],Rs={class:"tooltip-team-name"},As={class:"tooltip-team"},Hs=["src","alt"],Ns={class:"tooltip-team-name"},Ps={class:"tooltip-meta"},Fs={class:"tooltip-date"},Os={key:0,class:"tooltip-venue"},Us={key:1,class:"tooltip-league"},zs={key:0,class:"tooltip-stats"},Bs={class:"tooltip-stats-grid"},js={class:"tooltip-stat-label"},Vs={class:"tooltip-stat-value"},qs={key:1,class:"tooltip-simple-content"};const Gs=r(ps,[["render",function(e,a,t,s,o,l){var n;const i=L("ExclamationTriangleIcon"),r=L("MinusIcon"),c=L("CalendarIcon"),h=L("MapPinIcon"),w=L("TrophyIcon");return f(),d("div",gs,[t.loading?(f(),d("div",vs,[(f(!0),d(v,null,y(t.maxBadges,e=>(f(),d("div",{key:`skeleton-${e}`,class:m(["form-skeleton",{"msp-hidden-mobile":e>t.mobileMaxBadges}])},null,2))),128))])):t.error?(f(),d("div",ys,[u("div",fs,[b(i,{class:"h-3 w-3"})])])):(null==(n=t.formData)?void 0:n.length)?(f(),d("div",ws,[(f(!0),d(v,null,y(s.displayedMatches,(e,o)=>(f(),d("div",{key:`${e.id}-${o}`,ref_for:!0,ref:e=>s.setBadgeRef(e,o),class:m(["form-badge-wrapper",{"msp-hidden-mobile":o>=t.mobileMaxBadges,"animate-fade-in":!s.reducedMotion}]),style:T({animationDelay:s.reducedMotion?"0ms":50*o+"ms"}),onMouseenter:a=>s.handleMouseEnter(a,e,o),onMouseleave:a[0]||(a[0]=(...e)=>s.handleMouseLeave&&s.handleMouseLeave(...e)),onTouchstart:a=>s.handleTouchStart(a,e,o),onKeydown:a=>s.handleKeyDown(a,e,o),onFocus:a=>s.handleFocus(a,e,o),onBlur:a[1]||(a[1]=(...e)=>s.handleBlur&&s.handleBlur(...e)),tabindex:"0","aria-label":`${s.getResultText(e.result)} against ${e.opponent||e.home_team||e.away_team} on ${s.formatDate(e.date)}`,role:"button"},[u("div",{class:m(["form-badge",[s.getBadgeClass(e.result),{"form-badge-hover":!s.isMobile,"form-badge-focus":s.focusedIndex===o,"animate-bounce-subtle":!s.reducedMotion&&s.hoveredIndex===o}]])},[u("span",Cs,p(e.result.toUpperCase()),1),void 0!==e.home_score&&void 0!==e.away_score?(f(),d("div",{key:0,class:m(["form-score-indicator",s.getScoreIndicatorClass(e)])},null,2)):g("",!0)],2)],46,_s))),128))])):(f(),d("div",bs,[u("div",ks,[b(r,{class:"empty-icon"})])])),(f(),M(A,{to:"body"},[s.isTooltipVisible?(f(),d("div",{key:0,ref:"tooltipEl",id:"msp-tooltip",class:m(["tooltip-container",[`tooltip-${s.tooltipPosition.placement}`,{"tooltip-animate-in":!s.reducedMotion,"tooltip-rich":s.tooltipIsRichContent}]]),style:T({left:`${s.tooltipPosition.x}px`,top:`${s.tooltipPosition.y}px`,maxWidth:`${s.tooltipConfig.maxWidth}px`}),role:"tooltip","aria-live":"polite",onMouseenter:a[4]||(a[4]=(...e)=>s.handleTooltipMouseEnter&&s.handleTooltipMouseEnter(...e)),onMouseleave:a[5]||(a[5]=(...e)=>s.handleTooltipMouseLeave&&s.handleTooltipMouseLeave(...e))},[u("div",Ss,[s.tooltipIsRichContent&&s.activeMatch?(f(),d("div",Ls,[u("div",Ms,[u("div",{class:m(["tooltip-result",s.getBadgeClass(s.activeMatch.result)])},p(s.getResultText(s.activeMatch.result)),3),void 0!==s.activeMatch.home_score&&void 0!==s.activeMatch.away_score?(f(),d("div",Ts,p(s.activeMatch.home_score)+" - "+p(s.activeMatch.away_score),1)):g("",!0)]),u("div",Ds,[u("div",$s,[u("div",Is,[u("div",xs,[s.activeMatch.home_logo?(f(),d("img",{key:0,src:s.activeMatch.home_logo,alt:s.activeMatch.home_team,class:"tooltip-team-logo",onError:a[2]||(a[2]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,Es)):g("",!0),u("span",Rs,p(s.activeMatch.home_team||"Home"),1)]),a[6]||(a[6]=u("div",{class:"tooltip-vs"},"vs",-1)),u("div",As,[s.activeMatch.away_logo?(f(),d("img",{key:0,src:s.activeMatch.away_logo,alt:s.activeMatch.away_team,class:"tooltip-team-logo",onError:a[3]||(a[3]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,Hs)):g("",!0),u("span",Ns,p(s.activeMatch.away_team||s.activeMatch.opponent||"Away"),1)])]),u("div",Ps,[u("div",Fs,[b(c,{class:"h-3 w-3"}),u("span",null,p(s.formatFullDate(s.activeMatch.date)),1)]),s.activeMatch.venue?(f(),d("div",Os,[b(h,{class:"h-3 w-3"}),u("span",null,p(s.activeMatch.venue),1)])):g("",!0),s.activeMatch.league?(f(),d("div",Us,[b(w,{class:"h-3 w-3"}),u("span",null,p(s.activeMatch.league),1)])):g("",!0)])]),s.activeMatch.stats?(f(),d("div",zs,[a[7]||(a[7]=u("div",{class:"tooltip-stats-title"},"Match Stats",-1)),u("div",Bs,[(f(!0),d(v,null,y(s.activeMatch.stats,e=>(f(),d("div",{key:e.name,class:"tooltip-stat"},[u("span",js,p(e.name),1),u("span",Vs,p(e.value),1)]))),128))])])):g("",!0)])])):(f(),d("div",qs,p(s.tooltipContent),1))]),s.tooltipConfig.arrow?(f(),d("div",{key:0,class:m(["tooltip-arrow",`tooltip-arrow-${s.tooltipPosition.placement}`])},null,2)):g("",!0)],38)):g("",!0)]))])}],["__scopeId","data-v-28e81ec3"]]);function Ks(e){return e&&Array.isArray(e.tables)?e:e&&e.success&&e.data?e.data:null}class Ws{constructor(){this.initializeColorMappings(),this.initializeFuzzyMatchers(),this.adminOverrides={},this.loadAdminOverrides()}initializeColorMappings(){this.promotionColorMap={"champions league":"#1e3a8a","champions league league stage":"#1e3a8a","champions league qualifying":"#1e3a8a",ucl:"#1e3a8a",cl:"#1e3a8a","europa league":"#ea580c","europa league qualifying":"#ea580c",uel:"#ea580c",el:"#ea580c","conference league":"#16a34a","conference league qualifying":"#16a34a",uecl:"#16a34a",ecl:"#16a34a",relegation:"#dc2626",relegated:"#dc2626","relegation zone":"#dc2626","relegation playoffs":"#f97316","relegation playoff":"#f97316",promotion:"#10b981",promoted:"#10b981","automatic promotion":"#10b981","auto promotion":"#10b981","direct promotion":"#10b981","promotion playoffs":"#7c3aed","promotion playoff":"#7c3aed",playoffs:"#3b82f6",playoff:"#3b82f6","copa libertadores":"#059669",libertadores:"#059669","copa sudamericana":"#0369a1",sudamericana:"#0369a1","afc champions league":"#7c2d12","asian champions league":"#7c2d12",afc:"#7c2d12","caf champions league":"#92400e","african champions league":"#92400e",caf:"#92400e","world cup":"#0891b2","world cup qualification":"#0891b2","world cup qualifying":"#0891b2","world cup playoffs":"#3b82f6","world cup playoff":"#3b82f6","international competition":"#0891b2",final:"#eab308",finals:"#eab308","cup final":"#eab308",championship:"#eab308",champion:"#eab308","semi-final":"#a3a3a3",semifinals:"#a3a3a3","semi final":"#a3a3a3",qualification:"#3b82f6",qualifying:"#3b82f6",safe:"#6b7280","mid-table":"#6b7280",nothing:"#6b7280","no change":"#6b7280"},this.variantMappings={champions:"champions league",europa:"europa league",conference:"conference league","promotion playoff":"promotion playoffs","relegation playoff":"relegation playoffs"}}initializeFuzzyMatchers(){this.fuzzyPatterns=[{pattern:/champions?.*league/i,color:"#1e3a8a",type:"champions_league"},{pattern:/^(ucl|cl)$/i,color:"#1e3a8a",type:"champions_league"},{pattern:/champions?/i,color:"#1e3a8a",type:"champions_league"},{pattern:/europa.*league/i,color:"#ea580c",type:"europa_league"},{pattern:/^(uel|el)$/i,color:"#ea580c",type:"europa_league"},{pattern:/europa/i,color:"#ea580c",type:"europa_league"},{pattern:/conference.*league/i,color:"#16a34a",type:"conference_league"},{pattern:/^(uecl|ecl)$/i,color:"#16a34a",type:"conference_league"},{pattern:/conference/i,color:"#16a34a",type:"conference_league"},{pattern:/relegat/i,color:"#dc2626",type:"relegation"},{pattern:/relegated/i,color:"#dc2626",type:"relegation"},{pattern:/drop/i,color:"#dc2626",type:"relegation"},{pattern:/promot.*auto|auto.*promot/i,color:"#10b981",type:"promotion_auto"},{pattern:/promot.*playoff|playoff.*promot/i,color:"#7c3aed",type:"promotion_playoff"},{pattern:/promot/i,color:"#10b981",type:"promotion"},{pattern:/playoff/i,color:"#3b82f6",type:"playoffs"},{pattern:/final/i,color:"#eab308",type:"final"},{pattern:/semi.*final/i,color:"#a3a3a3",type:"semifinal"},{pattern:/libertadores/i,color:"#059669",type:"copa_libertadores"},{pattern:/sudamericana/i,color:"#0369a1",type:"copa_sudamericana"},{pattern:/world.*cup/i,color:"#0891b2",type:"world_cup"},{pattern:/safe|mid.*table|nothing/i,color:"#6b7280",type:"neutral"}]}getStandardColor(e,a=null){if(!e){const e=this.applyAdminOverrides("neutral",a||"#6b7280");return this.createColorResult(e,"neutral","api_fallback")}const t=this.normalizePromotionName(e);let s=null,o="unknown",l="fallback";const n=this.promotionColorMap[t];if(n&&(s=n,o=this.getTypeFromColor(n),l="exact_match"),!s){const e=this.variantMappings[t];e&&this.promotionColorMap[e]&&(s=this.promotionColorMap[e],o=this.getTypeFromColor(s),l="variant_match")}if(!s){const e=this.findFuzzyMatch(t);e&&(s=e.color,o=e.type,l="fuzzy_match")}if(!s&&a){const e=this.standardizeApiColor(a);e!==a&&(s=e,o="unknown",l="api_standardized")}s||(s=a||"#6b7280",o="unknown",l="fallback");const i=this.applyAdminOverrides(e,s);return i!==s&&(l="admin_override"),this.createColorResult(i,o,l)}normalizePromotionName(e){return e.toLowerCase().trim().replace(/[^\w\s]/g," ").replace(/\s+/g," ").trim()}findFuzzyMatch(e){for(const a of this.fuzzyPatterns)if(a.pattern.test(e))return{color:a.color,type:a.type};return null}standardizeApiColor(e){return{"#fa8072":"#1e3a8a","#ff6347":"#ea580c","#98fb98":"#16a34a","#ffa500":"#f97316","#00ff00":"#10b981","#ff0000":"#dc2626","#0000ff":"#3b82f6","#ffff00":"#eab308","#800080":"#7c3aed"}[e.toLowerCase()]||e}getTypeFromColor(e){return{"#1e3a8a":"champions_league","#ea580c":"europa_league","#16a34a":"conference_league","#dc2626":"relegation","#f97316":"relegation_playoff","#10b981":"promotion","#7c3aed":"promotion_playoff","#3b82f6":"playoffs","#059669":"copa_libertadores","#0369a1":"copa_sudamericana","#7c2d12":"afc_champions","#92400e":"caf_champions","#0891b2":"world_cup","#eab308":"final","#a3a3a3":"semifinal","#6b7280":"neutral"}[e]||"unknown"}loadAdminOverrides(){void 0!==window.mspAdminData&&window.mspAdminData.colorOverrides?this.adminOverrides=window.mspAdminData.colorOverrides:"undefined"!=typeof jQuery&&"undefined"!=typeof wp&&wp.ajax&&jQuery.post(wp.ajax.settings.url,{action:"msp_get_color_overrides",nonce:wp.ajax.settings.nonce}).done(e=>{e.success&&e.data.color_overrides&&(this.adminOverrides=e.data.color_overrides)}).fail(()=>{this.adminOverrides={}})}applyAdminOverrides(e,a){if(!e||0===Object.keys(this.adminOverrides).length)return a;const t=this.normalizePromotionName(e);return this.adminOverrides[t]||a}refreshAdminOverrides(e=null){e?this.adminOverrides=e:this.loadAdminOverrides()}getAdminOverrides(){return{...this.adminOverrides}}generateCssClass(e){if(!e)return"msp-neutral";let a;if(e.includes("_")&&!e.includes(" "))a=e.toLowerCase().replace(/_/g,"-").replace(/[^a-z0-9-]/g,"");else{a=this.normalizePromotionName(e).replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}return a=a.substring(0,30),`msp-${a}`}createColorResult(e,a,t){return{color:e,type:a,source:t,cssClass:this.generateCssClass(a),isStandardized:"fallback"!==t&&"api_fallback"!==t}}processPromotions(e){return Array.isArray(e)?e.map((e,a)=>{const t=this.getStandardColor(e.name,e.color);return{...e,originalColor:e.color,standardColor:t.color,standardType:t.type,cssClass:t.cssClass,colorSource:t.source,isStandardized:t.isStandardized,priority:this.getPri
1orityFromType(t.type,a)}}):[]}getPriorityFromType(e,a=5){return{champions_league:1,europa_league:2,conference_league:3,world_cup:1,copa_libertadores:1,afc_champions:1,caf_champions:1,promotion:2,promotion_playoff:3,final:1,semifinal:2,playoffs:4,neutral:5,relegation_playoff:8,relegation:10}[e]||a+5}checkAccessibility(e,a="#1f2937"){const t=this.getLuminance(e),s=this.getLuminance(a),o=(Math.max(t,s)+.05)/(Math.min(t,s)+.05);return{contrastRatio:Math.round(100*o)/100,wcagAA:o>=4.5,wcagAAA:o>=7,recommendation:o>=7?"excellent":o>=4.5?"good":"needs_improvement"}}getLuminance(e){const a=this.hexToRgb(e);if(!a)return 0;const[t,s,o]=[a.r,a.g,a.b].map(e=>(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4));return.2126*t+.7152*s+.0722*o}hexToRgb(e){const a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return a?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null}}"undefined"!=typeof window&&(window.LegendColorService=Ws);class Zs{constructor(){this.colorService=new Ws,this.initializeFallbackTemplates()}initializeFallbackTemplates(){this.fallbackTemplates={uefa_standard:{name:"European Competition Qualifications",totalTeams:20,items:[{positions:[1,2,3,4],label:"Champions League",type:"champions_league",priority:1},{positions:[5,6],label:"Europa League",type:"europa_league",priority:2},{positions:[7],label:"Conference League",type:"conference_league",priority:3},{positions:[18,19,20],label:"Relegation",type:"relegation",priority:10}]},championship_promotion:{name:"Championship Promotion System",totalTeams:24,items:[{positions:[1,2],label:"Automatic Promotion",type:"promotion",priority:1},{positions:[3,4,5,6],label:"Promotion Playoffs",type:"promotion_playoff",priority:2},{positions:[22,23,24],label:"Relegation",type:"relegation",priority:10}]},cup_group:{name:"Group Stage Qualifications",totalTeams:4,items:[{positions:[1,2],label:"Knockout Stage",type:"final",priority:1}]},world_cup_qualifying:{name:"World Cup Qualifying",totalTeams:6,items:[{positions:[1],label:"World Cup Qualification",type:"world_cup",priority:1},{positions:[2],label:"World Cup Playoffs",type:"playoffs",priority:2}]},simple_topbottom:{name:"Competition Results",totalTeams:null,items:[{positions:[1],label:"Champion",type:"final",priority:1},{positions:[-1],label:"Last Place",type:"relegation",priority:10}]},south_american:{name:"South American Competitions",totalTeams:20,items:[{positions:[1,2,3,4],label:"Copa Libertadores",type:"copa_libertadores",priority:1},{positions:[5,6],label:"Copa Libertadores Qualifying",type:"copa_libertadores",priority:1},{positions:[7,8,9,10,11,12],label:"Copa Sudamericana",type:"copa_sudamericana",priority:2},{positions:[17,18,19,20],label:"Relegation",type:"relegation",priority:10}]}}}processPromotions(e,a={}){if(e.promotions&&Array.isArray(e.promotions)&&e.promotions.length>0)return this.processApiPromotions(e,a);const t=this.detectCompetitionTemplate(a,e);return t?this.processTemplatePromotions(t,e,a):this.processPositionBasedFallback(e,a)}processApiPromotions(e,a){const t=e.promotions||[],s=this.colorService.processPromotions(t).map(a=>{const t=this.getTeamPositionsForPromotion(a.id,e.tables||[]);return{...a,positions:t,hasTeams:t.length>0}}).filter(e=>e.hasTeams).sort((e,a)=>e.priority-a.priority);return{source:"api_promotions",name:this.generateLegendName(a,"api"),items:s.map(e=>({label:e.name,color:e.standardColor,cssClass:e.cssClass,positions:e.positions,priority:e.priority,description:this.generatePromotionDescription(e),isStandardized:e.isStandardized,originalData:{id:e.id,originalColor:e.originalColor,colorSource:e.colorSource}}))}}processTemplatePromotions(e,a,t){const s=this.getTotalTeamsCount(a),o=e.items.map(e=>{const a=this.resolveTemplatePositions(e.positions,s),o=this.colorService.getStandardColor(e.label,null);return{label:e.label,color:o.color,cssClass:o.cssClass,positions:a,priority:e.priority,description:this.generateTemplateDescription(e,t),isStandardized:!0}}).filter(e=>e.positions.length>0);return{source:"template_based",template:e.name,name:this.generateLegendName(t,"template"),items:o.sort((e,a)=>e.priority-a.priority)}}processPositionBasedFallback(e,a){const t=this.getTotalTeamsCount(e);
1if(t<4)return{source:"none",name:null,items:[]};const s=[];if(t>=4){const e=t>=20?[1,2,3,4]:[1],a=this.colorService.getStandardColor("Champions League",null);s.push({label:t>=20?"Top European Competition":"Winner",color:a.color,cssClass:a.cssClass,positions:e,priority:1,description:"Top qualification positions",isStandardized:!0})}if(t>=10){const e=Math.max(1,Math.floor(.15*t)),a=Array.from({length:e},(e,a)=>t-a).reverse(),o=this.colorService.getStandardColor("Relegation",null);s.push({label:"Relegation Zone",color:o.color,cssClass:o.cssClass,positions:a,priority:10,description:"Bottom positions",isStandardized:!0})}return{source:"position_based",name:this.generateLegendName(a,"position"),items:s}}getTeamPositionsForPromotion(e,a){const t=[];return Array.isArray(a)?(a.forEach(a=>{a.rows&&Array.isArray(a.rows)&&a.rows.forEach(a=>{a.promotion_id===e&&a.position&&t.push(a.position)})}),t.sort((e,a)=>e-a)):t}detectCompetitionTemplate(e,a){const t=this.getTotalTeamsCount(a),s=(e.name||"").toLowerCase(),o=(e.type||"").toLowerCase();return 4===t?this.fallbackTemplates.cup_group:t>=5&&t<=6&&(s.includes("world cup")||s.includes("qualifying"))?this.fallbackTemplates.world_cup_qualifying:24===t&&(s.includes("championship")||s.includes("segunda")||s.includes("serie b"))?this.fallbackTemplates.championship_promotion:s.includes("brasileiro")||s.includes("argentina")||s.includes("colombia")||o.includes("south america")?this.fallbackTemplates.south_american:20===t&&this.isEuropeanLeague(s)?this.fallbackTemplates.uefa_standard:null}isEuropeanLeague(e){return["premier league","la liga","bundesliga","serie a","ligue 1","eredivisie","primeira liga","jupiler","superliga","premier","liga","division","championship"].some(a=>e.includes(a))}getTotalTeamsCount(e){if(!e.tables||!Array.isArray(e.tables))return 0;let a=0;return e.tables.forEach(e=>{e.rows&&Array.isArray(e.rows)&&(a=Math.max(a,e.rows.length))}),a}resolveTemplatePositions(e,a){return e.map(e=>e<0?a+e+1:e).filter(e=>e>0&&e<=a)}generateLegendName(e,a){const t=e.name||"Competition";switch(a){case"api":return`${t} Qualifications`;case"template":return`${t} Legend`;case"position":return`${t} Positions`;default:return"Legend"}}generatePromotionDescription(e){const a=e.description||e.name;if(e.positions&&e.positions.length>0){return`${a} (${this.formatPositionsText(e.positions)})`}return a}generateTemplateDescription(e,a){if(e.description)return e.description;const t=this.formatPositionsText(e.positions);return`${e.label} (${t})`}formatPositionsText(e){if(!e||0===e.length)return"No positions";if(1===e.length)return`Position ${e[0]}`;if(2===e.length)return`Positions ${e[0]} & ${e[1]}`;return e.every((a,t)=>0===t||a===e[t-1]+1)?`Positions ${e[0]}-${e[e.length-1]}`:e.length<=4?`Positions ${e.join(", ")}`:`Positions ${e[0]}-${e[e.length-1]} (${e.length} teams)`}createPositionMapping(e){const a={};return e.items&&Array.isArray(e.items)?(e.items.forEach(e=>{e.positions&&Array.isArray(e.positions)&&e.positions.forEach(t=>{a[t]={cssClass:e.cssClass,color:e.color,label:e.label,priority:e.priority}})}),a):a}getPositionCssClass(e,a){const t=a[e];return t?t.cssClass:""}validateLegend(e){const a=[],t=[];return e&&"object"==typeof e?(e.items&&Array.isArray(e.items)?e.items.forEach((e,s)=>{e.label||a.push(`Item ${s}: Missing label`),e.color||a.push(`Item ${s}: Missing color`),e.positions&&Array.isArray(e.positions)&&0!==e.positions.length||t.push(`Item ${s}: No positions assigned`)}):a.push("Missing or invalid items array"),{valid:0===a.length,issues:a,warnings:t,itemCount:e.items?e.items.length:0}):(a.push("Invalid legend object"),{valid:!1,issues:a,warnings:t})}}"undefined"!=typeof window&&(window.PromotionsProcessor=Zs);const Qs={key:0,class:"msp-league-navigation"},Ys={class:"msp-league-tabs-wrapper"},Xs=["onClick","disabled"],Js=["src","alt"],eo={class:"msp-league-name"},ao={key:1,class:"msp-tab-spinner"};const to=r({name:"LeagueNavigation",props:{leagues:{type:Array,required:!0,default:()=>[]},activeIndex:{type:Number,required:!0,default:0},loadingStates:{type:Object,required:!0,default:()=>({})}},emits:["select"],methods:{handleSelectLeague(e){this.$emit("select",e)},handleImageError(e){e.target.style.display="none"}}},[["render",function(e,a,t,s,o,l){return t.leagues.length>0?(f(),d("div",Qs,[u("div",Ys,[(f(!0),d(v,null,y(t.leagues,(e,s)=>(f(),d("button",{key:e.id,onClick:e=>l.handleSelectLeague(s),class:m(["msp-league-tab",{"msp-league-tab-active":t.activeIndex===s},{"msp-league-tab-loading":t.loadingStates[e.id]}]),disabled:t.loadingStates[e.id]},[e.logo?(f(),d("img",{key:0,src:e.logo,alt:e.name,class:"msp-league-logo",onError:a[0]||(a[0]=(...e)=>l.handleImageError&&l.handleImageError(...e))},null,40,Js)):g("",!0),u("span",eo,p(e.name),1),t.loadingStates[e.id]?(f(),d("div",ao)):g("",!0)],10,Xs))),128))])])):g("",!0)}],["__scopeId","data-v-44abcfce"]]),so={name:"StandingsTable",components:{TeamFormBadge:Gs},props:{tables:{type:Array,required:!0,default:()=>[]},activeTabIndex:{type:Number,required:!0,default:0},showForm:{type:Boolean,default:!0},teamForms:{type:Object,required:!0,default:()=>({})},teamFormLoading:{type:Object,required:!0,default:()=>({})},teamFormErrors:{type:Object,required:!0,default:()=>({})},getPositionClass:{type:Function,required:!0},getPositionIndicatorClass:{type:Function,required:!0}},computed:{currentTable(){return this.tables&&this.tables.length&&this.tables[this.activeTabIndex]||{rows:[]}}},methods:{formatGoalDifference:e=>e>0?`+${e}`:e.toString(),getSortedTeams:e=>e&&Array.isArray(e)?[...e].sort((e,a)=>e.position-a.position):[],handleImageError(e){e.target.style.display="none"}}},oo={class:"msp-standings-table-container"},lo={class:"msp-standings-table"},no={key:0,class:"msp-form-col"},io=["data-team-uuid"],ro={class:"msp-pos-cell"},co={class:"msp-position"},uo={class:"msp-position-number"},mo={class:"msp-team-cell"},ho={class:"msp-team-info"},po=["src","alt"],go={class:"msp-team-name"},vo={class:"msp-matches-cell"},yo={class:"msp-wins-cell msp-hidden-mobile"},fo={class:"msp-draws-cell msp-hidden-mobile"},wo={class:"msp-losses-cell msp-hidden-mobile"},_o={class:"msp-goals-cell msp-hidden-mobile"},Co={class:"msp-goals-cell msp-hidden-mobile"},bo={class:"msp-points-cell"},ko={key:0,class:"msp-form-cell"};const So={name:"StandingsLegend",props:{legendData:{type:Object,default:null},show:{type:Boolean,default:!0}}},Lo={key:0,class:"msp-standings-legend"},Mo={class:"msp-legend-title"},To={class:"msp-legend-items"},Do={class:"truncate"},$o={key:1,class:"msp-standings-legend"};const Io={name:"StandingsSkeleton",props:{showForm:{type:Boolean,default:!0},isMultiLeague:{type:Boolean,default:!1}}},xo={key:0,class:"msp-standings-loading",role:"status","aria-busy":"true","aria-live":"polite","aria-label":"Äang tải bảng xếp hạng"},Eo={class:"msp-standings-loading-container"},Ro={class:"msp-standings-skeleton",role:"presentation"},Ao={class:"msp-skeleton-header"},Ho={key:0,class:"msp-skeleton-form"},No={key:0,class:"msp-skeleton-cell msp-skeleton-form"},Po={class:"msp-form-shimmer"},Fo={key:1,class:"msp-standings-loading",role:"status","aria-busy":"true","aria-live":"polite","aria-label":"Äang tải bảng xếp hạng"},Oo={class:"msp-standings-loading-container"},Uo={class:"msp-standings-skeleton",role:"presentation"},zo={class:"msp-skeleton-header"},Bo={key:0,class:"msp-skeleton-form"},jo={key:0,class:"msp-skeleton-cell msp-skeleton-form"},Vo={class:"msp-form-shimmer"};const qo={name:"Standing",components:{TeamFormBadge:Gs,LeagueNavigation:to,StandingsTable:r(so,[["render",function(e,a,t,s,o,l){const n=L("TeamFormBadge");return f(),d("div",oo,[u("table",lo,[u("thead",null,[u("tr",null,[a[1]||(a[1]=u("th",{class:"msp-pos-col"},"#",-1)),a[2]||(a[2]=u("th",{class:"msp-team-col"},"Team",-1)),a[3]||(a[3]=u("th",{class:"msp-matches-col",title:"Matches Played"},"P",-1)),a[4]||(a[4]=u("th",{class:"msp-wins-col msp-hidden-mobile",title:"Wins"}
1,"W",-1)),a[5]||(a[5]=u("th",{class:"msp-draws-col msp-hidden-mobile",title:"Draws"},"D",-1)),a[6]||(a[6]=u("th",{class:"msp-losses-col msp-hidden-mobile",title:"Losses"},"L",-1)),a[7]||(a[7]=u("th",{class:"msp-goals-col msp-hidden-mobile",title:"Goals For"},"F",-1)),a[8]||(a[8]=u("th",{class:"msp-goals-col msp-hidden-mobile",title:"Goals Against"},"A",-1)),a[9]||(a[9]=u("th",{class:"msp-goal-diff-col msp-hidden-mobile",title:"Goal Difference"},"+/-",-1)),a[10]||(a[10]=u("th",{class:"msp-points-col"},"PTS",-1)),t.showForm?(f(),d("th",no,"FORM")):g("",!0)])]),u("tbody",null,[(f(!0),d(v,null,y(l.getSortedTeams(l.currentTable.rows),e=>(f(),d("tr",{key:e.uuid,class:m(["msp-standings-row",t.getPositionClass(e.position)]),"data-team-uuid":e.uuid},[u("td",ro,[u("div",co,[u("span",uo,p(e.position),1),u("div",{class:m(["msp-position-indicator",t.getPositionIndicatorClass(e.position)])},null,2)])]),u("td",mo,[u("div",ho,[e.logo?(f(),d("img",{key:0,src:e.logo,alt:e.name,class:"msp-team-logo-small",onError:a[0]||(a[0]=(...e)=>l.handleImageError&&l.handleImageError(...e))},null,40,po)):g("",!0),u("span",go,p(e.name),1)])]),u("td",vo,p(e.total),1),u("td",yo,p(e.won),1),u("td",fo,p(e.draw),1),u("td",wo,p(e.loss),1),u("td",_o,p(e.goals),1),u("td",Co,p(e.goals_against),1),u("td",{class:m(["msp-goal-diff-cell msp-hidden-mobile",{"msp-positive":e.goal_diff>0,"msp-negative":e.goal_diff<0}])},p(l.formatGoalDifference(e.goal_diff)),3),u("td",bo,[u("strong",null,p(e.points),1)]),t.showForm?(f(),d("td",ko,[b(n,{"form-data":t.teamForms[e.uuid]||[],loading:!t.teamForms[e.uuid]&&t.teamFormLoading[e.uuid],error:t.teamFormErrors[e.uuid],"max-badges":5,"mobile-max-badges":3,"enable-tooltips":!0,"rich-tooltips":!0},null,8,["form-data","loading","error"])])):g("",!0)],10,io))),128))])])])}],["__scopeId","data-v-4ebe03a8"]]),StandingsLegend:r(So,[["render",function(e,a,t,s,o,l){var n,i,r,c;return t.show&&(null==(i=null==(n=t.legendData)?void 0:n.items)?void 0:i.length)?(f(),d("div",Lo,[u("div",Mo,p((null==(r=t.legendData)?void 0:r.name)||"Legend")+":",1),u("div",To,[(f(!0),d(v,null,y(null==(c=t.legendData)?void 0:c.items,(e,a)=>(f(),d("div",{key:a,class:"msp-legend-item"},[u("div",{class:m(["msp-legend-indicator",e.cssClass||e.class]),style:T({backgroundColor:e.color})},null,6),u("span",Do,p(e.label),1)]))),128))])])):t.show?(f(),d("div",$o,[...a[0]||(a[0]=[C('<div class="msp-legend-title" data-v-0e0ee3c6>Legend:</div><div class="msp-legend-items" data-v-0e0ee3c6><div class="msp-legend-item" data-v-0e0ee3c6><div class="msp-legend-indicator msp-champions-league" data-v-0e0ee3c6></div><span data-v-0e0ee3c6>Champions League</span></div><div class="msp-legend-item" data-v-0e0ee3c6><div class="msp-legend-indicator msp-europa-league" data-v-0e0ee3c6></div><span data-v-0e0ee3c6>Europa League</span></div><div class="msp-legend-item" data-v-0e0ee3c6><div class="msp-legend-indicator msp-conference-league" data-v-0e0ee3c6></div><span data-v-0e0ee3c6>Conference League</span></div><div class="msp-legend-item" data-v-0e0ee3c6><div class="msp-legend-indicator msp-relegation" data-v-0e0ee3c6></div><span data-v-0e0ee3c6>Relegation</span></div></div>',2)])])):g("",!0)}],["__scopeId","data-v-0e0ee3c6"]]),StandingsSkeleton:r(Io,[["render",function(e,a,t,s,o,l){return t.isMultiLeague?(f(),d("div",Fo,[a[43]||(a[43]=u("span",{class:"sr-only"},"Äang tải dữ liá»u bảng xếp hạng, vui lòng chá»...",-1)),u("div",Oo,[u("table",Uo,[u("thead",zo,[u("tr",null,[a[23]||(a[23]=u("th",{class:"msp-skeleton-position"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[24]||(a[24]=u("th",{class:"msp-skeleton-team"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[25]||(a[25]=u("th",{class:"msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[26]||(a[26]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[27]||(a[27]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[28]||(a[28]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[29]||(a[29]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[30]||(a[30]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[31]||(a[31]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[32]||(a[32]=u("th",{class:"msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),t.showForm?(f(),d("th",Bo,[...a[22]||(a[22]=[u("div",{class:"msp-skeleton-placeholder"},null,-1)])])):g("",!0)])]),u("tbody",null,[(f(),d(v,null,y(15,e=>u("tr",{key:e,class:"msp-skeleton-row"},[a[33]||(a[33]=u("td",{class:"msp-skeleton-cell msp-skeleton-position"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[34]||(a[34]=u("td",{class:"msp-skeleton-cell msp-skeleton-team"}
1,[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[35]||(a[35]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[36]||(a[36]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[37]||(a[37]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[38]||(a[38]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[39]||(a[39]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[40]||(a[40]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[41]||(a[41]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[42]||(a[42]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),t.showForm?(f(),d("td",jo,[u("div",Vo,[(f(),d(v,null,y(5,e=>u("div",{class:m(["msp-form-skeleton",{"msp-hidden-mobile":e>3}]),key:e},null,2)),64))])])):g("",!0)])),64))])])])])):(f(),d("div",xo,[a[21]||(a[21]=u("span",{class:"sr-only"},"Äang tải dữ liá»u bảng xếp hạng, vui lòng chá»...",-1)),u("div",Eo,[u("table",Ro,[u("thead",Ao,[u("tr",null,[a[1]||(a[1]=u("th",{class:"msp-skeleton-position"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[2]||(a[2]=u("th",{class:"msp-skeleton-team"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[3]||(a[3]=u("th",{class:"msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[4]||(a[4]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[5]||(a[5]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[6]||(a[6]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[7]||(a[7]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[8]||(a[8]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[9]||(a[9]=u("th",{class:"msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[10]||(a[10]=u("th",{class:"msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),t.showForm?(f(),d("th",Ho,[...a[0]||(a[0]=[u("div",{class:"msp-skeleton-placeholder"},null,-1)])])):g("",!0)])]),u("tbody",null,[(f(),d(v,null,y(15,e=>u("tr",{key:e,class:"msp-skeleton-row"},[a[11]||(a[11]=u("td",{class:"msp-skeleton-cell msp-skeleton-position"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[12]||(a[12]=u("td",{class:"msp-skeleton-cell msp-skeleton-team"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[13]||(a[13]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[14]||(a[14]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[15]||(a[15]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[16]||(a[16]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[17]||(a[17]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[18]||(a[18]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[19]||(a[19]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat msp-hidden-mobile"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),a[20]||(a[20]=u("td",{class:"msp-skeleton-cell msp-skeleton-stat"},[u("div",{class:"msp-skeleton-placeholder"})],-1)),t.showForm?(f(),d("td",No,[u("div",Po,[(f(),d(v,null,y(5,e=>u("div",{class:m(["msp-form-skeleton",{"msp-hidden-mobile":e>3}]),key:e},null,2)),64))])])):g("",!0)])),64))])])])]))}],["__scopeId","data-v-1ed674a2"]])},props:{uuid:{type:String,required:!1,validator:e=>!e||e.length>0},leagues:{type:[String,Array],required:!1,default:null},leagueSet:{type:String,required:!1,default:null},showForm:{type:Boolean,default:!0},showLegend:{type:Boolean,default:!0},title:{type:String,default:"Standings"}},setup(e){const a=function(e){const a=i([]),t=$({}),s=$({}),o=i(0),l=i(!1),r=i(null),c=n(()=>!(!e.leagues&&!e.leagueSet)),d=n(()=>c.value&&a.value.length?a.value[o.value]:null),u=n(()=>d.value&&t[d.value.id]||null),m=()=>{var e,a;return(null==(e=window.wpData)?void 0:e.currentLanguage)||(null==(a=document.documentElement.lang)?void 0:a.split("-")[0])||"en"};return{leagueConfigs:a,leagueData:t,leagueLoadingStates:s,activeLeagueIndex:o,loading:l,error:r,isMultiLeague:c,currentLeague:d,currentLeagueStandings:u,initializeLeagues:async()=>{try{l.value=!0,r.value=null;let t=[];
1if(e.leagueSet){const a=await fetch(`/wp-json/msp/v1/competitions/by-set/${e.leagueSet}?language=${m()}`);if(a.ok){const e=await a.json();t=e.success?e.data:[]}else await a.text()}else if(e.leagues){const a=Array.isArray(e.leagues)?e.leagues:e.leagues.split(",").map(e=>e.trim()),s=await fetch(`/wp-json/msp/v1/competitions/by-ids?ids=${a.join(",")}&language=${m()}`);if(s.ok){const e=await s.json();t=e.success?e.data:[]}else await s.text()}else{const e=await fetch(`/wp-json/msp/v1/competitions/active?language=${m()}`);if(e.ok){const a=await e.json();t=a.success?a.data:[]}else await e.text()}return 0===t.length?(r.value="No active competitions found. Please mark some competitions as Hot or Featured in WordPress Admin â Sports Data â Competition Legends",void(l.value=!1)):(a.value=t,t.forEach(e=>{s[e.id]=!1}),t)}catch(t){throw r.value="Failed to load league configuration",t}finally{l.value=!1}},setActiveLeague:async(e,s=null)=>{if(e===o.value)return;o.value=e;const l=a.value[e];return l&&!t[l.id]&&s&&await s(l),l},setLeagueData:(e,a)=>{t[e]=a},setLeagueLoadingState:(e,a)=>{s[e]=a},getLeagueData:e=>t[e]||null,getCurrentLanguage:m}}(e),t=function(e,a){const t=i(null),o=i(!1),l=i(null),n=()=>a.isMultiLeague.value?a.currentLeagueStandings.value:t.value,r=()=>a.isMultiLeague.value?a.currentLeague.value&&a.currentLeague.value.season_id&&""!==a.currentLeague.value.season_id.trim():e.uuid&&""!==e.uuid.trim(),c=()=>a.isMultiLeague.value?o.value||a.currentLeague.value&&a.leagueLoadingStates[a.currentLeague.value.id]:o.value;return{standings:t,loading:o,error:l,currentStandings:n,hasValidConfiguration:r,isLoading:c,showSkeleton:()=>{var e,a;return r()&&c()&&!(null==(a=null==(e=n())?void 0:e.tables)?void 0:a.length)},showNoData:()=>{var e,a;return!r()&&!c()||!c()&&r()&&!(null==(a=null==(e=n())?void 0:e.tables)?void 0:a.length)},fetchStandings:async(a=null)=>{if(!e.uuid||""===e.uuid.trim())return l.value="Missing season UUID",void(o.value=!1);try{o.value=!0,l.value=null;const s=Ks(await U("standings",`uuid=${encodeURIComponent(e.uuid)}`,`standings/${encodeURIComponent(e.uuid)}?include_legend=${e.showLegend}`));if(!s||!s.tables||0===s.tables.length)return void(t.value=null);if(t.value=s,e.showLegend&&a){const t={name:e.title||"Competition",id:e.uuid,type:"league"};await a(s,t)}return s}catch(n){throw s.error("useStandingsData","Failed to fetch standings:",n),l.value=n.message||"Failed to load standings",n}finally{o.value=!1}},fetchLeagueStandings:async(t,o=null)=>{if(t){if(!t.season_id||""===t.season_id.trim())return a.setLeagueData(t.id,null),void a.setLeagueLoadingState(t.id,!1);try{a.setLeagueLoadingState(t.id,!0);const s=Ks(await U("standings",`uuid=${encodeURIComponent(t.season_id)}`,`standings/${encodeURIComponent(t.season_id)}?include_legend=${e.showLegend}`));if(!s)throw new Error("API request failed");if(a.setLeagueData(t.id,s),e.showLegend&&o){const e={name:t.name,id:t.id,type:t.type||"league"};await o(s,e,t)}return s}catch(l){throw s.error("useStandingsData",`Failed to fetch standings for ${t.name}:`,l),a.setLeagueData(t.id,null),l}finally{a.setLeagueLoadingState(t.id,!1)}}},getNoDataMessage:()=>r()?a.isMultiLeague.value&&a.currentLeague.value?`No standings data available for ${a.currentLeague.value.name}.`:"No standings data available for this season.":a.isMultiLeague.value&&a.currentLeague.value?`Invalid configuration for ${a.currentLeague.value.name}. Please check the league settings.`:"Invalid league configuration. Please check the settings."}}(e,a),o=function(e,a){const t=$({}),o=$({}),l=$({}),n=$({}),i=new Zs,r=new Ws,c=()=>a.isMultiLeague.value&&a.currentLeague.value?t[a.currentLeague.value.id]||null:!a.isMultiLeague.value&&e.uuid&&t.single||null,d=(e,a)=>{if(!e)return null;try{const t=i.processPromotions(e,a),o=i.validateLegend(t);return o.valid||s.warn("useStandingsLegend","Legend validation failed:",o.issues),o.warnings.length>0&&s.log("useStandingsLegend","Legend validation warnings:",o.warnings),t}catch(t){return s.error("useStandingsLegend","Failed to process promotions data:",t),null}},u=async e=>{if(s.warn("useStandingsLegend","fetchLeagueLegend called - this is deprecated
1in Phase 3/4, legends should come from standings data"),e&&e.id)try{o[e.id]=!0,l[e.id]=null;const a=`/wp-json/msp/v1/competitions/${e.id}/legend`,r=await fetch(a);if(!r.ok)return s.warn("useStandingsLegend",`Competition legend endpoint failed for ${e.id}, using promotions processing instead`),void(t[e.id]=null);const c=await r.json();if(!c.success)return void(t[e.id]=null);const d=c.data;if(d&&d.items){const a={name:d.name||"Legend",source:"legacy_api",items:d.items.map(e=>({label:e.label,color:e.color,cssClass:e.css_class,positions:e.positions,priority:e.priority,description:e.description||""}))};a.items.sort((e,a)=>e.priority-a.priority),t[e.id]=a,n[e.id]=i.createPositionMapping(a)}else t[e.id]=null}catch(a){s.warn("useStandingsLegend",`Failed to fetch legend for ${e.id}:`,a.message),l[e.id]=a.message,t[e.id]=null}finally{o[e.id]=!1}},m=async e=>{if(s.warn("useStandingsLegend","fetchSingleLeagueLegend called - this is deprecated in Phase 3/4, legends should come from standings data"),e)try{o.single=!0,l.single=null;const a=`/wp-json/msp/v1/competitions/${e}/legend`,r=await fetch(a);if(!r.ok)return s.warn("useStandingsLegend",`Competition legend endpoint failed for ${e}, using promotions processing instead`),void(t.single=null);const c=await r.json();if(!c.success)return void(t.single=null);const d=c.data;if(d&&d.items){const e={name:d.name||"Legend",source:"legacy_api",items:d.items.map(e=>({label:e.label,color:e.color,cssClass:e.css_class,positions:e.positions,priority:e.priority,description:e.description||""}))};e.items.sort((e,a)=>e.priority-a.priority),t.single=e,n.single=i.createPositionMapping(e)}else t.single=null}catch(a){s.warn("useStandingsLegend",`Failed to fetch legend for ${e}:`,a.message),l.single=a.message,t.single=null}finally{o.single=!1}};return{legendData:t,legendLoading:o,legendErrors:l,positionMappings:n,promotionsProcessor:i,colorService:r,getCurrentLegend:c,processPromotionsData:d,fetchLeagueLegend:u,fetchSingleLeagueLegend:m,processLeagueLegend:async(a,o,l)=>{if(!e.showLegend||!a)return;const r=d(a,o);if(r&&r.items&&r.items.length>0){t[l.id]=r;const e=i.createPositionMapping(r);n[l.id]=e,s.log("useStandingsLegend",`Legend processed from promotions data for ${l.name}:`,{source:r.source,itemCount:r.items.length,items:r.items.map(e=>({label:e.label,positions:e.positions}))})}else s.warn("useStandingsLegend",`No promotions data found for ${l.name}, falling back to legacy legend endpoint`),await u(l)},processSingleLegend:async(a,o)=>{if(!e.showLegend||!a)return;const l=d(a,o);l&&l.items&&l.items.length>0?(t.single=l,n.single=i.createPositionMapping(l),s.log("useStandingsLegend","Legend processed from promotions data:",{source:l.source,itemCount:l.items.length,items:l.items.map(e=>({label:e.label,positions:e.positions}))})):(s.warn("useStandingsLegend","No promotions data found, falling back to legacy legend endpoint"),await m(e.uuid))},getPositionClass:e=>{var t;const s=a.isMultiLeague.value&&a.currentLeague.value?a.currentLeague.value.id:"single",o=n[s];if(o&&o[e]){const a=o[e].cssClass||"";return a?`${a}-position`:""}const l=c();if(null==(t=null==l?void 0:l.items)?void 0:t.length)for(const a of l.items)if(a.positions&&a.positions.includes(e))return`${a.cssClass||a.class}-position`;return e<=4?"msp-champions-league-position":e<=6?"msp-europa-league-position":7===e?"msp-conference-league-position":e>=18?"msp-relegation-position":""},getPositionIndicatorClass:e=>{var t;const s=a.isMultiLeague.value&&a.currentLeague.value?a.currentLeague.value.id:"single",o=n[s];if(o)return i.getPositionCssClass(e,o)||"";const l=c();if(null==(t=null==l?void 0:l.items)?void 0:t.length)for(const a of l.items)if(a.positions&&a.positions.includes(e))return a.cssClass||a.class||"";return e<=4?"msp-champions-league":e<=6?"msp-europa-league":7===e?"msp-conference-league":e>=18?"msp-relegation":""}}}(e,a),r=function(e){const a=$({}),t=$({}),o=$({}),l=(e,a)=>(a||[]).slice(0,5).map((a,t)=>({...a,id:`${e}-${t}`})),n=(e,t)=>{(null==t?void 0:t.data)&&e.forEach(e=>{const s=t.data[e];s&&(a[e]=l(e,s.data),o[e]=null)})},i=async(e,a)=>
1{e.forEach(e=>{t[e]=!0,o[e]=null});const{base:l,lang:i}=O();if(l)try{const s=`team_ids=${encodeURIComponent(e.join(","))}&season_id=${encodeURIComponent(a)}&status=3&lang=${encodeURIComponent(i)}`,o=await fetch(`${l}/v1/team-forms?${s}`);if(o.ok){const a=await o.json();if(null==a?void 0:a.success)return n(e,a),void e.forEach(e=>{t[e]=!1})}}catch(c){s.error("useTeamForms","seo-match-api batch form failed for chunk, falling back to WP:",c)}await r(e,a)},r=async(e,l)=>{try{const a=await fetch("/wp-json/msp/v1/teams/forms/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({teams:e,season_id:l,status:3})});if(!a.ok)throw new Error(`WP batch form failed: ${a.status}`);const t=await a.json();if(!(null==t?void 0:t.success))throw new Error((null==t?void 0:t.message)||"WP batch form error");n(e,t)}catch(i){s.error("useTeamForms","Failed to fetch batch team forms:",i),e.forEach(e=>{o[e]=i.message||"Failed to load form data",a[e]=[]})}finally{e.forEach(e=>{t[e]=!1})}},c=async(e,l)=>{try{const t=`/wp-json/msp/v1/teams/${e}/form?season_id=${l}&status=3`,s=await fetch(t);if(!s.ok)throw new Error(`Failed to fetch team form: ${s.status}`);const n=await s.json();if(!n.success)return o[e]=n.message||"Failed to load form data",void(a[e]=[]);if(!n.data||0===n.data.length)return void(a[e]=[]);const i=n.data.slice(0,5).map((a,t)=>({id:a.id||`${e}-${t}`,result:a.result||a.outcome,date:a.date||a.match_date,opponent:a.opponent||a.opponent_name,home_team:a.home_team,away_team:a.away_team,home_score:a.home_score,away_score:a.away_score,home_logo:a.home_logo,away_logo:a.away_logo,venue:a.venue,league:a.league||a.competition,tooltip:a.tooltip,stats:a.stats}));a[e]=i}catch(n){s.error("useTeamForms",`Failed to fetch team form for ${e}:`,n),o[e]=n.message||"Failed to load form data",a[e]=[]}finally{t[e]=!1}};return{teamForms:a,teamFormLoading:t,teamFormErrors:o,fetchAllTeamForms:async(a,t=null)=>{if(!(null==a?void 0:a.tables))return;const s=t||e.uuid;if(!s)return;const o=[];if(a.tables.forEach(e=>{e.rows&&Array.isArray(e.rows)&&e.rows.forEach(e=>{e.uuid&&o.push(e.uuid)})}),0===o.length)return;const l=[...new Set(o)].sort(),n=[];for(let e=0;e<l.length;e+=10)n.push(l.slice(e,e+10));await Promise.allSettled(n.map(e=>i(e,s)))},fetchTeamForm:async(e,n)=>{t[e]=!0,o[e]=null;const{base:i,lang:r}=O();if(i)try{const s=`season_id=${encodeURIComponent(n)}&status=3&lang=${encodeURIComponent(r)}`,c=await fetch(`${i}/v1/team/${encodeURIComponent(e)}/form?${s}`);if(c.ok){const s=await c.json();if(s&&s.success)return a[e]=l(e,s.data),o[e]=null,void(t[e]=!1)}}catch(d){s.error("useTeamForms",`seo-match-api team form failed for ${e}, falling back to WP:`,d)}await c(e,n)},clearTeamForms:()=>{Object.keys(a).forEach(e=>delete a[e]),Object.keys(t).forEach(e=>delete t[e]),Object.keys(o).forEach(e=>delete o[e])},getTeamForm:e=>a[e]||[],isTeamFormLoading:e=>!a[e]&&t[e],getTeamFormError:e=>o[e]||null}}(e),d=i(0),u=i(!1),m=n(()=>{var e,a;if(!(null==(a=null==(e=t.currentStandings())?void 0:e.tables)?void 0:a.length))return"Select Table";const s=t.currentStandings().tables[d.value];return(null==s?void 0:s.name)||`Group ${(null==s?void 0:s.group)||d.value+1}`}),h=n(()=>e.title||"Tournament Standings"),p=e=>{d.value=e},g=e=>{!e.target.closest(".msp-dropdown-wrapper")&&u.value&&(u.value=!1)},v=async()=>{var a;try{const s=await t.fetchStandings(o.processSingleLegend);return(null==(a=null==s?void 0:s.tables)?void 0:a.length)>0&&p(0),e.showForm&&s&&await r.fetchAllTeamForms(s),s}catch(s){throw console.error("Failed to fetch standings:",s),s}};return c(()=>{document.addEventListener("click",g),a.isMultiLeague.value?(async()=>{try{const s=await a.initializeLeagues();if(s&&s.length>0){const a=s[0],l=await t.fetchLeagueStandings(a,o.processLeagueLegend);e.showForm&&l&&await r.fetchAllTeamForms(l,a.season_id)}}catch(s){console.error("Failed to initialize leagues:",s)}})():e.uuid&&""!==e.uuid.trim()?v():(t.error.value="No league configuration or season UUID provided",t.loading.value=!1)}),l(()=>{document.removeEventListener("click",g)}),{leagueConfigs:a.leagueConfigs,leagueLoadingStates:a.leagueLoadingStates,activeLeagueIndex:a.activeLeagueIndex,isMultiLeague:a.isMultiLeague,currentLeague:a.currentLeague,standings:t.standings,loading:t.loading,error:t.error,teamForms:r.teamForms,teamFormLoading:r.teamFormLoading,teamFormErrors:r.teamFormErrors,legendData:o.legendData,promotionsProcessor:o.promotionsProcessor,colorService:o.colorService,activeTabIndex:d,dropdownOpen:u,title:h,currentTableName:m,currentStandings:t.currentStandings,hasValidConfiguration:t.hasValidConfiguration,isLoading:t.isLoading,showSkeleton:t.showSkeleton,showNoData:t.showNoData,formatGoalDifference:e=>e>0?`+${e}`:e.toString(),getPositionClass:o.getPositionClass,getPositionIndicatorClass:o.getPositionIndicatorClass,getSortedTeams:e=>e&&Array.isArray(e)?[...e].sort((e,a)=>e.position-a.position):[],handleImageError:e=>{e.target.style.display="none"},getNoDataMessage:t.getNoDataMessage,setActiveTab:p,setActiveLeague:async s=>{if(s===a.activeLeagueIndex.value)return;d.value=0;return await a.setActiveLeague(s,async a=>{const s=await t.fetchLeagueStandings(a,o.processLeagueLegend);e.showForm&&s&&await r.fetchAllTeamForms(s,a.season_id)})},fetchStandings:v,fetchLeagueStandings:t.fetchLeagueStandings,getCurrentLegend:o.getCurrentLegend,fetchLeagueLegend:o.fetchLeagueLegend,fetchSingleLeagueLegend:o.fetchSingleLeagueLegend,toggleDropdown:()=>{u.value=!u.value},selectTab:e=>{p(e),u.value=!1},leagueData:a.leagueData,processPromotionsData:o.processPromotionsData}}},Go={class:"msp-standings-container msp-theme-default"},Ko={class:"msp-standings-header"},Wo={key:0,class:"msp-loading-indicator"},Zo={key:2,class:"msp-error"},Qo={class:"msp-error-message"},Yo={key:3,class:"msp-no-data"},Xo={class:"msp-no-data-message"},Jo={key:4,class:"msp-standings-wrapper"},el={key:0,class:"msp-tabs-container"},al={class:"msp-dropdown-wrapper"},tl=["aria-expanded"],sl={class:"msp-dropdown-label"},ol=["onClick","aria-selected"],ll={class:"msp-panels-container"},nl=["id","aria-labelledby"];const il=r(qo,[["render",function(e,a,t,s,o,l){var n,i,r;const c=L("LeagueNavigation"),h=L("StandingsSkeleton"),_=L("StandingsTable"),C=L("StandingsLegend");return f(),d("div",Go,[u("div",Ko,[s.isLoading()&&!s.isMultiLeague?(f(),d("div",Wo,"Äang tải...")):g("",!0)]),s.isMultiLeague?(f(),M(c,{key:0,leagues:s.leagueConfigs,"active-index":s.activeLeagueIndex,"loading-states":s.leagueLoadingStates,onSelect:s.setActiveLeague},null,8,["leagues","active-index","loading-states","onSelect"])):g("",!0),s.showSkeleton()?(f(),M(h,{key:1,"show-form":t.showForm,"is-multi-league":s.isMultiLeague},null,8,["show-form","is-multi-league"])):s.error?(f(),d("div",Zo,[u("div",Qo,p(s.error),1),u("button",{onClick:a[0]||(a[0]=(...e)=>s.fetchStandings&&s.fetchStandings(...e)),class:"msp-button msp-button-secondary"},"Retry")])):s.showNoData()?(f(),d("div",Yo,[u("div",Xo,p(s.getNoDataMessage()),1)])):(f(),d("div",Jo,[(null==(i=null==(n=s.currentStandings())?void 0:n.tables)?void 0:i.length)>1?(f(),d("div",el,[u("div",al,[u("button",{onClick:a[1]||(a[1]=(...e)=>s.toggleDropdown&&s.toggleDropdown(...e)),class:"msp-dropdown-button","aria-expanded":s.dropdownOpen,"aria-haspopup":"true"},[u("span",sl,p(s.currentTableName),1),(f(),d("svg",{class:m(["msp-dropdown-icon",{"msp-dropdown-icon-open":s.dropdownOpen}]),width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"},[...a[3]||(a[3]=[u("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1)])],2))],8,tl),b(S,{name:"msp-dropdown"},{default:k(()=>[s.dropdownOpen?(f(),d("div",{key:0,class:"msp-dropdown-menu",onClick:a[2]||(a[2]=w(()=>{},["stop"]))},[(f(!0),d(v,null,y(s.currentStandings().tables,(e,a)=>(f(),d("button",{key:a,onClick:e=>s.selectTab(a),class:m(["msp-dropdown-item",{"msp-dropdown-item-active":s.activeTabIndex===a}]),"aria-selected":s.activeTabIndex===a},p(e.name||`Group ${e.group||a+1}`),11,ol))),128))])):g("",!0)]),_:1})])])):g("",!0),u("div",ll,[(f(!0),d(v,null,y((null==(r=s.currentStandings())?void 0:r.tables)||[],(e,a)=>{var o;return f(),d("div",{key:a,id:`msp-standings-panel-${a}`,class:m(["msp-standings-panel",{"msp-panel-active":s.activeTabIndex===a}]),"aria-labelledby":`msp-standings-tab-${a}`},[b(_,{tables:(null==(o=s.currentStandings())?void 0:o.tables)||[],"active-tab-index":a,"show-form":t.showForm,"team-forms":s.teamForms,"team-form-loading":s.teamFormLoading,"team-form-errors":s.teamFormErrors,"get-position-class":s.getPositionClass,"get-position-indicator-class":s.getPositionIndicatorClass},null,8,["tables","active-tab-index","show-form","team-forms","team-form-loading","team-form-errors","get-position-class","get-position-indicator-class"])],10,nl)}),128))]),t.showLegend?(f(),M(C,{key:1,"legend-data":s.getCurrentLegend(),show:t.showLegend}
1,null,8,["legend-data","show"])):g("",!0)]))])}],["__scopeId","data-v-c0544062"]]),rl={name:"LiveScore",props:{refresh:{type:[String,Number],default:30},showStats:{type:Boolean,default:!0},leagues:{type:Array,default:()=>[]}},setup(e){const a=_("apiService"),t=i([]),s=i(!1),o=i(null),r=i(null),d=i(0),u=i(null),m=i(null),h=n(()=>parseInt(e.refresh)),p=async()=>{try{s.value=!0,o.value=null;const l={};e.leagues.length>0&&(l.leagues=e.leagues.join(","));const n=await a.getLiveScores(l);t.value=n.data||[],r.value=new Date}catch(l){o.value=l.message||"Không thá» tải tá»· sá» trá»±c tiếp",console.error("Error fetching live scores:",l)}finally{s.value=!1}};return c(()=>{p(),h.value>0&&(d.value=h.value,u.value=setInterval(()=>{p(),d.value=h.value},1e3*h.value),m.value=setInterval(()=>{d.value>0&&d.value--},1e3))}),l(()=>{u.value&&(clearInterval(u.value),u.value=null),m.value&&(clearInterval(m.value),m.value=null)}),{liveMatches:t,loading:s,error:o,lastUpdate:r,countdown:d,refreshInterval:h,formatMatchPeriod:(e,a)=>({first_half:"1st Half "+(a?a+"'":""),second_half:"2nd Half "+(a?a+"'":""),extra_time:"Extra Time "+(a?a+"'":""),penalties:"Penalties",half_time:"Half Time",full_time:"Full Time"}[e]||"Live "+(a?a+"'":"")),formatLastUpdate:e=>{const a=new Date,t=new Date(e),s=Math.floor((a-t)/1e3);return s<60?`${s}s ago`:s<3600?`${Math.floor(s/60)}m ago`:t.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:"Asia/Ho_Chi_Minh"})},getEventIcon:e=>({goal:"â½",yellow_card:"ð¨",red_card:"ð¥",substitution:"ð",penalty:"â½",own_goal:"â½",corner:"ð©",offside:"ð«"}[e]||"â¢"),getTeamName:(e,a)=>"home"===a?e.home_team.short_name||e.home_team.name:"away"===a?e.away_team.short_name||e.away_team.name:a,fetchLiveScores:p}}},cl={class:"msp-live-scores-container msp-theme-default"},dl={class:"msp-live-header"},ul={key:0,class:"msp-live-indicator"},ml={class:"msp-refresh-controls"},hl={key:0,class:"msp-last-update"},pl=["disabled"],gl={key:0,class:"msp-error"},vl={key:1,class:"msp-loading"},yl={key:2,class:"msp-no-live-matches"},fl={key:3,class:"msp-live-matches-list"},wl={class:"msp-match-status-bar"},_l={class:"msp-match-period"},Cl={class:"msp-match-league"},bl={class:"msp-live-match-content"},kl={class:"msp-live-teams"},Sl={class:"msp-team-home"},Ll=["src","alt"],Ml={class:"msp-team-info"},Tl={class:"msp-team-name"},Dl={class:"msp-team-score"},$l={class:"msp-live-score-center"},Il={class:"msp-live-score"},xl={key:0,class:"msp-live-time"},El={class:"msp-team-away"},Rl={class:"msp-team-info"},Al={class:"msp-team-name"},Hl={class:"msp-team-score"},Nl=["src","alt"],Pl={key:0,class:"msp-recent-events"},Fl={class:"msp-events-list"},Ol={class:"msp-event-minute"},Ul={class:"msp-event-icon"},zl={class:"msp-event-player"},Bl={class:"msp-event-team"},jl={key:1,class:"msp-live-stats"},Vl={class:"msp-stats-row"},ql={class:"msp-stat-home"},Gl={class:"msp-stat-away"},Kl={class:"msp-stats-row"},Wl={class:"msp-stat-home"},Zl={class:"msp-stat-away"},Ql={class:"msp-stats-row"},Yl={class:"msp-stat-home"},Xl={class:"msp-stat-away"},Jl={key:4,class:"msp-auto-refresh"},en={class:"msp-refresh-progress"};const an=r(rl,[["render",function(e,a,t,s,o,l){return f(),d("div",cl,[u("div",dl,[u("h3",null,[s.liveMatches.length>0?(f(),d("span",ul)):g("",!0),h(" Live Scores ("+p(s.liveMatches.length)+") ",1)]),u("div",ml,[s.lastUpdate?(f(),d("span",hl," Updated "+p(s.formatLastUpdate(s.lastUpdate)),1)):g("",!0),u("button",{onClick:a[0]||(a[0]=(...e)=>s.fetchLiveScores&&s.fetchLiveScores(...e)),disabled:s.loading,class:"msp-refresh-button"},[u("span",{class:m(["msp-refresh-icon",{"msp-spinning":s.loading}])},"â»",2)],8,pl)])]),s.error?(f(),d("div",gl,[h(p(s.error)+" ",1),u("button",{onClick:a[1]||(a[1]=(...e)=>s.fetchLiveScores&&s.fetchLiveScores(...e)),class:"msp-button msp-button-secondary"},"Thá» lại")])):s.loading&&0===s.liveMatches.length?(f(),d("div",vl," Äang tải tá»· sá» trá»±c tiếp... ")):0===s.liveMatches.length?(f(),d("div",yl,[a[3]||(a[3]=u("div",{class:"msp-no-live-icon"},"â½",-1)),a[4]||(a[4]=u("h4",null,"Không có tráºn Äấu trá»±c tiếp",-1)),a[5]||(a[5]=u("p",null,"Hiá»n tại không có tráºn Äấu nà o Äang diá»
n ra.",-1)),u("button",{onClick:a[2]||(a[2]=(...e)=>s.fetchLiveScores&&s.fetchLiveScores(...e)),class:"msp-button msp-button-secondary"},"Kiá»m tra lại")])):(f(),d("div",fl,[(f(!0),d(v,null,y(s.liveMatches,e=>{var o,l,n,i,r,c,h,w,_,C,b;return f(),d("div",{key:e.id,class:m(["msp-live-match-item",{"msp-first-half":"first_half"===e.period,"msp-second-half":"second_half"===e.period,"msp-extra-time":"extra_time"===e.period,"msp-penalties":"penalties"===e.period}])},[u("div",wl,[u("span",_l,p(s.formatMatchPeriod(e.period,e.minute)),1),u("span",Cl,p(null==(o=e.league)?void 0:o.name),1)]),u("div",bl,[u("div",kl,[u("div",Sl,[e.home_team.logo?(f(),d("img",{key:0,src:e.home_team.logo,alt:e.home_team.name,class:"msp-team-logo"},null,8,Ll)):g("",!0),u("div",Ml,[u("span",Tl,p(e.home_team.name),1),u("div",Dl,p((null==(l=e.score)?void 0:l.home)||0),1)])]),u("div",$l,[u("div",Il,p((null==(n=e.score)?void 0:n.home)||0)+" - "+p((null==(i=e.score)?void 0:i.away)||0),1),e.minute?(f(),d("div",xl,p(e.minute)+"' ",1)):g("",!0)]),u("div",El,[u("div",Rl,[u("span",Al,p(e.away_team.name),1),u("div",Hl,p((null==(r=e.score)?void 0:r.away)||0),1)]),e.away_team.logo?(f(),d("img",{key:0,src:e.away_team.logo,alt:e.away_team.name,class:"msp-team-logo"},null,8,Nl)):g("",!0)])]),e.recent_events&&e.recent_events.length>0?(f(),d("div",Pl,[a[6]||(a[6]=u("div",{class:"msp-events-title"},"Recent Events",-1)),u("div",Fl,[(f(!0),d(v,null,y(e.recent_events.slice(0,3),a=>(f(),d("div",{key:a.id,class:m(["msp-event-item",`msp-event-${a.team}`])},[u("span",Ol,p(a.minute)+"'",1),u("span",Ul,p(s.getEventIcon(a.type)),1),u("span",zl,p(a.player),1),u("span",Bl,p(s.getTeamName(e,a.team)),1)],2))),128))])])):g("",!0),e.stats&&t.showStats?(f(),d("div",jl,[u("div",Vl,[u("div",ql,p((null==(c=e.stats.possession)?void 0:c.home)||0)+"%",1),a[7]||(a[7]=u("div",{class:"msp-stat-label"},"Possession",-1)),u("div",Gl,p((null==(h=e.stats.possession)?void 0:h.away)||0)+"%",1)]),u("div",Kl,[u("div",Wl,p((null==(w=e.stats.shots)?void 0:w.home)||0),1),a[8]||(a[8]=u("div",{class:"msp-stat-label"},"Shots",-1)),u("div",Zl,p((null==(_=e.stats.shots)?void 0:_.away)||0),1)]),u("div",Ql,[u("div",Yl,p((null==(C=e.stats.shots_on_target)?void 0:C.home)||0),1),a[9]||(a[9]=u("div",{class:"msp-stat-label"},"On Target",-1)),u("div",Xl,p((null==(b=e.stats.shots_on_target)?void 0:b.away)||0),1)])])):g("",!0)])],2)}),128))])),s.refreshInterval>0&&s.liveMatches.length>0?(f(),d("div",Jl,[u("small",null,"Auto-refresh in "+p(s.countdown)+"s",1),u("div",en,[u("div",{class:"msp-refresh-progress-bar",style:T({width:s.countdown/s.refreshInterval*100+"%"})},null,4)])])):g("",!0)])}],["__scopeId","data-v-adbc8fab"]]),tn={class:"msp-match-detail-container msp-theme-default"},sn={key:0,class:"msp-error"},on={key:1,class:"msp-loading"},ln={key:2,class:"msp-match-detail-content"},nn={class:"msp-match-header"},rn={class:"msp-match-competition"},cn=["src","alt"],dn={class:"msp-competition-info"},un={class:"msp-teams-section"},mn={class:"msp-team-home"},hn=["src","alt"],pn={class:"msp-team-info"},gn={key:0},vn={class:"msp-match-score-section"},yn={key:0,class:"msp-final-score"},fn={key:1,class:"msp-score-breakdown"},wn={class:"msp-period-label"},_n={class:"msp-period-score"},Cn={key:2,class:"msp-venue-info"},bn={key:0},kn={key:1},Sn={class:"msp-team-away"},Ln={class:"msp-team-info"},Mn={key:0},Tn=["src","alt"],Dn={class:"msp-match-tabs"},$n=["onClick"],In={class:"msp-tab-content"},xn={key:0,class:"msp-tab-panel"},En={key:0,class:"msp-timeline-section"},Rn={class:"msp-timeline"},An={class:"msp-event-time"},Hn={class:"msp-event-icon"},Nn={class:"msp-event-details"},Pn={class:"msp-event-description"},Fn={key:0},On={class:"msp-event-type"},Un={class:"msp-event-team"},zn={key:1,class:"msp-key-stats"},Bn={class:"msp-stats-grid"},jn={class:"msp-stat-home"},Vn={class:"msp-stat-label"},qn={class:"msp-stat-away"},Gn={class:"msp-stat-bar"},Kn={key:1,class:"msp-tab-panel"},Wn={key:0,class:"msp-detailed-stats"},Zn={class:"msp-stats-categories"},Qn={class:"msp-stats-list"},Yn={class:"msp-stat-home"},Xn={class:"msp-stat-label"},Jn={class:"msp-stat-away"},ei={key:2,class:"msp-tab-panel"},ai={key:0,class:"msp-lineups"},ti={class:"msp-lineups-grid"},si={class:"msp-lineup-home"},oi={key:0,class:"msp-formation"},li={key:1,class:"msp-starting-xi"},ni={class:"msp-player-number"},ii={class:"msp-player-name"},ri={class:"msp-player-position"},ci={key:2,class:"msp-substitutes"},di={class:"msp-player-number"},ui={class:"msp-player-name"},mi={class:"msp-player-position"},hi={class:"msp-lineup-away"},pi={key:0,class:"msp-formation"},gi={key:1,class:"msp-starting-xi"},vi={class:"msp-player-number"},yi={class:"msp-player-name"},fi={class:"msp-player-position"},wi={key:2,class:"msp-substitutes"},_i={class:"msp-player-number"},Ci={class:"msp-player-name"},bi={class:"msp-player-position"};
1const ki=r({name:"MatchDetail",props:{matchId:{type:[String,Number],required:!0},sport:{type:String,default:"football"}},setup(e){const a=_("apiService"),t=i(null),s=i(!1),o=i(null),l=i("summary"),r=n(()=>{var e,a;const s=[{id:"summary",label:"Summary"}];return(null==(e=t.value)?void 0:e.detailed_stats)&&s.push({id:"stats",label:"Statistics"}),(null==(a=t.value)?void 0:a.lineups)&&s.push({id:"lineups",label:"Lineups"}),s}),d=async()=>{try{s.value=!0,o.value=null;const l=await a.getMatch(e.matchId);t.value=l.data}catch(l){o.value=l.message||"Không thá» tải chi tiết tráºn Äấu",console.error("Error fetching match details:",l)}finally{s.value=!1}};return c(()=>{d()}),{match:t,loading:s,error:o,activeTab:l,availableTabs:r,formatMatchDate:e=>e?new Date(e).toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit",timeZone:"Asia/Ho_Chi_Minh"}):"",formatNumber:e=>(new Intl.NumberFormat).format(e),getStatusClass:e=>({live:"msp-status-live",finished:"msp-status-finished",scheduled:"msp-status-scheduled",postponed:"msp-status-postponed",cancelled:"msp-status-cancelled"}[e]||"msp-status-unknown"),getStatusText:(e,a)=>({live:"LIVE "+(a?a+"'":""),finished:"FULL TIME",scheduled:"SCHEDULED",postponed:"POSTPONED",cancelled:"CANCELLED"}[e]||e.toUpperCase()),getPeriodLabel:e=>({first_half:"1st Half",second_half:"2nd Half",extra_time:"Extra Time",penalties:"Penalties"}[e]||e),getEventIcon:e=>({goal:"â½",yellow_card:"ð¨",red_card:"ð¥",substitution:"ð",penalty:"â½",own_goal:"â½",corner:"ð©",offside:"ð«"}[e]||"â¢"),getEventTypeLabel:e=>({goal:"Goal",yellow_card:"Yellow Card",red_card:"Red Card",substitution:"Substitution",penalty:"Penalty",own_goal:"Own Goal",corner:"Corner",offside:"Offside"}[e]||e.replace("_"," ")),getTeamName:e=>"home"===e?t.value.home_team.name:"away"===e?t.value.away_team.name:e,isWinner:e=>{if(!t.value.score)return!1;const a=parseInt(t.value.score.home)||0,s=parseInt(t.value.score.away)||0;return a!==s&&("home"===e&&a>s||"away"===e&&s>a)},getDisplayStats:e=>{const a={},t={possession:"Possession (%)",shots:"Shots",shots_on_target:"Shots on Target",corners:"Corners",fouls:"Fouls",yellow_cards:"Yellow Cards",red_cards:"Red Cards",passes:"Passes",pass_accuracy:"Pass Accuracy (%)"};return Object.keys(t).forEach(s=>{e[s]&&(a[s]={home:e[s].home||0,away:e[s].away||0,label:t[s]})}),a},getStatPercentage:(e,a,t)=>{const s=parseFloat(e)||0,o=parseFloat(a)||0,l=s+o;return 0===l?0:"home"===t?s/l*100:o/l*100},getCategoryLabel:e=>({attacking:"Attacking",defending:"Defending",passing:"Passing",discipline:"Discipline"}[e]||e.replace("_"," ").toUpperCase()),getStatLabel:e=>({shots:"Shots",shots_on_target:"Shots on Target",shots_off_target:"Shots off Target",corners:"Corners",crosses:"Crosses",tackles:"Tackles",interceptions:"Interceptions",clearances:"Clearances",passes:"Passes",pass_accuracy:"Pass Accuracy (%)",fouls:"Fouls",yellow_cards:"Yellow Cards",red_cards:"Red Cards"}[e]||e.replace("_"," ")),fetchMatchDetail:d}}},[["render",function(e,a,t,s,o,l){var n,i;return f(),d("div",tn,[s.error?(f(),d("div",sn,[h(p(s.error)+" ",1),u("button",{onClick:a[0]||(a[0]=(...e)=>s.fetchMatchDetail&&s.fetchMatchDetail(...e)),class:"msp-button msp-button-secondary"},"Thá» lại")])):s.loading&&!s.match?(f(),d("div",on," Äang tải chi tiết tráºn Äấu... ")):s.match?(f(),d("div",ln,[u("div",nn,[u("div",rn,[(null==(n=s.match.league)?void 0:n.logo)?(f(),d("img",{key:0,src:s.match.league.logo,alt:s.match.league.name,class:"msp-league-logo"},null,8,cn)):g("",!0),u("div",dn,[u("h3",null,p(null==(i=s.match.league)?void 0:i.name),1),u("p",null,p(s.formatMatchDate(s.match.date)),1)])]),u("div",{class:m(["msp-match-status-indicator",s.getStatusClass(s.match.status)])},p(s.getStatusText(s.match.status,s.match.minute)),3)]),u("div",un,[u("div",mn,[s.match.home_team.logo?(f(),d("img",{key:0,src:s.match.home_team.logo,alt:s.match.home_team.name,class:"msp-team-logo-large"},null,8,hn)):g("",!0),u("div",pn,[u("h2",null,p(s.match.home_team.name),1),s.match.home_team.formation?(f(),d("p",gn,p(s.match.home_team.formation),1)):g("",!0)])]),u("div",vn,[s.match.score?(f(),d("div",yn,[u("span",{class:m(["msp-score-home",{"msp-winner":s.isWinner("home")}])},p(s.match.score.home),3),a[1]||(a[1]=u("span",{class:"msp-score-separator"},"-",-1)),u("span",{class:m(["msp-score-away",{"msp-winner":s.isWinner("away")}])}
1,p(s.match.score.away),3)])):g("",!0),s.match.score_breakdown?(f(),d("div",fn,[(f(!0),d(v,null,y(s.match.score_breakdown,(e,a)=>(f(),d("div",{class:"msp-score-period",key:a},[u("span",wn,p(s.getPeriodLabel(a)),1),u("span",_n,p(e.home)+" - "+p(e.away),1)]))),128))])):g("",!0),s.match.venue?(f(),d("div",Cn,[u("p",null,[u("strong",null,p(s.match.venue.name),1)]),s.match.venue.city?(f(),d("p",bn,p(s.match.venue.city),1)):g("",!0),s.match.attendance?(f(),d("p",kn,"Attendance: "+p(s.formatNumber(s.match.attendance)),1)):g("",!0)])):g("",!0)]),u("div",Sn,[u("div",Ln,[u("h2",null,p(s.match.away_team.name),1),s.match.away_team.formation?(f(),d("p",Mn,p(s.match.away_team.formation),1)):g("",!0)]),s.match.away_team.logo?(f(),d("img",{key:0,src:s.match.away_team.logo,alt:s.match.away_team.name,class:"msp-team-logo-large"},null,8,Tn)):g("",!0)])]),u("div",Dn,[(f(!0),d(v,null,y(s.availableTabs,e=>(f(),d("button",{key:e.id,class:m(["msp-tab-button",{"msp-tab-active":s.activeTab===e.id}]),onClick:a=>s.activeTab=e.id},p(e.label),11,$n))),128))]),u("div",In,["summary"===s.activeTab?(f(),d("div",xn,[s.match.events&&s.match.events.length>0?(f(),d("div",En,[a[2]||(a[2]=u("h3",null,"Match Events",-1)),u("div",Rn,[(f(!0),d(v,null,y(s.match.events,e=>(f(),d("div",{key:e.id,class:m(["msp-timeline-event",`msp-event-${e.team}`])},[u("div",An,p(e.minute)+"'",1),u("div",Hn,p(s.getEventIcon(e.type)),1),u("div",Nn,[u("div",Pn,[u("strong",null,p(e.player),1),e.assist?(f(),d("span",Fn," ("+p(e.assist)+")",1)):g("",!0)]),u("div",On,p(s.getEventTypeLabel(e.type)),1)]),u("div",Un,p(s.getTeamName(e.team)),1)],2))),128))])])):g("",!0),s.match.stats?(f(),d("div",zn,[a[3]||(a[3]=u("h3",null,"Match Statistics",-1)),u("div",Bn,[(f(!0),d(v,null,y(s.getDisplayStats(s.match.stats),(e,a)=>(f(),d("div",{class:"msp-stat-row",key:a},[u("div",jn,p(e.home),1),u("div",Vn,p(e.label),1),u("div",qn,p(e.away),1),u("div",Gn,[u("div",{class:"msp-stat-bar-home",style:T({width:s.getStatPercentage(e.home,e.away,"home")+"%"})},null,4),u("div",{class:"msp-stat-bar-away",style:T({width:s.getStatPercentage(e.home,e.away,"away")+"%"})},null,4)])]))),128))])])):g("",!0)])):g("",!0),"stats"===s.activeTab?(f(),d("div",Kn,[s.match.detailed_stats?(f(),d("div",Wn,[u("div",Zn,[(f(!0),d(v,null,y(s.match.detailed_stats,(e,a)=>(f(),d("div",{key:a,class:"msp-stats-category"},[u("h4",null,p(s.getCategoryLabel(a)),1),u("div",Qn,[(f(!0),d(v,null,y(e,(e,a)=>(f(),d("div",{class:"msp-stat-row",key:a},[u("div",Yn,p(e.home||0),1),u("div",Xn,p(s.getStatLabel(a)),1),u("div",Jn,p(e.away||0),1)]))),128))])]))),128))])])):g("",!0)])):g("",!0),"lineups"===s.activeTab?(f(),d("div",ei,[s.match.lineups?(f(),d("div",ai,[u("div",ti,[u("div",si,[u("h4",null,p(s.match.home_team.name),1),s.match.lineups.home.formation?(f(),d("div",oi," Formation: "+p(s.match.lineups.home.formation),1)):g("",!0),s.match.lineups.home.starting_xi?(f(),d("div",li,[a[4]||(a[4]=u("h5",null,"Starting XI",-1)),(f(!0),d(v,null,y(s.match.lineups.home.starting_xi,e=>(f(),d("div",{key:e.id,class:"msp-player-item"},[u("span",ni,p(e.number),1),u("span",ii,p(e.name),1),u("span",ri,p(e.position),1)]))),128))])):g("",!0),s.match.lineups.home.substitutes?(f(),d("div",ci,[a[5]||(a[5]=u("h5",null,"Substitutes",-1)),(f(!0),d(v,null,y(s.match.lineups.home.substitutes,e=>(f(),d("div",{key:e.id,class:"msp-player-item msp-substitute"},[u("span",di,p(e.number),1),u("span",ui,p(e.name),1),u("span",mi,p(e.position),1)]))),128))])):g("",!0)]),u("div",hi,[u("h4",null,p(s.match.away_team.name),1),s.match.lineups.away.formation?(f(),d("div",pi," Formation: "+p(s.match.lineups.away.formation),1)):g("",!0),s.match.lineups.away.starting_xi?(f(),d("div",gi,[a[6]||(a[6]=u("h5",null,"Starting XI",-1)),(f(!0),d(v,null,y(s.match.lineups.away.starting_xi,e=>(f(),d("div",{key:e.id,class:"msp-player-item"},[u("span",vi,p(e.number),1),u("span",yi,p(e.name),1),u("span",fi,p(e.position),1)]))),128))])):g("",!0),s.match.lineups.away.substitutes?(f(),d("div",wi,[a[7]||(a[7]=u("h5",null,"Substitutes",-1)),(f(!0),d(v,null,y(s.match.lineups.away.substitutes,e=>(f(),d("div",{key:e.id,class:"msp-player-item msp-substitute"},[u("span",_i,p(e.number),1),u("span",Ci,p(e.name),1),u("span",bi,p(e.position),1)]))),128))])):g("",!0)])])])):g("",!0)])):g("",!0)])])):g("",!0)])}],["__scopeId","data-v-ffa0c0a1"]]),Si=["data-id"],Li=["href"],Mi=["src","alt"],Ti=["src","alt"],Di=["src","alt"],$i=["src","alt"];const Ii=r({name:"OddsMatchItem",props:{match:{type:Object,required:!0},displayMode:{type:String,required:!0,validator:e=>["today","league"].includes(e)},matchIndex:{type:Number,default:0}},emits:["click"],setup(e,{emit:a}){const t=_("getMatchUrl",()=>null);_("hasMatchUrl",()=>!1);const s=n(()=>{const a=e.match.uuid||e.match.id;if(e.match.match_url)return`/${e.match.match_url}`;const s=t(a);return s?`/${s}`:(console.debug(`â ï¸ [OddsMatchItem] No URL for match ${a}`),null)}),o=n(()=>"today"===e.displayMode?"msp-today":"msp-league"),l=n(()=>`${o.value}-match__item`),i=n(()=>`${o.value}-match__item--wrap`),r=n(()=>`${o.value}-match__sm`),c=n(()=>`${o.value}-match__label`),d=n(()=>`${o.value}-match__label-item`),u=n(()=>`${o.value}-match__mobile-labels ${o.value}-d-lg-none`),m=n(()=>`${o.value}-match__mobile-label`),h=n(()=>`${o.value}-match__scores ${o.value}-match__teams`),p=n(()=>`${o.value}-match__team ${o.value}-match__team--home`),g=n(()=>`${o.value}-match__team ${o.value}-match__team--away`),v=n(()=>`${o.value}-match__team--logo`),y=n(()=>`${o.value}-match__team--name ${o.value}-match__team-home-name`),f=n(()=>`${o.value}-match__team--name ${o.value}-match__team-away-name`),w=n(()=>`${o.value}-scoreboard`),C=n(()=>`${o.value}-home-score`),b=n(()=>"today"===e.displayMode?"msp-away-score":`${o.value}-away-score`),k=n(()=>`${o.value}-winner`),S=n(()=>`${o.value}-match__mobile-stats ${o.value}-d-lg-none`),L=n(()=>`${o.value}-mobile-stat`),M=n(()=>`${o.value}-mobile-stat-label`),T=n(()=>`${o.value}-match__odds ${o.value}-d-none ${o.value}-d-lg-flex`),D="Asia/Ho_Chi_Minh",$=e=>Array.isArray(e)?e.length>0?e[0]:0:(null==e?void 0:e.score)??0;return{matchUrl:s,matchItemClass:l,matchWrapClass:i,matchSmClass:r,matchLabelClass:c,matchLabelItemClass:d,mobileLabelClass:u,mobileLabelItemClass:m,matchScoresClass:h,homeTeamClass:p,awayTeamClass:g,teamLogoClass:v,homeTeamNameClass:y,awayTeamNameClass:f,scoreboardClass:w,homeScoreClass:C,awayScoreClass:b,winnerClass:k,mobileStatsClass:S,mobileStatClass:L,mobileStatLabelClass:M,oddsMarkets:[{key:"asia",label:"Châu Ã"},{key:"eu",label:"Châu Ãu"},{key:"bs",label:"Tà i Xá»u"},{key:"cr",label:"Phạt Góc"}],oddsStatsClass:T,formatMatchTime:e=>{if(!e)return"";return new Date(1e3*e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1,timeZone:D})},formatMatchDate:e=>{if(!e)return"";const a=new Date(1e3*e),t=new Intl.DateTimeFormat("en-CA",{timeZone:D}),s=t.format(a),o=t.format(new Date),l=new Date;l.setDate(l.getDate()-1);const n=t.format(l);return s===o?"Today":s===n?a.toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:D}):a.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:D})},getScore:$,getHTScore:e=>Array.isArray(e)?e.length>1?e[1]:null:(null==e?void 0:e.ht_score)??null,getCornerFTHome:e=>{var a,t;return(null==(a=e.corners)?void 0:a.ft_home)||(null==(t=e.corners)?void 0:t.home)||0},getCornerFTAway:e=>{var a,t;return(null==(a=e.corners)?void 0:a.ft_away)||(null==(t=e.corners)?void 0:t.away)||0},isWinner:(e,a)=>{const t=$(e.home_scores),s=$(e.away_scores);return t!==s&&("home"===a&&t>s||"away"===a&&s>t)},isMatchUnstarted:e=>{const a=$(e.home_scores);return"string"==typeof a&&"vs"===a.toLowerCase()},getScoreVsClass:()=>{const a=$(e.match.home_scores),t=$(e.match.away_scores),s=`${o.value}-score-vs ${o.value}-score-vs__num ${o.value}-score-vs__28 ${o.value}-score-vs-antz`;return a>t?`${s} ${o.value}-score-vs-antz__home-win`:t>a?`${s} ${o.value}-score-vs-antz__away-win`:`${s} ${o.value}-score-vs-antz__draw`},getVsOnlyClass:()=>`${o.value}-score-vs ${o.value}-score-vs__num ${o.value}-score-vs__28 ${o.value}-score-vs-antz ${o.value}-score-vs-only`,oddsFor:(e,a)=>{const t=Array.isArray(null==e?void 0:e.odds)&&e.odds.length?e.odds[0]:null,s=t&&Array.isArray(t[a])?t[a]:[],o=s.length?s[0]:null;return!Array.isArray(o)||o.length<5?["-","-","-"]:[2,3,4].map(e=>void 0===o[e]||null===o[e]?"-":o[e])},handleImageError:e=>{e.target.style.display="none"},handleClick:()=>{a("click",e.match)},handleScoreClick:()=>{a("click",e.match)},handleMatchLinkClick:t=>{a("click",e.match)},sanitizeTeamName:Qe}}},[["render",function(e,a,t,s,o,l){var n,i,r,c;return f(),d("div",{class:m(s.matchItemClass),"data-id":t.match.uuid||t.match.id},[s.matchUrl?(f(),d("a",{key:0,href:s.matchUrl,onClick:a[4]||(a[4]=(...e)=>s.handleMatchLinkClick&&s.handleMatchLinkClick(...e))},[u("div",{class:m(s.matchWrapClass)},[u("div",{class:m(s.matchSmClass)},[u("div",{class:m(s.matchLabelClass)},[u("div",{class:m(s.matchLabelItemClass)},p(s.formatMatchTime(t.match.match_time))+" "+p(s.formatMatchDate(t.match.match_time)),3),t.match.roun
1d?(f(),d("div",{key:0,class:m(s.matchLabelItemClass)},"Round "+p(t.match.round.round_num),3)):g("",!0)],2),u("div",{class:m(s.mobileStatsClass)},[u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},"HT",2),u("span",null,p(s.getHTScore(t.match.home_scores)||0)+"-"+p(s.getHTScore(t.match.away_scores)||0),1)],2),u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[10]||(a[10]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("path",{d:"M9.74443 9.27539C8.48074 11.1829 6.23396 12.3038 3.95224 12.2129C3.6399 12.2125 3.00646 12.2132 2.6938 12.2129L0.667969 14.0002H9.74443L12.668 9.27539H9.74443Z",fill:"#5EB24A"}),u("path",{d:"M4.23031 11.2754C5.88703 11.2797 7.49953 10.5287 8.56656 9.27541H5.99969V4.18666L9.88406 2.36322L5.06219 0.100098V9.56479L3.53125 11.2754H4.23031Z",fill:"#FFE400"})],-1)])],2),u("span",null,p(s.getCornerFTHome(t.match)||0)+"-"+p(s.getCornerFTAway(t.match)||0),1)],2)],2)],2),u("div",{class:m(s.matchScoresClass)},[u("div",{class:m(s.homeTeamClass)},[(null==(n=t.match.home_team)?void 0:n.logo)?(f(),d("img",{key:0,src:t.match.home_team.logo,alt:t.match.home_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[0]||(a[0]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Mi)):g("",!0),u("div",{class:m(s.homeTeamNameClass)},p(s.sanitizeTeamName(t.match.home_team,"Home")),3)],2),u("div",{class:m(s.scoreboardClass)},[s.isMatchUnstarted(t.match)?(f(),d("div",{key:0,class:m(s.getVsOnlyClass()),onClick:a[1]||(a[1]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))}," vs ",2)):(f(),d("div",{key:1,class:m(s.getScoreVsClass()),onClick:a[2]||(a[2]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))},[u("span",{class:m([s.homeScoreClass,{[s.winnerClass]:s.isWinner(t.match,"home")}])},p(s.getScore(t.match.home_scores)),3),a[11]||(a[11]=u("b",null,":",-1)),u("span",{class:m([s.awayScoreClass,{[s.winnerClass]:s.isWinner(t.match,"away")}])},p(s.getScore(t.match.away_scores)),3)],2))],2),u("div",{class:m(s.awayTeamClass)},[(null==(i=t.match.away_team)?void 0:i.logo)?(f(),d("img",{key:0,src:t.match.away_team.logo,alt:t.match.away_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[3]||(a[3]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Ti)):g("",!0),u("div",{class:m(s.awayTeamNameClass)},p(s.sanitizeTeamName(t.match.away_team,"Away")),3)],2)],2),(f(!0),d(v,null,y(s.oddsMarkets,e=>(f(),d("div",{key:e.key,class:m(s.oddsStatsClass)},[u("div",{class:m(s.matchLabelItemClass)},[(f(!0),d(v,null,y(s.oddsFor(t.match,e.key),(a,t)=>(f(),d("span",{key:e.key+"-"+t},p(a),1))),128))],2)],2))),128))],2)],8,Li)):(f(),d("div",{key:1,class:m(s.matchWrapClass),onClick:a[9]||(a[9]=(...e)=>s.handleClick&&s.handleClick(...e))},[u("div",{class:m(s.matchSmClass)},[u("div",{class:m(s.matchLabelClass)},[u("div",{class:m(s.matchLabelItemClass)},p(s.formatMatchTime(t.match.match_time))+" "+p(s.formatMatchDate(t.match.match_time)),3),t.match.round?(f(),d("div",{key:0,class:m(s.matchLabelItemClass)},"Round "+p(t.match.round.round_num),3)):g("",!0)],2),u("div",{class:m(s.mobileStatsClass)},[u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},"HT",2),u("span",null,p(s.getHTScore(t.match.home_scores)||0)+"-"+p(s.getHTScore(t.match.away_scores)||0),1)],2),u("div",{class:m(s.mobileStatClass)},[u("span",{class:m(s.mobileStatLabelClass)},[...a[12]||(a[12]=[u("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[u("path",{d:"M9.74443 9.27539C8.48074 11.1829 6.23396 12.3038 3.95224 12.2129C3.6399 12.2125 3.00646 12.2132 2.6938 12.2129L0.667969 14.0002H9.74443L12.668 9.27539H9.74443Z",fill:"#5EB24A"}),u("path",{d:"M4.23031 11.2754C5.88703 11.2797 7.49953 10.5287 8.56656 9.27541H5.99969V4.18666L9.88406 2.36322L5.06219 0.100098V9.56479L3.53125 11.2754H4.23031Z",fill:"#FFE400"})],-1)])],2),u("span",null,p(s.getCornerFTHome(t.match)||0)+"-"+p(s.getCornerFTAway(t.match)||0),1)],2)],2)],2),u("div",{class:m(s.matchScoresClass)},[u("div",{class:m(s.homeTeamClass)},[(null==(r=t.match.home_team)?void 0:r.logo)?(f(),d("img",{key:0,src:t.match.home_team.logo,alt:t.match.home_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[5]||(a[5]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,Di)):g("",!0),u("div",{class:m(s.homeTeamNameClass)},p(s.sanitizeTeamName(t.match.home_team,"Home")),3)],2),u("div",{class:m(s.scoreboardClass)},[s.isMatchUnstarted(t.match)?(f(),d("div",{key:0,class:m(s.getVsOnlyClass()),onClick:a[6]||(a[6]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))}," vs ",2)):(f(),d("div",{key:1,class:m(s.getScoreVsClass()),onClick:a[7]||(a[7]=(...e)=>s.handleScoreClick&&s.handleScoreClick(...e))},[u("span",{class:m([s.homeScoreClass,{[s.winnerClass]:s.isWinner(t.match,"home")}])},p(s.getScore(t.match.home_scores)),3),a[13]||(a[13]=u("b",null,"
1:",-1)),u("span",{class:m([s.awayScoreClass,{[s.winnerClass]:s.isWinner(t.match,"away")}])},p(s.getScore(t.match.away_scores)),3)],2))],2),u("div",{class:m(s.awayTeamClass)},[(null==(c=t.match.away_team)?void 0:c.logo)?(f(),d("img",{key:0,src:t.match.away_team.logo,alt:t.match.away_team.name,class:m(s.teamLogoClass),loading:"lazy",onError:a[8]||(a[8]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,42,$i)):g("",!0),u("div",{class:m(s.awayTeamNameClass)},p(s.sanitizeTeamName(t.match.away_team,"Away")),3)],2)],2),(f(!0),d(v,null,y(s.oddsMarkets,e=>(f(),d("div",{key:e.key,class:m(s.oddsStatsClass)},[u("div",{class:m(s.matchLabelItemClass)},[(f(!0),d(v,null,y(s.oddsFor(t.match,e.key),(a,t)=>(f(),d("span",{key:e.key+"-"+t},p(a),1))),128))],2)],2))),128))],2))],10,Si)}]]),xi=["aria-label"],Ei={class:"sr-only"},Ri={class:"msp-results-loading-container"},Ai={class:"msp-results-skeleton"},Hi={class:"msp-matches-skeleton"};const Ni=r({name:"MatchOddsSkeleton",props:{competitionCount:{type:Number,default:3,validator:e=>{const a=e>0&&e<=10;return a||console.warn(`[MatchOddsSkeleton] competitionCount must be between 1 and 10, received: ${e}`),a}},matchesPerCompetition:{type:Number,default:3,validator:e=>{const a=e>0&&e<=20;return a||console.warn(`[MatchOddsSkeleton] matchesPerCompetition must be between 1 and 20, received: ${e}`),a}},mode:{type:String,default:"today",validator:e=>{const a=["today","league"],t=a.includes(e);return t||console.warn(`[MatchOddsSkeleton] mode must be one of ${a.join(", ")}, received: ${e}`),t}}}},[["render",function(e,a,t,s,o,l){return f(),d("div",{class:"msp-results-loading",role:"status","aria-busy":"true","aria-live":"polite","aria-label":`Äang tải kết quả tráºn Äấu ${t.mode}`},[u("span",Ei,"Äang tải kết quả tráºn Äấu "+p(t.mode)+", vui lòng chá»...",1),u("div",Ri,[u("div",Ai,[(f(!0),d(v,null,y(t.competitionCount,e=>(f(),d("div",{key:`competition-skeleton-${e}`,class:"msp-competition-skeleton"},[a[1]||(a[1]=u("div",{class:"msp-competition-header-skeleton"},[u("div",{class:"msp-skeleton-placeholder msp-competition-logo-skeleton"}),u("div",{class:"msp-skeleton-placeholder msp-competition-name-skeleton"})],-1)),u("div",Hi,[(f(!0),d(v,null,y(t.matchesPerCompetition,t=>(f(),d("div",{key:`match-skeleton-${e}-${t}`,class:"msp-match-skeleton"},[...a[0]||(a[0]=[C('<div class="msp-skeleton-placeholder msp-match-time-skeleton" data-v-90835a03></div><div class="msp-skeleton-placeholder msp-team-skeleton" data-v-90835a03></div><div class="msp-skeleton-placeholder msp-score-skeleton" data-v-90835a03></div><div class="msp-skeleton-placeholder msp-team-skeleton" data-v-90835a03></div><div class="msp-skeleton-placeholder msp-stats-skeleton" data-v-90835a03></div>',5)])]))),128))])]))),128))])])],8,xi)}],["__scopeId","data-v-90835a03"]]),Pi={name:"TodayOdds",components:{OddsMatchItem:Ii,MatchOddsSkeleton:Ni},props:{matches:{type:Array,default:()=>[]},isLoading:{type:Boolean,default:!1},error:{type:String,default:null},selectedDate:{type:String,default:""}},emits:["match-click","retry"],setup(e){o(()=>e.matches,(e,a)=>{var t,s;console.log("[TodayOdds] ð DIAGNOSTIC: Matches prop changed:",{component:"TodayOdds",previous_matches:{was_array:Array.isArray(a),length:(null==a?void 0:a.length)||0},new_matches:{is_array:Array.isArray(e),length:(null==e?void 0:e.length)||0,first_item_structure:(null==e?void 0:e[0])?{keys:Object.keys(e[0]),has_competition:!!e[0].competition,has_matches:!!e[0].matches,competition_name:(null==(t=e[0].competition)?void 0:t.name)||"N/A",matches_count:(null==(s=e[0].matches)?void 0:s.length)||0}:null},will_render:!!(e&&e.length>0)})},{immediate:!0,deep:!0});return{getNoDataMessage:()=>{const a=e.selectedDate||(new Date).toLocaleDateString("vi-VN",{timeZone:"Asia/Ho_Chi_Minh"});return`Không tìm thấy tráºn Äấu Äã kết thúc cho ${e.selectedDate?`ngà y Äã chá»n (${a})`:`hôm nay (${a})`}. Äiá»u nà y có thá» do:\n⢠Không có tráºn Äấu nà o ÄÆ°á»£c lên lá»ch cho ngà y nà y\n⢠Tất cả tráºn Äấu vẫn Äang diá»
n ra\n⢠Hạn chế dữ liá»u từ API\n\nHãy thá» kiá»m tra ngà y khác hoặc chuyá»n sang chế Äá» Giải Äấu Äá» xem kết quả.`},handleImageError:e=>{e.target.style.display="none"},sanitizeCompetitionName:Ye}}},Fi={class:"msp-today-results"},Oi={key:"error",class:"msp-error"},Ui={class:"msp-error-message"},zi={key:"empty",class:"msp-no-data"},Bi={class:"msp-no-data-message"},ji={key:"content",class:"msp-results-wrapper"},Vi={class:"msp-today-matches"},qi={class:"msp-today-league_title"},Gi={class:"msp-today-match_competition"},Ki=["src","alt"],Wi={class:"msp-truncate"};const Zi=r(Pi,[["render",function(e,a,t,s,o,l){const n=L("MatchOddsSkeleton"),i=L("OddsMatchItem");return f(),d("div",Fi,[b(S,{name:"skeleton-fade",mode:"out-in"},{default:k(()=>[t.isLoading&&!t.matches.length?(f(),M(n,{key:"skeleton","competition-count":3,"matches-per-compet
1ition":3,mode:"today"})):t.error?(f(),d("div",Oi,[u("div",Ui,p(t.error),1),u("button",{onClick:a[0]||(a[0]=a=>e.$emit("retry")),class:"msp-button msp-button-secondary"},"Retry")])):t.isLoading||t.matches&&0!==t.matches.length?t.matches&&t.matches.length>0?(f(),d("div",ji,[u("div",Vi,[(f(!0),d(v,null,y(t.matches,(t,o)=>{var l;return f(),d("div",{key:`competition-${o}`,class:"msp-today-competition-wrapper msp-today-competition-wrapper-antz"},[u("div",qi,[u("div",Gi,[(null==(l=t.competition)?void 0:l.logo)?(f(),d("img",{key:0,src:t.competition.logo,alt:t.competition.name,class:"msp-today-lazyload",onError:a[1]||(a[1]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,Ki)):g("",!0),u("span",Wi,p(s.sanitizeCompetitionName(t.competition,"Unknown Competition")),1)]),a[2]||(a[2]=u("div",{class:"msp-today-match__teams msp-today-d-none msp-today-d-lg-flex"},[u("div",{class:"msp-today-match__team msp-today-match__team--home"},"Chá»§ nhà "),u("div",{class:"msp-today-scoreboard"},"Tá»· sá»"),u("div",{class:"msp-today-match__team msp-today-match__team--away"},"Khách")],-1)),a[3]||(a[3]=u("div",{class:"msp-today-match__odds msp-today-d-none msp-today-d-lg-flex"},"Châu Ã",-1)),a[4]||(a[4]=u("div",{class:"msp-today-match__odds msp-today-d-none msp-today-d-lg-flex"},"Châu Ãu",-1)),a[5]||(a[5]=u("div",{class:"msp-today-match__odds msp-today-d-none msp-today-d-lg-flex"},"Tà i Xá»u",-1)),a[6]||(a[6]=u("div",{class:"msp-today-match__odds msp-today-d-none msp-today-d-lg-flex"},"Phạt Góc",-1))]),(f(!0),d(v,null,y(t.matches,(a,t)=>(f(),M(i,{key:`match-${a.uuid||a.id||t}`,match:a,"display-mode":"today","match-index":t,onClick:t=>e.$emit("match-click",a)},null,8,["match","match-index","onClick"]))),128))])}),128))])])):g("",!0):(f(),d("div",zi,[u("div",Bi,p(s.getNoDataMessage()),1)]))]),_:1})])}],["__scopeId","data-v-ea709676"]]),Qi={name:"LeagueOdds",components:{OddsMatchItem:Ii,MatchOddsSkeleton:Ni},props:{leagueConfigs:{type:Array,default:()=>[]},activeLeagueIndex:{type:Number,default:0},leagueData:{type:Object,default:()=>({})},leagueLoadingStates:{type:Object,default:()=>({})},availableRounds:{type:Array,default:()=>[]},selectedRoundGroupNum:{type:Number,default:null},hasMoreFunction:{type:Function,default:()=>()=>!1},isLoadingMore:{type:Boolean,default:!1},error:{type:String,default:null}},emits:["league-change","match-click","load-more","retry","tab-hover","tab-hover-end","round-select"],setup(e,{emit:a}){const t=i(!1),s=i(null),r=i(!1);let d=null;const u=n(()=>e.leagueConfigs.length?e.leagueConfigs[e.activeLeagueIndex]:null),m=n(()=>{var a;const t=u.value?e.leagueData[u.value.id]:null;return console.log("LeagueOdds Display Debug:",{currentLeague:u.value,currentLeague_id:null==(a=u.value)?void 0:a.id,leagueData_keys:Object.keys(e.leagueData||{}),matches_length:(null==t?void 0:t.length)||0,matches_sample:(null==t?void 0:t.slice(0,2))||[],all_leagueData:e.leagueData}),t}),h=n(()=>!!u.value&&e.hasMoreFunction(u.value.id)),p=n(()=>
1{if(!u.value)return!1;const a=m.value&&m.value.length>0,t=!e.hasMoreFunction(u.value.id);return a&&t&&!g.value}),g=n(()=>u.value&&e.leagueLoadingStates[u.value.id]),v=n(()=>{var a,t,s;const o=m.value;if(!(null==o?void 0:o.length))return[];let l=o;return null!==e.selectedRoundGroupNum&&e.availableRounds.length>0&&(l=o.filter(a=>{const t=a.round;if(!t)return!1;return(0===t.group_count?t.round_num:t.group_num)===e.selectedRoundGroupNum})),[{competition:{uuid:(null==(a=u.value)?void 0:a.id)||"unknown",name:(null==(t=u.value)?void 0:t.name)||"Match Odds",logo:(null==(s=u.value)?void 0:s.logo)||null},matches:l}]}),y=n(()=>{var a;if(!e.availableRounds.length)return"No Rounds Available";const t=e.availableRounds.find(a=>a.group_num===e.selectedRoundGroupNum);return(null==t?void 0:t.name)||(null==(a=e.availableRounds[0])?void 0:a.name)||"No Rounds Available"}),f=()=>{s.value&&!d&&(d=new IntersectionObserver(a=>{const[t]=a,s=!!u.value&&e.hasMoreFunction(u.value.id);t.isIntersecting&&s&&!e.isLoadingMore&&!r.value&&w()},{root:null,rootMargin:"100px",threshold:.1}),d.observe(s.value))},w=()=>{const t=!!u.value&&e.hasMoreFunction(u.value.id);if(!r.value&&!e.isLoadingMore&&t){r.value=!0;try{a("load-more"),setTimeout(()=>{r.value=!1},500)}catch(s){console.error("Error loading more results:",s),r.value=!1}}},_=()=>{d&&(d.disconnect(),d=null)};return o(()=>h.value,async e=>{await I(),e&&s.value&&!d?f():!e&&d&&_()}),o(()=>e.availableRounds,()=>{t.value&&(console.log("Available rounds changed - closing dropdown"),t.value=!1)},{deep:!0}),c(async()=>{await I(),"undefined"!=typeof window&&"IntersectionObserver"in window&&setTimeout(f,100)}),l(()=>{_()}),{dropdownOpen:t,scrollTrigger:s,isAutoLoading:r,currentLeague:u,currentMatches:m,isLoading:g,groupedMatches:v,currentDropdownLabel:y,shouldShowScrollTrigger:h,shouldShowAllLoadedMessage:p,getNoDataMessage:()=>u.value?`Không tìm thấy kết quả tráºn Äấu cho ${u.value.name}.\n\nÄiá»u nà y có thá» do:\n⢠Mùa giải chưa bắt Äầu\n⢠Chưa có tráºn Äấu nà o hoà n thà nh\n⢠Dữ liá»u Äang ÄÆ°á»£c cáºp nháºt\n\nHãy quay lại sau hoặc thá» má»t giải Äấu khác.`:"Không tìm thấy kết quả tráºn Äấu. Vui lòng thá» lại sau hoặc liên há» há» trợ nếu vấn Äá» vẫn tiếp diá»
n.",handleImageError:e=>{e.target.style.display="none"},handleLeagueChange:e=>{a("league-change",e)},handleTabHover:(e,t)=>{a("tab-hover",e,t)},handleTabHoverEnd:(e,t)=>{a("tab-hover-end",e,t)},toggleRoundDropdown:()=>{t.value=!t.value},selectRoundGroup:e=>{a("round-select",e),t.value=!1},setupInfiniteScroll:f,cleanupInfiniteScroll:_,sanitizeText:Ze,sanitizeCompetitionName:Ye}}},Yi={class:"msp-league-results"},Xi={key:0,class:"msp-league-tabs-section"},Ji={class:"msp-league-tabs-wrapper"},er=["onClick","onMouseenter","onMouseleave","data-tab-index","data-league-id","disabled"],ar=["src","alt"],tr={class:"msp-league-name"},sr={key:1,class:"msp-tab-spinner"},or={key:1,class:"msp-tabs-container"},lr={class:"msp-dropdown-wrapper"},nr=["aria-expanded"],ir={class:"msp-dropdown-label"},rr=["onClick","aria-selected"],cr={key:"error",class:"msp-error"},dr={class:"msp-error-message"},ur={key:"empty",class:"msp-no-data"},mr={class:"msp-no-data-message"},hr={key:"content",class:"msp-results-wrapper"},pr={class:"msp-league-matches"},gr={class:"msp-league-league_title"},vr={class:"msp-league-match_competition"},yr=["src","alt"],fr={class:"msp-truncate"},wr={key:0,class:"msp-infinite-scroll-trigger",ref:"scrollTrigger"},_r={key:0,class:"msp-auto-loading"},Cr={key:1,class:"msp-scroll-indicator"},br={key:1,class:"msp-all-loaded-indicator"};const kr=r(Qi,[["render",function(e,a,t,s,o,l){var n,i;const r=L("MatchOddsSkeleton"),c=L("OddsMatchItem");return f(),d("div",Yi,[(null==(n=t.leagueConfigs)?void 0:n.length)>0?(f(),d("div",Xi,[u("div",Ji,[(f(!0),d(v,null,y(t.leagueConfigs,(e,o)=>(f(),d("button",{key:e.id,onClick:e=>s.handleLeagueChange(o),onMouseenter:a=>s.handleTabHover(e.id,o),onMouseleave:a=>s.handleTabHoverEnd(e.id,o),"data-tab-index":o,"data-league-id":e.id,class:m(["msp-league-tab",{"msp-league-tab-active":t.activeLeagueIndex===o},{"msp-league-tab-loading":t.leagueLoadingStates[e.id]}]),disabled:t.leagueLoadingStates[e.id]},[e.logo?(f(),d("img",{key:0,src:e.logo,alt:e.name,class:"msp-league-logo",onError:a[0]||(a[0]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,ar)):g("",!0),u("span",tr,p(s.sanitizeText(e.name)),1),t.leagueLoadingStates[e.id]?(f(),d("div",sr)):g("",!0)],42,er))),128))])])):g("",!0),(null==(i=t.availableRounds)?void 0:i.length)>1&&s.currentLeague?(f(),d("div",or,[u("div",lr,[u("button",{onClick:a[1]||(a[1]=(...e)=>s.toggleRoundDropdown&&s.toggleRoundDropdown(...e)),class:"msp-dropdown-button","aria-expanded":s.dropdownOpen,"aria-haspopup":"true"}
1,[u("span",ir,p(s.currentDropdownLabel),1),(f(),d("svg",{class:m(["msp-dropdown-icon",{"msp-dropdown-icon-open":s.dropdownOpen}]),width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor"},[...a[5]||(a[5]=[u("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"},null,-1)])],2))],8,nr),b(S,{name:"msp-dropdown"},{default:k(()=>[s.dropdownOpen?(f(),d("div",{key:0,class:"msp-dropdown-menu",onClick:a[2]||(a[2]=w(()=>{},["stop"]))},[(f(!0),d(v,null,y(t.availableRounds,(e,a)=>(f(),d("button",{key:a,onClick:a=>s.selectRoundGroup(e.group_num),class:m(["msp-dropdown-item",{"msp-dropdown-item-active":t.selectedRoundGroupNum===e.group_num}]),"aria-selected":t.selectedRoundGroupNum===e.group_num},p(e.name),11,rr))),128))])):g("",!0)]),_:1})])])):g("",!0),b(S,{name:"skeleton-fade",mode:"out-in"},{default:k(()=>[s.isLoading&&!s.currentMatches.length?(f(),M(r,{key:"skeleton","competition-count":2,"matches-per-competition":3,mode:"league"})):t.error?(f(),d("div",cr,[u("div",dr,p(t.error),1),u("button",{onClick:a[3]||(a[3]=a=>e.$emit("retry")),class:"msp-button msp-button-secondary"},"Retry")])):s.isLoading||s.currentMatches&&0!==s.currentMatches.length?s.currentMatches&&s.currentMatches.length>0?(f(),d("div",hr,[u("div",pr,[(f(!0),d(v,null,y(s.groupedMatches,(t,o)=>{var l;return f(),d("div",{key:`league-${o}`,class:"msp-league-competition-wrapper msp-league-competition-wrapper-antz"},[u("div",gr,[u("div",vr,[(null==(l=t.competition)?void 0:l.logo)?(f(),d("img",{key:0,src:t.competition.logo,alt:t.competition.name,class:"msp-league-lazyload",loading:"lazy",onError:a[4]||(a[4]=(...e)=>s.handleImageError&&s.handleImageError(...e))},null,40,yr)):g("",!0),u("span",fr,p(s.sanitizeCompetitionName(t.competition,"Unknown Competition")),1)]),a[6]||(a[6]=u("div",{class:"msp-league-match__teams msp-league-d-none msp-league-d-lg-flex"},[u("div",{class:"msp-league-match__team msp-league-match__team--home"},"Chá»§ nhà "),u("div",{class:"msp-league-scoreboard"},"Tá»· sá»"),u("div",{class:"msp-league-match__team msp-league-match__team--away"},"Khách")],-1)),a[7]||(a[7]=u("div",{class:"msp-league-match__odds msp-league-d-none msp-league-d-lg-flex"},"Châu Ã",-1)),a[8]||(a[8]=u("div",{class:"msp-league-match__odds msp-league-d-none msp-league-d-lg-flex"},"Châu Ãu",-1)),a[9]||(a[9]=u("div",{class:"msp-league-match__odds msp-league-d-none msp-league-d-lg-flex"},"Tà i Xá»u",-1)),a[10]||(a[10]=u("div",{class:"msp-league-match__odds msp-league-d-none msp-league-d-lg-flex"},"Phạt Góc",-1))]),(f(!0),d(v,null,y(t.matches,(a,t)=>(f(),M(c,{key:`league-match-${a.uuid||a.id||t}`,match:a,"display-mode":"league","match-index":t,onClick:t=>e.$emit("match-click",a)},null,8,["match","match-index","onClick"]))),128))])}),128)),s.shouldShowScrollTrigger?(f(),d("div",wr,[t.isLoadingMore?(f(),d("div",_r,[...a[11]||(a[11]=[u("div",{class:"msp-auto-loading-spinner"},null,-1),u("span",{class:"msp-auto-loading-text"},"Äang tải thêm kết quả...",-1)])])):(f(),d("div",Cr))],512)):g("",!0),s.shouldShowAllLoadedMessage?(f(),d("div",br,[...a[12]||(a[12]=[u("span",{class:"msp-all-loaded-text"},"Äã tải tất cả kết quả",-1)])])):g("",!0)])])):g("",!0):(f(),d("div",ur,[u("div",mr,p(s.getNoDataMessage()),1)]))]),_:1})])}],["__scopeId","data-v-142ded1a"]]),Sr={name:"OddsNavigation",props:{viewM
1ode:{type:String,required:!0,validator:e=>["today","league","single"].includes(e)},showTodayButton:{type:Boolean,default:!0},leagueConfigs:{type:Array,default:()=>[]},todayMatchCount:{type:Number,default:0},todayLoading:{type:Boolean,default:!1},selectedDate:{type:String,default:""},currentSort:{type:String,default:"time"},sortOptions:{type:Array,default:()=>[{value:"time",label:"Theo thá»i gian"},{value:"league",label:"Theo giải Äấu"},{value:"status",label:"Theo trạng thái"}]}},emits:["view-change","date-change","date-clear","sort-change","today-click","league-click"],setup(e,{emit:a}){const t=i(e.selectedDate||"");o(()=>e.selectedDate,e=>{t.value=e||""},{immediate:!0});return{selectedDateString:t,getTodayButtonText:()=>"Hôm nay",handleTodayClick:()=>{a("today-click"),a("view-change","today")},handleLeagueClick:()=>{a("league-click"),a("view-change","league")},onDateChange:()=>{a("date-change",t.value)},clearDate:()=>{t.value="",a("date-clear")},handleCalendarClick:()=>{try{const e=document.querySelector('.msp-input[type="date"]');if(!e)return void console.warn("Date input not found");if(e.focus(),e.showPicker&&"function"==typeof e.showPicker)e.showPicker();else{const a=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window});e.dispatchEvent(a)}}catch(e){console.warn("Failed to open date picker:",e);const a=document.querySelector('.msp-input[type="date"]');a&&a.focus()}},selectSortOption:e=>{a("sort-change",e)},updateSelectedDate:e=>{t.value=e}}}},Lr={class:"msp-results-navigation"},Mr={class:"msp-filter-tags-top"},Tr={class:"msp-filter-tags__day"},Dr={class:"msp-mode-toggles"},$r={key:0,class:"msp-today-badge"},Ir={key:1,class:"msp-tab-spinner"},xr={key:0,class:"msp-today-badge"},Er={key:0,class:"msp-calendar"},Rr={class:"msp-datepicker"},Ar={class:"msp-input-wrapper"},Hr=["max"],Nr={class:"msp-sort-pills"},Pr={class:"msp-sort-pills__options"},Fr=["onClick"];const Or={name:"Odds",components:{TodayOdds:Zi,LeagueOdds:kr,OddsNavigation:r(Sr,[["render",function(e,a,t,s,o,l){var n,i;return f(),d("div",Lr,[u("div",Mr,[u("div",Tr,[u("div",Dr,[t.showTodayButton?(f(),d("div",{key:0,onClick:a[0]||(a[0]=(...e)=>s.handleTodayClick&&s.handleTodayClick(...e)),class:m(["msp-today msp-mode-toggle",{"msp-today-active":"today"===t.viewMode}])},[a[6]||(a[6]=u("svg",{class:"msp-today-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M12 2C13.1 2 14 2.9 14 4V6H10V4C10 2.9 10.9 2 12 2ZM21 9V7C21 5.9 20.1 5 19 5H17V7H19V9H5V7H7V5H5C3.9 5 3 5.9 3 7V9H21ZM3 11V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V11H3ZM7 13H9V15H7V13ZM11 13H13V15H11V13ZM15 13H17V15H15V13Z"})],-1)),h(" "+p(s.getTodayButtonText())+" ",1),t.todayMatchCount>0?(f(),d("span",$r,p(t.todayMatchCount),1)):g("",!0),t.todayLoading?(f(),d("div",Ir)):g("",!0)],2)):g("",!0),(null==(n=t.leagueConfigs)?void 0:n.length)>0?(f(),d("div",{key:1,onClick:a[1]||(a[1]=(...e)=>s.handleLeagueClick&&s.handleLeagueClick(...e)),class:m(["msp-league-toggle msp-mode-toggle",{"msp-league-toggle-active":"league"===t.viewMode}])},[a[7]||(a[7]=u("svg",{class:"msp-league-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M12 2L15.09 8.26L22 9L17 14.14L18.18 21L12 17.77L5.82 21L7 14.14L2 9L8.91 8.26L12 2Z"})],-1)),a[8]||(a[8]=h(" Leagues ",-1)),(null==(i=t.leagueConfigs)?void 0:i.length)>0?(f(),d("span",xr,p(t.leagueConfigs.length),1)):g("",!0)],2)):g("",!0)]),"today"===t.viewMode?(f(),d("div",Er,[a[11]||(a[11]=u("div",{class:"msp-calendar-text"},"Cụ thá»",-1)),u("div",Rr,[u("div",Ar,[x(u("input",{"onUpdate:modelValue":a[2]||(a[2]=e=>s.selectedDateString=e),onChange:a[3]||(a[3]=(...e)=>s.onDateChange&&s.onDateChange(...e)),name:"date",type:"date",class:"msp-input",placeholder:"Chá»n ngà y",max:(new Date).toISOString().split("T")[0],title:"Chá» có thá» chá»n ngà y trong quá khứ hoặc hôm nay"},null,40,Hr),[[E,s.selectedDateString]]),s.selectedDateString?(f(),d("i",{key:0,class:"msp-icon-clear",onClick:a[4]||(a[4]=(...e)=>s.clearDate&&s.clearDate(...e))},[...a[9]||(a[9]=[u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"
1currentColor"},[u("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)])])):g("",!0),u("i",{class:"msp-icon-calendar",onClick:a[5]||(a[5]=(...e)=>s.handleCalendarClick&&s.handleCalendarClick(...e))},[...a[10]||(a[10]=[u("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor"},[u("path",{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"})],-1)])])])])])):g("",!0)]),u("div",Nr,[a[12]||(a[12]=u("span",{class:"msp-sort-pills__label"},"Sắp xếp:",-1)),u("div",Pr,[(f(!0),d(v,null,y(t.sortOptions,e=>(f(),d("button",{key:e.value,onClick:a=>s.selectSortOption(e.value),class:m(["msp-sort-pill",{"msp-sort-pill--active":t.currentSort===e.value}])},p(e.label),11,Fr))),128))])])])])}]])},props:{uuid:{type:String,required:!1,validator:e=>!e||e.length>0},leagues:{type:[String,Array],required:!1,default:null},leagueSet:{type:String,required:!1,default:null},defaultView:{type:String,default:"today",validator:e=>["today","league","single"].includes(e)},showTodayButton:{type:Boolean,default:!0},todayMatchLimit:{type:Number,default:100},showDate:{type:Boolean,default:!0},dateRange:{type:String,default:"today",validator:e=>["today","yesterday","week","last_week","month"].includes(e)},showDateFilter:{type:Boolean,default:!0},title:{type:String,default:"Match Odds"},limit:{type:[String,Number],default:50}},setup(e){const a=i(e.defaultView),t=i("priority"),s=i([{value:"priority",label:"Ná»i báºt"},{value:"time",label:"Theo thá»i gian"},{value:"league",label:"Theo giải Äấu"},{value:"status",label:"Theo trạng thái"}]),r=i([]),{matchUrls:d,getMatchUrl:u,hasMatchUrl:m,fetchMatchUrls:h}=ae(r,{autoFetch:!1}),p=Ga(0,t,d),g=Ka();D("getMatchUrl",u),D("hasMatchUrl",m);const v=i([]),y=i(0),f=i(!1),w=i(null),_=i("");let C=null,b=[];const k=n(()=>e.showTodayButton||e.leagues||e.leagueSet),S=n(()=>!(!e.leagues&&!e.leagueSet)),L=n(()=>"league"===a.value&&v.value.length?v.value[y.value]:null),M=n(()=>!("league"!==a.value||!L.value)&&g.hasMore.value(L.value.id)),T=n(()=>!("league"!==a.value||!L.value)&&g.isLoadingMore.value(L.value.id)),$=n(()=>"today"===a.value?p.isLoading.value:"league"===a.value&&L.value?g.isLoading.value(L.value.id):f.value),x=n(()=>p.matches.value),E=n(()=>p.loading.value),R=n(()=>p.error.value),A=n(()=>p.matchCount.value),H=n(()=>g.leagueData),N=n(()=>g.loadingStates),P=n(()=>g.availableRounds.value),F=n({get:()=>g.selectedRoundGroupNum.value,set:e=>g.selectedRoundGroupNum.value=e});o([x,H],([e,a])=>{const t=[];e&&e.length>0&&t.push(...e),a&&"object"==typeof a&&Object.values(a).forEach(e=>{e&&e.length>0&&t.push(...e)}),t.length>0&&(r.value=t,h(t))},{deep:!0});const O=()=>{var e,a;return(null==(e=window.wpData)?void 0:e.currentLanguage)||(null==(a=document.documentElement.lang)?void 0:a.split("-")[0])||"en"},U=async(e=null)=>{await p.fetchTodayResults(e)},z=async(e,a=1,t=!1)=>{await g.fetchLeagueResults(e,a,t)};return c(async()=>{try{await(async()=>{try{f.value=!0,w.value=null;let a=[];if(e.leagueSet){const t=await fetch(`/wp-json/msp/v1/competitions/by-set/${e.leagueSet}?language=${O()}`);if(t.ok){const e=await t.json();a=e.success?e.data:[]}}else if(e.leagues){const t=Array.isArray(e.leagues)?e.leagues:e.leagues.split(",").map(e=>e.trim()),s=await fetch(`/wp-json/msp/v1/competitions/by-ids?ids=${t.join(",")}&language=${O()}`);if(s.ok){const e=await s.json();a=e.success?e.data:[]}}else{const e=await fetch(`/wp-json/msp/v1/competitions/active?language=${O()}`);if(e.ok){const t=await e.json();a=t.success?t.data:[]}}if(0===a.length)return console.warn("No active competitions found. Please mark some competitions as Hot or Featured in WordPress Admin."),void(v.value=[]);v.value=a,console.log("League Initialization Debug:",{leagues_count:a.length,leagues_sample:a.slice(0,2).map(e=>({id:e.id,name:e.name,season_id:e.season_id,uuid:e.uuid})),activeLeagueIndex:y.value,currentLeague:a[y.value]}),a.forEach(e=>{g.initializeLeague(e)})}catch(a){console.error("Failed to load league configuration:",a),v.value=[]}finally{f.value=!1}})(),"today"===a.value?await U():"league"===a.value&&v.value.length>0&&await z(v.value[0]),await I(),C=qa.create({currentLeague:L,leagueConfigs:v,paginationData:g.paginationData,loadMoreStates:g.loadMoreStates,fetchLeagueResults:z})}catch(t){console.error("Error in Odds component onMounted:",t)}}),l(()=>{try{C&&(C.destroy(),qa.destroy()),b.forEach(clearTimeout),b=[],p.
1clear()}catch(e){console.error("Error in Odds component onUnmounted:",e)}}),{viewMode:a,todayMatches:x,todayLoading:E,todayError:R,todayMatchCount:A,leagueConfigs:v,leagueData:H,leagueLoadingStates:N,activeLeagueIndex:y,loading:f,error:w,selectedDateString:_,currentSort:t,sortOptions:s,availableRounds:P,selectedRoundGroupNum:F,showNavigation:k,isMultiLeague:S,currentLeague:L,hasMore:M,isLoadingMore:T,isLoading:$,handleViewChange:e=>{var t;if(console.log("View mode change:",{from:a.value,to:e}),a.value=e,"league"===e&&_.value&&(_.value=""),"today"===e)p.hasMatches.value||U();else if("league"===e&&v.value.length>0){g.clearRoundState();const e=v.value[y.value];!e||g.leagueData[e.id]&&0!==g.leagueData[e.id].length?e&&(null==(t=g.leagueData[e.id])?void 0:t.length)>0&&g.generateAvailableRounds(g.leagueData[e.id]):z(e)}},handleDateChange:e=>{_.value=e,"today"===a.value&&U(e)},handleDateClear:()=>{_.value="","today"===a.value&&U()},handleSortChange:e=>{t.value=e},handleTodayClick:()=>{_.value="",U()},handleLeagueClick:()=>{},handleMatchClick:e=>{console.log("Match clicked:",e)},handleLeagueChange:e=>{var a;const t=v.value[y.value],s=v.value[e];console.log("League change:",{from_league:(null==t?void 0:t.name)||"None",from_index:y.value,to_league:(null==s?void 0:s.name)||"None",to_index:e}),y.value=e,g.clearRoundState();const o=v.value[e];!o||g.leagueData[o.id]&&0!==g.leagueData[o.id].length?o&&(null==(a=g.leagueData[o.id])?void 0:a.length)>0&&(console.log("Regenerating rounds for cached league:",o.name),g.generateAvailableRounds(g.leagueData[o.id])):(console.log("Fetching fresh data for league:",o.name),z(o))},handleLoadMore:async()=>{if("league"!==a.value||!L.value||T.value)return;const e=L.value;await g.loadMore(e)},handleRoundSelect:e=>{g.selectedRoundGroupNum.value=e},handleTabHover:(e,a)=>{C&&C.handleTabHover(e,a)},handleTabHoverEnd:(e,a)=>{C&&C.handleTabHoverEnd(e,a)},retryTodayResults:()=>{p.retry()},retryLeagueResults:()=>{L.value&&z(L.value)}}}},Ur={class:"msp-results-container msp-theme-default msp-odds-view"},zr={class:"msp-results-header"},Br={key:0,class:"msp-loading-indicator"};const jr=r(Or,[["render",function(e,a,t,s,o,l){const n=L("OddsNavigation"),i=L("TodayOdds"),r=L("LeagueOdds");return f(),d("div",Ur,[u("div",zr,[s.isLoading&&"single"===s.viewMode?(f(),d("div",Br,"Äang tải...")):g("",!0)]),s.showNavigation?(f(),M(n,{key:0,"view-mode":s.viewMode,"show-today-button":t.showTodayButton,"league-configs":s.leagueConfigs,"today-match-count":s.todayMatchCount,"today-loading":s.todayLoading,"selected-date":s.selectedDateString,"current-sort":s.currentSort,"sort-options":s.sortOptions,onViewChange:s.handleViewChange,onDateChange:s.handleDateChange,onDateClear:s.handleDateClear,onSortChange:s.handleSortChange,onTodayClick:s.handleTodayClick,onLeagueClick:s.handleLeagueClick},null,8,["view-mode","show-today-button","league-configs","today-match-count","today-loading","selected-date","current-sort","sort-options","onViewChange","onDateChange","onDateClear","onSortChange","onTodayClick","onLeagueClick"])):g("",!0),"today"===s.viewMode?(f(),M(i,{key:1,matches:s.todayMatches,"is-loading":s.todayLoading,error:s.todayError,"selected-date":s.selectedDateString,onMatchClick:s.handleMatchClick,onRetry:s.retryTodayResults},null,8,["matches","is-loading","error","selected-date","onMatchClick","onRetry"])):g("",!0),"league"===s.viewMode?(f(),M(r,{key:2,"league-configs":s.leagueConfigs,"active-league-index":s.activeLeagueIndex,"league-data":s.leagueData,"league-loading-states":s.leagueLoadingStates,"available-rounds":s.availableRounds,"selected-round-group-num":s.selectedRoundGroupNum,"has-more":s.hasMore,"is-loading-more":s.isLoadingMore,error:s.error,onLeagueChange:s.handleLeagueChange,onMatchClick:s.handleMatchClick,onLoadMore:s.handleLoadMore,onRetry:s.retryLeagueResults,onTabHover:s.handleTabHover,onTabHoverEnd:s.handleTabHoverEnd,onRoundSelect:s.handleRoundSelect},null,8,["league-configs","active-league-index","league-data","league-loading-states","available-rounds","selected-round-group-num","has-more","is-loading-more","error","onLeagueChange","onMatchClick","onLoadMore","onRetry","onTabHover","onTabHoverEnd","onRoundSelect"])):g("",!0)])}]]),Vr=()=>window.mspFrontend?{baseUrl:window.mspFrontend.restUrl||"/wp-json/msp/v1/",nonce:window.mspFrontend.nonce||""}:{baseUrl:"/wp-json/msp/v1/",nonce:""},qr=new H(Vr());s.log("MSP","main.js script loaded successfully!"),s.log("MSP","Vue available:","undefined"!=typeof Vue?"â
":"â"),s.log("MSP","createApp available:",void 0!==N?"â
":"â");const Gr=(e,a=null)=>{s.log("MSP Plugin",e,a),window.mspDebugLogs||(window.mspDebugLogs=[]),window.mspDebugLogs.push({time:new Date,message:e,data:a})};document.addEventListener("DOMContentLoaded",function(){Gr("DOM loaded, initializing MSP components..."),Gr("API Config:",Vr()),Gr("Available components:",{Schedule:Ba,Results:hs,Standing:il,LiveScore:an,MatchDetail:ki});const e=document.querySelectorAll('[data-msp-component="schedule"]');Gr(`Found ${e.length} schedule components`),e.forEach((e,a)=>{try{const t=N(Ba,{limit:e.dataset.limit||10,league:e.dataset.league||"",date:e.dataset.date||""});t.provide("apiService",qr),t.mount(e),Gr(`Schedule component ${a+1} mounted successfully`)}catch(t){s.error("MSP","Failed to mount Schedule component:",t)}});const a=document.querySelectorAll('[data-msp-component="results"]');Gr(`Found ${a.length} results components`),a.forEach((e,a)=>{try{const t=N(hs,{limit:e.dataset.limit||10,league:e.dataset.league||"",date:e.dataset.date||"",leagues:e.dataset.leagues||"",leagueSet:e.dataset.leagueSet||""});t.provide("apiService",qr),t.mount(e),Gr(`Results component ${a+1} mounted successfully`)}catch(t){s.error("MSP","Failed to mount Results component:",t)}});const t=document.querySelectorAll('[data-msp-component="standing"]');Gr(`Found ${t.length} standing components`),t.forEach((e,a)=>{try{const t={title:e.dataset.title||"Standings",showForm:"false"!==e.dataset.showForm,
1showLegend:"false"!==e.dataset.showLegend};e.dataset.leagueSet?t.leagueSet=e.dataset.leagueSet:e.dataset.leagues?t.leagues=e.dataset.leagues:t.uuid=e.dataset.uuid||e.dataset.seasonId||"",Gr(`Standing component ${a+1} props:`,t);const s=N(il,t);s.provide("apiService",qr),s.mount(e),Gr(`Standing component ${a+1} mounted successfully`)}catch(t){s.error("MSP","Failed to mount Standing component:",t)}});const o=document.querySelectorAll('[data-msp-component="live-score"]');Gr(`Found ${o.length} live-score components`),o.forEach((e,a)=>{try{const t=N(an,{refresh:e.dataset.refresh||30});t.provide("apiService",qr),t.mount(e),Gr(`LiveScore component ${a+1} mounted successfully`)}catch(t){s.error("MSP","Failed to mount LiveScore component:",t)}});const l=document.querySelectorAll('[data-msp-component="match-detail"]');Gr(`Found ${l.length} match-detail components`),l.forEach((e,a)=>{try{const t=N(ki,{matchId:e.dataset.matchId||"",sport:e.dataset.sport||"football"});t.provide("apiService",qr),t.mount(e),Gr(`MatchDetail component ${a+1} mounted successfully`)}catch(t){s.error("MSP","Failed to mount MatchDetail component:",t)}});const n=document.querySelectorAll('[data-msp-component="odds"]');Gr(`Found ${n.length} odds components`),n.forEach((e,a)=>{try{const t=N(jr,{limit:e.dataset.limit||10,league:e.dataset.league||"",date:e.dataset.date||"",leagues:e.dataset.leagues||"",leagueSet:e.dataset.leagueSet||""});t.provide("apiService",qr),t.mount(e),Gr(`Odds component ${a+1} mounted successfully`)}catch(t){s.error("MSP","Failed to mount Odds component:",t)}}),Gr("MSP component initialization complete")}),window.addEventListener("unhandledrejection",e=>{s.error("MSP","Unhandled promise rejection:",e.reason)}),window.MspComponents={Schedule:Ba,Results:hs,Standing:il,LiveScore:an,MatchDetail:ki,ApiService:qr};
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.