react-chessboard-ui 2.10.0 → 2.11.0
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.
- package/dist/ChessBoard/ChessBoard.d.ts +1 -0
- package/dist/ChessBoard/useChessBoardInteractive.d.ts +3 -0
- package/dist/JSChessEngine/FEN.utils.d.ts +1 -0
- package/dist/index.css +41 -0
- package/dist/index.js +100 -47
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +100 -47
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -1488,6 +1488,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1488
1488
|
preparedState[preparedState.length - 1][preparedState.length - 1].figure = _extends({}, preparedState[preparedState.length - 1][preparedState.length - 1].figure, {
|
|
1489
1489
|
touched: false
|
|
1490
1490
|
});
|
|
1491
|
+
}
|
|
1492
|
+
if (!!preparedState[preparedState.length - 1][4].figure) {
|
|
1491
1493
|
preparedState[preparedState.length - 1][4].figure = _extends({}, preparedState[preparedState.length - 1][4].figure, {
|
|
1492
1494
|
touched: false
|
|
1493
1495
|
});
|
|
@@ -1498,6 +1500,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1498
1500
|
preparedState[preparedState.length - 1][0].figure = _extends({}, preparedState[preparedState.length - 1][0].figure, {
|
|
1499
1501
|
touched: false
|
|
1500
1502
|
});
|
|
1503
|
+
}
|
|
1504
|
+
if (!!preparedState[preparedState.length - 1][4].figure) {
|
|
1501
1505
|
preparedState[preparedState.length - 1][4].figure = _extends({}, preparedState[preparedState.length - 1][4].figure, {
|
|
1502
1506
|
touched: false
|
|
1503
1507
|
});
|
|
@@ -1508,6 +1512,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1508
1512
|
preparedState[0][preparedState.length - 1].figure = _extends({}, preparedState[0][preparedState.length - 1].figure, {
|
|
1509
1513
|
touched: false
|
|
1510
1514
|
});
|
|
1515
|
+
}
|
|
1516
|
+
if (!!preparedState[0][4].figure) {
|
|
1511
1517
|
preparedState[0][4].figure = _extends({}, preparedState[0][4].figure, {
|
|
1512
1518
|
touched: false
|
|
1513
1519
|
});
|
|
@@ -1518,6 +1524,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1518
1524
|
preparedState[0][0].figure = _extends({}, preparedState[0][0].figure, {
|
|
1519
1525
|
touched: false
|
|
1520
1526
|
});
|
|
1527
|
+
}
|
|
1528
|
+
if (!!preparedState[0][4].figure) {
|
|
1521
1529
|
preparedState[0][4].figure = _extends({}, preparedState[0][4].figure, {
|
|
1522
1530
|
touched: false
|
|
1523
1531
|
});
|
|
@@ -1552,39 +1560,47 @@ var partFENtoState = function partFENtoState(notation) {
|
|
|
1552
1560
|
});
|
|
1553
1561
|
};
|
|
1554
1562
|
var FENtoGameState = function FENtoGameState(FEN, reversed) {
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1563
|
+
try {
|
|
1564
|
+
var gameState = {
|
|
1565
|
+
boardState: [],
|
|
1566
|
+
currentColor: 'white'
|
|
1567
|
+
};
|
|
1568
|
+
var _FEN$split = FEN.split(' '),
|
|
1569
|
+
stateNotaion = _FEN$split[0],
|
|
1570
|
+
currentColor = _FEN$split[1],
|
|
1571
|
+
FENcastling = _FEN$split[2],
|
|
1572
|
+
beatedField = _FEN$split[3],
|
|
1573
|
+
_ = _FEN$split.slice(4);
|
|
1574
|
+
var preparedStateNotation = '';
|
|
1575
|
+
for (var i = 0; i < stateNotaion.length; i++) {
|
|
1576
|
+
if (!isNaN(parseInt(stateNotaion[i]))) {
|
|
1577
|
+
var dotsCount = parseInt(stateNotaion[i]);
|
|
1578
|
+
for (var dotI = 0; dotI < dotsCount; dotI++) preparedStateNotation += '.';
|
|
1579
|
+
continue;
|
|
1580
|
+
}
|
|
1581
|
+
preparedStateNotation += stateNotaion[i];
|
|
1582
|
+
}
|
|
1583
|
+
gameState.boardState = partFENtoState(preparedStateNotation);
|
|
1584
|
+
gameState.currentColor = currentColor === 'w' ? 'white' : 'black';
|
|
1585
|
+
gameState.boardState = prepareCastlingByFEN(FENcastling, gameState.boardState);
|
|
1586
|
+
if (beatedField !== '-') {
|
|
1587
|
+
var posBeatedCell = getPositionByFEN(beatedField);
|
|
1588
|
+
gameState.boardState[posBeatedCell[0]][posBeatedCell[1]] = _extends({}, gameState.boardState[posBeatedCell[0]][posBeatedCell[1]], {
|
|
1589
|
+
beated: true
|
|
1590
|
+
});
|
|
1591
|
+
}
|
|
1592
|
+
if (reversed) return {
|
|
1593
|
+
boardState: JSChessEngine.reverseChessBoard(gameState.boardState),
|
|
1594
|
+
currentColor: gameState.currentColor
|
|
1595
|
+
};
|
|
1596
|
+
return gameState;
|
|
1597
|
+
} catch (_unused) {
|
|
1598
|
+
return {
|
|
1599
|
+
boardState: INITIAL_CELLS,
|
|
1600
|
+
currentColor: 'white',
|
|
1601
|
+
invalidFEN: true
|
|
1602
|
+
};
|
|
1582
1603
|
}
|
|
1583
|
-
if (reversed) return {
|
|
1584
|
-
boardState: JSChessEngine.reverseChessBoard(gameState.boardState),
|
|
1585
|
-
currentColor: gameState.currentColor
|
|
1586
|
-
};
|
|
1587
|
-
return gameState;
|
|
1588
1604
|
};
|
|
1589
1605
|
var getBeatedCellFENfromState = function getBeatedCellFENfromState(state) {
|
|
1590
1606
|
var beatedFieldFEN = '-';
|
|
@@ -1676,7 +1692,7 @@ var stateToFEN = function stateToFEN(state, currentColor, countMoves) {
|
|
|
1676
1692
|
return positionsFEN + " " + colorFEN + " " + casttlingFEN + " " + beatedFieldFEN + " " + blackMoves + " " + countMoves;
|
|
1677
1693
|
};
|
|
1678
1694
|
|
|
1679
|
-
var styles = {"chessBoard":"_3XI6H","figuresLayout":"_2SyRK","controlLayout":"_3OVc8","controlLayoutGrabbing":"_G0IIl","interactiveLayout":"_3THn5","selectedSquare":"_1YsOr","pickedSquare":"_3MMcp","checkedSquare":"_KLkVN","interactiveCell":"_27yHq","possibleMoveMark":"_UYGA_","row":"_2XKSc","piece":"_2QHnf","holdedPiece":"_3z25q","bluredPiece":"_10meo","hiddenFigureEffect":"_2YKzU","arrow":"_12Bbd","arrowEnd":"_1BC3I","piecePicker":"_3gVhA","piecePickerItem":"_3EtmA","chessBoardPiecePicker":"_2xZM1","movesTrail":"_1RqCc","lightSquare":"_1B0qo","darkSquare":"_1NBqS"};
|
|
1695
|
+
var styles = {"chessBoard":"_3XI6H","figuresLayout":"_2SyRK","controlLayout":"_3OVc8","controlLayoutGrabbing":"_G0IIl","interactiveLayout":"_3THn5","selectedSquare":"_1YsOr","pickedSquare":"_3MMcp","checkedSquare":"_KLkVN","interactiveCell":"_27yHq","possibleMoveMark":"_UYGA_","row":"_2XKSc","piece":"_2QHnf","holdedPiece":"_3z25q","bluredPiece":"_10meo","hiddenFigureEffect":"_2YKzU","arrow":"_12Bbd","arrowEnd":"_1BC3I","piecePicker":"_3gVhA","piecePickerItem":"_3EtmA","chessBoardPiecePicker":"_2xZM1","chessBoardInvalidFenMessage":"_jyC3-","fenErrorMessage":"_8urIN","fenErrorMessageClose":"_3p5AF","movesTrail":"_1RqCc","lightSquare":"_1B0qo","darkSquare":"_1NBqS"};
|
|
1680
1696
|
|
|
1681
1697
|
var CHESS_PIECES_MAP = {
|
|
1682
1698
|
'pawn-white': function pawnWhite(size) {
|
|
@@ -2309,7 +2325,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2309
2325
|
var config = props.config,
|
|
2310
2326
|
onChange = props.onChange,
|
|
2311
2327
|
onEndGame = props.onEndGame,
|
|
2312
|
-
onClickByChessBoard = props.onClickByChessBoard
|
|
2328
|
+
onClickByChessBoard = props.onClickByChessBoard,
|
|
2329
|
+
_props$toggleTurn = props.toggleTurn,
|
|
2330
|
+
toggleTurn = _props$toggleTurn === void 0 ? true : _props$toggleTurn;
|
|
2313
2331
|
var _useState = useState(DEFAULT_CHESSBORD_CONFIG),
|
|
2314
2332
|
boardConfig = _useState[0],
|
|
2315
2333
|
setBoardConfig = _useState[1];
|
|
@@ -2379,6 +2397,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2379
2397
|
var _useState23 = useState(false),
|
|
2380
2398
|
animated = _useState23[0],
|
|
2381
2399
|
setAnimated = _useState23[1];
|
|
2400
|
+
var _useState24 = useState(false),
|
|
2401
|
+
invalidFEN = _useState24[0],
|
|
2402
|
+
setInvalidFEN = _useState24[1];
|
|
2382
2403
|
var clearFromPos = function clearFromPos() {
|
|
2383
2404
|
return setFromPos([-1, -1]);
|
|
2384
2405
|
};
|
|
@@ -2392,7 +2413,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2392
2413
|
return setClickPossibleMoves([]);
|
|
2393
2414
|
};
|
|
2394
2415
|
var toggleCurrentColor = function toggleCurrentColor() {
|
|
2395
|
-
|
|
2416
|
+
if (toggleTurn) setCurrentColor(function (prevColor) {
|
|
2396
2417
|
return prevColor === 'white' ? 'black' : 'white';
|
|
2397
2418
|
});
|
|
2398
2419
|
};
|
|
@@ -2508,8 +2529,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2508
2529
|
var _JSChessEngine$change = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2509
2530
|
updatedCells = _JSChessEngine$change.updatedCells,
|
|
2510
2531
|
attackedPos = _JSChessEngine$change.attackedPos;
|
|
2511
|
-
|
|
2512
|
-
|
|
2532
|
+
if (toggleTurn) {
|
|
2533
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2534
|
+
setLinesWithCheck(linesCheck);
|
|
2535
|
+
}
|
|
2513
2536
|
setActualState(updatedCells);
|
|
2514
2537
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2515
2538
|
setTargetPos(to);
|
|
@@ -2543,8 +2566,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2543
2566
|
figure = _change$move.figure;
|
|
2544
2567
|
var _JSChessEngine$change2 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2545
2568
|
updatedCells = _JSChessEngine$change2.updatedCells;
|
|
2546
|
-
|
|
2547
|
-
|
|
2569
|
+
if (toggleTurn) {
|
|
2570
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2571
|
+
setLinesWithCheck(linesCheck);
|
|
2572
|
+
}
|
|
2548
2573
|
var updatedChange = _extends({}, change, {
|
|
2549
2574
|
move: boardReversed ? JSChessEngine.reverseMove(change.move) : change.move
|
|
2550
2575
|
});
|
|
@@ -2565,8 +2590,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2565
2590
|
var _JSChessEngine$change3 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2566
2591
|
updatedCells = _JSChessEngine$change3.updatedCells,
|
|
2567
2592
|
attackedPos = _JSChessEngine$change3.attackedPos;
|
|
2568
|
-
|
|
2569
|
-
|
|
2593
|
+
if (toggleTurn) {
|
|
2594
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2595
|
+
setLinesWithCheck(linesCheck);
|
|
2596
|
+
}
|
|
2570
2597
|
setActualState(updatedCells);
|
|
2571
2598
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2572
2599
|
setTargetPos(to);
|
|
@@ -2597,8 +2624,11 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2597
2624
|
var _JSChessEngine$change4 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2598
2625
|
updatedCells = _JSChessEngine$change4.updatedCells,
|
|
2599
2626
|
attackedPos = _JSChessEngine$change4.attackedPos;
|
|
2600
|
-
var linesCheck =
|
|
2601
|
-
|
|
2627
|
+
var linesCheck = [];
|
|
2628
|
+
if (toggleTurn) {
|
|
2629
|
+
linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2630
|
+
setLinesWithCheck(linesCheck);
|
|
2631
|
+
}
|
|
2602
2632
|
if (fromPos[0] !== -1) {
|
|
2603
2633
|
var figureFromPos = updatedCells[fromPos[1]][fromPos[0]].figure;
|
|
2604
2634
|
if (!figureFromPos || figureFromPos.type !== holdedFigure.type || figureFromPos.color !== holdedFigure.color) {
|
|
@@ -2813,7 +2843,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2813
2843
|
var handleUpdateFEN = function handleUpdateFEN(FEN, reversed) {
|
|
2814
2844
|
var _FENtoGameState = FENtoGameState(FEN, reversed),
|
|
2815
2845
|
boardState = _FENtoGameState.boardState,
|
|
2816
|
-
currentColor = _FENtoGameState.currentColor
|
|
2846
|
+
currentColor = _FENtoGameState.currentColor,
|
|
2847
|
+
invalidFEN = _FENtoGameState.invalidFEN;
|
|
2848
|
+
setInvalidFEN(invalidFEN);
|
|
2817
2849
|
cleanAllForFigure();
|
|
2818
2850
|
setAnimated(false);
|
|
2819
2851
|
setInitialState(boardState);
|
|
@@ -2828,6 +2860,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2828
2860
|
newMove: newMove,
|
|
2829
2861
|
animated: animated,
|
|
2830
2862
|
movesTrail: movesTrail,
|
|
2863
|
+
invalidFEN: invalidFEN,
|
|
2831
2864
|
boardConfig: boardConfig,
|
|
2832
2865
|
markedCells: markedCells,
|
|
2833
2866
|
grabbingPos: grabbingPos,
|
|
@@ -2847,6 +2880,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2847
2880
|
handleClick: handleClick,
|
|
2848
2881
|
clearFromPos: clearFromPos,
|
|
2849
2882
|
handleGrabEnd: handleGrabEnd,
|
|
2883
|
+
setInvalidFEN: setInvalidFEN,
|
|
2850
2884
|
handleGrabbing: handleGrabbing,
|
|
2851
2885
|
endRenderArrow: endRenderArrow,
|
|
2852
2886
|
setActualState: setActualState,
|
|
@@ -3040,17 +3074,21 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3040
3074
|
_props$moveArrows = props.moveArrows,
|
|
3041
3075
|
moveArrows = _props$moveArrows === void 0 ? [] : _props$moveArrows,
|
|
3042
3076
|
_props$arrows = props.arrows,
|
|
3043
|
-
arrows = _props$arrows === void 0 ? [] : _props$arrows
|
|
3077
|
+
arrows = _props$arrows === void 0 ? [] : _props$arrows,
|
|
3078
|
+
_props$toggleTurn = props.toggleTurn,
|
|
3079
|
+
toggleTurn = _props$toggleTurn === void 0 ? true : _props$toggleTurn;
|
|
3044
3080
|
var _useChessBoardInterac = useChessBoardInteractive({
|
|
3045
3081
|
onChange: onChange,
|
|
3046
3082
|
onEndGame: onEndGame,
|
|
3047
3083
|
onClickByChessBoard: onClick,
|
|
3048
|
-
config: config
|
|
3084
|
+
config: config,
|
|
3085
|
+
toggleTurn: toggleTurn
|
|
3049
3086
|
}),
|
|
3050
3087
|
fromPos = _useChessBoardInterac.fromPos,
|
|
3051
3088
|
newMove = _useChessBoardInterac.newMove,
|
|
3052
3089
|
animated = _useChessBoardInterac.animated,
|
|
3053
3090
|
movesTrail = _useChessBoardInterac.movesTrail,
|
|
3091
|
+
invalidFEN = _useChessBoardInterac.invalidFEN,
|
|
3054
3092
|
boardConfig = _useChessBoardInterac.boardConfig,
|
|
3055
3093
|
markedCells = _useChessBoardInterac.markedCells,
|
|
3056
3094
|
grabbingPos = _useChessBoardInterac.grabbingPos,
|
|
@@ -3065,6 +3103,7 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3065
3103
|
markCell = _useChessBoardInterac.markCell,
|
|
3066
3104
|
handleClick = _useChessBoardInterac.handleClick,
|
|
3067
3105
|
handleGrabEnd = _useChessBoardInterac.handleGrabEnd,
|
|
3106
|
+
setInvalidFEN = _useChessBoardInterac.setInvalidFEN,
|
|
3068
3107
|
handleGrabbing = _useChessBoardInterac.handleGrabbing,
|
|
3069
3108
|
endRenderArrow = _useChessBoardInterac.endRenderArrow,
|
|
3070
3109
|
setPlayerColor = _useChessBoardInterac.setPlayerColor,
|
|
@@ -3103,6 +3142,10 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3103
3142
|
color: arrow.color
|
|
3104
3143
|
};
|
|
3105
3144
|
});
|
|
3145
|
+
var handleHideInvalidFENmessage = function handleHideInvalidFENmessage(event) {
|
|
3146
|
+
event.preventDefault();
|
|
3147
|
+
setInvalidFEN(false);
|
|
3148
|
+
};
|
|
3106
3149
|
return React.createElement("div", {
|
|
3107
3150
|
className: styles.chessBoard
|
|
3108
3151
|
}, React.createElement(ChessBoardCellsLayout, {
|
|
@@ -3148,7 +3191,17 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3148
3191
|
color: currentColor,
|
|
3149
3192
|
forPawnTransform: true,
|
|
3150
3193
|
onSelect: handleSelectFigurePicker
|
|
3151
|
-
}))
|
|
3194
|
+
})), invalidFEN && React.createElement("div", {
|
|
3195
|
+
className: styles.chessBoardInvalidFenMessage
|
|
3196
|
+
}, React.createElement("div", {
|
|
3197
|
+
className: styles.fenErrorMessage,
|
|
3198
|
+
role: "alert"
|
|
3199
|
+
}, React.createElement("div", null, "Invalid FEN notation. The default board position was used instead.", " ", React.createElement("a", {
|
|
3200
|
+
href: "/docs/fen-errors"
|
|
3201
|
+
}, "See common FEN problems"), "."), React.createElement("div", null, React.createElement("a", {
|
|
3202
|
+
className: styles.fenErrorMessageClose,
|
|
3203
|
+
onClick: handleHideInvalidFENmessage
|
|
3204
|
+
}, "Hide this message")))));
|
|
3152
3205
|
};
|
|
3153
3206
|
|
|
3154
3207
|
export { ALL_FIGURES, CHESS_BOARD_CONFIG, ChessBoard, DEFAULT_CHESSBORD_CONFIG, DEFAULT_PIECES_MAP, FENtoGameState, FIGURES_LATTERS_NOTATIONS, INITIAL_CELLS, JSChessEngine, LETTERS, LETTER_TO_FIGURE_MAP, getBeatedCellFENfromState, getFENcastlingFromState, getFENpositionsFromState, getPositionByFEN, partFENtoState, prepareCastlingByFEN, stateToFEN };
|