UNPKG

diagram-js

Version:

A toolbox for displaying and modifying diagrams on the web

58 lines (57 loc) 1.4 kB
import type { Element } from '../../model/Types'; export type Outline = SVGSVGElement | SVGCircleElement | SVGRectElement; /** * An interface to be implemented by an outline provider. */ export default interface OutlineProvider { /** * Returns outline shape for given element. * * @example * * ```javascript * getOutline(element) { * if (element.type === 'Foo') { * const outline = svgCreate('circle'); * * svgAttr(outline, { * cx: element.width / 2, * cy: element.height / 2, * r: 23 * }); * * return outline; * } * } * ``` * * @param element */ getOutline: (element: Element) => Outline; /** * Updates outline shape based on element's current size. Returns true if * update was handled by provider. * * @example * * ```javascript * updateOutline(element, outline) { * if (element.type === 'Foo') { * svgAttr(outline, { * cx: element.width / 2, * cy: element.height / 2, * r: 23 * }); * } else if (element.type === 'Bar') { * return true; * } * * return false; * } * ``` * * @param element * @param outline */ updateOutline: (element: Element, outline: Outline) => boolean; }