react-chessboard-ui 2.7.0 → 2.9.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.
@@ -1515,7 +1515,7 @@ var prepareCastlingByFEN = function prepareCastlingByFEN(castlingNotation, state
1515
1515
  }
1516
1516
  if (castlingNotation.includes('q')) {
1517
1517
  if (!!preparedState[0][0].figure) {
1518
- preparedState[0][0].figure = _extends({}, preparedState[0][preparedState.length - 1].figure, {
1518
+ preparedState[0][0].figure = _extends({}, preparedState[0][0].figure, {
1519
1519
  touched: false
1520
1520
  });
1521
1521
  preparedState[0][4].figure = _extends({}, preparedState[0][4].figure, {
@@ -2308,7 +2308,8 @@ var ChessBoardControlLayout = function ChessBoardControlLayout(props) {
2308
2308
  var useChessBoardInteractive = function useChessBoardInteractive(props) {
2309
2309
  var config = props.config,
2310
2310
  onChange = props.onChange,
2311
- onEndGame = props.onEndGame;
2311
+ onEndGame = props.onEndGame,
2312
+ onClickByChessBoard = props.onClickByChessBoard;
2312
2313
  var _useState = useState(DEFAULT_CHESSBORD_CONFIG),
2313
2314
  boardConfig = _useState[0],
2314
2315
  setBoardConfig = _useState[1];
@@ -2436,6 +2437,13 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2436
2437
  return !prevReversed;
2437
2438
  });
2438
2439
  };
2440
+ var handleClickByChessBoard = function handleClickByChessBoard(cellData, pos) {
2441
+ if (!onClickByChessBoard) return;
2442
+ onClickByChessBoard({
2443
+ cellData: cellData,
2444
+ pos: pos
2445
+ });
2446
+ };
2439
2447
  var selectFigureFrom = function selectFigureFrom(cellPos, extActualState) {
2440
2448
  var nowState = extActualState || actualState;
2441
2449
  var cell = nowState[cellPos[1]][cellPos[0]];
@@ -2710,6 +2718,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2710
2718
  if (viewOnly === void 0) {
2711
2719
  viewOnly = false;
2712
2720
  }
2721
+ handleClickByChessBoard(actualState[cellPos[1]][cellPos[0]], cellPos);
2713
2722
  clearMarkedCells();
2714
2723
  clearArrows();
2715
2724
  if (viewOnly) return;
@@ -2960,7 +2969,9 @@ var ArrowLayout = function ArrowLayout(props) {
2960
2969
  grabbingPos = props.grabbingPos,
2961
2970
  boardConfig = props.boardConfig,
2962
2971
  _props$externalArrows = props.externalArrowsCoords,
2963
- externalArrowsCoords = _props$externalArrows === void 0 ? [] : _props$externalArrows;
2972
+ externalArrowsCoords = _props$externalArrows === void 0 ? [] : _props$externalArrows,
2973
+ _props$externalArrows2 = props.externalArrows,
2974
+ externalArrows = _props$externalArrows2 === void 0 ? [] : _props$externalArrows2;
2964
2975
  return React.createElement("div", {
2965
2976
  className: styles.arrowsLayer
2966
2977
  }, startArrowCoord[0] > -1 && grabbingPos[0] > -1 && React.createElement(Arrow, {
@@ -2979,6 +2990,12 @@ var ArrowLayout = function ArrowLayout(props) {
2979
2990
  }, coords, {
2980
2991
  color: boardConfig.arrowColor
2981
2992
  }));
2993
+ }), externalArrows.map(function (arrow, i) {
2994
+ return React.createElement(Arrow, Object.assign({
2995
+ key: "extArrow_" + i
2996
+ }, arrow, {
2997
+ color: arrow.color || boardConfig.arrowColor
2998
+ }));
2982
2999
  }));
2983
3000
  };
2984
3001
 
@@ -3012,6 +3029,7 @@ var ChessBoard = function ChessBoard(props) {
3012
3029
  var FEN = props.FEN,
3013
3030
  onChange = props.onChange,
3014
3031
  onEndGame = props.onEndGame,
3032
+ onClick = props.onClick,
3015
3033
  change = props.change,
3016
3034
  reversed = props.reversed,
3017
3035
  config = props.config,
@@ -3019,10 +3037,13 @@ var ChessBoard = function ChessBoard(props) {
3019
3037
  viewOnly = props.viewOnly,
3020
3038
  moveHighlight = props.moveHighlight,
3021
3039
  _props$moveArrows = props.moveArrows,
3022
- moveArrows = _props$moveArrows === void 0 ? [] : _props$moveArrows;
3040
+ moveArrows = _props$moveArrows === void 0 ? [] : _props$moveArrows,
3041
+ _props$arrows = props.arrows,
3042
+ arrows = _props$arrows === void 0 ? [] : _props$arrows;
3023
3043
  var _useChessBoardInterac = useChessBoardInteractive({
3024
3044
  onChange: onChange,
3025
3045
  onEndGame: onEndGame,
3046
+ onClickByChessBoard: onClick,
3026
3047
  config: config
3027
3048
  }),
3028
3049
  fromPos = _useChessBoardInterac.fromPos,
@@ -3068,12 +3089,19 @@ var ChessBoard = function ChessBoard(props) {
3068
3089
  var reversedChange = reversed ? JSChessEngine.reverseMove(change.move) : change.move;
3069
3090
  handleChangeFromExternal(reversedChange, change.withTransition);
3070
3091
  }, [change]);
3071
- var externalArrows = moveArrows.map(function (arrow) {
3092
+ var DEPRECATED_externalArrows = moveArrows.map(function (arrow) {
3072
3093
  return {
3073
3094
  start: correctGrabbingPosForArrow(arrow.start, boardConfig),
3074
3095
  end: correctGrabbingPosForArrow(arrow.end, boardConfig)
3075
3096
  };
3076
3097
  });
3098
+ var externalArrows = arrows.map(function (arrow) {
3099
+ return {
3100
+ start: correctGrabbingPosForArrow(arrow.start, boardConfig),
3101
+ end: correctGrabbingPosForArrow(arrow.end, boardConfig),
3102
+ color: arrow.color
3103
+ };
3104
+ });
3077
3105
  return React.createElement("div", {
3078
3106
  className: styles.chessBoard
3079
3107
  }, React.createElement(ChessBoardCellsLayout, {
@@ -3095,7 +3123,8 @@ var ChessBoard = function ChessBoard(props) {
3095
3123
  onHasCheck: getHasCheckByCellPos
3096
3124
  }), React.createElement(ArrowLayout, {
3097
3125
  arrowsCoords: arrowsCoords,
3098
- externalArrowsCoords: externalArrows,
3126
+ externalArrowsCoords: DEPRECATED_externalArrows,
3127
+ externalArrows: externalArrows,
3099
3128
  startArrowCoord: startArrowCoord,
3100
3129
  grabbingPos: correctGrabbingPosForArrow(grabbingCell, boardConfig),
3101
3130
  boardConfig: boardConfig