@antv/x6
Version:
JavaScript diagramming library that uses SVG and HTML for rendering
54 lines (53 loc) • 1.9 kB
TypeScript
import type { NumberExt, Size } from '../../common';
import type { RectangleLike } from '../../geometry';
import type { Graph } from '../../graph';
export interface ExportEventArgs {
'before:export': ExportToSVGOptions;
'after:export': ExportToSVGOptions;
}
export type ExportToSVGCallback = (dataUri: string) => any;
export interface ExportToSVGOptions {
/**
* By default, the resulting SVG has set width and height to `100%`.
* If you'd like to have the dimensions to be set to the actual content
* width and height, set `preserveDimensions` to `true`. An object with
* `width` and `height` properties can be also used here if you need to
* define the export size explicitely.
*/
preserveDimensions?: boolean | Size;
viewBox?: RectangleLike;
/**
* When set to `true` all the styles from external stylesheets are copied
* to the resulting SVG export. Note this requires a lot of computations
* and it might significantly affect the export time.
*/
copyStyles?: boolean;
stylesheet?: string;
/**
* Converts all contained images into Data URI format.
*/
serializeImages?: boolean;
/**
* A function called before the XML serialization. It may be used to
* modify the exported SVG before it is converted to a string. The
* function can also return a new SVGDocument.
*/
beforeSerialize?: (this: Graph, svg: SVGSVGElement) => any;
}
export interface ExportToImageOptions extends ExportToSVGOptions {
/**
* The width of the image in pixels.
*/
width?: number;
/**
* The height of the image in pixels.
*/
height?: number;
ratio?: number;
backgroundColor?: string;
padding?: NumberExt.SideOptions;
quality?: number;
}
export interface ExportToDataURLOptions extends ExportToImageOptions {
type: 'image/png' | 'image/jpeg';
}