UNPKG

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
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