UNPKG

vxe-pc-ui

Version:
1 lines 3 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.hasHex=hasHex,exports.hasRgb=hasRgb,exports.hexToHsv=hexToHsv,exports.hexToRgb=hexToRgb,exports.hsvToRgb=hsvToRgb,exports.parseColor=parseColor,exports.rgbToHex=rgbToHex,exports.rgbToHsv=rgbToHsv,exports.toRgb=toRgb,exports.updateColorAlpha=updateColorAlpha;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let hexAlphaKeyMaps={},hexAlphaNumMaps={},rgbRE=("FF,FC,FA,F7,F5,F2,F0,ED,EB,E8,E6,E3,E0,DE,DB,D9,D6,D4,D1,CF,CC,C9,C7,C4,C2,BF,BD,BA,B8,B5,B3,B0,AD,AB,A8,A6,A3,A1,9E,9C,99,96,94,91,8F,8C,8A,87,85,82,80,7D,7A,78,75,73,70,6E,6B,69,66,63,61,5E,5C,59,57,54,52,4F,4D,4A,47,45,42,40,3D,3B,38,36,33,30,2E,2B,29,26,24,21,1F,1C,1A,17,14,12,0F,0D,0A,08,05,03,00".split(",").forEach((e,r)=>{r=(100-r)/100;hexAlphaKeyMaps[e]=r,hexAlphaNumMaps[r]=e}),/^rgb(a?)\((\d{1,3})[,\s]+(\d{1,3})[,\s]+(\d{1,3})([,//\s]+([0-9.]{1,4})(%?))?\)$/);function hasRgb(e){return e&&rgbRE.test(e)}let hexRE=/^(#?)([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;function hasHex(e){return e&&hexRE.test(e)}function parseColor(e){var r,a={value:"",type:"",hex:"",hexV:"",hexA:"",r:0,g:0,b:0,a:1};return e&&((r=e.match(hexRE))&&(a.value=e,a.type="hex",a.hex=e,a.hexV=r[2],a.hexA=r[3]||"",a.a=(r[3]?hexAlphaKeyMaps[r[3].toUpperCase()]:1)||1),r=e.match(rgbRE))&&(a.value=e,a.type=r[6]?"rgba":"rgb",a.r=parseInt(r[2]),a.g=parseInt(r[3]),a.b=parseInt(r[4]),a.a=r[7]?parseInt(r[6])/100:r[6]?parseFloat(r[6]):1),a}function updateColorAlpha(e,r=1){var{type:e,hexV:a,r:t,g:o,b:s}=parseColor(e);return"rgb"===e||"rgba"===e?toRgb(t,o,s,r):"hex"===e?"#"+a+(1!==r&&hexAlphaNumMaps[r]||""):""}function toRgb(e,r,a,t){return _xeUtils.default.eqNull(t)?`rgb(${e},${r},${a})`:`rgba(${e},${r},${a},${t})`}function rgbToHex(e){var r,a,t;return e?({r:e,g:r,b:a,a:t=1}=e,("#"+e.toString(16).padStart(2,"0")+r.toString(16).padStart(2,"0")+a.toString(16).padStart(2,"0")+(1!==t&&hexAlphaNumMaps[t]||"")).toUpperCase()):""}function rgbToHsv(e){if(!e)return null;var{r:e,g:r,b:a}=e,e=e/255,r=r/255,a=a/255;let t=0,o=0,s=Math.max(e,r,a),p=s-Math.min(e,r,a);var h,n,u=e=>(s-e)/6/p+.5;return 0==p?t=o=0:(o=p/s,h=u(e),n=u(r),u=u(a),e===s?t=u-n:r===s?t=1/3+h-u:a===s&&(t=2/3+n-h),t<0?t+=1:1<t&&--t),{h:Math.round(360*t),s:_xeUtils.default.round(o,2),v:_xeUtils.default.round(s,2)}}function hsvToRgb(e,r,a){let t=0,o=0,s=0;var p=Math.floor(e/60),e=e/60-p,h=a*(1-r),n=a*(1-e*r),u=a*(1-(1-e)*r);switch(p){case 0:t=a,o=u,s=h;break;case 1:t=n,o=a,s=h;break;case 2:t=h,o=a,s=u;break;case 3:t=h,o=n,s=a;break;case 4:t=u,o=h,s=a;break;case 5:t=a,o=h,s=n}return{r:Math.round(255*t),g:Math.round(255*o),b:Math.round(255*s)}}function hexToHsv(e){e=hexToRgb(e);return e?rgbToHsv(e):null}function hexToRgb(e){if(e){e=e.match(/^(#?)([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})([0-9A-Fa-f]{2})?$/);if(e)return{r:parseInt(e[2],16),g:parseInt(e[3],16),b:parseInt(e[4],16),a:(e[5]?hexAlphaKeyMaps[e[5].toUpperCase()]:1)||1}}return null}