shogiground
Version:
lishogi.org shogi ui
147 lines • 4.49 kB
TypeScript
import type { AnimCurrent } from './anim.js';
import type { DragCurrent } from './drag.js';
import type { Drawable } from './draw.js';
import type * as sg from './types.js';
export interface HeadlessState {
pieces: sg.Pieces;
orientation: sg.Color;
dimensions: sg.Dimensions;
turnColor: sg.Color;
activeColor?: sg.Color | 'both';
checks?: sg.Key[];
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;
current?: AnimCurrent;
};
hands: {
inlined: boolean;
handMap: sg.Hands;
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[];
current?: {
orig: sg.Key;
dest: sg.Key;
prom: boolean;
};
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[];
current?: {
piece: sg.Piece;
key: sg.Key;
prom: boolean;
};
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;
current?: DragCurrent;
};
selectable: {
enabled: boolean;
forceSpares: boolean;
deleteOnTouch: boolean;
addSparesToHand: boolean;
};
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;
current?: {
piece: sg.Piece;
promotedPiece: sg.Piece;
key: sg.Key;
dragged: boolean;
};
events: {
initiated?: () => void;
after?: (piece: sg.Piece) => void;
cancel?: () => void;
};
prevPromotionHash: string;
};
forsyth: {
toForsyth?: (role: sg.RoleString) => string | undefined;
fromForsyth?: (str: string) => sg.RoleString | undefined;
};
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: Drawable;
}
export interface State extends HeadlessState {
dom: sg.Dom;
}
export declare function defaults(): HeadlessState;
//# sourceMappingURL=state.d.ts.map