import { FabricObject } from "fabric"; import { FabricObjectPropertyList } from "../types/WrapperFabricType"; export class WrapperFabric { obj: FabricObject; propertyListMap: { [property: string]: any }; constructor(obj: FabricObject,) { this.obj = obj; this.propertyListMap = { "rotaion": this.setRotaion, "opacity": this.setOpacity, "width": this.setWidth, "height": this.setHeight, "scaleX": this.setScaleX, "scaleY": this.setScaleY, "skewX": this.setSkewX, "skewY": this.setSkewY } } setWidth(width: number): void { // if (!width) // width = 0 this.obj.set("width", width) }; setHeight(height: number): void { // if (!height) // height = 0 this.obj.set("height", height) }; setRotaion(angle: number): void { // if (!angle) // angle = 0 if (this.obj.originX !== "center") this.obj.set('originX', "center"); if (this.obj.originY !== "center") this.obj.set('originY', "center"); this.obj.set("angle", angle) }; setOpacity(opacity: number): void { this.obj.set("opacity", opacity) }; setScaleX(scaleX: number): void { // if (!scaleX) // scaleX = 1 this.obj.set("scaleX", scaleX) }; setScaleY(scaleY: number): void { // if (!scaleY) // scaleY = 1 this.obj.set("scaleY", scaleY) }; setSkewX(skewX: number): void { // if (!skewX) // skewX = 0 this.obj.set("skewX", skewX) }; setSkewY(skewY: number): void { // if (!skewY) // skewY = 0 this.obj.set("skewY", skewY) }; protected getObjectValues(): FabricObjectPropertyList { return { skewX: { type: "number", step: 1, value: this.obj.skewX }, skewY: { type: "number", step: 1, value: this.obj.skewY }, // scaleX: { type: "number", min: 0, step: 1, value: this.obj.scaleX }, // scaleY: { type: "number", min: 0, step: 1, value: this.obj.scaleY }, // width: { type: "number", min: 0, step: 1, value: this.obj.width }, // height: { type: "number", min: 0, step: 1, value: this.obj.height }, opacity: { type: "range", min: 0, max: 1, step: 0.1, value: this.obj.opacity }, rotaion: { type: "range", min: 0, max: 359, step: 1, value: this.obj.angle } } } }