UNPKG

goban

Version:

[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

252 lines (251 loc) 9.62 kB
import { JGOF, JGOFNumericPlayerColor } from "../engine/formats/JGOF"; import { AdHocFormat } from "../engine/formats/AdHocFormat"; import { GobanConfig } from "../GobanBase"; import { GobanEngine } from "../engine"; import { MoveTree } from "../engine/MoveTree"; import { GobanTheme } from "./themes"; import { MoveTreePenMarks } from "../engine/MoveTree"; import { MessageID } from "../engine/messages"; import { Goban, GobanMetrics, GobanSelectedThemes } from "./Goban"; import { ColoredCircle } from "./InteractiveBase"; export interface SVGRendererGobanConfig extends GobanConfig { board_div?: HTMLElement; title_div?: HTMLElement; move_tree_container?: HTMLElement; last_move_opacity?: number; } interface MoveTreeViewPortInterface { offset_x: number; offset_y: number; minx: number; miny: number; maxx: number; maxy: number; } interface GobanSVGInterface { engine: GobanEngine; move_tree_container?: HTMLElement; clearAnalysisDrawing(): void; drawPenMarks(pen_marks: MoveTreePenMarks): void; enablePen(): void; disablePen(): void; setByoYomiLabel(label: string): void; setLastMoveOpacity(opacity: number): void; move_tree_bindEvents(svg: SVGElement): void; move_tree_redraw(no_warp?: boolean): void; setMoveTreeContainer(container: HTMLElement): void; showMessage(message_id_or_error: MessageID, parameters?: { [key: string]: any; }, timeout?: number): void; clearMessage(): void; drawSquare(i: number, j: number): void; destroy(): void; } export declare class SVGRenderer extends Goban implements GobanSVGInterface { engine: GobanEngine; private svg; private svg_defs; private __set_board_height; private __set_board_width; private ready_to_draw; private message_div?; private message_td?; private message_text?; private message_timeout?; private handleShiftKey; private lines_layer?; private coordinate_labels_layer?; private grid; grid_layer?: SVGGraphicsElement; private cells; shadow_grid: Array<Array<SVGElement | undefined>>; shadow_layer?: SVGGraphicsElement; private pen_layer?; private last_move_opacity; move_tree_container?: HTMLElement; private move_tree_inner_container?; private move_tree_svg?; private move_tree_svg_defs?; private autoplaying_puzzle_move; private byoyomi_label; private current_pen_mark?; private labeling_mode?; private last_label_position; private last_pen_position?; metrics: GobanMetrics; private drawing_enabled; protected title_div?: HTMLElement; event_layer?: HTMLDivElement; private themes; theme_black: GobanTheme; private theme_black_stones; theme_black_text_color: string; private theme_blank_text_color; private theme_board; theme_faded_line_color: string; theme_faded_star_color: string; private theme_line_color; private theme_star_color; private theme_stone_radius; theme_white: GobanTheme; private theme_white_stones; theme_white_text_color: string; constructor(config: SVGRendererGobanConfig, preloaded_data?: AdHocFormat | JGOF); setLastMoveOpacity(opacity: number): void; enablePen(): void; disablePen(): void; cell(i: number, j: number): GCell; clearCells(): void; destroy(): void; private detachPenLayer; private attachPenLayer; private bindPointerBindings; clearAnalysisDrawing(): void; private xy2pen; private pen2xy; private setPenStyle; private onPenStart; private onPenMove; drawPenMarks(pen_marks: MoveTreePenMarks): void; private onTap; private onMouseMove; private onMouseOut; protected enableDrawing(): void; protected disableDrawing(): void; setByoYomiLabel(label: string): void; drawSquare(i: number, j: number): void; private cellDraw; private __drawSquare; private drawingHash; private drawLines; private drawCoordinateLabels; protected computeThemeStoneRadius(): number; redraw(force_clear?: boolean): void; showMessage(message_id_or_error: MessageID, parameters?: { [key: string]: any; }, timeout?: number): void; clearMessage(): void; protected generateSvgDefs(radius: number): SVGDefsElement; protected setTheme(themes: GobanSelectedThemes, dont_redraw: boolean): void; private onLabelingStart; private onLabelingMove; protected setTitle(title: string): void; protected watchSelectedThemes(cb: (themes: GobanSelectedThemes) => void): { remove: () => any; }; setMoveTreeContainer(container: HTMLElement): void; move_tree_redraw(no_warp?: boolean): void; move_tree_bindEvents(svg: SVGElement): void; move_tree_drawStone(svg: SVGElement, node: MoveTree, active_path_number: number, viewport: MoveTreeViewPortInterface): void; move_tree_drawRecursive(svg: SVGElement, node: MoveTree, active_path_number: number, viewport: MoveTreeViewPortInterface): void; move_tree_hilightNode(svg: SVGElement, node: MoveTree, color: string, viewport: MoveTreeViewPortInterface): void; move_tree_drawPath(svg: SVGElement, node: MoveTree, viewport: MoveTreeViewPortInterface): void; move_tree_drawIsoBranchTo(svg: SVGElement, from_node: MoveTree, to_node: MoveTree, viewport: MoveTreeViewPortInterface): void; move_tree_recursiveDrawPath(svg: SVGElement, node: MoveTree, viewport: MoveTreeViewPortInterface): void; } declare class GCell { renderer: SVGRenderer; i: number; j: number; _g?: SVGGraphicsElement; _transform: string; constructor(renderer: SVGRenderer, i: number, j: number); get g(): SVGGraphicsElement; set transform(transform: string); get transform(): string; private last_faded_lines?; private last_faded_star_point?; drawFadedIntersectionLines(draw_star_point: boolean, star_radius: number): void; clearFadedLines(): void; private last_heatmap_value?; private last_heatmap_rect?; heatmap(value: number): void; clearHeatmap(): void; private last_highlight_color?; private last_highlight_rect?; highlight(color: string): void; clearHighlight(): void; private last_circle?; private last_circle_fill?; private last_circle_radius?; private last_circle_stroke?; private last_circle_stroke_width?; circle(circle: ColoredCircle): void; clearCircle(): void; private last_stone?; private last_stone_color?; private last_stone_transparent?; private last_stone_stone?; private last_stone_radius?; private last_stone_alpha_value?; private last_stone_shadow?; stone(color: JGOFNumericPlayerColor, transparent: boolean, stone: string, radius: number, stone_alpha_value: number): void; clearStone(): void; private last_blue_move?; private last_blue_move_color?; private last_blue_move_border_width?; blueMove(color: string, border_width: number): void; clearBlueMove(): void; private last_removal_cross?; private last_removal_cross_fill?; private last_removal_cross_radius?; private last_removal_cross_opacity?; removalCross(fill: string, radius: number, opacity: number): void; clearRemovalCross(): void; private last_score?; private last_score_fill?; private last_score_stroke?; private last_score_opacity?; score(fill: string, stroke: string, opacity: number): void; clearScore(): void; private last_letter?; private last_letter_letter?; private last_letter_color?; private last_letter_font_size?; private last_letter_opacity?; private last_letter_room_for_subscript?; letter(letter: string, color: string, font_size: number, opacity: number, room_for_subscript: boolean): void; clearLetter(): void; private last_subscript?; private last_subscript_subscript?; private last_subscript_color?; private last_subscript_font_size?; private last_subscript_opacity?; private last_subscript_room_for_letter?; private last_subscript_room_for_sub_triangle?; subscript(subscript: string, color: string, font_size: number, opacity: number, room_for_letter: boolean, room_for_sub_triangle: boolean): void; clearSubscript(): void; private last_circle_symbol?; private last_circle_symbol_color?; private last_circle_symbol_opacity?; circleSymbol(color: string, opacity: number): void; clearCircleSymbol(): void; private last_triangle_symbol?; private last_triangle_symbol_color?; private last_triangle_symbol_opacity?; private last_triangle_symbol_as_subscript?; triangleSymbol(color: string, opacity: number, as_subscript: boolean): void; clearTriangleSymbol(): void; private last_cross_symbol?; private last_cross_symbol_color?; private last_cross_symbol_opacity?; crossSymbol(color: string, opacity: number): void; clearCrossSymbol(): void; private last_square_symbol?; private last_square_symbol_color?; private last_square_symbol_opacity?; squareSymbol(color: string, opacity: number): void; clearSquareSymbol(): void; private last_last_move?; private last_last_move_symbol?; private last_last_move_color?; private last_last_move_opacity?; lastMove(symbol: "+" | "?" | "o", color: string, opacity: number): void; clearLastMove(): void; private last_score_estimate?; private last_score_estimate_color?; private last_score_estimate_estimate?; scoreEstimate(color: string, estimate: number): void; clearScoreEstimate(): void; } export {};