UNPKG

@antv/x6

Version:

JavaScript diagramming library that uses SVG and HTML for rendering

46 lines (39 loc) 975 B
import { Path } from '../../geometry' import type { SimpleAttrs } from '../attr' import type { MarkerFactory } from './index' import { normalize } from './util' export interface CircleMarkerOptions extends SimpleAttrs { r?: number } export interface CirclePlusMarkerOptions extends CircleMarkerOptions {} export const circle: MarkerFactory<CircleMarkerOptions> = ({ r, ...attrs }) => { const radius = r || 5 return { cx: radius, ...attrs, tagName: 'circle', r: radius, } } export const circlePlus: MarkerFactory<CircleMarkerOptions> = ({ r, ...attrs }) => { const radius = r || 5 const path = new Path() path.moveTo(radius, 0).lineTo(radius, radius * 2) path.moveTo(0, radius).lineTo(radius * 2, radius) return { children: [ { ...circle({ r: radius }), fill: 'none', }, { ...attrs, tagName: 'path', d: normalize(path.serialize(), -radius), }, ] as any, } }