UNPKG

@ux-aspects/ux-aspects

Version:

Open source user interface framework for building modern, responsive, mobile big data applications

45 lines 5.22 kB
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==