1import{PageElementBase as d}from"./CdQXFjpm.js";import{a as g}from"./D0D-1Ne0.js";import{G as r}from"./DA0pkXRu.js";import{A as I,l as D,k as h,z as p,aX as O}from"./BpwU1soH.js";import{d as f}from"./ghde6Rcn.js";import"./CATxlt2j.js";import"./CXTOca8g.js";import"./0xmjySIm.js";const y=I("teams",()=>({getTeamByNameWithIdFallback:D(()=>c=>{const i=h().public.clientTeamDefaults;return i.find(s=>{var e;return((e=s.attributes)==null?void 0:e.teamName)===c})||i.find(s=>s.id===c)||i[0]})}));class b extends d{constructor(i="root",t){super(i,t),this.widgetType="WidgetLeagueTable",this.widgetName="League Table",this.component="WidgetLeagueTable",this.cmsComponent="WidgetLeagueTable",this.icon={icon:"LeagueTableWidget",pack:"cms"},this.pseudoWidgetType="widget",this.competitionID="123",this.teamID=null,this.seasonID=null,this.roundID=null,this.theme="light",this.showFullTable=!1,this.showCrest=!0,this.tableIcon=new r,this.teamName=null,this.teamOptions=[],this.competitionOptions=[],this.seasonOptions=[],this.roundOptions=[],this.footballSeasons=[],this.COMPETITIONS_WITH_ROUNDS=["EN_NLC"],this.buildLayoutFields=()=>[{heading:"Layout",options:[{type:"switch",attributeKey:"showFullTable",label:"Show Full Table"},{type:"switch",attributeKey:"showCrest",label:"Show Competition Crest"}]}],this.buildContentFields=s=>{var a,m,u,l;const e=h(),o=e.public.club.features.multiClub,n=e.public.club.sport;return[{heading:"Select Table",options:[{hidden:((u=(m=(a=e==null?void 0:e.public)==null?void 0:a.club)==null?void 0:m.features)==null?void 0:u.multiClub)??!1,heading:"Team",type:"select",attributeKey:"teamID",items:this.fetchTeamOptions()},{heading:"Season",type:"select",attributeKey:"seasonID",items:this.fetchSeasonOptions(s),order:n==="rugbyleague"?3:void 0},{heading:"Competition",type:"select",attributeKey:"competitionID",items:this.fetchCompetitionOptions(s)},{heading:"Group / Round",type:"select",attributeKey:"roundID",hidden:n==="rugbyleague"||!o||!((l=s.activeCompetition)!=null&&l.code)||!s.COMPETITIONS_WITH_ROUNDS.includes(s.activeCompetition.code),items:this.fetchRoundOptions(s)}]},{heading:"Custom Competition Icon",options:[{type:"image-picker",attributeKey:"tableIcon"}]}]},this.buildStyleFields=()=>[{heading:"Theme",options:[{type:"radio",subType:"list",attributeKey:"theme",options:[{label:"Light",id:"light"},{label:"Dark",id:"dark"},{label:"Accent",id:"club"}]}]}],this.getSidebarTabs=s=>[{name:"Layout",fields:this.buildLayoutFields()},{name:"Content",fields:this.buildContentFields(s),default:!0},{name:"Style",fields:this.buildStyleFields()}],t!=null&&t.widgetType&&!("version"in t)||(t==null?void 0:t.component)==="WidgetV2LeagueTable"?(Object.assign(this,this.normalizeLegacyElement(t)),this.resolveLegacyTeamAndSeason().catch(s=>console.error("Failed to resolve legacy League Table team/season",s))):(this.competitionID=(t==null?void 0:t.competitionID)||null,this.teamID=(t==null?void 0:t.teamID)||null,this.seasonID=(t==null?void 0:t.seasonID)||null,this.roundID=(t==null?void 0:t.roundID)||null,this.theme=(t==null?void 0:t.theme)||"light",this.showFullTable=(t==null?void 0:t.showFullTable)||!1,this.tableIcon=t==null?void 0:t.tableIcon,this.showCrest=(t==null?void 0:t.showCrest)??!0,Object.assign(this,t))}get activeCompetition(){if(this.competitionOptions&&this.competitionID)return this.competitionOptions.find(i=>i.id===this.competitionID)}serializeElement(){return{...super.serializeBaseElement(),competitionID:this.competitionID,teamID:this.teamID,seasonID:this.seasonID,roundID:this.roundID,theme:this.theme,showFullTable:this.showFullTable,showCrest:this.showCrest,tableIcon:this.tableIcon,teamName:this.teamName}}receiveImageFromMediaLibrary(i){this.tableIcon.image=i}duplicateElement(){return new b(this.parentID,f({...this,uuid:void 0}))}fetchTeamOptions(){const{$gc:i}=p(),t=h(),s=t.public.club.sport;return t.public.club.features.multiClub?[]:s==="rugbyleague"?this.teamOptions.length?this.teamOptions:i().clientTeamDefaultsWeb.fetchClientTeamDefaults().then(e=>(this.teamOptions=e.data.map(o=>{var n;return{name:((n=o.attributes)==null?void 0:n.teamName)||"",id:o.id}}),this.teamOptions)):s==="football"?this.teamOptions.length?this.teamOptions:i().football.web().getTeams().then(e=>(this.teamOptions=e?e.map(o=>({name:o.teamName||"",id:o.id})):[],this.teamOptions||[])):[]}
1fetchCompetitionOptions(i){const{$gc:t}=p(),s=h(),e=s.public.club.sport;if(s.public.club.features.multiClub){if(e==="football")return this.competitionOptions.length?this.competitionOptions:t().multiClub.web().getCompetitions().then(o=>(!this.competitionID&&o.length&&(this.competitionID=o[0].competitionID),this.competitionOptions=o.map(n=>({name:n.competitionName||"",id:n.competitionID,code:n.competitionCode||""})),this.competitionOptions))}else{if(e==="football"){const o=(i==null?void 0:i.seasonID)??this.seasonID,n=this.footballSeasons.find(a=>a.seasonID===o);return this.competitionOptions=n?n.competitions.map(a=>({id:String(a.competitionID),name:a.competitionName,code:""})):[],!this.competitionID&&this.competitionOptions.length&&(this.competitionID=this.competitionOptions[0].id),this.competitionOptions}if(e==="rugbyleague")return this.competitionOptions.length?this.competitionOptions:t().competitionsWeb.fetchAllCompetitions().then(o=>(this.competitionOptions=o.data.map(n=>{var a,m;return{name:((a=n.attributes)==null?void 0:a.competitionName)||"",id:n.id,code:((m=n.attributes)==null?void 0:m.competitionCode)||""}}),this.competitionOptions))}return[]}fetchSeasonOptions(i){const{$gc:t}=p(),s=h(),e=s.public.club.sport;return e==="football"?s.public.club.features.multiClub?this.seasonOptions.length?this.seasonOptions:t().multiClub.web().getSeasons().then(o=>(!this.seasonID&&o.length&&(this.seasonID=o[0].seasonID),this.seasonOptions=o.map(n=>({name:n.seasonName,id:n.seasonID})),this.seasonOptions)):e==="football"?this.seasonOptions.length?this.seasonOptions:i.teamID?t().football.web().getSeasonsByTeamID(i.teamID||"").then(o=>(this.footballSeasons=o,this.seasonOptions=o.map(n=>({name:n.season,id:n.seasonID})),this.seasonOptions)):[]:[]:e==="rugbyleague"?s.public.club.features.multiClub?[]:i.competitionID?this.seasonOptions.length?this.seasonOptions:t().competitionsWeb.fetchCompetitionSeasons(i.competitionID).then(o=>(this.seasonOptions=o.data.map(n=>{var a;return{name:((a=n.attributes)==null?void 0:a.seasonName)||"",id:n.id}}),this.seasonOptions)):[]:[]}fetchRoundOptions(i){const{$gc:t}=p(),s=h();return s.public.club.sport!=="rugbyleague"&&s.public.club.features.multiClub?this.roundOptions.length?this.roundOptions:t().multiClub.web().getCompetitionRounds(i.seasonID,i.competitionID).then(e=>e?(!this.roundID&&e.length&&(this.roundID=e[0].id),this.roundOptions=e.map(o=>({name:o.id,id:o.id})),this.roundOptions):[]):[]}async resolveLegacyTeamAndSeason(){var s;const{$gc:i}=p();if(!this.teamID){if(!this.teamName)return;const e=await i().football.web().getTeamByString(this.teamName);this.teamID=(e==null?void 0:e.id)??null}if(!this.teamID)return;const t=await i().football.web().getSeasonsByTeamID(this.teamID);if(t!=null&&t.length&&(this.footballSeasons=t,this.seasonOptions=t.map(e=>({name:e.season,id:e.seasonID})),this.seasonID||(this.seasonID=t[0].seasonID),!this.competitionID)){const e=t.find(n=>n.seasonID===this.seasonID)??t[0],o=(s=e==null?void 0:e.competitions)==null?void 0:s[0];o&&(this.competitionID=String(o.competitionID))}}normalizeLegacyElement(i){var o,n,a,m;const t=i.value?JSON.parse(i.value):{team:"first team"},s=i.teamName??t.team??null;let e;if(i.teamID)e=this.getLegacyTeamByID(i.teamID);else if(s){const{getTeamByNameWithIdFallback:u}=O(y()),l=u.value(s);e=l?{teamID:l.teamID??l.id,teamName:l.teamName??((o=l.attributes)==null?void 0:o.teamName),seasons:l.seasons??((n=l.attributes)==null?void 0:n.seasons)}:void 0}return{widgetType:"WidgetLeagueTable",widgetName:"League Table",component:"WidgetLeagueTable",icon:{icon:"LeagueTableWidget",pack:"cms"},uuid:i.uuid,teamName:s??(e==null?void 0:e.team)??(e==null?void 0:e.teamName)??null,competitionID:i.competitionID||(t.competitionOption!=null?String(t.competitionOption):null)||this.getLegacyCompetitionID(e)||null,teamID:i.teamID??(e==null?void 0:e.teamID)??(e==null?void 0:e.id)??null,seasonID:i.season||i.seasonID||this.getLegacySeasonID(e)||null,roundID:null,theme:((a=i.style)==null?void 0:a.theme)||"light",showFullTable:i.showFullTable??!1,showCrest:!0,tableIcon:new r(((m=i.image)!=null&&m.image?i.image:void 0)??this.getLegacyTableIcon(e))}}
1getLegacyTeamByID(i){var s,e;const t=g(i);return t?{teamID:t.id,teamName:(s=t.attributes)==null?void 0:s.teamName,seasons:(e=t.attributes)==null?void 0:e.seasons}:void 0}getLegacyCompetitionID(i){var t,s,e;return i?i.competitionOption!==null&&i.competitionOption!==void 0?i.competitionOption.toString():(e=(s=(t=i.seasons)==null?void 0:t[0])==null?void 0:s.competitions)!=null&&e[0]?i.seasons[0].competitions[0].competitionID.toString():null:null}getLegacyCompetitionIcon(i){var t,s,e,o;if(i)return(e=(s=(t=i.seasons)==null?void 0:t[0])==null?void 0:s.competitions)!=null&&e[0]?((o=i.seasons[0].competitions[0].CompetitionIcons)==null?void 0:o["crest-full-colour"])??void 0:void 0}getLegacyTableIcon(i){const t=this.getLegacyCompetitionIcon(i);return t?{image:t}:void 0}getLegacySeasonID(i){var t;return(t=i==null?void 0:i.seasons)!=null&&t[0]?i.seasons[0].seasonID:null}}export{b as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.