ngx-colours
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)
81 lines • 8.65 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;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb2xvcnMvc3JjL2xpYi9jbGFzZXMvZm9ybWF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSXJELE1BQU0sT0FBTyxJQUFJO0lBQ2YsWUFBbUIsQ0FBUyxFQUFTLENBQVMsRUFBUyxDQUFTLEVBQVMsQ0FBUztRQUEvRCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO0lBQUcsQ0FBQztJQUUvRSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxNQUFNLEdBQ1YsS0FBSztZQUNMLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQzFCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSTtZQUNiLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSTtZQUNiLElBQUksQ0FBQyxDQUFDO1lBQ04sQ0FBQyxJQUFJLENBQUMsQ0FB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QyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBWTtJQUFHLENBQUM7Q0FDN0ciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sb3JGb3JtYXRzIH0gZnJvbSAnLi4vZW51bXMvZm9ybWF0cyc7XG5pbXBvcnQgeyBDb252ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udmVydGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgUmdiYSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByOiBudW1iZXIsIHB1YmxpYyBnOiBudW1iZXIsIHB1YmxpYyBiOiBudW1iZXIsIHB1YmxpYyBhOiBudW1iZXIpIHt9XG5cbiAgcHVibGljIGRlbm9ybWFsaXplKCk6UmdiYXtcbiAgICB0aGlzLnIgPSBNYXRoLnJvdW5kKHRoaXMuciAqIDI1NSk7XG4gICAgdGhpcy5nID0gTWF0aC5yb3VuZCh0aGlzLmcgKiAyNTUpO1xuICAgIHRoaXMuYiA9IE1hdGgucm91bmQodGhpcy5iICogMjU1KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOnN0cmluZ3tcbiAgICB0aGlzLmRlbm9ybWFsaXplKCk7XG4gICAgbGV0IG91dHB1dCA9ICBcbiAgICAncmdiJyArIFxuICAgICh0aGlzLmEgIT0gMSA/ICdhKCcgOiAnKCcpK1xuICAgIHRoaXMuciArICcsICcgK1xuICAgIHRoaXMuZyArICcsICcgK1xuICAgIHRoaXMuYiArIFxuICAgICh0aGlzLmEgIT0gMSA/ICcsICcgKyB0aGlzLmEudG9QcmVjaXNpb24oMikgKyAnKScgOiAnKScpXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG5cbn1cblxuZXhwb3J0IGNsYXNzIEhzdmEge1xuXG4gIHB1YmxpYyBvbkNoYW5nZTpFdmVudEVtaXR0ZXI8SHN2YT4gPSBuZXcgRXZlbnRFbWl0dGVyPEhzdmE+KHRydWUpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBoOiBudW1iZXIsIHB1YmxpYyBzOiBudW1iZXIsIHB1YmxpYyB2OiBudW1iZXIsIHB1YmxpYyBhOiBudW1iZXIpIHtcbiAgICBcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbG9yQ2hhbmdlKHZhbHVlOiB7IHM6IG51bWJlciwgdjogbnVtYmVyLCByZ1g6IG51bWJlciwgcmdZOiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMucyA9IHZhbHVlLnMgLyB2YWx1ZS5yZ1g7XG4gICAgdGhpcy52ID0gdmFsdWUudiAvIHZhbHVlLnJnWTtcbiAgfVxuXG4gIHB1YmxpYyBvbkh1ZUNoYW5nZSh2YWx1ZTogeyB2OiBudW1iZXIsIHJnWDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICB0aGlzLmggPSB2YWx1ZS52IC8gdmFsdWUucmdYO1xuICAgIC8vIHRoaXMuc2xpZGVySCA9IHRoaXMuaHN2YS5oO1xuICB9XG5cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHsgdjogbnVtYmVyLCByZ1g6IG51bWJlciB9KTogdm9pZCB7XG4gICAgdGhpcy52ID0gdmFsdWUudiAvIHZhbHVlLnJnWDtcbiAgfVxuXG4gIHB1YmxpYyBvbkFscGhhQ2hhbmdlKHZhbHVlOiB7IHY6IG51bWJlciwgcmdYOiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMuYSA9IHZhbHVlLnYgLyB2YWx1ZS5yZ1g7XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgSHNsYSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBoOiBudW1iZXIsIHB1YmxpYyBzOiBudW1iZXIsIHB1YmxpYyBsOiBudW1iZXIsIHB1YmxpYyBhOiBudW1iZXIpIHt9XG4gIFxuICBwdWJsaWMgZGVub3JtYWxpemUoKTpIc2xhe1xuICAgIHRoaXMuaCA9IE1hdGgucm91bmQodGhpcy5oICogMzYwKTtcbiAgICB0aGlzLnMgPSBNYXRoLnJvdW5kKHRoaXMucyAqIDEwMCk7XG4gICAgdGhpcy5sID0gTWF0aC5yb3VuZCh0aGlzLmwgKiAxMDApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHB1YmxpYyB0b1N0cmluZygpOnN0cmluZ3tcbiAgICBsZXQgb3V0cHV0ID0gIFxuICAgICdoc2wnICsgXG4gICAgKHRoaXMuYSAhPSAxID8gJ2EoJzogJygnKSArXG4gICAgdGhpcy5oICsgJywgJyArXG4gICAgdGhpcy5zICsgJyUsICcgK1xuICAgIHRoaXMubCArICclJyArIFxuICAgICh0aGlzLmEgIT0gMSA/ICcsICcgKyB0aGlzLmEudG9QcmVjaXNpb24oMikgKyAnKScgOiAnKScpXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBDbXlrIHtcbiAgY29uc3RydWN0b3IocHVibGljIGM6IG51bWJlciwgcHVibGljIG06IG51bWJlciwgcHVibGljIHk6IG51bWJlciwgcHVibGljIGs6IG51bWJlciwgcHVibGljIGE6IG51bWJlciA9IDEpIHt9XG59XG4iXX0=