import { globals } from '../../utils/window.js' // Create plain text node export function plain(text) { // clear if build mode is disabled if (this._build === false) { this.clear() } // create text node this.node.appendChild(globals.document.createTextNode(text)) return this } // Get length of text element export function length() { return this.node.getComputedTextLength() } // Move over x-axis // Text is moved by its bounding box // text-anchor does NOT matter export function x(x, box = this.bbox()) { if (x == null) { return box.x } return this.attr('x', this.attr('x') + x - box.x) } // Move over y-axis export function y(y, box = this.bbox()) { if (y == null) { return box.y } return this.attr('y', this.attr('y') + y - box.y) } export function move(x, y, box = this.bbox()) { return this.x(x, box).y(y, box) } // Move center over x-axis export function cx(x, box = this.bbox()) { if (x == null) { return box.cx } return this.attr('x', this.attr('x') + x - box.cx) } // Move center over y-axis export function cy(y, box = this.bbox()) { if (y == null) { return box.cy } return this.attr('y', this.attr('y') + y - box.cy) } export function center(x, y, box = this.bbox()) { return this.cx(x, box).cy(y, box) } export function ax(x) { return this.attr('x', x) } export function ay(y) { return this.attr('y', y) } export function amove(x, y) { return this.ax(x).ay(y) } // Enable / disable build mode export function build(build) { this._build = !!build return this }