ngx-colors
Version:
A beautiful color picker for angular that let you choose from a color palette, using sliders (Hue, Lightness, Alpha sliders) or through text input(hex, rgba, hsla)
97 lines • 10.4 kB
JavaScript
import { EventEmitter } from '@angular/core';
export class Rgba {
constructor(r, g, b, a) {
this.r = r;
this.g = g;
this.b = b;
this.a = a;
}
denormalize() {
this.r = Math.round(this.r * 255);
this.g = Math.round(this.g * 255);
this.b = Math.round(this.b * 255);
return this;
}
toString() {
this.denormalize();
let output = 'rgb' +
(this.a != 1 ? 'a(' : '(') +
this.r + ', ' +
this.g + ', ' +
this.b +
(this.a != 1 ? ', ' + this.a.toPrecision(2) + ')' : ')');
return output;
}
}
export class Hsva {
constructor(h, s, v, a) {
this.h = h;
this.s = s;
this.v = v;
this.a = a;
this.onChange = new EventEmitter(true);
}
onColorChange(value) {
this.s = value.s / value.rgX;
this.v = value.v / value.rgY;
}
onHueChange(value) {
this.h = value.v / value.rgX;
// this.sliderH = this.hsva.h;
}
onValueChange(value) {
this.v = value.v / value.rgX;
}
onAlphaChange(value) {
this.a = value.v / value.rgX;
}
}
export class Hsla {
constructor(h, s, l, a) {
this.h = h;
this.s = s;
this.l = l;
this.a = a;
}
denormalize() {
this.h = Math.round(this.h * 360);
this.s = Math.round(this.s * 100);
this.l = Math.round(this.l * 100);
return this;
}
toString() {
let output = 'hsl' +
(this.a != 1 ? 'a(' : '(') +
this.h + ', ' +
this.s + '%, ' +
this.l + '%' +
(this.a != 1 ? ', ' + this.a.toPrecision(2) + ')' : ')');
return output;
}
}
export class Cmyk {
constructor(c, m, y, k, a = 1) {
this.c = c;
this.m = m;
this.y = y;
this.k = k;
this.a = a;
}
denormalize() {
this.c = Math.round(this.c * 100);
this.m = Math.round(this.m * 100);
this.y = Math.round(this.y * 100);
this.k = Math.round(this.k * 100);
return this;
}
toString() {
this.denormalize();
let output = 'cmyk(' +
this.c + ', ' +
this.m + ', ' +
this.y + ', ' +
this.k + ')';
return output;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb2xvcnMvc3JjL2xpYi9jbGFzZXMvZm9ybWF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSXJELE1BQU0sT0FBTyxJQUFJO0lBQ2YsWUFBbUIsQ0FBUyxFQUFTLENBQVMsRUFBUyxDQUFTLEVBQVMsQ0FBUztRQUEvRCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO0lBQUcsQ0FBQztJQUUvRSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxNQUFNLEdBQ1YsS0FBSztZQUNMLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSTtZQUNiLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSTtZQUNiLElBQUksQ0FBQyxDQUFDO1lBQ04sQ0FBQyxJQUFJLENBQUMsQ0FB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QyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBWTtJQUFHLENBQUM7SUFFckcsV0FBVztRQUNoQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksTUFBTSxHQUNWLE9BQU87WUFDUCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUk7WUFDYixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUk7WUFDYixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUk7WUFDYixJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNiLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvckZvcm1hdHMgfSBmcm9tICcuLi9lbnVtcy9mb3JtYXRzJztcbmltcG9ydCB7IENvbnZlcnRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb252ZXJ0ZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBSZ2JhIHtcbiAgY29uc3RydWN0b3IocHVibGljIHI6IG51bWJlciwgcHVibGljIGc6IG51bWJlciwgcHVibGljIGI6IG51bWJlciwgcHVibGljIGE6IG51bWJlcikge31cblxuICBwdWJsaWMgZGVub3JtYWxpemUoKTpSZ2Jhe1xuICAgIHRoaXMuciA9IE1hdGgucm91bmQodGhpcy5yICogMjU1KTtcbiAgICB0aGlzLmcgPSBNYXRoLnJvdW5kKHRoaXMuZyAqIDI1NSk7XG4gICAgdGhpcy5iID0gTWF0aC5yb3VuZCh0aGlzLmIgKiAyNTUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCk6c3RyaW5ne1xuICAgIHRoaXMuZGVub3JtYWxpemUoKTtcbiAgICBsZXQgb3V0cHV0ID0gIFxuICAgICdyZ2InICsgXG4gICAgKHRoaXMuYSAhPSAxID8gJ2EoJyA6ICcoJykrXG4gICAgdGhpcy5yICsgJywgJyArXG4gICAgdGhpcy5nICsgJywgJyArXG4gICAgdGhpcy5iICsgXG4gICAgKHRoaXMuYSAhPSAxID8gJywgJyArIHRoaXMuYS50b1ByZWNpc2lvbigyKSArICcpJyA6ICcpJylcbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cblxufVxuXG5leHBvcnQgY2xhc3MgSHN2YSB7XG5cbiAgcHVibGljIG9uQ2hhbmdlOkV2ZW50RW1pdHRlcjxIc3ZhPiA9IG5ldyBFdmVudEVtaXR0ZXI8SHN2YT4odHJ1ZSk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGg6IG51bWJlciwgcHVibGljIHM6IG51bWJlciwgcHVibGljIHY6IG51bWJlciwgcHVibGljIGE6IG51bWJlcikge1xuICAgIFxuICB9XG5cbiAgcHVibGljIG9uQ29sb3JDaGFuZ2UodmFsdWU6IHsgczogbnVtYmVyLCB2OiBudW1iZXIsIHJnWDogbnVtYmVyLCByZ1k6IG51bWJlciB9KTogdm9pZCB7XG4gICAgdGhpcy5zID0gdmFsdWUucyAvIHZhbHVlLnJnWDtcbiAgICB0aGlzLnYgPSB2YWx1ZS52IC8gdmFsdWUucmdZO1xuICB9XG5cbiAgcHVibGljIG9uSHVlQ2hhbmdlKHZhbHVlOiB7IHY6IG51bWJlciwgcmdYOiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMuaCA9IHZhbHVlLnYgLyB2YWx1ZS5yZ1g7XG4gICAgLy8gdGhpcy5zbGlkZXJIID0gdGhpcy5oc3ZhLmg7XG4gIH1cblxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZSh2YWx1ZTogeyB2OiBudW1iZXIsIHJnWDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICB0aGlzLnYgPSB2YWx1ZS52IC8gdmFsdWUucmdYO1xuICB9XG5cbiAgcHVibGljIG9uQWxwaGFDaGFuZ2UodmFsdWU6IHsgdjogbnVtYmVyLCByZ1g6IG51bWJlciB9KTogdm9pZCB7XG4gICAgdGhpcy5hID0gdmFsdWUudiAvIHZhbHVlLnJnWDtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBIc2xhIHtcbiAgY29uc3RydWN0b3IocHVibGljIGg6IG51bWJlciwgcHVibGljIHM6IG51bWJlciwgcHVibGljIGw6IG51bWJlciwgcHVibGljIGE6IG51bWJlcikge31cbiAgXG4gIHB1YmxpYyBkZW5vcm1hbGl6ZSgpOkhzbGF7XG4gICAgdGhpcy5oID0gTWF0aC5yb3VuZCh0aGlzLmggKiAzNjApO1xuICAgIHRoaXMucyA9IE1hdGgucm91bmQodGhpcy5zICogMTAwKTtcbiAgICB0aGlzLmwgPSBNYXRoLnJvdW5kKHRoaXMubCAqIDEwMCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcHVibGljIHRvU3RyaW5nKCk6c3RyaW5ne1xuICAgIGxldCBvdXRwdXQgPSAgXG4gICAgJ2hzbCcgKyBcbiAgICAodGhpcy5hICE9IDEgPyAnYSgnOiAnKCcpICtcbiAgICB0aGlzLmggKyAnLCAnICtcbiAgICB0aGlzLnMgKyAnJSwgJyArXG4gICAgdGhpcy5sICsgJyUnICsgXG4gICAgKHRoaXMuYSAhPSAxID8gJywgJyArIHRoaXMuYS50b1ByZWNpc2lvbigyKSArICcpJyA6ICcpJylcbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIENteWsge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgYzogbnVtYmVyLCBwdWJsaWMgbTogbnVtYmVyLCBwdWJsaWMgeTogbnVtYmVyLCBwdWJsaWMgazogbnVtYmVyLCBwdWJsaWMgYTogbnVtYmVyID0gMSkge31cblxuICBwdWJsaWMgZGVub3JtYWxpemUoKTpDbXlre1xuICAgIHRoaXMuYyA9IE1hdGgucm91bmQodGhpcy5jICogMTAwKTtcbiAgICB0aGlzLm0gPSBNYXRoLnJvdW5kKHRoaXMubSAqIDEwMCk7XG4gICAgdGhpcy55ID0gTWF0aC5yb3VuZCh0aGlzLnkgKiAxMDApO1xuICAgIHRoaXMuayA9IE1hdGgucm91bmQodGhpcy5rICogMTAwKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBwdWJsaWMgdG9TdHJpbmcoKTpzdHJpbmcge1xuICAgIHRoaXMuZGVub3JtYWxpemUoKTtcbiAgICBsZXQgb3V0cHV0ID0gIFxuICAgICdjbXlrKCcgKyBcbiAgICB0aGlzLmMgKyAnLCAnICtcbiAgICB0aGlzLm0gKyAnLCAnICtcbiAgICB0aGlzLnkgKyAnLCAnICsgXG4gICAgdGhpcy5rICsgJyknO1xuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cbn1cbiJdfQ==