UNPKG

vxe-pc-ui

Version:
1 lines 3.02 kB
"use strict";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}}const 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)}const hexRE=/^(#?)([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;function hasHex(e){return e&&hexRE.test(e)}function parseColor(e){var r,t={value:"",type:"",hex:"",hexV:"",hexA:"",r:0,g:0,b:0,a:1};return e&&((r=e.match(hexRE))&&(t.value=e,t.type="hex",t.hex=e,t.hexV=r[2],t.hexA=r[3]||"",t.a=(r[3]?hexAlphaKeyMaps[r[3].toUpperCase()]:1)||1),r=e.match(rgbRE))&&(t.value=e,t.type=r[6]?"rgba":"rgb",t.r=parseInt(r[2]),t.g=parseInt(r[3]),t.b=parseInt(r[4]),t.a=r[7]?parseInt(r[6])/100:r[6]?parseFloat(r[6]):1),t}function updateColorAlpha(e,r=1){var{type:e,hexV:t,r:a,g:o,b:s}=parseColor(e);return"rgb"===e||"rgba"===e?toRgb(a,o,s,r):"hex"===e?"#"+t+(1!==r&&hexAlphaNumMaps[r]||""):""}function toRgb(e,r,t,a){return _xeUtils.default.eqNull(a)?`rgb(${e},${r},${t})`:`rgba(${e},${r},${t},${a})`}function rgbToHex(e){var r,t,a;return e?({r:e,g:r,b:t,a=1}=e,("#"+e.toString(16).padStart(2,"0")+r.toString(16).padStart(2,"0")+t.toString(16).padStart(2,"0")+(1!==a&&hexAlphaNumMaps[a]||"")).toUpperCase()):""}function rgbToHsv(e){if(!e)return null;var{r:e,g:r,b:t}=e,e=e/255,r=r/255,t=t/255;let a=0,o=0;const s=Math.max(e,r,t),p=s-Math.min(e,r,t);var n,h,u=e=>(s-e)/6/p+.5;return 0==p?a=o=0:(o=p/s,n=u(e),h=u(r),u=u(t),e===s?a=u-h:r===s?a=1/3+n-u:t===s&&(a=2/3+h-n),a<0?a+=1:1<a&&--a),{h:Math.round(360*a),s:_xeUtils.default.round(o,2),v:_xeUtils.default.round(s,2)}}function hsvToRgb(e,r,t){let a=0,o=0,s=0;var p=Math.floor(e/60),e=e/60-p,n=t*(1-r),h=t*(1-e*r),u=t*(1-(1-e)*r);switch(p){case 0:a=t,o=u,s=n;break;case 1:a=h,o=t,s=n;break;case 2:a=n,o=t,s=u;break;case 3:a=n,o=h,s=t;break;case 4:a=u,o=n,s=t;break;case 5:a=t,o=n,s=h}return{r:Math.round(255*a),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}