OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
D3
/
plugins
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/14/2022 11:05:22 AM
rwxr-xr-x
📄
Radar.js
8.86 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
bar.js
17.59 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
bullet.css
422 bytes
08/14/2022 11:05:19 AM
rw-r--r--
📄
bullet.js
10.65 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
calendar.js
16.63 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
calender.css
541 bytes
08/14/2022 11:05:20 AM
rw-r--r--
📄
combo.js
16.74 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
combo_2.js
17.91 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
combo_wip.js
16.61 KB
08/14/2022 11:05:18 AM
rw-r--r--
📄
commonFunc.js
25.28 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
customChart.js
577 bytes
08/14/2022 11:05:20 AM
rw-r--r--
📄
d3Charts.css
2.88 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
donut.js
5.67 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
filledAreaPercent.js
17.95 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
funnel.js
6.03 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
funnel.js_previous_o4aug17
5.86 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
gauged.js
15.3 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
groupbar.js
13.18 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
groupbar_23Aug2019.js
10.85 KB
08/14/2022 11:05:18 AM
rw-r--r--
📄
heatmap.js
9.77 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
html2canvas.min.js
161.47 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
makeJson.js
1.64 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
makeJsonmulti.js
3.75 KB
08/14/2022 11:05:18 AM
rw-r--r--
📄
multiLine.js
17.24 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
multipleDonut.js
5.29 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
pie.js
4.52 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
radar.js
6.49 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
saveSvgAsPng.js
14.62 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
stackedAreaDate.js
17.56 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stackedAreaDate_bkup23Nov2020.js
17.56 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stackedbar.js
10.72 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stackedbar_bkup21Apr2020.js
10.72 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stock.js
13.6 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
sun.js
7.59 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
sunburst.js
7.13 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
tableChart.js
11.54 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
tableChart_07Jan2020.js
6.7 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
tree.js
7.34 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
waterfall.js
9.17 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
zoomTree.js
7.59 KB
08/14/2022 11:05:19 AM
rw-r--r--
Editing: commonFunc.js
Close
/* Global variables for chart widths */ var G_MIN_BAR_WIDTH=1, G_MIN_LINE_WIDTH=1, G_SHOW_FILTER_IN_TOOLTIP=0; //Function to find svg area and placement for legend and main chart. var lblPad=30; function findSvgArea(n,dispObj,json, Width, Height, divId){ var Width = Width-20, Height = Height-30;//30 var drag = d3.behavior.drag() .on("drag", function() { d3.select(this).attr("transform", "translate(" + [ d3.event.x,d3.event.y ] + ")") d3.select(this)[0][0].attributes[0] = d3.event.x; d3.select(this)[0][0].attributes[1] = d3.event.y; }) .on("dragend",function() { }) var r = dispObj.getNumRows()>n ? n : dispObj.getNumRows(); var height, width = 0, p=0; for(var k=0;Math.floor(k)<=(n-n/r);k=k+n/r){ var t=0; var s=0; for(var i=Math.ceil(k);i<k+n/r;i++){ if(dispObj.getShowLabels()) t = t+json.measName[i].length*6+4; else t=4; if(width<=t+6+(12)*s) //10=Width/45 width=t+6+(12)*(s+1); s++; } p++; } var legHeight = (p+1)*15; var legWidth = width; var svg,svgL,w,h; if(dispObj.getlegendPlacement()=="outsideGrid" && dispObj.getShowLegend()){ if(dispObj.getLocation()== "w"){ svgL = d3.select("#"+divId).select(".myChart") .append("svg") .attr("width", width = legWidth) .attr("height", height = Height) .attr("class", "svgchart") .append("g") .attr("transform","translate(0,"+ (height - legHeight)/2+")") svg = d3.select("#"+divId).select(".myChart") .append("svg:svg") .attr("width", w = Width-legWidth) .attr("height", h = Height) .append("svg:g") .attr("transform", "translate(.5,.5)"); } else if (dispObj.getLocation()== "e"){ svg = d3.select("#"+divId).select(".myChart") .append("svg:svg") .attr("width", w = Width-legWidth) .attr("height", h = Height) .attr("class", "svgchart") .append("svg:g") .attr("transform", "translate(.5,.5)"); svgL = d3.select("#"+divId).select(".myChart") .append("svg") .attr("width", width = legWidth) .attr("height", height = Height) .attr("class", "svgchart") .append("g") .attr("transform","translate(0,"+(height - legHeight)/2+")") } else if (dispObj.getLocation()== "n"|| dispObj.getLocation()== "nw"|| dispObj.getLocation()== "ne"){ svgL = d3.select("#"+divId).select(".myChart") .append("svg") .attr("width", width = Width) .attr("height", height = legHeight)//10+r*15+Width/45 .attr("class", "svgchart") .append("g") .attr("transform", function() { if(dispObj.getLocation()== "n") return "translate("+ (Width-legWidth)/2+",0)"; else if(dispObj.getLocation()== "nw") return "translate(0,0)"; else return "translate("+(Width-legWidth)+",0)"; }) svg = d3.select("#"+divId).select(".myChart") .append("svg:svg") .attr("width", w = Width) .attr("height", h = Height-legHeight) .append("svg:g") .attr("transform", "translate(.5,.5)"); } else { svg = d3.select("#"+divId).select(".myChart") .append("svg:svg") .attr("width", w = Width) .attr("height", h = Height-legHeight) .attr("class", "svgchart") .append("svg:g") svgL = d3.select("#"+divId).select(".myChart") .append("svg") .attr("width", width = Width) .attr("height", height = legHeight) .append("g") .attr("transform", function() { if(dispObj.getLocation()== "s") return "translate("+ (Width-legWidth)/2+",0)"; else if(dispObj.getLocation()== "sw") return "translate(0,0)"; else return "translate("+(Width-legWidth)+",0)"; }) } } else{ var comSvg = d3.select("#"+divId).select(".myChart") .append("svg:svg") .attr("width", w = Width) .attr("height", h = Height) .attr("class", "svgchart"); svg = comSvg.append("g"); svgL = comSvg.append("g"); if(dispObj.getLocation()== "w"){ svgL.attr("transform","translate(0,"+ (Height-legHeight)/2 +")"); } else if (dispObj.getLocation()== "e"){ svgL.attr("transform","translate("+ (Width-legWidth) + "," + (Height-legHeight)/2 +")"); } else if (dispObj.getLocation()== "n") svgL.attr("transform","translate("+(Width-legWidth)/2+",0)"); else if (dispObj.getLocation()== "nw") svgL.attr("transform","translate(0,0)"); else if (dispObj.getLocation()== "ne") svgL.attr("transform", "translate("+(Width-legWidth)+",0)"); else if (dispObj.getLocation()== "s") svgL.attr("transform","translate("+(Width-legWidth)/2+"," + (Height-legHeight) +")"); else if(dispObj.getLocation()== "sw") svgL.attr("transform","translate(0," + (Height-legHeight) +")"); else svgL.attr("transform","translate(" + (Width-legWidth) + "," + (Height-legHeight) +")"); h = height = Height; w = width = Width; } //svgL.call(drag); Drag off return [svg,svgL,h,w,height,width]; } //Function for creating upper legend function updateLegendll(divId, svg, d, x,y,width,height,json,measNum,k,plotanychart, dispObj, MeasFormats){ // d3.select("#"+divId).style("overflow","auto"); d3.select("#"+divId).select(".myChart").select(".svgLegend").selectAll("#trail").remove(); var trail = d3.select("#"+divId).select(".myChart").select(".svgLegend").append("svg:svg") .attr("id", "trail"); var colorLeg = d3.scale.category20() var b = { h: 17, t: 10 }; var w = new Array(); w[-1]=0; var t=0; function breadcrumbPoints(d,i) { var points = []; w[i] = d.name.replace("'","'").length*6+15; t = t+w[i]; points.push(t-w[i]+b.t*i+",0"); points.push(t+b.t*i + ",0"); points.push(b.t*(i+1)+t + "," + (b.h / 2)); points.push(t+b.t*i + "," + b.h); points.push(b.t*i + (i ? t-w[i] : 0) +"," + b.h); if (i > 0) { // Leftmost breadcrumb; dont include 6th vertex. points.push(b.t +b.t*i + (i ? t-w[i] : 0)+ "," + (b.h / 2)); } return points.join(" "); } var i =0; var g; dispIfParent(d); function dispIfParent (d){ if(d.parent) dispIfParent(d.parent); g = trail.append("svg:g") g.append("svg:polygon") .attr("points", function(){return breadcrumbPoints(d,i);}) .attr("class", "leg-poly") .on("click",function(){ if(d.children[0].children){ //Plot only if children of children exist. trail.selectAll("g").remove(); plotanychart(divId, d,0, svg, x,y,width,height,json,measNum,k,1, dispObj, MeasFormats); } else alert("No further dimensions."); }) .style("fill",colorLeg(i)) g.append("svg:text") .text(d.name.replace("'","'")) .attr("x",t-w[i]/2+b.t*i ) .attr("y",b.h/2) .style("text-anchor","middle") .attr("dy","0.4em") .attr("dx","0.7em") .style("fill","white") .attr("class", "leg-text") .on("click",function(){ if(d.children[0].children){ trail.selectAll("g").remove(); plotanychart(divId, d,0, svg, x,y,width,height,json,measNum,k,1, dispObj, MeasFormats) } else alert("No further dimensions."); }); i++; } d3.select("#"+divId).select(".myChart").select(".svgLegend").select("svg").attr("width",t+b.t*i); if(d==json) trail.selectAll("g").remove(); } function makeLegendRadioType(svg,n,measNum,plotAnyChart,clickRect,json,k,bc, dispObj){ var r = dispObj.getNumRows()>n ? n : +dispObj.getNumRows(), svgL=svg[1], m,p=0,k1=0,t = 0, width,height, outerCircle=new Array(), innerCircle = new Array(), circleText = new Array(); if(dispObj.getShowLegend()){ width = 0; for(k1=0;Math.floor(k1)<=(n-n/r);k1=k1+n/r){ t=0; var s=0; for(i=Math.ceil(k1);i<(k1+n/r);i++){ outerCircle[i]=svgL.append("circle") .attr("fill", "none") .attr("stroke", "dimgrey") .attr("stroke-width", "1px") .attr("r",5) .attr("cx", 7+t+12*s) .attr("cy", 15+p*15) .attr("visibility","visible") .attr("class", "leg-rect") .on("click", function() { measNum=+this.id+1; clickLegend(measNum); }); innerCircle[i] =svgL.append("circle") .attr("id",i) .attr("fill", "dimgrey") .attr("stroke", "none") .attr("stroke-width", "0px") .attr("r",3) .attr("cx", 7+t+12*s) .attr("cy", 15+p*15) .attr("visibility","visible") .attr("class", "leg-rect") .on("click", function() { measNum=+this.id+1; clickLegendRadio(measNum); }); if(dispObj.getShowLabels()){ circleText[i] = svgL.append("text") .attr("id",i) .attr("x", m=(12)*(s+1) + t+2) .style("text-anchor", "start") .text(json.measName[i]) .attr("y", function(){ t = t+this.getComputedTextLength()+9; return 18+p*15; })//18 .attr("class", "leg-text") .on("click", function() { measNum=+this.id+1; clickLegendRadio(measNum); }) } if(width<=t+6+(12)*s) width=t+6+(12)*(s+1); s++; } p++; } /*height = (p+1)*15; svgL.selectAll("rect").attr("transform","translate(5,0)") svgL.selectAll("text").attr("transform","translate(5,0)") svgL.append("rect") .attr("width",width) .attr("height",height) .style("stroke","#DDDDDD") .style("fill","none");*/ } function clickLegendRadio(measNum){ svgL.selectAll("circle").attr("fill-opacity",0); svgL.selectAll("text").attr("fill-opacity",0.5); innerCircle[measNum-1].attr("fill-opacity",1); if(dispObj.getShowLabels()) circleText[measNum-1].attr("fill-opacity",1); svg[0].selectAll(".cell").remove(); svg[0].selectAll(".arc").remove(); plotAnyChart(measNum); } svgL.selectAll("circle").attr("fill-opacity",0); innerCircle[measNum-1].attr("fill-opacity",1); if(dispObj.getShowLabels()){ svgL.selectAll("text").attr("fill-opacity",0.5); circleText[measNum-1].attr("fill-opacity",1); } } //bc decides black or colored lower legend function makeLegend(svg,n,measNum,plotAnyChart,clickRect,json,k,bc, dispObj){ //if(n==1) // return; if(bc == 0){ makeLegendRadioType(svg,n,measNum,plotAnyChart,clickRect,json,k,bc, dispObj); return; } var r = dispObj.getNumRows()>n ? n : +dispObj.getNumRows(), svgL=svg[1], m,p=0,k1=0,t = 0, width,height, rectangle = new Array(), rectText = new Array(); if(dispObj.getShowLegend()){ width = 0; for(k1=0;Math.floor(k1)<=(n-n/r);k1=k1+n/r){ t=0; var s=0; for(i=Math.ceil(k1);i<(k1+n/r);i++){ rectangle[i] = svgL.append("rect") .attr("fill", function(){ return bc!=0 ? dispObj.colorArr[i] : "black";}) .attr("stroke", function(){ return bc!=0 ? dispObj.colorArr[i] : "#aaa";}) .attr("stroke-width", "1px") .attr("id",i) .attr("x",function(){return t+12*s;}) .attr("y", 10+p*15)//10 .attr('width', 10) .attr('height', 10) .attr("visibility","visible") .attr("class", "leg-rect") .on("click", function() { measNum=+this.id+1; if(!bc) clickLegend(measNum); else { clickRect(this,k,svg,n); rectangle[measNum-1].attr("fill-opacity",function(){ return k[+this.id] ? 1 : 0;}); if(dispObj.getShowLabels()) rectText[measNum-1].attr("fill-opacity",function(){ return k[+this.id] ? 1 : 0.5;}); } }) if(dispObj.getShowLabels()){ rectText[i] = svgL.append("text") .attr("id",i) .attr("x", m=(12)*(s+1) + t+2) .style("text-anchor", "start") .text(json.measName[i]) .attr("y", function(){ t = t+this.getComputedTextLength()+9; return 18+p*15; })//18 .attr("class", "leg-text") .on("click", function() { measNum=+this.id+1; if(!bc) clickLegend(measNum); else { //clickRectText(+this.id,k,svg[0],n); clickRect(this,k,svg,n); rectangle[measNum-1].attr("fill-opacity",function(){ return k[+this.id] ? 1 : 0;}); rectText[measNum-1].attr("fill-opacity",function(){ return k[+this.id] ? 1 : 0.5;}); } }) } /*if(width<t+6+(Width/45)*s) width=t+6+(Width/45)*(s+1);*/ if(width<=t+6+(12)*s) width=t+6+(12)*(s+1); s++; } p++; } /*height = (p+1)*15; svgL.selectAll("rect").attr("transform","translate(5,0)") svgL.selectAll("text").attr("transform","translate(5,0)") svgL.append("rect") .attr("width",width) .attr("height",height) .style("stroke","#DDDDDD") .style("fill","none");*/ } function clickLegend(measNum){ svgL.selectAll("rect").attr("fill-opacity",0); svgL.selectAll("text").attr("fill-opacity",0.5); rectangle[measNum-1].attr("fill-opacity",1); if(dispObj.getShowLabels()) rectText[measNum-1].attr("fill-opacity",1); svg[0].selectAll(".cell").remove(); svg[0].selectAll(".arc").remove(); plotAnyChart(measNum); } if(!bc){ svgL.selectAll("rect").attr("fill-opacity",0); rectangle[measNum-1].attr("fill-opacity",1); if(dispObj.getShowLabels()){ svgL.selectAll("text").attr("fill-opacity",0.5); rectText[measNum-1].attr("fill-opacity",1); } } } //Function to calculate xtickspace for plotting x axis at appropriate distance. function findxtickspace(cnc,dispObj){ return d3.max(cnc,function(d){ String(d.name).replace("'","'"); if(dispObj.getxPos()=="A") if(dispObj.getxFrom() == "all") return d.name.length*4; else if(dispObj.getxFrom() == "first") return d.name.substr(0,dispObj.getxLength()).length*4; else return d.name.substr(d.name.length - Math.min(dispObj.getxLength(),d.name.length),d.name.length).length*4; else return 15; }); } //Assigning parents of json function makeParentsJson(json,n){ var hierarchy = d3.layout.hierarchy() .sort(null) .value(function(d) { //d.name=String(d.name); return +d.size[n-1]; }); hierarchy(json); } function removeMeasures(node, onOffArr){ var measFormat=[], measName=[], percent=[], percentOfTotal=[], size=[]; for(var i=0; i<onOffArr.length; i++){ if(onOffArr[i]){ measFormat.push(node.measFormat[i]); measName.push(node.measName[i]); percent.push(node.percent[i]); percentOfTotal.push(node.percentOfTotal[i]); size.push(node.size[i]); } } node.measFormat=measFormat; node.measName=measName; node.percent=percent; node.percentOfTotal=percentOfTotal; node.size=size; } function removeMeasuresRec(json, onOffArr){ removeMeasures(json, onOffArr); for(var i=0; json.children && i<json.children.length; i++){ removeMeasuresRec(json.children[i], onOffArr); } } function resolveComputeMeasure(json, Measures){ for(var i=0; Measures && i<Measures.length; i++){ if(Measures[i].formula && Measures[i].formula != "NA"){ var c=json; c.name=String(c.name); eval(Measures[i].formula); resolveFormula(json, Measures[i].formula); } } } function applyShowHideMeasure(json, dispObj){ if(dispObj.RD && dispObj.RD.Measures && dispObj.RD.Measures.length>0){ var onOffArr=[]; if(dispObj.isComputedReport){ for(var i=0;i<dispObj.RD.Measures.length;i++){ if(dispObj.RD.Measures[i].showMe) onOffArr.push(1); else onOffArr.push(0); } }else{ for(var i=0; i<json.measName.length; i++){ var measure=dispObj.RDgetMeasureByName(json.measName[i]); if(measure && typeof measure.showMe != "undefined" && measure.showMe===false){ onOffArr.push(0); }else{ onOffArr.push(1); } } } if(onOffArr.indexOf(0)>=0){ removeMeasuresRec(json, onOffArr); /* Remove colors from color array */ var newColorArr=[]; for(var i=0; i<onOffArr.length; i++){ if(onOffArr[i]) newColorArr.push(dispObj.colorArr[i]); } dispObj.colorArr=newColorArr; } } } function resolveFormula(json, formula){ for(var i=0; json.children && i<json.children.length; i++){ var c=json.children[i]; if(typeof c.children == undefined) /* Dont compute last level */ return; c.name=String(c.name); eval(formula); resolveFormula(c, formula); } } function setPosition(divId, p){ p.style("display", "block").style("visibility", "visible").style("position", "absolute").style("pointer-events", "none"); var arrowClass = p.select(".tipsy-arrow"); var svg = d3.select("#"+divId).select(".myChart").select(".svgchart")[0][0]; if(!svg || typeof svg.offsetLeft =="undefined"){ arrowClass.attr("class", "tipsy-arrow tipsy-arrow-w"); p.attr("class", "tipsy tipsy-w"); p.style("left", d3.event.pageX + "px"); p.style("top", d3.event.pageY + "px"); return; } var svgLeft = svg.offsetLeft, svgTop = svg.offsetTop, svgHeight = svg.offsetHeight, svgWidth = svg.offsetWidth; var mouseLeft = d3.event.pageX-$(window).scrollLeft(), mouseTop = d3.event.pageY-$(window).scrollTop(); //var mouseLeft = d3.event.offsetX+d3.event.clientX, mouseTop = d3.event.offsetY+d3.event.clienty; var tooltipHeight = p[0][0].clientHeight, tooltipWidth = p[0][0].clientWidth; var top = mouseTop, left = mouseLeft, pad=20; if(( svgLeft + tooltipWidth/2 < mouseLeft ) && (mouseTop + tooltipHeight + pad < svgTop + svgHeight )){ p.attr("class", "tipsy tipsy-n"); arrowClass.attr("class", "tipsy-arrow tipsy-arrow-n"); top = mouseTop + pad ; left = mouseLeft - tooltipWidth/2 ; } else if( mouseTop + tooltipHeight/2 > svgTop ){ if( svgLeft + tooltipWidth + pad < mouseLeft ){ p.attr("class", "tipsy tipsy-e"); arrowClass.attr("class", "tipsy-arrow tipsy-arrow-e"); top = mouseTop - tooltipHeight/2; left = mouseLeft - tooltipWidth - pad; } else if(mouseLeft + tooltipWidth < svgLeft + svgWidth){ p.attr("class", "tipsy tipsy-w"); arrowClass.attr("class", "tipsy-arrow tipsy-arrow-w"); top = mouseTop - tooltipHeight/2; left = mouseLeft + pad; } } else if((svgLeft + tooltipWidth/2 < mouseLeft ) && (mouseTop - tooltipHeight - pad > svgTop)){ p.attr("class", "tipsy tipsy-s"); arrowClass.attr("class", "tipsy-arrow tipsy-arrow-s"); top = mouseTop - tooltipHeight -pad ; left = mouseLeft - tooltipWidth/2 ; } else{ p.attr("class", "tipsy tipsy-s"); arrowClass.attr("class", "tipsy-arrow tipsy-arrow-s"); top = mouseTop - tooltipHeight -pad ; left = mouseLeft - tooltipWidth/2 ; } p.style("left", left + "px"); p.style("top", top + "px"); } function getPath(d, measNum,chartType){ var pathArr= new Array(); var curNode=d; while(curNode){ pathArr.push( {dimName:curNode.dimName, dimVal: curNode.name, measName:curNode.measName[measNum-1],measVal:curNode.size[measNum-1], percent:curNode.percent[measNum-1]}); if(curNode.depth == 0 || typeof curNode.parent == "undefined") break; curNode=curNode.parent; } return pathArr; } function showToolTips(divId, d, n, MeasFormats, is_heat_map=false){ var p = d3.select("#"+divId).select(".myChart").select(".tipsy"); var pathNodeArr=getPath(d, n); var Title=$("#"+divId).parent().parent().children().eq(0).children().eq(0).children().attr("title"); var filter=""; if(Title && Title.length>0 && G_SHOW_FILTER_IN_TOOLTIP){ var filterArr=Title.split("Filter:"); if(filterArr.length>1){ filter=filterArr[1].split("Action:")[0]; filter=" for "+ filter; } } var htmlStr="<div class=\"tipsy-arrow\"></div><div class=\"tipsy-inner\">"; htmlStr+="<table class=tipTable>"; htmlStr+="<thead><tr style=\"border:0px\"><th colspan=3>"+pathNodeArr[0].measName+"<font style=\"font-weight:normal\">"+filter+"</font></th></tr></thead>"; var i=0; if(pathNodeArr[i].dimVal){ if(is_heat_map){ htmlStr+="<tr style=\"line-height:12px\"><td style=\"color:#bbb;font-size:10px;line-height:12px\">"+(pathNodeArr[i+1].dimVal == "All"?"":pathNodeArr[i+1].dimName)+"</td><td colspan=2> </td></tr>"; htmlStr+="<tr style=\"border:0px\"><td>"+ pathNodeArr[i+1].dimVal + "</td><td> : </td></tr>"; } htmlStr+="<tr style=\"line-height:12px\"><td style=\"color:#bbb;font-size:10px;line-height:12px\">"+(pathNodeArr[i].dimVal == "All"?"":pathNodeArr[i].dimName)+"</td><td colspan=2> </td></tr>"; htmlStr+="<tr style=\"border:0px\"><td>"+ pathNodeArr[i].dimVal + "</td><td> : </td><td>" +formatData(pathNodeArr[i].measVal,MeasFormats[n-1], 0)+"</td></tr>"; } htmlStr+="</table></div>"; p.html(htmlStr); setPosition(divId, p); } /* Bar, Bullet, Donut, Funnel, Gauge, Heat, Pie, Sunburst, Zoom Tree */ function showToolTipsXX(divId, d, n, MeasFormats){ var p = d3.select("#"+divId).select(".myChart").select(".tipsy"); var pathNodeArr=getPath(d, n); var Title=$("#"+divId).parent().parent().children().eq(0).children().eq(0).children().attr("title"); var filter=""; /* if(Title && Title.length>0){ var filterArr=Title.split("Filter:"); if(filterArr.length>1){ filter=filterArr[1].split("Action:")[0]; filter=" for "+ filter; } }*/ var htmlStr="<div class=\"tipsy-arrow\"></div><div class=\"tipsy-inner\">"; htmlStr+="<table class=tipTable>"; htmlStr+="<thead><tr style=\"border:0px\"><th colspan=3>"+pathNodeArr[0].measName+"<font style=\"font-weight:normal\">"+filter+"</font></th></tr></thead>"; for(var i=pathNodeArr.length-1, pad=""; i>=0; i--){ htmlStr+="<tr style=\"line-height:12px\"><td style=\"color:#bbb;font-size:10px;line-height:12px\">"+(pathNodeArr[i].dimVal == "All"?"":pathNodeArr[i].dimName)+"</td><td colspan=2> </td></tr>"; htmlStr+="<tr style=\"border:0px\"><td>"+ pathNodeArr[i].dimVal + "</td><td> : </td><td>" +formatData(pathNodeArr[i].measVal,MeasFormats[n-1], 0)+" ( "+pathNodeArr[i].percent+ " ) "+"</td></tr>"; } htmlStr+="</table></div>"; p.html(htmlStr); setPosition(divId, p); } /* Combo, multiline, groupbar, stacked bar, stacked area date , Stock, Waterfall */ function showToolTipl(divId, d, n, ele, MeasFormats,dispObj,chartType){ for(var i=0;i<n;i++) if(d3.select(ele).attr("fill")==dispObj.colorArr[i]) showToolTips(divId, d, (i+1), MeasFormats,false,chartType); } //Hiding tooltip function hideToolTip(divId, d,i){ var p = d3.select("#"+divId).select(".myChart").select(".tipsy").style("display", "none"); } function clickRectL(ele,k,svg,n){ i = ele.id; k[i]=!k[i]; svg[0].selectAll(".class"+i).style("visibility",function(){return k[i] ? "visible" : "hidden"}); } function clickRectText(id,k,svg,n){ k[id]=!k[id]; svg.selectAll(".class"+id).style("visibility",function(){return k[id] ? "visible" : "hidden"}); } function getNticks(height, xtickspace){ var ntick=Math.max(Math.floor((height-xtickspace)/20),2); if(ntick>10) ntick=10; return ntick; } function nicenum(x, round) { var expv = Math.floor(Math.log(x) / Math.LN10); var f = x/Math.pow(10., expv); if (round) if (f<1.5) nf = 1.; else if (f<3.) nf = 2.; else if (f<7.) nf = 5.; else nf = 10.; else if (f<=1.) nf = 1.; else if (f<=2.) nf = 2.; else if (f<=5.) nf = 5.; else nf = 10.; return nf*Math.pow(10., expv); } function getTickValues(min, max, noOfTick){ var range = nicenum(max-min, false); var d = nicenum(range/(noOfTick-1), true); var graphmin = Math.floor(min/d)*d; var graphmax = Math.ceil(max/d)*d; var nfrac = Math.max(-Math.floor(Math.log(d)/Math.LN10), 0); var tv=new Array(); for (var x=graphmin; x<graphmax+.5*d; x+=d) { tv.push(x); } return tv; } function getNewMinMax(min, max, noOfTick){ var range = nicenum(max-min, false); var d = nicenum(range/(noOfTick-1), true); var graphmin = Math.floor(min/d)*d; var graphmax = Math.ceil(max/d)*d; return [graphmin, graphmax]; } function wrap(text, width) { text.each(function() { var text = d3.select(this), words = text.text().split(/\s+/).reverse(), words = words.filter(function(e){return e}), word, line = [], lineNumber = 0, lineHeight = 1, // ems y = text.attr("y"), //dy = parseFloat(text.attr("dy")), dy = 0.1, tspan = text.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); while (word = words.pop()) { line.push(word); tspan.text(line.join(" ")); if (tspan.node().getComputedTextLength() > width) { line.pop(); tspan.text(line.join(" ")); line = [word]; tspan = text.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineNumber * lineHeight + dy + "em").text(word); } lineNumber++; } }); } function getResolvedThresholdValue(initialValue){ if(isNaN(initialValue)){ var finalValue = initialValue.trim().toLowerCase(); var suffix = finalValue.slice(-1); var finalValue = +finalValue.substring(0, finalValue.length-1); if(suffix == 'k') return finalValue * 1000; else if(suffix == 'm') return finalValue * 1000000; else if(suffix == 'b') return finalValue * 1000000000; else if(suffix == 'l') return finalValue * 100000; else if(suffix == 'c') return finalValue * 10000000; else if(suffix == 'd') return finalValue * 86400; } return +initialValue; } function resolveIfTimeValue(inputArr, measFormat){ var format = getFormat(measFormat); if(format.currency == 't' && inputArr.length>1){ var firstValue = Math.floor(inputArr[0]/86400); var secondValue = Math.ceil(inputArr[1]/86400); var factor = 86400; if(secondValue == 1) secondValue = Math.ceil(inputArr[1]/3600); if(secondValue == 1) secondValue = Math.ceil(inputArr[1]/60); if(secondValue == 1) secondValue = inputArr[1]; var diffInDays = secondValue - firstValue; var outputArr = new Array(inputArr.length); outputArr[0] = firstValue*factor; for(var i=1;i<outputArr.length;i++){ outputArr[i] = outputArr[i-1]+(diffInDays*factor); } return outputArr; }else{ return inputArr; } }