UNPKG

ng-antd-color-picker

Version:

The angular version of the color-picker component based on antd styles.

44 lines 5.89 kB
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1hbnRkLWNvbG9yLXBpY2tlci9zcmMvbGliL2ludGVyZmFjZXMvY29sb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUErQixTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFhLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXhGLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBb0IsRUFBYyxFQUFFO0lBQzFELElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUU7UUFDdEUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEtBQVksQ0FBQztRQUN0QyxPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO0tBQ0g7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2xELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDcEM7SUFDRCxPQUFPLEtBQW1CLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxPQUFPLEtBQU0sU0FBUSxTQUFTO0lBQ2xDLFlBQVksS0FBb0I7UUFDOUIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLFNBQVMsR0FBRyxPQUFPLEdBQUcsS0FBSyxVQUFVLE1BQU0sU0FBUyxJQUFJLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsUUFBUSxHQUFHLEtBQUssVUFBVSxNQUFNLFNBQVMsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN4RyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hFLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQzdCLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBZ0MsQ0FBQzthQUM3QztTQUNGO1FBRUQsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUM3QixPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9ySW5wdXQsIEhTVkEsIE51bWJlcmlmeSwgVGlueUNvbG9yIH0gZnJvbSAnQGN0cmwvdGlueWNvbG9yJztcblxuaW1wb3J0IHR5cGUgeyBDb2xvckdlbklucHV0LCBIU0IsIEhTQkEgfSBmcm9tICcuL3R5cGUnO1xuXG5leHBvcnQgY29uc3QgZ2V0Um91bmROdW1iZXIgPSAodmFsdWU6IG51bWJlcik6IG51bWJlciA9PiBNYXRoLnJvdW5kKE51bWJlcih2YWx1ZSB8fCAwKSk7XG5cbmNvbnN0IGNvbnZlcnRIc2IySHN2ID0gKGNvbG9yOiBDb2xvckdlbklucHV0KTogQ29sb3JJbnB1dCA9PiB7XG4gIGlmIChjb2xvciAmJiB0eXBlb2YgY29sb3IgPT09ICdvYmplY3QnICYmICdoJyBpbiBjb2xvciAmJiAnYicgaW4gY29sb3IpIHtcbiAgICBjb25zdCB7IGIsIC4uLnJlc2V0cyB9ID0gY29sb3IgYXMgSFNCO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNldHMsXG4gICAgICB2OiBiXG4gICAgfTtcbiAgfVxuICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyAmJiAvaHNiLy50ZXN0KGNvbG9yKSkge1xuICAgIHJldHVybiBjb2xvci5yZXBsYWNlKC9oc2IvLCAnaHN2Jyk7XG4gIH1cbiAgcmV0dXJuIGNvbG9yIGFzIENvbG9ySW5wdXQ7XG59O1xuXG5leHBvcnQgY2xhc3MgQ29sb3IgZXh0ZW5kcyBUaW55Q29sb3Ige1xuICBjb25zdHJ1Y3Rvcihjb2xvcjogQ29sb3JHZW5JbnB1dCkge1xuICAgIHN1cGVyKGNvbnZlcnRIc2IySHN2KGNvbG9yKSk7XG4gIH1cblxuICB0b0hzYlN0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhzYiA9IHRoaXMudG9Ic2IoKTtcbiAgICBjb25zdCBzYXR1cmF0aW9uID0gZ2V0Um91bmROdW1iZXIoaHNiLnMgKiAxMDApO1xuICAgIGNvbnN0IGxpZ2h0bmVzcyA9IGdldFJvdW5kTnVtYmVyKGhzYi5iICogMTAwKTtcbiAgICBjb25zdCBodWUgPSBnZXRSb3VuZE51bWJlcihoc2IuaCk7XG4gICAgY29uc3QgYWxwaGEgPSBoc2IuYTtcbiAgICBjb25zdCBoc2JTdHJpbmcgPSBgaHNiKCR7aHVlfSwgJHtzYXR1cmF0aW9ufSUsICR7bGlnaHRuZXNzfSUpYDtcbiAgICBjb25zdCBoc2JhU3RyaW5nID0gYGhzYmEoJHtodWV9LCAke3NhdHVyYXRpb259JSwgJHtsaWdodG5lc3N9JSwgJHthbHBoYS50b0ZpeGVkKGFscGhhID09PSAwID8gMCA6IDIpfSlgO1xuICAgIHJldHVybiBhbHBoYSA9PT0gMSA/IGhzYlN0cmluZyA6IGhzYmFTdHJpbmc7XG4gIH1cblxuICB0b0hzYigpOiBOdW1iZXJpZnk8SFNCQT4ge1xuICAgIGxldCBoc3YgPSB0aGlzLnRvSHN2KCk7XG4gICAgaWYgKHR5cGVvZiB0aGlzLm9yaWdpbmFsSW5wdXQgPT09ICdvYmplY3QnICYmIHRoaXMub3JpZ2luYWxJbnB1dCkge1xuICAgICAgaWYgKCdoJyBpbiB0aGlzLm9yaWdpbmFsSW5wdXQpIHtcbiAgICAgICAgaHN2ID0gdGhpcy5vcmlnaW5hbElucHV0IGFzIE51bWJlcmlmeTxIU1ZBPjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IHYsIC4uLnJlc2V0cyB9ID0gaHN2O1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNldHMsXG4gICAgICBiOiBoc3YudlxuICAgIH07XG4gIH1cbn1cbiJdfQ==