shogiground
Version:
lishogi.org shogi ui
135 lines • 4.38 kB
TypeScript
import type { HeadlessState } from './state.js';
import type { DrawShape, SquareHighlight } from './draw.js';
import type * as sg from './types.js';
export interface Config {
sfen?: {
board?: sg.BoardSfen;
hands?: sg.HandsSfen;
};
orientation?: sg.Color;
turnColor?: sg.Color;
activeColor?: sg.Color | 'both';
checks?: sg.Key[] | sg.Color | boolean;
lastDests?: sg.Key[];
lastPiece?: sg.Piece;
selected?: sg.Key;
selectedPiece?: sg.Piece;
hovered?: sg.Key;
viewOnly?: boolean;
squareRatio?: sg.NumberPair;
disableContextMenu?: boolean;
blockTouchScroll?: boolean;
scaleDownPieces?: boolean;
coordinates?: {
enabled?: boolean;
files?: sg.Notation;
ranks?: sg.Notation;
};
highlight?: {
lastDests?: boolean;
check?: boolean;
checkRoles?: sg.RoleString[];
hovered?: boolean;
};
animation?: {
enabled?: boolean;
hands?: boolean;
duration?: number;
};
hands?: {
inlined?: boolean;
roles?: sg.RoleString[];
};
movable?: {
free?: boolean;
dests?: sg.MoveDests;
showDests?: boolean;
events?: {
after?: (orig: sg.Key, dest: sg.Key, prom: boolean, metadata: sg.MoveMetadata) => void;
};
};
droppable?: {
free?: boolean;
dests?: sg.DropDests;
showDests?: boolean;
spare?: boolean;
events?: {
after?: (piece: sg.Piece, key: sg.Key, prom: boolean, metadata: sg.MoveMetadata) => void;
};
};
premovable?: {
enabled?: boolean;
showDests?: boolean;
dests?: sg.Key[];
generate?: (key: sg.Key, pieces: sg.Pieces) => sg.Key[];
events?: {
set?: (orig: sg.Key, dest: sg.Key, prom: boolean) => void;
unset?: () => void;
};
};
predroppable?: {
enabled?: boolean;
showDests?: boolean;
dests?: sg.Key[];
generate?: (piece: sg.Piece, pieces: sg.Pieces) => sg.Key[];
events?: {
set?: (piece: sg.Piece, key: sg.Key, prom: boolean) => void;
unset?: () => void;
};
};
draggable?: {
enabled?: boolean;
distance?: number;
autoDistance?: boolean;
showGhost?: boolean;
showTouchSquareOverlay?: boolean;
deleteOnDropOff?: boolean;
addToHandOnDropOff?: boolean;
};
selectable?: {
enabled?: boolean;
forceSpares?: boolean;
deleteOnTouch?: boolean;
addSparesToHand?: boolean;
};
events?: {
change?: () => void;
move?: (orig: sg.Key, dest: sg.Key, prom: boolean, capturedPiece?: sg.Piece) => void;
drop?: (piece: sg.Piece, key: sg.Key, prom: boolean) => void;
select?: (key: sg.Key) => void;
unselect?: (key: sg.Key) => void;
pieceSelect?: (piece: sg.Piece) => void;
pieceUnselect?: (piece: sg.Piece) => void;
insert?: (boardElements?: sg.BoardElements, handElements?: sg.HandElements) => void;
};
drawable?: {
enabled?: boolean;
visible?: boolean;
forced?: boolean;
eraseOnClick?: boolean;
shapes?: DrawShape[];
autoShapes?: DrawShape[];
squares?: SquareHighlight[];
onChange?: (shapes: DrawShape[]) => void;
};
forsyth?: {
toForsyth?: (role: sg.RoleString) => string | undefined;
fromForsyth?: (str: string) => sg.RoleString | undefined;
};
promotion?: {
promotesTo?: (role: sg.RoleString) => sg.RoleString | undefined;
unpromotesTo?: (role: sg.RoleString) => sg.RoleString | undefined;
movePromotionDialog?: (orig: sg.Key, dest: sg.Key) => boolean;
forceMovePromotion?: (orig: sg.Key, dest: sg.Key) => boolean;
dropPromotionDialog?: (piece: sg.Piece, key: sg.Key) => boolean;
forceDropPromotion?: (piece: sg.Piece, key: sg.Key) => boolean;
events?: {
initiated?: () => void;
after?: (piece: sg.Piece) => void;
cancel?: () => void;
};
};
}
export declare function applyAnimation(state: HeadlessState, config: Config): void;
export declare function configure(state: HeadlessState, config: Config): void;
//# sourceMappingURL=config.d.ts.map