"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var constants=require('./constants'),utils=require('./utils'),utilsLite=require("utils-lite"),Core=_interopDefault(require('./core')),defineProperty=function(e,i,t){return i in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e},_extends=Object.assign||function(e){for(var i=1;i"),e.forEach(function(e){var t=e.seriesName,r=~l.indexOf(t)?a[1]:a[0];i.push(constants.itemPoint(e.color)),i.push(t+": "),i.push(utils.getFormated(e.value,r,n)),i.push("
")}),i.join("")}}}function getValueData(e,i){for(var t=Math.max.apply(null,i),a=[],n=Math.min.apply(null,i);n<=t;n++){var r=i.indexOf(n);~r?a.push(e[r]):a.push(null)}return a}function getBarSeries(e){var i,t=e.innerRows,a=e.metrics,n=e.stack,r=e.axisSite,l=e.isHistogram,o=e.labelMap,s=e.itemStyle,u=e.label,m=e.showLine,d=void 0===m?[]:m,c=e.dimAxisType,p=e.barGap,f=e.opacity,g=e.dims,v={},x=l?r.right||[]:r.top||[],y=l?"yAxisIndex":"xAxisIndex",h=n&&utils.getStackMap(n);return a.forEach(function(e){v[e]=[]}),t.forEach(function(e){a.forEach(function(i){v[i].push(e[i])})}),!!(i=Object.keys(v).map(function(e,i){var t="value"===c?getValueData(v[e],g):v[e],a=defineProperty({name:null!=o[e]?o[e]:e,type:~d.indexOf(e)?"line":"bar",data:t},y,~x.indexOf(e)?"1":"0");n&&h[e]&&(a.stack=h[e]),u&&(a.label=u),s&&(a.itemStyle=s);var r=f||utilsLite.get(a,"itemStyle.normal.opacity");return"value"===c&&(a.barGap=p,a.barCategoryGap="1%",null==r&&(r=VALUE_AXIS_OPACITY)),null!=r&&utilsLite.set(a,"itemStyle.normal.opacity",r),a})).length&&i}function getLegend(e){var i=e.metrics,t=e.labelMap,a=e.legendName;return a||t?{data:t?i.map(function(e){return null==t[e]?e:t[e]}):i,formatter:function(e){return null!=a[e]?a[e]:e}}:{data:i}}function getDims(e,i){return e.map(function(e){return e[i[0]]})}var bar=function(e,i,t,a){var n=utilsLite.cloneDeep(i),r=t.axisSite,l=void 0===r?{}:r,o=t.dimension,s=void 0===o?[e[0]]:o,u=t.stack,m=void 0===u?{}:u,d=t.axisVisible,c=void 0===d||d,p=t.digit,f=void 0===p?2:p,g=t.dataOrder,v=void 0!==g&&g,x=t.scale,y=void 0===x?[!1,!1]:x,h=t.min,b=void 0===h?[null,null]:h,S=t.max,A=void 0===S?[null,null]:S,w=t.legendName,T=void 0===w?{}:w,N=t.labelMap,L=void 0===N?{}:N,V=t.label,M=t.itemStyle,R=t.showLine,O=t.barGap,E=void 0===O?"-100%":O,F=t.opacity,k=a.tooltipVisible,D=a.legendVisible,P=e.slice();l.top&&l.bottom?P=l.top.concat(l.bottom):l.bottom&&!l.right?P=l.bottom:t.metrics?P=t.metrics:P.splice(e.indexOf(s[0]),1);var _=t.xAxisType||["normal","normal"],j=t.yAxisType||"category",B=t.xAxisName||[],Y=t.yAxisName||"";if(v){var W=v.label,G=v.order;W&&G?n.sort(function(e,i){return"desc"===G?e[W]-i[W]:i[W]-e[W]}):console.warn("Need to provide name and order parameters")}var q=getDims(n,s),H=D&&getLegend({metrics:P,labelMap:L,legendName:T}),I=getBarDimAxis({innerRows:n,dimAxisName:Y,dimension:s,axisVisible:c,dimAxisType:j,dims:q}),C=getBarMeaAxis({meaAxisName:B,meaAxisType:_,axisVisible:c,digit:f,scale:y,min:b,max:A});return{legend:H,yAxis:I,series:getBarSeries({innerRows:n,metrics:P,stack:m,axisSite:l,isHistogram:!1,labelMap:L,itemStyle:M,label:V,showLine:R,dimAxisType:j,dimension:s,barGap:E,opacity:F,dims:q}),xAxis:C,tooltip:k&&getBarTooltip({axisSite:l,isHistogram:!1,meaAxisType:_,digit:f,labelMap:L})}},histogram=function(e,i,t,a){var n=utilsLite.cloneDeep(i),r=t.axisSite,l=void 0===r?{}:r,o=t.dimension,s=void 0===o?[e[0]]:o,u=t.stack,m=void 0===u?{}:u,d=t.axisVisible,c=void 0===d||d,p=t.digit,f=void 0===p?2:p,g=t.dataOrder,v=void 0!==g&&g,x=t.scale,y=void 0===x?[!1,!1]:x,h=t.min,b=void 0===h?[null,null]:h,S=t.max,A=void 0===S?[null,null]:S,w=t.labelMap,T=void 0===w?{}:w,N=t.legendName,L=void 0===N?{}:N,V=t.label,M=t.itemStyle,R=t.showLine,O=t.barGap,E=void 0===O?"-100%":O,F=t.opacity;if(v){var k=v.label,D=v.order;k&&D?n.sort(function(e,i){return"desc"===D?e[k]-i[k]:i[k]-e[k]}):console.warn("Need to provide name and order parameters")}var P=a.tooltipVisible,_=a.legendVisible,j=e.slice();l.left&&l.right?j=l.left.concat(l.right):l.left&&!l.right?j=l.left:t.metrics?j=t.metrics:j.splice(e.indexOf(s[0]),1);var B=t.yAxisType||["normal","normal"],Y=t.xAxisType||"category",W=t.yAxisName||[],G=t.xAxisName||"",q=getDims(n,s),H=_&&getLegend({metrics:j,labelMap:T,legendName:L}),I=getBarDimAxis({innerRows:n,dimAxisName:G,dimension:s,axisVisible:c,dimAxisType:Y,dims:q});return{legend:H,yAxis:getBarMeaAxis({meaAxisName:W,meaAxisType:B,axisVisible:c,digit:f,scale:y,min:b,max:A}),series:getBarSeries({innerRows:n,metrics:j,stack:m,axisSite:l,isHistogram:!0,labelMap:T,itemStyle:M,label:V,showLine:R,dimAxisType:Y,dimension:s,barGap:E,opacity:F,dims:q}),xAxis:I,tooltip:P&&getBarTooltip({axisSite:l,isHistogram:!0,meaAxisType:B,digit:f,labelMap:T})}};function getLineXAxis(e){var i=e.dimension,t=e.rows,a=e.xAxisName,n=e.axisVisible,r=e.xAxisType;return i.map(function(e,i){return{type:r,nameLocation:"middle",nameGap:22,name:a[i]||"",axisTick:{show:!0,lineStyle:{color:"#eee"}},data:t.map(function(i){return i[e]}),show:n}})}function getLineSeries(e){var i=e.rows,t=e.axisSite,a=e.metrics,n=e.area,r=e.stack,l=e.nullAddZero,o=e.labelMap,s=e.label,u=e.itemStyle,m=e.lineStyle,d=e.areaStyle,c=e.dimension,p=[],f={},g=r&&utils.getStackMap(r);return a.forEach(function(e){f[e]=[]}),i.forEach(function(e){a.forEach(function(i){var t=null;null!=e[i]?t=e[i]:l&&(t=0),f[i].push([e[c[0]],t])})}),a.forEach(function(e){var i={name:null!=o[e]?o[e]:e,type:"line",data:f[e]};n&&(i.areaStyle={normal:{}}),t.right&&(i.yAxisIndex=~t.right.indexOf(e)?1:0),r&&g[e]&&(i.stack=g[e]),s&&(i.label=s),u&&(i.itemStyle=u),m&&(i.lineStyle=m),d&&(i.areaStyle=d),p.push(i)}),p}function getLineYAxis(e){for(var i=e.yAxisName,t=e.yAxisType,a=e.axisVisible,n=e.scale,r=e.min,l=e.max,o=e.digit,s={type:"value",axisTick:{show:!1},show:a},u=[],m=function(e){t[e]?u[e]=_extends({},s,{axisLabel:{formatter:function(i){return utils.getFormated(i,t[e],o)}}}):u[e]=_extends({},s),u[e].name=i[e]||"",u[e].scale=n[e]||!1,u[e].min=r[e]||null,u[e].max=l[e]||null},d=0;d<2;d++)m(d);return u}function getLineTooltip(e){var i=e.axisSite,t=e.yAxisType,a=e.digit,n=e.labelMap,r=e.tooltipFormatter,l=i.right||[],o=n?l.map(function(e){return void 0===n[e]?e:n[e]}):l;return{trigger:"axis",formatter:function(e){if(r)return r.apply(null,arguments);var i=[],n=e[0],l=n.name,s=n.axisValueLabel,u=l||s;return i.push(u+"
"),e.forEach(function(e){var n,r=e.seriesName,l=e.data,s=e.marker,u=~o.indexOf(r)?t[1]:t[0],m=utilsLite.isArray(l)?l[1]:l;n=utils.getFormated(m,u,a),i.push(s),i.push(r+": "+n),i.push("
")}),i.join("")}}}function getLegend$1(e){var i=e.metrics,t=e.legendName,a=e.labelMap;return t||a?{data:a?i.map(function(e){return null==a[e]?e:a[e]}):i,formatter:function(e){return null!=t[e]?t[e]:e}}:{data:i}}var line=function(e,i,t,a){i=utilsLite.isArray(i)?i:[],e=utilsLite.isArray(e)?e:[];var n=t.axisSite,r=void 0===n?{}:n,l=t.yAxisType,o=void 0===l?["normal","normal"]:l,s=t.xAxisType,u=void 0===s?"category":s,m=t.yAxisName,d=void 0===m?[]:m,c=t.dimension,p=void 0===c?[e[0]]:c,f=t.xAxisName,g=void 0===f?[]:f,v=t.axisVisible,x=void 0===v||v,y=t.area,h=t.stack,b=t.scale,S=void 0===b?[!1,!1]:b,A=t.min,w=void 0===A?[null,null]:A,T=t.max,N=void 0===T?[null,null]:T,L=t.nullAddZero,V=void 0!==L&&L,M=t.digit,R=void 0===M?2:M,O=t.legendName,E=void 0===O?{}:O,F=t.labelMap,k=void 0===F?{}:F,D=t.label,P=t.itemStyle,_=t.lineStyle,j=t.areaStyle,B=a.tooltipVisible,Y=a.legendVisible,W=a.tooltipFormatter,G=e.slice();r.left&&r.right?G=r.left.concat(r.right):r.left&&!r.right?G=r.left:t.metrics?G=t.metrics:G.splice(e.indexOf(p[0]),1);var q=Y&&getLegend$1({metrics:G,legendName:E,labelMap:k}),H=B&&getLineTooltip({axisSite:r,yAxisType:o,digit:R,labelMap:k,xAxisType:u,tooltipFormatter:W}),I=getLineXAxis({dimension:p,rows:i,xAxisName:g,axisVisible:x,xAxisType:u}),C=getLineYAxis({yAxisName:d,yAxisType:o,axisVisible:x,scale:S,min:w,max:N,digit:R});return{legend:q,xAxis:I,series:getLineSeries({rows:i,axisSite:r,metrics:G,area:y,stack:h,nullAddZero:V,labelMap:k,label:D,itemStyle:P,lineStyle:_,areaStyle:j,xAxisType:u,dimension:p}),yAxis:C,tooltip:H}},pieRadius=100,ringRadius=[80,100],roseRingRadius=[20,100],pieOffsetY=200;function getPieSeries(e){var i=e.innerRows,t=e.dataType,a=e.percentShow,n=e.dimension,r=e.metrics,l=e.radius,o=e.offsetY,s=e.selectedMode,u=e.hoverAnimation,m=e.digit,d=e.roseType,c=e.label,p=e.level,f=e.limitShowNum,g=e.isRing,v=e.labelLine,x=e.itemStyle,y=[],h={},b=[];p?(p.forEach(function(e,i){e.forEach(function(e){utils.setArrayValue(h,e,i)})}),i.forEach(function(e){var i=h[e[n]];i&&i.length&&i.forEach(function(i){utils.setArrayValue(b,i,e)})})):b.push(i);var S={type:"pie",selectedMode:s,hoverAnimation:u,roseType:d,center:["50%",o]},A=b.length;if(b.forEach(function(e,i){var o=_extends({data:[]},S),s=l/A;if(i){var u=s+l/(2*A)*(2*i-1),d=u+l/(2*A);o.radius=[u,d]}else o.radius=g?l:s;A>1&&0===i&&(o.label={normal:{position:"inner"}}),c&&(o.label=c),v&&(o.labelLine=v),x&&(o.itemStyle=x),a&&(o.label={normal:{show:!0,position:A>1&&0===i?"inner":"outside",formatter:function(e){var i=[];return i.push(e.name+":"),i.push(utils.getFormated(e.value,t,m)),i.push("("+e.percent+"%)"),i.join(" ")}}}),o.data=e.map(function(e){return{name:e[n],value:e[r]}}),y.push(o)}),f&&f"+a+":"),t.push(utils.getFormated(r,i,n)),t.push("("+l+")")})):(t.push(e.name+":"),t.push(utils.getFormated(e.value,i,n)),t.push("("+e.percent+"%)")),t.join(" ")}}}var pie=function(e,i,t,a,n){var r=utilsLite.cloneDeep(i),l=t.dataType,o=void 0===l?"normal":l,s=t.percentShow,u=t.dimension,m=void 0===u?e[0]:u,d=t.metrics,c=void 0===d?e[1]:d,p=t.roseType,f=void 0!==p&&p,g=t.radius,v=void 0===g?n?f?roseRingRadius:ringRadius:pieRadius:g,x=t.offsetY,y=void 0===x?pieOffsetY:x,h=t.legendLimit,b=void 0===h?30:h,S=t.selectedMode,A=void 0!==S&&S,w=t.hoverAnimation,T=void 0===w||w,N=t.digit,L=void 0===N?2:N,V=t.legendName,M=void 0===V?{}:V,R=t.label,O=void 0!==R&&R,E=t.level,F=void 0!==E&&E,k=t.limitShowNum,D=void 0===k?0:k,P=t.labelLine,_=t.itemStyle,j=a.tooltipVisible,B=a.legendVisible;return D&&r.sort(function(e,i){return i[c]-e[c]}),{series:getPieSeries({innerRows:r,dataType:o,percentShow:s,dimension:m,metrics:c,radius:v,offsetY:y,selectedMode:A,hoverAnimation:T,digit:L,roseType:f,label:O,level:F,legendName:M,limitShowNum:D,isRing:n,labelLine:P,itemStyle:_}),legend:B&&getPieLegend({innerRows:r,dimension:m,legendLimit:b,legendName:M,level:F,limitShowNum:D}),tooltip:j&&getPieTooltip({dataType:o,innerRows:r,limitShowNum:D,digit:L,metrics:c,dimension:m})}},ring=function(e,i,t,a){return pie(e,i,t,a,!0)};function getFunnelTooltip(e,i){return{trigger:"item",formatter:function(t){var a=[];return a.push(constants.itemPoint(t.color)),a.push(t.name+": "+utils.getFormated(t.data.realValue,e,i)),a.join("")}}}function getFunnelLegend(e){var i=e.data,t=e.legendName;return{data:i,formatter:function(e){return null!=t[e]?t[e]:e}}}function getFunnelSeries(e){var i=e.dimension,t=e.metrics,a=e.rows,n=e.sequence,r=e.ascending,l=e.label,o=e.labelLine,s=e.itemStyle,u=e.filterZero,m=e.useDefaultOrder,d={type:"funnel"},c=a.sort(function(e,t){return n.indexOf(e[i])-n.indexOf(t[i])});u&&(c=c.filter(function(e){return e[t]}));var p=!1;c.some(function(e,i){if(i&&e[t]>c[i-1][t])return p=!0,!0});var f=100/c.length;return d.data=p&&!m?c.slice().reverse().map(function(e,a){return{name:e[i],value:(a+1)*f,realValue:e[t]}}):c.map(function(e){return{name:e[i],value:e[t],realValue:e[t]}}),r&&(d.sort="ascending"),l&&(d.label=l),o&&(d.labelLine=o),s&&(d.itemStyle=s),d}var funnel=function(e,i,t,a){var n=e.slice(),r=i.slice(),l=t.dataType,o=void 0===l?"normal":l,s=t.dimension,u=void 0===s?n[0]:s,m=t.sequence,d=void 0===m?r.map(function(e){return e[u]}):m,c=t.digit,p=void 0===c?2:c,f=t.ascending,g=t.label,v=t.labelLine,x=t.legendName,y=void 0===x?{}:x,h=t.itemStyle,b=t.filterZero,S=t.useDefaultOrder,A=a.tooltipVisible,w=a.legendVisible,T=void 0;if(t.metrics)T=t.metrics;else{var N=n.slice();N.splice(n.indexOf(u),1),T=N[0]}return{tooltip:A&&getFunnelTooltip(o,p),legend:w&&getFunnelLegend({data:d,legendName:y}),series:getFunnelSeries({dimension:u,metrics:T,rows:r,sequence:d,ascending:f,label:g,labelLine:v,itemStyle:h,filterZero:b,useDefaultOrder:S})}};function getRadarLegend(e,i,t){return{data:e.map(function(e){return e[i]}),formatter:function(e){return null!=t[e]?t[e]:e}}}function getRadarTooltip(e,i,t){var a=[],n=[];return i.indicator.map(function(i,t){a[t]=e[i.name],n[t]=i.name}),{formatter:function(e){var i=[];return i.push(constants.itemPoint(e.color)),i.push(e.name+"
"),e.data.value.forEach(function(e,r){i.push(n[r]+": "),i.push(utils.getFormated(e,a[r],t)+"
")}),i.join("")}}}function getRadarSetting(e,i,t){var a={indicator:[],shape:"circle",splitNumber:5},n={};return e.forEach(function(e){i.forEach(function(i){var a=null!=t[i]?t[i]:i;n[a]?n[a].push(e[i]):n[a]=[e[i]]})}),a.indicator=Object.keys(n).map(function(e){return{name:e,max:Math.max.apply(null,n[e])}}),a}function getRadarSeries(e){var i=e.rows,t=e.dimension,a=e.metrics,n=e.radar,r=e.label,l=e.itemStyle,o=e.lineStyle,s=e.labelMap,u=e.areaStyle,m={};n.indicator.forEach(function(e,i){var t=e.name;m[t]=i});var d=i.map(function(e){var i={value:[],name:e[t]};return Object.keys(e).forEach(function(t){if(~a.indexOf(t)){var n=null!=s[t]?m[s[t]]:m[t];i.value[n]=e[t]}}),i}),c={name:t,type:"radar",data:d};return r&&(c.label=r),l&&(c.itemStyle=l),o&&(c.lineStyle=o),u&&(c.areaStyle=u),[c]}var radar=function(e,i,t,a){var n=t.dataType,r=void 0===n?{}:n,l=t.legendName,o=void 0===l?{}:l,s=t.labelMap,u=void 0===s?{}:s,m=t.dimension,d=void 0===m?e[0]:m,c=t.digit,p=void 0===c?2:c,f=t.label,g=t.itemStyle,v=t.lineStyle,x=t.areaStyle,y=a.tooltipVisible,h=a.legendVisible,b=e.slice();t.metrics?b=t.metrics:b.splice(e.indexOf(d),1);var S=h&&getRadarLegend(i,d,o),A=getRadarSetting(i,b,u);return{legend:S,tooltip:y&&getRadarTooltip(r,A,p),radar:A,series:getRadarSeries({rows:i,dimension:d,metrics:b,radar:A,label:f,itemStyle:g,lineStyle:v,labelMap:u,areaStyle:x})}};function getWaterfallTooltip(e,i){return{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(t){var a=t[1];return[a.name+"
"+a.seriesName+" :",""+utils.getFormated(a.value,e,i)].join("")}}}function getWaterfallXAxis(e){var i=e.dimension,t=e.rows,a=e.remainStatus,n=e.totalName,r=e.remainName,l=e.labelMap,o=e.xAxisName,s=e.axisVisible,u=[n].concat(t.map(function(e){return e[i]}));return"have-remain"===a&&(u=u.concat([r])),{type:"category",name:l&&l[o]||o,splitLine:{show:!1},data:u,show:s}}function getWaterfallYAxis(e){var i=e.dataType,t=e.yAxisName,a=e.axisVisible,n=e.digit,r=e.labelMap;return{type:"value",name:null!=r[t]?r[t]:t,axisTick:{show:!1},axisLabel:{formatter:function(e){return utils.getFormated(e,i,n)}},show:a}}function getWaterfallSeries(e){var i=e.dataType,t=e.rows,a=e.metrics,n=e.totalNum,r=e.remainStatus,l=e.dataSum,o=e.digit,s={type:"bar",stack:"总量"},u=l,m=n,d=void 0,c=void 0,p=t.map(function(e){return e[a]});"have-remain"===r?(d=[0].concat(t.map(function(e){return m-=e[a]})).concat([0]),c=[n].concat(p).concat([n-l])):(d=[0].concat(t.map(function(e){return u-=e[a]})),c=[l].concat(p));var f=[];return f.push(_extends({name:"辅助",itemStyle:{normal:{opacity:0},emphasis:{opacity:0}},data:d},s)),f.push(_extends({name:"数值",label:{normal:{show:!0,position:"top",formatter:function(e){return utils.getFormated(e.value,i,o)}}},data:c},s)),f}function getWaterfallRemainStatus(e,i){return i?i>e?"have-remain":"none-remain":"not-total"}var waterfall=function(e,i,t,a){var n=t.dataType,r=void 0===n?"normal":n,l=t.dimension,o=void 0===l?e[0]:l,s=t.totalName,u=void 0===s?"总计":s,m=t.totalNum,d=t.remainName,c=void 0===d?"其他":d,p=t.xAxisName,f=void 0===p?o:p,g=t.labelMap,v=void 0===g?{}:g,x=t.axisVisible,y=void 0===x||x,h=t.digit,b=void 0===h?2:h,S=a.tooltipVisible,A=e.slice();A.splice(A.indexOf(o),1);var w=A[0],T=w,N=S&&getWaterfallTooltip(r,b),L=parseFloat(i.reduce(function(e,i){return e+Number(i[w])},0).toFixed(b)),V=getWaterfallRemainStatus(L,m);return{tooltip:N,xAxis:getWaterfallXAxis({dimension:o,rows:i,remainStatus:V,totalName:u,remainName:c,xAxisName:f,labelMap:v,axisVisible:y}),yAxis:getWaterfallYAxis({dataType:r,yAxisName:T,axisVisible:y,digit:b,labelMap:v}),series:getWaterfallSeries({dataType:r,rows:i,dimension:o,metrics:w,totalNum:m,remainStatus:V,dataSum:L,digit:b})}},index=_extends({},Core,{name:"VeChart",data:function(){return this.chartLib={bar:bar,histogram:histogram,line:line,pie:pie,ring:ring,funnel:funnel,radar:radar,waterfall:waterfall},this.chartHandler=this.chartLib[this.settings.type],{}}});module.exports=index;