react-chessboard-ui 2.10.0 → 2.12.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 +151 -92
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +151 -92
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -275,22 +275,24 @@ JSChessEngine.correctionPossibleMoves = function (state, figurePos, possibleMove
|
|
|
275
275
|
DIRECTIONS_D.forEach(function (direction) {
|
|
276
276
|
if (!kingBehidFigure) {
|
|
277
277
|
var attackedLine = JSChessEngine.getFullAttackedLine(state, enemyPos, direction);
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
var foundIndexFigurePos = attackedLine.findIndex(function (pos) {
|
|
282
|
-
return pos[0] === figurePos[0] && pos[1] === figurePos[1];
|
|
283
|
-
});
|
|
284
|
-
var countFiguresBehindKing = JSChessEngine.getCountEnemys(state, enemyPos, attackedLine);
|
|
285
|
-
kingBehidFigure = foundIndexKingPos > -1 && foundIndexFigurePos > -1 && foundIndexKingPos > foundIndexFigurePos && countFiguresBehindKing === 1;
|
|
286
|
-
if (kingBehidFigure) {
|
|
287
|
-
possibleMoves.forEach(function (possibleMove) {
|
|
288
|
-
[].concat(attackedLine, [enemyPos]).forEach(function (attackedPos) {
|
|
289
|
-
if (attackedPos[0] === possibleMove[0] && attackedPos[1] === possibleMove[1]) {
|
|
290
|
-
correctedPossibleMoves.push(possibleMove);
|
|
291
|
-
}
|
|
292
|
-
});
|
|
278
|
+
if (!!kingPos) {
|
|
279
|
+
var foundIndexKingPos = attackedLine.findIndex(function (pos) {
|
|
280
|
+
return pos[0] === kingPos[0] && pos[1] === kingPos[1];
|
|
293
281
|
});
|
|
282
|
+
var foundIndexFigurePos = attackedLine.findIndex(function (pos) {
|
|
283
|
+
return pos[0] === figurePos[0] && pos[1] === figurePos[1];
|
|
284
|
+
});
|
|
285
|
+
var countFiguresBehindKing = JSChessEngine.getCountEnemys(state, enemyPos, attackedLine);
|
|
286
|
+
kingBehidFigure = foundIndexKingPos > -1 && foundIndexFigurePos > -1 && foundIndexKingPos > foundIndexFigurePos && countFiguresBehindKing === 1;
|
|
287
|
+
if (kingBehidFigure) {
|
|
288
|
+
possibleMoves.forEach(function (possibleMove) {
|
|
289
|
+
[].concat(attackedLine, [enemyPos]).forEach(function (attackedPos) {
|
|
290
|
+
if (attackedPos[0] === possibleMove[0] && attackedPos[1] === possibleMove[1]) {
|
|
291
|
+
correctedPossibleMoves.push(possibleMove);
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
}
|
|
294
296
|
}
|
|
295
297
|
}
|
|
296
298
|
});
|
|
@@ -302,22 +304,24 @@ JSChessEngine.correctionPossibleMoves = function (state, figurePos, possibleMove
|
|
|
302
304
|
DIRECTIONS_VH.forEach(function (direction) {
|
|
303
305
|
if (!kingBehidFigure) {
|
|
304
306
|
var attackedLine = JSChessEngine.getFullAttackedLine(state, enemyPos, direction);
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
var foundIndexFigurePos = attackedLine.findIndex(function (pos) {
|
|
309
|
-
return pos[0] === figurePos[0] && pos[1] === figurePos[1];
|
|
310
|
-
});
|
|
311
|
-
var countFiguresBehindKing = JSChessEngine.getCountEnemys(state, enemyPos, attackedLine);
|
|
312
|
-
kingBehidFigure = foundIndexKingPos > -1 && foundIndexFigurePos > -1 && foundIndexKingPos > foundIndexFigurePos && countFiguresBehindKing === 1;
|
|
313
|
-
if (kingBehidFigure) {
|
|
314
|
-
possibleMoves.forEach(function (possibleMove) {
|
|
315
|
-
[].concat(attackedLine, [enemyPos]).forEach(function (attackedPos) {
|
|
316
|
-
if (attackedPos[0] === possibleMove[0] && attackedPos[1] === possibleMove[1]) {
|
|
317
|
-
correctedPossibleMoves.push(possibleMove);
|
|
318
|
-
}
|
|
319
|
-
});
|
|
307
|
+
if (!!kingPos) {
|
|
308
|
+
var foundIndexKingPos = attackedLine.findIndex(function (pos) {
|
|
309
|
+
return pos[0] === kingPos[0] && pos[1] === kingPos[1];
|
|
320
310
|
});
|
|
311
|
+
var foundIndexFigurePos = attackedLine.findIndex(function (pos) {
|
|
312
|
+
return pos[0] === figurePos[0] && pos[1] === figurePos[1];
|
|
313
|
+
});
|
|
314
|
+
var countFiguresBehindKing = JSChessEngine.getCountEnemys(state, enemyPos, attackedLine);
|
|
315
|
+
kingBehidFigure = foundIndexKingPos > -1 && foundIndexFigurePos > -1 && foundIndexKingPos > foundIndexFigurePos && countFiguresBehindKing === 1;
|
|
316
|
+
if (kingBehidFigure) {
|
|
317
|
+
possibleMoves.forEach(function (possibleMove) {
|
|
318
|
+
[].concat(attackedLine, [enemyPos]).forEach(function (attackedPos) {
|
|
319
|
+
if (attackedPos[0] === possibleMove[0] && attackedPos[1] === possibleMove[1]) {
|
|
320
|
+
correctedPossibleMoves.push(possibleMove);
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
}
|
|
321
325
|
}
|
|
322
326
|
}
|
|
323
327
|
});
|
|
@@ -329,22 +333,24 @@ JSChessEngine.correctionPossibleMoves = function (state, figurePos, possibleMove
|
|
|
329
333
|
[].concat(DIRECTIONS_D, DIRECTIONS_VH).forEach(function (direction) {
|
|
330
334
|
if (!kingBehidFigure) {
|
|
331
335
|
var attackedLine = JSChessEngine.getFullAttackedLine(state, enemyPos, direction);
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
var countFiguresBehindKing = JSChessEngine.getCountEnemys(state, enemyPos, attackedLine);
|
|
339
|
-
kingBehidFigure = foundIndexKingPos > -1 && foundIndexFigurePos > -1 && foundIndexKingPos > foundIndexFigurePos && countFiguresBehindKing === 1;
|
|
340
|
-
if (kingBehidFigure) {
|
|
341
|
-
possibleMoves.forEach(function (possibleMove) {
|
|
342
|
-
[].concat(attackedLine, [enemyPos]).forEach(function (attackedPos) {
|
|
343
|
-
if (attackedPos[0] === possibleMove[0] && attackedPos[1] === possibleMove[1]) {
|
|
344
|
-
correctedPossibleMoves.push(possibleMove);
|
|
345
|
-
}
|
|
346
|
-
});
|
|
336
|
+
if (!!kingPos) {
|
|
337
|
+
var foundIndexKingPos = attackedLine.findIndex(function (pos) {
|
|
338
|
+
return pos[0] === kingPos[0] && pos[1] === kingPos[1];
|
|
339
|
+
});
|
|
340
|
+
var foundIndexFigurePos = attackedLine.findIndex(function (pos) {
|
|
341
|
+
return pos[0] === figurePos[0] && pos[1] === figurePos[1];
|
|
347
342
|
});
|
|
343
|
+
var countFiguresBehindKing = JSChessEngine.getCountEnemys(state, enemyPos, attackedLine);
|
|
344
|
+
kingBehidFigure = foundIndexKingPos > -1 && foundIndexFigurePos > -1 && foundIndexKingPos > foundIndexFigurePos && countFiguresBehindKing === 1;
|
|
345
|
+
if (kingBehidFigure) {
|
|
346
|
+
possibleMoves.forEach(function (possibleMove) {
|
|
347
|
+
[].concat(attackedLine, [enemyPos]).forEach(function (attackedPos) {
|
|
348
|
+
if (attackedPos[0] === possibleMove[0] && attackedPos[1] === possibleMove[1]) {
|
|
349
|
+
correctedPossibleMoves.push(possibleMove);
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
}
|
|
348
354
|
}
|
|
349
355
|
}
|
|
350
356
|
});
|
|
@@ -1488,6 +1494,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1488
1494
|
preparedState[preparedState.length - 1][preparedState.length - 1].figure = _extends({}, preparedState[preparedState.length - 1][preparedState.length - 1].figure, {
|
|
1489
1495
|
touched: false
|
|
1490
1496
|
});
|
|
1497
|
+
}
|
|
1498
|
+
if (!!preparedState[preparedState.length - 1][4].figure) {
|
|
1491
1499
|
preparedState[preparedState.length - 1][4].figure = _extends({}, preparedState[preparedState.length - 1][4].figure, {
|
|
1492
1500
|
touched: false
|
|
1493
1501
|
});
|
|
@@ -1498,6 +1506,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1498
1506
|
preparedState[preparedState.length - 1][0].figure = _extends({}, preparedState[preparedState.length - 1][0].figure, {
|
|
1499
1507
|
touched: false
|
|
1500
1508
|
});
|
|
1509
|
+
}
|
|
1510
|
+
if (!!preparedState[preparedState.length - 1][4].figure) {
|
|
1501
1511
|
preparedState[preparedState.length - 1][4].figure = _extends({}, preparedState[preparedState.length - 1][4].figure, {
|
|
1502
1512
|
touched: false
|
|
1503
1513
|
});
|
|
@@ -1508,6 +1518,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1508
1518
|
preparedState[0][preparedState.length - 1].figure = _extends({}, preparedState[0][preparedState.length - 1].figure, {
|
|
1509
1519
|
touched: false
|
|
1510
1520
|
});
|
|
1521
|
+
}
|
|
1522
|
+
if (!!preparedState[0][4].figure) {
|
|
1511
1523
|
preparedState[0][4].figure = _extends({}, preparedState[0][4].figure, {
|
|
1512
1524
|
touched: false
|
|
1513
1525
|
});
|
|
@@ -1518,6 +1530,8 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
|
|
|
1518
1530
|
preparedState[0][0].figure = _extends({}, preparedState[0][0].figure, {
|
|
1519
1531
|
touched: false
|
|
1520
1532
|
});
|
|
1533
|
+
}
|
|
1534
|
+
if (!!preparedState[0][4].figure) {
|
|
1521
1535
|
preparedState[0][4].figure = _extends({}, preparedState[0][4].figure, {
|
|
1522
1536
|
touched: false
|
|
1523
1537
|
});
|
|
@@ -1552,39 +1566,47 @@ var partFENtoState = function partFENtoState(notation) {
|
|
|
1552
1566
|
});
|
|
1553
1567
|
};
|
|
1554
1568
|
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
|
-
|
|
1569
|
+
try {
|
|
1570
|
+
var gameState = {
|
|
1571
|
+
boardState: [],
|
|
1572
|
+
currentColor: 'white'
|
|
1573
|
+
};
|
|
1574
|
+
var _FEN$split = FEN.split(' '),
|
|
1575
|
+
stateNotaion = _FEN$split[0],
|
|
1576
|
+
currentColor = _FEN$split[1],
|
|
1577
|
+
FENcastling = _FEN$split[2],
|
|
1578
|
+
beatedField = _FEN$split[3],
|
|
1579
|
+
_ = _FEN$split.slice(4);
|
|
1580
|
+
var preparedStateNotation = '';
|
|
1581
|
+
for (var i = 0; i < stateNotaion.length; i++) {
|
|
1582
|
+
if (!isNaN(parseInt(stateNotaion[i]))) {
|
|
1583
|
+
var dotsCount = parseInt(stateNotaion[i]);
|
|
1584
|
+
for (var dotI = 0; dotI < dotsCount; dotI++) preparedStateNotation += '.';
|
|
1585
|
+
continue;
|
|
1586
|
+
}
|
|
1587
|
+
preparedStateNotation += stateNotaion[i];
|
|
1588
|
+
}
|
|
1589
|
+
gameState.boardState = partFENtoState(preparedStateNotation);
|
|
1590
|
+
gameState.currentColor = currentColor === 'w' ? 'white' : 'black';
|
|
1591
|
+
gameState.boardState = prepareCastlingByFEN(FENcastling, gameState.boardState);
|
|
1592
|
+
if (beatedField !== '-') {
|
|
1593
|
+
var posBeatedCell = getPositionByFEN(beatedField);
|
|
1594
|
+
gameState.boardState[posBeatedCell[0]][posBeatedCell[1]] = _extends({}, gameState.boardState[posBeatedCell[0]][posBeatedCell[1]], {
|
|
1595
|
+
beated: true
|
|
1596
|
+
});
|
|
1597
|
+
}
|
|
1598
|
+
if (reversed) return {
|
|
1599
|
+
boardState: JSChessEngine.reverseChessBoard(gameState.boardState),
|
|
1600
|
+
currentColor: gameState.currentColor
|
|
1601
|
+
};
|
|
1602
|
+
return gameState;
|
|
1603
|
+
} catch (_unused) {
|
|
1604
|
+
return {
|
|
1605
|
+
boardState: INITIAL_CELLS,
|
|
1606
|
+
currentColor: 'white',
|
|
1607
|
+
invalidFEN: true
|
|
1608
|
+
};
|
|
1582
1609
|
}
|
|
1583
|
-
if (reversed) return {
|
|
1584
|
-
boardState: JSChessEngine.reverseChessBoard(gameState.boardState),
|
|
1585
|
-
currentColor: gameState.currentColor
|
|
1586
|
-
};
|
|
1587
|
-
return gameState;
|
|
1588
1610
|
};
|
|
1589
1611
|
var getBeatedCellFENfromState = function getBeatedCellFENfromState(state) {
|
|
1590
1612
|
var beatedFieldFEN = '-';
|
|
@@ -1676,7 +1698,7 @@ var stateToFEN = function stateToFEN(state, currentColor, countMoves) {
|
|
|
1676
1698
|
return positionsFEN + " " + colorFEN + " " + casttlingFEN + " " + beatedFieldFEN + " " + blackMoves + " " + countMoves;
|
|
1677
1699
|
};
|
|
1678
1700
|
|
|
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"};
|
|
1701
|
+
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
1702
|
|
|
1681
1703
|
var CHESS_PIECES_MAP = {
|
|
1682
1704
|
'pawn-white': function pawnWhite(size) {
|
|
@@ -2309,7 +2331,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2309
2331
|
var config = props.config,
|
|
2310
2332
|
onChange = props.onChange,
|
|
2311
2333
|
onEndGame = props.onEndGame,
|
|
2312
|
-
onClickByChessBoard = props.onClickByChessBoard
|
|
2334
|
+
onClickByChessBoard = props.onClickByChessBoard,
|
|
2335
|
+
_props$toggleTurn = props.toggleTurn,
|
|
2336
|
+
toggleTurn = _props$toggleTurn === void 0 ? true : _props$toggleTurn;
|
|
2313
2337
|
var _useState = useState(DEFAULT_CHESSBORD_CONFIG),
|
|
2314
2338
|
boardConfig = _useState[0],
|
|
2315
2339
|
setBoardConfig = _useState[1];
|
|
@@ -2379,6 +2403,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2379
2403
|
var _useState23 = useState(false),
|
|
2380
2404
|
animated = _useState23[0],
|
|
2381
2405
|
setAnimated = _useState23[1];
|
|
2406
|
+
var _useState24 = useState(false),
|
|
2407
|
+
invalidFEN = _useState24[0],
|
|
2408
|
+
setInvalidFEN = _useState24[1];
|
|
2382
2409
|
var clearFromPos = function clearFromPos() {
|
|
2383
2410
|
return setFromPos([-1, -1]);
|
|
2384
2411
|
};
|
|
@@ -2392,7 +2419,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2392
2419
|
return setClickPossibleMoves([]);
|
|
2393
2420
|
};
|
|
2394
2421
|
var toggleCurrentColor = function toggleCurrentColor() {
|
|
2395
|
-
|
|
2422
|
+
if (toggleTurn) setCurrentColor(function (prevColor) {
|
|
2396
2423
|
return prevColor === 'white' ? 'black' : 'white';
|
|
2397
2424
|
});
|
|
2398
2425
|
};
|
|
@@ -2508,8 +2535,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2508
2535
|
var _JSChessEngine$change = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2509
2536
|
updatedCells = _JSChessEngine$change.updatedCells,
|
|
2510
2537
|
attackedPos = _JSChessEngine$change.attackedPos;
|
|
2511
|
-
|
|
2512
|
-
|
|
2538
|
+
if (toggleTurn) {
|
|
2539
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2540
|
+
setLinesWithCheck(linesCheck);
|
|
2541
|
+
}
|
|
2513
2542
|
setActualState(updatedCells);
|
|
2514
2543
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2515
2544
|
setTargetPos(to);
|
|
@@ -2543,8 +2572,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2543
2572
|
figure = _change$move.figure;
|
|
2544
2573
|
var _JSChessEngine$change2 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2545
2574
|
updatedCells = _JSChessEngine$change2.updatedCells;
|
|
2546
|
-
|
|
2547
|
-
|
|
2575
|
+
if (toggleTurn) {
|
|
2576
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2577
|
+
setLinesWithCheck(linesCheck);
|
|
2578
|
+
}
|
|
2548
2579
|
var updatedChange = _extends({}, change, {
|
|
2549
2580
|
move: boardReversed ? JSChessEngine.reverseMove(change.move) : change.move
|
|
2550
2581
|
});
|
|
@@ -2565,8 +2596,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2565
2596
|
var _JSChessEngine$change3 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2566
2597
|
updatedCells = _JSChessEngine$change3.updatedCells,
|
|
2567
2598
|
attackedPos = _JSChessEngine$change3.attackedPos;
|
|
2568
|
-
|
|
2569
|
-
|
|
2599
|
+
if (toggleTurn) {
|
|
2600
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2601
|
+
setLinesWithCheck(linesCheck);
|
|
2602
|
+
}
|
|
2570
2603
|
setActualState(updatedCells);
|
|
2571
2604
|
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2572
2605
|
setTargetPos(to);
|
|
@@ -2597,8 +2630,11 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2597
2630
|
var _JSChessEngine$change4 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2598
2631
|
updatedCells = _JSChessEngine$change4.updatedCells,
|
|
2599
2632
|
attackedPos = _JSChessEngine$change4.attackedPos;
|
|
2600
|
-
var linesCheck =
|
|
2601
|
-
|
|
2633
|
+
var linesCheck = [];
|
|
2634
|
+
if (toggleTurn) {
|
|
2635
|
+
linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2636
|
+
setLinesWithCheck(linesCheck);
|
|
2637
|
+
}
|
|
2602
2638
|
if (fromPos[0] !== -1) {
|
|
2603
2639
|
var figureFromPos = updatedCells[fromPos[1]][fromPos[0]].figure;
|
|
2604
2640
|
if (!figureFromPos || figureFromPos.type !== holdedFigure.type || figureFromPos.color !== holdedFigure.color) {
|
|
@@ -2813,7 +2849,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2813
2849
|
var handleUpdateFEN = function handleUpdateFEN(FEN, reversed) {
|
|
2814
2850
|
var _FENtoGameState = FENtoGameState(FEN, reversed),
|
|
2815
2851
|
boardState = _FENtoGameState.boardState,
|
|
2816
|
-
currentColor = _FENtoGameState.currentColor
|
|
2852
|
+
currentColor = _FENtoGameState.currentColor,
|
|
2853
|
+
invalidFEN = _FENtoGameState.invalidFEN;
|
|
2854
|
+
setInvalidFEN(invalidFEN);
|
|
2817
2855
|
cleanAllForFigure();
|
|
2818
2856
|
setAnimated(false);
|
|
2819
2857
|
setInitialState(boardState);
|
|
@@ -2828,6 +2866,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2828
2866
|
newMove: newMove,
|
|
2829
2867
|
animated: animated,
|
|
2830
2868
|
movesTrail: movesTrail,
|
|
2869
|
+
invalidFEN: invalidFEN,
|
|
2831
2870
|
boardConfig: boardConfig,
|
|
2832
2871
|
markedCells: markedCells,
|
|
2833
2872
|
grabbingPos: grabbingPos,
|
|
@@ -2847,6 +2886,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2847
2886
|
handleClick: handleClick,
|
|
2848
2887
|
clearFromPos: clearFromPos,
|
|
2849
2888
|
handleGrabEnd: handleGrabEnd,
|
|
2889
|
+
setInvalidFEN: setInvalidFEN,
|
|
2850
2890
|
handleGrabbing: handleGrabbing,
|
|
2851
2891
|
endRenderArrow: endRenderArrow,
|
|
2852
2892
|
setActualState: setActualState,
|
|
@@ -3040,17 +3080,21 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3040
3080
|
_props$moveArrows = props.moveArrows,
|
|
3041
3081
|
moveArrows = _props$moveArrows === void 0 ? [] : _props$moveArrows,
|
|
3042
3082
|
_props$arrows = props.arrows,
|
|
3043
|
-
arrows = _props$arrows === void 0 ? [] : _props$arrows
|
|
3083
|
+
arrows = _props$arrows === void 0 ? [] : _props$arrows,
|
|
3084
|
+
_props$toggleTurn = props.toggleTurn,
|
|
3085
|
+
toggleTurn = _props$toggleTurn === void 0 ? true : _props$toggleTurn;
|
|
3044
3086
|
var _useChessBoardInterac = useChessBoardInteractive({
|
|
3045
3087
|
onChange: onChange,
|
|
3046
3088
|
onEndGame: onEndGame,
|
|
3047
3089
|
onClickByChessBoard: onClick,
|
|
3048
|
-
config: config
|
|
3090
|
+
config: config,
|
|
3091
|
+
toggleTurn: toggleTurn
|
|
3049
3092
|
}),
|
|
3050
3093
|
fromPos = _useChessBoardInterac.fromPos,
|
|
3051
3094
|
newMove = _useChessBoardInterac.newMove,
|
|
3052
3095
|
animated = _useChessBoardInterac.animated,
|
|
3053
3096
|
movesTrail = _useChessBoardInterac.movesTrail,
|
|
3097
|
+
invalidFEN = _useChessBoardInterac.invalidFEN,
|
|
3054
3098
|
boardConfig = _useChessBoardInterac.boardConfig,
|
|
3055
3099
|
markedCells = _useChessBoardInterac.markedCells,
|
|
3056
3100
|
grabbingPos = _useChessBoardInterac.grabbingPos,
|
|
@@ -3065,6 +3109,7 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3065
3109
|
markCell = _useChessBoardInterac.markCell,
|
|
3066
3110
|
handleClick = _useChessBoardInterac.handleClick,
|
|
3067
3111
|
handleGrabEnd = _useChessBoardInterac.handleGrabEnd,
|
|
3112
|
+
setInvalidFEN = _useChessBoardInterac.setInvalidFEN,
|
|
3068
3113
|
handleGrabbing = _useChessBoardInterac.handleGrabbing,
|
|
3069
3114
|
endRenderArrow = _useChessBoardInterac.endRenderArrow,
|
|
3070
3115
|
setPlayerColor = _useChessBoardInterac.setPlayerColor,
|
|
@@ -3103,6 +3148,10 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3103
3148
|
color: arrow.color
|
|
3104
3149
|
};
|
|
3105
3150
|
});
|
|
3151
|
+
var handleHideInvalidFENmessage = function handleHideInvalidFENmessage(event) {
|
|
3152
|
+
event.preventDefault();
|
|
3153
|
+
setInvalidFEN(false);
|
|
3154
|
+
};
|
|
3106
3155
|
return React.createElement("div", {
|
|
3107
3156
|
className: styles.chessBoard
|
|
3108
3157
|
}, React.createElement(ChessBoardCellsLayout, {
|
|
@@ -3148,7 +3197,17 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
3148
3197
|
color: currentColor,
|
|
3149
3198
|
forPawnTransform: true,
|
|
3150
3199
|
onSelect: handleSelectFigurePicker
|
|
3151
|
-
}))
|
|
3200
|
+
})), invalidFEN && React.createElement("div", {
|
|
3201
|
+
className: styles.chessBoardInvalidFenMessage
|
|
3202
|
+
}, React.createElement("div", {
|
|
3203
|
+
className: styles.fenErrorMessage,
|
|
3204
|
+
role: "alert"
|
|
3205
|
+
}, React.createElement("div", null, "Invalid FEN notation. The default board position was used instead.", " ", React.createElement("a", {
|
|
3206
|
+
href: "/docs/fen-errors"
|
|
3207
|
+
}, "See common FEN problems"), "."), React.createElement("div", null, React.createElement("a", {
|
|
3208
|
+
className: styles.fenErrorMessageClose,
|
|
3209
|
+
onClick: handleHideInvalidFENmessage
|
|
3210
|
+
}, "Hide this message")))));
|
|
3152
3211
|
};
|
|
3153
3212
|
|
|
3154
3213
|
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 };
|