@kushki/ng-suka
Version:
<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>
176 lines • 12.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @param {?} r
* @param {?} g
* @param {?} b
* @return {?}
*/
export function rgbToHsv(r, g, b) {
/** @type {?} */
var h;
/** @type {?} */
var s;
/** @type {?} */
var rabs = r / 255;
/** @type {?} */
var gabs = g / 255;
/** @type {?} */
var babs = b / 255;
/** @type {?} */
var v = Math.max(rabs, gabs, babs);
/** @type {?} */
var diff = v - Math.min(rabs, gabs, babs);
/** @type {?} */
var diffc = (/**
* @param {?} c
* @return {?}
*/
function (c) { return (v - c) / 6 / diff + 1 / 2; });
/** @type {?} */
var percentRoundFn = (/**
* @param {?} num
* @return {?}
*/
function (num) { return Math.round(num * 100) / 100; });
if (diff === 0) {
h = s = 0;
}
else {
s = diff / v;
/** @type {?} */
var rr = diffc(rabs);
/** @type {?} */
var gg = diffc(gabs);
/** @type {?} */
var bb = diffc(babs);
if (rabs === v) {
h = bb - gg;
}
else if (gabs === v) {
h = (1 / 3) + rr - bb;
}
else if (babs === v) {
h = (2 / 3) + gg - rr;
}
if (h < 0) {
h += 1;
}
else if (h > 1) {
h -= 1;
}
}
return {
h: Math.round(h * 360),
s: percentRoundFn(s * 100),
v: percentRoundFn(v * 100)
};
}
/**
* @param {?} hex
* @return {?}
*/
export function hexToRgb(hex) {
// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
/** @type {?} */
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, (/**
* @param {?} m
* @param {?} r
* @param {?} g
* @param {?} b
* @return {?}
*/
function (m, r, g, b) {
return r + r + g + g + b + b;
}));
/** @type {?} */
var 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;
}
/**
* @param {?} r
* @param {?} g
* @param {?} b
* @return {?}
*/
export function rgbToHex(r, g, b) {
/**
* @param {?} x
* @return {?}
*/
function hex(x) {
return ('0' + parseInt(x).toString(16)).slice(-2);
}
return '#' + hex(r) + hex(g) + hex(b);
}
/**
* @param {?} hue
* @param {?} saturation
* @param {?} value
* @return {?}
*/
export function hsvToRgb(hue, saturation, value) {
/** @type {?} */
var h = hue / 60;
/** @type {?} */
var s = saturation / 100;
/** @type {?} */
var v = value / 100;
/** @type {?} */
var hi = Math.floor(h) % 6;
/** @type {?} */
var f = h - Math.floor(h);
/** @type {?} */
var p = 255 * v * (1 - s);
/** @type {?} */
var q = 255 * v * (1 - (s * f));
/** @type {?} */
var t = 255 * v * (1 - (s * (1 - f)));
v *= 255;
/** @type {?} */
var rgbArray;
switch (hi) {
case 0:
rgbArray = [v, t, p];
break;
case 1:
rgbArray = [q, v, p];
break;
case 2:
rgbArray = [p, v, t];
break;
case 3:
rgbArray = [p, q, v];
break;
case 4:
rgbArray = [t, p, v];
break;
case 5:
rgbArray = [v, p, q];
break;
}
return {
r: rgbArray[0],
g: rgbArray[1],
b: rgbArray[2],
};
}
/**
* @param {?} h
* @param {?} s
* @param {?} v
* @return {?}
*/
export function hsvToHex(h, s, v) {
/** @type {?} */
var rgbColor = hsvToRgb(h, s, v);
return rgbToHex(rgbColor.r, rgbColor.g, rgbColor.b);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvY29sb3ItcGlja2VyL2NvbG9yLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzs7UUFDMUIsQ0FBQzs7UUFDRCxDQUFDOztRQUVDLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRzs7UUFDZCxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUc7O1FBQ2QsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHOztRQUNkLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDOztRQUM5QixJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7O1FBQ3JDLEtBQUs7Ozs7SUFBRyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBMUIsQ0FBMEIsQ0FBQTs7UUFDdkMsY0FBYzs7OztJQUFHLFVBQUEsR0FBRyxJQUFJLE9BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUEzQixDQUEyQixDQUFBO0lBQ3pELElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtRQUNkLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ1g7U0FBTTtRQUNMLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDOztZQUNQLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDOztZQUNoQixFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQzs7WUFDaEIsRUFBRSxHQUFHLEtBQUssQ0FB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RyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7O1FBQzNCLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQyxJQUFJLEdBQUcsQ0FBQzs7UUFFTCxRQUFRO0lBQ1osUUFBUSxFQUFFLEVBQUU7UUFDVixLQUFLLENBQUM7WUFDSixRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU07UUFDUixLQUFLLENBQUM7WUFDSixRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU07S0FDVDtJQUVELE9BQU87UUFDTCxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2QsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7S0FDZixDQUFDO0FBQ0osQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDOztRQUN4QixRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiByZ2JUb0hzdihyLCBnLCBiKSB7XG4gIGxldCBoO1xuICBsZXQgcztcblxuICBjb25zdCByYWJzID0gciAvIDI1NTtcbiAgY29uc3QgZ2FicyA9IGcgLyAyNTU7XG4gIGNvbnN0IGJhYnMgPSBiIC8gMjU1O1xuICBjb25zdCB2ID0gTWF0aC5tYXgocmFicywgZ2FicywgYmFicyk7XG4gIGNvbnN0IGRpZmYgPSB2IC0gTWF0aC5taW4ocmFicywgZ2FicywgYmFicyk7XG4gIGNvbnN0IGRpZmZjID0gYyA9PiAodiAtIGMpIC8gNiAvIGRpZmYgKyAxIC8gMjtcbiAgY29uc3QgcGVyY2VudFJvdW5kRm4gPSBudW0gPT4gTWF0aC5yb3VuZChudW0gKiAxMDApIC8gMTAwO1xuICBpZiAoZGlmZiA9PT0gMCkge1xuICAgIGggPSBzID0gMDtcbiAgfSBlbHNlIHtcbiAgICBzID0gZGlmZiAvIHY7XG4gICAgY29uc3QgcnIgPSBkaWZmYyhyYWJzKTtcbiAgICBjb25zdCBnZyA9IGRpZmZjKGdhYnMpO1xuICAgIGNvbnN0IGJiID0gZGlmZmMoYmFicyk7XG5cbiAgICBpZiAocmFicyA9PT0gdikge1xuICAgICAgaCA9IGJiIC0gZ2c7XG4gICAgfSBlbHNlIGlmIChnYWJzID09PSB2KSB7XG4gICAgICBoID0gKDEgLyAzKSArIHJyIC0gYmI7XG4gICAgfSBlbHNlIGlmIChiYWJzID09PSB2KSB7XG4gICAgICBoID0gKDIgLyAzKSArIGdnIC0gcnI7XG4gICAgfVxuICAgIGlmIChoIDwgMCkge1xuICAgICAgaCArPSAxO1xuICAgIH0gZWxzZSBpZiAoaCA+IDEpIHtcbiAgICAgIGggLT0gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBoOiBNYXRoLnJvdW5kKGggKiAzNjApLFxuICAgIHM6IHBlcmNlbnRSb3VuZEZuKHMgKiAxMDApLFxuICAgIHY6IHBlcmNlbnRSb3VuZEZuKHYgKiAxMDApXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoZXhUb1JnYihoZXgpIHtcbiAgLy8gRXhwYW5kIHNob3J0aGFuZCBmb3JtIChlLmcuIFwiMDNGXCIpIHRvIGZ1bGwgZm9ybSAoZS5nLiBcIjAwMzNGRlwiKVxuICBjb25zdCBzaG9ydGhhbmRSZWdleCA9IC9eIz8oW2EtZlxcZF0pKFthLWZcXGRdKShbYS1mXFxkXSkkL2k7XG4gIGhleCA9IGhleC5yZXBsYWNlKHNob3J0aGFuZFJlZ2V4LCAobSwgciwgZywgYikgPT4ge1xuICAgIHJldHVybiByICsgciArIGcgKyBnICsgYiArIGI7XG4gIH0pO1xuXG4gIGNvbnN0IHJlc3VsdCA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXgpO1xuICByZXR1cm4gcmVzdWx0ID8ge1xuICAgIHI6IHBhcnNlSW50KHJlc3VsdFsxXSwgMTYpLFxuICAgIGc6IHBhcnNlSW50KHJlc3VsdFsyXSwgMTYpLFxuICAgIGI6IHBhcnNlSW50KHJlc3VsdFszXSwgMTYpXG4gIH0gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmdiVG9IZXgociwgZywgYikge1xuICBmdW5jdGlvbiBoZXgoeCkge1xuICAgICAgcmV0dXJuICgnMCcgKyBwYXJzZUludCh4KS50b1N0cmluZygxNikpLnNsaWNlKC0yKTtcbiAgfVxuICByZXR1cm4gJyMnICsgaGV4KHIpICsgaGV4KGcpICsgaGV4KGIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9SZ2IoaHVlLCBzYXR1cmF0aW9uLCB2YWx1ZSkge1xuICBjb25zdCBoID0gaHVlIC8gNjA7XG4gIGNvbnN0IHMgPSBzYXR1cmF0aW9uIC8gMTAwO1xuICBsZXQgdiA9IHZhbHVlIC8gMTAwO1xuICBjb25zdCBoaSA9IE1hdGguZmxvb3IoaCkgJSA2O1xuXG4gIGNvbnN0IGYgPSBoIC0gTWF0aC5mbG9vcihoKTtcbiAgY29uc3QgcCA9IDI1NSAqIHYgKiAoMSAtIHMpO1xuICBjb25zdCBxID0gMjU1ICogdiAqICgxIC0gKHMgKiBmKSk7XG4gIGNvbnN0IHQgPSAyNTUgKiB2ICogKDEgLSAocyAqICgxIC0gZikpKTtcbiAgdiAqPSAyNTU7XG5cbiAgbGV0IHJnYkFycmF5O1xuICBzd2l0Y2ggKGhpKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmdiQXJyYXkgPSBbdiwgdCwgcF07XG4gICAgICBicmVhaztcbiAgICBjYXNlIDE6XG4gICAgICByZ2JBcnJheSA9IFtxLCB2LCBwXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMjpcbiAgICAgIHJnYkFycmF5ID0gW3AsIHYsIHRdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOlxuICAgICAgcmdiQXJyYXkgPSBbcCwgcSwgdl07XG4gICAgICBicmVhaztcbiAgICBjYXNlIDQ6XG4gICAgICByZ2JBcnJheSA9IFt0LCBwLCB2XTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNTpcbiAgICAgIHJnYkFycmF5ID0gW3YsIHAsIHFdO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHI6IHJnYkFycmF5WzBdLFxuICAgIGc6IHJnYkFycmF5WzFdLFxuICAgIGI6IHJnYkFycmF5WzJdLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHN2VG9IZXgoaCwgcywgdikge1xuICBjb25zdCByZ2JDb2xvciA9IGhzdlRvUmdiKGgsIHMsIHYpO1xuICByZXR1cm4gcmdiVG9IZXgocmdiQ29sb3IuciwgcmdiQ29sb3IuZywgcmdiQ29sb3IuYik7XG59XG4iXX0=