UNPKG

@qn-pandora/pandora-visualization

Version:

Pandora 通用可视化库

143 lines (142 loc) 3.49 kB
import * as d3 from 'd3'; import { ILine } from './LineChartCore'; /** * 图表布局设置,支持数字或百分数 (50 | '2%') */ export interface IChartMargin { top: string | number; left: string | number; right: string | number; bottom: string | number; } export interface IItem { /** * 内部元素描述信息 */ name: string; /** * 对应节点值 */ value: number; /** * 对应节点颜色 */ color: string; /** * 对应节点随时间变化数据 */ line: ILine[]; } export interface IPosition { x: number; y: number; } export interface IData { name: string; data: IItem[]; } export interface IHoneycombChartOption { /** * 图表四周空白区域大小 */ margin: IChartMargin; /** * 蜂窝配置 */ honeycomb: { /** * 最大半径 */ maxRadius: number; /** * 最小半径 */ minRadius: number; /** * 蜂窝间距占半径比例,小数表示 * 0.06 */ distance: number; }; groups: { /** * 每个组每一行蜂窝数目 */ honeycombNum: number; /** * 图表每一行图表组数 */ lineGroupNum: number; /** * 标题高度 */ titleHeight: number; /** * 是否显示title */ showTitle: boolean; }; series: IData[]; } export declare class HoneycombChart { _dom: HTMLElement; _width: number; _height: number; _svg: d3.Selection<SVGSVGElement, unknown, null, undefined> | null; _bodyG: d3.Selection<SVGGElement, unknown, null, undefined> | null; addTooltip?: (position: IPosition, data: IItem) => void; removeTooltip?: () => void; onMouseDown?: (item: IItem) => void; _margin: IChartMargin; honeycomb: { maxRadius: number; minRadius: number; distance: number; }; group: { honeycombNum: number; lineGroupNum: number; titleHeight: number; showTitle: boolean; }; series: IData[]; constructor(dom: HTMLElement, addTooltip?: (position: IPosition, data: IItem) => void, removeTooltip?: () => void, onMouseDown?: (item: IItem) => void); formatPrecent: (value: number | string, base: number) => number; margin: () => { top: number; left: number; right: number; bottom: number; }; quadrantHeight(): number; quadrantWidth(): number; realTitleHeight(): number; renderSvg: () => void; partX: () => number; getBodyXY: () => { x: number; y: number; }; getRealSvgHeight: () => number; renderBody: () => void; groups: () => { lineHeight: number; columnWidth: number; lines: number; columns: number; }; pointLayout: () => { cols: number; rows: number; }; radius: () => number; lineHeight: () => number[]; renderGroup: () => void; renderHoneycomb: (groupG: d3.Selection<SVGGElement, IData, SVGGElement, unknown>) => void; mousedown: (el: SVGPathElement, data: IItem) => void; mouseup: (el: SVGPathElement) => void; mousemove: (el: SVGPathElement, data: IItem) => void; mouseout: (el: SVGPathElement) => void; render(option: IHoneycombChartOption): void; dispose(): void; }