UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

48 lines 6.37 kB
/** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { TinyColor } from '@ctrl/tinycolor'; export const getRoundNumber = (value) => Math.round(Number(value || 0)); const convertHsb2Hsv = (color) => { if (color && typeof color === 'object' && 'h' in color && 'b' in color) { const { b, ...resets } = color; return { ...resets, v: b }; } if (typeof color === 'string' && /hsb/.test(color)) { return color.replace(/hsb/, 'hsv'); } return color; }; export class Color extends TinyColor { constructor(color) { super(convertHsb2Hsv(color)); } toHsbString() { const hsb = this.toHsb(); const saturation = getRoundNumber(hsb.s * 100); const lightness = getRoundNumber(hsb.b * 100); const hue = getRoundNumber(hsb.h); const alpha = hsb.a; const hsbString = `hsb(${hue}, ${saturation}%, ${lightness}%)`; const hsbaString = `hsba(${hue}, ${saturation}%, ${lightness}%, ${alpha.toFixed(alpha === 0 ? 0 : 2)})`; return alpha === 1 ? hsbString : hsbaString; } toHsb() { let hsv = this.toHsv(); if (typeof this.originalInput === 'object' && this.originalInput) { if ('h' in this.originalInput) { hsv = this.originalInput; } } const { v, ...resets } = hsv; return { ...resets, b: hsv.v }; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbG9yLXBpY2tlci9zcmMvaW50ZXJmYWNlcy9jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQStCLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXpFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFeEYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFvQixFQUFjLEVBQUU7SUFDMUQsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEdBQUcsSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxLQUFZLENBQUM7UUFDdEMsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUNULENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsT0FBTyxLQUFtQixDQUFDO0FBQzdCLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxLQUFNLFNBQVEsU0FBUztJQUNsQyxZQUFZLEtBQW9CO1FBQzlCLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMvQyxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM5QyxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEIsTUFBTSxTQUFTLEdBQUcsT0FBTyxHQUFHLEtBQUssVUFBVSxNQUFNLFNBQVMsSUFBSSxDQUFDO1FBQy9ELE1BQU0sVUFBVSxHQUFHLFFBQVEsR0FBRyxLQUFLLFVBQVUsTUFBTSxTQUFTLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDeEcsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2pFLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDOUIsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFnQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUM3QixPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENvbG9ySW5wdXQsIEhTVkEsIE51bWJlcmlmeSwgVGlueUNvbG9yIH0gZnJvbSAnQGN0cmwvdGlueWNvbG9yJztcblxuaW1wb3J0IHR5cGUgeyBDb2xvckdlbklucHV0LCBIU0IsIEhTQkEgfSBmcm9tICcuL3R5cGUnO1xuXG5leHBvcnQgY29uc3QgZ2V0Um91bmROdW1iZXIgPSAodmFsdWU6IG51bWJlcik6IG51bWJlciA9PiBNYXRoLnJvdW5kKE51bWJlcih2YWx1ZSB8fCAwKSk7XG5cbmNvbnN0IGNvbnZlcnRIc2IySHN2ID0gKGNvbG9yOiBDb2xvckdlbklucHV0KTogQ29sb3JJbnB1dCA9PiB7XG4gIGlmIChjb2xvciAmJiB0eXBlb2YgY29sb3IgPT09ICdvYmplY3QnICYmICdoJyBpbiBjb2xvciAmJiAnYicgaW4gY29sb3IpIHtcbiAgICBjb25zdCB7IGIsIC4uLnJlc2V0cyB9ID0gY29sb3IgYXMgSFNCO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNldHMsXG4gICAgICB2OiBiXG4gICAgfTtcbiAgfVxuICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyAmJiAvaHNiLy50ZXN0KGNvbG9yKSkge1xuICAgIHJldHVybiBjb2xvci5yZXBsYWNlKC9oc2IvLCAnaHN2Jyk7XG4gIH1cbiAgcmV0dXJuIGNvbG9yIGFzIENvbG9ySW5wdXQ7XG59O1xuXG5leHBvcnQgY2xhc3MgQ29sb3IgZXh0ZW5kcyBUaW55Q29sb3Ige1xuICBjb25zdHJ1Y3Rvcihjb2xvcjogQ29sb3JHZW5JbnB1dCkge1xuICAgIHN1cGVyKGNvbnZlcnRIc2IySHN2KGNvbG9yKSk7XG4gIH1cblxuICB0b0hzYlN0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhzYiA9IHRoaXMudG9Ic2IoKTtcbiAgICBjb25zdCBzYXR1cmF0aW9uID0gZ2V0Um91bmROdW1iZXIoaHNiLnMgKiAxMDApO1xuICAgIGNvbnN0IGxpZ2h0bmVzcyA9IGdldFJvdW5kTnVtYmVyKGhzYi5iICogMTAwKTtcbiAgICBjb25zdCBodWUgPSBnZXRSb3VuZE51bWJlcihoc2IuaCk7XG4gICAgY29uc3QgYWxwaGEgPSBoc2IuYTtcbiAgICBjb25zdCBoc2JTdHJpbmcgPSBgaHNiKCR7aHVlfSwgJHtzYXR1cmF0aW9ufSUsICR7bGlnaHRuZXNzfSUpYDtcbiAgICBjb25zdCBoc2JhU3RyaW5nID0gYGhzYmEoJHtodWV9LCAke3NhdHVyYXRpb259JSwgJHtsaWdodG5lc3N9JSwgJHthbHBoYS50b0ZpeGVkKGFscGhhID09PSAwID8gMCA6IDIpfSlgO1xuICAgIHJldHVybiBhbHBoYSA9PT0gMSA/IGhzYlN0cmluZyA6IGhzYmFTdHJpbmc7XG4gIH1cblxuICB0b0hzYigpOiBOdW1iZXJpZnk8SFNCQT4ge1xuICAgIGxldCBoc3YgPSB0aGlzLnRvSHN2KCk7XG4gICAgaWYgKHR5cGVvZiB0aGlzLm9yaWdpbmFsSW5wdXQgPT09ICdvYmplY3QnICYmIHRoaXMub3JpZ2luYWxJbnB1dCkge1xuICAgICAgaWYgKCdoJyBpbiB0aGlzLm9yaWdpbmFsSW5wdXQpIHtcbiAgICAgICAgaHN2ID0gdGhpcy5vcmlnaW5hbElucHV0IGFzIE51bWJlcmlmeTxIU1ZBPjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IHYsIC4uLnJlc2V0cyB9ID0gaHN2O1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNldHMsXG4gICAgICBiOiBoc3YudlxuICAgIH07XG4gIH1cbn1cbiJdfQ==