const draftDimension = (part) => { const { points, Point, paths, Path, snippets, Snippet, options, macro } = part.shorthand() if (['mirror', 'all'].indexOf(options.plugin) !== -1) { points.mirrorA = new Point(0, 0) points.mirrorB = new Point(70, 30) points.mirrorC = new Point(0, 50) points.mirrorD = new Point(30, -30) paths.mirrorA = new Path() .move(points.mirrorA) .line(points.mirrorB) .attr('class', 'dashed note') .attr('data-text', 'Mirror A') .attr('data-text-class', 'right') paths.mirrorB = new Path() .move(points.mirrorC) .line(points.mirrorD) .attr('class', 'dashed note') .attr('data-text', 'Mirror B') .attr('data-text-class', 'right') points.b1 = new Point(10, 10).attr('data-text', 1) points.h2 = new Point(20, 10).attr('data-text', 2) points.h3 = new Point(30, 10).attr('data-text', 3) points.v2 = new Point(10, 20).attr('data-text', 2) points.v3 = new Point(10, 30).attr('data-text', 3) points.a = new Point(10, 0) points.b = new Point(30, 30) points.c = new Point(50, 50) points.d = new Point(12, 34) points.e = new Point(54, 34) snippets.a = new Snippet('button', points.b) paths.a = new Path().move(points.a).line(points.b) paths.b = new Path().move(points.e).curve(points.a, points.d, points.c) if (options.mirrorLine !== 'none') { macro('mirror', { mirror: options.mirrorLine === 'a' ? [points.mirrorA, points.mirrorB] : [points.mirrorC, points.mirrorD], points: [ points.b1, points.h2, points.h3, points.v2, points.v3, points.a, points.b, points.c, points.d, points.e, ], paths: [paths.a, paths.b], clone: options.mirrorClone, }) } } return part } export default draftDimension