@lovebowls/leagueelements
Version:
League Elements package for LoveBowls
98 lines • 3.22 kB
TypeScript
export default LeagueDashboard;
/**
* Custom element to display league dashboard with comprehensive overview.
*
* @element league-dashboard
* @attr {string} data - JSON stringified League instance object
* @attr {boolean} [is-mobile] - Whether to use mobile styles
* @attr {number} [font-scale] - Font scaling factor
*
* Emits 'league-dashboard-event' with detail { type: 'viewTable' | 'dataLoaded' | 'error', ... }
*/
declare class LeagueDashboard extends HTMLElement {
static get observedAttributes(): string[];
shadow: ShadowRoot;
league: Object | import("@lovebowls/leaguejs").League | null;
panelStates: {
overview: boolean;
matchStatistics: boolean;
leagueSettings: boolean;
};
get _isMobile(): boolean;
get _fontScale(): number;
connectedCallback(): void;
setupEventListeners(): void;
disconnectedCallback(): void;
/**
* Toggles the visibility of a dashboard panel
* @param {HTMLElement} sectionElement - The section element to toggle
*/
togglePanel(sectionElement: HTMLElement): void;
/**
* Updates the visibility of a panel
* @param {HTMLElement} sectionElement - The section element
* @param {boolean} isVisible - Whether the panel should be visible
*/
updatePanelVisibility(sectionElement: HTMLElement, isVisible: boolean): void;
attributeChangedCallback(name: any, oldValue: any, newValue: any): void;
/**
* Loads and parses the league data.
* @param {string|Object} data - League instance or JSON string
*/
loadData(data: string | Object): Promise<void>;
/**
* Shows an error message in the component.
* @param {string} message
*/
showError(message: string): void;
/**
* Renders the dashboard content.
*/
render(): void;
/**
* Renders the main dashboard content.
* @returns {string}
*/
renderDashboardContent(): string;
/**
* Renders the league overview section.
* @returns {string}
*/
renderLeagueOverview(): string;
/**
* Renders the match statistics section.
* @returns {string}
*/
renderMatchStatistics(): string;
/**
* Renders the league settings section.
* @returns {string}
*/
renderLeagueSettings(): string;
/**
* Gets the last result date from played matches.
* @param {Array} playedMatches - Array of played matches
* @returns {string}
*/
getLastResultDate(playedMatches: any[]): string;
/**
* Gets the next match date from unplayed matches.
* @param {Array} matches - Array of all matches
* @returns {string}
*/
getNextMatchDate(matches: any[]): string;
/**
* Utility method to fill template placeholders.
* @param {string} template - Template string with {{placeholders}}
* @param {Object} data - Data object to fill placeholders
* @returns {string}
*/
_fillTemplate(template: string, data: Object): string;
/**
* Escapes HTML to prevent XSS.
* @param {string} unsafe - Unsafe string
* @returns {string}
*/
escapeHtml(unsafe?: string): string;
}
//# sourceMappingURL=LeagueDashboard.d.ts.map