// Type definitions for plotly.js 1.28 // Project: https://plot.ly/javascript/ // Definitions by: Chris Gervang // Martin Duparc // Frederik Aalund // taoqf // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 /// export as namespace Plotly; export interface StaticPlots { resize(root: Root): void; } export const Plots: StaticPlots; export interface Point { x: number; y: number; z: number; } export interface PlotlyHTMLElement extends HTMLElement { on(event: 'plotly_click' | 'plotly_hover' | 'plotly_unhover', callback: (data: { points: Array<{ pointNumber: number; curveNumber: number; data: ScatterData; }>; }) => void): void; on(event: 'plotly_selecting' | 'plotly_selected', callback: (data: { points: Array<{ x: number; y: number; pointNumber: number; }>; }) => void): void; on(event: 'plotly_restyle', callback: (data: [ any, // update object -- attribute updated: new value number[] // array of traces updated ]) => void): void; on(event: 'plotly_relayout', callback: (data: { xaxis: { range: [number, number]; autorange: boolean; }; yaxis: { range: [number, number]; autorange: boolean; }; scene: { center: Point; eye: Point; up: Point; }; }) => void): void; // on(event: 'plotly_event', callback: (data: any) => void): void; on(event: 'plotly_afterplot' | 'plotly_autosize' | 'plotly_deselect' | 'plotly_doubleclick' | 'plotly_redraw' | 'plotly_animated', callback: () => void): void; } export interface ToImgopts { format: 'jpeg' | 'png' | 'webp' | 'svg'; width: number; height: number; } export interface DownloadImgopts { format: 'jpeg' | 'png' | 'webp' | 'svg'; width: number; height: number; filename: string; } export type Root = string | HTMLElement; export function newPlot(root: Root, data: Data[], layout?: Partial, config?: Partial): Promise; export function plot(root: Root, data: Data[], layout?: Partial, config?: Partial): Promise; export function relayout(root: Root, layout: Partial): Promise; export function redraw(root: Root): Promise; export function purge(root: Root): void; export const d3: any; export function restyle(root: Root, aobj: Data, traces?: number[] | number): Promise; export function update(root: Root, traceUpdate: Data, layoutUpdate: Partial, traces?: number[] | number): Promise; export function addTraces(root: Root, traces: Data | Data[], newIndices?: number[] | number): Promise; export function deleteTraces(root: Root, indices: number[] | number): Promise; export function moveTraces(root: Root, currentIndices: number[] | number, newIndices?: number[] | number): Promise; export function extendTraces(root: Root, update: Data | Data[], indices: number | number[]): Promise; export function prependTraces(root: Root, update: Data | Data[], indices: number | number[]): Promise; export function toImage(root: Root, opts: ToImgopts): Promise; export function downloadImage(root: Root, opts: DownloadImgopts): Promise; // Layout export interface Layout { title: string; titlefont: Partial; autosize: boolean; showlegend: boolean; paper_bgcolor: Color; plot_bgcolor: Color; separators: string; hidesources: boolean; xaxis: Partial; yaxis: Partial; yaxis2: Partial; yaxis3: Partial; yaxis4: Partial; yaxis5: Partial; yaxis6: Partial; yaxis7: Partial; yaxis8: Partial; yaxis9: Partial; margin: Partial; height: number; width: number; hovermode: 'closest' | 'x' | 'y' | false; hoverlabel: Partial