@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
45 lines • 5.22 kB
JavaScript
import { ThemeColor } from '../../services/color/index';
/**
* Type representing a color, including its descriptive name.
*/
export class ColorPickerColor {
/**
* Hex value of the color, e.g. `#ffffff`.
*/
get hex() {
return this._originalHexValue ? this._originalHexValue : this._color.toHex();
}
/**
* RGBA value of the color, e.g. `rgba(255, 255, 255, 1)`.
*/
get rgba() {
return this._originalRgbaValue ? this._originalRgbaValue : this._color.toRgba();
}
get r() {
return parseInt(this._color.getRed());
}
get g() {
return parseInt(this._color.getGreen());
}
get b() {
return parseInt(this._color.getBlue());
}
get a() {
return parseFloat(this._color.getAlpha());
}
constructor(name, value, inputMode) {
this.name = name;
this._color = ThemeColor.parse(value);
// Preserve the format entered by the user if it's valid
if (inputMode === 'hex') {
this._originalHexValue = value;
}
else if (inputMode === 'rgba') {
this._originalRgbaValue = value;
}
}
toString() {
return this._color.toRgba();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLWNvbG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci1jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHeEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBT3pCOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQU1ELFlBQVksSUFBWSxFQUFFLEtBQWEsRUFBRSxTQUFnQztRQUNyRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsd0RBQXdEO1FBQ3hELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZW1lQ29sb3IgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb2xvci9pbmRleCc7XG5pbXBvcnQgeyBDb2xvclBpY2tlcklucHV0TW9kZSB9IGZyb20gJy4vY29sb3ItcGlja2VyLnR5cGUnO1xuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIGEgY29sb3IsIGluY2x1ZGluZyBpdHMgZGVzY3JpcHRpdmUgbmFtZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbG9yUGlja2VyQ29sb3Ige1xuXG4gICAgLyoqXG4gICAgICogSHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGUgY29sb3IuXG4gICAgICovXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSGV4IHZhbHVlIG9mIHRoZSBjb2xvciwgZS5nLiBgI2ZmZmZmZmAuXG4gICAgICovXG4gICAgZ2V0IGhleCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JpZ2luYWxIZXhWYWx1ZSA/IHRoaXMuX29yaWdpbmFsSGV4VmFsdWUgOiB0aGlzLl9jb2xvci50b0hleCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJHQkEgdmFsdWUgb2YgdGhlIGNvbG9yLCBlLmcuIGByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpYC5cbiAgICAgKi9cbiAgICBnZXQgcmdiYSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JpZ2luYWxSZ2JhVmFsdWUgPyB0aGlzLl9vcmlnaW5hbFJnYmFWYWx1ZSA6IHRoaXMuX2NvbG9yLnRvUmdiYSgpO1xuICAgIH1cblxuICAgIGdldCByKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh0aGlzLl9jb2xvci5nZXRSZWQoKSk7XG4gICAgfVxuXG4gICAgZ2V0IGcoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRoaXMuX2NvbG9yLmdldEdyZWVuKCkpO1xuICAgIH1cblxuICAgIGdldCBiKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwYXJzZUludCh0aGlzLl9jb2xvci5nZXRCbHVlKCkpO1xuICAgIH1cblxuICAgIGdldCBhKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHRoaXMuX2NvbG9yLmdldEFscGhhKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbG9yOiBUaGVtZUNvbG9yO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29yaWdpbmFsSGV4VmFsdWU6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vcmlnaW5hbFJnYmFWYWx1ZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBpbnB1dE1vZGU/OiBDb2xvclBpY2tlcklucHV0TW9kZSkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLl9jb2xvciA9IFRoZW1lQ29sb3IucGFyc2UodmFsdWUpO1xuXG4gICAgICAgIC8vIFByZXNlcnZlIHRoZSBmb3JtYXQgZW50ZXJlZCBieSB0aGUgdXNlciBpZiBpdCdzIHZhbGlkXG4gICAgICAgIGlmIChpbnB1dE1vZGUgPT09ICdoZXgnKSB7XG4gICAgICAgICAgICB0aGlzLl9vcmlnaW5hbEhleFZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXRNb2RlID09PSAncmdiYScpIHtcbiAgICAgICAgICAgIHRoaXMuX29yaWdpbmFsUmdiYVZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sb3IudG9SZ2JhKCk7XG4gICAgfVxufSJdfQ==