UNPKG

@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
/** * @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 {?} */ let h; /** @type {?} */ let s; /** @type {?} */ const rabs = r / 255; /** @type {?} */ const gabs = g / 255; /** @type {?} */ const babs = b / 255; /** @type {?} */ const v = Math.max(rabs, gabs, babs); /** @type {?} */ const diff = v - Math.min(rabs, gabs, babs); /** @type {?} */ const diffc = (/** * @param {?} c * @return {?} */ c => (v - c) / 6 / diff + 1 / 2); /** @type {?} */ const percentRoundFn = (/** * @param {?} num * @return {?} */ num => Math.round(num * 100) / 100); if (diff === 0) { h = s = 0; } else { s = diff / v; /** @type {?} */ const rr = diffc(rabs); /** @type {?} */ const gg = diffc(gabs); /** @type {?} */ const 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 {?} */ const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; hex = hex.replace(shorthandRegex, (/** * @param {?} m * @param {?} r * @param {?} g * @param {?} b * @return {?} */ (m, r, g, b) => { return r + r + g + g + b + b; })); /** @type {?} */ 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; } /** * @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 {?} */ const h = hue / 60; /** @type {?} */ const s = saturation / 100; /** @type {?} */ let v = value / 100; /** @type {?} */ const hi = Math.floor(h) % 6; /** @type {?} */ const f = h - Math.floor(h); /** @type {?} */ const p = 255 * v * (1 - s); /** @type {?} */ const q = 255 * v * (1 - (s * f)); /** @type {?} */ const t = 255 * v * (1 - (s * (1 - f))); v *= 255; /** @type {?} */ let 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 {?} */ const rgbColor = hsvToRgb(h, s, v); return rgbToHex(rgbColor.r, rgbColor.g, rgbColor.b); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvY29sb3ItcGlja2VyL2NvbG9yLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzs7UUFDMUIsQ0FBQzs7UUFDRCxDQUFDOztVQUVDLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRzs7VUFDZCxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUc7O1VBQ2QsSUFBSSxHQUFHLENBQUMsR0FBRyxHQUFHOztVQUNkLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDOztVQUM5QixJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7O1VBQ3JDLEtBQUs7Ozs7SUFBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTs7VUFDdkMsY0FBYzs7OztJQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFBO0lBQ3pELElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtRQUNkLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ1g7U0FBTTtRQUNMLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDOztjQUNQLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDOztjQUNoQixFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQzs7Y0FDaEIsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFFdEIsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ2QsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDYjthQUFNLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNyQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUN2QjthQUFNLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNyQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNULENBQUMsSUFBSSxDQUFDLENBQUM7U0FDUjthQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ1I7S0FDRjtJQUNELE9BQU87UUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUMxQixDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7S0FDM0IsQ0FBQztBQUNKLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFHOzs7VUFFcEIsY0FBYyxHQUFHLGtDQUFrQztJQUN6RCxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjOzs7Ozs7O0lBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUMsRUFBQyxDQUFDOztVQUVHLE1BQU0sR0FBRywyQ0FBMkMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQzNCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNYLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzs7Ozs7SUFDOUIsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxPQUFPLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUs7O1VBQ3ZDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRTs7VUFDWixDQUFDLEdBQUcsVUFBVSxHQUFHLEdBQUc7O1FBQ3RCLENBQUMsR0FBRyxLQUFLLEdBQUcsR0FBRzs7VUFDYixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDOztVQUV0QixDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDOztVQUNyQixDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7O1VBQ3JCLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOztVQUMzQixDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsSUFBSSxHQUFHLENBQUM7O1FBRUwsUUFBUTtJQUNaLFFBQVEsRUFBRSxFQUFFO1FBQ1YsS0FBSyxDQUFDO1lBQ0osUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNO1FBQ1IsS0FBSyxDQUFDO1lBQ0osUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNO1FBQ1IsS0FBSyxDQUFDO1lBQ0osUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNO1FBQ1IsS0FBSyxDQUFDO1lBQ0osUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNO1FBQ1IsS0FBSyxDQUFDO1lBQ0osUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNO1FBQ1IsS0FBSyxDQUFDO1lBQ0osUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNO0tBQ1Q7SUFFRCxPQUFPO1FBQ0wsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDZCxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQ2YsQ0FBQztBQUNKLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzs7VUFDeEIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcmdiVG9Ic3YociwgZywgYikge1xuICBsZXQgaDtcbiAgbGV0IHM7XG5cbiAgY29uc3QgcmFicyA9IHIgLyAyNTU7XG4gIGNvbnN0IGdhYnMgPSBnIC8gMjU1O1xuICBjb25zdCBiYWJzID0gYiAvIDI1NTtcbiAgY29uc3QgdiA9IE1hdGgubWF4KHJhYnMsIGdhYnMsIGJhYnMpO1xuICBjb25zdCBkaWZmID0gdiAtIE1hdGgubWluKHJhYnMsIGdhYnMsIGJhYnMpO1xuICBjb25zdCBkaWZmYyA9IGMgPT4gKHYgLSBjKSAvIDYgLyBkaWZmICsgMSAvIDI7XG4gIGNvbnN0IHBlcmNlbnRSb3VuZEZuID0gbnVtID0+IE1hdGgucm91bmQobnVtICogMTAwKSAvIDEwMDtcbiAgaWYgKGRpZmYgPT09IDApIHtcbiAgICBoID0gcyA9IDA7XG4gIH0gZWxzZSB7XG4gICAgcyA9IGRpZmYgLyB2O1xuICAgIGNvbnN0IHJyID0gZGlmZmMocmFicyk7XG4gICAgY29uc3QgZ2cgPSBkaWZmYyhnYWJzKTtcbiAgICBjb25zdCBiYiA9IGRpZmZjKGJhYnMpO1xuXG4gICAgaWYgKHJhYnMgPT09IHYpIHtcbiAgICAgIGggPSBiYiAtIGdnO1xuICAgIH0gZWxzZSBpZiAoZ2FicyA9PT0gdikge1xuICAgICAgaCA9ICgxIC8gMykgKyByciAtIGJiO1xuICAgIH0gZWxzZSBpZiAoYmFicyA9PT0gdikge1xuICAgICAgaCA9ICgyIC8gMykgKyBnZyAtIHJyO1xuICAgIH1cbiAgICBpZiAoaCA8IDApIHtcbiAgICAgIGggKz0gMTtcbiAgICB9IGVsc2UgaWYgKGggPiAxKSB7XG4gICAgICBoIC09IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgaDogTWF0aC5yb3VuZChoICogMzYwKSxcbiAgICBzOiBwZXJjZW50Um91bmRGbihzICogMTAwKSxcbiAgICB2OiBwZXJjZW50Um91bmRGbih2ICogMTAwKVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4VG9SZ2IoaGV4KSB7XG4gIC8vIEV4cGFuZCBzaG9ydGhhbmQgZm9ybSAoZS5nLiBcIjAzRlwiKSB0byBmdWxsIGZvcm0gKGUuZy4gXCIwMDMzRkZcIilcbiAgY29uc3Qgc2hvcnRoYW5kUmVnZXggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xuICBoZXggPSBoZXgucmVwbGFjZShzaG9ydGhhbmRSZWdleCwgKG0sIHIsIGcsIGIpID0+IHtcbiAgICByZXR1cm4gciArIHIgKyBnICsgZyArIGIgKyBiO1xuICB9KTtcblxuICBjb25zdCByZXN1bHQgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4KTtcbiAgcmV0dXJuIHJlc3VsdCA/IHtcbiAgICByOiBwYXJzZUludChyZXN1bHRbMV0sIDE2KSxcbiAgICBnOiBwYXJzZUludChyZXN1bHRbMl0sIDE2KSxcbiAgICBiOiBwYXJzZUludChyZXN1bHRbM10sIDE2KVxuICB9IDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJnYlRvSGV4KHIsIGcsIGIpIHtcbiAgZnVuY3Rpb24gaGV4KHgpIHtcbiAgICAgIHJldHVybiAoJzAnICsgcGFyc2VJbnQoeCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7XG4gIH1cbiAgcmV0dXJuICcjJyArIGhleChyKSArIGhleChnKSArIGhleChiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvUmdiKGh1ZSwgc2F0dXJhdGlvbiwgdmFsdWUpIHtcbiAgY29uc3QgaCA9IGh1ZSAvIDYwO1xuICBjb25zdCBzID0gc2F0dXJhdGlvbiAvIDEwMDtcbiAgbGV0IHYgPSB2YWx1ZSAvIDEwMDtcbiAgY29uc3QgaGkgPSBNYXRoLmZsb29yKGgpICUgNjtcblxuICBjb25zdCBmID0gaCAtIE1hdGguZmxvb3IoaCk7XG4gIGNvbnN0IHAgPSAyNTUgKiB2ICogKDEgLSBzKTtcbiAgY29uc3QgcSA9IDI1NSAqIHYgKiAoMSAtIChzICogZikpO1xuICBjb25zdCB0ID0gMjU1ICogdiAqICgxIC0gKHMgKiAoMSAtIGYpKSk7XG4gIHYgKj0gMjU1O1xuXG4gIGxldCByZ2JBcnJheTtcbiAgc3dpdGNoIChoaSkge1xuICAgIGNhc2UgMDpcbiAgICAgIHJnYkFycmF5ID0gW3YsIHQsIHBdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxOlxuICAgICAgcmdiQXJyYXkgPSBbcSwgdiwgcF07XG4gICAgICBicmVhaztcbiAgICBjYXNlIDI6XG4gICAgICByZ2JBcnJheSA9IFtwLCB2LCB0XTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzpcbiAgICAgIHJnYkFycmF5ID0gW3AsIHEsIHZdO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0OlxuICAgICAgcmdiQXJyYXkgPSBbdCwgcCwgdl07XG4gICAgICBicmVhaztcbiAgICBjYXNlIDU6XG4gICAgICByZ2JBcnJheSA9IFt2LCBwLCBxXTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByOiByZ2JBcnJheVswXSxcbiAgICBnOiByZ2JBcnJheVsxXSxcbiAgICBiOiByZ2JBcnJheVsyXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhzdlRvSGV4KGgsIHMsIHYpIHtcbiAgY29uc3QgcmdiQ29sb3IgPSBoc3ZUb1JnYihoLCBzLCB2KTtcbiAgcmV0dXJuIHJnYlRvSGV4KHJnYkNvbG9yLnIsIHJnYkNvbG9yLmcsIHJnYkNvbG9yLmIpO1xufVxuIl19