UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 4.01 kB
var UNDEF,BGRATIOSTRING,symbolStr={circle:'circle',triangle:'triangle',square:'square',diamond:'diamond',poly:'poly_',spoke:'spoke_'},COLOR_BLACK='000000',COLOR_WHITE='FFFFFF',mathAbs=Math.abs,stripWhitespace=/\s+/g,dropHash=/^#?/,validhexcolor=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,COMMA=',',startsRGBA=/^rgba/i,cleanColorCode=/[#\s]/ig,BLANK='',HASHSTRING='#';function parsePointValue(a,b){return a=a||!1===a||0===a?+a:NaN,isNaN(a)?null:b?mathAbs(a):a}function getFirstColor(a,b){return a=a.split(COMMA)[b||0],a=a.replace(stripWhitespace,BLANK),a==BLANK&&(a=COLOR_BLACK),a.replace(dropHash,HASHSTRING)}function getFirstAlpha(a){return a=parseInt(a,10),(isNaN(a)||100<a||0>a)&&(a=100),a}function getAlpha(a,b){return a=+a,a=isNaN(a)?100:a,b!==UNDEF&&(a=a*b/100),a%101}function parseAlpha(a,b,c){var d,e=a.split(COMMA);for(c!==UNDEF&&(c=+c.split(COMMA)[0]),c=isNaN(c)?UNDEF:c,e[0]=getAlpha(e[0],c),d=1;d<b;d+=1)e[d]=e[0]*getAlpha(e[d],c)/100;return e.join(COMMA)}function convertColor(a,b,c){var d,e,f=0,g=0,h=0;if(c&&c.match(startsRGBA)&&(e=c.split(COMMA),f=e[0].slice(e[0].indexOf('(')+1),g=e[1],h=e[2],!b&&0!==b&&(b=parseInt(100*e[3].slice(0,e[3].indexOf(')')),10))),a)if(a.match(startsRGBA))e=a.split(COMMA),f=e[0].slice(e[0].indexOf('(')+1),g=e[1],h=e[2];else{switch(d=a.replace(cleanColorCode,BLANK).split(COMMA)[0],d.length){case 3:d=d.charAt(0)+d.charAt(0)+d.charAt(1)+d.charAt(1)+d.charAt(2)+d.charAt(2);break;case 6:break;default:d=(d+COLOR_WHITE).slice(0,6);}f=parseInt(d.slice(0,2),16)||0,g=parseInt(d.slice(2,4),16)||0,h=parseInt(d.slice(4,6),16)||0}return b||0===b||(b=100),'string'==typeof b&&(b=b.split(COMMA)[0]),b=parseInt(b,10)/100,'rgba('+f+COMMA+g+COMMA+h+COMMA+b+')'}function getDarkColor(a,b){var c=Math.floor;b=0>b||100<b?100:b,b/=100,a=a.replace(cleanColorCode,BLANK);var d=parseInt(a,16),e=c(d/65536),f=c((d-65536*e)/256);return(COLOR_BLACK+(e*b<<16|f*b<<8|(d-65536*e-256*f)*b).toString(16)).slice(-6)}function getLightColor(a,b){var c=Math.floor;b=0>b||100<b?100:b,b/=100,a=a.replace(cleanColorCode,BLANK);var d=parseInt(a,16),e=c(d/65536),f=c((d-65536*e)/256);return(COLOR_BLACK+(256-(256-e)*b<<16|256-(256-f)*b<<8|256-(256-(d-65536*e-256*f))*b).toString(16)).slice(-6)}function mapSymbolName(a,b){var c=symbolStr.circle;return a=parsePointValue(a),3<=a&&(c=(b?symbolStr.spoke:symbolStr.poly)+a),c}function getColumnColor(a,b,c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q;return l=a.split(COMMA),m=b.split(COMMA),n=f.split(COMMA),q=g.split(COMMA),a=a.replace(/\s/g,BLANK).replace(/\,$/,BLANK),i?j={FCcolor:{color:l[0],alpha:m[0]}}:e?(o=l[0],p=m[0],j={FCcolor:{color:getDarkColor(o,75)+COMMA+getLightColor(o,10)+COMMA+getDarkColor(o,90)+COMMA+getLightColor(o,55)+COMMA+getDarkColor(o,80),alpha:p+COMMA+p+COMMA+p+COMMA+p+COMMA+p,ratio:'0,11,14,57,18',angle:h?'90':'0'}},n=[getDarkColor(o,70)]):(b=parseAlpha(b,l.length),j={FCcolor:{color:a,alpha:b,ratio:c,angle:h?-d:d}}),k={FCcolor:{color:n[0],alpha:q[0]}},[j,k]}function getPointColor(a,b){var c,d,e;return a=getFirstColor(a),b=getFirstAlpha(b),d=getLightColor(a,70),e=getDarkColor(a,50),c={FCcolor:{gradientUnits:'objectBoundingBox',cx:.4,cy:.4,r:'100%',color:d+COMMA+e,alpha:b+COMMA+b,ratio:BGRATIOSTRING,radialGradient:!0}},c}function getAngle(a,b,c){var d=180*Math.atan(b/a)/Math.PI;return 2==c?d=180-d:3==c?d+=180:4==c&&(d=360-d),d}function parseColor(a){return a.replace(cleanColorCode,BLANK).replace(dropHash,HASHSTRING)}function getValidColor(a){return validhexcolor.test(parseColor(a))&&a}function RGBtoHex(a){return(COLOR_BLACK+(a[0]<<16|a[1]<<8|a[2]).toString(16)).slice(-6)}function rawRGBtoHEX(a){var b,c=a.match(/[\d+]+/g);return b=c.splice(0,3),(COLOR_BLACK+(b[0]<<16|b[1]<<8|b[2]).toString(16)).slice(-6)}function HEXtoRGB(a){var c=Math.floor,d=parseInt(a,16),e=c(d/65536),f=c((d-65536*e)/256),g=c(d-65536*e-256*f);return[e,f,g]}export{convertColor,getDarkColor,getLightColor,mapSymbolName,getColumnColor,getPointColor,getAngle,parseColor,getValidColor,RGBtoHex,rawRGBtoHEX,HEXtoRGB,parsePointValue,getFirstColor,getFirstAlpha};