systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
50 lines • 7.3 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class ColorUtilService {
static generateColorArray(colorValues, withBorder) {
const colorList = [];
for (const colorR of colorValues) {
for (const colorG of colorValues) {
for (const colorB of colorValues) {
const newColorElement = {};
newColorElement.color = '#' + this.rgbToHex(colorR, colorG, colorB);
if (withBorder) {
newColorElement.border = '#' + this.rgbToHex(colorR * 0.7, colorG * 0.7, colorB * 0.7);
}
newColorElement.id = newColorElement.color;
newColorElement.value = newColorElement.color;
colorList.push(newColorElement);
}
}
}
return colorList;
}
static rgbToHex(R, G, B) {
return this.toHex(R) + this.toHex(G) + this.toHex(B);
}
static toHex(num) {
if (isNaN(num)) {
return '00';
}
num = Math.max(0, Math.min(num, 255));
return '0123456789ABCDEF'.charAt((num - num % 16) / 16) + '0123456789ABCDEF'.charAt(num % 16);
}
static hexToRGB(hex) {
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
static darkColorFromHex(hex) {
const rgbColor = this.hexToRGB(hex);
return this.rgbToHex(rgbColor.r * 0.7, rgbColor.g * 0.7, rgbColor.b * 0.7);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ColorUtilService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ColorUtilService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ColorUtilService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IudXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL3V0aWxpdGllcy9jb2xvci51dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUVyQixNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBdUIsRUFBRSxVQUFvQjtRQUM3RSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFckIsS0FBSyxNQUFNLE1BQU0sSUFBSSxXQUFXLEVBQUU7WUFDakMsS0FBSyxNQUFNLE1BQU0sSUFBSSxXQUFXLEVBQUU7Z0JBQ2pDLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFO29CQUNqQyxNQUFNLGVBQWUsR0FBUSxFQUFFLENBQUM7b0JBQ2hDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDcEUsSUFBSSxVQUFVLEVBQUU7d0JBQ2YsZUFBZSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO3FCQUN2RjtvQkFDRCxlQUFlLENBQUMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7b0JBQzNDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztvQkFDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDaEM7YUFDRDtTQUNEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQ3JELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBVztRQUMvQixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFDRCxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QyxPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFXO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLDJDQUEyQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDZixDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzFCLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUMxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDVixDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQVc7UUFDekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM1RSxDQUFDOzhHQTlDVyxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBSR0Ige1xuXHRyOiBudW1iZXI7XG5cdGc6IG51bWJlcjtcblx0YjogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29sb3JVdGlsU2VydmljZSB7XG5cblx0cHVibGljIHN0YXRpYyBnZW5lcmF0ZUNvbG9yQXJyYXkoY29sb3JWYWx1ZXM6IEFycmF5PGFueT4sIHdpdGhCb3JkZXI/OiBib29sZWFuKTogQXJyYXk8YW55PiB7XG5cdFx0Y29uc3QgY29sb3JMaXN0ID0gW107XG5cblx0XHRmb3IgKGNvbnN0IGNvbG9yUiBvZiBjb2xvclZhbHVlcykge1xuXHRcdFx0Zm9yIChjb25zdCBjb2xvckcgb2YgY29sb3JWYWx1ZXMpIHtcblx0XHRcdFx0Zm9yIChjb25zdCBjb2xvckIgb2YgY29sb3JWYWx1ZXMpIHtcblx0XHRcdFx0XHRjb25zdCBuZXdDb2xvckVsZW1lbnQ6IGFueSA9IHt9O1xuXHRcdFx0XHRcdG5ld0NvbG9yRWxlbWVudC5jb2xvciA9ICcjJyArIHRoaXMucmdiVG9IZXgoY29sb3JSLCBjb2xvckcsIGNvbG9yQik7XG5cdFx0XHRcdFx0aWYgKHdpdGhCb3JkZXIpIHtcblx0XHRcdFx0XHRcdG5ld0NvbG9yRWxlbWVudC5ib3JkZXIgPSAnIycgKyB0aGlzLnJnYlRvSGV4KGNvbG9yUiAqIDAuNywgY29sb3JHICogMC43LCBjb2xvckIgKiAwLjcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRuZXdDb2xvckVsZW1lbnQuaWQgPSBuZXdDb2xvckVsZW1lbnQuY29sb3I7XG5cdFx0XHRcdFx0bmV3Q29sb3JFbGVtZW50LnZhbHVlID0gbmV3Q29sb3JFbGVtZW50LmNvbG9yO1xuXHRcdFx0XHRcdGNvbG9yTGlzdC5wdXNoKG5ld0NvbG9yRWxlbWVudCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNvbG9yTGlzdDtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgcmdiVG9IZXgoUjogbnVtYmVyLCBHOiBudW1iZXIsIEI6IG51bWJlcik6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMudG9IZXgoUikgKyB0aGlzLnRvSGV4KEcpICsgdGhpcy50b0hleChCKTtcblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIHRvSGV4KG51bTogbnVtYmVyKTogc3RyaW5nIHtcblx0XHRpZiAoaXNOYU4obnVtKSkge1xuXHRcdFx0cmV0dXJuICcwMCc7XG5cdFx0fVxuXHRcdG51bSA9IE1hdGgubWF4KDAsIE1hdGgubWluKG51bSwgMjU1KSk7XG5cdFx0cmV0dXJuICcwMTIzNDU2Nzg5QUJDREVGJy5jaGFyQXQoKG51bSAtIG51bSAlIDE2KSAvIDE2KSArICcwMTIzNDU2Nzg5QUJDREVGJy5jaGFyQXQobnVtICUgMTYpO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBoZXhUb1JHQihoZXg6IHN0cmluZyk6IFJHQiB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG5cdFx0cmV0dXJuIHJlc3VsdCA/IHtcblx0XHRcdHI6IHBhcnNlSW50KHJlc3VsdFsxXSwgMTYpLFxuXHRcdFx0ZzogcGFyc2VJbnQocmVzdWx0WzJdLCAxNiksXG5cdFx0XHRiOiBwYXJzZUludChyZXN1bHRbM10sIDE2KVxuXHRcdH0gOiBudWxsO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBkYXJrQ29sb3JGcm9tSGV4KGhleDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRjb25zdCByZ2JDb2xvciA9IHRoaXMuaGV4VG9SR0IoaGV4KTtcblx0XHRyZXR1cm4gdGhpcy5yZ2JUb0hleChyZ2JDb2xvci5yICogMC43LCByZ2JDb2xvci5nICogMC43LCByZ2JDb2xvci5iICogMC43KTtcblx0fVxufVxuIl19