@aurigma/design-atoms-model
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
57 lines • 1.72 kB
JavaScript
import { Color } from "./Color";
export class GrayscaleColor extends Color {
constructor(value) {
super(value);
this.l = 0;
this.a = 255;
if (value == null)
return;
try {
this._init(value);
}
catch (e) {
console.warn(`Incorrect GrayscaleColor format: ${JSON.stringify(value)}`);
}
}
get type() { return "GrayscaleColor"; }
get alpha() { return this.a; }
clone() {
return new GrayscaleColor(this);
}
equals(color) {
if (color instanceof GrayscaleColor) {
const baseEquals = super.equals(color);
return baseEquals && color instanceof GrayscaleColor && this.l === color.l && this.a === color.a;
}
return false;
}
toString() {
return this._getPreview();
}
getData() {
const data = super.getData();
data.l = this.l;
data.a = this.a;
return data;
}
_getPreview() {
if (this.a === 255) {
return `rgb(${this.l},${this.l},${this.l})`;
}
else {
const a = (this.a / 255).toFixed(7);
return `rgba(${this.l},${this.l},${this.l},${a})`;
}
}
_init(colorObject) {
super._init(colorObject);
colorObject.a = colorObject.a != null ? colorObject.a : 255;
this._validateNumber(colorObject.l);
this._validateNumber(colorObject.a);
this.l = colorObject.l;
this.a = colorObject.a;
if (this.preview == null)
this.preview = this._getPreview();
}
}
//# sourceMappingURL=GrayscaleColor.js.map