react-chessboard-ui 2.14.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,64 +1,63 @@
1
- /// <reference types="react" />
2
- import { Cell, CellPos, Figure, FigureColor, GameResult, MoveData } from "../JSChessEngine";
3
- import { ArrowCoords, ChangeMove, ChessBoardConfig, ClickData } from "./models";
4
- declare type UseChessBoardInteractiveProps = {
5
- config?: Partial<ChessBoardConfig>;
6
- onChange: (moveData: MoveData) => void;
7
- onEndGame: (result: GameResult) => void;
8
- onClickByChessBoard?: (data: ClickData) => void;
9
- toggleTurn?: boolean;
10
- };
11
- export declare const useChessBoardInteractive: (props: UseChessBoardInteractiveProps) => {
12
- fromPos: CellPos;
13
- newMove: ChangeMove;
14
- animated: boolean;
15
- movesTrail: [CellPos, CellPos];
16
- invalidFEN: boolean;
17
- boardConfig: ChessBoardConfig;
18
- markedCells: CellPos[];
19
- grabbingPos: CellPos;
20
- actualState: Cell[][];
21
- currentColor: FigureColor;
22
- arrowsCoords: ArrowCoords[];
23
- initialState: Cell[][];
24
- holdedFigure: Figure;
25
- grabbingCell: CellPos;
26
- possibleMoves: CellPos[];
27
- linesWithCheck: CellPos[][];
28
- startArrowCoord: CellPos;
29
- showFigurePicker: boolean;
30
- markCell: (cellPos: CellPos) => void;
31
- setNewMove: import("react").Dispatch<import("react").SetStateAction<ChangeMove>>;
32
- setAnimated: import("react").Dispatch<import("react").SetStateAction<boolean>>;
33
- handleClick: (cellPos: CellPos, viewOnly?: boolean) => void;
34
- clearFromPos: () => void;
35
- handleGrabEnd: (cellPos: CellPos, withTransition?: boolean) => void;
36
- setInvalidFEN: import("react").Dispatch<import("react").SetStateAction<boolean>>;
37
- handleGrabbing: (x: number, y: number) => void;
38
- endRenderArrow: ([x, y]: CellPos) => void;
39
- setActualState: import("react").Dispatch<import("react").SetStateAction<Cell[][]>>;
40
- setPlayerColor: import("react").Dispatch<import("react").SetStateAction<FigureColor>>;
41
- setCurrentColor: import("react").Dispatch<import("react").SetStateAction<FigureColor>>;
42
- handleUpdateFEN: (FEN: string, reversed: boolean) => void;
43
- selectClickFrom: (cellPos: CellPos) => void;
44
- selectHoverFrom: (cellPos: CellPos) => void;
45
- setInitialState: import("react").Dispatch<import("react").SetStateAction<Cell[][]>>;
46
- setBoardReversed: import("react").Dispatch<import("react").SetStateAction<boolean>>;
47
- startRenderArrow: (pos: CellPos) => void;
48
- setLinesWithCheck: import("react").Dispatch<import("react").SetStateAction<CellPos[][]>>;
49
- cleanAllForFigure: () => void;
50
- reverseChessBoard: () => void;
51
- handleGrabbingCell: (cellPos: CellPos) => void;
52
- moveFigureByChange: (change: ChangeMove) => void;
53
- getHasCheckByCellPos: ([x, y]: CellPos) => boolean;
54
- handleSelectFigurePicker: (figure: Figure) => void;
55
- handleChangeFromExternal: (moveData: MoveData, withTransition?: boolean) => void;
56
- moveFigureByExternalChange: (from: CellPos, to: CellPos, figure: Figure) => {
57
- moveData?: undefined;
58
- attackedPos?: undefined;
59
- } | {
60
- moveData: MoveData;
61
- attackedPos: CellPos;
62
- };
63
- };
64
- export {};
1
+ import { Cell, CellPos, Figure, FigureColor, GameResult, MoveData } from '../JSChessEngine';
2
+ import { ArrowCoords, ChangeMove, ChessBoardConfig, ClickData } from './models';
3
+ type UseChessBoardInteractiveProps = {
4
+ config?: Partial<ChessBoardConfig>;
5
+ onChange: (moveData: MoveData) => void;
6
+ onEndGame: (result: GameResult) => void;
7
+ onClickByChessBoard?: (data: ClickData) => void;
8
+ toggleTurn?: boolean;
9
+ };
10
+ export declare const useChessBoardInteractive: (props: UseChessBoardInteractiveProps) => {
11
+ fromPos: CellPos;
12
+ newMove: ChangeMove;
13
+ animated: boolean;
14
+ movesTrail: [CellPos, CellPos];
15
+ invalidFEN: boolean;
16
+ boardConfig: ChessBoardConfig;
17
+ markedCells: CellPos[];
18
+ grabbingPos: CellPos;
19
+ actualState: Cell[][];
20
+ currentColor: FigureColor;
21
+ arrowsCoords: ArrowCoords[];
22
+ initialState: Cell[][];
23
+ holdedFigure: Figure;
24
+ grabbingCell: CellPos;
25
+ possibleMoves: CellPos[];
26
+ linesWithCheck: CellPos[][];
27
+ startArrowCoord: CellPos;
28
+ showFigurePicker: boolean;
29
+ markCell: (cellPos: CellPos) => void;
30
+ setNewMove: import('react').Dispatch<import('react').SetStateAction<ChangeMove>>;
31
+ setAnimated: import('react').Dispatch<import('react').SetStateAction<boolean>>;
32
+ handleClick: (cellPos: CellPos, viewOnly?: boolean) => void;
33
+ clearFromPos: () => void;
34
+ handleGrabEnd: (cellPos: CellPos, withTransition?: boolean) => void;
35
+ setInvalidFEN: import('react').Dispatch<import('react').SetStateAction<boolean>>;
36
+ handleGrabbing: (x: number, y: number) => void;
37
+ endRenderArrow: ([x, y]: CellPos) => void;
38
+ setActualState: import('react').Dispatch<import('react').SetStateAction<Cell[][]>>;
39
+ setPlayerColor: import('react').Dispatch<import('react').SetStateAction<FigureColor>>;
40
+ setCurrentColor: import('react').Dispatch<import('react').SetStateAction<FigureColor>>;
41
+ handleUpdateFEN: (FEN: string, reversed: boolean) => void;
42
+ selectClickFrom: (cellPos: CellPos) => void;
43
+ selectHoverFrom: (cellPos: CellPos) => void;
44
+ setInitialState: import('react').Dispatch<import('react').SetStateAction<Cell[][]>>;
45
+ setBoardReversed: import('react').Dispatch<import('react').SetStateAction<boolean>>;
46
+ startRenderArrow: (pos: CellPos) => void;
47
+ setLinesWithCheck: import('react').Dispatch<import('react').SetStateAction<CellPos[][]>>;
48
+ cleanAllForFigure: () => void;
49
+ reverseChessBoard: () => void;
50
+ handleGrabbingCell: (cellPos: CellPos) => void;
51
+ moveFigureByChange: (change: ChangeMove) => void;
52
+ getHasCheckByCellPos: ([x, y]: CellPos) => boolean;
53
+ handleSelectFigurePicker: (figure: Figure) => void;
54
+ handleChangeFromExternal: (moveData: MoveData, withTransition?: boolean) => void;
55
+ moveFigureByExternalChange: (from: CellPos, to: CellPos, figure: Figure) => {
56
+ moveData?: undefined;
57
+ attackedPos?: undefined;
58
+ } | {
59
+ moveData: MoveData;
60
+ attackedPos: CellPos;
61
+ };
62
+ };
63
+ export {};
@@ -1,75 +1,75 @@
1
- import { Cell, SquarePos, Piece, PieceColor, MoveData } from "../JSChessEngine";
2
- import { ChessBoardConfig } from "./models";
3
- /**
4
- * Возвращает класс для фигуры в клетке
5
- */
6
- export declare const getFigureCSS: (figure: Piece) => string;
7
- /**
8
- * Возвращает белая ли клетка
9
- */
10
- export declare const getIsLightCell: (rowId: number, cellId: number) => boolean;
11
- /**
12
- * Функция, которая просто создает массив размером size
13
- */
14
- export declare const getFilledArrayBySize: (size: number) => number[];
15
- /**
16
- * Возвращает только массив фигурам у которых
17
- * есть поле position
18
- */
19
- export declare const mapCellsToFiguresArray: (boardState: Cell[][]) => Piece[];
20
- /**
21
- *
22
- * @param possibleMoves Список возможных ходов
23
- * @param position позиция для проверки
24
- */
25
- export declare const checkIsPossibleMove: (possibleMoves: SquarePos[], position: import("../JSChessEngine").CellPos) => boolean;
26
- /**
27
- * Проверяет находится ли проверяемая позиция в
28
- * наборе позиций
29
- * @param positions набор позиций
30
- * @param pos позиция
31
- */
32
- export declare const checkPositionsHas: (positions: SquarePos[] | undefined, pos: import("../JSChessEngine").CellPos) => boolean;
33
- /**
34
- * Проверяет, является ли ход рокеровкой
35
- * @param moveData
36
- * @returns
37
- */
38
- export declare const checkIsCastlingMove: (moveData: MoveData) => boolean;
39
- /**
40
- * Проверка клетки, на то есть ли шах
41
- */
42
- export declare const hasCheck: (cell: Cell, currentColor: PieceColor, linesWithCheck: SquarePos[][]) => boolean;
43
- export declare const degrees: (a: number, b: number) => number;
44
- export declare const calcAngle: (start: number[], end: number[]) => number;
45
- export declare const getChessBoardConfig: (config: Partial<ChessBoardConfig> | undefined) => ChessBoardConfig;
46
- /**
47
- * Возвращает массив фигур по заданому цвету
48
- * @param color цвет фигур
49
- * @param forPawnTransform только фигуры для превращения пешки
50
- */
51
- export declare const getFiguresByColor: (color: PieceColor, forPawnTransform?: boolean) => Piece[];
52
- /**
53
- * Корректирует позицию захвата курсором
54
- * коррекция происходит по сроллу
55
- */
56
- export declare const correctGrabbingPosByScroll: (pos: import("../JSChessEngine").CellPos) => import("../JSChessEngine").CellPos;
57
- /**
58
- * Корректирует указатели стрелки
59
- */
60
- export declare const correctGrabbingPosForArrow: (pos: import("../JSChessEngine").CellPos, boardConfig: ChessBoardConfig) => import("../JSChessEngine").CellPos;
61
- /**
62
- * Создание тэга для хранение состояния
63
- * разворота доски
64
- *
65
- * На момент создания, есть проблема с заданием
66
- * разворота доски для слоя фигур - происходит двойной
67
- * рендер. Из-за этого доска возврщает в тоже положение
68
- * при reversed = true, но состояние игры разворачивается
69
- *
70
- * Поэтому принято решение вынести хранение и задание
71
- * разворота доски на уровень data-атрибутов html
72
- */
73
- export declare const createHtmlReversedStateHolder: () => void;
74
- export declare const setHtmlReversedStateHolderValue: (reversed: boolean) => void;
75
- export declare const getHtmlReversedStateHolderValue: () => boolean;
1
+ import { Cell, SquarePos, Piece, PieceColor, MoveData } from '../JSChessEngine';
2
+ import { ChessBoardConfig } from './models';
3
+ /**
4
+ * Возвращает класс для фигуры в клетке
5
+ */
6
+ export declare const getFigureCSS: (figure: Piece) => string;
7
+ /**
8
+ * Возвращает белая ли клетка
9
+ */
10
+ export declare const getIsLightCell: (rowId: number, cellId: number) => boolean;
11
+ /**
12
+ * Функция, которая просто создает массив размером size
13
+ */
14
+ export declare const getFilledArrayBySize: (size: number) => number[];
15
+ /**
16
+ * Возвращает только массив фигурам у которых
17
+ * есть поле position
18
+ */
19
+ export declare const mapCellsToFiguresArray: (boardState: Cell[][]) => Piece[];
20
+ /**
21
+ *
22
+ * @param possibleMoves Список возможных ходов
23
+ * @param position позиция для проверки
24
+ */
25
+ export declare const checkIsPossibleMove: (possibleMoves: SquarePos[], position: SquarePos) => boolean;
26
+ /**
27
+ * Проверяет находится ли проверяемая позиция в
28
+ * наборе позиций
29
+ * @param positions набор позиций
30
+ * @param pos позиция
31
+ */
32
+ export declare const checkPositionsHas: (positions: SquarePos[] | undefined, pos: SquarePos) => boolean;
33
+ /**
34
+ * Проверяет, является ли ход рокеровкой
35
+ * @param moveData
36
+ * @returns
37
+ */
38
+ export declare const checkIsCastlingMove: (moveData: MoveData) => boolean;
39
+ /**
40
+ * Проверка клетки, на то есть ли шах
41
+ */
42
+ export declare const hasCheck: (cell: Cell, currentColor: PieceColor, linesWithCheck: SquarePos[][]) => boolean;
43
+ export declare const degrees: (a: number, b: number) => number;
44
+ export declare const calcAngle: (start: number[], end: number[]) => number;
45
+ export declare const getChessBoardConfig: (config: Partial<ChessBoardConfig> | undefined) => ChessBoardConfig;
46
+ /**
47
+ * Возвращает массив фигур по заданому цвету
48
+ * @param color цвет фигур
49
+ * @param forPawnTransform только фигуры для превращения пешки
50
+ */
51
+ export declare const getFiguresByColor: (color: PieceColor, forPawnTransform?: boolean) => Piece[];
52
+ /**
53
+ * Корректирует позицию захвата курсором
54
+ * коррекция происходит по сроллу
55
+ */
56
+ export declare const correctGrabbingPosByScroll: (pos: SquarePos) => import('../JSChessEngine').CellPos;
57
+ /**
58
+ * Корректирует указатели стрелки
59
+ */
60
+ export declare const correctGrabbingPosForArrow: (pos: SquarePos, boardConfig: ChessBoardConfig) => SquarePos;
61
+ /**
62
+ * Создание тэга для хранение состояния
63
+ * разворота доски
64
+ *
65
+ * На момент создания, есть проблема с заданием
66
+ * разворота доски для слоя фигур - происходит двойной
67
+ * рендер. Из-за этого доска возврщает в тоже положение
68
+ * при reversed = true, но состояние игры разворачивается
69
+ *
70
+ * Поэтому принято решение вынести хранение и задание
71
+ * разворота доски на уровень data-атрибутов html
72
+ */
73
+ export declare const createHtmlReversedStateHolder: () => void;
74
+ export declare const setHtmlReversedStateHolderValue: (reversed: boolean) => void;
75
+ export declare const getHtmlReversedStateHolderValue: () => boolean;
@@ -1,52 +1,52 @@
1
- import { FigureColor, Cell } from './JSChessEngine';
2
- /**
3
- * Вовзвращет позицию клетки по состоянию fen
4
- * @param positionFEN позиция из FEN вида e4
5
- * @returns координаты для определения клетки на доске
6
- */
7
- export declare const getPositionByFEN: (positionFEN: string, boardSize?: number) => number[];
8
- /**
9
- * Проверяет по части FEN возможность рокировки
10
- * и обновляет состояние доски для рокировки
11
- * @param castlingNotation часть FEN-нотации описывающая рокировку
12
- * @param state состояние доски
13
- * @returns обновленное состояние доски
14
- */
15
- export declare const prepareCastlingByFEN: (castlingNotation: string, state: Cell[][]) => Cell[][];
16
- /**
17
- * Конвертирует часть FEN-нотации с фигурами в состояние доски
18
- * @param state состояние доски
19
- */
20
- export declare const partFENtoState: (notation: string) => Cell[][];
21
- /**
22
- * Создает состояние доски
23
- * по FEN-нотации
24
- * rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
25
- * @param notation Описание текущего состояния от Stockfish https://hxim.github.io/Stockfish-Evaluation-Guide/
26
- */
27
- export declare const FENtoGameState: (FEN: string, reversed?: boolean) => {
28
- boardState: Cell[][];
29
- currentColor: FigureColor;
30
- invalidFEN?: boolean;
31
- };
32
- /**
33
- * Возвращает FEN битое поле из состояние доски
34
- * @param state состояние доски
35
- */
36
- export declare const getBeatedCellFENfromState: (state: Cell[][]) => string;
37
- /**
38
- * Возвращает FEN положение фигур на доске
39
- * @param state состояние доски
40
- */
41
- export declare const getFENpositionsFromState: (state: Cell[][]) => string;
42
- /**
43
- * Возвращает FEN-рокеровку из состояния доски
44
- * @param state состояние доски
45
- */
46
- export declare const getFENcastlingFromState: (state: Cell[][]) => string;
47
- /**
48
- * Преобразует состояние доски в FEN
49
- * @param state
50
- * @param countMoves
51
- */
52
- export declare const stateToFEN: (state: Cell[][], currentColor: FigureColor, countMoves?: number) => string;
1
+ import { FigureColor, Cell } from './JSChessEngine';
2
+ /**
3
+ * Вовзвращет позицию клетки по состоянию fen
4
+ * @param positionFEN позиция из FEN вида e4
5
+ * @returns координаты для определения клетки на доске
6
+ */
7
+ export declare const getPositionByFEN: (positionFEN: string, boardSize?: number) => number[];
8
+ /**
9
+ * Проверяет по части FEN возможность рокировки
10
+ * и обновляет состояние доски для рокировки
11
+ * @param castlingNotation часть FEN-нотации описывающая рокировку
12
+ * @param state состояние доски
13
+ * @returns обновленное состояние доски
14
+ */
15
+ export declare const prepareCastlingByFEN: (castlingNotation: string, state: Cell[][]) => Cell[][];
16
+ /**
17
+ * Конвертирует часть FEN-нотации с фигурами в состояние доски
18
+ * @param state состояние доски
19
+ */
20
+ export declare const partFENtoState: (notation: string) => Cell[][];
21
+ /**
22
+ * Создает состояние доски
23
+ * по FEN-нотации
24
+ * rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
25
+ * @param notation Описание текущего состояния от Stockfish https://hxim.github.io/Stockfish-Evaluation-Guide/
26
+ */
27
+ export declare const FENtoGameState: (FEN: string, reversed?: boolean) => {
28
+ boardState: Cell[][];
29
+ currentColor: FigureColor;
30
+ invalidFEN?: boolean;
31
+ };
32
+ /**
33
+ * Возвращает FEN битое поле из состояние доски
34
+ * @param state состояние доски
35
+ */
36
+ export declare const getBeatedCellFENfromState: (state: Cell[][]) => string;
37
+ /**
38
+ * Возвращает FEN положение фигур на доске
39
+ * @param state состояние доски
40
+ */
41
+ export declare const getFENpositionsFromState: (state: Cell[][]) => string;
42
+ /**
43
+ * Возвращает FEN-рокеровку из состояния доски
44
+ * @param state состояние доски
45
+ */
46
+ export declare const getFENcastlingFromState: (state: Cell[][]) => string;
47
+ /**
48
+ * Преобразует состояние доски в FEN
49
+ * @param state
50
+ * @param countMoves
51
+ */
52
+ export declare const stateToFEN: (state: Cell[][], currentColor: FigureColor, countMoves?: number) => string;