kokopu-react 3.2.0 → 3.3.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/CHANGELOG.md +4 -0
- package/dist/lib/chessboard/Chessboard.d.ts +27 -2
- package/dist/lib/chessboard/Chessboard.js +36 -17
- package/dist/lib/chessboard/Chessboard.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/navigationboard/NavigationBoard.d.ts +36 -7
- package/dist/lib/navigationboard/NavigationBoard.js +65 -20
- package/dist/lib/navigationboard/NavigationBoard.js.map +1 -1
- package/dist/lib/navigationboard/NavigationButton.d.ts +13 -1
- package/dist/lib/navigationboard/NavigationButton.js +32 -0
- package/dist/lib/navigationboard/NavigationButton.js.map +1 -1
- package/dist/lib/navigationboard/NavigationToolbar.d.ts +9 -2
- package/dist/lib/navigationboard/NavigationToolbar.js +34 -1
- package/dist/lib/navigationboard/NavigationToolbar.js.map +1 -1
- package/package.json +1 -1
- package/src/chessboard/Chessboard.tsx +75 -19
- package/src/index.ts +1 -1
- package/src/navigationboard/NavigationBoard.tsx +109 -22
- package/src/navigationboard/NavigationButton.ts +43 -1
- package/src/navigationboard/NavigationToolbar.tsx +46 -3
- package/test/02_chessboard_util.js +77 -1
- package/test/graphic_test_app/13_navigation_board_graphic/additional_buttons.tsx +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
ChangeLog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
3.3.0 (April 23, 2024)
|
|
5
|
+
----------------------
|
|
6
|
+
* Add methods `NavigationBoard.size()` and `NavigationBoard.adaptSquareSize()`.
|
|
7
|
+
|
|
4
8
|
3.2.0 (April 22, 2024)
|
|
5
9
|
----------------------
|
|
6
10
|
* Add support for additional buttons in the toolbar of `NavigationBoard`.
|
|
@@ -99,6 +99,31 @@ export interface ChessboardProps extends DynamicBoardGraphicProps {
|
|
|
99
99
|
*/
|
|
100
100
|
bottomComponent?: (attr: Pick<StaticBoardGraphicProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) => JSX.Element;
|
|
101
101
|
}
|
|
102
|
+
type AuxilliaryComponentSizeFunction = (attr: Pick<StaticBoardGraphicProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) => {
|
|
103
|
+
width: number;
|
|
104
|
+
height: number;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Attributes for method `Chessboard.size()`.
|
|
108
|
+
*/
|
|
109
|
+
export interface ChessboardSizeAttr {
|
|
110
|
+
squareSize?: ChessboardProps['squareSize'];
|
|
111
|
+
coordinateVisible?: ChessboardProps['coordinateVisible'];
|
|
112
|
+
turnVisible?: ChessboardProps['turnVisible'];
|
|
113
|
+
smallScreenLimits?: ChessboardProps['smallScreenLimits'];
|
|
114
|
+
topComponent?: AuxilliaryComponentSizeFunction;
|
|
115
|
+
bottomComponent?: AuxilliaryComponentSizeFunction;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Attributes for method `Chessboard.adaptSquareSize()`.
|
|
119
|
+
*/
|
|
120
|
+
export interface ChessboardAdaptSquareSizeAttr {
|
|
121
|
+
coordinateVisible?: ChessboardProps['coordinateVisible'];
|
|
122
|
+
turnVisible?: ChessboardProps['turnVisible'];
|
|
123
|
+
smallScreenLimits?: ChessboardProps['smallScreenLimits'];
|
|
124
|
+
topComponent?: AuxilliaryComponentSizeFunction;
|
|
125
|
+
bottomComponent?: AuxilliaryComponentSizeFunction;
|
|
126
|
+
}
|
|
102
127
|
interface ChessboardState {
|
|
103
128
|
windowWidth: number;
|
|
104
129
|
}
|
|
@@ -118,14 +143,14 @@ export declare class Chessboard extends React.Component<ChessboardProps, Chessbo
|
|
|
118
143
|
/**
|
|
119
144
|
* Return the size of the chessboard, assuming it is built with the given attributes.
|
|
120
145
|
*/
|
|
121
|
-
static size(attr?:
|
|
146
|
+
static size(attr?: ChessboardSizeAttr): {
|
|
122
147
|
width: number;
|
|
123
148
|
height: number;
|
|
124
149
|
};
|
|
125
150
|
/**
|
|
126
151
|
* Return the maximum square size that would allow the chessboard to fit in a rectangle of size `width x height`.
|
|
127
152
|
*/
|
|
128
|
-
static adaptSquareSize(width: number, height: number, attr?:
|
|
153
|
+
static adaptSquareSize(width: number, height: number, attr?: ChessboardAdaptSquareSizeAttr): number;
|
|
129
154
|
/**
|
|
130
155
|
* Minimum square size (inclusive).
|
|
131
156
|
*
|
|
@@ -129,42 +129,42 @@ export class Chessboard extends React.Component {
|
|
|
129
129
|
* Return the size of the chessboard, assuming it is built with the given attributes.
|
|
130
130
|
*/
|
|
131
131
|
static size(attr) {
|
|
132
|
-
|
|
132
|
+
const { squareSize, coordinateVisible, turnVisible, smallScreenLimits, topComponent, bottomComponent } = sanitizePartialObject(attr, () => new IllegalArgument('Chessboard.size()', 'attr'));
|
|
133
133
|
// Sanitize the arguments.
|
|
134
|
-
|
|
134
|
+
let actualSquareSize = squareSize === undefined ? DEFAULT_SQUARE_SIZE :
|
|
135
135
|
sanitizeBoundedInteger(squareSize, MIN_SQUARE_SIZE, MAX_SQUARE_SIZE, () => new IllegalArgument('Chessboard.size()', 'squareSize'));
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
let actualCoordinateVisible = coordinateVisible === undefined ? true : sanitizeBoolean(coordinateVisible);
|
|
137
|
+
let actualTurnVisible = turnVisible === undefined ? true : sanitizeBoolean(turnVisible);
|
|
138
|
+
const actualLimits = sanitizeSmallScreenLimits(smallScreenLimits, () => new IllegalArgument('Chessboard.size()', 'smallScreenLimits'));
|
|
139
139
|
// Enforce small-screen limits, if any.
|
|
140
140
|
if (typeof window !== 'undefined') {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
actualSquareSize = computeSquareSizeForSmallScreens(actualSquareSize, actualLimits, window.innerWidth);
|
|
142
|
+
actualCoordinateVisible = computeCoordinateVisibleForSmallScreens(actualCoordinateVisible, actualLimits, window.innerWidth);
|
|
143
|
+
actualTurnVisible = computeTurnVisibleForSmallScreens(actualTurnVisible, actualLimits, window.innerWidth);
|
|
144
144
|
}
|
|
145
145
|
// Compute the dimensions.
|
|
146
|
-
return
|
|
146
|
+
return chessBoardWithAuxilliaryComponentSize(actualSquareSize, actualCoordinateVisible, actualTurnVisible, topComponent, bottomComponent);
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
149
|
* Return the maximum square size that would allow the chessboard to fit in a rectangle of size `width x height`.
|
|
150
150
|
*/
|
|
151
151
|
static adaptSquareSize(width, height, attr) {
|
|
152
|
-
|
|
152
|
+
const { coordinateVisible, turnVisible, smallScreenLimits, topComponent, bottomComponent } = sanitizePartialObject(attr, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'attr'));
|
|
153
153
|
// Sanitize the arguments.
|
|
154
154
|
width = sanitizeInteger(width, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'width'));
|
|
155
155
|
height = sanitizeInteger(height, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'height'));
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
let actualCoordinateVisible = coordinateVisible === undefined ? true : sanitizeBoolean(coordinateVisible);
|
|
157
|
+
let actualTurnVisible = turnVisible === undefined ? true : sanitizeBoolean(turnVisible);
|
|
158
|
+
const actualLimits = sanitizeSmallScreenLimits(smallScreenLimits, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'smallScreenLimits'));
|
|
159
159
|
// Enforce small-screen limits, if any.
|
|
160
160
|
let maxSquareSize = MAX_SQUARE_SIZE;
|
|
161
161
|
if (typeof window !== 'undefined') {
|
|
162
|
-
maxSquareSize = computeSquareSizeForSmallScreens(maxSquareSize,
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
maxSquareSize = computeSquareSizeForSmallScreens(maxSquareSize, actualLimits, window.innerWidth);
|
|
163
|
+
actualCoordinateVisible = computeCoordinateVisibleForSmallScreens(actualCoordinateVisible, actualLimits, window.innerWidth);
|
|
164
|
+
actualTurnVisible = computeTurnVisibleForSmallScreens(actualTurnVisible, actualLimits, window.innerWidth);
|
|
165
165
|
}
|
|
166
166
|
function isAdapted(squareSize) {
|
|
167
|
-
const { width: actualWidth, height: actualHeight } =
|
|
167
|
+
const { width: actualWidth, height: actualHeight } = chessBoardWithAuxilliaryComponentSize(squareSize, actualCoordinateVisible, actualTurnVisible, topComponent, bottomComponent);
|
|
168
168
|
return actualWidth <= width && actualHeight <= height;
|
|
169
169
|
}
|
|
170
170
|
// Check min/max bounds.
|
|
@@ -226,6 +226,25 @@ Chessboard.defaultProps = {
|
|
|
226
226
|
position: 'start',
|
|
227
227
|
flipped: false,
|
|
228
228
|
};
|
|
229
|
+
function chessBoardWithAuxilliaryComponentSize(squareSize, coordinateVisible, turnVisible, topComponent, bottomComponent) {
|
|
230
|
+
let { width, height } = chessboardSize(squareSize, coordinateVisible, turnVisible);
|
|
231
|
+
const auxilliaryComponentAttr = {
|
|
232
|
+
squareSize: squareSize,
|
|
233
|
+
coordinateVisible: coordinateVisible,
|
|
234
|
+
turnVisible: turnVisible,
|
|
235
|
+
};
|
|
236
|
+
if (topComponent) {
|
|
237
|
+
const { width: auxilliaryWidth, height: auxilliaryHeight } = topComponent(auxilliaryComponentAttr);
|
|
238
|
+
width = Math.max(width, auxilliaryWidth);
|
|
239
|
+
height += auxilliaryHeight;
|
|
240
|
+
}
|
|
241
|
+
if (bottomComponent) {
|
|
242
|
+
const { width: auxilliaryWidth, height: auxilliaryHeight } = bottomComponent(auxilliaryComponentAttr);
|
|
243
|
+
width = Math.max(width, auxilliaryWidth);
|
|
244
|
+
height += auxilliaryHeight;
|
|
245
|
+
}
|
|
246
|
+
return { width: width, height: height };
|
|
247
|
+
}
|
|
229
248
|
/**
|
|
230
249
|
* Compute the actual square size taking into account the given small-screen limits and window width.
|
|
231
250
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chessboard.js","sourceRoot":"","sources":["../../../src/chessboard/Chessboard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Chessboard.js","sourceRoot":"","sources":["../../../src/chessboard/Chessboard.tsx"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -32,6 +32,6 @@ export { SmallScreenLimit } from './chessboard/BoardProperties';
|
|
|
32
32
|
export { Chessboard, ChessboardProps } from './chessboard/Chessboard';
|
|
33
33
|
export { formatMove, moveFormatter } from './movetext/moveFormatter';
|
|
34
34
|
export { Movetext, MovetextProps, MoveSelectEventOrigin } from './movetext/Movetext';
|
|
35
|
-
export { NavigationButton,
|
|
35
|
+
export { NavigationButton, NavigationBar, NavigationBarScheme, isNavigationButton, isNavigationBar, isNavigationBarScheme } from './navigationboard/NavigationButton';
|
|
36
36
|
export { firstNodeId, previousNodeId, nextNodeId, lastNodeId } from './navigationboard/NavigationField';
|
|
37
37
|
export { NavigationBoard, NavigationBoardProps } from './navigationboard/NavigationBoard';
|
package/dist/lib/index.js
CHANGED
|
@@ -31,7 +31,7 @@ export { ChessPieceIcon } from './icons/ChessPieceIcon';
|
|
|
31
31
|
export { Chessboard } from './chessboard/Chessboard';
|
|
32
32
|
export { formatMove, moveFormatter } from './movetext/moveFormatter';
|
|
33
33
|
export { Movetext } from './movetext/Movetext';
|
|
34
|
-
export { isNavigationButton } from './navigationboard/NavigationButton';
|
|
34
|
+
export { isNavigationButton, isNavigationBar, isNavigationBarScheme } from './navigationboard/NavigationButton';
|
|
35
35
|
export { firstNodeId, previousNodeId, nextNodeId, lastNodeId } from './navigationboard/NavigationField';
|
|
36
36
|
export { NavigationBoard } from './navigationboard/NavigationBoard';
|
|
37
37
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AAGhF,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EACH,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAChJ,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAuB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAwB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAuB,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAwC,MAAM,qBAAqB,CAAC;AAErF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AAGhF,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EACH,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAChJ,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAiB,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAuB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAwB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAuB,MAAM,wBAAwB,CAAC;AAG7E,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAwC,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAwD,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AACtK,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACxG,OAAO,EAAE,eAAe,EAAwB,MAAM,mCAAmC,CAAC"}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
import * as React from 'react';
|
|
24
24
|
import { Database, Game } from 'kokopu';
|
|
25
25
|
import { DynamicBoardGraphicProps } from '../chessboard/BoardProperties';
|
|
26
|
-
import {
|
|
26
|
+
import { NavigationBar, NavigationBarScheme } from './NavigationButton';
|
|
27
27
|
export interface NavigationBoardProps extends DynamicBoardGraphicProps {
|
|
28
28
|
/**
|
|
29
29
|
* Displayed game. Can be a [kokopu.Game](https://kokopu.yo35.org/docs/current/classes/Game.html) object,
|
|
@@ -99,7 +99,30 @@ export interface NavigationBoardProps extends DynamicBoardGraphicProps {
|
|
|
99
99
|
/**
|
|
100
100
|
* Additional buttons to be added to the toolbar.
|
|
101
101
|
*/
|
|
102
|
-
additionalButtons:
|
|
102
|
+
additionalButtons: NavigationBar;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Attributes for method `NavigationBoard.size()`.
|
|
106
|
+
*/
|
|
107
|
+
interface NavigationBoardSizeAttr {
|
|
108
|
+
squareSize?: NavigationBoardProps['squareSize'];
|
|
109
|
+
coordinateVisible?: NavigationBoardProps['coordinateVisible'];
|
|
110
|
+
turnVisible?: NavigationBoardProps['turnVisible'];
|
|
111
|
+
smallScreenLimits?: NavigationBoardProps['smallScreenLimits'];
|
|
112
|
+
playButtonVisible?: NavigationBoardProps['playButtonVisible'];
|
|
113
|
+
flipButtonVisible?: NavigationBoardProps['flipButtonVisible'];
|
|
114
|
+
additionalButtons?: NavigationBarScheme;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Attributes for method `NavigationBoard.adaptSquareSize()`.
|
|
118
|
+
*/
|
|
119
|
+
interface NavigationBoardAdaptSquareSizeAttr {
|
|
120
|
+
coordinateVisible?: NavigationBoardProps['coordinateVisible'];
|
|
121
|
+
turnVisible?: NavigationBoardProps['turnVisible'];
|
|
122
|
+
smallScreenLimits?: NavigationBoardProps['smallScreenLimits'];
|
|
123
|
+
playButtonVisible?: NavigationBoardProps['playButtonVisible'];
|
|
124
|
+
flipButtonVisible?: NavigationBoardProps['flipButtonVisible'];
|
|
125
|
+
additionalButtons?: NavigationBarScheme;
|
|
103
126
|
}
|
|
104
127
|
interface NavigationBoardState {
|
|
105
128
|
nodeIdAsUncontrolled: string;
|
|
@@ -120,11 +143,6 @@ export declare class NavigationBoard extends React.Component<NavigationBoardProp
|
|
|
120
143
|
flipButtonVisible: boolean;
|
|
121
144
|
additionalButtons: never[];
|
|
122
145
|
moveArrowVisible: boolean;
|
|
123
|
-
/**
|
|
124
|
-
* ID of the selected move (or `'start'`/`'end'` for the beginning/end of the main variation).
|
|
125
|
-
* Use [kokopu.Node#id](https://kokopu.yo35.org/docs/current/classes/Node.html#id) to get the ID of a game move.
|
|
126
|
-
* If provided (i.e. if the component is controlled), the attribute `onNodeIdChanged` must be provided as well.
|
|
127
|
-
*/
|
|
128
146
|
moveArrowColor: import("..").AnnotationColor;
|
|
129
147
|
animated: boolean;
|
|
130
148
|
squareSize: number;
|
|
@@ -152,5 +170,16 @@ export declare class NavigationBoard extends React.Component<NavigationBoardProp
|
|
|
152
170
|
* @public
|
|
153
171
|
*/
|
|
154
172
|
focus(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Return the size of the {@link NavigationBoard}, assuming it is built with the given attributes.
|
|
175
|
+
*/
|
|
176
|
+
static size(attr?: NavigationBoardSizeAttr): {
|
|
177
|
+
width: number;
|
|
178
|
+
height: number;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Return the maximum square size that would allow the {@link NavigationBoard} to fit in a rectangle of size `width x height`.
|
|
182
|
+
*/
|
|
183
|
+
static adaptSquareSize(width: number, height: number, attr?: NavigationBoardAdaptSquareSizeAttr): number;
|
|
155
184
|
}
|
|
156
185
|
export {};
|
|
@@ -24,14 +24,14 @@ import * as React from 'react';
|
|
|
24
24
|
import { Game, Node as GameNode, Variation } from 'kokopu';
|
|
25
25
|
import { IllegalArgument } from '../exception';
|
|
26
26
|
import { i18n } from '../i18n';
|
|
27
|
-
import { sanitizeBoolean, sanitizeOptional, sanitizeString } from '../sanitization';
|
|
27
|
+
import { sanitizeBoolean, sanitizeOptional, sanitizeString, sanitizePartialObject } from '../sanitization';
|
|
28
28
|
import { defaultDynamicBoardProps } from '../chessboard/BoardProperties';
|
|
29
29
|
import { Chessboard } from '../chessboard/Chessboard';
|
|
30
30
|
import { parseGame } from '../errorbox/parsing';
|
|
31
31
|
import { NavigationField, firstNodeId, previousNodeId, nextNodeId, lastNodeId } from '../navigationboard/NavigationField';
|
|
32
32
|
import { GO_FIRST_ICON_PATH, GO_PREVIOUS_ICON_PATH, GO_NEXT_ICON_PATH, GO_LAST_ICON_PATH, PLAY_ICON_PATH, STOP_ICON_PATH, FLIP_ICON_PATH } from './iconPaths';
|
|
33
|
-
import {
|
|
34
|
-
import { NavigationToolbar } from './NavigationToolbar';
|
|
33
|
+
import { isNavigationBar, isNavigationBarScheme } from './NavigationButton';
|
|
34
|
+
import { NavigationToolbar, navigationToolbarSize } from './NavigationToolbar';
|
|
35
35
|
const INTER_MOVE_DURATION = 1000;
|
|
36
36
|
/**
|
|
37
37
|
* Component displaying the positions occurring in a chess game, with navigation buttons to browse these positions.
|
|
@@ -75,6 +75,7 @@ export class NavigationBoard extends React.Component {
|
|
|
75
75
|
return React.createElement(NavigationField, { ref: this.navigationFieldRef, onFirstPressed: () => this.handleNavClicked(firstNodeId(game, currentNodeId)), onPreviousPressed: () => this.handleNavClicked(previousNodeId(game, currentNodeId)), onNextPressed: () => this.handleNavClicked(nextNodeId(game, currentNodeId)), onLastPressed: () => this.handleNavClicked(lastNodeId(game, currentNodeId)) });
|
|
76
76
|
}
|
|
77
77
|
renderToolbar(game, node, squareSize, isPlaying) {
|
|
78
|
+
// WARNING: the logic here must be the same as the one in `computeBarScheme()`.
|
|
78
79
|
const buttons = [];
|
|
79
80
|
// Core navigation buttons
|
|
80
81
|
const currentNodeId = node.id();
|
|
@@ -103,8 +104,10 @@ export class NavigationBoard extends React.Component {
|
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
// Additional buttons.
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
if (!isNavigationBar(this.props.additionalButtons)) {
|
|
108
|
+
throw new IllegalArgument('NavigationBoard', 'additionalButtons');
|
|
109
|
+
}
|
|
110
|
+
for (const button of this.props.additionalButtons) {
|
|
108
111
|
buttons.push(button);
|
|
109
112
|
}
|
|
110
113
|
return React.createElement(NavigationToolbar, { squareSize: squareSize, buttons: buttons });
|
|
@@ -161,6 +164,45 @@ export class NavigationBoard extends React.Component {
|
|
|
161
164
|
target.focus();
|
|
162
165
|
}
|
|
163
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Return the size of the {@link NavigationBoard}, assuming it is built with the given attributes.
|
|
169
|
+
*/
|
|
170
|
+
static size(attr) {
|
|
171
|
+
const { squareSize, coordinateVisible, turnVisible, smallScreenLimits, playButtonVisible, flipButtonVisible, additionalButtons } = sanitizePartialObject(attr, () => new IllegalArgument('NavigationBoard.size()', 'attr'));
|
|
172
|
+
// Sanitization
|
|
173
|
+
const actualPlayButtonVisible = sanitizeOptional(playButtonVisible, sanitizeBoolean);
|
|
174
|
+
const actualFlipButtonVisible = sanitizeOptional(flipButtonVisible, sanitizeBoolean);
|
|
175
|
+
if (additionalButtons !== undefined && !isNavigationBarScheme(additionalButtons)) {
|
|
176
|
+
throw new IllegalArgument('NavigationBoard.size()', 'additionalButtons');
|
|
177
|
+
}
|
|
178
|
+
const buttons = computeBarScheme(actualPlayButtonVisible, actualFlipButtonVisible, additionalButtons);
|
|
179
|
+
return Chessboard.size({
|
|
180
|
+
squareSize: squareSize,
|
|
181
|
+
coordinateVisible: coordinateVisible,
|
|
182
|
+
turnVisible: turnVisible,
|
|
183
|
+
smallScreenLimits: smallScreenLimits,
|
|
184
|
+
bottomComponent: ({ squareSize: sz }) => navigationToolbarSize(sz, buttons),
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Return the maximum square size that would allow the {@link NavigationBoard} to fit in a rectangle of size `width x height`.
|
|
189
|
+
*/
|
|
190
|
+
static adaptSquareSize(width, height, attr) {
|
|
191
|
+
const { coordinateVisible, turnVisible, smallScreenLimits, playButtonVisible, flipButtonVisible, additionalButtons } = sanitizePartialObject(attr, () => new IllegalArgument('NavigationBoard.adaptSquareSize()', 'attr'));
|
|
192
|
+
// Sanitization
|
|
193
|
+
const actualPlayButtonVisible = sanitizeOptional(playButtonVisible, sanitizeBoolean);
|
|
194
|
+
const actualFlipButtonVisible = sanitizeOptional(flipButtonVisible, sanitizeBoolean);
|
|
195
|
+
if (additionalButtons !== undefined && !isNavigationBarScheme(additionalButtons)) {
|
|
196
|
+
throw new IllegalArgument('NavigationBoard.adaptSquareSize()', 'additionalButtons');
|
|
197
|
+
}
|
|
198
|
+
const buttons = computeBarScheme(actualPlayButtonVisible, actualFlipButtonVisible, additionalButtons);
|
|
199
|
+
return Chessboard.adaptSquareSize(width, height, {
|
|
200
|
+
coordinateVisible: coordinateVisible,
|
|
201
|
+
turnVisible: turnVisible,
|
|
202
|
+
smallScreenLimits: smallScreenLimits,
|
|
203
|
+
bottomComponent: ({ squareSize: sz }) => navigationToolbarSize(sz, buttons),
|
|
204
|
+
});
|
|
205
|
+
}
|
|
164
206
|
}
|
|
165
207
|
NavigationBoard.defaultProps = {
|
|
166
208
|
...defaultDynamicBoardProps(),
|
|
@@ -173,23 +215,26 @@ NavigationBoard.defaultProps = {
|
|
|
173
215
|
flipButtonVisible: true,
|
|
174
216
|
additionalButtons: [],
|
|
175
217
|
};
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
throw exceptionBuilder();
|
|
184
|
-
}
|
|
185
|
-
return t;
|
|
186
|
-
});
|
|
218
|
+
function computeBarScheme(playButtonVisible, flipButtonVisible, additionalButtons) {
|
|
219
|
+
// WARNING: the logic here must be the same as the one in `renderToolbar()`.
|
|
220
|
+
const buttons = [];
|
|
221
|
+
buttons.push('button'); // go-first
|
|
222
|
+
buttons.push('button'); // go-previous
|
|
223
|
+
if (playButtonVisible ?? NavigationBoard.defaultProps.playButtonVisible) {
|
|
224
|
+
buttons.push('button');
|
|
187
225
|
}
|
|
188
|
-
|
|
189
|
-
|
|
226
|
+
buttons.push('button'); // go-next
|
|
227
|
+
buttons.push('button'); // go-last
|
|
228
|
+
buttons.push('spacer');
|
|
229
|
+
if (flipButtonVisible ?? NavigationBoard.defaultProps.flipButtonVisible) {
|
|
230
|
+
buttons.push('button');
|
|
190
231
|
}
|
|
191
|
-
|
|
192
|
-
|
|
232
|
+
buttons.push('spacer');
|
|
233
|
+
if (additionalButtons !== undefined) {
|
|
234
|
+
for (const button of additionalButtons) {
|
|
235
|
+
buttons.push(button);
|
|
236
|
+
}
|
|
193
237
|
}
|
|
238
|
+
return buttons;
|
|
194
239
|
}
|
|
195
240
|
//# sourceMappingURL=NavigationBoard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationBoard.js","sourceRoot":"","sources":["../../../src/navigationboard/NavigationBoard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NavigationBoard.js","sourceRoot":"","sources":["../../../src/navigationboard/NavigationBoard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -47,8 +47,20 @@ export type NavigationButton = {
|
|
|
47
47
|
/**
|
|
48
48
|
* List of additional buttons to be added to the toolbar of {@link NavigationBoard}, together with optional spacers in-between.
|
|
49
49
|
*/
|
|
50
|
-
export type
|
|
50
|
+
export type NavigationBar = (NavigationButton | 'spacer')[];
|
|
51
|
+
/**
|
|
52
|
+
* Scheme of additional button list to be added to the toolbar of {@link NavigationBoard}, together with optional spacers in-between.
|
|
53
|
+
*/
|
|
54
|
+
export type NavigationBarScheme = ('button' | 'spacer')[];
|
|
51
55
|
/**
|
|
52
56
|
* Whether the given object is a {@link NavigationButton} or not.
|
|
53
57
|
*/
|
|
54
58
|
export declare function isNavigationButton(button: unknown): button is NavigationButton;
|
|
59
|
+
/**
|
|
60
|
+
* Whether the given object is a {@link NavigationBar} or not.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isNavigationBar(buttons: unknown): buttons is NavigationBar;
|
|
63
|
+
/**
|
|
64
|
+
* Whether the given object is a {@link NavigationBarScheme} or not.
|
|
65
|
+
*/
|
|
66
|
+
export declare function isNavigationBarScheme(buttons: unknown): buttons is NavigationBarScheme;
|
|
@@ -32,4 +32,36 @@ export function isNavigationButton(button) {
|
|
|
32
32
|
(button.enabled === undefined || typeof button.enabled === 'boolean') &&
|
|
33
33
|
(button.onClick === undefined || typeof button.onClick === 'function');
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Whether the given object is a {@link NavigationBar} or not.
|
|
37
|
+
*/
|
|
38
|
+
export function isNavigationBar(buttons) {
|
|
39
|
+
if (Array.isArray(buttons)) {
|
|
40
|
+
for (const button of buttons) {
|
|
41
|
+
if (!(isNavigationButton(button) || button === 'spacer')) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Whether the given object is a {@link NavigationBarScheme} or not.
|
|
53
|
+
*/
|
|
54
|
+
export function isNavigationBarScheme(buttons) {
|
|
55
|
+
if (Array.isArray(buttons)) {
|
|
56
|
+
for (const button of buttons) {
|
|
57
|
+
if (!(button === 'button' || button === 'spacer')) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
35
67
|
//# sourceMappingURL=NavigationButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationButton.js","sourceRoot":"","sources":["../../../src/navigationboard/NavigationButton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;
|
|
1
|
+
{"version":3,"file":"NavigationButton.js","sourceRoot":"","sources":["../../../src/navigationboard/NavigationButton.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AA6ChF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,OAAQ,MAA2B,CAAC,QAAQ,KAAK,QAAQ;QAC5D,CAAE,MAA2B,CAAC,OAAO,KAAK,SAAS,IAAI,OAAQ,MAA2B,CAAC,OAAO,KAAK,QAAQ,CAAC;QAChH,CAAE,MAA2B,CAAC,OAAO,KAAK,SAAS,IAAI,OAAQ,MAA2B,CAAC,OAAO,KAAK,SAAS,CAAC;QACjH,CAAE,MAA2B,CAAC,OAAO,KAAK,SAAS,IAAI,OAAQ,MAA2B,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;AAC3H,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACvD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;SACI,CAAC;QACF,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAGD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;SACI,CAAC;QACF,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC"}
|
|
@@ -21,14 +21,21 @@
|
|
|
21
21
|
* *
|
|
22
22
|
* -------------------------------------------------------------------------- */
|
|
23
23
|
import * as React from 'react';
|
|
24
|
-
import {
|
|
24
|
+
import { NavigationBar, NavigationBarScheme } from './NavigationButton';
|
|
25
25
|
import './NavigationToolbar.css';
|
|
26
26
|
interface NavigationToolbarProps {
|
|
27
27
|
squareSize: number;
|
|
28
|
-
buttons:
|
|
28
|
+
buttons: NavigationBar;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Toolbar below the navigation board.
|
|
32
32
|
*/
|
|
33
33
|
export declare function NavigationToolbar({ squareSize, buttons }: NavigationToolbarProps): React.JSX.Element;
|
|
34
|
+
/**
|
|
35
|
+
* Size of the navigation toolbar (taking into account the margin between the toolbar and the chessboard), assuming the given square size.
|
|
36
|
+
*/
|
|
37
|
+
export declare function navigationToolbarSize(squareSize: number, buttons: NavigationBarScheme): {
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
};
|
|
34
41
|
export {};
|
|
@@ -45,7 +45,7 @@ export function NavigationToolbar({ squareSize, buttons }) {
|
|
|
45
45
|
// Enqueue the button node.
|
|
46
46
|
buttonNodes.push(React.createElement(NavigationButtonImpl, { key: buttonNodes.length, tooltip: button.tooltip, iconPath: button.iconPath, enabled: button.enabled, onClick: button.onClick, size: buttonSize, spaceOnLeft: i === 0 || buttons[i - 1] === 'spacer', spaceOnRight: i === buttons.length - 1 || buttons[i + 1] === 'spacer' }));
|
|
47
47
|
}
|
|
48
|
-
return React.createElement("div", { className: "kokopu-navigationToolbar", style: { marginTop:
|
|
48
|
+
return React.createElement("div", { className: "kokopu-navigationToolbar", style: { marginTop: computeMarginTop(squareSize) } }, buttonNodes);
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Button for the navigation toolbar.
|
|
@@ -58,6 +58,33 @@ function NavigationButtonImpl({ size, spaceOnLeft, spaceOnRight, iconPath, toolt
|
|
|
58
58
|
React.createElement("svg", { viewBox: "0 0 32 32", width: size, height: size },
|
|
59
59
|
React.createElement("path", { d: `M 16 0 ${leftBoundary} ${rightBoundary} Z ${iconPath}`, fill: "currentcolor" }))));
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Size of the navigation toolbar (taking into account the margin between the toolbar and the chessboard), assuming the given square size.
|
|
63
|
+
*/
|
|
64
|
+
export function navigationToolbarSize(squareSize, buttons) {
|
|
65
|
+
const buttonSize = computeButtonSize(squareSize);
|
|
66
|
+
const spacerSize = computeSpacerSize(squareSize);
|
|
67
|
+
let width = 0;
|
|
68
|
+
let atLeastOneButtonEncountered = false;
|
|
69
|
+
for (let i = 0; i < buttons.length; ++i) {
|
|
70
|
+
// Skip the spacers.
|
|
71
|
+
if (buttons[i] === 'spacer') {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
// Enqueue a spacer if necessary.
|
|
75
|
+
// Remark: consecutive spacers are collapsed into a single one for rendering, and spacers at the begin and end of the button list are not rendered.
|
|
76
|
+
if (atLeastOneButtonEncountered && buttons[i - 1] === 'spacer') {
|
|
77
|
+
width += spacerSize;
|
|
78
|
+
}
|
|
79
|
+
atLeastOneButtonEncountered = true;
|
|
80
|
+
// Enqueue the button node.
|
|
81
|
+
width += buttonSize;
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
width: width,
|
|
85
|
+
height: buttonSize + computeMarginTop(squareSize),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
61
88
|
/**
|
|
62
89
|
* Return the height/width of the buttons assuming the given square size.
|
|
63
90
|
*/
|
|
@@ -70,4 +97,10 @@ function computeButtonSize(squareSize) {
|
|
|
70
97
|
function computeSpacerSize(squareSize) {
|
|
71
98
|
return Math.round((squareSize * 2 + 116) / 14);
|
|
72
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Return the height of the margin between the toolbar and the chessboard.
|
|
102
|
+
*/
|
|
103
|
+
function computeMarginTop(squareSize) {
|
|
104
|
+
return Math.round((squareSize * 2 + 116) / 28);
|
|
105
|
+
}
|
|
73
106
|
//# sourceMappingURL=NavigationToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigationToolbar.js","sourceRoot":"","sources":["../../../src/navigationboard/NavigationToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;gFAqBgF;AAGhF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,yBAAyB,CAAC;AASjC;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,UAAU,EAAE,OAAO,EAA0B;IAE7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,WAAW,GAAsB,EAAE,CAAC;IAE1C,IAAI,2BAA2B,GAAG,KAAK,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE1B,oBAAoB;QACpB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtB,SAAS;QACb,CAAC;QAED,iCAAiC;QACjC,mJAAmJ;QACnJ,IAAI,2BAA2B,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC7D,WAAW,CAAC,IAAI,CAAC,6BAAK,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAI,CAAC,CAAC;QACzH,CAAC;QACD,2BAA2B,GAAG,IAAI,CAAC;QAEnC,2BAA2B;QAC3B,WAAW,CAAC,IAAI,CAAC,oBAAC,oBAAoB,IAClC,GAAG,EAAE,WAAW,CAAC,MAAM,EACvB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EACpG,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EACnD,YAAY,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,GACvE,CAAC,CAAC;IACR,CAAC;IAED,OAAO,6BAAK,SAAS,EAAC,0BAA0B,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"NavigationToolbar.js","sourceRoot":"","sources":["../../../src/navigationboard/NavigationToolbar.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -129,6 +129,34 @@ export interface ChessboardProps extends DynamicBoardGraphicProps {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
|
|
132
|
+
type AuxilliaryComponentSizeFunction = (attr: Pick<StaticBoardGraphicProps, 'squareSize' | 'coordinateVisible' | 'turnVisible'>) => { width: number, height: number };
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Attributes for method `Chessboard.size()`.
|
|
137
|
+
*/
|
|
138
|
+
export interface ChessboardSizeAttr {
|
|
139
|
+
squareSize?: ChessboardProps['squareSize'];
|
|
140
|
+
coordinateVisible?: ChessboardProps['coordinateVisible'];
|
|
141
|
+
turnVisible?: ChessboardProps['turnVisible'];
|
|
142
|
+
smallScreenLimits?: ChessboardProps['smallScreenLimits'];
|
|
143
|
+
topComponent?: AuxilliaryComponentSizeFunction;
|
|
144
|
+
bottomComponent?: AuxilliaryComponentSizeFunction;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Attributes for method `Chessboard.adaptSquareSize()`.
|
|
150
|
+
*/
|
|
151
|
+
export interface ChessboardAdaptSquareSizeAttr {
|
|
152
|
+
coordinateVisible?: ChessboardProps['coordinateVisible'];
|
|
153
|
+
turnVisible?: ChessboardProps['turnVisible'];
|
|
154
|
+
smallScreenLimits?: ChessboardProps['smallScreenLimits'];
|
|
155
|
+
topComponent?: AuxilliaryComponentSizeFunction;
|
|
156
|
+
bottomComponent?: AuxilliaryComponentSizeFunction;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
|
|
132
160
|
interface ChessboardState {
|
|
133
161
|
windowWidth: number;
|
|
134
162
|
}
|
|
@@ -261,50 +289,53 @@ export class Chessboard extends React.Component<ChessboardProps, ChessboardState
|
|
|
261
289
|
/**
|
|
262
290
|
* Return the size of the chessboard, assuming it is built with the given attributes.
|
|
263
291
|
*/
|
|
264
|
-
static size(attr?:
|
|
265
|
-
|
|
292
|
+
static size(attr?: ChessboardSizeAttr): { width: number, height: number } {
|
|
293
|
+
const { squareSize, coordinateVisible, turnVisible, smallScreenLimits, topComponent, bottomComponent } = sanitizePartialObject(attr,
|
|
294
|
+
() => new IllegalArgument('Chessboard.size()', 'attr'));
|
|
266
295
|
|
|
267
296
|
// Sanitize the arguments.
|
|
268
|
-
|
|
297
|
+
let actualSquareSize = squareSize === undefined ? DEFAULT_SQUARE_SIZE :
|
|
269
298
|
sanitizeBoundedInteger(squareSize, MIN_SQUARE_SIZE, MAX_SQUARE_SIZE, () => new IllegalArgument('Chessboard.size()', 'squareSize'));
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
299
|
+
let actualCoordinateVisible = coordinateVisible === undefined ? true : sanitizeBoolean(coordinateVisible);
|
|
300
|
+
let actualTurnVisible = turnVisible === undefined ? true : sanitizeBoolean(turnVisible);
|
|
301
|
+
const actualLimits = sanitizeSmallScreenLimits(smallScreenLimits, () => new IllegalArgument('Chessboard.size()', 'smallScreenLimits'));
|
|
273
302
|
|
|
274
303
|
// Enforce small-screen limits, if any.
|
|
275
304
|
if (typeof window !== 'undefined') {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
305
|
+
actualSquareSize = computeSquareSizeForSmallScreens(actualSquareSize, actualLimits, window.innerWidth);
|
|
306
|
+
actualCoordinateVisible = computeCoordinateVisibleForSmallScreens(actualCoordinateVisible, actualLimits, window.innerWidth);
|
|
307
|
+
actualTurnVisible = computeTurnVisibleForSmallScreens(actualTurnVisible, actualLimits, window.innerWidth);
|
|
279
308
|
}
|
|
280
309
|
|
|
281
310
|
// Compute the dimensions.
|
|
282
|
-
return
|
|
311
|
+
return chessBoardWithAuxilliaryComponentSize(actualSquareSize, actualCoordinateVisible, actualTurnVisible, topComponent, bottomComponent);
|
|
283
312
|
}
|
|
284
313
|
|
|
285
314
|
/**
|
|
286
315
|
* Return the maximum square size that would allow the chessboard to fit in a rectangle of size `width x height`.
|
|
287
316
|
*/
|
|
288
|
-
static adaptSquareSize(width: number, height: number, attr?:
|
|
289
|
-
|
|
317
|
+
static adaptSquareSize(width: number, height: number, attr?: ChessboardAdaptSquareSizeAttr): number {
|
|
318
|
+
const { coordinateVisible, turnVisible, smallScreenLimits, topComponent, bottomComponent } = sanitizePartialObject(attr,
|
|
319
|
+
() => new IllegalArgument('Chessboard.adaptSquareSize()', 'attr'));
|
|
290
320
|
|
|
291
321
|
// Sanitize the arguments.
|
|
292
322
|
width = sanitizeInteger(width, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'width'));
|
|
293
323
|
height = sanitizeInteger(height, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'height'));
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
324
|
+
let actualCoordinateVisible = coordinateVisible === undefined ? true : sanitizeBoolean(coordinateVisible);
|
|
325
|
+
let actualTurnVisible = turnVisible === undefined ? true : sanitizeBoolean(turnVisible);
|
|
326
|
+
const actualLimits = sanitizeSmallScreenLimits(smallScreenLimits, () => new IllegalArgument('Chessboard.adaptSquareSize()', 'smallScreenLimits'));
|
|
297
327
|
|
|
298
328
|
// Enforce small-screen limits, if any.
|
|
299
329
|
let maxSquareSize = MAX_SQUARE_SIZE;
|
|
300
330
|
if (typeof window !== 'undefined') {
|
|
301
|
-
maxSquareSize = computeSquareSizeForSmallScreens(maxSquareSize,
|
|
302
|
-
|
|
303
|
-
|
|
331
|
+
maxSquareSize = computeSquareSizeForSmallScreens(maxSquareSize, actualLimits, window.innerWidth);
|
|
332
|
+
actualCoordinateVisible = computeCoordinateVisibleForSmallScreens(actualCoordinateVisible, actualLimits, window.innerWidth);
|
|
333
|
+
actualTurnVisible = computeTurnVisibleForSmallScreens(actualTurnVisible, actualLimits, window.innerWidth);
|
|
304
334
|
}
|
|
305
335
|
|
|
306
336
|
function isAdapted(squareSize: number) {
|
|
307
|
-
const { width: actualWidth, height: actualHeight } =
|
|
337
|
+
const { width: actualWidth, height: actualHeight } = chessBoardWithAuxilliaryComponentSize(squareSize, actualCoordinateVisible, actualTurnVisible,
|
|
338
|
+
topComponent, bottomComponent);
|
|
308
339
|
return actualWidth <= width && actualHeight <= height;
|
|
309
340
|
}
|
|
310
341
|
|
|
@@ -369,6 +400,31 @@ export class Chessboard extends React.Component<ChessboardProps, ChessboardState
|
|
|
369
400
|
}
|
|
370
401
|
|
|
371
402
|
|
|
403
|
+
function chessBoardWithAuxilliaryComponentSize(squareSize: number, coordinateVisible: boolean, turnVisible: boolean,
|
|
404
|
+
topComponent: AuxilliaryComponentSizeFunction | undefined, bottomComponent: AuxilliaryComponentSizeFunction | undefined): { width: number, height: number } {
|
|
405
|
+
|
|
406
|
+
let { width, height } = chessboardSize(squareSize, coordinateVisible, turnVisible);
|
|
407
|
+
const auxilliaryComponentAttr = {
|
|
408
|
+
squareSize: squareSize,
|
|
409
|
+
coordinateVisible: coordinateVisible,
|
|
410
|
+
turnVisible: turnVisible,
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
if (topComponent) {
|
|
414
|
+
const { width: auxilliaryWidth, height: auxilliaryHeight } = topComponent(auxilliaryComponentAttr);
|
|
415
|
+
width = Math.max(width, auxilliaryWidth);
|
|
416
|
+
height += auxilliaryHeight;
|
|
417
|
+
}
|
|
418
|
+
if (bottomComponent) {
|
|
419
|
+
const { width: auxilliaryWidth, height: auxilliaryHeight } = bottomComponent(auxilliaryComponentAttr);
|
|
420
|
+
width = Math.max(width, auxilliaryWidth);
|
|
421
|
+
height += auxilliaryHeight;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
return { width: width, height: height };
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
|
|
372
428
|
/**
|
|
373
429
|
* Compute the actual square size taking into account the given small-screen limits and window width.
|
|
374
430
|
*/
|
package/src/index.ts
CHANGED
|
@@ -42,6 +42,6 @@ export { Chessboard, ChessboardProps } from './chessboard/Chessboard';
|
|
|
42
42
|
export { formatMove, moveFormatter } from './movetext/moveFormatter';
|
|
43
43
|
export { Movetext, MovetextProps, MoveSelectEventOrigin } from './movetext/Movetext';
|
|
44
44
|
|
|
45
|
-
export { NavigationButton,
|
|
45
|
+
export { NavigationButton, NavigationBar, NavigationBarScheme, isNavigationButton, isNavigationBar, isNavigationBarScheme } from './navigationboard/NavigationButton';
|
|
46
46
|
export { firstNodeId, previousNodeId, nextNodeId, lastNodeId } from './navigationboard/NavigationField';
|
|
47
47
|
export { NavigationBoard, NavigationBoardProps } from './navigationboard/NavigationBoard';
|
|
@@ -28,15 +28,15 @@ import { Database, Game, Node as GameNode, Variation } from 'kokopu';
|
|
|
28
28
|
|
|
29
29
|
import { IllegalArgument } from '../exception';
|
|
30
30
|
import { i18n } from '../i18n';
|
|
31
|
-
import { sanitizeBoolean, sanitizeOptional, sanitizeString } from '../sanitization';
|
|
31
|
+
import { sanitizeBoolean, sanitizeOptional, sanitizeString, sanitizePartialObject } from '../sanitization';
|
|
32
32
|
|
|
33
33
|
import { DynamicBoardGraphicProps, defaultDynamicBoardProps } from '../chessboard/BoardProperties';
|
|
34
34
|
import { Chessboard } from '../chessboard/Chessboard';
|
|
35
35
|
import { parseGame } from '../errorbox/parsing';
|
|
36
36
|
import { NavigationField, firstNodeId, previousNodeId, nextNodeId, lastNodeId } from '../navigationboard/NavigationField';
|
|
37
37
|
import { GO_FIRST_ICON_PATH, GO_PREVIOUS_ICON_PATH, GO_NEXT_ICON_PATH, GO_LAST_ICON_PATH, PLAY_ICON_PATH, STOP_ICON_PATH, FLIP_ICON_PATH } from './iconPaths';
|
|
38
|
-
import {
|
|
39
|
-
import { NavigationToolbar } from './NavigationToolbar';
|
|
38
|
+
import { NavigationBar, NavigationBarScheme, isNavigationBar, isNavigationBarScheme } from './NavigationButton';
|
|
39
|
+
import { NavigationToolbar, navigationToolbarSize } from './NavigationToolbar';
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
const INTER_MOVE_DURATION = 1000;
|
|
@@ -131,7 +131,34 @@ export interface NavigationBoardProps extends DynamicBoardGraphicProps {
|
|
|
131
131
|
/**
|
|
132
132
|
* Additional buttons to be added to the toolbar.
|
|
133
133
|
*/
|
|
134
|
-
additionalButtons:
|
|
134
|
+
additionalButtons: NavigationBar;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Attributes for method `NavigationBoard.size()`.
|
|
140
|
+
*/
|
|
141
|
+
interface NavigationBoardSizeAttr {
|
|
142
|
+
squareSize?: NavigationBoardProps['squareSize'];
|
|
143
|
+
coordinateVisible?: NavigationBoardProps['coordinateVisible'];
|
|
144
|
+
turnVisible?: NavigationBoardProps['turnVisible'];
|
|
145
|
+
smallScreenLimits?: NavigationBoardProps['smallScreenLimits'];
|
|
146
|
+
playButtonVisible?: NavigationBoardProps['playButtonVisible'];
|
|
147
|
+
flipButtonVisible?: NavigationBoardProps['flipButtonVisible'];
|
|
148
|
+
additionalButtons?: NavigationBarScheme;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Attributes for method `NavigationBoard.adaptSquareSize()`.
|
|
154
|
+
*/
|
|
155
|
+
interface NavigationBoardAdaptSquareSizeAttr {
|
|
156
|
+
coordinateVisible?: NavigationBoardProps['coordinateVisible'];
|
|
157
|
+
turnVisible?: NavigationBoardProps['turnVisible'];
|
|
158
|
+
smallScreenLimits?: NavigationBoardProps['smallScreenLimits'];
|
|
159
|
+
playButtonVisible?: NavigationBoardProps['playButtonVisible'];
|
|
160
|
+
flipButtonVisible?: NavigationBoardProps['flipButtonVisible'];
|
|
161
|
+
additionalButtons?: NavigationBarScheme;
|
|
135
162
|
}
|
|
136
163
|
|
|
137
164
|
|
|
@@ -229,7 +256,9 @@ export class NavigationBoard extends React.Component<NavigationBoardProps, Navig
|
|
|
229
256
|
}
|
|
230
257
|
|
|
231
258
|
private renderToolbar(game: Game, node: GameNode | Variation, squareSize: number, isPlaying: boolean) {
|
|
232
|
-
|
|
259
|
+
|
|
260
|
+
// WARNING: the logic here must be the same as the one in `computeBarScheme()`.
|
|
261
|
+
const buttons: NavigationBar = [];
|
|
233
262
|
|
|
234
263
|
// Core navigation buttons
|
|
235
264
|
const currentNodeId = node.id();
|
|
@@ -260,8 +289,10 @@ export class NavigationBoard extends React.Component<NavigationBoardProps, Navig
|
|
|
260
289
|
}
|
|
261
290
|
|
|
262
291
|
// Additional buttons.
|
|
263
|
-
|
|
264
|
-
|
|
292
|
+
if (!isNavigationBar(this.props.additionalButtons)) {
|
|
293
|
+
throw new IllegalArgument('NavigationBoard', 'additionalButtons');
|
|
294
|
+
}
|
|
295
|
+
for (const button of this.props.additionalButtons) {
|
|
265
296
|
buttons.push(button);
|
|
266
297
|
}
|
|
267
298
|
|
|
@@ -326,25 +357,81 @@ export class NavigationBoard extends React.Component<NavigationBoardProps, Navig
|
|
|
326
357
|
}
|
|
327
358
|
}
|
|
328
359
|
|
|
329
|
-
|
|
360
|
+
/**
|
|
361
|
+
* Return the size of the {@link NavigationBoard}, assuming it is built with the given attributes.
|
|
362
|
+
*/
|
|
363
|
+
static size(attr?: NavigationBoardSizeAttr): { width: number, height: number } {
|
|
364
|
+
const { squareSize, coordinateVisible, turnVisible, smallScreenLimits, playButtonVisible, flipButtonVisible, additionalButtons } =
|
|
365
|
+
sanitizePartialObject(attr, () => new IllegalArgument('NavigationBoard.size()', 'attr'));
|
|
366
|
+
|
|
367
|
+
// Sanitization
|
|
368
|
+
const actualPlayButtonVisible = sanitizeOptional(playButtonVisible, sanitizeBoolean);
|
|
369
|
+
const actualFlipButtonVisible = sanitizeOptional(flipButtonVisible, sanitizeBoolean);
|
|
370
|
+
if (additionalButtons !== undefined && !isNavigationBarScheme(additionalButtons)) {
|
|
371
|
+
throw new IllegalArgument('NavigationBoard.size()', 'additionalButtons');
|
|
372
|
+
}
|
|
330
373
|
|
|
374
|
+
const buttons = computeBarScheme(actualPlayButtonVisible, actualFlipButtonVisible, additionalButtons);
|
|
375
|
+
return Chessboard.size({
|
|
376
|
+
squareSize: squareSize,
|
|
377
|
+
coordinateVisible: coordinateVisible,
|
|
378
|
+
turnVisible: turnVisible,
|
|
379
|
+
smallScreenLimits: smallScreenLimits,
|
|
380
|
+
bottomComponent: ({ squareSize: sz }) => navigationToolbarSize(sz, buttons),
|
|
381
|
+
});
|
|
382
|
+
}
|
|
331
383
|
|
|
332
|
-
/**
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
384
|
+
/**
|
|
385
|
+
* Return the maximum square size that would allow the {@link NavigationBoard} to fit in a rectangle of size `width x height`.
|
|
386
|
+
*/
|
|
387
|
+
static adaptSquareSize(width: number, height: number, attr?: NavigationBoardAdaptSquareSizeAttr): number {
|
|
388
|
+
|
|
389
|
+
const { coordinateVisible, turnVisible, smallScreenLimits, playButtonVisible, flipButtonVisible, additionalButtons } =
|
|
390
|
+
sanitizePartialObject(attr, () => new IllegalArgument('NavigationBoard.adaptSquareSize()', 'attr'));
|
|
391
|
+
|
|
392
|
+
// Sanitization
|
|
393
|
+
const actualPlayButtonVisible = sanitizeOptional(playButtonVisible, sanitizeBoolean);
|
|
394
|
+
const actualFlipButtonVisible = sanitizeOptional(flipButtonVisible, sanitizeBoolean);
|
|
395
|
+
if (additionalButtons !== undefined && !isNavigationBarScheme(additionalButtons)) {
|
|
396
|
+
throw new IllegalArgument('NavigationBoard.adaptSquareSize()', 'additionalButtons');
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
const buttons = computeBarScheme(actualPlayButtonVisible, actualFlipButtonVisible, additionalButtons);
|
|
400
|
+
return Chessboard.adaptSquareSize(width, height, {
|
|
401
|
+
coordinateVisible: coordinateVisible,
|
|
402
|
+
turnVisible: turnVisible,
|
|
403
|
+
smallScreenLimits: smallScreenLimits,
|
|
404
|
+
bottomComponent: ({ squareSize: sz }) => navigationToolbarSize(sz, buttons),
|
|
342
405
|
});
|
|
343
406
|
}
|
|
344
|
-
|
|
345
|
-
|
|
407
|
+
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
function computeBarScheme(playButtonVisible: boolean | undefined, flipButtonVisible: boolean | undefined,
|
|
412
|
+
additionalButtons: NavigationBarScheme | undefined): NavigationBarScheme {
|
|
413
|
+
|
|
414
|
+
// WARNING: the logic here must be the same as the one in `renderToolbar()`.
|
|
415
|
+
const buttons: NavigationBarScheme = [];
|
|
416
|
+
|
|
417
|
+
buttons.push('button'); // go-first
|
|
418
|
+
buttons.push('button'); // go-previous
|
|
419
|
+
if (playButtonVisible ?? NavigationBoard.defaultProps.playButtonVisible) {
|
|
420
|
+
buttons.push('button');
|
|
421
|
+
}
|
|
422
|
+
buttons.push('button'); // go-next
|
|
423
|
+
buttons.push('button'); // go-last
|
|
424
|
+
buttons.push('spacer');
|
|
425
|
+
if (flipButtonVisible ?? NavigationBoard.defaultProps.flipButtonVisible) {
|
|
426
|
+
buttons.push('button');
|
|
346
427
|
}
|
|
347
|
-
|
|
348
|
-
|
|
428
|
+
buttons.push('spacer');
|
|
429
|
+
|
|
430
|
+
if (additionalButtons !== undefined) {
|
|
431
|
+
for (const button of additionalButtons) {
|
|
432
|
+
buttons.push(button);
|
|
433
|
+
}
|
|
349
434
|
}
|
|
435
|
+
|
|
436
|
+
return buttons;
|
|
350
437
|
}
|
|
@@ -55,7 +55,13 @@ export type NavigationButton = {
|
|
|
55
55
|
/**
|
|
56
56
|
* List of additional buttons to be added to the toolbar of {@link NavigationBoard}, together with optional spacers in-between.
|
|
57
57
|
*/
|
|
58
|
-
export type
|
|
58
|
+
export type NavigationBar = (NavigationButton | 'spacer')[];
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Scheme of additional button list to be added to the toolbar of {@link NavigationBoard}, together with optional spacers in-between.
|
|
63
|
+
*/
|
|
64
|
+
export type NavigationBarScheme = ('button' | 'spacer')[];
|
|
59
65
|
|
|
60
66
|
|
|
61
67
|
/**
|
|
@@ -70,3 +76,39 @@ export function isNavigationButton(button: unknown): button is NavigationButton
|
|
|
70
76
|
((button as NavigationButton).enabled === undefined || typeof (button as NavigationButton).enabled === 'boolean') &&
|
|
71
77
|
((button as NavigationButton).onClick === undefined || typeof (button as NavigationButton).onClick === 'function');
|
|
72
78
|
}
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Whether the given object is a {@link NavigationBar} or not.
|
|
83
|
+
*/
|
|
84
|
+
export function isNavigationBar(buttons: unknown): buttons is NavigationBar {
|
|
85
|
+
if (Array.isArray(buttons)) {
|
|
86
|
+
for (const button of buttons) {
|
|
87
|
+
if (!(isNavigationButton(button) || button === 'spacer')) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Whether the given object is a {@link NavigationBarScheme} or not.
|
|
101
|
+
*/
|
|
102
|
+
export function isNavigationBarScheme(buttons: unknown): buttons is NavigationBarScheme {
|
|
103
|
+
if (Array.isArray(buttons)) {
|
|
104
|
+
for (const button of buttons) {
|
|
105
|
+
if (!(button === 'button' || button === 'spacer')) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
|
|
25
25
|
import * as React from 'react';
|
|
26
26
|
|
|
27
|
-
import { NavigationButton,
|
|
27
|
+
import { NavigationButton, NavigationBar, NavigationBarScheme } from './NavigationButton';
|
|
28
28
|
|
|
29
29
|
import './NavigationToolbar.css';
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
interface NavigationToolbarProps {
|
|
33
33
|
squareSize: number;
|
|
34
|
-
buttons:
|
|
34
|
+
buttons: NavigationBar;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
|
|
@@ -71,7 +71,7 @@ export function NavigationToolbar({ squareSize, buttons }: NavigationToolbarProp
|
|
|
71
71
|
/>);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
return <div className="kokopu-navigationToolbar" style={{ marginTop:
|
|
74
|
+
return <div className="kokopu-navigationToolbar" style={{ marginTop: computeMarginTop(squareSize) }}>{buttonNodes}</div>;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
|
|
@@ -101,6 +101,41 @@ function NavigationButtonImpl({ size, spaceOnLeft, spaceOnRight, iconPath, toolt
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Size of the navigation toolbar (taking into account the margin between the toolbar and the chessboard), assuming the given square size.
|
|
106
|
+
*/
|
|
107
|
+
export function navigationToolbarSize(squareSize: number, buttons: NavigationBarScheme): { width: number, height: number } {
|
|
108
|
+
|
|
109
|
+
const buttonSize = computeButtonSize(squareSize);
|
|
110
|
+
const spacerSize = computeSpacerSize(squareSize);
|
|
111
|
+
let width = 0;
|
|
112
|
+
|
|
113
|
+
let atLeastOneButtonEncountered = false;
|
|
114
|
+
for (let i = 0; i < buttons.length; ++i) {
|
|
115
|
+
|
|
116
|
+
// Skip the spacers.
|
|
117
|
+
if (buttons[i] === 'spacer') {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Enqueue a spacer if necessary.
|
|
122
|
+
// Remark: consecutive spacers are collapsed into a single one for rendering, and spacers at the begin and end of the button list are not rendered.
|
|
123
|
+
if (atLeastOneButtonEncountered && buttons[i - 1] === 'spacer') {
|
|
124
|
+
width += spacerSize;
|
|
125
|
+
}
|
|
126
|
+
atLeastOneButtonEncountered = true;
|
|
127
|
+
|
|
128
|
+
// Enqueue the button node.
|
|
129
|
+
width += buttonSize;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return {
|
|
133
|
+
width: width,
|
|
134
|
+
height: buttonSize + computeMarginTop(squareSize),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
|
|
104
139
|
/**
|
|
105
140
|
* Return the height/width of the buttons assuming the given square size.
|
|
106
141
|
*/
|
|
@@ -115,3 +150,11 @@ function computeButtonSize(squareSize: number) {
|
|
|
115
150
|
function computeSpacerSize(squareSize: number) {
|
|
116
151
|
return Math.round((squareSize * 2 + 116) / 14);
|
|
117
152
|
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Return the height of the margin between the toolbar and the chessboard.
|
|
157
|
+
*/
|
|
158
|
+
function computeMarginTop(squareSize: number) {
|
|
159
|
+
return Math.round((squareSize * 2 + 116) / 28);
|
|
160
|
+
}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* -------------------------------------------------------------------------- */
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
const { exception, Chessboard } = require('../build/test_headless/index');
|
|
25
|
+
const { exception, Chessboard, NavigationBoard } = require('../build/test_headless/index');
|
|
26
26
|
const test = require('unit.js');
|
|
27
27
|
|
|
28
28
|
|
|
@@ -45,6 +45,22 @@ describe('Chessboard.size()', () => {
|
|
|
45
45
|
itChessboardSize('Default without turn', 330, 333, { turnVisible: false });
|
|
46
46
|
itChessboardSize('Default board only', 320, 320, { coordinateVisible: false, turnVisible: false });
|
|
47
47
|
|
|
48
|
+
function topComponent({ squareSize, coordinateVisible, turnVisible }) {
|
|
49
|
+
const width = squareSize * 20;
|
|
50
|
+
const height = (coordinateVisible ? 11 : 0) + (turnVisible ? 107 : 0);
|
|
51
|
+
return { width: width, height: height };
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function bottomComponent({ squareSize, coordinateVisible, turnVisible }) {
|
|
55
|
+
const width = squareSize * 19;
|
|
56
|
+
const height = (coordinateVisible ? 3 : 0) + (turnVisible ? 157 : 0);
|
|
57
|
+
return { width: width, height: height };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
itChessboardSize('With top component', 800, 451, { topComponent: topComponent });
|
|
61
|
+
itChessboardSize('With bottom component', 760, 493, { bottomComponent: bottomComponent });
|
|
62
|
+
itChessboardSize('With top & bottom components', 800, 611, { topComponent: topComponent, bottomComponent: bottomComponent });
|
|
63
|
+
|
|
48
64
|
itInvalidArgument('Attribute not an object', () => Chessboard.size('not-an-object'));
|
|
49
65
|
itInvalidArgument('Square size not an integer', () => Chessboard.size({ squareSize: 'not-an-integer' }));
|
|
50
66
|
itInvalidArgument('Small-screen limits not an array', () => Chessboard.size({ smallScreenLimits: 'not-an-array' }));
|
|
@@ -54,6 +70,38 @@ describe('Chessboard.size()', () => {
|
|
|
54
70
|
});
|
|
55
71
|
|
|
56
72
|
|
|
73
|
+
describe('NavigationBoard.size()', () => {
|
|
74
|
+
|
|
75
|
+
function itNavigationBoardSize(label, expectedWidth, expectedHeight, attr) {
|
|
76
|
+
it(label, () => {
|
|
77
|
+
test.value(NavigationBoard.size(attr)).is({ width: expectedWidth, height: expectedHeight });
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
itNavigationBoardSize('Default', 374, 368);
|
|
82
|
+
itNavigationBoardSize('Minimal square size with all default buttons', 130, 121, {
|
|
83
|
+
squareSize: 12,
|
|
84
|
+
coordinateVisible: false,
|
|
85
|
+
turnVisible: false,
|
|
86
|
+
playButtonVisible: true,
|
|
87
|
+
flipButtonVisible: true,
|
|
88
|
+
});
|
|
89
|
+
itNavigationBoardSize('With additional buttons', 198, 188, {
|
|
90
|
+
squareSize: 20,
|
|
91
|
+
coordinateVisible: false,
|
|
92
|
+
turnVisible: false,
|
|
93
|
+
playButtonVisible: true,
|
|
94
|
+
flipButtonVisible: false,
|
|
95
|
+
additionalButtons: [ 'button', 'button', 'spacer', 'spacer', 'button' ],
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
itInvalidArgument('Attribute not an object', () => NavigationBoard.size('not-an-object'));
|
|
99
|
+
itInvalidArgument('Square size not an integer', () => NavigationBoard.size({ squareSize: 'not-an-integer' }));
|
|
100
|
+
itInvalidArgument('Additional buttons not an array', () => NavigationBoard.size({ additionalButtons: 'not-an-array' }));
|
|
101
|
+
itInvalidArgument('Additional buttons with invalid items', () => NavigationBoard.size({ additionalButtons: [ 'not-a-button-nor-a-spacer' ] }));
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
|
|
57
105
|
function testAdaptSquareSize(expectedSquareSize, width, height, coordinateVisible, turnVisible, smallScreenLimits) {
|
|
58
106
|
|
|
59
107
|
test.value(Chessboard.adaptSquareSize(width, height, {
|
|
@@ -119,6 +167,34 @@ describe('Adapt square-size', () => {
|
|
|
119
167
|
});
|
|
120
168
|
|
|
121
169
|
|
|
170
|
+
describe('Adapt square-size (NavigationBoard)', () => {
|
|
171
|
+
|
|
172
|
+
function itAdaptSquareSize(label, width, height, attributes, expectedSquareSize) {
|
|
173
|
+
it(label, () => {
|
|
174
|
+
test.value(NavigationBoard.adaptSquareSize(width, height, attributes)).is(expectedSquareSize);
|
|
175
|
+
|
|
176
|
+
const actualSizeIncremented = NavigationBoard.size({
|
|
177
|
+
...attributes,
|
|
178
|
+
squareSize: expectedSquareSize + 1,
|
|
179
|
+
});
|
|
180
|
+
test.value(actualSizeIncremented.width > width || actualSizeIncremented.height > height).isTrue();
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
itAdaptSquareSize('Size 300x300 (default)', 300, 300, {}, 32);
|
|
185
|
+
itAdaptSquareSize('Size 136x200 (with play button)', 136, 200, { coordinateVisible: false, turnVisible: false, playButtonVisible: true }, 15);
|
|
186
|
+
itAdaptSquareSize('Size 136x200 (with minimal buttons)', 136, 200, { coordinateVisible: false, turnVisible: false, flipButtonVisible: false }, 17);
|
|
187
|
+
|
|
188
|
+
itInvalidArgument('Width <null>', () => NavigationBoard.adaptSquareSize(null, 400));
|
|
189
|
+
itInvalidArgument('Width not-a-number', () => NavigationBoard.adaptSquareSize('500', 400));
|
|
190
|
+
itInvalidArgument('Height <undefined>', () => NavigationBoard.adaptSquareSize(500, undefined));
|
|
191
|
+
itInvalidArgument('Height object', () => NavigationBoard.adaptSquareSize(500, {}));
|
|
192
|
+
itInvalidArgument('Attribute not-an-object', () => NavigationBoard.adaptSquareSize(500, 400, 'not-an-object'));
|
|
193
|
+
itInvalidArgument('Additional buttons not an array', () => NavigationBoard.adaptSquareSize(500, 400, { additionalButtons: 'not-an-array' }));
|
|
194
|
+
itInvalidArgument('Small-screen limits not-an-array', () => NavigationBoard.adaptSquareSize(500, 400, { smallScreenLimits: 'not-an-array' }));
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
|
|
122
198
|
describe('Adapt square-size with small-screen limits', () => {
|
|
123
199
|
|
|
124
200
|
const limits = [
|
|
@@ -29,7 +29,7 @@ import { NavigationBoard } from '../../../dist/lib/index';
|
|
|
29
29
|
import pgn from '../common/games.pgn';
|
|
30
30
|
|
|
31
31
|
testApp([ /* eslint-disable react/jsx-key */
|
|
32
|
-
<NavigationBoard game={pgn} additionalButtons={{ iconPath: 'M 11 11 H 21 V 21 H 11 Z' }} />,
|
|
32
|
+
<NavigationBoard game={pgn} additionalButtons={[ { iconPath: 'M 11 11 H 21 V 21 H 11 Z' } ]} />,
|
|
33
33
|
<NavigationBoard game={pgn} additionalButtons={[
|
|
34
34
|
{ iconPath: 'M 11 11 H 21 V 21 H 11 Z', tooltip: 'Button 0', enabled: true },
|
|
35
35
|
{ iconPath: 'M 9 16 L 16 9 L 23 16 L 16 23 Z', tooltip: 'Button A', onClick: () => setSandbox('Button A clicked') },
|