2 lines
7.0 KiB
JavaScript
2 lines
7.0 KiB
JavaScript
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var utils=require('./utils'),utilsLite=require("utils-lite"),constants=require('./constants');require("echarts/lib/chart/scatter");var Core=_interopDefault(require('./core')),_extends=Object.assign||function(e){for(var i=1;i<arguments.length;i++){var t=arguments[i];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e};function getLineXAxis(e){var i=e.dimension,t=e.rows,a=e.xAxisName,r=e.axisVisible,n=e.xAxisType;return i.map(function(e,i){return{type:n,nameLocation:"middle",nameGap:22,name:a[i]||"",axisTick:{show:!0,lineStyle:{color:"#eee"}},data:t.map(function(i){return i[e]}),show:r}})}function getLineSeries(e){var i=e.rows,t=e.axisSite,a=e.metrics,r=e.area,n=e.stack,s=e.nullAddZero,o=e.labelMap,l=e.label,u=e.itemStyle,m=e.lineStyle,c=e.areaStyle,d=e.dimension,x=[],y={},f=n&&utils.getStackMap(n);return a.forEach(function(e){y[e]=[]}),i.forEach(function(e){a.forEach(function(i){var t=null;null!=e[i]?t=e[i]:s&&(t=0),y[i].push([e[d[0]],t])})}),a.forEach(function(e){var i={name:null!=o[e]?o[e]:e,type:"line",data:y[e]};r&&(i.areaStyle={normal:{}}),t.right&&(i.yAxisIndex=~t.right.indexOf(e)?1:0),n&&f[e]&&(i.stack=f[e]),l&&(i.label=l),u&&(i.itemStyle=u),m&&(i.lineStyle=m),c&&(i.areaStyle=c),x.push(i)}),x}function getLineYAxis(e){for(var i=e.yAxisName,t=e.yAxisType,a=e.axisVisible,r=e.scale,n=e.min,s=e.max,o=e.digit,l={type:"value",axisTick:{show:!1},show:a},u=[],m=function(e){t[e]?u[e]=_extends({},l,{axisLabel:{formatter:function(i){return utils.getFormated(i,t[e],o)}}}):u[e]=_extends({},l),u[e].name=i[e]||"",u[e].scale=r[e]||!1,u[e].min=n[e]||null,u[e].max=s[e]||null},c=0;c<2;c++)m(c);return u}function getLineTooltip(e){var i=e.axisSite,t=e.yAxisType,a=e.digit,r=e.labelMap,n=e.tooltipFormatter,s=i.right||[],o=r?s.map(function(e){return void 0===r[e]?e:r[e]}):s;return{trigger:"axis",formatter:function(e){if(n)return n.apply(null,arguments);var i=[],r=e[0],s=r.name,l=r.axisValueLabel,u=s||l;return i.push(u+"<br>"),e.forEach(function(e){var r,n=e.seriesName,s=e.data,l=e.marker,u=~o.indexOf(n)?t[1]:t[0],m=utilsLite.isArray(s)?s[1]:s;r=utils.getFormated(m,u,a),i.push(l),i.push(n+": "+r),i.push("<br>")}),i.join("")}}}function getLegend(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 r=t.axisSite,n=void 0===r?{}:r,s=t.yAxisType,o=void 0===s?["normal","normal"]:s,l=t.xAxisType,u=void 0===l?"category":l,m=t.yAxisName,c=void 0===m?[]:m,d=t.dimension,x=void 0===d?[e[0]]:d,y=t.xAxisName,f=void 0===y?[]:y,p=t.axisVisible,b=void 0===p||p,g=t.area,v=t.stack,h=t.scale,A=void 0===h?[!1,!1]:h,S=t.min,T=void 0===S?[null,null]:S,L=t.max,N=void 0===L?[null,null]:L,w=t.nullAddZero,V=void 0!==w&&w,M=t.digit,E=void 0===M?2:M,O=t.legendName,k=void 0===O?{}:O,z=t.labelMap,_=void 0===z?{}:z,j=t.label,F=t.itemStyle,q=t.lineStyle,C=t.areaStyle,R=a.tooltipVisible,X=a.legendVisible,Y=a.tooltipFormatter,Z=e.slice();n.left&&n.right?Z=n.left.concat(n.right):n.left&&!n.right?Z=n.left:t.metrics?Z=t.metrics:Z.splice(e.indexOf(x[0]),1);var D=X&&getLegend({metrics:Z,legendName:k,labelMap:_}),P=R&&getLineTooltip({axisSite:n,yAxisType:o,digit:E,labelMap:_,xAxisType:u,tooltipFormatter:Y}),$=getLineXAxis({dimension:x,rows:i,xAxisName:f,axisVisible:b,xAxisType:u}),G=getLineYAxis({yAxisName:c,yAxisType:o,axisVisible:b,scale:A,min:T,max:N,digit:E});return{legend:D,xAxis:$,series:getLineSeries({rows:i,axisSite:n,metrics:Z,area:g,stack:v,nullAddZero:V,labelMap:_,label:j,itemStyle:F,lineStyle:q,areaStyle:C,xAxisType:u,dimension:x}),yAxis:G,tooltip:P}};function getScatterLegend(e,i){return{data:e,formatter:function(e){return null!=i[e]?i[e]:e}}}function getScatterTooltip(e){return{trigger:e.tooltipTrigger,formatter:function(i){return utilsLite.isArray(i)?i.map(function(i){return getTooltipContent(i,e)}).join(""):getTooltipContent(i,e)}}}function getTooltipContent(e,i){var t=i.labelMap,a=i.columns,r=i.dataType,n=i.digit,s=[],o=e.color,l=e.seriesName,u=e.data.value;return s.push(constants.itemPoint(o)+" "+l+"<br>"),u.forEach(function(e,i){var o=t[a[i]]||a[i],l=isNaN(e)?e:utils.getFormated(e,r[a[i]],n);s.push(o+": "+l+"<br>")}),s.join("")}function getScatterXAxis(e){var i=e.xAxisName,t=e.axisVisible,a=e.xAxisType,r=e.rows,n=e.dataLabels,s=e.dimension,o=[];return n.forEach(function(e){r[e].forEach(function(e){var i=e[s];i&&!~o.indexOf(i)&&o.push(i)})}),[{type:a,show:t,name:i,data:o}]}function getScatterYAxis(e){var i=e.min,t=e.max,a=e.scale,r=e.yAxisName,n=e.dataType,s=e.metrics,o=e.digit;return{type:"value",show:e.axisVisible,scale:a,min:i,max:t,axisTick:{show:!1},name:r,axisLabel:{formatter:function(e){return utils.getFormated(e,n[s[0]],o)}}}}function getScatterSeries(e){var i=e.rows,t=e.dataLabels,a=e.columns,r=e.metrics,n=e.dimension,s=e.label,o=e.itemStyle,l=e.symbol,u=e.symbolSizeMax,m=e.symbolSize,c=e.symbolRotate,d=e.symbolOffset,x=e.cursor,y=a.filter(function(e){return!~r.indexOf(e)&&e!==n}),f=[];t.forEach(function(e){i[e].forEach(function(e){f.push(e[r[1]])})});var p=Math.max.apply(null,f),b=[];return t.forEach(function(e){var t=[];i[e].forEach(function(e){var i={value:[]};i.value.push(e[n],e[r[0]],e[r[1]]),y.forEach(function(t){i.value.push(e[t])}),i.symbolSize=m||e[r[1]]/p*u,t.push(i)}),b.push({type:"scatter",data:t,name:e,label:s,itemStyle:o,symbol:l,symbolRotate:c,symbolOffset:d,cursor:x})}),b}var scatter$1=function(e,i,t,a){var r=t.dimension,n=void 0===r?e[0]:r,s=t.metrics,o=void 0===s?[e[1],e[2]]:s,l=t.dataType,u=void 0===l?{}:l,m=t.xAxisType,c=void 0===m?"category":m,d=t.xAxisName,x=t.yAxisName,y=t.digit,f=void 0===y?2:y,p=t.legendName,b=void 0===p?{}:p,g=t.labelMap,v=void 0===g?{}:g,h=t.tooltipTrigger,A=void 0===h?"item":h,S=t.axisVisible,T=void 0===S||S,L=t.symbolSizeMax,N=void 0===L?50:L,w=t.symbol,V=t.symbolSize,M=t.symbolRotate,E=t.symbolOffset,O=t.cursor,k=t.min,z=t.max,_=t.scale,j=t.label,F=t.itemStyle;if(utilsLite.isArray(i)){var q=_extends({},t,{xAxisName:d?[d]:void 0,yAxisName:x?[x]:void 0,scale:_?[_]:void 0,min:k?[k]:void 0,max:z?[z]:void 0,dimension:n?[n]:void 0}),C=line(e,i,q,a);return C&&C.series?(C.series.forEach(function(e){_extends(e,{type:"scatter",symbol:w,symbolSize:V||10,symbolRotate:M,symbolOffset:E,cursor:O,label:j,itemStyle:F})}),C):{}}var R=a.tooltipVisible,X=a.legendVisible,Y=Object.keys(i);return{legend:X&&getScatterLegend(Y,b),tooltip:R&&getScatterTooltip({tooltipTrigger:A,labelMap:v,columns:e,dataType:u,digit:f}),xAxis:getScatterXAxis({xAxisName:d,axisVisible:T,xAxisType:c,dataLabels:Y,dimension:n,rows:i}),yAxis:getScatterYAxis({min:k,max:z,scale:_,yAxisName:x,dataType:u,metrics:o,digit:f,axisVisible:T}),series:getScatterSeries({rows:i,dataLabels:Y,columns:e,metrics:o,dimension:n,label:j,itemStyle:F,symbol:w,symbolSizeMax:N,symbolSize:V,symbolRotate:M,symbolOffset:E,cursor:O})}},index=_extends({},Core,{name:"VeScatter",data:function(){return this.chartHandler=scatter$1,{}}});module.exports=index;
|