@lovebowls/leagueelements
Version:
League Elements package for LoveBowls
194 lines • 7.13 kB
TypeScript
export default LeagueAdminElement;
declare class LeagueAdminElement extends HTMLElement {
static _globalStylesInjected: boolean;
static get observedAttributes(): string[];
LOG_PREFIX: string;
shadow: ShadowRoot;
_leagues: any[];
_selectedLeagueId: any;
_currentLeagueId: any;
_selectedTeamId: any;
_isModalVisible: boolean;
_modalMode: string;
_data: any;
_teamModalMode: any;
_teamBeingEdited: {} | null;
_lovebowlsTeams: any[];
teamModalOpen: boolean;
teamModalData: any;
teamModalMode: string;
teamModalOptions: {};
matchModalOpen: boolean;
matchModalData: any;
matchModalTeams: any[];
matchModalMode: string;
resetModalOpen: boolean;
_pendingNewLeagueData: {
name: any;
settings: {
pointsForWin: number;
pointsForDraw: number;
pointsForLoss: number;
timesTeamsPlayOther: number;
promotionPositions: number;
relegationPositions: number;
maxRinksPerSession: number | undefined;
rinkPoints: {
enabled: any;
pointsPerRinkWin: number;
pointsPerRinkDraw: number;
defaultRinks: number;
};
};
} | null;
_isWaitingForNewLeagueConfirmation: boolean;
_isNewLeagueLoading: boolean;
_isCopyLeagueLoading: boolean;
_loadingTimeout: NodeJS.Timeout | null;
_rightPanelWasVisible: boolean;
get _isMobile(): boolean;
get _fontScale(): number;
_injectGlobalSwalStyles(): void;
connectedCallback(): void;
disconnectedCallback(): void;
_documentClickHandlerBound: ((e: any) => void) | null | undefined;
attributeChangedCallback(name: any, oldValue: any, newValue: any): void;
_parseAndLoadData(): void;
_parseLovebowlsTeamsData(dataString: any): void;
_applyCurrentLeagueIdSelection(): boolean;
showError(message: any): void;
clearError(): void;
render(): void;
_renderLeagueList(): void;
_handleLeagueSelect(leagueId: any): void;
_createAndAppendLeagueActions(container: any, leagueId: any): void;
_currentLeagueIdForMenu: any;
_showLeagueSpecificPanels(): void;
_hideLeagueSpecificPanels(): void;
_updateButtonStates(): void;
_renderTeamsList(): void;
_scrollTeamsListToTop(): void;
_attachBaseEventListeners(): void;
_getSelectedLeague(): any;
/**
* Hides/resets all league action dropdown menus to their default state
* This function finds all dropdown menu elements and hides them
*/
_hideGlobalLeagueMenu(): void;
/**
* Handle document clicks to close dropdown menus when clicking outside
*/
_handleDocumentClick(e: any): void;
_handleResetLeague(): void;
/**
* Open the reset modal for a league
* @param {Object} league - The league object to reset
*/
_openResetModal(league: Object): void;
_leagueToReset: Object | null | undefined;
/**
* Close the reset modal
*/
_closeResetModal(): void;
/**
* Reset matches for a league while preserving teams
* @param {Object} leagueToReset - The league object to reset matches for
* @param {Array} generatedMatches - The generated matches array
* @param {number} matchCount - The number of matches generated
* @param {Object} dateRange - The date range for scheduling matches
*/
_applyGeneratedMatches(leagueToReset: Object, generatedMatches: any[], matchCount: number, dateRange: Object): void;
_mapGeneratedMatchesToActualTeams(generatedMatches: any, actualTeams: any): any;
_handleViewLeagueTable(): void;
_handleAddTeam(): void;
_handleEditTeam(team: any): void;
_handleRemoveTeam(team: any): void;
_showTeamModal(mode: any, teamData?: null, existingTeams?: any[]): void;
_hideTeamModal(): void;
_populateTeamModalForm(modalBody: any, teamData: any, existingTeams?: any[]): void;
_showTeamModalError(message: any): void;
_clearTeamModalError(): void;
_handleSaveTeamModal(): void;
_showModal(mode: any, leagueData?: null): void;
_hideModal(): void;
_populateModalForm(modalBody: any, leagueData: any): void;
_handleSaveModal(): void;
/**
* Set up tab switching functionality for the modal
* @param {HTMLElement} modalBody - The modal body element
* @private
*/
private _setupModalTabs;
/**
* Get the configuration for modal tabs
* This method makes it easy to extend tabs in the future
* @returns {Array} Array of tab configurations
* @private
*/
private _getModalTabsConfig;
/**
* Generate the League Structure tab content
* @param {Object} settings - League settings object
* @returns {string} HTML content for the tab
* @private
*/
private _getLeagueStructureTabContent;
/**
* Generate the Points tab content
* @param {Object} settings - League settings object
* @returns {string} HTML content for the tab
* @private
*/
private _getPointsTabContent;
_getSwalCustomClasses(): {
popup: string;
title: string;
htmlContainer: string;
actions: string;
confirmButton: string;
cancelButton: string;
};
/**
* Check if we need to show new league confirmation dialog
*/
_handleLeagueOperationTimeout(): void;
_handleLeagueOperationError(errorMessage?: string): void;
/**
* Public method to handle save errors from parent component
* @param {string} errorMessage - The error message to display
*/
handleSaveError(errorMessage: string): void;
_checkForNewLeagueConfirmation(): void;
/**
* Show confirmation dialog after creating a new league
* @param {Object} newLeague - The newly created league object
*/
_showNewLeagueConfirmationDialog(newLeague: Object, originalData: any): void;
_handleNewLeague(): void;
_handleCopyLeague(): void;
_handleEditLeagueRules(): void;
_handleDeleteLeague(): void;
_handleAddMatch(): void;
_handleEditMatch(matchIdContainer: any): void;
openMatchModal(matchData: any, teams: any, mode?: string): void;
closeMatchModal(): void;
/**
* Renders only the match modal without affecting the rest of the component
* @private
*/
private _renderMatchModal;
openTeamModal(teamData: any, mode?: string, options?: {}): void;
closeTeamModal(): void;
_setupResizer(): void;
_updateAttentionPanel(leagueToUse: any): void;
_handleAdminAttentionMatchClickBound: ((e: any) => void) | undefined;
_updateSchedulePanel(leagueToUse: any): void;
_handleAdminScheduleEventBound: ((e: any) => void) | undefined;
_updateDashboardPanel(leagueToUse: any): void;
_handleAdminAttentionMatchClick(e: any): void;
_handleAdminScheduleEvent(e: any): void;
_handleTeamSelect(team: any): void;
_createAndAppendTeamActions(actionsContainer: any, team: any): void;
setupMatrixEventListeners(): void;
}
//# sourceMappingURL=leagueAdminElement.d.ts.map