/** * Created by michaelbessey on 9/4/16. */ import {ChartWidthSizeEnum, getChartWidthSize} from "./util"; export class ChartDrawArea { x: number; y: number; width: number; height: number; //padding top: number; right: number; bottom: number; left: number; constructor(d, p) { this.x = 0; this.y = 0; this.width = d.width; this.height = d.height; this.top = p.top; this.right = p.right; this.bottom = p.bottom; this.left = p.left; } get paddingStyle(){ let t = this.top, r = this.right, b = this.bottom, l = this.left; return `padding: ${t}px ${r}px ${b}px ${l}px;`; } get padding(){ return { top: this.top, right: this.right, left: this.left, bottom: this.bottom }; } get hasPadding() { return this.top > 0 || this.right > 0 || this.bottom > 0 || this.left > 0; } get area() { return this.width * this.height; } get center() { let x = this.width * 0.5, y = this.height * 0.5; return { x: x, y: y }; } get radius(): number { return Math.min(this.drawWidth, this.drawHeight) * 0.5; } get rangeX(): number[] { return [this.x + this.left, this.width - this.right]; } get rangeY(): number[] { return [this.y + this.top, this.height - this.bottom]; } get rangeReverseY(): number[] { let ry = this.rangeY; return [ry[1], ry[0]]; } get drawWidth(): number { return this.width - this.right - this.left - this.x; } get drawHeight(): number { return this.height - this.bottom - this.top - this.y; } get drawArea() { return this.drawWidth * this.drawHeight; } get widthSize() : ChartWidthSizeEnum { return getChartWidthSize(this.width); } }