@astrodraw/astrochart
Version:
A free and open-source JavaScript library for generating SVG charts to display planets in astrology.
165 lines (164 loc) • 4.76 kB
TypeScript
import type { Settings } from './settings';
/**
* SVG tools.
*
* @class
* @public
* @constructor
* @param {String} elementId - root DOM Element
* @param {int} width
* @param {int} height
*/
declare class SVG {
settings: Settings;
_paperElementId: string;
DOMElement: SVGSVGElement;
root: Element;
width: number;
height: number;
context: this;
constructor(elementId: string, width: number, height: number, settings: Settings);
_getSymbol(name: string, x: number, y: number): Element;
/**
* Get a required symbol.
*
* @param {String} name
* @param {int} x
* @param {int} y
*
* @return {SVGElement g}
*/
getSymbol(name: string, x: number, y: number): Element;
/**
* Create transparent rectangle.
*
* Used to improve area click, @see this.settings.ADD_CLICK_AREA
*
* @param {Number} x
* @param {Number} y
*
* @return {Element} rect
*/
createRectForClick(x: number, y: number): Element;
/**
* Get ID for sign wrapper.
*
* @param {String} sign
*
* @return {String id}
*/
getSignWrapperId(sign: string): string;
/**
* Get ID for house wrapper.
*
* @param {String} house
*
* @return {String id}
*/
getHouseIdWrapper(house: string): string;
sun(x: number, y: number): Element;
moon(x: number, y: number): Element;
mercury(x: number, y: number): Element;
venus(x: number, y: number): Element;
mars(x: number, y: number): Element;
jupiter(x: number, y: number): Element;
saturn(x: number, y: number): Element;
uranus(x: number, y: number): Element;
neptune(x: number, y: number): Element;
pluto(x: number, y: number): Element;
chiron(x: number, y: number): Element;
lilith(x: number, y: number): Element;
nnode(x: number, y: number): Element;
snode(x: number, y: number): Element;
fortune(x: number, y: number): Element;
aries(x: number, y: number): Element;
taurus(x: number, y: number): Element;
gemini(x: number, y: number): Element;
cancer(x: number, y: number): Element;
leo(x: number, y: number): Element;
virgo(x: number, y: number): Element;
libra(x: number, y: number): Element;
scorpio(x: number, y: number): Element;
sagittarius(x: number, y: number): Element;
capricorn(x: number, y: number): Element;
aquarius(x: number, y: number): Element;
pisces(x: number, y: number): Element;
/**
* Draw As symbol
*/
ascendant(x: number, y: number): Element;
/**
* Draw Ds symbol
*/
descendant(x: number, y: number): Element;
/**
* Draw MC symbol
*/
mediumCoeli(x: number, y: number): Element;
/**
* Draw IC symbol
*/
immumCoeli(x: number, y: number): Element;
number1(x: number, y: number): Element;
number2(x: number, y: number): Element;
number3(x: number, y: number): Element;
number4(x: number, y: number): Element;
number5(x: number, y: number): Element;
number6(x: number, y: number): Element;
number7(x: number, y: number): Element;
number8(x: number, y: number): Element;
number9(x: number, y: number): Element;
number10(x: number, y: number): Element;
number11(x: number, y: number): Element;
number12(x: number, y: number): Element;
/**
* Draw circular sector
*
* @param {int} x - circle x center position
* @param {int} y - circle y center position
* @param {int} radius - circle radius in px
* @param {int} a1 - angleFrom in degree
* @param {int} a2 - angleTo in degree
* @param {int} thickness - from outside to center in px
*
* @return {SVGElement} segment
*
* @see SVG Path arc: https://www.w3.org/TR/SVG/paths.html#PathData
*/
segment(x: number, y: number, radius: number, a1: number, a2: number, thickness: number, lFlag?: number, sFlag?: number): Element;
/**
* Draw line in circle
*
* @param {int} x1
* @param {int} y2
* @param {int} x2
* @param {int} y2
* @param {String} color - HTML rgb
*
* @return {SVGElement} line
*/
line(x1: number, y1: number, x2: number, y2: number): Element;
/**
* Draw a circle
*
* @param {int} cx
* @param {int} cy
* @param {int} radius
*
* @return {SVGElement} circle
*/
circle(cx: number, cy: number, radius: number): Element;
/**
* Draw a text
*
* @param {String} text
* @param {int} x
* @param {int} y
* @param {String} size - etc. "13px"
* @param {String} color - HTML rgb
*
* @return {SVGElement} text
*/
text(txt: string, x: number, y: number, size: string, color: string): Element;
}
export default SVG;