theme-lib
Version:
This is a simple example Angular Library published to npm.
65 lines • 5.96 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export class NbColorHelper {
/**
* @param {?} color
* @param {?} weight
* @return {?}
*/
static shade(color, weight) {
return NbColorHelper.mix('#000000', color, weight);
}
/**
* @param {?} color
* @param {?} weight
* @return {?}
*/
static tint(color, weight) {
return NbColorHelper.mix('#ffffff', color, weight);
}
/**
* @param {?} color1
* @param {?} color2
* @param {?} weight
* @return {?}
*/
static mix(color1, color2, weight) {
/** @type {?} */
const d2h = (d) => d.toString(16);
/** @type {?} */
const h2d = (h) => parseInt(h, 16);
/** @type {?} */
let result = '#';
for (let i = 1; i < 7; i += 2) {
/** @type {?} */
const firstPart = h2d(color1.substr(i, 2));
/** @type {?} */
const secondPart = h2d(color2.substr(i, 2));
/** @type {?} */
const resultPart = d2h(Math.floor(secondPart + (firstPart - secondPart) * (weight / 100.0)));
result += ('0' + resultPart).slice(-2);
}
return result;
}
/**
* @param {?} hex
* @param {?} alpha
* @return {?}
*/
static hexToRgbA(hex, alpha) {
/** @type {?} */
let c;
if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {
c = hex.substring(1).split('');
if (c.length === 3) {
c = [c[0], c[0], c[1], c[1], c[2], c[2]];
}
c = '0x' + c.join('');
return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',' + alpha + ')';
}
throw new Error('Bad Hex');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuaGVscGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2NvbG9yLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsTUFBTSxPQUFPLGFBQWE7Ozs7OztJQUN4QixNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNO1FBQ3hCLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7Ozs7OztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU07UUFDdkIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7Ozs7OztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNOztjQUN6QixHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDOztjQUMzQixHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDOztZQUU5QixNQUFNLEdBQUcsR0FBRztRQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7O2tCQUN2QixTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOztrQkFDcEMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs7a0JBQ3JDLFVBQVUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM1RixNQUFNLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7Ozs7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLOztZQUNyQixDQUFDO1FBQ0wsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ2xCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUM7WUFDRCxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEIsT0FBTyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7U0FDM0Y7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBOYkNvbG9ySGVscGVyIHtcclxuICBzdGF0aWMgc2hhZGUoY29sb3IsIHdlaWdodCkge1xyXG4gICAgcmV0dXJuIE5iQ29sb3JIZWxwZXIubWl4KCcjMDAwMDAwJywgY29sb3IsIHdlaWdodCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGludChjb2xvciwgd2VpZ2h0KSB7XHJcbiAgICByZXR1cm4gTmJDb2xvckhlbHBlci5taXgoJyNmZmZmZmYnLCBjb2xvciwgd2VpZ2h0KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBtaXgoY29sb3IxLCBjb2xvcjIsIHdlaWdodCkge1xyXG4gICAgY29uc3QgZDJoID0gKGQpID0+IGQudG9TdHJpbmcoMTYpO1xyXG4gICAgY29uc3QgaDJkID0gKGgpID0+IHBhcnNlSW50KGgsIDE2KTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gJyMnO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCA3OyBpICs9IDIpIHtcclxuICAgICAgY29uc3QgZmlyc3RQYXJ0ID0gaDJkKGNvbG9yMS5zdWJzdHIoaSwgMikpO1xyXG4gICAgICBjb25zdCBzZWNvbmRQYXJ0ID0gaDJkKGNvbG9yMi5zdWJzdHIoaSwgMikpO1xyXG4gICAgICBjb25zdCByZXN1bHRQYXJ0ID0gZDJoKE1hdGguZmxvb3Ioc2Vjb25kUGFydCArIChmaXJzdFBhcnQgLSBzZWNvbmRQYXJ0KSAqICh3ZWlnaHQgLyAxMDAuMCkpKTtcclxuICAgICAgcmVzdWx0ICs9ICgnMCcgKyByZXN1bHRQYXJ0KS5zbGljZSgtMik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGhleFRvUmdiQShoZXgsIGFscGhhKSB7XHJcbiAgICBsZXQgYztcclxuICAgIGlmICgvXiMoW0EtRmEtZjAtOV17M30pezEsMn0kLy50ZXN0KGhleCkpIHtcclxuICAgICAgYyA9IGhleC5zdWJzdHJpbmcoMSkuc3BsaXQoJycpO1xyXG4gICAgICBpZiAoYy5sZW5ndGggPT09IDMpIHtcclxuICAgICAgICBjID0gW2NbMF0sIGNbMF0sIGNbMV0sIGNbMV0sIGNbMl0sIGNbMl1dO1xyXG4gICAgICB9XHJcbiAgICAgIGMgPSAnMHgnICsgYy5qb2luKCcnKTtcclxuICAgICAgcmV0dXJuICdyZ2JhKCcgKyBbKGMgPj4gMTYpICYgMjU1LCAoYyA+PiA4KSAmIDI1NSwgYyAmIDI1NV0uam9pbignLCcpICsgJywnICsgYWxwaGEgKyAnKSc7XHJcbiAgICB9XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JhZCBIZXgnKTtcclxuICB9XHJcbn1cclxuIl19