minesweeper-for-web
Version:
Minesweeper as a WebComponent.
61 lines • 2.37 kB
TypeScript
import { LitElement } from 'lit';
import { GameWonEvent, GameLostEvent, FieldLongPressEvent, FieldClickEvent, FieldInteractionEvent } from './events/index.js';
import { GameModeConfiguration } from './types/index.js';
/**
* @fires {GameWonEvent} minesweeper:game-won - User just won the game
* @fires {GameLostEvent} minesweeper:game-lost - User just lost the game
* @fires {FieldClickEvent} minesweeper:field-click - User clicked a field
* @fires {FieldLongPressEvent} minesweeper:field-long-press - User long pressed a field
* @fires {FieldInteractionEvent} minesweeper:field-interaction - Game state change occurred
*/
export declare class MinesweeperGame extends LitElement {
static get styles(): import("lit").CSSResult;
restartSelector?: string;
bombCounterSelector?: string;
flagPlacementMode: boolean;
disableQuestionMarks: boolean;
longPressThreshold: number;
columns: number;
rows: number;
/** @type {number} */
bombs: number;
private engine;
private pressStartTimestamp?;
private pressStartSweeperField?;
private longPressTimerId?;
private isPressingFlagKey;
constructor();
connectedCallback(): void;
disconnectedCallback(): void;
private handleDocumentKeydown;
private handleDocumentKeyup;
private handleSweeperContainerMouseMove;
private createGameBoard;
private gameWonCallback;
private gameLostCallback;
setGameModeConfiguration(gameModeConfiguration: GameModeConfiguration): void;
restartGame(): void;
private get isLongPressDisabled();
private resetLongPressStates;
private handleScroll;
private handleLongPress;
private handleFieldClickStart;
private handleFieldClickLeave;
private handleFieldClickEnd;
private triggerSecondActionClick;
render(): import("lit-html").TemplateResult<1>;
private getSweeperFieldSvg;
private getHoverSweeperFieldSvg;
private getSweeperFieldHtml;
}
declare global {
interface GlobalEventHandlersEventMap {
'minesweeper:game-won': GameWonEvent;
'minesweeper:game-lost': GameLostEvent;
'minesweeper:field-click': FieldClickEvent;
'minesweeper:field-long-press': FieldLongPressEvent;
'minesweeper:field-interaction': FieldInteractionEvent;
}
}
export default MinesweeperGame;
//# sourceMappingURL=MinesweeperGame.d.ts.map