Commit f3a9dd11e2a9978af278817be48682e8b8848d9c

Authored by Edmar Moretti
1 parent 2d1f832b

Atualização da biblioteca ccc2

Showing 261 changed files with 0 additions and 64294 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 261 files displayed.

pacotes/ccc2/ccc2sage.js
... ... @@ -1,122 +0,0 @@
1   -var pvc=def.globalSpace('pvc',{debug:0});(function(){(function(){if((typeof window.location)!=='undefined'){var url=window.location.href;if(url&&(/\bdebug=true\b/).test(url)){var m=/\bdebugLevel=(\d+)/.exec(url);pvc.debug=m?(+m[1]):3}}}());pvc.invisibleFill='rgba(127,127,127,0.00001)';pvc.logSeparator="------------------------------------------";var arraySlice=pvc.arraySlice=Array.prototype.slice;pvc.setDebug=function(level){level=+level;pvc.debug=isNaN(level)?0:level;installPvcLog();syncTipsyLog();return pvc.debug};pvc._installLog=function(o,pto,pfrom,prompt){if(!pfrom){pfrom=pto}var c=console;var m=c[pfrom]||c.log;var fun;if(m){var mask=prompt+": %s";if(!def.fun.is(m)){var apply=Function.prototype.apply;fun=function(){apply.call(m,c,def.array.append([mask],arguments))}}else{fun=m.bind(console,mask)}}o[pto]=fun};function installPvcLog(){if(pvc.debug&&typeof console!=="undefined"){['log','info',['trace','debug'],'error','warn','group','groupEnd'].forEach(function(ps){ps=ps instanceof Array?ps:[ps,ps];pvc._installLog(pvc,ps[0],ps[1],'[pvChart]')})}else{if(pvc.debug>1){pvc.debug=1}['log','info','trace','warn','group','groupEnd'].forEach(function(p){pvc[p]=def.noop});pvc.error=function(e){if(e&&typeof e==='object'&&e.message){e=e.message}throw new Error("[pvChart ERROR]: "+e)}}}installPvcLog();pvc.logError=pvc.error;pv.error=pvc.error;function syncTipsyLog(){var tip=pv.Behavior.tipsy;if(tip&&tip.setDebug){tip.setDebug(pvc.debug);tip.log=pvc.log}}syncTipsyLog();pvc.defaultCompatVersion=function(compatVersion){var defaults=pvc.BaseChart.prototype.defaults;if(compatVersion!=null){return defaults.compatVersion=compatVersion}return defaults.compatVersion};pvc.cloneMatrix=function(m){return m.map(function(d){return d.slice()})};pvc.stringify=function(t,keyArgs){var maxLevel=def.get(keyArgs,'maxLevel')||5;var out=[];pvc.stringifyRecursive(out,t,maxLevel,keyArgs);return out.join('')};pvc.stringifyRecursive=function(out,t,remLevels,keyArgs){if(remLevels>0){remLevels--;switch(typeof t){case'undefined':return out.push('undefined');case'object':if(!t){out.push('null');return true}if(def.fun.is(t.stringify)){return t.stringify(out,remLevels,keyArgs)}if(t instanceof Array){out.push('[');t.forEach(function(item,index){if(index){out.push(', ')}if(!pvc.stringifyRecursive(out,item,remLevels,keyArgs)){out.pop()}});out.push(']')}else{var ownOnly=def.get(keyArgs,'ownOnly',true);if(t===def.global){out.push('<window>');return true}if(def.fun.is(t.cloneNode)){out.push('<dom #'+(t.id||t.name||'?')+'>');return true}if(remLevels>1&&t.constructor!==Object){remLevels=1;ownOnly=true}out.push('{');var first=true;for(var p in t){if(!ownOnly||def.hasOwnProp.call(t,p)){if(!first){out.push(', ')}out.push(p+': ');if(!pvc.stringifyRecursive(out,t[p],remLevels,keyArgs)){out.pop();if(!first){out.pop()}}else if(first){first=false}}}if(first){var s=''+t;if(s!=='[object Object]'){out.push('{'+s+'}')}}out.push('}')}return true;case'number':out.push(''+(Math.round(100000*t)/100000)); return true;case'boolean':out.push(''+t);return true;case'string':out.push(JSON.stringify(t));return true;case'function':if(def.get(keyArgs,'funs',false)){out.push(JSON.stringify(t.toString().substr(0,13)+'...'));return true}return false}out.push("'new ???'");return true}};pvc.orientation={vertical:'vertical',horizontal:'horizontal'};pvc.extensionTag='extension';pvc.extendType=function(type,exts,names){if(exts){var exts2;var addExtension=function(ext,name){if(ext!==undefined){if(!exts2){exts2={}}exts2[name]=def.fun.to(ext)}};if(names){names.forEach(function(name){addExtension(exts[name],name)})}else{def.each(addExtension)}if(exts2){type.add(exts2)}}};pv.Mark.prototype.hasDelegateValue=function(name,tag){var p=this.$propertiesMap[name];if(p){return(!tag||p.tag===tag)}if(this.proto){return this.proto.hasDelegateValue(name,tag)}return false};pvc.defaultColorScheme=null;pvc.brighterColorTransform=function(color){return(color.rgb?color:pv.color(color)).brighter(0.6)};pvc.setDefaultColorScheme=function(colors){return pvc.defaultColorScheme=pvc.colorScheme(colors)};pvc.defaultColor=pv.Colors.category10()('?');pvc.colorScheme=function(colors){if(colors==null){return null}if(typeof colors==='function'){if(!colors.hasOwnProperty('range')){return colors}colors=colors.range()}else{colors=def.array.as(colors)}if(!colors.length){return null}return function(){var scale=pv.colors(colors);scale.domain.apply(scale,arguments);return scale}},pvc.createColorScheme=function(colors){return pvc.colorScheme(colors)||pvc.defaultColorScheme||pv.Colors.category10};pvc.toGrayScale=function(color,alpha,maxGrayLevel,minGrayLevel){color=pv.color(color);var avg=0.299*color.r+0.587*color.g+0.114*color.b;if(maxGrayLevel===undefined){maxGrayLevel=200}else if(maxGrayLevel==null){maxGrayLevel=255}if(minGrayLevel===undefined){minGrayLevel=30}else if(minGrayLevel==null){minGrayLevel=0}var delta=(maxGrayLevel-minGrayLevel);if(delta<=0){avg=maxGrayLevel}else{avg=minGrayLevel+(avg/255)*delta}if(alpha==null){alpha=color.opacity}else if(alpha<0){alpha=(-alpha)*color.opacity}avg=Math.round(avg);return pv.rgb(avg,avg,avg,alpha)};pvc.removeTipsyLegends=function(){try{$('.tipsy').remove()}catch(e){}};pvc.createDateComparer=function(parser,key){if(!key){key=pv.identity}return function(a,b){return parser.parse(key(a))-parser.parse(key(b))}};pvc.time={intervals:{'y':31536e6,'m':2592e6,'d30':2592e6,'w':6048e5,'d7':6048e5,'d':864e5,'h':36e5,'M':6e4,'s':1e3,'ms':1},withoutTime:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())},weekday:{previousOrSelf:function(t,toWd){var wd=t.getDay();var difDays=wd-toWd;if(difDays){var previousOffset=difDays<0?(7+difDays):difDays;t=new Date(t-previousOffset*pvc.time.intervals.d)}return t},nextOrSelf:function(t,toWd){var wd=t.getDay();var difDays=wd-toWd;if(difDays){var nextOffset=difDays>0?(7-difDays):-difDays;t=new Date(t+nextOffset*pvc.time.intervals.d)}return t},closestOrSelf:function(t,toWd){var wd=t.getDay();var difDays=wd-toWd;if(difDays){var D=pvc.time.intervals.d;var sign=difDays>0?1:-1;difDays=Math.abs(difDays);if(difDays>=4){t=new Date(t.getTime()+sign*(7-difDays)*D)}else{t=new Date(t.getTime()-sign*difDays*D)}}return t}}};pv.Format.createParser=function(pvFormat){function parse(value){return pvFormat.parse(value)}return parse};pv.Format.createFormatter=function(pvFormat){function format(value){return value!=null?pvFormat.format(value):""}return format};pvc.buildTitleFromName=function(name){return def.firstUpperCase(name).replace(/([a-z\d])([A-Z])/,"$1 $2")};pvc.buildIndexedId=function(prefix,index){if(index>0){return prefix+""+(index+1)}return prefix};pvc.splitIndexedId=function(indexedId){var match=/^(.*?)(\d*)$/.exec(indexedId);var index=null;if(match[2]){index=Number(match[2]);if(index<=1){index=1}else{index--}}return[match[1],index]};function unwrapExtensionOne(id,prefix){if(id){if(def.object.is(id)){return id.abs}return prefix?(prefix+def.firstUpperCase(id)):id}return prefix}var oneNullArray=[null];pvc.makeExtensionAbsId=function(id,prefix){if(!id){return prefix}return def.query(prefix||oneNullArray).selectMany(function(oneprefix){return def.query(id).select(function(oneid){return unwrapExtensionOne(oneid,oneprefix)})}).where(def.truthy).array()};pvc.parseDistinctIndexArray=function(value,max){value=def.array.as(value);if(value==null){return null}if(max==null){max=Infinity}var a=def.query(value).select(function(index){return+index}).where(function(index){return!isNaN(index)&&index>=0&&index<=max}).distinct().array();return a.length?a:null};pvc.parseLegendClickMode=function(clickMode){if(!clickMode){clickMode='none'}switch(clickMode){case'toggleSelected':case'toggleVisible':case'none':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'legendClickMode' option value: '"+clickMode+"'. Assuming 'none'.")}clickMode='none';break}return clickMode};pvc.parseShape=function(shape){if(shape){switch(shape){case'square':case'circle':case'diamond':case'triangle':case'cross':case'bar':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'shape' option value: '"+shape+"'.")}shape=null;break}}return shape};pvc.parseContinuousColorScaleType=function(scaleType){if(scaleType){switch(scaleType){case'linear':case'normal':case'discrete':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'ScaleType' option value: '"+scaleType+"'.")}scaleType=null;break}}return scaleType};pvc.parseDomainScope=function(scope,orientation){if(scope){switch(scope){case'cell':case'global':break;case'section':if(!orientation){throw def.error.argumentRequired('orientation')}scope=orientation==='y'?'row':'column';break;case'column':case'row':if(orientation&&orientation!==(scope==='row'?'y':'x')){scope='section';if(pvc.debug>=2){pvc.log("[Warning] Invalid 'DomainScope' option value: '"+scope+"' for the orientation: '"+orientation+"'.")}}break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'DomainScope' option value: '"+scope+"'.")}scope=null;break}}return scope};pvc.parseDomainRoundingMode=function(mode){if(mode){switch(mode){case'none':case'nice':case'tick':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'DomainRoundMode' value: '"+mode+"'.")}mode=null;break}}return mode};pvc.parseOverlappedLabelsMode=function(mode){if(mode){switch(mode){case'leave':case'hide':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'OverlappedLabelsMode' option value: '"+mode+"'.")}mode=null;break}}return mode};pvc.castNumber=function(value){if(value!=null){value=+value;if(isNaN(value)){value=null}}return value};pvc.parseWaterDirection=function(value){if(value){switch(value){case'up':case'down':return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'WaterDirection' value: '"+value+"'.")}}};pvc.parseTrendType=function(value){if(value){if(value==='none'){return value}if(pvc.trends.has(value)){return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'TrendType' value: '"+value+"'.")}}};pvc.parseNullInterpolationMode=function(value){if(value){switch(value){case'none':case'linear':case'zero':return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'NullInterpolationMode' value: '"+value+"'.")}}};pvc.parseAlign=function(side,align){var align2,isInvalid;if(side==='left'||side==='right'){align2=align&&pvc.BasePanel.verticalAlign[align];if(!align2){align2='middle';isInvalid=!!align}}else{align2=align&&pvc.BasePanel.horizontalAlign[align];if(!align2){align2='center';isInvalid=!!align}}if(isInvalid&&pvc.debug>=2){pvc.log(def.format("Invalid alignment value '{0}'. Assuming '{1}'.",[align,align2]))}return align2};pvc.parseAnchor=function(anchor){if(anchor){switch(anchor){case'top':case'left':case'center':case'bottom':case'right':return anchor}if(pvc.debug>=2){pvc.log(def.format("Invalid anchor value '{0}'.",[anchor]))}}};pvc.parseAnchorWedge=function(anchor){if(anchor){switch(anchor){case'outer':case'inner':case'center':case'start':case'end':return anchor}if(pvc.debug>=2){pvc.log(def.format("Invalid wedge anchor value '{0}'.",[anchor]))}}};pvc.unionExtents=function(result,range){if(!result){if(!range){return null}result={min:range.min,max:range.max}}else if(range){if(range.min<result.min){result.min=range.min}if(range.max>result.max){result.max=range.max}}return result};pvc.Sides=function(sides){if(sides!=null){this.setSides(sides)}};pvc.Sides.hnames='left right'.split(' ');pvc.Sides.vnames='top bottom'.split(' ');pvc.Sides.names='left right top bottom'.split(' ');pvc.Sides.namesSet=pv.dict(pvc.Sides.names,def.retTrue);pvc.parsePosition=function(side,defaultSide){if(side&&!def.hasOwn(pvc.Sides.namesSet,side)){if(!defaultSide){defaultSide='left'}if(pvc.debug>=2){pvc.log(def.format("Invalid position value '{0}. Assuming '{1}'.",[side,defaultSide]))}side=defaultSide}return side};pvc.Sides.as=function(v){if(v!=null&&!(v instanceof pvc.Sides)){v=new pvc.Sides().setSides(v)}return v};pvc.Sides.prototype.stringify=function(out,remLevels,keyArgs){return pvc.stringifyRecursive(out,def.copyOwn(this),remLevels,keyArgs)};pvc.Sides.prototype.setSides=function(sides){if(typeof sides==='string'){var comps=sides.split(/\s+/).map(function(comp){return pvc.PercentValue.parse(comp)});switch(comps.length){case 1:this.set('all',comps[0]);return this;case 2:this.set('top',comps[0]);this.set('left',comps[1]);this.set('right',comps[1]);this.set('bottom',comps[0]);return this;case 3:this.set('top',comps[0]);this.set('left',comps[1]);this.set('right',comps[1]);this.set('bottom',comps[2]);return this;case 4:this.set('top',comps[0]);this.set('right',comps[1]);this.set('bottom',comps[2]);this.set('left',comps[3]);return this;case 0:return this}}else if(typeof sides==='number'){this.set('all',sides);return this}else if(typeof sides==='object'){if(sides instanceof pvc.PercentValue){this.set('all',sides)}else{this.set('all',sides.all);for(var p in sides){if(p!=='all'&&pvc.Sides.namesSet.hasOwnProperty(p)){this.set(p,sides[p])}}}return this}if(pvc.debug){pvc.log("Invalid 'sides' value: "+pvc.stringify(sides))}return this};pvc.Sides.prototype.set=function(prop,value){value=pvc.PercentValue.parse(value);if(value!=null){if(prop==='all'){pvc.Sides.names.forEach(function(p){this[p]=value},this)}else if(def.hasOwn(pvc.Sides.namesSet,prop)){this[prop]=value}}};pvc.Sides.prototype.resolve=function(width,height){if(typeof width==='object'){height=width.height;width=width.width}var sides={};pvc.Sides.names.forEach(function(side){var value=0;var sideValue=this[side];if(sideValue!=null){if(typeof(sideValue)==='number'){value=sideValue}else{value=sideValue.resolve((side==='left'||side==='right')?width:height)}}sides[side]=value},this);return pvc.Sides.updateSize(sides)};pvc.Sides.updateSize=function(sides){sides.width=(sides.left||0)+(sides.right||0);sides.height=(sides.bottom||0)+(sides.top||0);return sides};pvc.Sides.resolvedMax=function(a,b){var sides={};pvc.Sides.names.forEach(function(side){sides[side]=Math.max(a[side]||0,b[side]||0)});return sides};pvc.Sides.inflate=function(sides,by){var sidesOut={};pvc.Sides.names.forEach(function(side){sidesOut[side]=(sides[side]||0)+by});return pvc.Sides.updateSize(sidesOut)};pvc.PercentValue=function(pct){this.percent=pct};pvc.PercentValue.prototype.resolve=function(total){return this.percent*total};pvc.PercentValue.parse=function(value){if(value!=null&&value!==''){switch(typeof value){case'number':return value;case'string':var match=value.match(/^(.+?)\s*(%)?$/);if(match){var n=+match[1];if(!isNaN(n)){if(match[2]){if(n>=0){return new pvc.PercentValue(n/100)}}else{return n}}}break;case'object':if(value instanceof pvc.PercentValue){return value}break}if(pvc.debug){pvc.log(def.format("Invalid margins component '{0}'",[''+value]))}}};pvc.PercentValue.resolve=function(value,total){return(value instanceof pvc.PercentValue)?value.resolve(total):value};var markRenderCore=pv.Mark.prototype.renderCore,markZOrder=pv.Mark.prototype.zOrder;pv.Mark.prototype.zOrder=function(zOrder){var borderPanel=this.borderPanel;if(borderPanel&&borderPanel!==this){return markZOrder.call(borderPanel,zOrder)}return markZOrder.call(this,zOrder)};pv.Mark.prototype.renderCore=function(){var root=this.root;root._renderId=(root._renderId||0)+1;if(pvc.debug>=25){pvc.log("BEGIN RENDER "+root._renderId)}markRenderCore.apply(this,arguments);if(pvc.debug>=25){pvc.log("END RENDER "+root._renderId)}};pv.Mark.prototype.renderId=function(){return this.root._renderId};pv.Mark.prototype.wrapper=function(wrapper){this._wrapper=wrapper;return this};pv.Mark.prototype.wrap=function(f,m){if(f&&def.fun.is(f)&&this._wrapper&&!f._cccWrapped){f=this._wrapper(f,m);f._cccWrapped=true}return f};pv.Mark.prototype.lock=function(prop,value){if(value!==undefined){this[prop](value)}(this._locked||(this._locked={}))[prop]=true;return this};pv.Mark.prototype.isIntercepted=function(prop){return this._intercepted&&this._intercepted[prop]};pv.Mark.prototype.isLocked=function(prop){return this._locked&&this._locked[prop]};pv.Mark.prototype.addMargin=function(name,margin){if(margin!==0){var staticValue=def.nullyTo(this.propertyValue(name),0),fMeasure=pv.functor(staticValue);this[name](function(){return margin+fMeasure.apply(this,arraySlice.call(arguments))})}return this};pv.Mark.prototype.addMargins=function(margins){var all=def.get(margins,'all',0);this.addMargin('left',def.get(margins,'left',all));this.addMargin('right',def.get(margins,'right',all));this.addMargin('top',def.get(margins,'top',all));this.addMargin('bottom',def.get(margins,'bottom',all));return this};pv.Mark.prototype.eachInstanceWithData=function(fun,ctx){this.eachInstance(function(scenes,index,t){if(scenes.mark.sign&&scenes[index].data){fun.call(ctx,scenes,index,t)}})};pv.Transform.prototype.transformHPosition=function(left){return this.x+(this.k*left)};pv.Transform.prototype.transformVPosition=function(top){return this.y+(this.k*top)};pv.Transform.prototype.transformLength=function(length){return this.k*length};var Size=def.type('pvc.Size').init(function(width,height){if(arguments.length===1){if(width!=null){this.setSize(width)}}else{if(width!=null){this.width=width}if(height!=null){this.height=height}}}).add({stringify:function(out,remLevels,keyArgs){return pvc.stringifyRecursive(out,def.copyOwn(this),remLevels,keyArgs)},setSize:function(size,keyArgs){if(typeof size==='string'){var comps=size.split(/\s+/).map(function(comp){return pvc.PercentValue.parse(comp)});switch(comps.length){case 1:this.set(def.get(keyArgs,'singleProp','all'),comps[0]);return this;case 2:this.set('width',comps[0]);this.set('height',comps[1]);return this;case 0:return this}}else if(typeof size==='number'){this.set(def.get(keyArgs,'singleProp','all'),size);return this}else if(typeof size==='object'){if(size instanceof pvc.PercentValue){this.set(def.get(keyArgs,'singleProp','all'),size)}else{this.set('all',size.all);for(var p in size){if(p!=='all'){this.set(p,size[p])}}}return this}if(pvc.debug){pvc.log("Invalid 'size' value: "+pvc.stringify(size))}return this},set:function(prop,value){if(value!=null&&(prop==='all'||def.hasOwn(pvc.Size.namesSet,prop))){value=pvc.PercentValue.parse(value);if(value!=null){if(prop==='all'){pvc.Size.names.forEach(function(p){this[p]=value},this)}else{this[prop]=value}}}return this},clone:function(){return new Size(this.width,this.height)},intersect:function(size){return new Size(Math.min(this.width,size.width),Math.min(this.height,size.height))},resolve:function(refSize){var size={};pvc.Size.names.forEach(function(length){var lengthValue=this[length];if(lengthValue!=null){if(typeof(lengthValue)==='number'){size[length]=lengthValue}else if(refSize){var refLength=refSize[length];if(refLength!=null){size[length]=lengthValue.resolve(refLength)}}}},this);return size}});pvc.Size.names=['width','height'];pvc.Size.namesSet=pv.dict(pvc.Size.names,def.retTrue);pvc.Size.toOrtho=function(value,anchor){if(value!=null){var a_ol;if(anchor){a_ol=pvc.BasePanel.orthogonalLength[anchor]}value=pvc.Size.to(value,{singleProp:a_ol});if(anchor){delete value[pvc.BasePanel.oppositeLength[a_ol]]}}return value};pvc.Size.to=function(v,keyArgs){if(v!=null&&!(v instanceof Size)){v=new Size().setSize(v,keyArgs)}return v};var Offset=def.type('pvc.Offset').init(function(x,y){if(arguments.length===1){if(x!=null){this.setOffset(x)}}else{if(x!=null){this.x=x}if(y!=null){this.y=y}}}).add({stringify:function(out,remLevels,keyArgs){return pvc.stringifyRecursive(out,def.copyOwn(this),remLevels,keyArgs)},setOffset:function(offset,keyArgs){if(typeof offset==='string'){var comps=offset.split(/\s+/).map(function(comp){return pvc.PercentValue.parse(comp)});switch(comps.length){case 1:this.set(def.get(keyArgs,'singleProp','all'),comps[0]);return this;case 2:this.set('x',comps[0]);this.set('y',comps[1]);return this;case 0:return this}}else if(typeof offset==='number'){this.set(def.get(keyArgs,'singleProp','all'),offset);return this}else if(typeof offset==='object'){this.set('all',offset.all);for(var p in offset){if(p!=='all'){this.set(p,offset[p])}}return this}if(pvc.debug){pvc.log("Invalid 'offset' value: "+pvc.stringify(offset))}return this},set:function(prop,value){if(value!=null&&def.hasOwn(pvc.Offset.namesSet,prop)){value=pvc.PercentValue.parse(value);if(value!=null){if(prop==='all'){pvc.Offset.names.forEach(function(p){this[p]=value},this)}else{this[prop]=value}}}},resolve:function(refSize){var offset={};pvc.Size.names.forEach(function(length){var offsetProp=pvc.Offset.namesSizeToOffset[length];var offsetValue=this[offsetProp];if(offsetValue!=null){if(typeof(offsetValue)==='number'){offset[offsetProp]=offsetValue}else if(refSize){var refLength=refSize[length];if(refLength!=null){offset[offsetProp]=offsetValue.resolve(refLength)}}}},this);return offset}});pvc.Offset.names=['x','y'];pvc.Offset.namesSet=pv.dict(pvc.Offset.names,def.retTrue);pvc.Offset.namesSizeToOffset={width:'x',height:'y'};pvc.Offset.namesSidesToOffset={left:'x',right:'x',top:'y',bottom:'y'};pvc.Offset.as=function(v){if(v!=null&&!(v instanceof Offset)){v=new Offset().setOffset(v)}return v}}());(function($){$.support.svg=$.support.svg||document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}(jQuery));
2   -pvc.text={getFitInfo:function(w,h,text,font,diagMargin){if(text===''){return{h:true,v:true,d:true}}var len=pv.Text.measure(text,font).width;return{h:len<=w,v:len<=h,d:len<=Math.sqrt(w*w+h*h)-diagMargin}},trimToWidthB:function(len,text,font,trimTerminator,before){len-=pv.Text.measure(trimTerminator,font).width;return pvc.text.trimToWidth(len,text,font,trimTerminator,before)},trimToWidth:function(len,text,font,trimTerminator,before){if(text===''){return text}var textLen=pv.Text.measure(text,font).width;if(textLen<=len){return text}if(textLen>len*1.5){return pvc.text.trimToWidthBin(len,text,font,trimTerminator,before)}while(textLen>len){text=before?text.slice(1):text.slice(0,text.length-1);textLen=pv.Text.measure(text,font).width}return before?(trimTerminator+text):(text+trimTerminator)},trimToWidthBin:function(len,text,font,trimTerminator,before){var ilen=text.length,high=ilen-2,low=0,mid,textLen;while(low<=high&&high>0){mid=Math.ceil((low+high)/2);var textMid=before?text.slice(ilen-mid):text.slice(0,mid);textLen=pv.Text.measure(textMid,font).width;if(textLen>len){high=mid-1}else if(pv.Text.measure(before?text.slice(ilen-mid-1):text.slice(0,mid+1),font).width<len){low=mid+1}else{return before?(trimTerminator+textMid):(textMid+trimTerminator)}}return before?(trimTerminator+text.slice(ilen-high)):(text.slice(0,high)+trimTerminator)},justify:function(text,lineWidth,font){var lines=[];if(lineWidth<pv.Text.measure('a',font).width){return lines}var words=(text||'').split(/\s+/);var line="";while(words.length){var word=words.shift();if(word){var nextLine=line?(line+" "+word):word;if(pv.Text.measure(nextLine,font).width>lineWidth){if(line){lines.push(line)}line=word}else{line=nextLine}}}if(line){lines.push(line)}return lines},getLabelBBox:function(textWidth,textHeight,align,baseline,angle,margin){var polygon=pv.Label.getPolygon(textWidth,textHeight,align,baseline,angle,margin);var bbox=polygon.bbox();bbox.source=polygon;bbox.sourceAngle=angle;bbox.sourceAlign=align;bbox.sourceTextWidth=textWidth;return bbox}};
3   -def.scope(function(){pvc.color={scale:colorScale,scales:colorScales};function colorScales(keyArgs){keyArgs||def.fail.argumentRequired('keyArgs');var type=keyArgs.type||def.fail.argumentRequired('keyArgs.type');switch(type){case'linear':return new pvc.color.LinearScalesBuild(keyArgs).buildMap();case'discrete':return new pvc.color.DiscreteScalesBuild(keyArgs).buildMap();case'normal':return new pvc.color.NormalScalesBuild(keyArgs).buildMap()}throw def.error.argumentInvalid('scaleType',"Unexistent scale type '{0}'.",[type])}function colorScale(keyArgs){keyArgs||def.fail.argumentRequired('keyArgs');var type=keyArgs.type||def.fail.argumentRequired('keyArgs.type');switch(type){case'linear':return new pvc.color.LinearScalesBuild(keyArgs).build();case'discrete':return new pvc.color.DiscreteScalesBuild(keyArgs).build();case'normal':return new pvc.color.NormalScalesBuild(keyArgs).build()}throw def.error.argumentInvalid('scaleType',"Unexistent scale type '{0}'.",[type])}def.type('pvc.color.ScalesBuild').init(function(keyArgs){this.keyArgs=keyArgs;this.data=keyArgs.data||def.fail.argumentRequired('keyArgs.data');this.domainDimName=keyArgs.colorDimension||def.fail.argumentRequired('keyArgs.colorDimension');this.domainDim=this.data.dimensions(this.domainDimName);var dimType=this.domainDim.type;if(!dimType.isComparable){this.domainComparer=null;pvc.log("Color value dimension should be comparable. Generated color scale may be invalid.")}else{this.domainComparer=function(a,b){return dimType.compare(a,b)}}this.nullRangeValue=keyArgs.colorNull?pv.color(keyArgs.colorNull):pv.Color.transparent;this.domainRangeCountDif=0}).add({build:function(){this.range=this._getRange();this.desiredDomainCount=this.range.length+this.domainRangeCountDif;var domain=this._getDomain();return this._createScale(domain)},buildMap:function(){this.range=this._getRange();this.desiredDomainCount=this.range.length+this.domainRangeCountDif;var createCategoryScale;if(this.keyArgs.normPerBaseCategory){createCategoryScale=function(leafData){var domain=this._ensureDomain(null,false,leafData);return this._createScale(domain)}}else{var domain=this._getDomain(),scale=this._createScale(domain);createCategoryScale=def.fun.constant(scale)}return this._createCategoryScalesMap(createCategoryScale)},_createScale:def.method({isAbstract:true}),_createCategoryScalesMap:function(createCategoryScale){return this.data.children().object({name:function(leafData){return leafData.absKey},value:createCategoryScale,context:this})},_getRange:function(){var keyArgs=this.keyArgs,range=keyArgs.colors||['red','yellow','green'];if(keyArgs.colorMin!=null&&keyArgs.colorMax!=null){range=[keyArgs.colorMin,keyArgs.colorMax]}else if(keyArgs.colorMin!=null){range.unshift(keyArgs.colorMin)}else if(keyArgs.colorMax!=null){range.push(keyArgs.colorMax)}return range.map(function(c){return pv.color(c)})},_getDataExtent:function(data){var extent=data.dimensions(this.domainDimName).extent({visible:true});if(!extent){return null}var min=extent.min.value,max=extent.max.value;if(max==min){if(max>=1){min=max-1}else{max=min+1}}return{min:min,max:max}},_getDomain:function(){var domain=this.keyArgs.colorDomain;if(domain!=null){if(this.domainComparer){domain.sort(this.domainComparer)}if(domain.length>this.desiredDomainCount){domain=domain.slice(0,this.desiredDomainCount)}}else{domain=[]}return this._ensureDomain(domain,true,this.data)},_ensureDomain:function(domain,doDomainPadding,data){var extent;if(domain&&doDomainPadding){var domainPointsMissing=this.desiredDomainCount-domain.length;if(domainPointsMissing>0){extent=this._getDataExtent(data);if(extent){switch(domainPointsMissing){case 1:if(this.domainComparer){def.array.insert(domain,extent.max,this.domainComparer)}else{domain.push(extent.max)}break;case 2:if(this.domainComparer){def.array.insert(domain,extent.min,this.domainComparer);def.array.insert(domain,extent.max,this.domainComparer)}else{domain.unshift(extent.min);domain.push(extent.max)}break;default:if(pvc.debug>=2){pvc.log("Ignoring option 'colorDomain' due to unsupported length."+def.format(" Should have '{0}', but instead has '{1}'.",[this.desiredDomainCount,domain.length]))}domain=null}}}}if(!domain){extent||(extent=this._getDataExtent(data));if(extent){var min=extent.min,max=extent.max;var step=(max-min)/(this.desiredDomainCount-1);domain=pv.range(min,max+step,step)}}return domain}});def.type('pvc.color.LinearScalesBuild',pvc.color.ScalesBuild).add({_createScale:function(domain){var scale=pv.Scale.linear();if(domain){scale.domain.apply(scale,domain)}scale.range.apply(scale,this.range);return scale}});def.type('pvc.color.DiscreteScalesBuild',pvc.color.ScalesBuild).init(function(keyArgs){this.base(keyArgs);this.domainRangeCountDif=1}).add({_createScale:function(domain){var Dl=domain.length-1,range=this.range,nullRangeValue=this.nullRangeValue,Rl=range.length-1;function scale(val){if(val==null){return nullRangeValue}for(var i=0;i<Dl;i++){if(val<=domain[i+1]){return range[i]}}return range[Rl]}def.copy(scale,pv.Scale.common);return scale}})});
4   -def.space('pvc.trends',function(trends){var _trends={};def.set(trends,'define',function(type,trendSpec){type||def.fail.argumentRequired('type');trendSpec||def.fail.argumentRequired('trendSpec');def.object.is(trendSpec)||def.fail.argumentInvalid('trendSpec',"Must be a trend specification object.");if(pvc.debug>=2&&def.hasOwn(_trends,type)){pvc.log(def.format("[WARNING] A trend type with the name '{0}' is already defined.",[type]))}var label=trendSpec.label||def.fail.argumentRequired('trendSpec.label');var model=trendSpec.model||def.fail.argumentRequired('trendSpec.model');def.fun.is(model)||def.fail.argumentInvalid('trendSpec.mode',"Must be a function.");var trendInfo={dataPartAtom:{v:'trend',f:label},type:type,label:label,model:model};_trends[type]=trendInfo},'get',function(type){type||def.fail.argumentRequired('type');return def.getOwn(_trends,type)||def.fail.operationInvalid("Undefined trend type '{0}'.",[type])},'has',function(type){return def.hasOwn(_trends,type)},'types',function(){return def.ownKeys(_trends)});trends.define('linear',{label:'Linear trend',model:function(options){var rows=def.get(options,'rows');var funX=def.get(options,'x');var funY=def.get(options,'y');var i=0;var N=0;var sumX=0;var sumY=0;var sumXY=0;var sumXX=0;var parseNum=function(value){return value!=null?(+value):NaN};while(rows.next()){var row=rows.item;var x=funX?parseNum(funX(row)):i;if(!isNaN(x)){var y=parseNum(funY(row));if(!isNaN(y)){N++;sumX+=x;sumY+=y;sumXY+=x*y;sumXX+=x*x}}i++}var alpha,beta;if(N>=2){var avgX=sumX/N;var avgY=sumY/N;var avgXY=sumXY/N;var avgXX=sumXX/N;var den=(avgXX-avgX*avgX);if(den===0){beta=0}else{beta=(avgXY-(avgX*avgY))/den}alpha=avgY-beta*avgX;return{alpha:alpha,beta:beta,reset:def.noop,sample:function(x){return alpha+beta*(+x)}}}}});trends.define('moving-average',{label:'Moving average',model:function(options){var W=Math.max(+(def.get(options,'periods')||3),2);var sum=0;var avgValues=[];return{reset:function(){sum=0;avgValues.length=0},sample:function(x,y,i){var L=W;if(y!=null){avgValues.unshift(y);sum+=y;L=avgValues.length;if(L>W){sum-=avgValues.pop();L=W}}return sum/L}}}});trends.define('weighted-moving-average',{label:'Weighted Moving average',model:function(options){var W=Math.max(+(def.get(options,'periods')||3),2);var sum=0;var numer=0;var avgValues=[];var L=0;var denom=0;return{reset:function(){sum=numer=denom=L=0;avgValues.length=0},sample:function(x,y){if(y!=null){if(L<W){avgValues.push(y);L++;denom+=L;numer+=L*y;sum+=y}else{numer+=(L*y)-sum;sum+=y-avgValues[0];for(var j=1;j<W;j++){avgValues[j-1]=avgValues[j]}avgValues[W-1]=y}}return numer/denom}}}})});
5   -def.scope(function(){function options(specs,context){specs||def.fail.argumentRequired('specs');var _infos={};def.each(specs,function(spec,name){var info=new OptionInfo(name,option,context,spec);_infos[info.name]=info});function resolve(name){var info=def.getOwn(_infos,name)||def.fail.operationInvalid("Undefined option '{0}'",[name]);return info.resolve()}function option(name,noDefault){var info=resolve(name);return noDefault&&!info.isSpecified?undefined:info.value}function isSpecified(name){return resolve(name).isSpecified}function specified(name){return option(name,true)}function isDefined(name){return def.hasOwn(_infos,name)}function specify(opts){return set(opts,false)}function defaults(opts){return set(opts,true)}function getDefaultValue(name){return resolve(name)._defaultValue}function set(opts,isDefault){for(var name in opts){var info=def.getOwn(_infos,name);if(info){var value=opts[name];if(value!==undefined){info.set(value,isDefault)}}}return option}option.option=option;option.specified=specified;option.isSpecified=isSpecified;option.isDefined=isDefined;option.defaultValue=getDefaultValue;option.specify=specify;option.defaults=defaults;return option}function resolvers(list){return function(optionInfo){for(var i=0,L=list.length;i<L;i++){var m=list[i];if(def.string.is(m)){m=this[m]}if(m.call(this,optionInfo)===true){return true}}}}function constantResolver(value,op){return function(optionInfo){optionInfo.specify(value);return true}}function specifyResolver(fun,op){return function(optionInfo){var value=fun.call(this,optionInfo);if(value!==undefined){optionInfo.specify(value);return true}}}function defaultResolver(fun){return function(optionInfo){var value=fun.call(this,optionInfo);if(value!==undefined){optionInfo.defaultValue(value);return true}}}options.resolvers=resolvers;options.constant=constantResolver;options.specify=specifyResolver;options.defaultValue=defaultResolver;pvc.options=options;var OptionInfo=def.type().init(function(name,option,context,spec){this.name=name;this._context=context;this.option=option;this._cast=def.get(spec,'cast');var value=def.get(spec,'value');if(value!==undefined){this._defaultValue=this.value=value}this.resolveCore=def.get(spec,'resolve');if(!this.resolveCore){this.isResolved=true}var getDefault=def.get(spec,'getDefault');if(getDefault){this._getDefault=getDefault}var data=def.get(spec,'data');if(data!=null){this.data=data}this.alias=def.array.to(def.get(spec,'alias'))}).add({isSpecified:false,isResolved:false,value:undefined,_defaultValue:undefined,resolve:function(){if(!this.isResolved){this.isResolved=true;var resolve=this._getFunProp('resolveCore');resolve.call(this._context,this);if(this.value==null){var getDefault=this._getFunProp('_getDefault');if(getDefault){var value=this.cast(getDefault.call(this._context,this));if(value!=null){delete this.isSpecified;this.value=this._defaultValue=value}}}}return this},specify:function(value){return this.set(value,false)},defaultValue:function(defaultValue){if(defaultValue!==undefined){this.set(defaultValue,true)}return this._defaultValue},cast:function(value){if(value!=null){var cast=this._getFunProp('_cast');if(cast){value=cast.call(this._context,value,this)}}return value},dynDefault:function(){var dynDefault=this._getFunProp('_dynDefault');if(dynDefault){return this.cast(dynDefault.call(this._context,this))}},set:function(value,isDefault){if(value!=null){value=this.cast(value)}if(value==null){value=this.dynDefault();if(value!=null){isDefault=true}}if(!isDefault){this.isSpecified=true;this.isResolved=true;this.value=value}else{this._defaultValue=value;if(!this.isSpecified){this.value=value}}return this},_getFunProp:function(name){var fun=this[name];if(fun){var context=this._context;if(context&&def.string.is(fun)){fun=context[fun]}}return fun}})});
6   -def.global.NoDataException=function(){};pvc.data={visibleKeyArgs:{visible:true}};function data_disposeChildList(list,parentProp){if(list){list.forEach(function(child){if(parentProp){child[parentProp]=null}child.dispose()});list.length=0}}function data_addColChild(parent,childrenProp,child,parentProp,index){(child&&!child[parentProp])||def.assert("Must not have a '"+parentProp+"'.");child[parentProp]=parent;var col=(parent[childrenProp]||(parent[childrenProp]=[]));if(index==null||index>=col.length){col.push(child)}else{col.splice(index,0,child)}}function data_removeColChild(parent,childrenProp,child,parentProp){(child&&(!child[parentProp]||child[parentProp]===parent))||def.assert("Not a child");var children=parent[childrenProp];if(children){var index=children.indexOf(child);if(index>=0){def.array.removeAt(children,index)}}child[parentProp]=null}
7   -def.type('pvc.data.DimensionType').init(function(complexType,name,keyArgs){this.complexType=complexType;this.name=name;this.label=def.get(keyArgs,'label')||pvc.buildTitleFromName(name);var groupAndLevel=pvc.splitIndexedId(name);this.group=groupAndLevel[0];this.groupLevel=def.nullyTo(groupAndLevel[1],0);if(this.label.indexOf('{')>=0){this.label=def.format(this.label,[this.groupLevel+1])}this.playedVisualRoles=new def.Map();this.isHidden=!!def.get(keyArgs,'isHidden');var valueType=def.get(keyArgs,'valueType')||null;var valueTypeName=pvc.data.DimensionType.valueTypeName(valueType);var cast=def.getOwn(pvc.data.DimensionType.cast,valueTypeName,null);this.valueType=valueType;this.valueTypeName=valueTypeName;this.cast=cast;this.isDiscreteValueType=(this.valueType!==Number&&this.valueType!==Date);this.isDiscrete=def.get(keyArgs,'isDiscrete');if(this.isDiscrete==null){this.isDiscrete=this.isDiscreteValueType}else{this.isDiscrete=!!this.isDiscrete;if(!this.isDiscrete&&this.isDiscreteValueType){throw def.error.argumentInvalid('isDiscrete',"The only supported continuous value types are Number and Date.")}}this._converter=def.get(keyArgs,'converter')||null;if(!this._converter){var rawFormat=def.get(keyArgs,'rawFormat');if(rawFormat){switch(this.valueType){case Date:this._converter=pv.Format.createParser(pv.Format.date(rawFormat));break}}}this._key=def.get(keyArgs,'key')||null;this._comparer=def.get(keyArgs,'comparer');if(this._comparer===undefined){switch(this.valueType){case Number:case Date:this._comparer=def.compare;break;default:this._comparer=null}}this.isComparable=this._comparer!=null;this._formatter=def.get(keyArgs,'formatter')||null;if(!this._formatter){switch(this.valueType){case Number:this._formatter=pv.Format.createFormatter(pv.Format.number().fractionDigits(0,2));break;case Date:var format=def.get(keyArgs,'format');if(!format){format=def.get(keyArgs,'rawFormat');if(format){format=format.replace(/-/g,"/")}}if(!format){format="%Y/%m/%d"}this._formatter=pv.Format.createFormatter(pv.Format.date(format));break}}}).add({isCalculated:false,compare:function(a,b){if(a==null){if(b==null){return 0}return-1}else if(b==null){return 1}return this._comparer.call(null,a,b)},comparer:function(reverse){if(!this.isComparable){return null}var me=this;if(reverse){return this._reverseComparer||(this._reverseComparer=function(a,b){return me.compare(b,a)})}return this._directComparer||(this._directComparer=function(a,b){return me.compare(a,b)})},atomComparer:function(reverse){if(reverse){return this._reverseAtomComparer||(this._reverseAtomComparer=this._createReverseAtomComparer())}return this._directAtomComparer||(this._directAtomComparer=this._createDirectAtomComparer())},_toDiscrete:function(){this.isDiscrete=true},_toCalculated:function(){this.isCalculated=true},_createReverseAtomComparer:function(){if(!this.isComparable){return atom_idComparerReverse}var me=this;function reverseAtomComparer(a,b){if(a===b){return 0}return me.compare(b.value,a.value)}return reverseAtomComparer},_createDirectAtomComparer:function(){if(!this.isComparable){return atom_idComparer}var me=this;function directAtomComparer(a,b){if(a===b){return 0}return me.compare(a.value,b.value)}return directAtomComparer},formatter:function(){return this._formatter},converter:function(){return this._converter},playingPercentVisualRole:function(){return def.query(this.playedVisualRoles.values()).any(function(visualRole){return visualRole.isPercent})}});pvc.data.DimensionType.cast={'Date':function(value){return value instanceof Date?value:new Date(value)},'Number':function(value){value=Number(value);return isNaN(value)?null:value},'String':String,'Boolean':Boolean,'Object':Object,'Any':null};pvc.data.DimensionType.dimensionGroupName=function(dimName){return dimName.replace(/^(.*?)(\d*)$/,"$1")};pvc.data.DimensionType.valueTypeName=function(valueType){if(valueType==null){return"Any"}switch(valueType){case Boolean:return'Boolean';case Number:return'Number';case String:return'String';case Object:return'Object';case Date:return'Date';default:throw def.error.argumentInvalid('valueType',"Invalid valueType function: '{0}'.",[valueType])}};pvc.data.DimensionType.extendSpec=function(dimName,dimSpec,keyArgs){var dimGroup=pvc.data.DimensionType.dimensionGroupName(dimName),userDimGroupsSpec=def.get(keyArgs,'dimensionGroups');if(userDimGroupsSpec){var groupDimSpec=userDimGroupsSpec[dimGroup];if(groupDimSpec){dimSpec=def.create(groupDimSpec,dimSpec)}}if(!dimSpec){dimSpec={}}switch(dimGroup){case'category':var isCategoryTimeSeries=def.get(keyArgs,'isCategoryTimeSeries',false);if(isCategoryTimeSeries){if(dimSpec.valueType===undefined){dimSpec.valueType=Date}}break;case'value':if(dimSpec.valueType===undefined){dimSpec.valueType=Number}if(dimSpec.valueType===Number){if(dimSpec.formatter===undefined&&!dimSpec.format){dimSpec.formatter=def.get(keyArgs,'valueNumberFormatter')}}break}if(dimSpec.converter===undefined&&dimSpec.valueType===Date&&!dimSpec.rawFormat){dimSpec.rawFormat=def.get(keyArgs,'timeSeriesFormat')}return dimSpec};function dimType_addVisualRole(visualRole){this.playedVisualRoles.set(visualRole.name,visualRole);compType_dimensionRolesChanged.call(this.type,this)}function dimType_removeVisualRole(visualRole){this.playedVisualRoles.rem(visualRole.name);compType_dimensionRolesChanged.call(this.type,this)}
8   -def.type('pvc.data.ComplexType').init(function(dimTypeSpecs){this._dims={};this._dimsList=[];this._dimsNames=[];this._calculations=[];this._calculatedDimNames={};this._dimsIndexByName=null;this._dimsByGroup={};this._dimsNamesByGroup={};if(dimTypeSpecs){for(var name in dimTypeSpecs){this.addDimension(name,dimTypeSpecs[name])}}}).add({describe:function(){var out=["COMPLEX TYPE INFORMATION",pvc.logSeparator];this._dimsList.forEach(function(type){var features=[];features.push(type.valueTypeName);if(type.isComparable){features.push("comparable")}if(!type.isDiscrete){features.push("continuous")}if(type.isHidden){features.push("hidden")}out.push(" "+type.name+" ("+features.join(', ')+")")});return out.join("\n")},dimensions:function(name,keyArgs){if(name==null){return this._dims}var dimType=def.getOwn(this._dims,name,null);if(!dimType&&def.get(keyArgs,'assertExists',true)){throw def.error.argumentInvalid('name',"Undefined dimension '{0}'",[name])}return dimType},dimensionsList:function(){return this._dimsList},calculatedDimensionsList:function(){return this._calcDimsList},dimensionsNames:function(){return this._dimsNames},groupDimensions:function(group,keyArgs){var dims=def.getOwn(this._dimsByGroup,group);if(!dims&&def.get(keyArgs,'assertExists',true)){throw def.error.operationInvalid("There is no dimension type group with name '{0}'.",[group])}return dims},groupDimensionsNames:function(group,keyArgs){var dimNames=def.getOwn(this._dimsNamesByGroup,group);if(!dimNames&&def.get(keyArgs,'assertExists',true)){throw def.error.operationInvalid("There is no dimension type group with name '{0}'.",[group])}return dimNames},addDimension:function(name,dimTypeSpec){name||def.fail.argumentRequired('name');!def.hasOwn(this._dims,name)||def.fail.operationInvalid("A dimension type with name '{0}' is already defined.",[name]);var dimension=new pvc.data.DimensionType(this,name,dimTypeSpec);this._dims[name]=dimension;this._dimsIndexByName=null;var group=dimension.group;var groupLevel;if(group){var groupDims=def.getOwn(this._dimsByGroup,group),groupDimsNames;if(!groupDims){groupDims=this._dimsByGroup[group]=[];groupDimsNames=this._dimsNamesByGroup[group]=[]}else{groupDimsNames=this._dimsNamesByGroup[group]}groupLevel=def.array.insert(groupDimsNames,name,def.compare);groupLevel=~groupLevel;def.array.insertAt(groupDims,groupLevel,dimension)}var index;var L=this._dimsList.length;if(!group){index=L}else{groupLevel=dimension.groupLevel;for(var i=0;i<L;i++){var dim=this._dimsList[i];if(dim.group===group){if(dim.groupLevel>groupLevel){index=i;break}index=i+1}}if(index==null){index=L}}def.array.insertAt(this._dimsList,index,dimension);def.array.insertAt(this._dimsNames,index,name);if(dimension._calculate){index=def.array.binarySearch(this._calcDimsList,dimension._calculationOrder,def.compare,function(dimType){return dimType._calculationOrder});if(index>=0){index++}else{index=~index}def.array.insertAt(this._calcDimsList,index,dimension)}this._isPctRoleDimTypeMap=null;return dimension},addCalculation:function(calcSpec,dimsOptions){calcSpec||def.fail.argumentRequired('calcSpec');var calculation=calcSpec.calculation||def.fail.argumentRequired('calculations[i].calculation');var dimNames=calcSpec.names;if(typeof dimNames==='string'){dimNames=dimNames.split(/\s*\,\s*/)}else{dimNames=def.array.as(dimNames)}if(dimNames&&dimNames.length){var calcDimNames=this._calculatedDimNames;dimNames.forEach(function(name){if(name){name=name.replace(/^\s*(.+?)\s*$/,"$1");!def.hasOwn(calcDimNames,name)||def.fail.argumentInvalid('calculations[i].names',"Dimension name '{0}' is already being calculated.",[name]);var dimType=this._dims[name];if(!dimType){var dimSpec=pvc.data.DimensionType.extendSpec(name,null,dimsOptions);this.addDimension(name,dimSpec)}calcDimNames[name]=true;dimType._toCalculated()}},this)}this._calculations.push(calculation)},isCalculated:function(dimName){return def.hasOwn(this._calculatedDimNames,dimName)},_calculate:function(complex){var calcs=this._calculations;if(calcs.length){var valuesByName={};calcs.forEach(function(calc){calc(complex,valuesByName)});return valuesByName}},getPlayingPercentVisualRoleDimensionMap:function(){var map=this._isPctRoleDimTypeMap;if(!map){map=this._isPctRoleDimTypeMap=new def.Map(def.query(def.own(this._dims)).where(function(dimType){return dimType.playingPercentVisualRole()}).object({name:function(dimType){return dimType.name}}))}return map},sortDimensionNames:function(dims,nameKey){var dimsIndexByName=this._dimsIndexByName;if(!dimsIndexByName){dimsIndexByName=def.query(this._dimsList).object({name:function(dim){return dim.name},value:function(dim,index){return index}});this._dimsIndexByName=dimsIndexByName}dims.sort(function(da,db){return def.compare(dimsIndexByName[nameKey?nameKey(da):da],dimsIndexByName[nameKey?nameKey(db):db])});return dims}});function compType_dimensionRolesChanged(dimType){this._isPctRoleDimTypeMap=null}
9   -def.type('pvc.data.ComplexTypeProject').init(function(dimGroupSpecs){this._dims={};this._dimList=[];this._dimGroupsDims={};this._dimGroupSpecs=dimGroupSpecs||{};this._calcList=[]}).add({_ensureDim:function(name){name||def.fail.argumentInvalid('name',"Invalid dimension name '{0}'.",[name]);var info=def.getOwn(this._dims,name);if(!info){info=this._dims[name]=this._createDim(name);this._dimList.push(info);var groupDimsNames=def.array.lazy(this._dimGroupsDims,info.groupName);def.array.insert(groupDimsNames,name,def.compare)}return info},hasDim:function(name){return def.hasOwn(this._dims,name)},setDim:function(name,spec){var _=this._ensureDim(name).spec;if(spec){def.copy(_,spec)}return this},setDimDefaults:function(name,spec){def.setUDefaults(this._ensureDim(name).spec,spec);return this},_createDim:function(name,spec){var dimGroupName=pvc.data.DimensionType.dimensionGroupName(name);var dimGroupSpec=this._dimGroupSpecs[dimGroupName];if(dimGroupSpec){spec=def.create(dimGroupSpec,spec)}return{name:name,groupName:dimGroupName,spec:spec||{}}},readDim:function(name){var info=this._ensureDim(name);if(info.isRead){throw def.error.operationInvalid("Dimension '{0}' already is the target of a reader.",[name])}if(info.isCalc){throw def.error.operationInvalid("Dimension '{0}' is being calculated, so it cannot be the target of a reader.",[name])}info.isRead=true},calcDim:function(name){var info=this._ensureDim(name);if(info.isCalc){throw def.error.operationInvalid("Dimension '{0}' already is being calculated.",[name])}if(info.isRead){throw def.error.operationInvalid("Dimension '{0}' is the target of a reader, so it cannot be calculated.",[name])}info.isCalc=true},isReadOrCalc:function(name){if(name){var info=def.getOwn(this._dims,name);if(info){return info.isRead||info.isCalc}}return false},groupDimensionsNames:function(groupDimName){return this._dimGroupsDims[groupDimName]},setCalc:function(calcSpec){calcSpec||def.fail.argumentRequired('calculations[i]');calcSpec.calculation||def.fail.argumentRequired('calculations[i].calculation');var dimNames=calcSpec.names;if(typeof dimNames==='string'){dimNames=dimNames.split(/\s*\,\s*/)}else{dimNames=def.array.as(dimNames)}if(dimNames&&dimNames.length){dimNames.forEach(this.calcDim,this)}this._calcList.push(calcSpec)},configureComplexType:function(complexType,translOptions){this._dimList.forEach(function(dimInfo){var dimName=dimInfo.name;var spec=dimInfo.spec;spec=pvc.data.DimensionType.extendSpec(dimName,spec,translOptions);complexType.addDimension(dimName,spec)});this._calcList.forEach(function(calcSpec){complexType.addCalculation(calcSpec)})}});
10   -def.type('pvc.data.TranslationOper').init(function(chart,complexTypeProj,source,metadata,options){this.chart=chart;this.complexTypeProj=complexTypeProj;this.source=source;this.metadata=metadata||{};this.options=options||{};this._initType();if(pvc.debug>=4){this._logItems=true;this._logItemCount=0}}).add({_logItems:false,logSource:def.method({isAbstract:true}),virtualItemSize:function(){return this.metadata.length},freeVirtualItemSize:function(){return this.virtualItemSize()-this._userUsedIndexesCount},defReader:function(dimReaderSpec){dimReaderSpec||def.fail.argumentRequired('readerSpec');var dimNames;if(typeof dimReaderSpec==='string'){dimNames=dimReaderSpec}else{dimNames=dimReaderSpec.names}if(typeof dimNames==='string'){dimNames=dimNames.split(/\s*\,\s*/)}else{dimNames=def.array.as(dimNames)}var indexes=def.array.as(dimReaderSpec.indexes);if(indexes){indexes.forEach(this._userUseIndex,this)}var hasDims=!!(dimNames&&dimNames.length);var reader=dimReaderSpec.reader;if(!reader){if(hasDims){return this._userCreateReaders(dimNames,indexes)}}else{hasDims||def.fail.argumentRequired('reader.names',"Required argument when a reader function is specified.");this._userRead(reader,dimNames)}return indexes},configureType:function(){this._configureTypeCore()},_configureTypeCore:def.method({isAbstract:true}),_initType:function(){this._userDimsReaders=[];this._userDimsReadersByDim={};this._userItem=[];this._userUsedIndexes={};this._userUsedIndexesCount=0;var userDimReaders=this.options.readers;if(userDimReaders){userDimReaders.forEach(this.defReader,this)}var multiChartIndexes=pvc.parseDistinctIndexArray(this.options.multiChartIndexes);if(multiChartIndexes){this._multiChartIndexes=this.defReader({names:'multiChart',indexes:multiChartIndexes})}},_userUseIndex:function(index){index=+index;(index>=0)||def.fail.argumentInvalid('index',"Invalid reader index: '{0}'.",[index]);!def.hasOwn(this._userUsedIndexes,index)||def.fail.argumentInvalid('index',"Virtual item index '{0}' is already assigned.",[index]);this._userUsedIndexes[index]=true;this._userUsedIndexesCount++;this._userItem[index]=true;return index},_userCreateReaders:function(dimNames,indexes){if(!indexes){indexes=[]}else{indexes.forEach(function(index,j){indexes[j]=+index})}var I=indexes.length,N=dimNames.length,dimName;if(N>I){var nextIndex=I>0?(indexes[I-1]+1):0;do{nextIndex=this._nextAvailableItemIndex(nextIndex);indexes[I]=nextIndex;this._userUseIndex(nextIndex);I++}while(N>I)}var L=(I===N)?N:(N-1);for(var n=0;n<L;n++){dimName=dimNames[n];this._userRead(this._propGet(dimName,indexes[n]),dimName)}if(L<N){var splitGroupName=pvc.splitIndexedId(dimNames[N-1]),groupName=splitGroupName[0],level=def.nullyTo(splitGroupName[1],0);for(var i=L;i<I;i++,level++){dimName=pvc.buildIndexedId(groupName,level);this._userRead(this._propGet(dimName,indexes[i]),dimName)}}return indexes},_userRead:function(reader,dimNames){def.fun.is(reader)||def.fail.argumentInvalid('reader',"Reader must be a function.");if(def.array.is(dimNames)){dimNames.forEach(function(name){this._readDim(name,reader)},this)}else{this._readDim(dimNames,reader)}this._userDimsReaders.push(reader)},_readDim:function(name,reader){this.complexTypeProj.readDim(name);this._userDimsReadersByDim[name]=reader},execute:function(data){this.data=data;return this._executeCore()},_executeCore:function(){var dimsReaders=this._getDimensionsReaders();return def.query(this._getItems()).select(function(item){return this._readItem(item,dimsReaders)},this)},_getItems:function(){return this.source},_getDimensionsReaders:function(){return this._userDimsReaders},_readItem:function(item,dimsReaders){var logItem=this._logItems;if(logItem){var logItemCount=this._logItemCount;if(logItemCount<10){pvc.log('virtual item ['+this._logItemCount+']: '+pvc.stringify(item));this._logItemCount++}else{pvc.log('...');logItem=this._logItems=false}}var r=0,R=dimsReaders.length,a=0,data=this.data,valuesByDimName={};while(r<R){dimsReaders[r++].call(data,item,valuesByDimName)}if(logItem){var atoms={};for(var dimName in valuesByDimName){var atom=valuesByDimName[dimName];if(def.object.is(atom)){atom=('v'in atom)?atom.v:('value'in atom)?atom.value:'...'}atoms[dimName]=atom}pvc.log('-> read: '+pvc.stringify(atoms))}return valuesByDimName},_propGet:function(dimName,prop){function propGet(item,atoms){atoms[dimName]=item[prop]}return propGet},_constGet:function(dimName,constRawValue,keyArgs){var me=this,constAtom;function constGet(item,atoms){atoms[dimName]=constAtom||(constAtom=me.data.dimensions(dimName).intern(constRawValue))}return constGet},_nextAvailableItemIndex:function(index,L){if(index==null){index=0}if(L==null){L=Infinity}while(index<L&&def.hasOwn(this._userItem,index)){index++}return index<L?index:-1},_getUnboundRoleDefaultDimNames:function(roleName,count,dims,level){var role=this.chart.visualRoles(roleName,{assertExists:false});if(role&&!role.isPreBound()){var dimGroupName=role.defaultDimensionName;if(dimGroupName){dimGroupName=dimGroupName.match(/^(.*?)(\*)?$/)[1];if(!dims){dims=[]}if(level==null){level=0}if(count==null){count=1}while(count--){var dimName=pvc.buildIndexedId(dimGroupName,level++);if(!this.complexTypeProj.isReadOrCalc(dimName)){dims.push(dimName)}}return dims.length?dims:null}}}});
11   -def.type('pvc.data.MatrixTranslationOper',pvc.data.TranslationOper).add({_initType:function(){this.J=this.metadata.length;this.I=this.source.length;this._processMetadata();this.base()},_knownContinuousColTypes:{'numeric':1,'number':1,'integer':1},_processMetadata:function(){var knownContinColTypes=this._knownContinuousColTypes;var columns=def.query(this.metadata).select(function(colDef,colIndex){colDef.colIndex=colIndex;return colDef}).where(function(colDef){var colType=colDef.colType;return!colType||knownContinColTypes[colType.toLowerCase()]!==1}).select(function(colDef){return colDef.colIndex}).array();var columnTypes=def.array.create(this.J,1);var I=this.I;var source=this.source;var J=columns.length;for(var i=0;i<I&&J>0;i++){var row=source[i];var m=0;while(m<J){var j=columns[m];var value=row[j];if(value!=null){columnTypes[j]=this._getSourceValueType(value);columns.splice(m,1);J--}else{m++}}}this._columnTypes=columnTypes},_getSourceValueType:function(value){switch(typeof value){case'number':return 1;case'object':if(value instanceof Date){return 1}}return 0},logSource:function(){var out=["DATA SOURCE SUMMARY",pvc.logSeparator,"ROWS ("+Math.min(10,this.I)+"/"+this.I+")"];def.query(this.source).take(10).each(function(row,index){out.push(" ["+index+"] "+pvc.stringify(row))});if(this.I>10){out.push(' ...')}out.push("COLS ("+this.J+")");var colTypes=this._columnTypes;this.metadata.forEach(function(col,j){out.push(" ["+j+"] "+"'"+col.colName+"' ("+"type: "+col.colType+", "+"inspected: "+(colTypes[j]?'continuous':'discrete')+(col.colLabel?(", label: '"+col.colLabel+"'"):"")+")")});pvc.log(out.join('\n'))},_createPlot2SeriesKeySet:function(plot2SeriesIndexes,seriesKeys){var plot2SeriesKeySet=null,seriesCount=seriesKeys.length;def.query(plot2SeriesIndexes).each(function(indexText){var seriesIndex=+indexText;if(isNaN(seriesIndex)){throw def.error.argumentInvalid('plot2SeriesIndexes',"Element is not a number '{0}'.",[indexText])}if(seriesIndex<0){if(seriesIndex<=-seriesCount){throw def.error.argumentInvalid('plot2SeriesIndexes',"Index is out of range '{0}'.",[seriesIndex])}seriesIndex=seriesCount+seriesIndex}else if(seriesIndex>=seriesCount){throw def.error.argumentInvalid('plot2SeriesIndexes',"Index is out of range '{0}'.",[seriesIndex])}if(!plot2SeriesKeySet){plot2SeriesKeySet={}}plot2SeriesKeySet[seriesKeys[seriesIndex]]=true});return plot2SeriesKeySet},_dataPartGet:function(calcAxis2SeriesKeySet,seriesReader){var me=this;var dataPartDimName=this.options.dataPartDimName;var dataPartDimension,plot2SeriesKeySet,part1Atom,part2Atom,outAtomsSeries={};function dataPartGet(item,outAtoms){if(!dataPartDimension){plot2SeriesKeySet=calcAxis2SeriesKeySet();dataPartDimension=me.data.dimensions(dataPartDimName);if(pvc.debug>=3&&plot2SeriesKeySet){pvc.log("Second axis series values: "+pvc.stringify(def.keys(plot2SeriesKeySet)))}}var partAtom;seriesReader(item,outAtomsSeries);var series=outAtomsSeries.series;if(series!=null&&series.v!=null){series=series.v}if(def.hasOwn(plot2SeriesKeySet,series)){partAtom=part2Atom||(part2Atom=dataPartDimension.intern("1"))}else{partAtom=part1Atom||(part1Atom=dataPartDimension.intern("0"))}outAtoms[dataPartDimName]=partAtom}return dataPartGet}});
12   -def.type('pvc.data.CrosstabTranslationOper',pvc.data.MatrixTranslationOper).add({virtualItemSize:function(){return this.R+this.C+this.M},_executeCore:function(){if(!this.metadata.length){return def.query()}var dimsReaders=this._getDimensionsReaders();var item=new Array(this.virtualItemSize()),itemCrossGroupIndex=this._itemCrossGroupIndex,me=this;function updateVItemCrossGroup(crossGroupId,source){var itemIndex=itemCrossGroupIndex[crossGroupId],sourceIndex=0,depth=me[crossGroupId];while((depth--)>0){item[itemIndex++]=source[sourceIndex++]}}function updateVItemMeasure(line,cg){var itemIndex=itemCrossGroupIndex.M;var cgIndexes=me._colGroupsIndexes[cg];var depth=me.M;for(var i=0;i<depth;i++){var lineIndex=cgIndexes[i];item[itemIndex++]=lineIndex!=null?line[lineIndex]:null}}function expandLine(line){updateVItemCrossGroup('R',line);return def.query(this._colGroups).select(function(colGroup,cg){updateVItemCrossGroup('C',colGroup);updateVItemMeasure(line,cg);return this._readItem(item,dimsReaders)},this)}return def.query(this._lines).selectMany(expandLine,this)},_processMetadata:function(){this.base();this._separator=this.options.separator||'~';var lines=pvc.cloneMatrix(this.source);this._lines=lines;this.R=1;this.C=1;this.M=1;this.measuresDirection=null;var colNames;if(this.options.seriesInRows){colNames=this.metadata.map(function(d){return d.colName})}else if(this.options.compatVersion<=1){colNames=this.metadata.map(function(d){return{v:d.colName}})}else{colNames=this.metadata.map(function(d){return{v:d.colName,f:d.colLabel}})}var itemCrossGroupTypes=this._itemCrossGroupTypes={};if(!this.options.isMultiValued){this.R=this._getCategoriesCount();this._colGroups=colNames.slice(this.R);this._colGroupsIndexes=new Array(this._colGroups.length);this._colGroups.forEach(function(colGroup,cg){this._colGroups[cg]=[colGroup];this._colGroupsIndexes[cg]=[this.R+cg]},this);itemCrossGroupTypes.C=[0];itemCrossGroupTypes.M=[this._columnTypes[this.R]]}else{var measuresInColumns=def.get(this.options,'measuresInColumns',true);if(measuresInColumns||this.options.measuresIndex==null){this.R=this._getCategoriesCount();var encodedColGroups=colNames.slice(this.R);var L=encodedColGroups.length;if(L>0){if(!measuresInColumns){this._colGroups=encodedColGroups;this._colGroupsIndexes=[];this._colGroups.forEach(function(colGroup,cg){this._colGroups[cg]=this._splitEncodedColGroupCell(colGroup);this._colGroupsIndexes[cg]=[this.R+cg]},this);itemCrossGroupTypes.M=[this._columnTypes[this.R]]}else{this.measuresDirection='columns';this._processEncodedColGroups(encodedColGroups)}this.C=this._colGroups[0].length;itemCrossGroupTypes.C=def.array.create(this.C,0)}else{this.C=this.M=0;itemCrossGroupTypes.M=itemCrossGroupTypes.C=[]}}else{this.measuresDirection='rows';this.R=+this.options.measuresIndex;var measuresCount=this.options.measuresCount;if(measuresCount==null){measuresCount=1}this.M=measuresCount;this._colGroups=colNames.slice(this.R+1);this._colGroups.forEach(function(colGroup,cg){this._colGroups[cg]=[colGroup]},this)}}itemCrossGroupTypes.R=this._columnTypes.slice(0,this.R);var seriesInRows=this.options.seriesInRows;var itemGroupIndex=this._itemCrossGroupIndex={'C':!seriesInRows?0:this.R,'R':!seriesInRows?this.C:0,'M':this.C+this.R};var itemTypes=this._itemTypes=new Array(this.virtualItemSize());def.eachOwn(itemGroupIndex,function(groupStartIndex,crossGroup){itemCrossGroupTypes[crossGroup].forEach(function(type,groupIndex){itemTypes[groupStartIndex+groupIndex]=type})});this._itemLogicalGroup={'series':seriesInRows?this.R:this.C,'category':seriesInRows?this.C:this.R,'value':this.M};this._itemLogicalGroupIndex={'series':0,'category':this._itemLogicalGroup.series,'value':this.C+this.R};if(pvc.debug>=3){pvc.log("Crosstab translator "+pvc.stringify({R:this.R,C:this.C,M:this.M}))}},_getCategoriesCount:function(){var R=this.options.categoriesCount;if(R!=null&&(!isFinite(R)||R<0)){R=null}if(R==null){R=def.query(this._columnTypes).whayl(function(type){return type===0}).count();if(!R){R=1}}return R},_splitEncodedColGroupCell:function(colGroup){var values=colGroup.v;var labels;if(values==null){values=[]}else{values=values.split(this._separator);labels=colGroup.f;if(labels){labels=labels.split(this._separator)}}return values.map(function(value,index){return{v:value,f:labels&&labels[index]}})},_processEncodedColGroups:function(encodedColGroups){var L=encodedColGroups.length||def.assert("Must have columns"),R=this.R,colGroups=[],currColGroup,measuresInfo={},measuresInfoList=[];for(var i=0;i<L;i++){var colGroupCell=encodedColGroups[i];var encColGroupValues=colGroupCell.v;var encColGroupLabels=colGroupCell.f;var sepIndex=encColGroupValues.lastIndexOf(this._separator);var meaName,colGroupValues,colGroupLabels;if(sepIndex<0){meaName=encColGroupValues;encColGroupValues='';colGroupValues=[]}else{meaName=encColGroupValues.substring(sepIndex+1);encColGroupValues=encColGroupValues.substring(0,sepIndex);colGroupValues=encColGroupValues.split(this._separator);if(encColGroupLabels!=null){colGroupLabels=encColGroupLabels.split(this._separator);colGroupLabels.pop()}colGroupValues.forEach(function(value,index){var label=colGroupLabels&&colGroupLabels[index];colGroupValues[index]={v:value,f:label}})}if(!currColGroup||currColGroup.encValues!==encColGroupValues){currColGroup={startIndex:i,encValues:encColGroupValues,values:colGroupValues,measureNames:[meaName]};colGroups.push(currColGroup)}else{currColGroup.measureNames.push(meaName)}var currMeaIndex=(i-currColGroup.startIndex),meaInfo=def.getOwn(measuresInfo,meaName);if(!meaInfo){measuresInfo[meaName]=meaInfo={name:meaName,groupIndex:currMeaIndex,index:i,type:this._columnTypes[R+i]};measuresInfoList.push(meaInfo)}else if(currMeaIndex>meaInfo.groupIndex){meaInfo.groupIndex=currMeaIndex}}measuresInfoList.sort(function(meaInfoA,meaInfoB){return def.compare(meaInfoA.groupIndex,meaInfoB.groupIndex)||def.compare(meaInfoA.index,meaInfoB.index)});var M=measuresInfoList.length;var meaTypes=new Array(M);this._itemCrossGroupTypes.M=meaTypes;measuresInfoList.forEach(function(meaInfoA,index){meaInfoA.groupIndex=index;meaTypes[index]=meaInfoA.type});var CG=colGroups.length,colGroupsValues=new Array(CG),colGroupsIndexes=new Array(CG);colGroups.map(function(colGroup,cg){colGroupsValues[cg]=colGroup.values;var colGroupStartIndex=colGroup.startIndex;var meaIndexes=colGroupsIndexes[cg]=new Array(M);colGroup.measureNames.forEach(function(meaName2,localMeaIndex){var meaIndex=measuresInfo[meaName2].groupIndex;meaIndexes[meaIndex]=R+colGroupStartIndex+localMeaIndex})});this._colGroups=colGroupsValues;this._colGroupsIndexes=colGroupsIndexes;this.M=M},configureType:function(){if(this.measuresDirection==='rows'){throw def.error.notImplemented()}this.base()},_configureTypeCore:function(){var me=this;var itemLogicalGroup=me._itemLogicalGroup;var itemLogicalGroupIndex=me._itemLogicalGroupIndex;var index=0;var dimsReaders=[];function add(dimGroupName,level,count){var crossEndIndex=itemLogicalGroupIndex[dimGroupName]+count;while(count>0){var dimName=pvc.buildIndexedId(dimGroupName,level);if(!me.complexTypeProj.isReadOrCalc(dimName)){index=me._nextAvailableItemIndex(index);if(index>=crossEndIndex){return}dimsReaders.push({names:dimName,indexes:index});index++;count--}level++}}var dataPartDimName=this.options.dataPartDimName;if(dataPartDimName&&this.C===1&&!this.complexTypeProj.isReadOrCalc(dataPartDimName)){var plot2SeriesIndexes=this.options.plot2SeriesIndexes;if(plot2SeriesIndexes!=null){var seriesKeys=this._colGroups.map(function(colGroup){return''+colGroup[0].v});this._plot2SeriesKeySet=this._createPlot2SeriesKeySet(plot2SeriesIndexes,seriesKeys)}}['series','category','value'].forEach(function(dimGroupName){var L=itemLogicalGroup[dimGroupName];if(L>0){add(dimGroupName,0,L)}});if(dimsReaders){dimsReaders.forEach(this.defReader,this)}if(this._plot2SeriesKeySet){var seriesReader=this._userDimsReadersByDim.series;if(seriesReader){var calcAxis2SeriesKeySet=def.fun.constant(this._plot2SeriesKeySet);this._userRead(this._dataPartGet(calcAxis2SeriesKeySet,seriesReader),dataPartDimName)}}}});
13   -def.type('pvc.data.RelationalTranslationOper',pvc.data.MatrixTranslationOper).add({M:0,C:0,S:0,_processMetadata:function(){this.base();var metadata=this.metadata;var J=this.J;var C=this.options.categoriesCount;if(C!=null&&(!isFinite(C)||C<0)){C=0}var S;var valuesColIndexes,M;if(this.options.isMultiValued){valuesColIndexes=pvc.parseDistinctIndexArray(this.options.measuresIndexes,J-1);M=valuesColIndexes?valuesColIndexes.length:0}var D;if(M==null){if(J>0&&J<=3&&(C==null||C===1)&&S==null){M=1;valuesColIndexes=[J-1];C=J>=2?1:0;S=J>=3?1:0;D=C+S}else if(C!=null&&C>=J){D=J;C=J;S=0;M=0}else{var Mmax=C!=null?(J-C):Infinity;valuesColIndexes=def.query(metadata).where(function(colDef,index){return this._columnTypes[index]!==0},this).select(function(colDef){return colDef.colIndex}).take(Mmax).array();M=valuesColIndexes.length}}if(D==null){D=J-M;if(D===0){S=C=0}else if(C!=null){if(C>D){C=D;S=0}else{S=D-C}}else{S=D>1?1:0;C=D-S}}var seriesInRows=this.options.seriesInRows;var colGroupSpecs=[];if(D){if(S&&!seriesInRows){colGroupSpecs.push({name:'S',count:S})}if(C){colGroupSpecs.push({name:'C',count:C})}if(S&&seriesInRows){colGroupSpecs.push({name:'S',count:S})}}if(M){colGroupSpecs.push({name:'M',count:M})}var availableInputIndexes=def.range(0,J).array();if(valuesColIndexes){valuesColIndexes.forEach(function(inputIndex){availableInputIndexes.splice(inputIndex,1)})}var specsByName={};colGroupSpecs.forEach(function(groupSpec){var count=groupSpec.count;var name=groupSpec.name;specsByName[name]=groupSpec;if(valuesColIndexes&&name==='M'){groupSpec.indexes=valuesColIndexes}else{groupSpec.indexes=availableInputIndexes.splice(0,count)}},this);this.M=M;this.S=S;this.C=C;var itemPerm=[];['S','C','M'].forEach(function(name){var groupSpec=specsByName[name];if(groupSpec){def.array.append(itemPerm,groupSpec.indexes)}});var colTypes=this._columnTypes;this._itemTypes=itemPerm.map(function(index){return colTypes[index]});this._itemCrossGroupIndex={S:0,C:this.S,M:this.S+this.C};this._itemPerm=itemPerm;if(pvc.debug>=3){var out=["RELATIONAL TRANSLATOR MAPPING",pvc.logSeparator,"["+colGroupSpecs.map(function(groupSpec){return def.array.create(groupSpec.count,groupSpec.name).join('')}).join(' ')+"]"];pvc.log(out.join("\n"))}},_configureTypeCore:function(){var me=this;var index=0;var dimsReaders=[];function add(dimGroupName,colGroupName,level,count){var groupEndIndex=me._itemCrossGroupIndex[colGroupName]+count;while(count>0){var dimName=pvc.buildIndexedId(dimGroupName,level);if(!me.complexTypeProj.isReadOrCalc(dimName)){index=me._nextAvailableItemIndex(index);if(index>=groupEndIndex){return}dimsReaders.push({names:dimName,indexes:index});index++;count--}level++}}if(this.S>0){add('series','S',0,this.S)}if(this.C>0){add('category','C',0,this.C)}if(this.M>0){add('value','M',0,this.M)}if(dimsReaders){dimsReaders.forEach(this.defReader,this)}var plot2SeriesIndexes=this.options.plot2SeriesIndexes;if(plot2SeriesIndexes!=null){var seriesReader=this._userDimsReadersByDim.series;if(seriesReader){var dataPartDimName=this.options.dataPartDimName;this._userRead(relTransl_dataPartGet.call(this,plot2SeriesIndexes,seriesReader),dataPartDimName)}}},_executeCore:function(){var dimsReaders=this._getDimensionsReaders();var permIndexes=this._itemPerm;return def.query(this._getItems()).select(function(item){item=pv.permute(item,permIndexes);return this._readItem(item,dimsReaders)},this)}});function relTransl_dataPartGet(plot2SeriesIndexes,seriesReader){var me=this;function calcAxis2SeriesKeySet(){var atoms={};var seriesKeys=def.query(me.source).select(function(item){seriesReader(item,atoms);var value=atoms.series;if(value!=null&&value.v!=null){value=value.v}return value||null}).distinct().array();return me._createPlot2SeriesKeySet(plot2SeriesIndexes,seriesKeys)}return this._dataPartGet(calcAxis2SeriesKeySet,seriesReader)}
14   -def.type('pvc.data.Atom').init(function(dimension,value,label,rawValue,key){this.dimension=dimension;this.id=(value==null?-def.nextId():def.nextId());this.value=value;this.label=label;if(rawValue!==undefined){this.rawValue=rawValue}this.key=key}).add({isVirtual:false,rawValue:undefined,toString:function(){var label=this.label;if(label!=null){return label}label=this.value;return label!=null?(""+label):""}});function atom_idComparer(a,b){return a.id-b.id}function atom_idComparerReverse(a,b){return b.id-a.id}
15   -var complex_nextId=1;def.type('pvc.data.Complex').init(function(source,atomsByName,dimNames,atomsBase,wantLabel,calculate){this.id=complex_nextId++;var owner;if(source){owner=source.owner;if(!atomsBase){atomsBase=source.atoms}}this.owner=owner||this;this.atoms=atomsBase?Object.create(atomsBase):{};var hadDimNames=!!dimNames;if(!dimNames){dimNames=owner.type._dimsNames}var atomsMap=this.atoms;var D=dimNames.length;var i,dimName;if(atomsByName){var ownerDims=owner._dimensions;var addAtom=function(dimName,value){if(value!=null){var dimension=def.getOwn(ownerDims,dimName);var atom=dimension.intern(value);if(!atomsBase||atom!==atomsBase[dimName]){atomsMap[dimName]=atom}}};if(!hadDimNames){for(dimName in atomsByName){addAtom(dimName,atomsByName[dimName])}}else{for(i=0;i<D;i++){dimName=dimNames[i];addAtom(dimName,atomsByName[dimName])}}if(calculate){var newAtomsByName=owner.type._calculate(this);for(dimName in newAtomsByName){if(!def.hasOwnProp.call(atomsMap,dimName)){addAtom(dimName,newAtomsByName[dimName])}}}}if(!D){this.value=null;this.key='';if(wantLabel){this.label=""}}else if(D===1){var singleAtom=atomsMap[dimNames[0]];this.value=singleAtom.value;this.rawValue=singleAtom.rawValue;this.key=singleAtom.key;if(wantLabel){this.label=singleAtom.label}}else{var key,label;var labelSep=owner.labelSep;var keySep=owner.keySep;for(i=0;i<D;i++){dimName=dimNames[i];var atom=atomsMap[dimName];if(!i){key=atom.key}else{key+=keySep+atom.key}if(wantLabel){var atomLabel=atom.label;if(atomLabel){if(!label){label=atomLabel}else{label+=labelSep+atomLabel}}}}this.value=this.rawValue=this.key=key;if(wantLabel){this.label=label}}}).add({labelSep:" ~ ",keySep:',',label:null,rawValue:undefined,ensureLabel:function(){var label=this.label;if(label!=null){label="";var labelSep=this.owner.labelSep;def.eachOwn(this.atoms,function(atom){var alabel=atom.label;if(alabel){if(label){label+=labelSep+alabel}else{label=alabel}}});this.label=label}return label},view:function(dimNames){return new pvc.data.ComplexView(this,dimNames)},toString:function(){var s=[''+this.constructor.typeName];if(this.index!=null){s.push("#"+this.index)}this.owner.type.dimensionsNames().forEach(function(name){s.push(name+": "+pvc.stringify(this.atoms[name].value))},this);return s.join(" ")}});pvc.data.Complex.values=function(complex,dimNames){var atoms=complex.atoms;return dimNames.map(function(dimName){return atoms[dimName].value})};pvc.data.Complex.labels=function(complex,dimNames){var atoms=complex.atoms;return dimNames.map(function(dimName){return atoms[dimName].label})};
16   -def.type('pvc.data.ComplexView',pvc.data.Complex).init(function(source,viewDimNames){this.source=source;this.viewDimNames=viewDimNames;var sourceAtoms=source.atoms,ownSourceAtoms=[];viewDimNames.forEach(function(dimName){if(def.hasOwnProp.call(sourceAtoms,dimName)){ownSourceAtoms[dimName]=sourceAtoms[dimName]}});this.base(source,ownSourceAtoms,viewDimNames,source.owner.atoms,true)}).add({values:function(){return pvc.data.Complex.values(this,this.viewDimNames)},labels:function(){return pvc.data.Complex.labels(this,this.viewDimNames)}});
17   -def.type('pvc.data.Datum',pvc.data.Complex).init(function(data,atomsByName,isNull){this.base(data,atomsByName,null,null,false,!isNull);if(isNull){this.isNull=true}}).add({isSelected:false,isVisible:true,isNull:false,isVirtual:false,isTrend:false,trendType:null,isInterpolated:false,interpolation:null,setSelected:function(select){if(this.isNull){return false}select=(select==null)||!!select;var changed=this.isSelected!==select;if(changed){if(!select){delete this.isSelected}else{this.isSelected=true}data_onDatumSelectedChanged.call(this.owner,this,select)}return changed},toggleSelected:function(){return this.setSelected(!this.isSelected)},setVisible:function(visible){if(this.isNull){return false}visible=(visible==null)||!!visible;var changed=this.isVisible!==visible;if(changed){this.isVisible=visible;data_onDatumVisibleChanged.call(this.owner,this,visible)}return changed},toggleVisible:function(){return this.setVisible(!this.isVisible)}});function datum_deselect(){delete this.isSelected}
18   -def.type('pvc.data.Dimension').init(function(data,type){this.data=data;this.type=type;this.root=this;this.owner=this;var name=type.name;this.name=name;this._atomComparer=type.atomComparer();this._atomsByKey={};if(data.isOwner()){this._atoms=[];dim_createVirtualNullAtom.call(this)}else{var parentData=data.parent;var source;if(parentData){source=parentData._dimensions[name];dim_addChild.call(source,this);this.root=data.parent.root}else{parentData=data.linkParent;parentData||def.assert("Data must have a linkParent");source=parentData._dimensions[name];dim_addLinkChild.call(source,this)}this._nullAtom=this.owner._nullAtom;this._lazyInit=function(){this._lazyInit=null;var datums=this.data._datums;var L=datums.length;var atomsByKey=this._atomsByKey;for(var i=0;i<L;i++){var atom=datums[i].atoms[name];atomsByKey[atom.key]=atom}this._atoms=source.atoms().filter(function(atom){return def.hasOwnProp.call(atomsByKey,atom.key)})}}}).add({parent:null,linkParent:null,_children:null,_linkChildren:null,_atomsByKey:null,_atomVisibleDatumsCount:null,_disposed:false,_nullAtom:null,_virtualNullAtom:null,_visibleAtoms:null,_visibleIndexes:null,_atomComparer:null,_atoms:null,_sumCache:null,count:function(){if(this._lazyInit){this._lazyInit()}return this._atoms.length},isVisible:function(atom){if(this._lazyInit){this._lazyInit()}def.hasOwn(this._atomsByKey,atom.key)||def.assert("Atom must exist in this dimension.");return dim_getVisibleDatumsCountMap.call(this)[atom.key]>0},atoms:function(keyArgs){if(this._lazyInit){this._lazyInit()}var visible=def.get(keyArgs,'visible');if(visible==null){return this._atoms}visible=!!visible;this._visibleAtoms||(this._visibleAtoms={});return this._visibleAtoms[visible]||(this._visibleAtoms[visible]=dim_calcVisibleAtoms.call(this,visible))},indexes:function(keyArgs){if(this._lazyInit){this._lazyInit()}var visible=def.get(keyArgs,'visible');if(visible==null){return pv.range(0,this._atoms.length)}visible=!!visible;this._visibleIndexes||(this._visibleIndexes={});return this._visibleIndexes[visible]||(this._visibleIndexes[visible]=dim_calcVisibleIndexes.call(this,visible))},atom:function(value){if(value==null||value===''){return this._nullAtom}if(value instanceof pvc.data.Atom){return value}if(this._lazyInit){this._lazyInit()}var key=this.type._key?this.type._key.call(null,value):value;return this._atomsByKey[key]||null},extent:function(keyArgs){var atoms=this.atoms(keyArgs);var L=atoms.length;if(!L){return undefined}var offset=this._nullAtom&&atoms[0].value==null?1:0;var countWithoutNull=L-offset;if(countWithoutNull>0){var min=atoms[offset];var max=atoms[L-1];var tmp;if(min!==max&&def.get(keyArgs,'abs',false)){var minSign=min.value<0?-1:1;var maxSign=max.value<0?-1:1;if(minSign===maxSign){if(maxSign<0){tmp=max;max=min;min=tmp}}else if(countWithoutNull>2){if(max.value<-min.value){max=min}var zeroIndex=def.array.binarySearch(atoms,0,this.type.comparer(),function(a){return a.value});if(zeroIndex<0){zeroIndex=~zeroIndex;var negAtom=atoms[zeroIndex-1];var posAtom=atoms[zeroIndex];if(-negAtom.value<posAtom.value){min=negAtom}else{min=posAtom}}else{min=atoms[zeroIndex]}}else if(max.value<-min.value){tmp=max;max=min;min=tmp}}return{min:min,max:max}}return undefined},min:function(keyArgs){var atoms=this.atoms(keyArgs);var L=atoms.length;if(!L){return undefined}var offset=this._nullAtom&&atoms[0].value==null?1:0;return(L>offset)?atoms[offset]:undefined},max:function(keyArgs){var atoms=this.atoms(keyArgs);var L=atoms.length;return L&&atoms[L-1].value!=null?atoms[L-1]:undefined},sum:function(keyArgs){var isAbs=!!def.get(keyArgs,'abs',false),zeroIfNone=def.get(keyArgs,'zeroIfNone',true),key=dim_buildDatumsFilterKey(keyArgs)+':'+isAbs;var sum=def.getOwn(this._sumCache,key);if(sum===undefined){var dimName=this.name;sum=this.data.datums(null,keyArgs).reduce(function(sum2,datum){var value=datum.atoms[dimName].value;if(isAbs&&value<0){value=-value}return sum2!=null?(sum2+value):value},null);(this._sumCache||(this._sumCache={}))[key]=sum}return zeroIfNone?(sum||0):sum},percent:function(atomOrValue,keyArgs){var value=(atomOrValue instanceof pvc.data.Atom)?atomOrValue.value:atomOrValue;if(!value){return 0}var sum=this.sum(def.create(keyArgs,{abs:true}));return sum?(Math.abs(value)/sum):0},percentOverParent:function(keyArgs){var value=this.sum(keyArgs);if(!value){return 0}var parentData=this.data.parent;if(!parentData){return 0}var sum=parentData.dimensionsSumAbs(this.name,keyArgs);return sum?(Math.abs(value)/sum):0},format:function(value,sourceValue){return""+(this.type._formatter?this.type._formatter.call(null,value,sourceValue):"")},intern:function(sourceValue,isVirtual){if(sourceValue==null||sourceValue===''){return this._nullAtom||dim_createNullAtom.call(this,sourceValue)}if(sourceValue instanceof pvc.data.Atom){if(sourceValue.dimension!==this){throw def.error.operationInvalid("Atom is of a different dimension.")}return sourceValue}var value,label;var type=this.type;if(typeof sourceValue==='object'&&('v'in sourceValue)){label=sourceValue.f;sourceValue=sourceValue.v}if(!isVirtual){var converter=type._converter;value=converter?converter(sourceValue):sourceValue;if(value==null||value===''){return this._nullAtom||dim_createNullAtom.call(this,sourceValue)}}else{value=sourceValue}var cast=type.cast;if(cast){value=cast(value);if(value==null||value===''){return this._nullAtom||dim_createNullAtom.call(this)}}var keyFun=type._key;var key=''+(keyFun?keyFun(value):value);key||def.fail.operationInvalid("Only a null value can have an empty key.");var atom=this._atomsByKey[key];if(atom){if(!isVirtual&&atom.isVirtual){delete atom.isVirtual}return atom}return dim_createAtom.call(this,type,sourceValue,key,value,label,isVirtual)},dispose:function(){if(!this._disposed){data_disposeChildList(this._children,'parent');data_disposeChildList(this._linkChildren,'linkParent');if(this.parent){dim_removeChild.call(this.parent,this)}if(this.linkParent){dim_removeLinkChild.call(this.linkParent,this)}dim_clearVisiblesCache.call(this);this._lazyInit=null;this._atoms=this._nullAtom=this._virtualNullAtom=null;this._disposed=true}}});function dim_createAtom(type,sourceValue,key,value,label,isVirtual){var atom;if(this.owner===this){if(label==null){var formatter=type._formatter;if(formatter){label=formatter(value,sourceValue)}else{label=value}}label=""+label;if(!label&&pvc.debug>=2){pvc.log("Only the null value should have an empty label.")}atom=new pvc.data.Atom(this,value,label,sourceValue,key);if(isVirtual){atom.isVirtual=true}}else{var source=this.parent||this.linkParent;atom=source._atomsByKey[key]||dim_createAtom.call(source,type,sourceValue,key,value,label,isVirtual)}def.array.insert(this._atoms,atom,this._atomComparer);dim_clearVisiblesCache.call(this);this._atomsByKey[key]=atom;return atom}function dim_internAtom(atom){var key=atom.key;if(atom.dimension===this){(this.owner===this)||def.assert("Should be an owner dimension");if(!key&&atom===this._virtualNullAtom){atom=this.intern(null)}return atom}if(!this._lazyInit){var localAtom=this._atomsByKey[key];if(localAtom){if(localAtom!==atom){throw def.error.operationInvalid("Atom is from a different root data.")}return atom}if(this.owner===this){throw def.error.operationInvalid("Atom is from a different root data.")}}dim_internAtom.call(this.parent||this.linkParent,atom);if(!this._lazyInit){this._atomsByKey[key]=atom;if(!key){this._nullAtom=atom;this._atoms.unshift(atom)}else{def.array.insert(this._atoms,atom,this._atomComparer)}dim_clearVisiblesCache.call(this)}return atom}function dim_buildDatumsFilterKey(keyArgs){var visible=def.get(keyArgs,'visible'),selected=def.get(keyArgs,'selected');return(visible==null?null:!!visible)+':'+(selected==null?null:!!selected)}function dim_createNullAtom(sourceValue){var nullAtom=this._nullAtom;if(!nullAtom){if(this.owner===this){var typeFormatter=this.type._formatter;var label=""+(typeFormatter?typeFormatter.call(null,null,sourceValue):"");nullAtom=new pvc.data.Atom(this,null,label,null,'');this.data._atomsBase[this.name]=nullAtom}else{nullAtom=dim_createNullAtom.call(this.parent||this.linkParent,sourceValue)}this._atomsByKey['']=this._nullAtom=nullAtom;this._atoms.unshift(nullAtom)}return nullAtom}function dim_createVirtualNullAtom(){(this.owner===this)||def.assert("Can only create atoms on an owner dimension.");if(!this._virtualNullAtom){this._virtualNullAtom=new pvc.data.Atom(this,null,"",null,'');this.data._atomsBase[this.name]=this._virtualNullAtom}return this._virtualNullAtom}function dim_unintern(atom){(this.owner===this)||def.assert("Can only unintern atoms on an owner dimension.");(atom&&atom.dimension===this)||def.assert("Not an interned atom");if(atom===this._virtualNullAtom){return}var key=atom.key;if(this._atomsByKey[key]===atom){def.array.remove(this._atoms,atom,this._atomComparer);delete this._atomsByKey[key];if(!key){delete this._nullAtom;this.data._atomsBase[this.name]=this._virtualNullAtom}}dim_clearVisiblesCache.call(this)}function dim_uninternUnvisitedAtoms(){(this.owner===this)||def.assert("Can only unintern atoms of an owner dimension.");var atoms=this._atoms;if(atoms){var atomsByKey=this._atomsByKey;var i=0;var L=atoms.length;while(i<L){var atom=atoms[i];if(atom.visited){delete atom.visited;i++}else if(atom!==this._virtualNullAtom){atoms.splice(i,1);L--;var key=atom.key;delete atomsByKey[key];if(!key){delete this._nullAtom;this.data._atomsBase[this.name]=this._virtualNullAtom}}}dim_clearVisiblesCache.call(this)}}function dim_uninternVirtualAtoms(){var atoms=this._atoms;if(atoms){var atomsByKey=this._atomsByKey;var i=0;var L=atoms.length;var removed;while(i<L){var atom=atoms[i];if(!atom.isVirtual){i++}else{atoms.splice(i,1);L--;removed=true;var key=atom.key||def.assert("Cannot be the null or virtual null atom.");delete atomsByKey[key]}}if(removed){dim_clearVisiblesCache.call(this)}}}function dim_clearVisiblesCache(){this._atomVisibleDatumsCount=this._sumCache=this._visibleAtoms=this._visibleIndexes=null}function dim_onDatumsChanged(){dim_clearVisiblesCache.call(this)}function dim_addChild(child){data_addColChild(this,'_children',child,'parent');child.owner=this.owner}function dim_removeChild(child){data_removeColChild(this,'_children',child,'parent')}function dim_addLinkChild(linkChild){data_addColChild(this,'_linkChildren',linkChild,'linkParent');linkChild.owner=this.owner}function dim_removeLinkChild(linkChild){data_removeColChild(this,'_linkChildren',linkChild,'linkParent')}function dim_onDatumVisibleChanged(datum,visible){var map;if(!this._disposed&&(map=this._atomVisibleDatumsCount)){var atom=datum.atoms[this.name],key=atom.key;def.hasOwn(this._atomsByKey,key)||def.assert("Atom must exist in this dimension.");var count=map[key];(visible||(count>0))||def.assert("Must have had accounted for at least one visible datum.");map[key]=(count||0)+(visible?1:-1);this._visibleAtoms=this._sumCache=this._visibleIndexes=null}}function dim_getVisibleDatumsCountMap(){var map=this._atomVisibleDatumsCount;if(!map){map={};this.data.datums(null,{visible:true}).each(function(datum){var atom=datum.atoms[this.name],key=atom.key;map[key]=(map[key]||0)+1},this);this._atomVisibleDatumsCount=map}return map}function dim_calcVisibleIndexes(visible){var indexes=[];this._atoms.forEach(function(atom,index){if(this.isVisible(atom)===visible){indexes.push(index)}},this);return indexes}function dim_calcVisibleAtoms(visible){return def.query(this._atoms).where(function(atom){return this.isVisible(atom)===visible},this).array()}
19   -def.type('pvc.data.Data',pvc.data.Complex).init(function(keyArgs){keyArgs||def.fail.argumentRequired('keyArgs');this._visibleDatums=new def.Map();var owner,atoms,atomsBase,dimNames,datums,index,parent=this.parent=keyArgs.parent||null;if(parent){this.root=parent.root;this.depth=parent.depth+1;this.type=parent.type;datums=keyArgs.datums||def.fail.argumentRequired('datums');owner=parent.owner;atoms=keyArgs.atoms||def.fail.argumentRequired('atoms');dimNames=keyArgs.dimNames||def.fail.argumentRequired('dimNames');atomsBase=parent.atoms}else{this.root=this;dimNames=[];var linkParent=keyArgs.linkParent||null;if(linkParent){owner=linkParent.owner;this.type=owner.type;datums=keyArgs.datums||def.fail.argumentRequired('datums');this._leafs=[];atomsBase=linkParent.atoms;index=def.get(keyArgs,'index',null);data_addLinkChild.call(linkParent,this,index)}else{owner=this;atomsBase={};if(keyArgs.labelSep){this.labelSep=keyArgs.labelSep}this.type=keyArgs.type||def.fail.argumentRequired('type');this._selectedDatums=new def.Map()}}if(datums){data_setDatums.call(this,datums)}this.owner=owner;this._atomsBase=atomsBase;this._dimensions={};this.type.dimensionsList().forEach(this._initDimension,this);this.base(owner,atoms,dimNames,atomsBase,true);pv.Dom.Node.call(this,null);delete this.nodeValue;this._children=this.childNodes;if(parent){index=def.get(keyArgs,'index',null);data_addChild.call(parent,this,index);if(parent.absLabel){this.absLabel=def.string.join(owner.labelSep,parent.absLabel,this.label)}else{this.absLabel=this.label}if(parent.absKey){this.absKey=def.string.join(",",parent.absKey,this.key)}else{this.absKey=this.key}}else{this.absLabel=this.label;this.absKey=this.key}}).add(pv.Dom.Node).add({parent:null,linkParent:null,_dimensions:null,_freeDimensionNames:null,_children:null,_linkChildren:null,_leafs:null,_childrenByKey:null,_visibleDatums:null,_selectedDatums:null,_groupByCache:null,_sumAbsCache:null,treeHeight:null,_groupOper:null,_groupSpec:null,_groupLevel:null,_datums:null,_datumsById:null,depth:0,label:"",absLabel:"",_disposed:false,_isFlattenGroup:false,_isDegenerateFlattenGroup:false,_initDimension:function(dimType){this._dimensions[dimType.name]=new pvc.data.Dimension(this,dimType)},dimensions:function(name,keyArgs){if(name==null){return this._dimensions}var dim=def.getOwn(this._dimensions,name);if(!dim&&def.get(keyArgs,'assertExists',true)){throw def.error.argumentInvalid('name',"Undefined dimension '{0}'.",[name])}return dim},freeDimensionNames:function(){if(!this._freeDimensionNames){var free=this._freeDimensionNames=[];def.eachOwn(this._dimensions,function(dim,dimName){var atom=this.atoms[dimName];if(!(atom instanceof pvc.data.Atom)||atom.value==null){free.push(dimName)}},this)}return this._freeDimensionNames},isOwner:function(){return this.owner===this},children:function(){if(!this._children){return def.query()}return def.query(this._children)},childCount:function(){return this._children?this._children.length:0},leafs:function(){return def.query(this._leafs)},count:function(){return this._datums.length},singleDatum:function(){var datums=this._datums;return datums.length===1?datums[0]:null},dispose:function(){if(!this._disposed){data_disposeChildLists.call(this);if(this._selectedDatums){this._selectedDatums.clear()}this._visibleDatums.clear();def.eachOwn(this._dimensions,function(dimension){dimension.dispose()});if(this.parent){this.parent.removeChild(this);this.parent=null}if(this.linkParent){data_removeLinkChild.call(this.linkParent,this)}this._disposed=true}},disposeChildren:function(){data_disposeChildLists.call(this)}});function data_addChild(child,index){this.insertAt(child,index);(this._childrenByKey||(this._childrenByKey={}))[child.key]=child}function data_addLinkChild(linkChild,index){data_addColChild(this,'_linkChildren',linkChild,'linkParent',index)}function data_removeLinkChild(linkChild){data_removeColChild(this,'_linkChildren',linkChild,'linkParent')}function data_disposeChildLists(){data_disposeChildList(this._children,'parent');this._childrenByKey=null;data_disposeChildList(this._linkChildren,'linkParent');this._groupByCache=null;this._sumAbsCache=null}function data_assertIsOwner(){this.isOwner()||def.fail("Can only be called on the owner data.")}
20   -pvc.data.Data.add({selectedCount:function(){if(!this.isOwner()){return this.datums(null,{selected:true}).count()}return this._selectedDatums.count},selectedDatums:function(){if(!this.isOwner()){return this.datums(null,{selected:true}).array()}return this._selectedDatums.values()},selectedDatumMap:function(){if(!this.isOwner()){var datums=this.datums(null,{selected:true}).object({name:function(datum){return datum.id}});return new def.Set(datums)}return this._selectedDatums.clone()},visibleCount:function(){return this._visibleDatums.count},replaceSelected:function(datums){if(!def.array.is(datums)){datums=datums.array()}var alreadySelectedById=def.query(datums).where(function(datum){return datum.isSelected}).object({name:function(datum){return datum.id}});var changed=this.owner.clearSelected(function(datum){return!def.hasOwn(alreadySelectedById,datum.id)});changed|=pvc.data.Data.setSelected(datums,true);return changed},clearSelected:function(funFilter){if(this.owner!==this){return this.owner.clearSelected(funFilter)}if(!this._selectedDatums.count){return false}var changed;if(funFilter){changed=false;this._selectedDatums.values().filter(funFilter).forEach(function(datum){changed=true;datum_deselect.call(datum);this._selectedDatums.rem(datum.id)},this)}else{changed=true;this._selectedDatums.values().forEach(function(datum){datum_deselect.call(datum)});this._selectedDatums.clear()}return changed}});function data_onDatumSelectedChanged(datum,selected){!datum.isNull||def.assert("Null datums do not notify selected changes");if(selected){this._selectedDatums.set(datum.id,datum)}else{this._selectedDatums.rem(datum.id)}this._sumAbsCache=null}function data_onDatumVisibleChanged(datum,visible){if(def.hasOwn(this._datumsById,datum.id)){!datum.isNull||def.assert("Null datums do not notify visible changes");if(visible){this._visibleDatums.set(datum.id,datum)}else{this._visibleDatums.rem(datum.id)}this._sumAbsCache=null;def.eachOwn(this._dimensions,function(dimension){dim_onDatumVisibleChanged.call(dimension,datum,visible)});this._children.forEach(function(data){data_onDatumVisibleChanged.call(data,datum,visible)});if(this._linkChildren){this._linkChildren.forEach(function(data){data_onDatumVisibleChanged.call(data,datum,visible)})}}}pvc.data.Data.setSelected=function(datums,selected){var anyChanged=false;if(datums){def.query(datums).each(function(datum){if(datum.setSelected(selected)){anyChanged=true}})}return anyChanged};pvc.data.Data.toggleSelected=function(datums){if(!def.array.isLike(datums)){datums=def.query(datums).array()}var allSelected=def.query(datums).all(function(datum){return datum.isNull||datum.isSelected});return this.setSelected(datums,!allSelected)};pvc.data.Data.setVisible=function(datums,visible){var anyChanged=false;if(datums){def.query(datums).each(function(datum){if(datum.setVisible(visible)){anyChanged=true}})}return anyChanged};pvc.data.Data.toggleVisible=function(datums){if(!def.array.isLike(datums)){datums=def.query(datums).array()}var allVisible=def.query(datums).all(function(datum){return datum.isVisible});return pvc.data.Data.setVisible(datums,!allVisible)};
21   -def.type('pvc.data.GroupingSpec').init(function(levelSpecs,type,keyArgs){this.type=type||null;var ids=[];this.hasCompositeLevels=false;var dimNames=[];this.levels=def.query(levelSpecs||undefined).where(function(levelSpec){return levelSpec.dimensions.length>0}).select(function(levelSpec){ids.push(levelSpec.id);def.array.append(dimNames,levelSpec.dimensionNames());if(!this.hasCompositeLevels&&levelSpec.dimensions.length>1){this.hasCompositeLevels=true}levelSpec._setAccDimNames(dimNames.slice(0));return levelSpec},this).array();this._dimNames=dimNames;this.depth=this.levels.length;this.isSingleLevel=this.depth===1;this.isSingleDimension=this.isSingleLevel&&!this.hasCompositeLevels;this.firstDimension=this.depth>0?this.levels[0].dimensions[0]:null;this.flatteningMode=def.get(keyArgs,'flatteningMode')||null;this.flattenRootLabel=def.get(keyArgs,'flattenRootLabel')||'';this.id=(this.flatteningMode||'')+"##"+this.flattenRootLabel+"##"+ids.join('||')}).add({bind:function(type){this.type=type||def.fail.argumentRequired('type');this.levels.forEach(function(levelSpec){levelSpec.bind(type)})},dimensions:function(){return def.query(this.levels).selectMany(function(level){return level.dimensions})},dimensionNames:function(){return this._dimNames},view:function(complex){return complex.view(this.dimensionNames())},isDiscrete:function(){var d;return!this.isSingleDimension||(!!(d=this.firstDimension)&&d.type.isDiscrete)},firstDimensionType:function(){var d=this.firstDimension;return d&&d.type},firstDimensionName:function(){var dt=this.firstDimensionType();return dt&&dt.name},firstDimensionValueType:function(){var dt=this.firstDimensionType();return dt&&dt.valueType},isNull:function(){return!this.levels.length},ensure:function(keyArgs){var grouping=this,flatteningMode=def.get(keyArgs,'flatteningMode');if(flatteningMode){if(flatteningMode==='singleLevel'){return grouping.singleLevelGrouping(keyArgs)}var flattenRootLabel=def.get(keyArgs,'flattenRootLabel')||'';if(this.flatteningMode!==flatteningMode||(this.flattenRootLabel!==flattenRootLabel)){grouping=new pvc.data.GroupingSpec(grouping.levels,grouping.type,{flatteningMode:flatteningMode,flattenRootLabel:flattenRootLabel})}}if(def.get(keyArgs,'reverse',false)){grouping=grouping.reversed()}return grouping},singleLevelGrouping:function(keyArgs){var reverse=!!def.get(keyArgs,'reverse',false);if(this.isSingleLevel&&!reverse){return this}this._singleLevelGrouping||(this._singleLevelGrouping={});var singleLevel=this._singleLevelGrouping[reverse];if(!singleLevel){var dimSpecs=this.dimensions().select(function(dimSpec){return reverse?new pvc.data.GroupingDimensionSpec(dimSpec.name,!dimSpec.reverse,dimSpec.type.complexType):dimSpec});var levelSpec=new pvc.data.GroupingLevelSpec(dimSpecs,this.type);singleLevel=new pvc.data.GroupingSpec([levelSpec],this.type,{flatteningMode:this.flatteningMode});this._singleLevelGrouping[reverse]=singleLevel}return singleLevel},reversed:function(){var reverseGrouping=this._reverseGrouping;if(!reverseGrouping){var levelSpecs=def.query(this.levels).select(function(levelSpec){var dimSpecs=def.query(levelSpec.dimensions).select(function(dimSpec){return new pvc.data.GroupingDimensionSpec(dimSpec.name,!dimSpec.reverse,dimSpec.type.complexType)});return new pvc.data.GroupingLevelSpec(dimSpecs,this.type)});reverseGrouping=new pvc.data.GroupingSpec(levelSpecs,this.type,{flatteningMode:this.flatteningMode});this._reverseGrouping=reverseGrouping}return reverseGrouping},toString:function(){return def.query(this.levels).select(function(level){return''+level}).array().join(', ')}});def.type('pvc.data.GroupingLevelSpec').init(function(dimSpecs,type){var ids=[];var dimNames=[];this.dimensions=def.query(dimSpecs).select(function(dimSpec){ids.push(dimSpec.id);dimNames.push(dimSpec.name);return dimSpec}).array();this._dimNames=dimNames;this.dimensionsInDefOrder=this.dimensions.slice(0);if(type){this._sortDimensions(type)}this.id=ids.join(',');this.depth=this.dimensions.length;var me=this;this.comparer=function(a,b){return me.compare(a,b)}}).add({_sortDimensions:function(type){type.sortDimensionNames(this.dimensionsInDefOrder,function(d){return d.name})},_setAccDimNames:function(accDimNames){this._accDimNames=accDimNames},accDimensionNames:function(){return this._accDimNames},dimensionNames:function(){return this._dimNames},bind:function(type){this._sortDimensions(type);this.dimensions.forEach(function(dimSpec){dimSpec.bind(type)})},compare:function(a,b){for(var i=0,D=this.depth;i<D;i++){var result=this.dimensions[i].compareDatums(a,b);if(result!==0){return result}}return 0},key:function(datum){var key='';var atoms={};var datoms=datum.atoms;var dimNames=this._dimNames;var keySep=datum.owner.keySep;for(var i=0,D=this.depth;i<D;i++){var dimName=dimNames[i];var atom=datoms[dimName];atoms[dimName]=atom;if(!i){key=atom.key}else{key+=keySep+atom.key}}return{key:key,atoms:atoms,dimNames:dimNames}},toString:function(){return def.query(this.dimensions).select(function(dimSpec){return''+dimSpec}).array().join('|')}});def.type('pvc.data.GroupingDimensionSpec').init(function(name,reverse,type){this.name=name;this.reverse=!!reverse;this.id=this.name+":"+(this.reverse?'0':'1');if(type){this.bind(type)}}).add({type:null,comparer:null,bind:function(type){type||def.fail.argumentRequired('type');this.type=type.dimensions(this.name);this.comparer=this.type.atomComparer(this.reverse)},compareDatums:function(a,b){var result=this.comparer(a.atoms[this.name],b.atoms[this.name]);if(result!==0){return result}return 0},toString:function(){return this.name+(this.reverse?' desc':'')}});pvc.data.GroupingSpec.parse=function(specText,type){if(!specText){return new pvc.data.GroupingSpec(null,type)}var levels;if(def.array.is(specText)){levels=specText}else if(def.string.is(specText)){levels=specText.split(/\s*,\s*/)}var levelSpecs=def.query(levels).select(function(levelText){var dimSpecs=groupSpec_parseGroupingLevel(levelText,type);return new pvc.data.GroupingLevelSpec(dimSpecs,type)});return new pvc.data.GroupingSpec(levelSpecs,type)};var groupSpec_matchDimSpec=/^\s*(.+?)(?:\s+(asc|desc))?\s*$/i;function groupSpec_parseGroupingLevel(groupLevelText,type){def.string.is(groupLevelText)||def.fail.argumentInvalid('groupLevelText',"Invalid grouping specification.");return def.query(groupLevelText.split(/\s*\|\s*/)).where(def.truthy).select(function(dimSpecText){var match=groupSpec_matchDimSpec.exec(dimSpecText)||def.fail.argumentInvalid('groupLevelText',"Invalid grouping level syntax '{0}'.",[dimSpecText]),name=match[1],order=(match[2]||'').toLowerCase(),reverse=order==='desc';return new pvc.data.GroupingDimensionSpec(name,reverse,type)})}
22   -def.type('pvc.data.DataOper').init(function(linkParent,keyArgs){this._linkParent=linkParent}).add({key:null,execute:def.method({isAbstract:true})});
23   -def.type('pvc.data.GroupingOper',pvc.data.DataOper).init(function(linkParent,groupingSpecs,keyArgs){groupingSpecs||def.fail.argumentRequired('groupingSpecs');this.base(linkParent,keyArgs);this._where=def.get(keyArgs,'where');this._visible=def.get(keyArgs,'visible',null);this._selected=def.get(keyArgs,'selected',null);this._isNull=def.get(keyArgs,'isNull',null);var hasKey=this._selected==null,whereKey='';if(this._where){whereKey=def.get(keyArgs,'whereKey');if(!whereKey){if(!keyArgs||whereKey===null){hasKey=false}else{whereKey=''+def.nextId('dataOperWhereKey');keyArgs.whereKey=whereKey}}}var ids=[];this._groupSpecs=def.array.as(groupingSpecs).map(function(groupSpec){if(groupSpec instanceof pvc.data.GroupingSpec){if(groupSpec.type!==linkParent.type){throw def.error.argumentInvalid('groupingSpecText',"Invalid associated complex type.")}}else{groupSpec=pvc.data.GroupingSpec.parse(groupSpec,linkParent.type)}ids.push(groupSpec.id);return groupSpec});if(hasKey){this.key=ids.join('!!')+"||visible:"+this._visible+"||isNull:"+this._isNull+"||where:"+whereKey}}).add({execute:function(){var datumsQuery=data_whereState(def.query(this._linkParent._datums),{visible:this._visible,selected:this._selected,isNull:this._isNull,where:this._where});var rootNode=this._group(datumsQuery);return this._generateData(rootNode,null,this._linkParent)},executeAdd:function(rootData,datums){var datumsQuery=data_whereState(def.query(datums),{visible:this._visible,selected:this._selected,isNull:this._isNull,where:this._where});var rootNode=this._group(datumsQuery);this._generateData(rootNode,null,this._linkParent,rootData);return rootNode.datums},_group:function(datumsQuery){var rootNode={isRoot:true,treeHeight:def.query(this._groupSpecs).select(function(spec){var levelCount=spec.levels.length;if(!levelCount){return 0}return!!spec.flatteningMode?1:levelCount}).reduce(def.add,0),datums:[]};if(rootNode.treeHeight>0){this._groupSpecRecursive(rootNode,datumsQuery,0)}return rootNode},_groupSpecRecursive:function(specParentNode,specDatumsQuery,specIndex){var groupSpec=this._groupSpecs[specIndex];var levelSpecs=groupSpec.levels;var L=levelSpecs.length;var doFlatten=!!groupSpec.flatteningMode;var nextSpecIndex=specIndex+1;var isLastSpec=(nextSpecIndex>=this._groupSpecs.length);var isPostOrder=doFlatten&&(groupSpec.flatteningMode==='tree-post');var specGroupParent;if(doFlatten){specParentNode.children=[];specParentNode.childrenByKey={};specGroupParent={key:'',absKey:'',atoms:{},datums:[],label:groupSpec.flattenRootLabel,dimNames:[]};if(!isPostOrder){specParentNode.children.push(specGroupParent);specParentNode.childrenByKey['']=specGroupParent}}else{specGroupParent=specParentNode}groupLevelRecursive.call(this,specGroupParent,specDatumsQuery,0);if(doFlatten){if(isPostOrder){specParentNode.children.push(specGroupParent)}specParentNode.datums=specGroupParent.datums}function groupLevelRecursive(levelParentNode,levelDatums,levelIndex){var levelSpec=levelSpecs[levelIndex];if(!doFlatten){levelParentNode.children=[];levelParentNode.groupSpec=groupSpec;levelParentNode.groupLevelSpec=levelSpec}var childNodes=this._groupDatums(levelSpec,levelParentNode,levelDatums,doFlatten);var isLastSpecLevel=levelIndex===L-1;var willRecurseParent=doFlatten&&!isLastSpec;var levelParentDatums=willRecurseParent?[]:levelParentNode.datums;childNodes.forEach(function(child){var childDatums=child.datums;if(!(isLastSpec&&isLastSpecLevel)){child.datums=[]}var specParentChildIndex;if(!doFlatten){levelParentNode.children.push(child)}else{def.array.lazy(levelParentNode,'_children').push(child);if(def.hasOwn(specParentNode.childrenByKey,child.key)){def.array.append(levelParentDatums,childDatums);return}specParentChildIndex=specParentNode.children.length;if(!isPostOrder){specParentNode.children.push(child);specParentNode.childrenByKey[child.key]=child;levelParentNode.isFlattenGroup=true}}if(!isLastSpecLevel){groupLevelRecursive.call(this,child,childDatums,levelIndex+1)}else if(!isLastSpec){this._groupSpecRecursive(child,childDatums,nextSpecIndex)}def.array.append(levelParentDatums,child.datums);if(doFlatten&&isPostOrder){if(def.hasOwn(specParentNode.childrenByKey,child.key)){child.isFlattenGroup||def.assert("Must be a parent for duplicate keys to exist.");if(child._children.length===1){specParentNode.children.splice(specParentChildIndex,specParentNode.children.length-specParentChildIndex);child.isDegenerateFlattenGroup=true}}specParentNode.children.push(child);specParentNode.childrenByKey[child.key]=child;levelParentNode.isFlattenGroup=true}},this);if(willRecurseParent){this._groupSpecRecursive(levelParentNode,levelParentDatums,nextSpecIndex)}}},_groupDatums:function(levelSpec,levelParentNode,levelDatums,doFlatten){var firstDatums=[];var childNodes=new def.OrderedMap();def.query(levelDatums).each(function(datum){var newChild=levelSpec.key(datum);var key=newChild.key;var child=childNodes.get(key);if(child){child.datums.push(datum)}else{child=newChild;child.datums=[datum];if(doFlatten){def.copy(child.atoms,levelParentNode.atoms);if(levelParentNode.dimNames.length){var keySep=datum.owner.keySep;child.absKey=levelParentNode.absKey+keySep+key;var K=keySep.length;var trimKey=child.absKey;while(trimKey.lastIndexOf(keySep)===trimKey.length-K){trimKey=trimKey.substr(0,trimKey.length-K)}child.key=trimKey}else{child.absKey=key}child.dimNames=levelSpec.accDimensionNames()}var datumIndex=def.array.insert(firstDatums,datum,levelSpec.comparer);childNodes.add(key,child,~datumIndex)}});return childNodes},_generateData:function(node,parentNode,parentData,rootData){var data,isNew;if(node.isRoot){if(rootData){data=rootData;data_addDatumsLocal.call(data,node.datums)}else{isNew=true;data=new pvc.data.Data({linkParent:parentData,datums:node.datums});data.treeHeight=node.treeHeight;data._groupOper=this}}else{if(rootData){data=def.get(parentData._childrenByKey,node.key);if(data){data_addDatumsSimple.call(data,node.datums)}}if(!data){isNew=true;var index,siblings;if(rootData&&(siblings=parentData._children)){index=~def.array.binarySearch(siblings,node.datums[0],parentNode.groupLevelSpec.comparer)}data=new pvc.data.Data({parent:parentData,atoms:node.atoms,dimNames:node.dimNames,datums:node.datums,index:index})}}if(isNew&&node.isFlattenGroup){data._isFlattenGroup=true;data._isDegenerateFlattenGroup=!!node.isDegenerateFlattenGroup;var label=node.label;if(label){data.label+=label;data.absLabel+=label}}var childNodes=node.children;if(childNodes&&childNodes.length){if(isNew){data._groupSpec=node.groupSpec;data._groupLevelSpec=node.groupLevelSpec}childNodes.forEach(function(childNode){this._generateData(childNode,node,data,rootData)},this)}else if(isNew&&!node.isRoot){var leafs=data.root._leafs;data.leafIndex=leafs.length;leafs.push(data)}return data}});
24   -def.type('pvc.data.LinearInterpolationOper').init(function(allPartsData,data,catRole,serRole,valRole,stretchEnds){this._newDatums=[];this._data=data;var allCatDataRoot=allPartsData.flattenBy(catRole,{ignoreNulls:false});var allCatDatas=allCatDataRoot._children;var serDatas1=this._serDatas1=serRole.isBound()?data.flattenBy(serRole).children().array():[null];this._isCatDiscrete=catRole.grouping.isDiscrete();this._firstCatDim=!this._isCatDiscrete?data.owner.dimensions(catRole.firstDimensionName()):null;this._stretchEnds=stretchEnds;var valDim=this._valDim=data.owner.dimensions(valRole.firstDimensionName());var visibleKeyArgs={visible:true,zeroIfNone:false};this._catInfos=allCatDatas.map(function(allCatData,catIndex){var catData=data._childrenByKey[allCatData.key];var catInfo={data:catData||allCatData,value:allCatData.value,isInterpolated:false,serInfos:null,index:catIndex};catInfo.serInfos=serDatas1.map(function(serData1){var group=catData;if(group&&serData1){group=group._childrenByKey[serData1.key]}var value=group?group.dimensions(valDim.name).sum(visibleKeyArgs):null;return{data:serData1,group:group,value:value,isNull:value==null,catInfo:catInfo}},this);return catInfo});this._serCount=serDatas1.length;this._serStates=def.range(0,this._serCount).select(function(serIndex){return new pvc.data.LinearInterpolationOperSeriesState(this,serIndex)},this).array()}).add({interpolate:function(){var catInfo;while((catInfo=this._catInfos.shift())){catInfo.serInfos.forEach(this._visitSeries,this)}var newDatums=this._newDatums;if(newDatums.length){this._data.owner.add(newDatums)}},_visitSeries:function(catSerInfo,serIndex){this._serStates[serIndex].visit(catSerInfo)},nextUnprocessedNonNullCategOfSeries:function(serIndex){var catIndex=0,catCount=this._catInfos.length;while(catIndex<catCount){var catInfo=this._catInfos[catIndex++];var catSerInfo=catInfo.serInfos[serIndex];if(!catSerInfo.isNull){return catSerInfo}}}});
25   -def.type('pvc.data.LinearInterpolationOperSeriesState').init(function(interpolation,serIndex){this.interpolation=interpolation;this.index=serIndex;this._lastNonNull(null)}).add({visit:function(catSeriesInfo){if(catSeriesInfo.isNull){this._interpolate(catSeriesInfo)}else{this._lastNonNull(catSeriesInfo)}},_lastNonNull:function(catSerInfo){if(arguments.length){this.__lastNonNull=catSerInfo;this.__nextNonNull=undefined}return this.__lastNonNull},_nextNonNull:function(){return this.__nextNonNull},_initInterpData:function(){if(this.__nextNonNull!==undefined){return}var last=this.__lastNonNull;var next=this.__nextNonNull=this.interpolation.nextUnprocessedNonNullCategOfSeries(this.index)||null;if(next&&last){var fromValue=last.value;var toValue=next.value;var deltaValue=toValue-fromValue;if(this.interpolation._isCatDiscrete){var stepCount=next.catInfo.index-last.catInfo.index;(stepCount>=2)||def.assert("Must have at least one interpolation point.");this._stepValue=deltaValue/stepCount;this._middleIndex=~~(stepCount/2); var dotCount=(stepCount-1);this._isOdd=(dotCount%2)>0}else{var fromCat=+last.catInfo.value;var toCat=+next.catInfo.value;var deltaCat=toCat-fromCat;this._steep=deltaValue/deltaCat; this._middleCat=(toCat+fromCat)/2}}},_interpolate:function(catSerInfo){this._initInterpData();var next=this.__nextNonNull;var last=this.__lastNonNull;var one=next||last;if(!one){return}var value,group;var interpolation=this.interpolation;var catInfo=catSerInfo.catInfo;if(next&&last){if(interpolation._isCatDiscrete){var groupIndex=(catInfo.index-last.catInfo.index);value=last.value+this._stepValue*groupIndex;if(this._isOdd){group=groupIndex<this._middleIndex?last.group:next.group}else{group=groupIndex<=this._middleIndex?last.group:next.group}}else{var cat=+catInfo.value;var lastCat=+last.catInfo.value;value=last.value+this._steep*(cat-lastCat);group=cat<this._middleCat?last.group:next.group}}else{if(!interpolation._stretchEnds){return}value=one.value;group=one.group}var atoms=Object.create(group._datums[0].atoms);def.copyOwn(atoms,catInfo.data.atoms);var valueAtom=interpolation._valDim.intern(value,true);atoms[valueAtom.dimension.name]=valueAtom;var newDatum=new pvc.data.Datum(group.owner,atoms);newDatum.isVirtual=true;newDatum.isInterpolated=true;newDatum.interpolation='linear';interpolation._newDatums.push(newDatum)}});
26   -def.type('pvc.data.ZeroInterpolationOper').init(function(allPartsData,data,catRole,serRole,valRole,stretchEnds){this._newDatums=[];this._data=data;var allCatDataRoot=allPartsData.flattenBy(catRole,{ignoreNulls:false});var allCatDatas=allCatDataRoot._children;var serDatas1=this._serDatas1=serRole.isBound()?data.flattenBy(serRole).children().array():[null];this._isCatDiscrete=catRole.grouping.isDiscrete();this._firstCatDim=!this._isCatDiscrete?data.owner.dimensions(catRole.firstDimensionName()):null;this._stretchEnds=stretchEnds;var valDim=this._valDim=data.owner.dimensions(valRole.firstDimensionName());var visibleKeyArgs={visible:true,zeroIfNone:false};this._catInfos=allCatDatas.map(function(allCatData,catIndex){var catData=data._childrenByKey[allCatData.key];var catInfo={data:catData||allCatData,value:allCatData.value,isInterpolated:false,serInfos:null,index:catIndex};catInfo.serInfos=serDatas1.map(function(serData1){var group=catData;if(group&&serData1){group=group._childrenByKey[serData1.key]}var value=group?group.dimensions(valDim.name).sum(visibleKeyArgs):null;return{data:serData1,group:group,value:value,isNull:value==null,catInfo:catInfo}},this);return catInfo});this._serCount=serDatas1.length;this._serStates=def.range(0,this._serCount).select(function(serIndex){return new pvc.data.ZeroInterpolationOperSeriesState(this,serIndex)},this).array()}).add({interpolate:function(){var catInfo;while((catInfo=this._catInfos.shift())){catInfo.serInfos.forEach(this._visitSeries,this)}var newDatums=this._newDatums;if(newDatums.length){this._data.owner.add(newDatums)}},_visitSeries:function(catSerInfo,serIndex){this._serStates[serIndex].visit(catSerInfo)},nextUnprocessedNonNullCategOfSeries:function(serIndex){var catIndex=0,catCount=this._catInfos.length;while(catIndex<catCount){var catInfo=this._catInfos[catIndex++];var catSerInfo=catInfo.serInfos[serIndex];if(!catSerInfo.isNull){return catSerInfo}}}});
27   -def.type('pvc.data.ZeroInterpolationOperSeriesState').init(function(interpolation,serIndex){this.interpolation=interpolation;this.index=serIndex;this._lastNonNull(null)}).add({visit:function(catSeriesInfo){if(catSeriesInfo.isNull){this._interpolate(catSeriesInfo)}else{this._lastNonNull(catSeriesInfo)}},_lastNonNull:function(catSerInfo){if(arguments.length){this.__lastNonNull=catSerInfo;this.__nextNonNull=undefined}return this.__lastNonNull},_nextNonNull:function(){return this.__nextNonNull},_initInterpData:function(){if(this.__nextNonNull!==undefined){return}var last=this.__lastNonNull;var next=this.__nextNonNull=this.interpolation.nextUnprocessedNonNullCategOfSeries(this.index)||null;if(next&&last){var fromValue=last.value;var toValue=next.value;var deltaValue=toValue-fromValue;if(this.interpolation._isCatDiscrete){var stepCount=next.catInfo.index-last.catInfo.index;(stepCount>=2)||def.assert("Must have at least one interpolation point.");this._middleIndex=~~(stepCount/2); var dotCount=(stepCount-1);this._isOdd=(dotCount%2)>0}else{var fromCat=+last.catInfo.value;var toCat=+next.catInfo.value;this._middleCat=(toCat+fromCat)/2}}},_interpolate:function(catSerInfo){this._initInterpData();var next=this.__nextNonNull;var last=this.__lastNonNull;var one=next||last;if(!one){return}var group;var interpolation=this.interpolation;var catInfo=catSerInfo.catInfo;if(next&&last){if(interpolation._isCatDiscrete){var groupIndex=(catInfo.index-last.catInfo.index);if(this._isOdd){group=groupIndex<this._middleIndex?last.group:next.group}else{group=groupIndex<=this._middleIndex?last.group:next.group}}else{var cat=+catInfo.value;group=cat<this._middleCat?last.group:next.group}}else{if(!interpolation._stretchEnds){return}group=one.group}var atoms=Object.create(group._datums[0].atoms);def.copyOwn(atoms,catInfo.data.atoms);var zeroAtom=interpolation._zeroAtom||(interpolation._zeroAtom=interpolation._valDim.intern(0,true));atoms[zeroAtom.dimension.name]=zeroAtom;var newDatum=new pvc.data.Datum(group.owner,atoms);newDatum.isVirtual=true;newDatum.isInterpolated=true;newDatum.interpolation='zero';interpolation._newDatums.push(newDatum)}});
28   -pvc.data.Data.add({load:function(atomz,keyArgs){data_assertIsOwner.call(this);var whereFun=def.get(keyArgs,'where');var isNullFun=def.get(keyArgs,'isNull');var datums=def.query(atomz).select(function(atoms){var datum=new pvc.data.Datum(this,atoms);if(isNullFun&&isNullFun(datum)){datum.isNull=true}if(whereFun&&!whereFun(datum)){return null}return datum},this);data_setDatums.call(this,datums,{doAtomGC:true})},clearVirtuals:function(){var datums=this._datums;if(datums){this._sumAbsCache=null;var visibleDatums=this._visibleDatums;var selectedDatums=this._selectedDatums;var i=0;var L=datums.length;var removed;while(i<L){var datum=datums[i];if(datum.isVirtual){var id=datum.id;if(selectedDatums&&datum.isSelected){selectedDatums.rem(id)}if(datum.isVisible){visibleDatums.rem(id)}datums.splice(i,1);L--;removed=true}else{i++}}if(removed){if(!datums.length&&this.parent){this.dispose();return}var children=this._children;if(children){i=0;L=children.length;while(i<L){var childData=children[i];childData.clearVirtuals();if(!childData.parent){L--}else{i++}}}if(this._linkChildren){this._linkChildren.forEach(function(linkChildData){linkChildData.clearVirtuals()})}}}def.eachOwn(this._dimensions,function(dim){dim_uninternVirtualAtoms.call(dim)})},add:function(datums){data_assertIsOwner.call(this);data_setDatums.call(this,datums,{isAdditive:true,doAtomGC:true})},groupBy:function(groupingSpecText,keyArgs){var groupOper=new pvc.data.GroupingOper(this,groupingSpecText,keyArgs),cacheKey=groupOper.key,groupByCache,data;if(cacheKey){groupByCache=this._groupByCache;data=groupByCache&&groupByCache[cacheKey]}if(!data){if(pvc.debug>=7){pvc.log("[GroupBy] "+(cacheKey?("Cache key not found: '"+cacheKey+"'"):"No Cache key"))}data=groupOper.execute();if(cacheKey){(groupByCache||(this._groupByCache={}))[cacheKey]=data}}else if(pvc.debug>=7){pvc.log("[GroupBy] Cache key hit '"+cacheKey+"'")}return data},flattenBy:function(role,keyArgs){var grouping=role.flattenedGrouping(keyArgs)||def.fail.operationInvalid("Role is unbound.");return this.groupBy(grouping,keyArgs)},where:function(whereSpec,keyArgs){var datums=this.datums(whereSpec,keyArgs);return new pvc.data.Data({linkParent:this,datums:datums})},datums:function(whereSpec,keyArgs){if(!whereSpec){if(!keyArgs){return def.query(this._datums)}return data_whereState(def.query(this._datums),keyArgs)}whereSpec=data_processWhereSpec.call(this,whereSpec,keyArgs);return data_where.call(this,whereSpec,keyArgs)},datum:function(whereSpec,keyArgs){whereSpec||def.fail.argumentRequired('whereSpec');whereSpec=data_processWhereSpec.call(this,whereSpec,keyArgs);var datum=data_where.call(this,whereSpec,keyArgs).first()||null;if(!datum&&def.get(keyArgs,'createNull')&&whereSpec.length){var sourceDatumFilter=whereSpec[0],atoms={};for(var dimName in this._dimensions){var dimAtoms=sourceDatumFilter[dimName];if(dimAtoms){atoms[dimName]=dimAtoms[0]}}datum=new pvc.data.Datum(this,atoms,true)}return datum},firstDatum:function(){return this._datums.length?this._datums[0]:null},dimensionsSumAbs:function(dimName,keyArgs){var key=dimName+":"+dim_buildDatumsFilterKey(keyArgs),sum=def.getOwn(this._sumAbsCache,key);if(sum==null){sum=this.children().where(function(childData){return!childData._isFlattenGroup||childData._isDegenerateFlattenGroup}).select(function(childData){return Math.abs(childData.dimensions(dimName).sum(keyArgs))},this).reduce(def.add,0);(this._sumAbsCache||(this._sumAbsCache={}))[key]=sum}return sum}});function data_setDatums(newDatums,keyArgs){newDatums||def.fail.argumentRequired('newDatums');var doAtomGC=def.get(keyArgs,'doAtomGC',false);var isAdditive=def.get(keyArgs,'isAdditive',false);var visibleDatums=this._visibleDatums;var selectedDatums=this._selectedDatums;var newDatumsByKey={};var prevDatumsByKey;var prevDatums=this._datums;if(prevDatums){var processPrevAtoms=isAdditive&&doAtomGC;prevDatumsByKey=def.query(prevDatums).uniqueIndex(function(datum){if(processPrevAtoms){data_processDatumAtoms.call(this,datum,false,true)}return datum.key},this);if(isAdditive){this._sumAbsCache=null}else{data_disposeChildLists.call(this);if(selectedDatums){selectedDatums.clear()}visibleDatums.clear()}}else{isAdditive=false}var datumsById;if(isAdditive){datumsById=this._datumsById}else{datumsById=this._datumsById={}}if(def.array.is(newDatums)){var i=0;var L=newDatums.length;while(i<L){var inDatum=newDatums[i];var outDatum=setDatum.call(this,inDatum);if(!outDatum){newDatums.splice(i,1);L--}else{if(outDatum!==inDatum){newDatums[i]=outDatum}i++}}}else if(newDatums instanceof def.Query){newDatums=newDatums.select(setDatum,this).where(def.notNully).array()}else{throw def.error.argumentInvalid('newDatums',"Argument is of invalid type.")}if(doAtomGC){def.eachOwn(this._dimensions,function(dimension){dim_uninternUnvisitedAtoms.call(dimension)})}if(isAdditive){def.array.append(prevDatums,newDatums);if(this._linkChildren){this._linkChildren.forEach(function(linkChildData){data_addDatumsSimple.call(linkChildData,newDatums)})}}else{this._datums=newDatums}function setDatum(newDatum){if(!newDatum){return}var key=newDatum.key;if(def.hasOwnProp.call(newDatumsByKey,key)){return}if(prevDatumsByKey){var prevDatum=def.getOwn(prevDatumsByKey,key);if(prevDatum){if(isAdditive){return}newDatum=prevDatum}}newDatumsByKey[key]=newDatum;var id=newDatum.id;datumsById[id]=newDatum;data_processDatumAtoms.call(this,newDatum,!!this._dimensions,doAtomGC);if(!newDatum.isNull){if(selectedDatums&&newDatum.isSelected){selectedDatums.set(id,newDatum)}if(newDatum.isVisible){visibleDatums.set(id,newDatum)}}return newDatum}}function data_processDatumAtoms(datum,intern,markVisited){var dims=this._dimensions;if(!dims){intern=false}def.each(datum.atoms,function(atom){if(intern){var localDim=def.getOwn(dims,atom.dimension.name)||def.fail.argumentInvalid("Datum has atoms of foreign dimension.");dim_internAtom.call(localDim,atom)}if(markVisited){atom.visited=true}})}function data_addDatumsSimple(newDatums){newDatums||def.fail.argumentRequired('newDatums');var groupOper=this._groupOper;if(groupOper){newDatums=groupOper.executeAdd(this,newDatums)}else{data_addDatumsLocal.call(this,newDatums)}if(this._linkChildren){this._linkChildren.forEach(function(linkChildData){data_addDatumsSimple.call(linkChildData,newDatums)})}}function data_addDatumsLocal(newDatums){var visibleDatums=this._visibleDatums;var selectedDatums=this._selectedDatums;this._sumAbsCache=null;var datumsById=this._datumsById;var datums=this._datums;newDatums.forEach(addDatum,this);function addDatum(newDatum){var id=newDatum.id;datumsById[id]=newDatum;data_processDatumAtoms.call(this,newDatum,true,false);if(!newDatum.isNull){if(selectedDatums&&newDatum.isSelected){selectedDatums.set(id,newDatum)}if(newDatum.isVisible){visibleDatums.set(id,newDatum)}}datums.push(newDatum)}}function data_processWhereSpec(whereSpec){var whereProcSpec=[];whereSpec=def.array.as(whereSpec);if(whereSpec){whereSpec.forEach(processDatumFilter,this)}return whereProcSpec;function processDatumFilter(datumFilter){if(datumFilter!=null){(typeof datumFilter==='object')||def.fail.invalidArgument('datumFilter');var datumProcFilter={},any=false;for(var dimName in datumFilter){var atoms=processDimensionFilter.call(this,dimName,datumFilter[dimName]);if(atoms){any=true;datumProcFilter[dimName]=atoms}}if(any){whereProcSpec.push(datumProcFilter)}}}function processDimensionFilter(dimName,values){var dimension=this.dimensions(dimName),atoms=def.query(values).select(function(value){return dimension.atom(value)}).where(def.notNully).distinct(function(atom){return atom.key}).array();return atoms.length?atoms:null}}function data_whereState(q,keyArgs){var selected=def.get(keyArgs,'selected'),visible=def.get(keyArgs,'visible'),where=def.get(keyArgs,'where'),isNull=def.get(keyArgs,'isNull');if(visible!=null){q=q.where(function(datum){return datum.isVisible===visible})}if(isNull!=null){q=q.where(function(datum){return datum.isNull===isNull})}if(selected!=null){q=q.where(function(datum){return datum.isSelected===selected})}if(where){q=q.where(where)}return q}function data_where(whereSpec,keyArgs){var orderBys=def.array.as(def.get(keyArgs,'orderBy')),datumKeyArgs=def.create(keyArgs||{},{orderBy:null});var query=def.query(whereSpec).selectMany(function(datumFilter,index){if(orderBys){datumKeyArgs.orderBy=orderBys[index]}return data_whereDatumFilter.call(this,datumFilter,datumKeyArgs)},this);return query.distinct(function(datum){return datum.id})}function data_whereDatumFilter(datumFilter,keyArgs){var groupingSpecText=keyArgs.orderBy;if(!groupingSpecText){groupingSpecText=Object.keys(datumFilter).sort().join(',')}else{if(groupingSpecText.indexOf("|")>=0){throw def.error.argumentInvalid('keyArgs.orderBy',"Multi-dimension order by is not supported.")}}var rootData=this.groupBy(groupingSpecText,keyArgs),H=rootData.treeHeight;var stateStack=[];return def.query(function(){var state;if(!this._data){this._data=rootData;this._dimAtomsOrQuery=def.query(datumFilter[rootData._groupLevelSpec.dimensions[0].name])}else if(this._datumsQuery){this._data||def.assert("Must have a current data");stateStack.length||def.assert("Must have a parent data");!this._dimAtomsOrQuery||def.assert();if(this._datumsQuery.next()){this.item=this._datumsQuery.item;return 1}this._datumsQuery=null;state=stateStack.pop();this._data=state.data;this._dimAtomsOrQuery=state.dimAtomsOrQuery}this._dimAtomsOrQuery||def.assert("Invalid programmer");this._data||def.assert("Must have a current data");var depth=stateStack.length;do{while(this._dimAtomsOrQuery.next()){var dimAtomOr=this._dimAtomsOrQuery.item,childData=this._data._childrenByKey[dimAtomOr.key];if(childData&&(depth<H-1||childData._datums.length)){stateStack.push({data:this._data,dimAtomsOrQuery:this._dimAtomsOrQuery});this._data=childData;if(depth<H-1){this._dimAtomsOrQuery=def.query(datumFilter[childData._groupLevelSpec.dimensions[0].name]);depth++}else{this._dimAtomsOrQuery=null;this._datumsQuery=def.query(childData._datums);this._datumsQuery.next();this.item=this._datumsQuery.item;return 1}}}if(!depth){return 0}state=stateStack.pop();this._data=state.data;this._dimAtomsOrQuery=state.dimAtomsOrQuery;depth--}while(true);return 0})}
29   -pvc.data.Data.add({getInfo:function(){var out=["DATA SUMMARY",pvc.logSeparator," Dimension",pvc.logSeparator];def.eachOwn(this.dimensions(),function(dimension,name){var count=dimension.count(),type=dimension.type,features=[];features.push('"'+type.label+'"');features.push(type.valueTypeName);if(type.isComparable){features.push("comparable")}if(!type.isDiscrete){features.push("continuous")}if(type.isHidden){features.push("hidden")}out.push(" "+name+" ("+features.join(', ')+")"+" ("+count+")\n\t"+dimension.atoms().slice(0,10).map(function(atom){return atom.label}).join(", ")+(count>10?"...":""))});return out.join("\n")},getValues:function(){return pv.range(0,this.getCategoriesSize()).map(function(categIndex){return this._getValuesForCategoryIndex(categIndex)},this)},_getDimensionValues:function(name){return this.dimensions(name).atoms().map(function(atom){return atom.value})},_getDimensionVisibleValues:function(name){return this.dimensions(name).atoms({visible:true}).map(function(atom){return atom.value})},getSeries:function(){return this._getDimensionValues('series')},getVisibleSeriesIndexes:function(){return this.dimensions('series').indexes({visible:true})},getVisibleCategoriesIndexes:function(){return this.dimensions('category').indexes({visible:true})},getVisibleSeries:function(){return this._getDimensionVisibleValues('series')},getCategories:function(){return this._getDimensionValues('category')},getVisibleCategories:function(){return this._getDimensionVisibleValues('category')},_getValuesForCategoryIndex:function(categIdx){var categAtom=this.dimensions('category').atoms()[categIdx];var datumsBySeriesKey=this.datums({category:categAtom}).uniqueIndex(function(datum){return datum.atoms.series.key});return this.dimensions('series').atoms().map(function(atom){var datum=def.getOwn(datumsBySeriesKey,atom.key);return datum?datum.atoms.value.value:null})},getSeriesSize:function(){var dim=this.dimensions('series',{assertExists:false});return dim?dim.count():0},getCategoriesSize:function(){var dim=this.dimensions('category',{assertExists:false});return dim?dim.count():0}});
30   -def.type('pvc.visual.Role').init(function(name,keyArgs){this.name=name;this.label=def.get(keyArgs,'label')||pvc.buildTitleFromName(name);this.index=def.get(keyArgs,'index')||0;this.dimensionDefaults=def.get(keyArgs,'dimensionDefaults')||{};if(def.get(keyArgs,'isRequired',false)){this.isRequired=true}if(def.get(keyArgs,'autoCreateDimension',false)){this.autoCreateDimension=true}var defaultSourceRoleName=def.get(keyArgs,'defaultSourceRole');if(defaultSourceRoleName){this.defaultSourceRoleName=defaultSourceRoleName}var defaultDimensionName=def.get(keyArgs,'defaultDimension');if(defaultDimensionName){this.defaultDimensionName=defaultDimensionName}if(!defaultDimensionName&&this.autoCreateDimension){throw def.error.argumentRequired('defaultDimension')}var requireSingleDimension;var requireIsDiscrete=def.get(keyArgs,'requireIsDiscrete');if(requireIsDiscrete!=null){if(!requireIsDiscrete){requireSingleDimension=true}}if(requireSingleDimension!=null){requireSingleDimension=def.get(keyArgs,'requireSingleDimension',false);if(requireSingleDimension){if(def.get(keyArgs,'isMeasure',false)){this.isMeasure=true;if(def.get(keyArgs,'isPercent',false)){this.isPercent=true}}var valueType=def.get(keyArgs,'valueType',null);if(valueType!==this.valueType){this.valueType=valueType;this.dimensionDefaults.valueType=valueType}}}if(requireSingleDimension!==this.requireSingleDimension){this.requireSingleDimension=requireSingleDimension}if(requireIsDiscrete!=this.requireIsDiscrete){this.requireIsDiscrete=!!requireIsDiscrete;this.dimensionDefaults.isDiscrete=this.requireIsDiscrete}var flatteningMode=def.get(keyArgs,'flatteningMode');if(flatteningMode&&flatteningMode!=this.flatteningMode){this.flatteningMode=flatteningMode}}).add({isRequired:false,requireSingleDimension:false,valueType:null,requireIsDiscrete:null,isMeasure:false,isPercent:false,defaultSourceRoleName:null,defaultDimensionName:null,grouping:null,flatteningMode:'singleLevel',flattenRootLabel:'',autoCreateDimension:false,isReversed:false,label:null,sourceRole:null,firstDimensionType:function(){var g=this.grouping;return g&&g.firstDimensionType()},firstDimensionName:function(){var g=this.grouping;return g&&g.firstDimensionName()},firstDimensionValueType:function(){var g=this.grouping;return g&&g.firstDimensionValueType()},isDiscrete:function(){var g=this.grouping;return g&&g.isDiscrete()},setSourceRole:function(sourceRole){this.sourceRole=sourceRole},setIsReversed:function(isReversed){if(!isReversed){delete this.isReversed}else{this.isReversed=true}},setFlatteningMode:function(flatteningMode){if(!flatteningMode||flatteningMode==='singleLevel'){delete this.flatteningMode}else{this.flatteningMode=flatteningMode}},setFlattenRootLabel:function(flattenRootLabel){if(!flattenRootLabel){delete this.flattenRootLabel}else{this.flattenRootLabel=flattenRootLabel}},flatten:function(data,keyArgs){if(this.grouping){return data.flattenBy(this,keyArgs)}},flattenedGrouping:function(keyArgs){var grouping=this.grouping;if(grouping){keyArgs=def.setDefaults(keyArgs,'flatteningMode',this.flatteningMode,'flattenRootLabel',this.flattenRootLabel);return grouping.ensure(keyArgs)}},select:function(data,keyArgs){var grouping=this.grouping;if(grouping){return data.groupBy(grouping.ensure(keyArgs),keyArgs)}},view:function(complex){var grouping=this.grouping;if(grouping){return grouping.view(complex)}},preBind:function(groupingSpec){this.__grouping=groupingSpec;return this},isPreBound:function(){return!!this.__grouping},preBoundGrouping:function(){return this.__grouping},isBound:function(){return!!this.grouping},postBind:function(type){var grouping=this.__grouping;if(grouping){delete this.__grouping;grouping.bind(type);this.bind(grouping)}return this},bind:function(groupingSpec){if(groupingSpec){if(groupingSpec.isNull()){groupingSpec=null}else{if(this.requireSingleDimension&&!groupingSpec.isSingleDimension){throw def.error.operationInvalid("Role '{0}' only accepts a single dimension.",[this.name])}var valueType=this.valueType;var requireIsDiscrete=this.requireIsDiscrete;groupingSpec.dimensions().each(function(dimSpec){var dimType=dimSpec.type;if(valueType&&dimType.valueType!==valueType){throw def.error.operationInvalid("Role '{0}' cannot be bound to dimension '{1}'. \nIt only accepts dimensions of type '{2}' and not of type '{3}'.",[this.name,dimType.name,pvc.data.DimensionType.valueTypeName(valueType),dimType.valueTypeName])}if(requireIsDiscrete!=null&&dimType.isDiscrete!==requireIsDiscrete){if(requireIsDiscrete){dimType._toDiscrete()}else{throw def.error.operationInvalid("Role '{0}' cannot be bound to dimension '{1}'. \nIt only accepts {2} dimensions.",[this.name,dimType.name,requireIsDiscrete?'discrete':'continuous'])}}},this)}}if(this.grouping){this.grouping.dimensions().each(function(dimSpec){if(dimSpec.type){dimType_removeVisualRole.call(dimSpec.type,this)}},this)}this.grouping=groupingSpec;if(this.grouping){if(this.isReversed){this.grouping=this.grouping.reversed()}this.grouping.dimensions().each(function(dimSpec){dimType_addVisualRole.call(dimSpec.type,this)},this)}return this}});
31   -def.type('pvc.visual.Scene').init(function(parent,keyArgs){if(pvc.debug>=4){this.id=def.nextId('scene')}this._renderId=0;this.renderState={};pv.Dom.Node.call(this,null);this.parent=parent||null;this.root=this;if(parent){var index=def.get(keyArgs,'index',null);parent.insertAt(this,index);this.root=parent.root}else{this._active=null;this._panel=def.get(keyArgs,'panel')||def.fail.argumentRequired('panel',"Argument is required on root scene.")}var group=def.get(keyArgs,'group',null),datum;if(group){datum=group._datums[0]}else{datum=def.get(keyArgs,'datum')}this.datum=datum||null;this.group=group;var parentAtoms;var source=(group||datum);this.atoms=source?source.atoms:(parentAtoms=(parent&&parent.atoms))?Object.create(parentAtoms):{};source=(datum||group);this.firstAtoms=source?source.atoms:(parentAtoms=(parent&&parent.firstAtoms))?Object.create(parentAtoms):this.atoms;if(!source){this.isNull=true}this.vars=parent?Object.create(parent.vars):{}}).add(pv.Dom.Node).add({isNull:false,datums:function(){return this.group?this.group.datums():(this.datum?def.query(this.datum):def.query())},format:function(mask){return def.format(mask,this._formatScope,this)},_formatScope:function(prop){if(prop.charAt(0)==='#'){prop=prop.substr(1).split('.');if(prop.length>2){throw def.error.operationInvalid("Scene format mask is invalid.")}var atom=this.atoms[prop[0]];if(atom){if(prop.length>1){switch(prop[1]){case'value':return atom.value;case'label':break;default:throw def.error.operationInvalid("Scene format mask is invalid.")}}return atom}return null}return def.getPath(this.vars,prop)},isRoot:function(){return this.root===this},panel:function(){return this.root._panel},chart:function(){return this.root._panel.chart},compatVersion:function(){return this.root._panel.compatVersion()},children:function(){if(!this.childNodes){return def.query()}return def.query(this.childNodes)},leafs:function(){function getFirstLeafFrom(leaf){while(leaf.childNodes.length){leaf=leaf.childNodes[0]}return leaf}var root=this;return def.query(function(nextIndex){if(!nextIndex){var item=getFirstLeafFrom(root);if(item===root){return 0}this.item=item;return 1}var next=this.item.nextSibling;if(next){this.item=next;return 1}var current=this.item;while((current!==root)&&(current=current.parentNode)){if((next=current.nextSibling)){this.item=getFirstLeafFrom(next);return 1}}return 0})},anyInteraction:function(){return(!!this.root._active||this.anySelected())},isActive:false,setActive:function(isActive){isActive=!!isActive;if(this.isActive!==isActive){rootScene_setActive.call(this.root,this.isActive?null:this)}},clearActive:function(){return rootScene_setActive.call(this.root,null)},anyActive:function(){return!!this.root._active},active:function(){return this.root._active},activeSeries:function(){var active=this.active();var seriesVar;return active&&(seriesVar=active.vars.series)&&seriesVar.value},isActiveSeries:function(){if(this.isActive){return true}var activeSeries;return(activeSeries=this.activeSeries())!=null&&(activeSeries===this.vars.series.value)},isSelected:function(){return this._selectedData().is},anySelected:function(){return this._selectedData().any},_selectedData:function(){return this.renderState._selectedData||(this.renderState._selectedData=this._createSelectedData())},_createSelectedData:function(){var any=this.panel().chart.data.owner.selectedCount()>0,isSelected=any&&this.datums().any(function(datum){return datum.isSelected});return{any:any,is:isSelected}}});function scene_renderId(renderId){if(this._renderId!==renderId){if(pvc.debug>=20){pvc.log({sceneId:this.id,oldRenderId:this._renderId,newRenderId:renderId})}this._renderId=renderId;this.renderState={}}}function rootScene_setActive(scene){var ownerScene;if(scene&&(ownerScene=scene.ownerScene)){scene=ownerScene}if(this._active!==scene){if(this._active){scene_setActive.call(this._active,false)}this._active=scene||null;if(this._active){scene_setActive.call(this._active,true)}return true}return false}function scene_setActive(isActive){isActive=!!isActive;if(this.isActive!==isActive){if(!isActive){delete this.isActive}else{this.isActive=true}}}
32   -pvc.visual.ValueLabelVar=function(value,label,rawValue){this.value=value;this.label=label;if(rawValue!==undefined){this.rawValue=rawValue}};def.set(pvc.visual.ValueLabelVar.prototype,'rawValue',undefined,'clone',function(){return new pvc.visual.ValueLabelVar(this.value,this.label,this.rawValue)},'toString',function(){var label=this.label||this.value;return typeof label!=='string'?(''+label):label});pvc.visual.ValueLabelVar.fromComplex=function(complex){return complex?new pvc.visual.ValueLabelVar(complex.value,complex.label,complex.rawValue):new pvc.visual.ValueLabelVar(null,"",null)};def.type('pvc.visual.RoleVarHelper').init(function(rootScene,role,keyArgs){var g;var hasPercentSubVar=def.get(keyArgs,'hasPercentSubVar',false);if(!def.get(keyArgs,'forceUnbound',false)){this.role=role;this.sourceRoleName=role.sourceRole&&role.sourceRole.name;g=this.grouping=role.grouping;if(g&&!g.isDiscrete()){var panel=rootScene.panel();this.rootContDim=panel.data.owner.dimensions(g.firstDimensionName());if(hasPercentSubVar){this.percentFormatter=panel.chart.options.percentValueFormat}}}if(!g){var roleVar=rootScene.vars[role.name]=new pvc.visual.ValueLabelVar(null,"");if(hasPercentSubVar){roleVar.percent=new pvc.visual.ValueLabelVar(null,"")}}}).add({isBound:function(){return!!this.grouping},onNewScene:function(scene,isLeaf){if(!this.grouping){return}var roleName=this.role.name;if(scene.vars[roleName]){return}var sourceName=this.sourceRoleName;if(sourceName){var sourceVar=def.getOwn(scene.vars,sourceName);if(sourceVar){scene.vars[roleName]=sourceVar.clone();return}}if(isLeaf){var roleVar;var rootContDim=this.rootContDim;if(!rootContDim){var firstDatum=scene.datum;if(firstDatum&&!firstDatum.isNull){var view=this.grouping.view(firstDatum);roleVar=new pvc.visual.ValueLabelVar(view.value,view.label,view.rawValue)}}else{var group=scene.group;var singleDatum=group?group.singleDatum():scene.datum;if(singleDatum){if(!singleDatum.isNull){roleVar=Object.create(singleDatum.atoms[rootContDim.name])}}else if(group){var valueDim=group.dimensions(rootContDim.name);var value=valueDim.sum({visible:true,zeroIfNone:false});var label=rootContDim.format(value);roleVar=new pvc.visual.ValueLabelVar(value,label,value);if(this.percentFormatter){if(value==null){roleVar.percent=new pvc.visual.ValueLabelVar(value,label)}else{var valuePct=valueDim.percentOverParent({visible:true});roleVar.percent=new pvc.visual.ValueLabelVar(valuePct,this.percentFormatter.call(null,valuePct))}}}}scene.vars[roleName]=roleVar||new pvc.visual.ValueLabelVar(null,"")}}});
33   -(function(){pv.Mark.prototype.getSign=function(){return this.sign||createBasic(this)};pv.Mark.prototype.getScene=function(){return this.getSign().scene};function createBasic(pvMark){var as=getAncestorSign(pvMark)||def.assert("There must exist an ancestor sign");var bs=new pvc.visual.BasicSign(as.panel,pvMark);var i;var s=pvMark.scene;if(s&&(i=pvMark.index)!=null&&i>=0){bs._buildInstance(pvMark,s[i],true)}return bs}function getAncestorSign(pvMark){var sign;do{pvMark=pvMark.parent}while(pvMark&&!(sign=pvMark.sign)&&(!pvMark.proto||!(sign=pvMark.proto.sign)));return sign}def.type('pvc.visual.BasicSign').init(function(panel,pvMark){this.chart=panel.chart;this.panel=panel;this.pvMark=pvMark;!pvMark.sign||def.assert("Mark already has an attached Sign.");pvMark.sign=this;pvMark.__buildInstance=pvMark.buildInstance;pvMark.buildInstance=this._dispatchBuildInstance}).add({localProperty:function(name,type){this.pvMark.localProperty(name,type);return this},lock:function(name,value){return this.lockMark(name,this._bindWhenFun(value))},optional:function(name,value,tag){return this.optionalMark(name,this._bindWhenFun(value),tag)},lockMark:function(name,value){this.pvMark.lock(name,value);return this},optionalMark:function(name,value,tag){this.pvMark[name](value,tag);return this},delegate:function(dv,tag){return this.pvMark.delegate(dv,tag)},delegateExtension:function(dv){return this.pvMark.delegate(dv,pvc.extensionTag)},hasDelegate:function(tag){return this.pvMark.hasDelegate(tag)},_bindWhenFun:function(value){if(typeof value==='function'){return function(){var sign=this.getSign();return value.apply(sign,arguments)}}return value},_lockDynamic:function(name,method){var me=this;return this.lockMark(name,function(){var sign=this.getSign();var m=sign[method]||me[method]||def.assert("No method with name '"+method+"' is defined");return m.apply(sign,arguments)})},_dispatchBuildInstance:function(instance){this.sign._buildInstance(this,instance)},_buildInstance:function(mark,instance,lateCall){var scene=instance.data;var index=scene?scene.childIndex():0;this.pvInstance=instance;this.scene=scene;this.index=index<0?0:index;scene_renderId.call(scene,mark.renderId());this.state={};if(!lateCall){mark.__buildInstance.call(mark,instance)}}})}());
34   -def.type('pvc.visual.Sign',pvc.visual.BasicSign).init(function(panel,pvMark,keyArgs){this.base(panel,pvMark,keyArgs);this.bits=0;var extensionIds=def.get(keyArgs,'extensionId');if(extensionIds!=null){this.extensionAbsIds=def.array.to(panel._makeExtensionAbsId(extensionIds))}this.isActiveSeriesAware=def.get(keyArgs,'activeSeriesAware',true)&&!!this.chart.visualRoles('series',{assertExists:false});var wrapper=def.get(keyArgs,'wrapper');if(!wrapper){wrapper=function(f){return function(scene){return f.call(panel._getContext(pvMark),scene)}}}pvMark.wrapper(wrapper);if(!def.get(keyArgs,'freeColor',true)){this._bindProperty('fillStyle','fillColor','color')._bindProperty('strokeStyle','strokeColor','color')}}).postInit(function(panel,pvMark,keyArgs){panel._addSign(this);this._addInteractive(keyArgs)}).add({property:function(name){var upperName=def.firstUpperCase(name);var baseName='base'+upperName;var defName='default'+upperName;var normalName='normal'+upperName;var interName='interactive'+upperName;var methods={};methods[name]=function(arg){delete this._finished;var value;this._arg=arg;try{value=this[baseName](arg);if(value==null){return null}if(this.hasOwnProperty('_finished')){return value}if(this.showsInteraction()&&this.scene.anyInteraction()){value=this[interName](value,arg)}else{value=this[normalName](value,arg)}}finally{delete this._arg}return value};methods[baseName]=function(arg){return this.delegateExtension()};methods[defName]=function(arg){return};methods[normalName]=function(value,arg){return value};methods[interName]=function(value,arg){return value};this.constructor.add(methods);return this},finished:function(value){this._finished=true;return value},applyExtensions:function(){if(!this._extended){this._extended=true;var extensionAbsIds=this.extensionAbsIds;if(extensionAbsIds){extensionAbsIds.forEach(function(extensionAbsId){this.panel.extendAbs(this.pvMark,extensionAbsId)},this)}}return this},intercept:function(name,fun){return this._intercept(name,fun.bind(this))},lockDimensions:function(){this.pvMark.lock('left').lock('right').lock('top').lock('bottom').lock('width').lock('height');return this},_extensionKeyArgs:{tag:pvc.extensionTag},_bindProperty:function(pvName,prop,realProp){var me=this;if(!realProp){realProp=prop}var defaultPropName="default"+def.firstUpperCase(realProp);if(def.fun.is(this[defaultPropName])){if(!this.pvMark.hasDelegateValue(pvName,pvc.extensionTag)){var defaultMethodCaller=function(){return me[defaultPropName](me._arg)};this.pvMark.intercept(pvName,defaultMethodCaller,this._extensionKeyArgs)}}function mainMethodCaller(){return me[prop]()}return this._intercept(pvName,mainMethodCaller)},_intercept:function(name,fun){var mark=this.pvMark;var extensionAbsIds=this.extensionAbsIds;if(extensionAbsIds){def.query(extensionAbsIds).select(function(extensionAbsId){return this.panel._getExtensionAbs(extensionAbsId,name)},this).where(def.notUndef).each(function(extValue){extValue=mark.wrap(extValue,name);mark.intercept(name,extValue,this._extensionKeyArgs)},this)}(mark._intercepted||(mark._intercepted={}))[name]=true;mark.intercept(name,fun);return this}}).prototype.property('color').constructor.add({_bitShowsActivity:2,_bitShowsSelection:4,_bitShowsInteraction:4|2,_bitShowsTooltip:8,_bitSelectable:16,_bitHoverable:32,_bitClickable:64,_bitDoubleClickable:128,showsInteraction:function(){return(this.bits&this._bitShowsInteraction)!==0},showsActivity:function(){return(this.bits&this._bitShowsActivity)!==0},showsSelection:function(){return(this.bits&this._bitShowsSelection)!==0},showsTooltip:function(){return(this.bits&this._bitShowsTooltip)!==0},isSelectable:function(){return(this.bits&this._bitSelectable)!==0},isHoverable:function(){return(this.bits&this._bitHoverable)!==0},isClickable:function(){return(this.bits&this._bitClickable)!==0},isDoubleClickable:function(){return(this.bits&this._bitDoubleClickable)!==0},extensionAbsIds:null,_addInteractive:function(keyArgs){var panel=this.panel,pvMark=this.pvMark,chart=this.chart,options=chart.options;var bits=this.bits;bits|=this._bitShowsInteraction;if(chart._tooltipEnabled&&!def.get(keyArgs,'noTooltip')){bits|=this._bitShowsTooltip;this.panel._addPropTooltip(pvMark,def.get(keyArgs,'tooltipArgs'))}var clickSelectable=false;var clickable=false;if(options.selectable||options.hoverable){if(options.selectable&&!def.get(keyArgs,'noSelect')){bits|=this._bitSelectable;clickSelectable=!def.get(keyArgs,'noClickSelect')&&chart._canSelectWithClick()}if(options.hoverable&&!def.get(keyArgs,'noHover')){bits|=this._bitHoverable;panel._addPropHoverable(pvMark)}}var showsInteraction=def.get(keyArgs,'showsInteraction');if(showsInteraction!=null){if(showsInteraction){bits|=this._bitShowsInteraction}else{bits&=~this._bitShowsInteraction}}var showsActivity=def.get(keyArgs,'showsActivity');if(showsActivity!=null){if(showsActivity){bits|=this._bitShowsActivity}else{bits&=~this._bitShowsActivity}}var showsSelection=def.get(keyArgs,'showsSelection');if(showsSelection!=null){if(showsSelection){bits|=this._bitShowsSelection}else{bits&=~this._bitShowsSelection}}if(!def.get(keyArgs,'noClick')&&panel._isClickable()){bits|=this._bitClickable;clickable=true}if(clickSelectable||clickable){panel._addPropClick(pvMark)}if(!def.get(keyArgs,'noDoubleClick')&&panel._isDoubleClickable()){bits|=this._bitDoubleClickable;panel._addPropDoubleClick(pvMark)}this.bits=bits},fillColor:function(){return this.color('fill')},strokeColor:function(){return this.color('stroke')},defaultColor:function(){return this.defaultColorSceneScale()(this.scene)},dimColor:function(color){return pvc.toGrayScale(color,-0.3,null,null)},_initDefaultColorSceneScale:function(){var colorAxis=this.panel.axes.color;return colorAxis?colorAxis.sceneScale({nullToZero:false}):def.fun.constant(pvc.defaultColor)},defaultColorSceneScale:function(){return this._defaultColorSceneScale||(this._defaultColorSceneScale=this._initDefaultColorSceneScale())}});
35   -def.type('pvc.visual.Panel',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvPanel=def.get(keyArgs,'panel');if(!pvPanel){var pvPanelType=def.get(keyArgs,'panelType')||pv.Panel;pvPanel=protoMark.add(pvPanelType)}this.base(panel,pvPanel,keyArgs)}).add({_addInteractive:function(keyArgs){var t=true;keyArgs=def.setDefaults(keyArgs,'noSelect',t,'noHover',t,'noTooltip',t,'noClick',t,'noDoubleClick',t);this.base(keyArgs)}});
36   -def.type('pvc.visual.Label',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Label);this.base(panel,pvMark,keyArgs)}).add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noSelect',true,'noHover',true,'noTooltip',true,'noClick',true,'noDoubleClick',true);this.base(keyArgs)},defaultColor:function(type){return pv.Color.names.black}});
37   -def.type('pvc.visual.Dot',pvc.visual.Sign).init(function(panel,parentMark,keyArgs){var pvMark=parentMark.add(pv.Dot);var protoMark=def.get(keyArgs,'proto');if(protoMark){pvMark.extend(protoMark)}keyArgs=def.setDefaults(keyArgs,'freeColor',false);this.base(panel,pvMark,keyArgs);if(!def.get(keyArgs,'freePosition',false)){var basePosProp=panel.isOrientationVertical()?"left":"bottom",orthoPosProp=panel.anchorOrtho(basePosProp);this._lockDynamic(orthoPosProp,'y')._lockDynamic(basePosProp,'x')}this._bindProperty('shape','shape')._bindProperty('shapeRadius','radius')._bindProperty('shapeSize','size').optional('strokeDasharray',undefined).optional('lineWidth',1.5)}).prototype.property('size').constructor.add({y:function(){return 0},x:function(){return 0},shape:function(){return this.delegateExtension()},radius:function(){this.state.radius=this.delegateExtension()},baseSize:function(){var radius=this.state.radius;if(radius!=null){return radius*radius}return this.base()},defaultSize:function(){return 12},interactiveSize:function(size){if(this.scene.isActive){return Math.max(size,5)*2.5}return size},interactiveColor:function(color,type){var scene=this.scene;if(scene.isActive){if(type==='stroke'){return color.brighter(1)}}else if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return color.alpha(0.8)}else{switch(type){case'fill':return this.dimColor(color,type);case'stroke':return color.alpha(0.45)}}}return this.base(color,type)}});
38   -def.type('pvc.visual.Line',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Line);this.base(panel,pvMark,keyArgs);this.lock('segmented','smart').lock('antialias',true);if(!def.get(keyArgs,'freePosition',false)){var basePosProp=panel.isOrientationVertical()?"left":"bottom",orthoPosProp=panel.anchorOrtho(basePosProp);this._lockDynamic(orthoPosProp,'y')._lockDynamic(basePosProp,'x')}this._bindProperty('strokeStyle','strokeColor','color')._bindProperty('lineWidth','strokeWidth')}).prototype.property('strokeWidth').constructor.add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noTooltip',true);this.base(keyArgs)},y:function(){return 0},x:function(){return 0},defaultStrokeWidth:function(){return 1.5},interactiveStrokeWidth:function(strokeWidth){if(this.isActiveSeriesAware&&this.scene.isActiveSeries()){return Math.max(1,strokeWidth)*2.5}return strokeWidth},interactiveColor:function(color,type){var scene=this.scene;if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return pv.Color.names.darkgray.darker().darker()}if(type==='stroke'){return this.dimColor(color,type)}}return this.base(color,type)}});
39   -def.type('pvc.visual.Area',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Area);if(!keyArgs){keyArgs={}}keyArgs.freeColor=true;this.base(panel,pvMark,keyArgs);var antialias=def.get(keyArgs,'antialias',true);this.lock('segmented','smart').lock('antialias',antialias);if(!def.get(keyArgs,'freePosition',false)){var basePosProp=panel.isOrientationVertical()?"left":"bottom",orthoPosProp=panel.anchorOrtho(basePosProp),orthoLenProp=panel.anchorOrthoLength(orthoPosProp);this._lockDynamic(basePosProp,'x')._lockDynamic(orthoPosProp,'y')._lockDynamic(orthoLenProp,'dy')}this._bindProperty('fillStyle','fillColor','color');this.lock('strokeStyle',null).lock('lineWidth',0)}).add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noTooltip',true);this.base(keyArgs)},x:function(){return 0},y:function(){return 0},dy:function(){return 0},interactiveColor:function(color,type){if(type==='fill'&&this.showsSelection()&&this.scene.anySelected()&&!this.scene.isSelected()){return this.dimColor(color,type)}return this.base(color,type)}});
40   -def.type('pvc.visual.Bar',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Bar);keyArgs=def.setDefaults(keyArgs,'freeColor',false);this.base(panel,pvMark,keyArgs);this.normalStroke=def.get(keyArgs,'normalStroke',false);this._bindProperty('lineWidth','strokeWidth')}).prototype.property('strokeWidth').constructor.add({normalColor:function(color,type){if(type==='stroke'&&!this.normalStroke){return null}return color},interactiveColor:function(color,type){var scene=this.scene;if(type==='stroke'){if(scene.isActive){return color.brighter(1.3).alpha(0.7)}if(!this.normalStroke){return null}if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return pv.Color.names.darkgray.darker().darker()}return this.dimColor(color,type)}if(this.isActiveSeriesAware&&scene.isActiveSeries()){return color.brighter(1).alpha(0.7)}}else if(type==='fill'){if(scene.isActive){return color.brighter(0.2).alpha(0.8)}if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return pv.Color.names.darkgray.darker(2).alpha(0.8)}return this.dimColor(color,type)}if(this.isActiveSeriesAware&&scene.isActiveSeries()){return color.brighter(0.2).alpha(0.8)}}return this.base(color,type)},defaultStrokeWidth:function(){return 0.5},interactiveStrokeWidth:function(strokeWidth){if(this.scene.isActive){return Math.max(1,strokeWidth)*1.3}return strokeWidth}});
41   -pv.PieSlice=function(){pv.Wedge.call(this)};pv.PieSlice.prototype=pv.extend(pv.Wedge);pv.PieSlice.prototype.midAngle=function(){var instance=this.instance();return instance.startAngle+(instance.angle/2)};def.type('pvc.visual.PieSlice',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.PieSlice);keyArgs=def.setDefaults(keyArgs,'freeColor',false);this.base(panel,pvMark,keyArgs);this._activeOffsetRadius=def.get(keyArgs,'activeOffsetRadius',0);this._center=def.get(keyArgs,'center');this.optional('lineWidth',0.6)._bindProperty('angle','angle')._lockDynamic('bottom','y')._lockDynamic('left','x').lock('top',null).lock('right',null)}).prototype.property('offsetRadius').constructor.add({angle:function(){return 0},x:function(){return this._center.x+this._offsetSlice('cos')},y:function(){return this._center.y-this._offsetSlice('sin')},_offsetSlice:function(fun){var offset=this._getOffsetRadius();if(offset!==0){offset=offset*Math[fun](this.pvMark.midAngle())}return offset},_getOffsetRadius:function(){var offset=this.state.offsetRadius;if(offset==null){offset=(this.state.offsetRadius=this.offsetRadius()||0)}return offset},defaultColor:function(type){if(type==='stroke'){return null}return this.base(type)},interactiveColor:function(color,type){var scene=this.scene;if(scene.isActive){switch(type){case'fill':return color.brighter(0.2).alpha(0.8);case'stroke':return color.brighter(1.3).alpha(0.7)}}else if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(type==='fill'){return this.dimColor(color,type)}}return this.base(color,type)},baseOffsetRadius:function(){return 0},interactiveOffsetRadius:function(offsetRadius){if(this.scene.isActive){return offsetRadius+this._activeOffsetRadius}return offsetRadius}});
42   -def.type('pvc.visual.Rule',pvc.visual.Sign).init(function(panel,parentMark,keyArgs){var pvMark=parentMark.add(pv.Rule);var protoMark=def.get(keyArgs,'proto');if(protoMark){pvMark.extend(protoMark)}this.base(panel,pvMark,keyArgs);if(!def.get(keyArgs,'freeStyle')){this._bindProperty('strokeStyle','strokeColor','color')._bindProperty('lineWidth','strokeWidth')}}).prototype.property('strokeWidth').constructor.add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noHover',true,'noSelect',true,'noTooltip',true,'noClick',true,'noDoubleClick',true);this.base(keyArgs)},defaultStrokeWidth:function(){return 1},interactiveStrokeWidth:function(strokeWidth){if(this.scene.isActive){return Math.max(1,strokeWidth)*2.2}return strokeWidth},interactiveColor:function(color,type){var scene=this.scene;if(!scene.isActive&&this.showsSelection()&&scene.anySelected()&&scene.datum&&!scene.isSelected()){return this.dimColor(color,type)}return this.base(color,type)}});
43   -def.type('pvc.visual.Context').init(function(panel,mark,event){this.chart=panel.chart;this.panel=panel;visualContext_update.call(this,mark,event)}).add({isPinned:false,pin:function(){this.isPinned=true;return this},finished:function(v){return this.sign.finished(v)},delegate:function(dv){return this.sign.delegate(dv)},getV1Series:function(){var s;var series=this.scene.firstAtoms&&(s=this.scene.firstAtoms[this.panel._getV1DimName('series')])&&s.rawValue;if(series==null){series='Series'}return series},getV1Category:function(){var c;return this.scene.firstAtoms&&(c=this.scene.firstAtoms[this.panel._getV1DimName('category')])&&c.rawValue},getV1Value:function(){var v;return this.scene.firstAtoms&&(v=this.scene.firstAtoms[this.panel._getV1DimName('value')])&&v.value},getV1Datum:function(){return this.panel._getV1Datum(this.scene)}});if(Object.defineProperty){try{Object.defineProperty(pvc.visual.Context.prototype,'parent',{get:function(){throw def.error.operationInvalid("The 'this.parent.index' idiom has no equivalent in this version. Please try 'this.pvMark.parent.index'.")}})}catch(ex){}}function visualContext_update(mark,event){this.event=event||null;this.pvMark=mark;var scene;if(mark){var sign=this.sign=mark.sign||null;if(sign){scene=mark.instance().data}if(!scene){this.index=null;scene=new pvc.visual.Scene(null,{panel:this.panel})}else{this.index=scene.childIndex()}}else{this.sign=null;this.index=null;scene=new pvc.visual.Scene(null,{panel:this.panel,group:this.chart.root.data})}this.scene=scene}
44   -def.type('pvc.visual.OptionsBase').init(function(chart,type,index,keyArgs){this.chart=chart;this.type=type;this.index=index==null?0:index;this.name=def.get(keyArgs,'name');this.id=this._buildId();this.optionId=this._buildOptionId();var rs=this._resolvers=[];this._registerResolversFull(rs,keyArgs);this.option=pvc.options(this._getOptionsDefinition(),this)}).add({_buildId:function(){return pvc.buildIndexedId(this.type,this.index)},_buildOptionId:function(){return this.id},_getOptionsDefinition:def.method({isAbstract:true}),_chartOption:function(name){return this.chart.options[name]},_registerResolversFull:function(rs,keyArgs){var fixed=def.get(keyArgs,'fixed');if(fixed){this._fixed=fixed;rs.push(pvc.options.specify(function(optionInfo){return fixed[optionInfo.name]}))}this._registerResolversNormal(rs,keyArgs);var defaults=def.get(keyArgs,'defaults');if(defaults){this._defaults=defaults}rs.push(this._resolveDefault)},_registerResolversNormal:function(rs,keyArgs){if(this.chart.compatVersion()<=1){rs.push(this._resolveByV1OnlyLogic)}if(this.name){rs.push(pvc.options.specify(function(optionInfo){return this._chartOption(this.name+def.firstUpperCase(optionInfo.name))}))}rs.push(this._resolveByOptionId);if(def.get(keyArgs,'byNaked',!this.index)){rs.push(this._resolveByNaked)}},_resolveFull:function(optionInfo){var rs=this._resolvers;for(var i=0,L=rs.length;i<L;i++){if(rs[i].call(this,optionInfo)){return true}}return false},_resolveFixed:pvc.options.specify(function(optionInfo){if(this._fixed){return this._fixed[optionInfo.name]}}),_resolveByV1OnlyLogic:function(optionInfo){var data=optionInfo.data;var resolverV1;if(data&&(resolverV1=data.resolveV1)){return resolverV1.call(this,optionInfo)}},_resolveByName:pvc.options.specify(function(optionInfo){if(this.name){return this._chartOption(this.name+def.firstUpperCase(optionInfo.name))}}),_resolveByOptionId:pvc.options.specify(function(optionInfo){return this._chartOption(this.optionId+def.firstUpperCase(optionInfo.name))}),_resolveByNaked:pvc.options.specify(function(optionInfo){if(!this.index){return this._chartOption(def.firstLowerCase(optionInfo.name))}}),_resolveDefault:function(optionInfo){var data=optionInfo.data;var resolverDefault;if(data&&(resolverDefault=data.resolveDefault)){if(resolverDefault.call(this,optionInfo)){return true}}if(this._defaults){var value=this._defaults[optionInfo.name];if(value!==undefined){optionInfo.defaultValue(value);return true}}},_specifyChartOption:function(optionInfo,asName){var value=this._chartOption(asName);if(value!=null){optionInfo.specify(value);return true}}});
45   -var axis_optionsDef;def.scope(function(){def.type('pvc.visual.Axis',pvc.visual.OptionsBase).init(function(chart,type,index,keyArgs){this.base(chart,type,index,keyArgs);chart._addAxis(this)}).add({isVisible:true,scaleTreatsNullAs:function(){return'null'},scaleNullRangeValue:function(){return null},scaleUsesAbs:function(){return false},bind:function(dataCells){dataCells||def.fail.argumentRequired('dataCells');!this.dataCells||def.fail.operationInvalid('Axis is already bound.');this.dataCells=def.array.to(dataCells);this.dataCell=this.dataCells[0];this.role=this.dataCell&&this.dataCell.role;this.scaleType=groupingScaleType(this.role.grouping);this._checkRoleCompatibility();return this},isDiscrete:function(){return this.role&&this.role.isDiscrete()},isBound:function(){return!!this.role},setScale:function(scale,noWrap){this.role||def.fail.operationInvalid('Axis is unbound.');this.scale=scale?(noWrap?scale:this._wrapScale(scale)):null;return this},_wrapScale:function(scale){scale.type=this.scaleType;var by;if(scale.type!=='discrete'){var useAbs=this.scaleUsesAbs();var nullAs=this.scaleTreatsNullAs();if(nullAs&&nullAs!=='null'){var nullValue=nullAs==='min'?scale.domain()[0]:0;if(useAbs){by=function(v){return scale(v==null?nullValue:(v<0?-v:v))}}else{by=function(v){return scale(v==null?nullValue:v)}}}else{var nullRangeValue=this.scaleNullRangeValue();if(useAbs){by=function(v){return v==null?nullRangeValue:scale(v<0?-v:v)}}else{by=function(v){return v==null?nullRangeValue:scale(v)}}}}else{by=function(v){return scale(v==null?'':v)}}return def.copy(by,scale)},sceneScale:function(keyArgs){var varName=def.get(keyArgs,'sceneVarName')||this.role.name,grouping=this.role.grouping;if(grouping.isSingleDimension&&grouping.firstDimensionValueType()===Number){var scale=this.scale,nullToZero=def.get(keyArgs,'nullToZero',true);var by=function(scene){var value=scene.vars[varName].value;if(value==null){if(!nullToZero){return value}value=0}return scale(value)};def.copy(by,scale);return by}return this.scale.by1(function(scene){return scene.vars[varName].value})},_checkRoleCompatibility:function(){var L=this.dataCells.length;if(L>1){var grouping=this.role.grouping,i;if(this.scaleType==='discrete'){for(i=1;i<L;i++){if(grouping.id!==this.dataCells[i].role.grouping.id){throw def.error.operationInvalid("Discrete roles on the same axis must have equal groupings.")}}}else{if(!grouping.firstDimensionType().isComparable){throw def.error.operationInvalid("Continuous roles on the same axis must have 'comparable' groupings.")}for(i=1;i<L;i++){if(this.scaleType!==groupingScaleType(this.dataCells[i].role.grouping)){throw def.error.operationInvalid("Continuous roles on the same axis must have scales of the same type.")}}}}},_getOptionsDefinition:function(){return axis_optionsDef}});function groupingScaleType(grouping){return grouping.isDiscrete()?'discrete':(grouping.firstDimensionValueType()===Date?'timeSeries':'numeric')}axis_optionsDef={}});
46   -def.scope(function(){var $VA=pvc.visual.Axis;def.type('pvc.visual.CartesianAxis',$VA).init(function(chart,type,index,keyArgs){var options=chart.options;this.orientation=$VCA.getOrientation(type,options.orientation);this.orientedId=$VCA.getOrientedId(this.orientation,index);if(chart._allowV1SecondAxis&&index===1){this.v1SecondOrientedId='second'+this.orientation.toUpperCase()}this.base(chart,type,index,keyArgs);var extensions=this.extensionPrefixes=[this.id+'Axis',this.orientedId+'Axis'];if(this.v1SecondOrientedId){extensions.push(this.v1SecondOrientedId+'Axis')}this._extPrefAxisPosition=extensions.length;extensions.push('axis')}).add({bind:function(dataCells){this.base(dataCells);this._syncExtensionPrefixes();return this},_syncExtensionPrefixes:function(){var extensions=this.extensionPrefixes;extensions.length=this._extPrefAxisPosition;var st=this.scaleType;if(st){extensions.push(st+'Axis');if(st!=='discrete'){extensions.push('continuousAxis')}}extensions.push('axis')},setScale:function(scale){var oldScale=this.scale;this.base(scale);if(oldScale){delete this.domain;delete this.ticks;delete this._roundingPaddings}if(scale){if(!scale.isNull&&this.scaleType!=='discrete'){this.domain=scale.domain();this.domain.minLocked=!!scale.minLocked;this.domain.maxLocked=!!scale.maxLocked;if(this.scaleType==='numeric'){var roundMode=this.option('DomainRoundMode');if(roundMode==='nice'){scale.nice()}var tickFormatter=this.option('TickFormatter');if(tickFormatter){scale.tickFormatter(tickFormatter)}}}}return this},setTicks:function(ticks){var scale=this.scale;(scale&&!scale.isNull)||def.fail.operationInvalid("Scale must be set and non-null.");this.ticks=ticks;if(scale.type==='numeric'&&this.option('DomainRoundMode')==='tick'){delete this._roundingPaddings;var tickCount=ticks&&ticks.length;if(tickCount){this.scale.domain(ticks[0],ticks[tickCount-1])}else{this.scale.domain(this.domain[0],this.domain[1])}}},setScaleRange:function(size){var scale=this.scale;scale.min=0;scale.max=size;scale.size=size;if(scale.type==='discrete'){if(scale.domain().length>0){var bandRatio=this.chart.options.panelSizeRatio||0.8;scale.splitBandedCenter(scale.min,scale.max,bandRatio)}}else{scale.range(scale.min,scale.max)}if(pvc.debug>4){this.chart._log("Axis "+this.id+" setRange: "+pvc.stringify(scale.range()))}return scale},getScaleRoundingPaddings:function(){var roundingPaddings=this._roundingPaddings;if(!roundingPaddings){roundingPaddings={begin:0,end:0,beginLocked:false,endLocked:false};var scale=this.scale;if(scale&&!scale.isNull&&scale.type!=='discrete'){var originalDomain=this.domain;roundingPaddings.beginLocked=originalDomain.minLocked;roundingPaddings.endLocked=originalDomain.maxLocked;if(scale.type==='numeric'&&this.option('DomainRoundMode')!=='none'){var currDomain=scale.domain();var origDomain=this.domain||def.assert("Original domain must be set");var currLength=currDomain[1]-currDomain[0];if(currLength){var diff=origDomain[0]-currDomain[0];if(diff>0){roundingPaddings.begin=diff/currLength}diff=currDomain[1]-origDomain[1];if(diff>0){roundingPaddings.end=diff/currLength}}}}this._roundingPaddings=roundingPaddings}return roundingPaddings},_getOptionsDefinition:function(){return cartAxis_optionsDef},_buildOptionId:function(){return this.id+"Axis"},_registerResolversNormal:function(rs,keyArgs){if(this.chart.compatVersion()<=1){rs.push(this._resolveByV1OnlyLogic)}rs.push(this._resolveByOptionId,this._resolveByOrientedId);if(this.index===1){rs.push(this._resolveByV1OptionId)}rs.push(this._resolveByScaleType,this._resolveByCommonId)},_resolveByOrientedId:pvc.options.specify(function(optionInfo){return this._chartOption(this.orientedId+"Axis"+optionInfo.name)}),_resolveByV1OptionId:pvc.options.specify(function(optionInfo){return this._chartOption('secondAxis'+optionInfo.name)}),_resolveByScaleType:pvc.options.specify(function(optionInfo){var st=this.scaleType;if(st){var name=optionInfo.name;var value=this._chartOption(st+'Axis'+name);if(value===undefined&&st!=='discrete'){value=this._chartOption('continuousAxis'+name)}return value}}),_resolveByCommonId:pvc.options.specify(function(optionInfo){return this._chartOption('axis'+optionInfo.name)})});var $VCA=pvc.visual.CartesianAxis;$VCA.getOrientation=function(type,chartOrientation){return((type==='base')===(chartOrientation==='vertical'))?'x':'y'};$VCA.getOrientedId=function(orientation,index){if(index===0){return orientation}return orientation+(index+1)};var fixedMinMaxSpec={resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(!this.index&&this.type==='ortho'){this._specifyChartOption(optionInfo,this.id+optionInfo.name)}return true}},cast:pvc.castNumber};function castDomainScope(scope,axis){return pvc.parseDomainScope(scope,axis.orientation)}function castAxisPosition(side){if(side){if(def.hasOwn(pvc.Sides.namesSet,side)){var mapAlign=pvc.BasePanel[this.orientation==='y'?'horizontalAlign':'verticalAlign2'];return mapAlign[side]}if(pvc.debug>=2){pvc.log(def.format("Invalid axis position value '{0}'.",[side]))}}return this.orientation==='x'?'bottom':'left'}var normalV1Data={resolveV1:function(optionInfo){if(!this.index){if(this._resolveByOrientedId(optionInfo)){return true}}else if(this._resolveByV1OptionId(optionInfo)){return true}this._resolveDefault(optionInfo);return true}};var defaultPosition=pvc.options.defaultValue(function(optionInfo){if(!this.typeIndex){return this.orientation==='x'?'bottom':'left'}var firstAxis=this.chart.axesByType[this.type].first;var position=firstAxis.option('Position');return pvc.BasePanel.oppositeAnchor[position]});function castSize(value){var position=this.option('Position');return pvc.Size.toOrtho(value,position)}function castTitleSize(value){var position=this.option('Position');return pvc.Size.to(value,{singleProp:pvc.BasePanel.orthogonalLength[position]})}var cartAxis_optionsDef=def.create(axis_optionsDef,{Visible:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(this.index<=1){var v1OptionId=this.index===0?def.firstUpperCase(this.orientation):'Second';this._specifyChartOption(optionInfo,'show'+v1OptionId+'Scale')}return true}},cast:Boolean,value:true},Composite:{resolve:function(optionInfo){if(this.index>0){optionInfo.specify(false);return true}return this._resolveFull(optionInfo)},data:{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'useCompositeAxis');return true}},cast:Boolean,value:false},Size:{resolve:'_resolveFull',data:normalV1Data,cast:castSize},SizeMax:{resolve:'_resolveFull',cast:castSize},Position:{resolve:'_resolveFull',data:{resolveV1:normalV1Data.resolveV1,resolveDefault:defaultPosition},cast:castAxisPosition},FixedMin:fixedMinMaxSpec,FixedMax:fixedMinMaxSpec,OriginIsZero:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){switch(this.index){case 0:this._specifyChartOption(optionInfo,'originIsZero');break;case 1:if(this.chart._allowV1SecondAxis){this._specifyChartOption(optionInfo,'secondAxisOriginIsZero')}break}return true}},cast:Boolean,value:true},DomainScope:{resolve:'_resolveFull',cast:castDomainScope,value:'global'},Offset:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){switch(this.index){case 0:this._specifyChartOption(optionInfo,'axisOffset');break;case 1:if(this.chart._allowV1SecondAxis){this._specifyChartOption(optionInfo,'secondAxisOffset');break}break}return true}},cast:pvc.castNumber},LabelSpacingMin:{resolve:'_resolveFull',cast:pvc.castNumber},OverlappedLabelsMode:{resolve:'_resolveFull',cast:pvc.parseOverlappedLabelsMode,value:'hide'},Grid:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(!this.index){this._specifyChartOption(optionInfo,this.orientation+'AxisFullGrid')}return true}},cast:Boolean,value:false},GridCrossesMargin:{resolve:'_resolveFull',cast:Boolean,value:true},EndLine:{resolve:'_resolveFull',cast:Boolean},ZeroLine:{resolve:'_resolveFull',cast:Boolean,value:true},RuleCrossesMargin:{resolve:'_resolveFull',cast:Boolean,value:true},Ticks:{resolve:'_resolveFull',cast:Boolean},DesiredTickCount:{resolve:'_resolveFull',data:{resolveV1:normalV1Data.resolveV1,resolveDefault:function(optionInfo){if(this.chart.compatVersion()<=1){optionInfo.defaultValue(5);return true}}},cast:pvc.castNumber},MinorTicks:{resolve:'_resolveFull',data:normalV1Data,cast:Boolean,value:true},TickFormatter:{resolve:'_resolveFull',cast:def.fun.as},DomainRoundMode:{resolve:'_resolveFull',data:{resolveV1:normalV1Data.resolveV1,resolveDefault:function(optionInfo){if(this.chart.compatVersion()<=1){optionInfo.defaultValue('none');return true}}},cast:pvc.parseDomainRoundingMode,value:'tick'},TickExponentMin:{resolve:'_resolveFull',cast:pvc.castNumber},TickExponentMax:{resolve:'_resolveFull',cast:pvc.castNumber},Title:{resolve:'_resolveFull',cast:String},TitleSize:{resolve:'_resolveFull',cast:castTitleSize},TitleSizeMax:{resolve:'_resolveFull',cast:castTitleSize},TitleFont:{resolve:'_resolveFull',cast:String},TitleMargins:{resolve:'_resolveFull',cast:pvc.Sides.as},TitlePaddings:{resolve:'_resolveFull',cast:pvc.Sides.as},TitleAlign:{resolve:'_resolveFull',cast:function castAlign(align){var position=this.option('Position');return pvc.parseAlign(position,align)}},Font:{resolve:'_resolveFull',cast:String},ClickAction:{resolve:'_resolveFull',data:normalV1Data},DoubleClickAction:{resolve:'_resolveFull',data:normalV1Data}})});
47   -def.type('pvc.visual.CartesianAxisRootScene',pvc.visual.Scene);
48   -def.type('pvc.visual.CartesianAxisTickScene',pvc.visual.Scene).init(function(parent,keyArgs){this.base(parent,keyArgs);this.vars.tick=new pvc.visual.ValueLabelVar(def.get(keyArgs,'tick'),def.get(keyArgs,'tickLabel'),def.get(keyArgs,'tickRaw'))});
49   -def.scope(function(){def.type('pvc.visual.CartesianFocusWindow',pvc.visual.OptionsBase).init(function(chart){this.base(chart,'focusWindow',0,{byNaked:false});var baseAxis=chart.axes.base;this.base=new pvc.visual.CartesianFocusWindowAxis(this,baseAxis)}).add({_getOptionsDefinition:function(){return focusWindow_optionsDef},_exportData:function(){return{base:def.copyProps(this.base,pvc.visual.CartesianFocusWindow.props)}},_importData:function(data){var baseData=data.base;this.base.option.specify({Begin:baseData.begin,End:baseData.end,Length:baseData.length})},_initFromOptions:function(){this.base._initFromOptions()},_onAxisChanged:function(axis){var changed=this.option('Changed');if(changed){changed.call(this.chart.basePanel._getContext())}}});var focusWindow_optionsDef=def.create(axis_optionsDef,{Changed:{resolve:'_resolveFull',cast:def.fun.as}});def.type('pvc.visual.CartesianFocusWindowAxis',pvc.visual.OptionsBase).init(function(fw,axis){this.window=fw;this.axis=axis;this.isDiscrete=axis.isDiscrete();this.base(axis.chart,'focusWindow'+def.firstUpperCase(axis.type),0,{byNaked:false})}).addStatic({props:['begin','end','length']}).add({_getOptionsDefinition:function(){return focusWindowAxis_optionsDef},_initFromOptions:function(){var o=this.option;this.set({begin:o('Begin'),end:o('End'),length:o('Length')})},set:function(keyArgs){var me=this;var render=def.get(keyArgs,'render');var select=def.get(keyArgs,'select',true);var b,e,l;keyArgs=me._readArgs(keyArgs);if(!keyArgs){if(this.begin!=null&&this.end!=null&&this.length!=null){return}}else{b=keyArgs.begin;e=keyArgs.end;l=keyArgs.length}var axis=me.axis;var scale=axis.scale;var isDiscrete=me.isDiscrete;var contCast=!isDiscrete?axis.role.firstDimensionType().cast:null;var domain=scale.domain();var a,L;if(isDiscrete){L=domain.length;var ib,ie,ia;if(b!=null){var nb=+b;if(!isNaN(nb)){if(nb===Infinity){ib=L-1;b=domain[ib]}else if(nb===-Infinity){ib=0;b=domain[ib]}}if(ib==null){ib=domain.indexOf(''+b);if(ib<0){ib=0;b=domain[ib]}}}if(e!=null){var ne=+e;if(!isNaN(ne)){if(ne===Infinity){ie=L-1;e=domain[ie]}else if(ne===-Infinity){ie=0;e=domain[ie]}}if(ie==null){ie=domain.indexOf(''+e);if(ie<0){ie=L-1;e=domain[ie]}}}if(l!=null){l=+l;if(isNaN(l)){l=null}else if(l<0&&(b!=null||e!=null)){a=b;ia=ib;b=e,ib=ie,e=a,ie=ia;l=-l}}if(b!=null){if(e!=null){if(ib>ie){a=b;ia=ib;b=e,ib=ie,e=a,ie=ia}l=ie-ib+1}else{if(l==null){l=L-ib}ie=ib+l-1;if(ie>L-1){ie=L-1;l=ie-ib+1}e=domain[ie]}}else{if(e!=null){if(l==null){l=ie}ib=ie-l+1;if(ib<0){ib=0;l=ie-ib+1}b=domain[ib]}else{if(l==null){l=Math.max(~~(L/3),1); }if(l>L){l=L;ib=0;ie=L-1}else{ia=~~(L/2); ib=ia-~~(l/2);ie=ib+l-1}b=domain[ib];e=domain[ie]}}}else{if(l!=null){l=+l;if(isNaN(l)){l=null}else if(l<0&&(b!=null||e!=null)){a=b;b=e,e=a;l=-l}}var min=domain[0];var max=domain[1];L=max-min;if(b!=null){if(b<min){b=min}if(b>max){b=max}}if(e!=null){if(e<min){e=min}if(e>max){e=max}}if(b!=null){if(e!=null){if(b>e){a=b;b=e,e=a}l=e-b}else{if(l==null){l=max-b}e=b+l;if(e>max){e=max;l=e-b}}}else{if(e!=null){if(l==null){l=e-min}b=e-l;if(b<min){b=min;l=e-b}}else{if(l==null){l=Math.max(~~(L/3),1); }if(l>L){l=L;b=min;e=max}else{a=~~(L/2); b=a-~~(l/2);e=(+b)+(+l)}}}b=contCast(b);e=contCast(e);l=contCast(l);var constraint=me.option('Constraint');if(constraint){var oper2={type:'new',target:'begin',value:b,length:l,length0:l,min:min,max:max,minView:min,maxView:max};constraint(oper2);b=contCast(oper2.value);l=contCast(oper2.length);e=contCast((+b)+(+l))}}me._set(b,e,l,select,render)},_updatePosition:function(pbeg,pend,select,render){var me=this;var axis=me.axis;var scale=axis.scale;var b,e,l;if(me.isDiscrete){var ib=scale.invertIndex(pbeg);var ie=scale.invertIndex(pend)-1;var domain=scale.domain();b=domain[ib];e=domain[ie];l=ie-ib+1}else{b=scale.invert(pbeg);e=scale.invert(pend);l=e-b}this._set(b,e,l,select,render)},_constraintPosition:function(oper){var me=this;var axis=me.axis;var scale=axis.scale;var constraint;if(me.isDiscrete){var index=Math.floor(scale.invertIndex(oper.point,true));if(index>=0){var r=scale.range();var L=scale.domain().length;var S=(r.max-r.min)/L;if(index>=L&&(oper.type==='new'||oper.type==='resize-begin')){index=L-1}oper.point=index*S}}else if((constraint=me.option('Constraint'))){var contCast=axis.role.firstDimensionType().cast;var v=contCast(scale.invert(oper.point));var sign=oper.target==='begin'?1:-1;var pother=oper.point+sign*oper.length;var vother=contCast(scale.invert(pother));var vlength=contCast(sign*(vother-v));var vlength0,pother0,vother0;if(oper.length===oper.length0){vlength0=vlength}else{pother0=oper.point+sign*oper.length0;vother0=contCast(scale.invert(pother0));vlength0=sign*(vother0-v)}var vmin=contCast(scale.invert(oper.min));var vmax=contCast(scale.invert(oper.max));var oper2={type:oper.type,target:oper.target,value:v,length:vlength,length0:vlength0,min:vmin,max:vmax,minView:contCast(scale.invert(oper.minView)),maxView:contCast(scale.invert(oper.maxView))};constraint(oper2);if(+oper2.value!==+v){v=oper2.value;oper.point=scale(v)}var vlength2=oper2.length;if(+vlength2!==+vlength){if(+vlength2===+vlength0){oper.length=oper.length0}else{var vother2=(+v)+sign*(+vlength2);var pother2=scale(vother2);oper.length=pother2-sign*oper.point}}if(+oper2.min!==+vmin){oper.min=scale(oper2.min)}if(+oper2.max!==+vmax){oper.max=scale(oper2.max)}}},_compare:function(a,b){return this.isDiscrete?((''+a)===(''+b)):((+a)===(+b))},_set:function(b,e,l,select,render){var me=this;var changed=false;if(!me._compare(b,me.begin)){me.begin=b;changed=true}if(!me._compare(e,me.end)){me.end=e;changed=true}if(!me._compare(l,me.length)){me.length=l;changed=true}if(changed){me.window._onAxisChanged(this)}if(select){me._updateSelection({render:render})}return changed},_readArgs:function(keyArgs){if(keyArgs){var out={};var any=0;var read=function(p){var v=keyArgs[p];if(v!=null){any=true}else{v=this[p]}out[p]=v};pvc.visual.CartesianFocusWindowAxis.props.forEach(read,this);if(any){return out}}},_updateSelection:function(keyArgs){var me=this;var selectDatums;var axis=me.axis;var isDiscrete=axis.isDiscrete();var chart=axis.chart;var dataCell=axis.dataCell;var role=dataCell.role;var partData=chart.partData(dataCell.dataPartValue,{visible:true});var domainData;if(isDiscrete){domainData=partData.flattenBy(role);var dataBegin=domainData._childrenByKey[me.begin];var dataEnd=domainData._childrenByKey[me.end];if(dataBegin&&dataEnd){var indexBegin=dataBegin.childIndex();var indexEnd=dataEnd.childIndex();selectDatums=def.range(indexBegin,indexEnd-indexBegin+1).select(function(index){return domainData._children[index]}).selectMany(function(data){return data._datums}).distinct(function(datum){return datum.key})}}else{domainData=partData;var dimName=role.firstDimensionName();selectDatums=def.query(partData._datums).where(function(datum){var v=datum.atoms[dimName].value;return v!=null&&v>=me.begin&&v<=me.end})}if(selectDatums){chart.data.replaceSelected(selectDatums);chart.root.updateSelections(keyArgs)}}});var focusWindowAxis_optionsDef=def.create(axis_optionsDef,{Resizable:{resolve:'_resolveFull',cast:Boolean,value:true},Movable:{resolve:'_resolveFull',cast:Boolean,value:true},Begin:{resolve:'_resolveFull'},End:{resolve:'_resolveFull'},Length:{resolve:'_resolveFull'},Constraint:{resolve:'_resolveFull',cast:def.fun.as}})});
50   -def.scope(function(){def.type('pvc.visual.ColorAxis',pvc.visual.Axis).add({scaleNullRangeValue:function(){return this.option('Missing')||null},scaleUsesAbs:function(){return this.option('UseAbs')},bind:function(dataCells){this.base(dataCells);this._plotList=def.query(dataCells).select(function(dataCell){return dataCell.plot}).distinct(function(plot){return plot&&plot.id}).array();return this},calculateScale:function(){var scale,noWrap;var dataCells=this.dataCells;if(dataCells){var chart=this.chart;if(this.scaleType==='discrete'){var domainValues=def.query(dataCells).selectMany(function(dataCell){var role=dataCell.role;if(role&&role.isBound()){var partData=chart.partData(dataCell.dataPartValue);var domainData=partData&&partData.flattenBy(role);dataCell.data=domainData;return domainData&&domainData.children()}}).distinct(function(child){return child.key}).select(function(child){return def.nullyTo(child.value,'')}).array();this.domainValues=domainValues;scale=this.scheme()(domainValues);noWrap=true}else{if(dataCells.length===1){var visibleDomainData=chart.root.visibleData(this.dataCell.dataPartValue);var normByCateg=this.option('NormByCategory');var scaleOptions={type:this.option('ScaleType'),colors:this.option('Colors')().range(),colorDomain:this.option('Domain'),colorMin:this.option('Min'),colorMax:this.option('Max'),colorNull:this.option('Missing'),data:visibleDomainData,colorDimension:this.role.firstDimensionName(),normPerBaseCategory:normByCateg};if(normByCateg){this.scalesByCateg=pvc.color.scales(scaleOptions)}else{scale=pvc.color.scale(scaleOptions)}}}}this.setScale(scale,noWrap);return this},_wrapScale:function(scale){var applyTransf;if(this.scaleType==='discrete'){applyTransf=this.option.isSpecified('Transform')||(!this.option.isSpecified('Colors')&&!this.option.isSpecified('Map'))}else{applyTransf=true}if(applyTransf){var colorTransf=this.option('Transform');if(colorTransf){scale=scale.transform(colorTransf)}}return this.base(scale)},scheme:function(){return def.lazy(this,'_scheme',this._createScheme,this)},_createColorMapFilter:function(colorMap){var fixedColors=def.uniqueIndex(colorMap,function(c){return c.key});return{domain:function(k){return!def.hasOwn(colorMap,k)},color:function(c){return!def.hasOwn(fixedColors,c.key)}}},_createScheme:function(){var me=this;var baseScheme=me.option('Colors');if(me.scaleType!=='discrete'){return function(d){var scale=baseScheme.apply(null,arguments);return me._wrapScale(scale)}}var colorMap=me.option('Map');if(!colorMap){return function(d){var scale=baseScheme.apply(null,arguments);return me._wrapScale(scale)}}var filter=this._createColorMapFilter(colorMap);return function(d){var scale;if(!(d instanceof Array)){d=def.array.copy(arguments)}d=d.filter(filter.domain);var baseScale=baseScheme(d);var r=baseScale.range().filter(filter.color);baseScale.range(r);scale=function(k){var c=def.getOwn(colorMap,k);return c||baseScale(k)};def.copy(scale,baseScale);var dx,rx;scale.domain=function(){if(arguments.length){throw def.operationInvalid("The scale cannot be modified.")}if(!dx){dx=def.array.append(def.ownKeys(colorMap),d)}return dx};scale.range=function(){if(arguments.length){throw def.operationInvalid("The scale cannot be modified.")}if(!rx){rx=def.array.append(def.own(colorMap),d)}return rx};return me._wrapScale(scale)}},sceneScale:function(keyArgs){var varName=def.get(keyArgs,'sceneVarName')||this.role.name;return this.scale.by1(function(scene){return scene.vars[varName].value})},_buildOptionId:function(){return this.id+"Axis"},_getOptionsDefinition:function(){return colorAxis_optionsDef},_resolveByNaked:pvc.options.specify(function(optionInfo){if(!this.index){return this._chartOption(this.id+def.firstUpperCase(optionInfo.name))}}),_specifyV1ChartOption:function(optionInfo,asName){if(!this.index&&this.chart.compatVersion()<=1&&this._specifyChartOption(optionInfo,asName)){return true}}});function castSize(size){if(!def.object.is(size)){var position=this.option('Position');size=new pvc.Size().setSize(size,{singleProp:pvc.BasePanel.orthogonalLength[position]})}return size}function castAlign(align){var position=this.option('Position');return pvc.parseAlign(position,align)}function castColorMap(colorMap){var resultMap;if(colorMap){var any;def.eachOwn(colorMap,function(v,k){any=true;colorMap[k]=pv.color(v)});if(any){resultMap=colorMap}}return resultMap}var legendData={resolveDefault:function(optionInfo){if(!this.index&&this._specifyChartOption(optionInfo,def.firstLowerCase(optionInfo.name))){return true}}};function getDefaultColor(optionInfo){var colors;if(this.scaleType==='discrete'){if(this.index===0){colors=pvc.createColorScheme()}else{var me=this;colors=function(){return me.chart._getRoleColorScale(me.role.name)}}}else{colors=['red','yellow','green'].map(function(name){return pv.Color.names[name]})}return colors}var colorAxis_optionsDef=def.create(axis_optionsDef,{Colors:{resolve:'_resolveFull',getDefault:getDefaultColor,data:{resolveV1:function(optionInfo){if(this.scaleType==='discrete'){if(this.index===0){this._specifyChartOption(optionInfo,'colors')}else if(this.index===1&&this.chart._allowV1SecondAxis){this._specifyChartOption(optionInfo,'secondAxisColor')}}else{this._specifyChartOption(optionInfo,'colorRange')}return true},resolveDefault:function(optionInfo){if(this.index===0){this._specifyChartOption(optionInfo,'colors')}}},cast:pvc.colorScheme},Map:{resolve:'_resolveFull',cast:castColorMap},Transform:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){var plotList=this._plotList;if(plotList.length<=2){var onlyTrendAndPlot2=def.query(plotList).all(function(plot){var name=plot.name;return(name==='plot2'||name==='trend')});if(onlyTrendAndPlot2){optionInfo.defaultValue(pvc.brighterColorTransform);return true}}}},cast:def.fun.to},NormByCategory:{resolve:function(optionInfo){if(!this.chart._allowColorPerCategory){optionInfo.specify(false);return true}return this._resolveFull(optionInfo)},data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'normPerBaseCategory');return true}},cast:Boolean,value:false},ScaleType:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'scalingType');return true}},cast:pvc.parseContinuousColorScaleType,value:'linear'},UseAbs:{resolve:'_resolveFull',cast:Boolean,value:false},Domain:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'colorRangeInterval');return true}},cast:def.array.to},Min:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'minColor');return true}},cast:pv.color},Max:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'maxColor');return true}},cast:pv.color},Missing:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'nullColor');return true}},cast:pv.color,value:pv.color("#efc5ad")},LegendVisible:{resolve:'_resolveFull',data:legendData,cast:Boolean,value:true},LegendClickMode:{resolve:'_resolveFull',data:legendData,cast:pvc.parseLegendClickMode,value:'toggleVisible'},LegendDrawLine:{resolve:'_resolveFull',data:legendData,cast:Boolean,value:false},LegendDrawMarker:{resolve:'_resolveFull',data:legendData,cast:Boolean,value:true},LegendShape:{resolve:'_resolveFull',data:legendData,cast:pvc.parseShape}})});
51   -var sizeAxis_optionsDef;def.scope(function(){def.type('pvc.visual.SizeAxis',pvc.visual.Axis).init(function(chart,type,index,keyArgs){keyArgs=def.set(keyArgs,'byNaked',false);this.base(chart,type,index,keyArgs)}).add({scaleTreatsNullAs:function(){return'min'},scaleUsesAbs:function(){return this.option('UseAbs')},setScaleRange:function(range){var scale=this.scale;scale.min=range.min;scale.max=range.max;scale.size=range.max-range.min;scale.range(scale.min,scale.max);if(pvc.debug>=4){pvc.log("Scale: "+pvc.stringify(def.copyOwn(scale)))}return this},_getOptionsDefinition:function(){return sizeAxis_optionsDef}});sizeAxis_optionsDef=def.create(axis_optionsDef,{OriginIsZero:{resolve:'_resolveFull',cast:Boolean,value:false},FixedMin:{resolve:'_resolveFull',cast:pvc.castNumber},FixedMax:{resolve:'_resolveFull',cast:pvc.castNumber},UseAbs:{resolve:'_resolveFull',cast:Boolean,value:false}})});
52   -def.scope(function(){def.type('pvc.visual.Legend',pvc.visual.OptionsBase).init(function(chart,type,index,keyArgs){keyArgs=def.set(keyArgs,'byNaked',false);this.base(chart,type,index,keyArgs)}).add({_getOptionsDefinition:function(){return legend_optionsDef}});function castSize(size){if(!def.object.is(size)){var position=this.option('Position');size=new pvc.Size().setSize(size,{singleProp:pvc.BasePanel.orthogonalLength[position]})}return size}function castAlign(align){var position=this.option('Position');return pvc.parseAlign(position,align)}var legend_optionsDef={Position:{resolve:'_resolveFull',cast:pvc.parsePosition,value:'bottom'},Size:{resolve:'_resolveFull',cast:castSize},SizeMax:{resolve:'_resolveFull',cast:castSize},Align:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){var position=this.option('Position');var align;if(position!=='top'&&position!=='bottom'){align='top'}else if(this.chart.compatVersion()<=1){align='left'}optionInfo.defaultValue(align);return true}},cast:castAlign},Margins:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){if(this.chart.compatVersion()>1){var position=this.option('Position');var margins=def.set({},pvc.BasePanel.oppositeAnchor[position],5);optionInfo.defaultValue(margins)}return true}},cast:pvc.Sides.as},Paddings:{resolve:'_resolveFull',cast:pvc.Sides.as,value:5},Font:{resolve:'_resolveFull',cast:String,value:'10px sans-serif'}}});
53   -def.type('pvc.visual.legend.BulletRootScene',pvc.visual.Scene).init(function(parent,keyArgs){this.base(parent,keyArgs);var markerDiam=def.get(keyArgs,'markerSize',15);var itemPadding=new pvc.Sides(def.get(keyArgs,'itemPadding',5)).resolve(markerDiam,markerDiam);def.set(this.vars,'horizontal',def.get(keyArgs,'horizontal',false),'font',def.get(keyArgs,'font'),'markerSize',markerDiam,'textMargin',def.get(keyArgs,'textMargin',6),'itemPadding',itemPadding)}).add({layout:function(layoutInfo){var clientSize=layoutInfo.clientSize;if(!(clientSize.width>0&&clientSize.height>0)){return new pvc.Size(0,0)}var desiredClientSize=layoutInfo.desiredClientSize;var markerDiam=this.vars.markerSize;var textLeft=markerDiam+this.vars.textMargin;var itemPadding=this.vars.itemPadding;var a_width=this.vars.horizontal?'width':'height';var a_height=pvc.BasePanel.oppositeLength[a_width];var maxRowWidth=desiredClientSize[a_width];if(!maxRowWidth||maxRowWidth<0){maxRowWidth=clientSize[a_width]}var row;var rows=[];var contentSize={width:0,height:0};this.childNodes.forEach(function(groupScene){groupScene.childNodes.forEach(layoutItem,this)},this);if(!row){return new pvc.Size(0,0)}commitRow(true);def.set(this.vars,'rows',rows,'rowCount',row,'size',contentSize);var isV1Compat=this.compatVersion()<=1;var w=isV1Compat?maxRowWidth:contentSize.width;var h=desiredClientSize[a_height];if(!h||h<0){h=contentSize.height}return def.set({},a_width,Math.min(w,clientSize[a_width]),a_height,Math.min(h,clientSize[a_height]));function layoutItem(itemScene){var textSize=itemScene.labelTextSize();var hidden=!textSize||!textSize.width||!textSize.height;itemScene.isHidden=hidden;if(hidden){return}var widthMargin=0;var itemClientSize={width:textLeft+textSize.width+widthMargin,height:Math.max(textSize.height,markerDiam)};var isFirstInRow;if(!row){row=new pvc.visual.legend.BulletItemSceneRow(0);isFirstInRow=true}else{isFirstInRow=!row.items.length}var newRowWidth=row.size.width+itemClientSize[a_width];if(!isFirstInRow){newRowWidth+=itemPadding[a_width]}if(!isFirstInRow&&(newRowWidth>maxRowWidth)){commitRow(false);newRowWidth=itemClientSize[a_width]}var rowSize=row.size;rowSize.width=newRowWidth;rowSize.height=Math.max(rowSize.height,itemClientSize[a_height]);var rowItemIndex=row.items.length;row.items.push(itemScene);def.set(itemScene.vars,'row',row,'rowIndex',rowItemIndex,'clientSize',itemClientSize)}function commitRow(isLast){var rowSize=row.size;contentSize.height+=rowSize.height;if(rows.length){contentSize.height+=itemPadding[a_height]}contentSize.width=Math.max(contentSize.width,rowSize.width);rows.push(row);if(!isLast){row=new pvc.visual.legend.BulletItemSceneRow(rows.length)}}},defaultGroupSceneType:function(){var GroupType=this._bulletGroupType;if(!GroupType){GroupType=def.type(pvc.visual.legend.BulletGroupScene);this._bulletGroupType=GroupType}return GroupType},createGroup:function(keyArgs){var GroupType=this.defaultGroupSceneType();return new GroupType(this,keyArgs)}});def.type('pvc.visual.legend.BulletItemSceneRow').init(function(index){this.index=index;this.items=[];this.size={width:0,height:0}});
54   -def.type('pvc.visual.legend.BulletGroupScene',pvc.visual.Scene).init(function(rootScene,keyArgs){this.base(rootScene,keyArgs);this.extensionPrefix=def.get(keyArgs,'extensionPrefix')||'';this._renderer=def.get(keyArgs,'renderer');this.colorAxis=def.get(keyArgs,'colorAxis');this.clickMode=def.get(keyArgs,'clickMode');if(this.colorAxis&&!this.clickMode){this.clickMode=this.colorAxis.option('LegendClickMode')}}).add({hasRenderer:function(){return this._renderer},renderer:function(renderer){if(renderer!=null){this._renderer=renderer}else{renderer=this._renderer;if(!renderer){var keyArgs;var colorAxis=this.colorAxis;if(colorAxis){keyArgs={drawRule:colorAxis.option('LegendDrawLine'),drawMarker:colorAxis.option('LegendDrawMarker'),markerShape:colorAxis.option('LegendShape')}}renderer=new pvc.visual.legend.BulletItemDefaultRenderer(keyArgs);this._renderer=renderer}}return renderer},itemSceneType:function(){var ItemType=this._itemSceneType;if(!ItemType){ItemType=def.type(pvc.visual.legend.BulletItemScene);var clickMode=this.clickMode;switch(clickMode){case'toggleSelected':ItemType.add(pvc.visual.legend.BulletItemSceneSelection);break;case'toggleVisible':ItemType.add(pvc.visual.legend.BulletItemSceneVisibility);break}this.panel()._extendSceneType('item',ItemType,['isOn','isClickable','click']);this._itemSceneType=ItemType}return ItemType},createItem:function(keyArgs){var ItemType=this.itemSceneType();return new ItemType(this,keyArgs)}});
55   -def.type('pvc.visual.legend.BulletItemScene',pvc.visual.Scene).init(function(bulletGroup,keyArgs){this.base(bulletGroup,keyArgs);var value,rawValue,label;if(keyArgs){value=keyArgs.value;rawValue=keyArgs.rawValue;label=keyArgs.label}if(value===undefined){var source=this.group||this.datum;if(source){value=source.value;rawValue=source.rawValue;label=source.ensureLabel();var dataPartDim=this.chart()._getDataPartDimName();if(dataPartDim){var dataPartAtom=source.atoms[dataPartDim];if(isNaN(+dataPartAtom.value)){label+=" ("+dataPartAtom.label+")"}}}}this.vars.value=new pvc.visual.ValueLabelVar(value||null,label||"",rawValue)}).add({isOn:function(){return true},isClickable:function(){return false},click:function(){},labelTextSize:function(){var valueVar=this.vars.value;return valueVar&&pv.Text.measure(valueVar.label,this.vars.font)}});
56   -def.type('pvc.visual.legend.BulletItemSceneSelection').add({isOn:function(){var owner=(this.group||this.datum).owner;return!owner.selectedCount()||this.datums().any(function(datum){return!datum.isNull&&datum.isSelected})},isClickable:function(){return this.chart()._canSelectWithClick()},click:function(){var datums=this.datums().array();if(datums.length){var chart=this.chart();chart._updatingSelections(function(){datums=chart._onUserSelection(datums);if(datums){var on=def.query(datums).any(function(datum){return datum.isSelected});pvc.data.Data.setSelected(datums,!on)}})}}});
57   -def.type('pvc.visual.legend.BulletItemSceneVisibility').add({isOn:function(){return this.datums().any(function(datum){return!datum.isNull&&datum.isVisible})},isClickable:function(){return true},click:function(){if(pvc.data.Data.toggleVisible(this.datums())){this.chart().render(true,true,false)}}});
58   -def.type('pvc.visual.legend.BulletItemRenderer');
59   -def.type('pvc.visual.legend.BulletItemDefaultRenderer',pvc.visual.legend.BulletItemRenderer).init(function(keyArgs){this.noSelect=def.get(keyArgs,'noSelect',false);this.noHover=def.get(keyArgs,'noHover',false);this.drawRule=def.get(keyArgs,'drawRule',false);if(this.drawRule){this.rulePvProto=def.get(keyArgs,'rulePvProto')}this.drawMarker=!this.drawRule||def.get(keyArgs,'drawMarker',true);if(this.drawMarker){this.markerShape=def.get(keyArgs,'markerShape','square');this.markerPvProto=def.get(keyArgs,'markerPvProto')}}).add({drawRule:false,drawMarker:true,markerShape:null,rulePvProto:null,markerPvProto:null,create:function(legendPanel,pvBulletPanel,extensionPrefix,wrapper){var renderInfo={};var drawRule=this.drawRule;var sceneColorProp=function(scene){return scene.color};if(drawRule){var rulePvBaseProto=new pv.Mark().left(0).top(function(){return this.parent.height()/2}).width(function(){return this.parent.width()}).lineWidth(1,pvc.extensionTag).strokeStyle(sceneColorProp,pvc.extensionTag);if(this.rulePvProto){rulePvBaseProto=this.rulePvProto.extend(rulePvBaseProto)}renderInfo.pvRule=new pvc.visual.Rule(legendPanel,pvBulletPanel,{proto:rulePvBaseProto,noSelect:this.noSelect,noHover:this.noHover,activeSeriesAware:false,extensionId:extensionPrefix+"Rule",wrapper:wrapper}).pvMark}if(this.drawMarker){var markerPvBaseProto=new pv.Mark().left(function(){return this.parent.width()/2}).top(function(){return this.parent.height()/2}).shapeSize(function(){return this.parent.width()},pvc.extensionTag).lineWidth(2,pvc.extensionTag).fillStyle(sceneColorProp,pvc.extensionTag).strokeStyle(sceneColorProp,pvc.extensionTag).shape(this.markerShape,pvc.extensionTag).angle(drawRule?0:Math.PI/2,pvc.extensionTag).antialias(function(){var cos=Math.abs(Math.cos(this.angle()));if(cos!==0&&cos!==1){switch(this.shape()){case'square':case'bar':return false}}return true},pvc.extensionTag);if(this.markerPvProto){markerPvBaseProto=this.markerPvProto.extend(markerPvBaseProto)}renderInfo.pvDot=new pvc.visual.Dot(legendPanel,pvBulletPanel,{proto:markerPvBaseProto,freePosition:true,activeSeriesAware:false,noTooltip:true,noSelect:this.noSelect,noHover:this.noHover,extensionId:extensionPrefix+"Dot",wrapper:wrapper}).pvMark}return renderInfo}});
60   -def.scope(function(){def.type('pvc.visual.Plot',pvc.visual.OptionsBase).init(function(chart,keyArgs){var typePlots=def.getPath(chart,['plotsByType',this.type]);var index=typePlots?typePlots.length:0;var globalIndex=chart.plotList.length;keyArgs=def.set(keyArgs,'byNaked',!globalIndex);this.base(chart,this.type,index,keyArgs);chart._addPlot(this);var prefixes=this.extensionPrefixes=[this.id];if(!this.globalIndex){prefixes.push('')}if(this.name){prefixes.push(this.name)}}).add({_getOptionsDefinition:function(){return pvc.visual.Plot.optionsDef},_resolveByNaked:pvc.options.specify(function(optionInfo){if(!this.globalIndex){return this._chartOption(def.firstLowerCase(optionInfo.name))}})});pvc.visual.Plot.optionsDef={Orientation:{resolve:function(optionInfo){optionInfo.specify(this._chartOption('orientation')||'vertical');return true},cast:String},ValuesVisible:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(this.globalIndex===0){var show=this._chartOption('showValues');if(show!==undefined){optionInfo.specify(show)}else{show=this.type!=='point';optionInfo.defaultValue(show)}return true}}},cast:Boolean,value:false},ValuesAnchor:{resolve:'_resolveFull',cast:pvc.parseAnchor},ValuesFont:{resolve:'_resolveFull',cast:String,value:'10px sans-serif'},ValuesMask:{resolve:'_resolveFull',cast:String,value:"{value}"},DataPart:{resolve:'_resolveFixed',cast:String,value:'0'},ColorRole:{resolve:'_resolveFixed',cast:String,value:'color'},ColorAxis:{resolve:pvc.options.resolvers([function(optionInfo){if(this.globalIndex===0){optionInfo.specify(1);return true}},'_resolveFull']),cast:function(value){value=pvc.castNumber(value);if(value!=null){value=def.between(value,1,10)}else{value=1}return value},value:1}}});
61   -def.scope(function(){def.type('pvc.visual.CartesianPlot',pvc.visual.Plot).add({_getOptionsDefinition:function(){return pvc.visual.CartesianPlot.optionsDef}});function castTrend(trend){if(this.name==='trend'){return null}var type=this.option('TrendType');if(!type&&trend){type=trend.type}if(!type||type==='none'){return null}if(!trend){trend={}}else{trend=Object.create(trend)}trend.type=type;var label=this.option('TrendLabel');if(label!==undefined){trend.label=label}return trend}pvc.visual.CartesianPlot.optionsDef=def.create(pvc.visual.Plot.optionsDef,{BaseAxis:{value:1},BaseRole:{resolve:'_resolveFixed',cast:String},OrthoAxis:{resolve:function(optionInfo){if(this.globalIndex===0){optionInfo.specify(1);return true}return this._resolveFull(optionInfo)},data:{resolveV1:function(optionInfo){if(this.name==='plot2'&&this.chart._allowV1SecondAxis&&this._chartOption('secondAxisIndependentScale')){optionInfo.specify(2)}return true}},cast:function(value){value=pvc.castNumber(value);if(value!=null){value=def.between(value,1,10)}else{value=1}return value},value:1},OrthoRole:{resolve:pvc.options.resolvers(['_resolveFixed','_resolveDefault'])},Trend:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){var type=this.option('TrendType');if(type){optionInfo.defaultValue({type:type});return true}}},cast:castTrend},TrendType:{resolve:'_resolveFull',cast:pvc.parseTrendType},TrendLabel:{resolve:'_resolveFull',cast:String},NullInterpolationMode:{resolve:'_resolveFull',cast:pvc.parseNullInterpolationMode,value:'none'}})});
62   -def.scope(function(){def.type('pvc.visual.CategoricalPlot',pvc.visual.CartesianPlot).add({_getOptionsDefinition:function(){return pvc.visual.CategoricalPlot.optionsDef}});pvc.visual.CategoricalPlot.optionsDef=def.create(pvc.visual.CartesianPlot.optionsDef,{Stacked:{resolve:'_resolveFull',cast:Boolean,value:false},BaseRole:{value:'category'},OrthoRole:{value:'value'}})});
63   -def.scope(function(){def.type('pvc.visual.BarPlotAbstract',pvc.visual.CategoricalPlot).add({_getOptionsDefinition:function(){return pvc.visual.BarPlotAbstract.optionsDef}});pvc.visual.BarPlotAbstract.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{BarSizeRatio:{resolve:'_resolveFull',cast:function(value){value=pvc.castNumber(value);if(value==null){value=1}else if(value<0.05){value=0.05}else if(value>1){value=1}return value},value:0.9},BarSizeMax:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'maxBarSize');return true}},cast:function(value){value=pvc.castNumber(value);if(value==null){value=Infinity}else if(value<1){value=1}return value},value:2000},BarStackedMargin:{resolve:'_resolveFull',cast:function(value){value=pvc.castNumber(value);if(value!=null&&value<0){value=0}return value},value:0},OverflowMarkersVisible:{resolve:'_resolveFull',cast:Boolean,value:true},ValuesAnchor:{value:'center'}})});
64   -def.type('pvc.visual.BarPlot',pvc.visual.BarPlotAbstract).add({type:'bar'});
65   -def.scope(function(){def.type('pvc.visual.NormalizedBarPlot',pvc.visual.BarPlotAbstract).add({type:'bar',_getOptionsDefinition:function(){return pvc.visual.NormalizedBarPlot.optionsDef}});pvc.visual.NormalizedBarPlot.optionsDef=def.create(pvc.visual.BarPlotAbstract.optionsDef,{Stacked:{resolve:null,value:true}})});
66   -def.scope(function(){def.type('pvc.visual.WaterfallPlot',pvc.visual.BarPlotAbstract).add({type:'water',_getOptionsDefinition:function(){return pvc.visual.WaterfallPlot.optionsDef}});pvc.visual.WaterfallPlot.optionsDef=def.create(pvc.visual.BarPlotAbstract.optionsDef,{Stacked:{resolve:null,value:true},TotalLineLabel:{resolve:'_resolveFull',cast:String,value:"Accumulated"},TotalValuesVisible:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){optionInfo.defaultValue(this.option('ValuesVisible'));return true}},cast:Boolean},Direction:{resolve:'_resolveFull',cast:pvc.parseWaterDirection,value:'down'},AreasVisible:{resolve:'_resolveFull',cast:Boolean,value:true},AllCategoryLabel:{resolve:'_resolveFull',cast:String,value:"All"}})});
67   -def.scope(function(){def.type('pvc.visual.PointPlot',pvc.visual.CategoricalPlot).add({type:'point',_getOptionsDefinition:function(){return pvc.visual.PointPlot.optionsDef}});function visibleData(type,dv){return{resolveV1:function(optionInfo){if(this.globalIndex===0){if(!this._specifyChartOption(optionInfo,'show'+type)){optionInfo.defaultValue(dv)}return true}}}}pvc.visual.PointPlot.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{DotsVisible:{resolve:'_resolveFull',data:visibleData('Dots',true),cast:Boolean,value:false},LinesVisible:{resolve:'_resolveFull',data:visibleData('Lines',true),cast:Boolean,value:false},AreasVisible:{resolve:'_resolveFull',data:visibleData('Areas',false),cast:Boolean,value:false},ValuesAnchor:{value:'right'}})});
68   -def.scope(function(){def.type('pvc.visual.MetricXYPlot',pvc.visual.CartesianPlot).add({_getOptionsDefinition:function(){return pvc.visual.MetricXYPlot.optionsDef}});pvc.visual.MetricXYPlot.optionsDef=def.create(pvc.visual.CartesianPlot.optionsDef,{BaseRole:{value:'x'},OrthoAxis:{resolve:null},OrthoRole:{value:'y'}})});
69   -def.scope(function(){def.type('pvc.visual.MetricPointPlot',pvc.visual.MetricXYPlot).add({type:'scatter',_getOptionsDefinition:function(){return pvc.visual.MetricPointPlot.optionsDef}});function visibleData(type){return{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'show'+type);return true}}}pvc.visual.MetricPointPlot.optionsDef=def.create(pvc.visual.MetricXYPlot.optionsDef,{SizeRole:{resolve:'_resolveFixed',value:'size'},SizeAxis:{resolve:'_resolveFixed',value:1},Shape:{resolve:'_resolveFull',cast:pvc.parseShape,value:'circle'},DotsVisible:{resolve:'_resolveFull',data:visibleData('Dots'),cast:Boolean,value:false},LinesVisible:{resolve:'_resolveFull',data:visibleData('Lines'),cast:Boolean,value:false},ValuesAnchor:{value:'right'}})});
70   -def.scope(function(){def.type('pvc.visual.PiePlot',pvc.visual.Plot).add({type:'pie',_getOptionsDefinition:function(){return pvc.visual.PiePlot.optionsDef}});pvc.visual.PiePlot.optionsDef=def.create(pvc.visual.Plot.optionsDef,{ActiveSliceRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.05)},ExplodedSliceRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:0},ExplodedSliceIndex:{resolve:'_resolveFull',cast:pvc.castNumber,value:null},ValuesAnchor:{cast:pvc.parseAnchorWedge,value:'outer'},ValuesVisible:{value:true},ValuesLabelStyle:{resolve:function(optionInfo){var isV1Compat=this.chart.compatVersion()<=1;if(isV1Compat){optionInfo.specify('inside');return true}return this._resolveFull(optionInfo)},cast:function(value){switch(value){case'inside':case'linked':return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'ValuesLabelStyle' value: '"+value+"'.")}return'linked'},value:'linked'},ValuesMask:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){optionInfo.defaultValue(this.option('ValuesLabelStyle')==='linked'?"{value} ({value.percent})":"{value}");return true}}},LinkInsetRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.05)},LinkOutsetRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.025)},LinkMargin:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.025)},LinkHandleWidth:{resolve:'_resolveFull',cast:pvc.castNumber,value:0.5},LinkLabelSize:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.15)},LinkLabelSpacingMin:{resolve:'_resolveFull',cast:pvc.castNumber,value:0.5}})});
71   -def.scope(function(){def.type('pvc.visual.HeatGridPlot',pvc.visual.CategoricalPlot).add({type:'heatGrid',_getOptionsDefinition:function(){return pvc.visual.HeatGridPlot.optionsDef}});pvc.visual.HeatGridPlot.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{SizeRole:{value:'size'},SizeAxis:{value:1},UseShapes:{resolve:'_resolveFull',cast:Boolean,value:false},Shape:{resolve:'_resolveFull',cast:pvc.parseShape,value:'square'},NullShape:{resolve:'_resolveFull',cast:pvc.parseShape,value:'cross'},ValuesVisible:{value:true},OrthoRole:{value:'series'},OrthoAxis:{resolve:null},NullInterpolationMode:{resolve:null,value:'none'},Stacked:{resolve:null,value:false}})});
72   -def.scope(function(){def.type('pvc.visual.BoxPlot',pvc.visual.CategoricalPlot).add({type:'box',_getOptionsDefinition:function(){return pvc.visual.BoxPlot.optionsDef}});pvc.visual.BoxPlot.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{Stacked:{resolve:null,value:false},OrthoRole:{value:['median','lowerQuartil','upperQuartil','minimum','maximum']},BoxSizeRatio:{resolve:'_resolveFull',cast:function(value){value=pvc.castNumber(value);if(value==null){value=1}else if(value<0.05){value=0.05}else if(value>1){value=1}return value},value:1/3},BoxSizeMax:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'maxBoxSize');return true}},cast:function(value){value=pvc.castNumber(value);if(value==null){value=Infinity}else if(value<1){value=1}return value},value:Infinity}})});
73   -def.type('pvc.visual.BulletPlot',pvc.visual.Plot).add({type:'bullet',_getOptionsDefinition:function(){return pvc.visual.BulletPlot.optionsDef}});pvc.visual.BulletPlot.optionsDef=def.create(pvc.visual.Plot.optionsDef,{ValuesVisible:{value:true},ColorRole:{value:null}});
74   -def.type('pvc.Abstract').init(function(){this._syncLog()}).add({invisibleLineWidth:0.001,defaultLineWidth:1.5,_logInstanceId:null,_syncLog:function(){if(pvc.debug&&typeof console!=="undefined"){var logId=this._getLogInstanceId();['log','info',['trace','debug'],'error','warn','group','groupEnd'].forEach(function(ps){ps=ps instanceof Array?ps:[ps,ps];pvc._installLog(this,'_'+ps[0],ps[1],logId)},this)}},_getLogInstanceId:function(){return this._logInstanceId||(this._logInstanceId=this._processLogInstanceId(this._createLogInstanceId()))},_createLogInstanceId:function(){return''+this.constructor},_processLogInstanceId:function(logInstanceId){var L=30;var s=logInstanceId.substr(0,L);if(s.length<L){s+=def.array.create(L-s.length,' ').join('')}return"["+s+"]"}});def.scope(function(){var o=pvc.Abstract.prototype;var syncLogHook=function(){this._syncLog()};['log','info','trace','error','warn','group','groupEnd'].forEach(function(p){o['_'+p]=syncLogHook})});
75   -def.type('pvc.BaseChart',pvc.Abstract).init(function(options){var originalOptions=options;var parent=this.parent=def.get(options,'parent')||null;if(parent){options||def.fail.argumentRequired('options')}else{options=def.mixin.copy({},this.defaults,options)}this.options=options;if(parent){this.root=parent.root;this.smallColIndex=options.smallColIndex;this.smallRowIndex=options.smallRowIndex;this._tooltipEnabled=parent._tooltipEnabled;this._tooltipOptions=parent._tooltipOptions}else{this.root=this}this.base();if(pvc.debug>=3){this._info("NEW CHART\n"+pvc.logSeparator.replace(/-/g,'=')+"\n DebugLevel: "+pvc.debug)}if(pvc.debug>=3&&!parent&&originalOptions){this._info("OPTIONS:\n",originalOptions);if(pvc.debug>=5){this._trace(pvc.stringify(options,{ownOnly:false,funs:true}))}}if(parent){parent._addChild(this)}this._constructData(options);this._constructVisualRoles(options)}).add({_disposed:false,_animatable:false,parent:null,children:null,root:null,isPreRendered:false,_createVersion:0,renderCallback:undefined,multiChartPageCount:null,multiChartPageIndex:null,left:0,top:0,width:null,height:null,margins:null,paddings:null,_allowV1SecondAxis:false,compatVersion:function(options){return(options||this.options).compatVersion},_createLogInstanceId:function(){return""+this.constructor+this._createLogChildSuffix()},_createLogChildSuffix:function(){return this.parent?(" ("+(this.smallRowIndex+1)+","+(this.smallColIndex+1)+")"):""},_addChild:function(childChart){(childChart.parent===this)||def.assert("Not a child of this chart.");this.children.push(childChart)},_preRender:function(keyArgs){this._preRenderPhase1(keyArgs);this._preRenderPhase2(keyArgs)},_preRenderPhase1:function(keyArgs){this._createVersion++;this.isPreRendered=false;if(pvc.debug>=3){this._log("Prerendering")}this.children=[];if(!this.parent){pvc.removeTipsyLegends()}this._processOptions();this._checkNoDataI();if(!this.parent&&this._createVersion===1){this._initVisualRoles();this._bindVisualRolesPreI();this._complexTypeProj=this._createComplexTypeProject();this._bindVisualRolesPreII()}this._initData(keyArgs);this._checkNoDataII();var hasMultiRole=this._isRoleAssigned('multiChart');this._initPlots(hasMultiRole);this._initAxes(hasMultiRole);this._bindAxes(hasMultiRole);if(this.parent||!hasMultiRole){this._interpolate(hasMultiRole);this._generateTrends(hasMultiRole)}this._setAxesScales(hasMultiRole)},_preRenderPhase2:function(){var hasMultiRole=this._isRoleAssigned('multiChart');this._initChartPanels(hasMultiRole);this.isPreRendered=true},_setSmallLayout:function(keyArgs){if(keyArgs){var basePanel=this.basePanel;if(this._setProp('left',keyArgs)|this._setProp('top',keyArgs)){if(basePanel){def.set(basePanel.position,'left',this.left,'top',this.top)}}if(this._setProp('width',keyArgs)|this._setProp('height',keyArgs)){if(basePanel){basePanel.size=new pvc.Size(this.width,this.height)}}if(this._setProp('margins',keyArgs)&&basePanel){basePanel.margins=new pvc.Sides(this.margins)}if(this._setProp('paddings',keyArgs)&&basePanel){basePanel.paddings=new pvc.Sides(this.paddings)}}},_setProp:function(p,keyArgs){var v=keyArgs[p];if(v!=null){this[p]=v;return true}},_processOptions:function(){var options=this.options;if(parseInt(options.width,10)+"%"==options.width){try{var viewportwidth,viewportheight,wdiv,r,scr=null,inn=null,wNoScroll=0,wScroll=0;if(typeof window.innerWidth!='undefined'){viewportwidth=window.innerWidth,viewportheight=window.innerHeight}else if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientWidth!='undefined'&&document.documentElement.clientWidth!=0){viewportwidth=document.documentElement.clientWidth,viewportheight=document.documentElement.clientHeight}else{viewportwidth=document.getElementsByTagName('body')[0].clientWidth,viewportheight=document.getElementsByTagName('body')[0].clientHeight}scr=document.createElement('div');scr.style.position='absolute';scr.style.top='-1000px';scr.style.left='-1000px';scr.style.width='100px';scr.style.height='50px';scr.style.overflow='hidden';inn=document.createElement('div');inn.style.width='100%';inn.style.height='200px';scr.appendChild(inn);document.body.appendChild(scr);wNoScroll=inn.offsetWidth;scr.style.overflow='auto';wScroll=inn.offsetWidth;document.body.removeChild(document.body.lastChild);viewportwidth=viewportwidth-(wNoScroll-wScroll);r=(parseInt(options.width,10)/100)*viewportwidth;options.width=parseInt(r,10)}catch(e){options.width=parseInt(options.width,10)}}if(!this.parent){this.width=options.width;this.height=options.height;this.margins=options.margins;this.paddings=options.paddings}if(this.compatVersion()<=1){options.plot2=this._allowV1SecondAxis&&!!options.secondAxis}this._processOptionsCore(options);this._processExtensionPoints();return options},_processOptionsCore:function(options){if(!this.parent){if(!$.support.svg||pv.renderer()==='batik'){options.animate=false}this._processTooltipOptions(options)}},_tooltipDefaults:{gravity:'s',delayIn:200,delayOut:80,offset:2,opacity:0.9,html:true,fade:true,useCorners:false,arrowVisible:true,followMouse:false,format:undefined},_processTooltipOptions:function(options){var isV1Compat=this.compatVersion()<=1;var tipOptions=options.tooltip;var tipEnabled=options.tooltipEnabled;if(tipEnabled==null){if(tipOptions){tipEnabled=tipOptions.enabled}if(tipEnabled==null){if(isV1Compat){tipEnabled=options.showTooltips}if(tipEnabled==null){tipEnabled=true}}}if(tipEnabled){if(!tipOptions){tipOptions={}}if(isV1Compat){this._importV1TooltipOptions(tipOptions,options)}def.eachOwn(this._tooltipDefaults,function(dv,p){var value=options['tooltip'+def.firstUpperCase(p)];if(value!==undefined){tipOptions[p]=value}else if(tipOptions[p]===undefined){tipOptions[p]=dv}})}else{tipOptions={}}this._tooltipEnabled=tipEnabled;this._tooltipOptions=tipOptions},_importV1TooltipOptions:function(tipOptions,options){var v1TipOptions=options.tipsySettings;if(v1TipOptions){this.extend(v1TipOptions,"tooltip");for(var p in v1TipOptions){if(tipOptions[p]===undefined){tipOptions[p]=v1TipOptions[p]}}if(tipOptions.html==null){tipOptions.html=false}}},render:function(bypassAnimation,recreate,reloadData){var hasError;if(pvc.debug>1){pvc.group("CCC RENDER")}this._suspendSelectionUpdate();try{this.useTextMeasureCache(function(){try{if(!this.isPreRendered||recreate){this._preRender({reloadData:reloadData})}else if(!this.parent&&this.isPreRendered){pvc.removeTipsyLegends()}this.basePanel.render({bypassAnimation:bypassAnimation,recreate:recreate})}catch(e){if(e instanceof NoDataException){if(pvc.debug>1){this._log("No data found.")}this._addErrorPanelMessage("No data found",true)}else{hasError=true;pvc.logError(e.message);if(pvc.debug>0){this._addErrorPanelMessage("Error: "+e.message,false)}}}})}finally{if(!hasError){this._resumeSelectionUpdate()}if(pvc.debug>1){pvc.groupEnd()}}return this},_addErrorPanelMessage:function(text,isNoData){var options=this.options,pvPanel=new pv.Panel().canvas(options.canvas).width(this.width).height(this.height),pvMsg=pvPanel.anchor("center").add(pv.Label).text(text);if(isNoData){this.extend(pvMsg,"noDataMessage")}pvPanel.render()},useTextMeasureCache:function(fun,ctx){var root=this.root;var textMeasureCache=root._textMeasureCache||(root._textMeasureCache=pv.Text.createCache());return pv.Text.usingCache(textMeasureCache,fun,ctx||this)},animate:function(start,end){return this.basePanel.animate(start,end)},isAnimatingStart:function(){return this.basePanel.isAnimatingStart()},isOrientationVertical:function(orientation){return(orientation||this.options.orientation)===pvc.orientation.vertical},isOrientationHorizontal:function(orientation){return(orientation||this.options.orientation)===pvc.orientation.horizontal},dispose:function(){if(!this._disposed){this._disposed=true}},defaults:{width:400,height:300,orientation:'vertical',ignoreNulls:true,crosstabMode:true,isMultiValued:false,seriesInRows:false,groupedLabelSep:undefined,animate:true,titlePosition:"top",titleAlign:"center",legend:false,legendPosition:"bottom",v1StyleTooltipFormat:function(s,c,v,datum){return s+", "+c+": "+this.chart.options.valueFormat(v)+(datum&&datum.percent?(" ("+datum.percent.label+")"):"")},valueFormat:def.scope(function(){var pvFormat=pv.Format.number().fractionDigits(0,2);return function(d){return pvFormat.format(d)}}),percentValueFormat:def.scope(function(){var pvFormat=pv.Format.number().fractionDigits(0,1);return function(d){return pvFormat.format(d*100)+"%"}}),clickable:false,doubleClickMaxDelay:300,hoverable:false,selectable:false,selectionMode:'rubberband',ctrlSelectMode:true,clearSelectionMode:'emptySpaceClick',compatVersion:Infinity}});
76   -pvc.BaseChart.add({_visualRoles:null,_visualRoleList:null,_serRole:null,_dataPartRole:null,_measureVisualRoles:null,_constructVisualRoles:function(){var parent=this.parent;if(parent){this._visualRoles=parent._visualRoles;this._visualRoleList=parent._visualRoleList;this._measureVisualRoles=parent._measureVisualRoles;if(parent._multiChartRole){this._multiChartRole=parent._multiChartRole}if(parent._serRole){this._serRole=parent._serRole}if(parent._colorRole){this._colorRole=parent._colorRole}if(parent._dataPartRole){this._dataPartRole=parent._dataPartRole}}else{this._visualRoles={};this._visualRoleList=[];this._measureVisualRoles=[]}},_hasDataPartRole:function(){return false},_getSeriesRoleSpec:function(){return null},_getColorRoleSpec:function(){return null},_addVisualRole:function(name,keyArgs){keyArgs=def.set(keyArgs,'index',this._visualRoleList.length);var visualRole=new pvc.visual.Role(name,keyArgs);this._visualRoleList.push(visualRole);this._visualRoles[name]=visualRole;if(visualRole.isMeasure){this._measureVisualRoles.push(visualRole)}return visualRole},_initVisualRoles:function(){this._multiChartRole=this._addVisualRole('multiChart',{defaultDimension:'multiChart*',requireIsDiscrete:true});if(this._hasDataPartRole()){this._dataPartRole=this._addVisualRole('dataPart',{defaultDimension:'dataPart',requireSingleDimension:true,requireIsDiscrete:true,dimensionDefaults:{isHidden:true,comparer:def.compare}})}var serRoleSpec=this._getSeriesRoleSpec();if(serRoleSpec){this._serRole=this._addVisualRole('series',serRoleSpec)}var colorRoleSpec=this._getColorRoleSpec();if(colorRoleSpec){this._colorRole=this._addVisualRole('color',colorRoleSpec)}},_bindVisualRolesPreI:function(){def.eachOwn(this._visualRoles,function(role){role.setIsReversed(false)});var sourcedRoles=[];var options=this.options;var roleOptions=options.visualRoles;this._visualRoleList.forEach(function(visualRole){var name=visualRole.name;var roleSpec=options[name+'Role'];if(roleSpec!==undefined){if(!roleOptions){roleOptions=options.visualRoles={}}if(roleOptions[name]===undefined){roleOptions[name]=roleSpec}}});var dimsBoundToSingleRole;if(roleOptions){dimsBoundToSingleRole={};var rolesWithOptions=def.query(def.keys(roleOptions)).select(function(name){return this._visualRoles[name]||def.fail.operationInvalid("Role '{0}' is not supported by the chart type.",[name])},this).array();rolesWithOptions.sort(function(a,b){return a.index-b.index});rolesWithOptions.forEach(function(visualRole){var name=visualRole.name;var roleSpec=roleOptions[name];var groupingSpec,sourceRoleName;if(def.object.is(roleSpec)){if(def.nullyTo(roleSpec.isReversed,false)){visualRole.setIsReversed(true)}sourceRoleName=roleSpec.from;if(sourceRoleName&&(sourceRoleName!==name)){var sourceRole=this._visualRoles[sourceRoleName]||def.fail.operationInvalid("Source role '{0}' is not supported by the chart type.",[sourceRoleName]);visualRole.setSourceRole(sourceRole);sourcedRoles.push(visualRole)}else{groupingSpec=roleSpec.dimensions}}else{groupingSpec=roleSpec}if(groupingSpec!==undefined){var grouping=pvc.data.GroupingSpec.parse(groupingSpec);visualRole.preBind(grouping);grouping.dimensions().each(function(groupDimSpec){if(def.hasOwn(dimsBoundToSingleRole,groupDimSpec.name)){delete dimsBoundToSingleRole[groupDimSpec.name]}else{dimsBoundToSingleRole[groupDimSpec.name]=visualRole}})}},this)}this._sourcedRoles=sourcedRoles;this._dimsBoundToSingleRole=dimsBoundToSingleRole},_bindVisualRolesPreII:function(){var dimsBoundToSingleRole=this._dimsBoundToSingleRole;if(dimsBoundToSingleRole){delete this._dimsBoundToSingleRole;def.eachOwn(dimsBoundToSingleRole,this._setRoleBoundDimensionDefaults,this)}var sourcedRoles=this._sourcedRoles;delete this._sourcedRoles;def.query(this._visualRoleList).where(function(role){return role.defaultSourceRoleName&&!role.sourceRole&&!role.isPreBound()}).each(function(role){var sourceRole=this._visualRoles[role.defaultSourceRoleName];if(sourceRole){role.setSourceRole(sourceRole);sourcedRoles.push(role)}},this);sourcedRoles.forEach(function(role){var sourceRole=role.sourceRole;if(sourceRole.isReversed){role.setIsReversed(!role.isReversed)}if(!role.defaultDimensionName&&sourceRole.isPreBound()){role.preBind(sourceRole.preBoundGrouping())}})},_setRoleBoundDimensionDefaults:function(role,dimName){this._complexTypeProj.setDimDefaults(dimName,role.dimensionDefaults)},_bindVisualRolesPostI:function(){var complexTypeProj=this._complexTypeProj;var boundDimTypes={};var unboundSourcedRoles=[];def.query(this._visualRoleList).where(function(role){return role.isPreBound()}).each(markPreBoundRoleDims,this);def.query(this._visualRoleList).where(function(role){return!role.isPreBound()}).each(autoBindUnboundRole,this);unboundSourcedRoles.forEach(tryPreBindSourcedRole,this);def.query(def.ownKeys(boundDimTypes)).where(function(dimName){return boundDimTypes[dimName].length===1}).each(function(dimName){var singleRole=boundDimTypes[dimName][0];this._setRoleBoundDimensionDefaults(singleRole,dimName)},this);function markDimBoundTo(dimName,role){def.array.lazy(boundDimTypes,dimName).push(role)}function dimIsDefined(dimName){return complexTypeProj.hasDim(dimName)}function preBindRoleTo(role,dimNames){if(def.array.is(dimNames)){dimNames.forEach(function(dimName){markDimBoundTo(dimName,role)})}else{markDimBoundTo(dimNames,role)}role.setSourceRole(null);role.preBind(pvc.data.GroupingSpec.parse(dimNames))}function preBindRoleToGroupDims(role,groupDimNames){if(groupDimNames.length){if(role.requireSingleDimension){preBindRoleTo(role,groupDimNames[0])}else{preBindRoleTo(role,groupDimNames)}}}function preBindRoleToNewDim(role,dimName){complexTypeProj.setDim(dimName,{isHidden:true});preBindRoleTo(role,dimName)}function roleIsUnbound(role){if(role.isRequired){throw def.error.operationInvalid("Chart type requires unassigned role '{0}'.",[role.name])}role.bind(null);role.setSourceRole(null)}function markPreBoundRoleDims(role){role.preBoundGrouping().dimensionNames().forEach(markDimBoundTo)}function autoBindUnboundRole(role){var name=role.name;var dimName=role.defaultDimensionName;if(!dimName){if(role.sourceRole){unboundSourcedRoles.push(role)}else{roleIsUnbound(role)}return}var match=dimName.match(/^(.*?)(\*)?$/)||def.fail.argumentInvalid('defaultDimensionName');var defaultName=match[1];var greedy=match[2];if(greedy){var groupDimNames=complexTypeProj.groupDimensionsNames(defaultName);if(groupDimNames){preBindRoleToGroupDims(role,groupDimNames);return}}else if(dimIsDefined(defaultName)){preBindRoleTo(role,defaultName);return}if(role.autoCreateDimension){preBindRoleToNewDim(role,defaultName);return}if(role.sourceRole){unboundSourcedRoles.push(role)}else{roleIsUnbound(role)}}function tryPreBindSourcedRole(role){var sourceRole=role.sourceRole;if(sourceRole.isPreBound()){role.preBind(sourceRole.preBoundGrouping())}else{roleIsUnbound(role)}}},_bindVisualRolesPostII:function(complexType){def.query(this._visualRoleList).where(function(role){return role.isPreBound()}).each(commitRolePreBinding,this);function commitRolePreBinding(role){role.postBind(complexType)}},_logVisualRoles:function(){var out=["VISUAL ROLES MAP SUMMARY",pvc.logSeparator," VisualRole <-- Dimensions",pvc.logSeparator];def.eachOwn(this._visualRoles,function(role,name){out.push(" "+name+def.array.create(18-name.length," ").join("")+(role.grouping?(" <-- "+role.grouping):''))});this._log(out.join("\n"))},visualRoles:function(roleName,keyArgs){if(roleName==null){return def.own(this._visualRoles)}var role=def.getOwn(this._visualRoles,roleName)||null;if(!role&&def.get(keyArgs,'assertExists',true)){throw def.error.argumentInvalid('roleName',"Undefined role name '{0}'.",[roleName])}return role},measureVisualRoles:function(){return this._measureVisualRoles},measureDimensionsNames:function(){return def.query(this._measureVisualRoles).select(function(visualRole){return visualRole.firstDimensionName()}).where(def.notNully).array()},_isRoleAssigned:function(roleName){return!!this._visualRoles[roleName].grouping},_getDataPartDimName:function(){var role=this._dataPartRole;if(role){if(role.isBound()){return role.firstDimensionName()}var preGrouping=role.preBoundGrouping();if(preGrouping){return preGrouping.firstDimensionName()}return role.defaultDimensionName}}});
77   -pvc.BaseChart.add({dataEngine:null,data:null,_partData:null,_visibleDataCache:null,resultset:[],metadata:[],_constructData:function(options){var parent=this.parent;if(parent){this.dataEngine=this.data=options.data||def.fail.argumentRequired('options.data')}},_checkNoDataI:function(){if(!this.parent){if(!this.allowNoData&&this.resultset.length===0){throw new NoDataException()}}},_checkNoDataII:function(){if(!this.parent){if(!this.allowNoData&&(!this.data||!this.data.count())){throw new NoDataException()}}},_initData:function(keyArgs){if(!this.parent){var data=this.data;if(!data||def.get(keyArgs,'reloadData',true)){this._onLoadData()}else{data.clearVirtuals();data.disposeChildren()}}delete this._partData;delete this._visibleDataCache;if(pvc.debug>=3){this._log(this.data.getInfo())}},_onLoadData:function(){var data=this.data;var options=this.options;var dataPartDimName=this._getDataPartDimName();var complexTypeProj=this._complexTypeProj;var translOptions=this._createTranslationOptions(dataPartDimName);var translation=this._createTranslation(translOptions);if(pvc.debug>=3){translation.logSource()}if(!data){translation.configureType();if(dataPartDimName&&!complexTypeProj.isReadOrCalc(dataPartDimName)){this._addDefaultDataPartCalculation(dataPartDimName)}}this._bindVisualRolesPostI();var complexType;if(!data){complexType=new pvc.data.ComplexType();complexTypeProj.configureComplexType(complexType,translOptions)}else{complexType=data.type}this._bindVisualRolesPostII(complexType);if(pvc.debug>=10){this._log(complexType.describe())}if(pvc.debug>=3){this._logVisualRoles()}if(!data){data=this.dataEngine=this.data=new pvc.data.Data({type:complexType,labelSep:options.groupedLabelSep})}var loadKeyArgs={where:this._getLoadFilter(),isNull:this._getIsNullDatum()};var resultQuery=translation.execute(data);data.load(resultQuery,loadKeyArgs)},_createComplexTypeProject:function(){var options=this.options;var complexTypeProj=new pvc.data.ComplexTypeProject(options.dimensionGroups);var userDimsSpec=options.dimensions;for(var dimName in userDimsSpec){complexTypeProj.setDim(dimName,userDimsSpec[dimName])}var dataPartDimName=this._getDataPartDimName();if(dataPartDimName){complexTypeProj.setDim(dataPartDimName);this._addPlot2SeriesDataPartCalculation(complexTypeProj,dataPartDimName)}var calcSpecs=options.calculations;if(calcSpecs){calcSpecs.forEach(function(calcSpec){complexTypeProj.setCalc(calcSpec)})}return complexTypeProj},_getLoadFilter:function(){if(this.options.ignoreNulls){var me=this;return function(datum){var isNull=datum.isNull;if(isNull&&pvc.debug>=4){me._info("Datum excluded.")}return!isNull}}},_getIsNullDatum:function(){var measureDimNames=this.measureDimensionsNames(),M=measureDimNames.length;if(M){return function(datum){var atoms=datum.atoms;for(var i=0;i<M;i++){if(atoms[measureDimNames[i]].value!=null){return false}}return true}}},_createTranslation:function(translOptions){var TranslationClass=this._getTranslationClass(translOptions);return new TranslationClass(this,this._complexTypeProj,this.resultset,this.metadata,translOptions)},_getTranslationClass:function(translOptions){return translOptions.crosstabMode?pvc.data.CrosstabTranslationOper:pvc.data.RelationalTranslationOper},_createTranslationOptions:function(dataPartDimName){var options=this.options;var dataOptions=options.dataOptions||{};var dataSeparator=options.dataSeparator;if(dataSeparator===undefined){dataSeparator=dataOptions.separator}var dataMeasuresInColumns=options.dataMeasuresInColumns;if(dataMeasuresInColumns===undefined){dataMeasuresInColumns=dataOptions.measuresInColumns}var dataCategoriesCount=options.dataCategoriesCount;if(dataCategoriesCount===undefined){dataCategoriesCount=dataOptions.categoriesCount}var plot2=options.plot2;var valueFormat=options.valueFormat,valueFormatter;if(valueFormat&&valueFormat!==this.defaults.valueFormat){valueFormatter=function(v){return v!=null?valueFormat(v):""}}var secondAxisIdx;if(plot2&&this._allowV1SecondAxis&&(this.compatVersion()<=1)){secondAxisIdx=pvc.parseDistinctIndexArray(options.secondAxisIdx)||-1}return{compatVersion:this.compatVersion(),plot2SeriesIndexes:secondAxisIdx,seriesInRows:options.seriesInRows,crosstabMode:options.crosstabMode,isMultiValued:options.isMultiValued,dataPartDimName:dataPartDimName,dimensionGroups:options.dimensionGroups,dimensions:options.dimensions,readers:options.readers,measuresIndexes:options.measuresIndexes,multiChartIndexes:options.multiChartIndexes,separator:dataSeparator,measuresInColumns:dataMeasuresInColumns,categoriesCount:dataCategoriesCount,measuresIndex:dataOptions.measuresIndex||dataOptions.measuresIdx,measuresCount:dataOptions.measuresCount||dataOptions.numMeasures,isCategoryTimeSeries:options.timeSeries,timeSeriesFormat:options.timeSeriesFormat,valueNumberFormatter:valueFormatter}},_addPlot2SeriesDataPartCalculation:function(complexTypeProj,dataPartDimName){if(this.compatVersion()<=1){return}var options=this.options;var serRole=this._serRole;var plot2Series=(serRole!=null)&&options.plot2&&options.plot2Series&&def.array.as(options.plot2Series);if(!plot2Series||!plot2Series.length){return}var inited=false;var plot2SeriesSet=def.query(plot2Series).uniqueIndex();var dimNames,dataPartDim,part1Atom,part2Atom;complexTypeProj.setCalc({names:dataPartDimName,calculation:function(datum,atoms){if(!inited){if(serRole.isBound()){dimNames=serRole.grouping.dimensionNames();dataPartDim=datum.owner.dimensions(dataPartDimName)}inited=true}if(dataPartDim){var seriesKey=pvc.data.Complex.values(datum,dimNames).join(',');atoms[dataPartDimName]=def.hasOwnProp.call(plot2SeriesSet,seriesKey)?(part2Atom||(part2Atom=dataPartDim.intern("1"))):(part1Atom||(part1Atom=dataPartDim.intern("0")))}}})},_addDefaultDataPartCalculation:function(dataPartDimName){var dataPartDim,part1Atom;this._complexTypeProj.setCalc({names:dataPartDimName,calculation:function(datum,atoms){if(!dataPartDim){dataPartDim=datum.owner.dimensions(dataPartDimName)}atoms[dataPartDimName]=part1Atom||(part1Atom=dataPartDim.intern("0"))}})},partData:function(dataPartValues){if(!this._partData){if(!this._dataPartRole||!this._dataPartRole.grouping){return this._partData=this.data}this._partData=this.data.flattenBy(this._dataPartRole)}if(!dataPartValues||!this._dataPartRole||!this._dataPartRole.grouping){return this._partData}var dataPartDimName=this._dataPartRole.firstDimensionName();if(def.array.is(dataPartValues)){if(dataPartValues.length>1){return this._partData.where([def.set({},dataPartDimName,dataPartValues)])}dataPartValues=dataPartValues[0]}var child=this._partData._childrenByKey[dataPartValues+''];if(!child){var dataPartCell={v:dataPartValues};if(dataPartValues==='trend'){var firstTrendAtom=this._firstTrendAtomProto;if(firstTrendAtom){dataPartCell.f=firstTrendAtom.f}}child=new pvc.data.Data({parent:this._partData,atoms:def.set({},dataPartDimName,dataPartCell),dimNames:[dataPartDimName],datums:[]})}return child},visibleData:function(dataPartValue,keyArgs){var ignoreNulls=def.get(keyArgs,'ignoreNulls',true);if(ignoreNulls&&this.options.ignoreNulls){ignoreNulls=false}keyArgs=keyArgs?Object.create(keyArgs):{};keyArgs.ignoreNulls=ignoreNulls;var key=ignoreNulls+'|'+dataPartValue,data=def.getOwn(this._visibleDataCache,key);if(!data){data=this._createVisibleData(dataPartValue,keyArgs);if(data){(this._visibleDataCache||(this._visibleDataCache={}))[key]=data}}return data},_createVisibleData:function(dataPartValue,keyArgs){var partData=this.partData(dataPartValue);if(!partData){return null}var ignoreNulls=def.get(keyArgs,'ignoreNulls');return this._serRole&&this._serRole.grouping?partData.flattenBy(this._serRole,{visible:true,isNull:ignoreNulls?false:null}):partData},_generateTrends:function(){if(this._dataPartRole){def.query(def.own(this.axes)).selectMany(function(axis){return axis.dataCells}).where(function(dataCell){return!!dataCell.trend}).distinct(function(dataCell){return dataCell.role.name+'|'+(dataCell.dataPartValue||'')}).each(this._generateTrendsDataCell,this)}},_interpolate:function(){def.query(def.own(this.axes)).selectMany(function(axis){return axis.dataCells}).where(function(dataCell){var nim=dataCell.nullInterpolationMode;return!!nim&&nim!=='none'}).distinct(function(dataCell){return dataCell.role.name+'|'+(dataCell.dataPartValue||'')}).each(this._interpolateDataCell,this)},_interpolateDataCell:function(dataCell){},_generateTrendsDataCell:function(dataCell){},setData:function(data,options){this.setResultset(data.resultset);this.setMetadata(data.metadata);$.extend(this.options,options);return this},setResultset:function(resultset){!this.parent||def.fail.operationInvalid("Can only set resultset on root chart.");this.resultset=resultset;if(!resultset.length){this._log("Warning: Resultset is empty")}return this},setMetadata:function(metadata){!this.parent||def.fail.operationInvalid("Can only set resultset on root chart.");this.metadata=metadata;if(!metadata.length){this._log("Warning: Metadata is empty")}return this}});
78   -pvc.BaseChart.add({_initPlots:function(hasMultiRole){this.plotPanelList=null;if(!this.parent){this.plots={};this.plotList=[];this.plotsByType={};this._initPlotsCore(hasMultiRole)}else{var root=this.root;this.plots=root.plots;this.plotList=root.plotList;this.plotsByType=root.plotsByType}},_initPlotsCore:function(){},_addPlot:function(plot){var plotsByType=this.plotsByType;var plots=this.plots;var plotType=plot.type;var plotIndex=plot.index;var plotName=plot.name;var plotId=plot.id;if(plotName&&def.hasOwn(plots,plotName)){throw def.error.operationInvalid("Plot name '{0}' already taken.",[plotName])}if(def.hasOwn(plots,plotId)){throw def.error.operationInvalid("Plot id '{0}' already taken.",[plotId])}var typePlots=def.array.lazy(plotsByType,plotType);if(def.hasOwn(typePlots,plotIndex)){throw def.error.operationInvalid("Plot index '{0}' of type '{1}' already taken.",[plotIndex,plotType])}plot.globalIndex=this.plotList.length;typePlots[plotIndex]=plot;this.plotList.push(plot);plots[plotId]=plot;if(plotName){plots[plotName]=plot}},_collectPlotAxesDataCells:function(plot,dataCellsByAxisTypeThenIndex){var colorRoleName=plot.option('ColorRole');if(colorRoleName){var colorRole=this.visualRoles(colorRoleName);if(colorRole.isBound()){var colorDataCellsByAxisIndex=def.array.lazy(dataCellsByAxisTypeThenIndex,'color');def.array.lazy(colorDataCellsByAxisIndex,plot.option('ColorAxis')-1).push({plot:plot,role:colorRole,dataPartValue:plot.option('DataPart')})}}},_addPlotPanel:function(plotPanel){def.lazy(this,'plotPanels')[plotPanel.plot.id]=plotPanel;def.array.lazy(this,'plotPanelList').push(plotPanel)},_createPlotPanels:function(){throw def.error.notImplemented()}});
79   -pvc.BaseChart.add({colors:null,axes:null,axesList:null,axesByType:null,_axisClassByType:{'color':pvc.visual.ColorAxis,'size':pvc.visual.SizeAxis,'base':pvc.visual.CartesianAxis,'ortho':pvc.visual.CartesianAxis},_axisCreateWhere:{'color':1,'size':2,'base':3,'ortho':3},_axisCreationOrder:['color','size','base','ortho'],_axisCreateIfUnbound:{},_initAxes:function(hasMultiRole){this.axes={};this.axesList=[];this.axesByType={};delete this._rolesColorScale;var dataCellsByAxisTypeThenIndex;if(!this.parent){dataCellsByAxisTypeThenIndex={};this.plotList.forEach(function(plot){this._collectPlotAxesDataCells(plot,dataCellsByAxisTypeThenIndex)},this);this._fixTrendsLabel(dataCellsByAxisTypeThenIndex)}else{dataCellsByAxisTypeThenIndex=this.root._dataCellsByAxisTypeThenIndex}this._dataCellsByAxisTypeThenIndex=dataCellsByAxisTypeThenIndex;var here=0;if(!this.parent){here|=1}if(this.parent||!hasMultiRole){here|=2}this._axisCreateHere=here;this._axisCreationOrder.forEach(function(type){if((this._axisCreateWhere[type]&here)!==0){var AxisClass;var dataCellsByAxisIndex=dataCellsByAxisTypeThenIndex[type];if(dataCellsByAxisIndex){AxisClass=this._axisClassByType[type];if(AxisClass){dataCellsByAxisIndex.forEach(function(dataCells,axisIndex){new AxisClass(this,type,axisIndex)},this)}}else if(this._axisCreateIfUnbound[type]){AxisClass=this._axisClassByType[type];if(AxisClass){new AxisClass(this,type,0)}}}},this);if(this.parent){this.root.axesList.forEach(function(axis){if(!def.hasOwn(this.axes,axis.id)){this._addAxis(axis)}},this)}},_fixTrendsLabel:function(dataCellsByAxisTypeThenIndex){var dataPartDimName=this._getDataPartDimName();if(dataPartDimName){var firstDataCell=def.query(def.ownKeys(dataCellsByAxisTypeThenIndex)).selectMany(function(axisType){return dataCellsByAxisTypeThenIndex[axisType]}).selectMany().first(function(dataCell){return!!dataCell.trend});if(firstDataCell){var trendInfo=pvc.trends.get(firstDataCell.trend.type);var dataPartAtom=trendInfo.dataPartAtom;var trendLabel=firstDataCell.trend.label;if(trendLabel===undefined){trendLabel=dataPartAtom.f}this._firstTrendAtomProto={v:dataPartAtom.v,f:trendLabel}}else{delete this._firstTrendAtomProto}}},_addAxis:function(axis){this.axes[axis.id]=axis;if(axis.chart===this){axis.axisIndex=this.axesList.length}this.axesList.push(axis);var typeAxes=def.array.lazy(this.axesByType,axis.type);var typeIndex=typeAxes.count||0;axis.typeIndex=typeIndex;typeAxes[axis.index]=axis;if(!typeIndex){typeAxes.first=axis}typeAxes.count=typeIndex+1;if(axis.type==='color'&&axis.isBound()){this._onColorAxisScaleSet(axis)}return this},_getAxis:function(type,index){var typeAxes=this.axesByType[type];if(typeAxes&&index!=null&&(+index>=0)){return typeAxes[index]}},_bindAxes:function(){var here=this._axisCreateHere;def.eachOwn(this._dataCellsByAxisTypeThenIndex,function(dataCellsByAxisIndex,type){if((this._axisCreateWhere[type]&here)!==0){dataCellsByAxisIndex.forEach(function(dataCells,index){var axisId=pvc.buildIndexedId(type,index);var axis=this.axes[axisId];if(!axis.isBound()){axis.bind(dataCells)}},this)}},this)},_setAxesScales:function(){if(!this.parent){var colorAxes=this.axesByType.color;if(colorAxes){colorAxes.forEach(function(axis){if(axis.isBound()){axis.calculateScale();this._onColorAxisScaleSet(axis)}},this)}}},_onColorAxisScaleSet:function(axis){switch(axis.index){case 0:this.colors=axis.scheme();break;case 1:if(this._allowV1SecondAxis){this.secondAxisColor=axis.scheme()}break}},_getRoleColorScale:function(roleName){return def.lazy(def.lazy(this,'_rolesColorScale'),roleName,this._createRoleColorScale,this)},_createRoleColorScale:function(roleName){var firstScale,scale;var valueToColorMap={};this.axesByType.color.forEach(function(axis){var axisRole=axis.role;var isRoleCompatible=(axisRole.name===roleName)||(axisRole.sourceRole&&axisRole.sourceRole.name===roleName);if(isRoleCompatible&&axis.scale&&(axis.index===0||axis.option.isSpecified('Colors')||axis.option.isSpecified('Map'))){scale=axis.scale;if(!firstScale){firstScale=scale}axis.domainValues.forEach(addDomainValue)}},this);function addDomainValue(value){var key=''+value;if(!def.hasOwnProp.call(valueToColorMap,key)){valueToColorMap[key]=scale(value)}}if(!firstScale){return pvc.createColorScheme()()}scale=function(value){var key=''+value;if(def.hasOwnProp.call(valueToColorMap,key)){return valueToColorMap[key]}var color=firstScale(value);valueToColorMap[key]=color;return color};def.copy(scale,firstScale);return scale},_onLaidOut:function(){}});
80   -pvc.BaseChart.add({basePanel:null,titlePanel:null,legendPanel:null,_multiChartPanel:null,_initChartPanels:function(hasMultiRole){this._initBasePanel();this._initTitlePanel();var legendPanel=this._initLegendPanel();if(!this.parent&&hasMultiRole){this._initMultiChartPanel();if(legendPanel){this._initLegendScenes(legendPanel)}}else{var options=this.options;if(legendPanel){this._initLegendScenes(legendPanel)}this._preRenderContent({margins:hasMultiRole?options.smallContentMargins:options.contentMargins,paddings:hasMultiRole?options.smallContentPaddings:options.contentPaddings,clickAction:options.clickAction,doubleClickAction:options.doubleClickAction})}},_preRenderContent:function(contentOptions){},_initBasePanel:function(){var options=this.options;var basePanelParent=this.parent&&this.parent._multiChartPanel;this.basePanel=new pvc.BasePanel(this,basePanelParent,{margins:this.margins,paddings:this.paddings,size:{width:this.width,height:this.height}})},_initTitlePanel:function(){var options=this.options;if(!def.empty(options.title)){var isRoot=!this.parent;this.titlePanel=new pvc.TitlePanel(this,this.basePanel,{title:options.title,font:options.titleFont,anchor:options.titlePosition,align:options.titleAlign,alignTo:options.titleAlignTo,offset:options.titleOffset,keepInBounds:options.titleKeepInBounds,margins:options.titleMargins,paddings:options.titlePaddings,titleSize:options.titleSize,titleSizeMax:options.titleSizeMax})}},_initLegendPanel:function(){var options=this.options;if(options.legend){var legend=new pvc.visual.Legend(this,'legend',0);this.legendPanel=new pvc.LegendPanel(this,this.basePanel,{anchor:legend.option('Position'),align:legend.option('Align'),alignTo:options.legendAlignTo,offset:options.legendOffset,keepInBounds:options.legendKeepInBounds,size:legend.option('Size'),sizeMax:legend.option('SizeMax'),margins:legend.option('Margins'),paddings:legend.option('Paddings'),font:legend.option('Font'),scenes:def.getPath(options,'legend.scenes'),textMargin:options.legendTextMargin,itemPadding:options.legendItemPadding,markerSize:options.legendMarkerSize});return this.legendPanel}},_getLegendBulletRootScene:function(){return this.legendPanel&&this.legendPanel._getBulletRootScene()},_initMultiChartPanel:function(){var basePanel=this.basePanel;var options=this.options;this._multiChartPanel=new pvc.MultiChartPanel(this,basePanel,{margins:options.contentMargins,paddings:options.contentPaddings});this._multiChartPanel.createSmallCharts();basePanel._children.unshift(basePanel._children.pop())},_coordinateSmallChartsLayout:function(scopesByType){},_initLegendScenes:function(legendPanel){var rootScene,dataPartDimName;var legendIndex=0;var colorAxes=this.axesByType.color;if(colorAxes){colorAxes.forEach(processAxis,this)}function processAxis(colorAxis){if(colorAxis.option('LegendVisible')){var dataCells=colorAxis&&colorAxis.dataCells;if(dataCells){dataCells.forEach(function(dataCell){if(dataCell.role.isDiscrete()){var domainData=dataCell.data;if(!rootScene){dataPartDimName=this._getDataPartDimName();rootScene=legendPanel._getBulletRootScene()}var dataPartAtom;var locked=colorAxis.option('LegendClickMode')==='toggleVisible'&&(dataPartAtom=domainData.atoms[dataPartDimName])&&dataPartAtom.value==='trend';var groupScene=rootScene.createGroup({group:domainData,colorAxis:colorAxis,clickMode:locked?'none':undefined,extensionPrefix:pvc.buildIndexedId('',legendIndex++)});dataCell.legendBulletGroupScene=groupScene;var partColorScale=colorAxis.scale;domainData.children().each(function(itemData){var itemScene=groupScene.createItem({group:itemData});itemScene.color=partColorScale(itemData.value)})}},this)}}}}});
81   -pvc.BaseChart.add({_updateSelectionSuspendCount:0,_lastSelectedDatums:null,clearSelections:function(){if(this.data.owner.clearSelected()){this.updateSelections()}return this},_updatingSelections:function(method,context){this._suspendSelectionUpdate();try{method.call(context||this)}finally{this._resumeSelectionUpdate()}},_suspendSelectionUpdate:function(){if(this===this.root){this._updateSelectionSuspendCount++}else{this.root._suspendSelectionUpdate()}},_resumeSelectionUpdate:function(){if(this===this.root){if(this._updateSelectionSuspendCount>0){if(!(--this._updateSelectionSuspendCount)){this.updateSelections()}}}else{this.root._resumeSelectionUpdate()}},updateSelections:function(keyArgs){if(this===this.root){if(this._inUpdateSelections){return this}if(this._updateSelectionSuspendCount){return this}var selectedChangedDatumMap=this._calcSelectedChangedDatums();if(!selectedChangedDatumMap){return}pvc.removeTipsyLegends();this._inUpdateSelections=true;try{var action=this.options.selectionChangedAction;if(action){var selectedDatums=this.data.selectedDatums();var selectedChangedDatums=selectedChangedDatumMap.values();action.call(this.basePanel._getContext(),selectedDatums,selectedChangedDatums)}if(def.get(keyArgs,'render',true)){this.useTextMeasureCache(function(){this.basePanel.renderInteractive()},this)}}finally{this._inUpdateSelections=false}}else{this.root.updateSelections()}return this},_calcSelectedChangedDatums:function(){var selectedChangedDatums;var nowSelectedDatums=this.data.selectedDatumMap();var lastSelectedDatums=this._lastSelectedDatums;if(!lastSelectedDatums){if(!nowSelectedDatums.count){return}selectedChangedDatums=nowSelectedDatums.clone()}else{selectedChangedDatums=lastSelectedDatums.symmetricDifference(nowSelectedDatums);if(!selectedChangedDatums.count){return}}this._lastSelectedDatums=nowSelectedDatums;var datums=this._lastSelectedDatums?this._lastSelectedDatums.values():[];return selectedChangedDatums},_onUserSelection:function(datums){if(!datums||!datums.length){return datums}if(this===this.root){var action=this.options.userSelectionAction;if(action){return action.call(null,datums)||datums}return datums}return this.root._onUserSelection(datums)},_isSelectable:function(){return this.options.selectable},_canSelectWithRubberband:function(){var options=this.options;return options.selectable&&options.selectionMode==='rubberband'},_canSelectWithClick:function(){return this._canSelectWithRubberband()},_canSelectWithFocusWindow:function(){var options=this.options;return options.selectable&&options.selectionMode==='focuswindow'}});
82   -pvc.BaseChart.add({_processExtensionPoints:function(){var components;if(!this.parent){var points=this.options.extensionPoints;components={};if(points){for(var p in points){var id,prop;var splitIndex=p.indexOf("_");if(splitIndex>0){id=p.substring(0,splitIndex);prop=p.substr(splitIndex+1);if(id&&prop){var component=def.getOwn(components,id)||(components[id]=new def.OrderedMap());component.add(prop,points[p])}}}}}else{components=this.parent._components}this._components=components},extend:function(mark,ids,keyArgs){if(def.array.is(ids)){ids.forEach(function(id){this._extendCore(mark,id,keyArgs)},this)}else{this._extendCore(mark,ids,keyArgs)}},_extendCore:function(mark,id,keyArgs){if(mark){var component=def.getOwn(this._components,id);if(component){if(mark.borderPanel){mark=mark.borderPanel}var logOut=pvc.debug>=3?[]:null;var constOnly=def.get(keyArgs,'constOnly',false);var wrap=mark.wrap;var keyArgs2={tag:pvc.extensionTag};var isRealMark=mark instanceof pv.Mark;component.forEach(function(v,m){if(mark.isLocked&&mark.isLocked(m)){if(logOut){logOut.push(m+": locked extension point!")}}else if(mark.isIntercepted&&mark.isIntercepted(m)){if(logOut){logOut.push(m+":"+pvc.stringify(v)+" (controlled)")}}else{if(logOut){logOut.push(m+": "+pvc.stringify(v))}if(v!=null){var type=typeof v;if(type==='object'){if(m==='svg'||m==='css'){var v2=mark.propertyValue(m);if(v2){v=def.copy(v2,v)}}}else if(isRealMark&&(wrap||constOnly)&&type==='function'){if(constOnly){return}if(m!=='add'){v=wrap.call(mark,v,m)}}}if(typeof mark[m]==="function"){if(m!='add'&&mark.intercept){mark.intercept(m,v,keyArgs2)}else{mark[m](v)}}else{mark[m]=v}}});if(logOut){if(logOut.length){this._log("Applying Extension Points for: '"+id+"'\n\t* "+logOut.join("\n\t* "))}else if(pvc.debug>=5){this._log("No Extension Points for: '"+id+"'")}}}}else if(pvc.debug>=4){this._log("Applying Extension Points for: '"+id+"' (target mark does not exist)")}},_getExtension:function(id,prop){var component;if(!def.array.is(id)){component=def.getOwn(this._components,id);if(component){return component.get(prop)}}else{var i=id.length-1,value;while(i>=0){component=def.getOwn(this._components,id[i--]);if(component&&(value=component.get(prop))!==undefined){return value}}}},_getConstantExtension:function(id,prop){var value=this._getExtension(id,prop);if(!def.fun.is(value)){return value}}});
83   -def.type('pvc.BasePanel',pvc.Abstract).init(function(chart,parent,options){this.chart=chart;this.base();this.axes={};if(options){if(options.scenes){this._sceneTypeExtensions=options.scenes;delete options.scenes}var axes=options.axes;if(axes){def.copy(this.axes,axes);delete options.axes}}$.extend(this,options);this.chart=chart;if(!this.axes.color){this.axes.color=chart.axes.color}this.position={};var margins=options&&options.margins;if(!parent&&margins===undefined){margins=3}this.margins=new pvc.Sides(margins);this.paddings=new pvc.Sides(options&&options.paddings);this.size=new pvc.Size(options&&options.size);this.sizeMax=new pvc.Size(options&&options.sizeMax);if(!parent){this.parent=null;this.root=this;this.topRoot=this;this.isRoot=true;this.isTopRoot=true;this.data=this.chart.data}else{this.parent=parent;this.isTopRoot=false;this.isRoot=(parent.chart!==chart);this.root=this.isRoot?this:parent.root;this.topRoot=parent.topRoot;this.data=parent.data;if(this.isRoot){this.position.left=chart.left;this.position.top=chart.top}parent._addChild(this)}if(this.isRoot){this.anchor=null;this.align=null;this.alignTo=null;this.offset=null}else{this.align=pvc.parseAlign(this.anchor,this.align);var alignTo=this.alignTo;var side=this.anchor;if(alignTo!=null&&alignTo!==''&&(side==='left'||side==='right')){if(alignTo!=='page-middle'){if(!isNaN(+alignTo.charAt(0))){alignTo=pvc.PercentValue.parse(alignTo)}else{alignTo=pvc.parseAlign(side,alignTo)}}}else{alignTo=this.align}this.alignTo=alignTo;this.offset=new pvc.Offset(this.offset)}if(this.borderWidth==null){var borderWidth;var extensionId=this._getExtensionId();if(extensionId){var strokeStyle=this._getExtension(extensionId,'strokeStyle');if(strokeStyle!=null){borderWidth=+this._getConstantExtension(extensionId,'lineWidth');if(isNaN(borderWidth)||!isFinite(borderWidth)){borderWidth=null}}}this.borderWidth=borderWidth==null?0:1.5}}).add({chart:null,parent:null,_children:null,type:pv.Panel,_extensionPrefix:'',height:null,width:null,borderWidth:null,anchor:"top",pvPanel:null,margins:null,paddings:null,isRoot:false,isTopRoot:false,root:null,topRoot:null,_layoutInfo:null,_signs:null,data:null,dataPartValue:null,_isAnimating:0,_isRubberBandSelecting:false,_ignoreClicks:0,_v1DimRoleName:{'series':'series','category':'category','value':'value'},_sceneTypeExtensions:null,clickAction:null,doubleClickAction:null,compatVersion:function(options){return this.chart.compatVersion(options)},_createLogInstanceId:function(){return""+this.constructor+this.chart._createLogChildSuffix()},defaultVisibleBulletGroupScene:function(){var colorAxis=this.axes.color;if(colorAxis&&colorAxis.option('LegendVisible')){var dataPartValue=this.dataPartValue;return def.query(colorAxis.dataCells).where(function(dataCell){return dataCell.dataPartValue===dataPartValue}).select(function(dataCell){return dataCell.legendBulletGroupScene}).first(def.truthy)}return null},_getLegendBulletRootScene:function(){return this.chart._getLegendBulletRootScene()},_addChild:function(child){child.parent===this||def.assert("Child has a != parent.");(this._children||(this._children=[])).push(child)},_addSign:function(sign){(this._signs||(this._signs=[])).push(sign)},visibleData:function(){return this.chart.visibleData(this.dataPartValue)},layout:function(availableSize,keyArgs){if(!this._layoutInfo||def.get(keyArgs,'force',false)){var referenceSize=def.get(keyArgs,'referenceSize');if(!referenceSize&&availableSize){referenceSize=def.copyOwn(availableSize)}var desiredSize=this.size.resolve(referenceSize);var sizeMax=this.sizeMax.resolve(referenceSize);if(!availableSize){if(desiredSize.width==null||desiredSize.height==null){throw def.error.operationInvalid("Panel layout without width or height set.")}availableSize=def.copyOwn(desiredSize)}if(!referenceSize&&availableSize){referenceSize=def.copyOwn(availableSize)}if(sizeMax.width!=null&&availableSize.width>sizeMax.width){availableSize.width=sizeMax.width}if(sizeMax.height!=null&&availableSize.height>sizeMax.height){availableSize.height=sizeMax.height}var halfBorder=this.borderWidth/2;var realMargins=(def.get(keyArgs,'margins')||this.margins).resolve(referenceSize);var realPaddings=(def.get(keyArgs,'paddings')||this.paddings).resolve(referenceSize);var margins=pvc.Sides.inflate(realMargins,halfBorder);var paddings=pvc.Sides.inflate(realPaddings,halfBorder);var spaceWidth=margins.width+paddings.width;var spaceHeight=margins.height+paddings.height;var availableClientSize=new pvc.Size(Math.max(availableSize.width-spaceWidth,0),Math.max(availableSize.height-spaceHeight,0));var desiredClientSize=def.copyOwn(desiredSize);if(desiredClientSize.width!=null){desiredClientSize.width=Math.max(desiredClientSize.width-spaceWidth,0)}if(desiredClientSize.height!=null){desiredClientSize.height=Math.max(desiredClientSize.height-spaceHeight,0)}var prevLayoutInfo=this._layoutInfo||null;var canChange=def.get(keyArgs,'canChange',true);var layoutInfo=this._layoutInfo={canChange:canChange,referenceSize:referenceSize,realMargins:realMargins,realPaddings:realPaddings,borderWidth:this.borderWidth,margins:margins,paddings:paddings,desiredClientSize:desiredClientSize,clientSize:availableClientSize,pageClientSize:prevLayoutInfo?prevLayoutInfo.pageClientSize:availableClientSize.clone(),previous:prevLayoutInfo};if(prevLayoutInfo){delete prevLayoutInfo.previous;delete prevLayoutInfo.pageClientSize}var clientSize=this._calcLayout(layoutInfo);var size;if(!clientSize){size=availableSize;clientSize=availableClientSize}else{layoutInfo.clientSize=clientSize;size={width:clientSize.width+spaceWidth,height:clientSize.height+spaceHeight}}this.isVisible=(clientSize.width>0&&clientSize.height>0);delete layoutInfo.desiredClientSize;this.width=size.width;this.height=size.height;if(!canChange&&prevLayoutInfo){delete layoutInfo.previous}if(pvc.debug>=5){this._log("Size = "+pvc.stringify(size));this._log("Margins = "+pvc.stringify(layoutInfo.margins));this._log("Paddings = "+pvc.stringify(layoutInfo.paddings));this._log("ClientSize = "+pvc.stringify(layoutInfo.clientSize))}this._onLaidOut()}},_onLaidOut:function(){if(this.isRoot){this.chart._onLaidOut()}},_calcLayout:function(layoutInfo){var clientSize;var me=this;var margins,remSize,useLog;if(me._children){var aolMap=pvc.BasePanel.orthogonalLength;var aoMap=pvc.BasePanel.relativeAnchor;var altMap=pvc.BasePanel.leftTopAnchor;var aofMap=pvc.Offset.namesSidesToOffset;var fillChildren=[];var sideChildren=[];me._children.forEach(function(child){var a=child.anchor;if(a){if(a==='fill'){fillChildren.push(child)}else{def.hasOwn(aoMap,a)||def.fail.operationInvalid("Unknown anchor value '{0}'",[a]);sideChildren.push(child)}}});useLog=pvc.debug>=5;clientSize=def.copyOwn(layoutInfo.clientSize);var childKeyArgs={force:true,referenceSize:clientSize};if(useLog){me._group("CCC DOCK LAYOUT clientSize = "+pvc.stringify(clientSize))}try{doMaxTimes(5,layoutCycle,me)}finally{if(useLog){me._groupEnd()}}}return clientSize;function doMaxTimes(maxTimes,fun,ctx){var index=0;while(maxTimes--){if(fun.call(ctx,maxTimes,index)===false){return true}index++}return false}function layoutCycle(remTimes,iteration){if(useLog){me._group("LayoutCycle #"+(iteration+1)+" (remaining: "+remTimes+")")}try{var canResize=(remTimes>0);margins=new pvc.Sides(0);remSize=def.copyOwn(clientSize);var child;var index=0;var count=sideChildren.length;while(index<count){child=sideChildren[index];if(useLog){me._group("SIDE Child #"+(index+1)+" at "+child.anchor)}try{if(layoutChild.call(this,child,canResize)){return true}}finally{if(useLog){me._groupEnd()}}index++}index=0;count=fillChildren.length;while(index<count){child=fillChildren[index];if(useLog){me._group("FILL Child #"+(index+1))}try{if(layoutChild.call(this,child,canResize)){return true}}finally{if(useLog){me._groupEnd()}}index++}return false}finally{if(useLog){me._groupEnd()}}}function layoutChild(child,canResize){var resized=false;var paddings;childKeyArgs.canChange=canResize;doMaxTimes(3,function(remTimes,iteration){if(useLog){me._group("Attempt #"+(iteration+1))}try{childKeyArgs.paddings=paddings;childKeyArgs.canChange=remTimes>0;child.layout(new pvc.Size(remSize),childKeyArgs);if(child.isVisible){resized=checkChildResize.call(this,child,canResize);if(resized){return false}var requestPaddings=child._layoutInfo.requestPaddings;if(checkPaddingsChanged(paddings,requestPaddings)){paddings=requestPaddings;if(remTimes>0){paddings=new pvc.Sides(paddings);if(useLog){this._log("Child requested paddings change: "+pvc.stringify(paddings))}return true}if(pvc.debug>=2){this._warn("Child requests paddings change but iterations limit has been reached.")}}positionChild.call(this,child);if(child.anchor!=='fill'){updateSide.call(this,child)}}return false}finally{if(useLog){me._groupEnd()}}},this);return resized}function checkPaddingsChanged(paddings,newPaddings){if(!newPaddings){return false}return def.query(pvc.Sides.names).each(function(side){var curPad=(paddings&&paddings[side])||0;var newPad=(newPaddings&&newPaddings[side])||0;if(Math.abs(newPad-curPad)>=0.1){return false}})}function checkChildResize(child,canResize){var resized=false;var addWidth=child.width-remSize.width;if(addWidth>0){if(pvc.debug>=3){this._log("Child added width = "+addWidth)}if(!canResize){if(pvc.debug>=2){this._warn("Child wanted more width, but layout iterations limit has been reached.")}}else{resized=true;remSize.width+=addWidth;clientSize.width+=addWidth}}var addHeight=child.height-remSize.height;if(addHeight>0){if(pvc.debug>=3){this._log("Child added height ="+addHeight)}if(!canResize){if(pvc.debug>=2){this._warn("Child wanted more height, but layout iterations limit has been reached.")}}else{resized=true;remSize.height+=addHeight;clientSize.height+=addHeight}}return resized}function positionChild(child){var side=child.anchor;var align=child.align;var alignTo=child.alignTo;var sidePos;if(side==='fill'){side='left';sidePos=margins.left+remSize.width/2-(child.width/2);align=alignTo='middle'}else{sidePos=margins[side]}var sideo,sideOPosChildOffset;switch(align){case'top':case'bottom':case'left':case'right':sideo=align;sideOPosChildOffset=0;break;case'center':case'middle':sideo=altMap[aoMap[side]];sideOPosChildOffset=-child[aolMap[sideo]]/2;break}var sideOPosParentOffset;var sideOTo;switch(alignTo){case'top':case'bottom':case'left':case'right':sideOTo=alignTo;sideOPosParentOffset=(sideOTo!==sideo)?remSize[aolMap[sideo]]:0;break;case'center':case'middle':sideOTo=altMap[aoMap[side]];sideOPosParentOffset=remSize[aolMap[sideo]]/2;break;case'page-center':case'page-middle':sideOTo=altMap[aoMap[side]];var lenProp=aolMap[sideo];var pageLen=Math.min(remSize[lenProp],layoutInfo.pageClientSize[lenProp]);sideOPosParentOffset=pageLen/2;break}var sideOPos=margins[sideOTo]+sideOPosParentOffset+sideOPosChildOffset;var resolvedOffset=child.offset.resolve(remSize);if(resolvedOffset){sidePos+=resolvedOffset[aofMap[side]]||0;sideOPos+=resolvedOffset[aofMap[sideo]]||0}if(child.keepInBounds){if(sidePos<0){sidePos=0}if(sideOPos<0){sideOPos=0}}child.setPosition(def.set({},side,sidePos,sideo,sideOPos))}function updateSide(child){var side=child.anchor;var sideol=aolMap[side];var olen=child[sideol];margins[side]+=olen;remSize[sideol]-=olen}},invalidateLayout:function(){this._layoutInfo=null;if(this._children){this._children.forEach(function(child){child.invalidateLayout()})}},_create:function(force){if(!this.pvPanel||force){this.pvPanel=null;delete this._signs;this.layout();if(!this.isVisible){return}if(this.isRoot){this._creating()}var margins=this._layoutInfo.margins;var paddings=this._layoutInfo.paddings;if(this.isTopRoot){this.pvRootPanel=this.pvPanel=new pv.Panel().canvas(this.chart.options.canvas);if(margins.width>0||margins.height>0){this.pvPanel.width(this.width).height(this.height);this.pvPanel=this.pvPanel.add(pv.Panel)}}else{this.pvPanel=this.parent.pvPanel.add(this.type)}var pvBorderPanel=this.pvPanel;var width=this.width-margins.width;var height=this.height-margins.height;pvBorderPanel.width(width).height(height);if(pvc.debug>=15&&(margins.width>0||margins.height>0)){(this.isTopRoot?this.pvRootPanel:this.parent.pvPanel).add(this.type).width(this.width).height(this.height).left(this.position.left!=null?this.position.left:null).right(this.position.right!=null?this.position.right:null).top(this.position.top!=null?this.position.top:null).bottom(this.position.bottom!=null?this.position.bottom:null).strokeStyle('orange').lineWidth(1).strokeDasharray('- .')}var hasPositions={};def.eachOwn(this.position,function(v,side){pvBorderPanel[side](v+margins[side]);hasPositions[this.anchorLength(side)]=true},this);if(!hasPositions.width){if(margins.left>0){pvBorderPanel.left(margins.left)}if(margins.right>0){pvBorderPanel.right(margins.right)}}if(!hasPositions.height){if(margins.top>0){pvBorderPanel.top(margins.top)}if(margins.bottom>0){pvBorderPanel.bottom(margins.bottom)}}if(paddings.width>0||paddings.height>0){this.pvPanel=pvBorderPanel.add(pv.Panel).width(width-paddings.width).height(height-paddings.height).left(paddings.left).top(paddings.top)}pvBorderPanel.borderPanel=pvBorderPanel;pvBorderPanel.paddingPanel=this.pvPanel;this.pvPanel.paddingPanel=this.pvPanel;this.pvPanel.borderPanel=pvBorderPanel;if(pvc.debug>=15){this.pvPanel.strokeStyle('lightgreen').lineWidth(1).strokeDasharray('- ');if(this.pvPanel!==pvBorderPanel){pvBorderPanel.strokeStyle('blue').lineWidth(1).strokeDasharray('. ')}}var extensionId=this._getExtensionId();new pvc.visual.Panel(this,null,{panel:pvBorderPanel,extensionId:extensionId});this._createCore(this._layoutInfo);if(this.isTopRoot&&pv.renderer()!=='batik'&&this.chart._canSelectWithRubberband()){this._initRubberBand()}this.applyExtensions()}},_creating:function(){if(this._children){this._children.forEach(function(child){child._creating()})}},_createCore:function(){if(this._children){this._children.forEach(function(child){child._create()})}},render:function(keyArgs){if(!this.isTopRoot){return this.topRoot.render(keyArgs)}this._create(def.get(keyArgs,'recreate',false));if(!this.isVisible){return}this._onRender();var options=this.chart.options;var pvPanel=this.pvRootPanel;var animate=this.chart._animatable&&options.animate;this._isAnimating=animate&&!def.get(keyArgs,'bypassAnimation',false)?1:0;try{pvPanel.render();if(this._isAnimating){this._isAnimating=2;var me=this;pvPanel.transition().duration(2000).ease("cubic-in-out").start(function(){me._isAnimating=0;me._onRenderEnd(true)})}else{this._onRenderEnd(false)}}finally{this._isAnimating=0}},_onRender:function(){var renderCallback=this.chart.options.renderCallback;if(renderCallback){if(this.compatVersion()<=1){renderCallback.call(this.chart)}else{var context=this._getContext();renderCallback.call(context,context.scene)}}},_onRenderEnd:function(animated){if(this._children){this._children.forEach(function(child){child._onRenderEnd(animated)})}},renderInteractive:function(){if(this.isVisible){var pvMarks=this._getSelectableMarks();if(pvMarks&&pvMarks.length){pvMarks.forEach(function(pvMark){pvMark.render()})}else if(!this._children){this.pvPanel.render();return}if(this._children){this._children.forEach(function(child){child.renderInteractive()})}}},_getSelectableMarks:function(){return null},animate:function(start,end){return(this.topRoot._isAnimating===1)?start:end},isAnimatingStart:function(){return(this.topRoot._isAnimating===1)},isAnimating:function(){return(this.topRoot._isAnimating>0)},setPosition:function(position){for(var side in position){if(def.hasOwn(pvc.Sides.namesSet,side)){var s=position[side];if(s===null){delete this.position[side]}else{s=+s;if(!isNaN(s)&&isFinite(s)){this.position[side]=s}}}}},createAnchoredSize:function(anchorLength,size){if(this.isAnchorTopOrBottom()){return new pvc.Size(size.width,Math.min(size.height,anchorLength))}return new pvc.Size(Math.min(size.width,anchorLength),size.height)},applyExtensions:function(){if(this._signs){this._signs.forEach(function(sign){sign.applyExtensions()})}},extend:function(mark,id,keyArgs){this.chart.extend(mark,this._makeExtensionAbsId(id),keyArgs)},extendAbs:function(mark,absId,keyArgs){this.chart.extend(mark,absId,keyArgs)},_extendSceneType:function(typeKey,type,names){var typeExts=def.get(this._sceneTypeExtensions,typeKey);if(typeExts){pvc.extendType(type,typeExts,names)}},_absBaseExtId:{abs:'base'},_absSmallBaseExtId:{abs:'smallBase'},_getExtensionId:function(){if(this.isRoot){return!this.chart.parent?this._absBaseExtId:this._absSmallBaseExtId}},_getExtensionPrefix:function(){return this._extensionPrefix},_makeExtensionAbsId:function(id){return pvc.makeExtensionAbsId(id,this._getExtensionPrefix())},_getExtension:function(id,prop){return this.chart._getExtension(this._makeExtensionAbsId(id),prop)},_getExtensionAbs:function(absId,prop){return this.chart._getExtension(absId,prop)},_getConstantExtension:function(id,prop){return this.chart._getConstantExtension(this._makeExtensionAbsId(id),prop)},getPvPanel:function(layer){var mainPvPanel=this.pvPanel;if(!layer){return mainPvPanel}if(!this.parent){throw def.error.operationInvalid("Layers are not possible in a root panel.")}if(!mainPvPanel){throw def.error.operationInvalid("Cannot access layer panels without having created the main panel.")}var pvPanel=null;if(!this._layers){this._layers={}}else{pvPanel=this._layers[layer]}if(!pvPanel){var pvParentPanel=this.parent.pvPanel;pvPanel=pvParentPanel.borderPanel.add(this.type).extend(mainPvPanel.borderPanel);var pvBorderPanel=pvPanel;if(mainPvPanel!==mainPvPanel.borderPanel){pvPanel=pvBorderPanel.add(pv.Panel).extend(mainPvPanel)}pvBorderPanel.borderPanel=pvBorderPanel;pvBorderPanel.paddingPanel=pvPanel;pvPanel.paddingPanel=pvPanel;pvPanel.borderPanel=pvBorderPanel;this.initLayerPanel(pvPanel,layer);this._layers[layer]=pvPanel}return pvPanel},initLayerPanel:function(){},_getV1DimName:function(v1Dim){var dimNames=this._v1DimName||(this._v1DimNameCache={});var dimName=dimNames[v1Dim];if(dimName==null){var role=this.chart.visualRoles(this._v1DimRoleName[v1Dim],{assertExists:false});dimName=role?role.firstDimensionName():'';dimNames[v1Dim]=dimName}return dimName},_getV1Datum:function(scene){return scene.datum},_createContext:function(mark,ev){return new pvc.visual.Context(this,mark,ev)},_getContext:function(mark,ev){var context=this._context;if(!context||context.isPinned){this._context=this._createContext(mark,ev)}else{visualContext_update.call(context,mark,ev)}return this._context},_isTooltipEnabled:function(){return!this.isRubberBandSelecting()&&!this.isAnimating()},_ensurePropEvents:function(pvMark){var events=pvMark.propertyValue('events',true);if(!events||events==='none'){pvMark.events('all')}},_addPropHoverable:function(pvMark){var panel=this;var onEvent;var offEvent;onEvent='mouseover';offEvent='mouseout';pvMark.event(onEvent,function(scene){if(!panel.isRubberBandSelecting()&&!panel.isAnimating()){scene.setActive(true);panel.renderInteractive()}}).event(offEvent,function(scene){if(!panel.isRubberBandSelecting()&&!panel.isAnimating()){if(scene.clearActive()){panel.renderInteractive()}}});this._ensurePropEvents(pvMark)},_addPropTooltip:function(pvMark,keyArgs){var chartTipOptions=this.chart._tooltipOptions;var tipOptions;var nowTipOptions=def.get(keyArgs,'options');if(nowTipOptions){tipOptions=def.create(chartTipOptions,nowTipOptions)}else{tipOptions=Object.create(chartTipOptions)}var buildTooltip=def.get(keyArgs,'buildTooltip')||this._getTooltipBuilder(tipOptions);if(!buildTooltip){return}tipOptions.isEnabled=this._isTooltipEnabled.bind(this);var tipsyEvent=def.get(keyArgs,'tipsyEvent');if(!tipsyEvent){tipsyEvent='mouseover'}var isLazy=def.get(keyArgs,'isLazy',true);pvMark.localProperty("tooltip").tooltip(this._createTooltipProp(pvMark,buildTooltip,isLazy)).title(function(){return''}).event(tipsyEvent,pv.Behavior.tipsy(tipOptions));this._ensurePropEvents(pvMark)},_getTooltipBuilder:function(tipOptions){var options=this.chart.options;var isV1Compat=this.compatVersion()<=1;var tooltipFormat=tipOptions.format;if(!tooltipFormat){if(!isV1Compat){return this._buildDataTooltip}tooltipFormat=options.v1StyleTooltipFormat;if(!tooltipFormat){return}}if(isV1Compat){return function(context){return tooltipFormat.call(context.panel,context.getV1Series(),context.getV1Category(),context.getV1Value()||'',context.getV1Datum())}}return function(context){return tooltipFormat.call(context,context.scene)}},_createTooltipProp:function(pvMark,buildTooltip,isLazy){var myself=this;if(!isLazy){return function(){var context=myself._getContext(pvMark,null);if(context.scene.isIntermediate){return null}return buildTooltip.call(myself,context)}}return function(){var context=myself._getContext(pvMark,null);if(context.scene.isIntermediate){return null}context.pin();var tooltip;return function(){if(tooltip==null){tooltip=buildTooltip.call(myself,context);context=null}return tooltip}}},_requirePointEvent:function(radius){if(!this.isTopRoot){return this.topRoot._requirePointEvent(radius)}if(!this._attachedPointEvent){this.pvPanel.events('all').event("mousemove",pv.Behavior.point(radius||20));this._attachedPointEvent=true}},_buildDataTooltip:function(context){var scene=context.scene;if(!scene.datum){return""}var group=scene.group;var isMultiDatumGroup=group&&group.count()>1;var firstDatum=scene.datum;if(!isMultiDatumGroup&&(!firstDatum||firstDatum.isNull)){return""}var data=this.data;var visibleKeyArgs={visible:true};var tooltip=[];if(firstDatum.isInterpolated){tooltip.push('<i>Interpolation</i>: '+def.html.escape(firstDatum.interpolation)+'<br/>')}else if(firstDatum.isTrend){tooltip.push('<i>Trend</i>: '+def.html.escape(firstDatum.trendType)+'<br/>')}var complexType=data.type;var playingPercentMap=context.panel.stacked===false?null:complexType.getPlayingPercentVisualRoleDimensionMap();var percentValueFormat=playingPercentMap?this.chart.options.percentValueFormat:null;var commonAtoms=isMultiDatumGroup?group.atoms:scene.datum.atoms;var commonAtomsKeys=complexType.sortDimensionNames(def.keys(commonAtoms));function addDim(escapedDimLabel,label){tooltip.push('<b>'+escapedDimLabel+"</b>: "+(def.html.escape(label)||" - ")+'<br/>')}function calcPercent(atom,dimName){var pct;if(group){pct=group.dimensions(dimName).percentOverParent(visibleKeyArgs)}else{pct=data.dimensions(dimName).percent(atom.value)}return percentValueFormat(pct)}var anyCommonAtom=false;commonAtomsKeys.forEach(function(dimName){var atom=commonAtoms[dimName];var dimType=atom.dimension.type;if(!dimType.isHidden){if(!isMultiDatumGroup||atom.value!=null){anyCommonAtom=true;var valueLabel=atom.label;if(playingPercentMap&&playingPercentMap.has(dimName)){valueLabel+=" ("+calcPercent(atom,dimName)+")"}addDim(def.html.escape(atom.dimension.type.label),valueLabel)}}},this);if(isMultiDatumGroup){if(anyCommonAtom){tooltip.push('<hr />')}tooltip.push("<b>#</b>: "+group._datums.length+'<br/>');complexType.sortDimensionNames(group.freeDimensionNames()).forEach(function(dimName){var dim=group.dimensions(dimName);if(!dim.type.isHidden){var dimLabel=def.html.escape(dim.type.label),valueLabel;if(dim.type.valueType===Number){valueLabel=dim.format(dim.sum(visibleKeyArgs));if(playingPercentMap&&playingPercentMap.has(dimName)){valueLabel+=" ("+calcPercent(null,dimName)+")"}dimLabel="&sum; "+dimLabel}else{valueLabel=dim.atoms(visibleKeyArgs).map(function(atom){return atom.label||"- "}).join(", ")}addDim(dimLabel,valueLabel)}})}return'<div style="text-align: left;">'+tooltip.join('\n')+'</div>'},_addPropClick:function(pvMark){var myself=this;function onClick(){var ev=arguments[arguments.length-1];return myself._handleClick(this,ev)}pvMark.cursor("pointer").event("click",onClick);this._ensurePropEvents(pvMark)},_addPropDoubleClick:function(pvMark){var myself=this;function onDoubleClick(){var ev=arguments[arguments.length-1];return myself._handleDoubleClick(this,ev)}pvMark.cursor("pointer").event("dblclick",onDoubleClick);this._ensurePropEvents(pvMark)},_isDoubleClickable:function(keyArgs){var options=keyArgs||this.chart.options;return options.clickable&&!!this.doubleClickAction},_handleDoubleClick:function(pvMark,ev){if(!this._isDoubleClickable()){return}this._ignoreClicks=2;var sign=pvMark.sign;if(!sign||sign.isDoubleClickable()){var context=this._getContext(pvMark,ev);this._onDoubleClick(context)}},_onDoubleClick:function(context){var handler=this.doubleClickAction;if(handler){if(this.compatVersion()<=1){this._onV1DoubleClick(context,handler)}else{handler.call(context,context.scene)}}},_onV1DoubleClick:function(context,handler){handler.call(context.pvMark,context.getV1Series(),context.getV1Category(),context.getV1Value(),context.event,context.getV1Datum())},_isClickable:function(){return this.chart.options.clickable&&!!this.clickAction},_shouldHandleClick:function(){return this.chart._canSelectWithClick()||this._isClickable()},_handleClick:function(pvMark,ev){if(!this._shouldHandleClick()){return}var options=this.chart.options,context;if(!this.doubleClickAction){context=this._getContext(pvMark,ev);this._handleClickCore(context)}else{var myself=this;context=this._createContext(pvMark,ev);window.setTimeout(function(){myself._handleClickCore.call(myself,context)},options.doubleClickMaxDelay||300)}},_handleClickCore:function(context){if(this._ignoreClicks){this._ignoreClicks--}else{var sign=context.sign;if(!sign||sign.isClickable()){this._onClick(context)}if((sign&&sign.isSelectable())||(!sign&&this.chart.options.selectable&&context.scene.datum)){this._onSelect(context)}}},_onClick:function(context){var handler=this.clickAction;if(handler){if(this.compatVersion()<=1){this._onV1Click(context,handler)}else{handler.call(context,context.scene)}}},_onV1Click:function(context,handler){handler.call(context.pvMark,context.getV1Series(),context.getV1Category(),context.getV1Value(),context.event,context.getV1Datum())},_onSelect:function(context){var datums=context.scene.datums().array();if(datums.length){var chart=this.chart;chart._updatingSelections(function(){datums=chart._onUserSelection(datums);if(datums&&datums.length){if(chart.options.ctrlSelectMode&&!context.event.ctrlKey){chart.data.replaceSelected(datums)}else{pvc.data.Data.toggleSelected(datums)}}},this)}},isRubberBandSelecting:function(){return this.topRoot._isRubberBandSelecting},_initRubberBand:function(){var myself=this,chart=this.chart,options=chart.options,data=chart.data;var dMin2=4;this._isRubberBandSelecting=false;var rubberPvParentPanel=this.pvRootPanel||this.pvPanel.paddingPanel,toScreen,rb;var selectBar=this.selectBar=new pvc.visual.Bar(this,rubberPvParentPanel,{extensionId:'rubberBand',normalStroke:true,noHover:true,noSelect:true,noClick:true,noDoubleClick:true,noTooltip:true}).override('defaultStrokeWidth',function(){return 1.5}).override('defaultColor',function(type){return type==='stroke'?'#86fe00':'rgba(203, 239, 163, 0.6)'}).override('interactiveColor',function(color){return color}).pvMark.lock('visible',function(){return!!rb}).lock('left',function(){return rb.x}).lock('right').lock('top',function(){return rb.y}).lock('bottom').lock('width',function(){return rb.dx}).lock('height',function(){return rb.dy}).lock('cursor').lock('events','none');if(!this._getExtensionAbs('base','fillStyle')){rubberPvParentPanel.fillStyle(pvc.invisibleFill)}rubberPvParentPanel.lock('events','all');var scene=new pvc.visual.Scene(null,{panel:this});scene.x=scene.y=scene.dx=scene.dy=0;var selectionEndedDate;rubberPvParentPanel.lock('data',[scene]).event('mousedown',pv.Behavior.select().autoRender(false)).event('select',function(){if(!rb){if(myself.isAnimating()){return}if(scene.dx*scene.dx+scene.dy*scene.dy<=dMin2){return}rb=new pv.Shape.Rect(scene.x,scene.y,scene.dx,scene.dy);myself._isRubberBandSelecting=true;if(!toScreen){toScreen=rubberPvParentPanel.toScreenTransform()}myself.rubberBand=rb.apply(toScreen)}else{rb=new pv.Shape.Rect(scene.x,scene.y,scene.dx,scene.dy)}selectBar.render()}).event('selectend',function(){if(rb){var ev=arguments[arguments.length-1];if(!toScreen){toScreen=rubberPvParentPanel.toScreenTransform()}var rbs=rb.apply(toScreen);rb=null;myself._isRubberBandSelecting=false;selectBar.render();try{myself._processRubberBand(rbs,ev,{allowAdditive:true})}finally{selectionEndedDate=new Date()}}});if(options.clearSelectionMode==='emptySpaceClick'){rubberPvParentPanel.event("click",function(){if(selectionEndedDate){var timeSpan=new Date()-selectionEndedDate;if(timeSpan<300){selectionEndedDate=null;return}}if(data.owner.clearSelected()){myself.chart.updateSelections()}})}},_processRubberBand:function(rb,ev,keyArgs){this.rubberBand=rb;try{this._onRubberBandSelectionEnd(ev,keyArgs)}finally{this.rubberBand=null}},_onRubberBandSelectionEnd:function(ev,keyArgs){if(pvc.debug>=10){this._log("rubberBand "+pvc.stringify(this.rubberBand))}keyArgs=Object.create(keyArgs||{});keyArgs.toggle=false;var datums=this._getDatumsOnRubberBand(ev,keyArgs);if(datums){var allowAdditive=def.get(keyArgs,'allowAdditive',true);var chart=this.chart;chart._updatingSelections(function(){var clearBefore=!allowAdditive||(!ev.ctrlKey&&chart.options.ctrlSelectMode);if(clearBefore){chart.data.owner.clearSelected();pvc.data.Data.setSelected(datums,true)}else if(keyArgs.toggle){pvc.data.Data.toggleSelected(datums)}else{pvc.data.Data.setSelected(datums,true)}})}},_getDatumsOnRubberBand:function(ev,keyArgs){var datumMap=new def.Map();this._getDatumsOnRect(datumMap,this.rubberBand,keyArgs);var datums=datumMap.values();if(datums.length){datums=this.chart._onUserSelection(datums);if(datums&&!datums.length){datums=null}}return datums},_getDatumsOnRect:function(datumMap,rect,keyArgs){this._getOwnDatumsOnRect(datumMap,rect,keyArgs);if(this._children){this._children.forEach(function(child){child._getDatumsOnRect(datumMap,rect,keyArgs)},this)}},_getOwnDatumsOnRect:function(datumMap,rect,keyArgs){var any=false;if(this.isVisible){var pvMarks=this._getSelectableMarks();if(pvMarks&&pvMarks.length){pvMarks.forEach(function(pvMark){this._eachMarkDatumOnRect(pvMark,rect,function(datum){datumMap.set(datum.id,datum);any=true},this,def.get(keyArgs,'markSelectionMode'))},this)}}return any},_eachMarkDatumOnRect:function(pvMark,rect,fun,ctx,selectionMode){var sign=pvMark.sign;if(sign&&!sign.isSelectable()){return}if(selectionMode==null){selectionMode=def.get(pvMark,'rubberBandSelectionMode','partial')}var useCenter=(selectionMode==='center');pvMark.eachInstanceWithData(function(scenes,index,toScreen){var shape=pvMark.getShape(scenes,index);shape=(useCenter?shape.center():shape).apply(toScreen);processShape.call(this,shape,scenes[index],index)},this);function processShape(shape,instance,index){if(shape.intersectsRect(rect)){var cccScene=instance.data;if(cccScene&&cccScene.datum){var group=cccScene.group;var datums=group?group._datums:def.array.as(cccScene.datum);if(datums){datums.forEach(function(datum){if(!datum.isNull){if(pvc.debug>=20){this._log("Rubbered Datum.key="+datum.key+": "+pvc.stringify(shape)+" mark type: "+pvMark.type+" index="+index)}fun.call(ctx,datum)}},this)}}}}},isAnchorTopOrBottom:function(anchor){if(!anchor){anchor=this.anchor}return anchor==="top"||anchor==="bottom"},anchorOrtho:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.relativeAnchor[anchor]},anchorOrthoMirror:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.relativeAnchorMirror[anchor]},anchorOpposite:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.oppositeAnchor[anchor]},anchorLength:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.parallelLength[anchor]},anchorOrthoLength:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.orthogonalLength[anchor]},isOrientationVertical:function(orientation){return this.chart.isOrientationVertical(orientation)},isOrientationHorizontal:function(orientation){return this.chart.isOrientationHorizontal(orientation)}}).addStatic({relativeAnchor:{top:"left",bottom:"left",left:"bottom",right:"bottom"},leftBottomAnchor:{top:"bottom",bottom:"bottom",left:"left",right:"left"},leftTopAnchor:{top:"top",bottom:"top",left:"left",right:"left"},horizontalAlign:{top:"right",bottom:"left",middle:"center",right:"right",left:"left",center:"center"},verticalAlign:{top:"top",bottom:"bottom",middle:"middle",right:"bottom",left:"top",center:"middle"},verticalAlign2:{top:"top",bottom:"bottom",middle:"middle",right:"top",left:"bottom",center:"middle"},relativeAnchorMirror:{top:"right",bottom:"right",left:"top",right:"top"},oppositeAnchor:{top:"bottom",bottom:"top",left:"right",right:"left"},parallelLength:{top:"width",bottom:"width",right:"height",left:"height"},orthogonalLength:{top:"height",bottom:"height",right:"width",left:"width"},oppositeLength:{width:"height",height:"width"}});
84   -def.type('pvc.PlotPanel',pvc.BasePanel).init(function(chart,parent,plot,options){this.base(chart,parent,options);this.plot=plot;this._extensionPrefix=plot.extensionPrefixes;this.dataPartValue=plot.option('DataPart');this.axes.color=chart._getAxis('color',(plot.option('ColorAxis')||0)-1);this.orientation=plot.option('Orientation');this.valuesVisible=plot.option('ValuesVisible');this.valuesAnchor=plot.option('ValuesAnchor');this.valuesMask=plot.option('ValuesMask');this.valuesFont=plot.option('ValuesFont');var roles=this.visualRoles=Object.create(chart._visualRoles);var colorRoleName=plot.option('ColorRole');roles.color=colorRoleName?chart.visualRoles(colorRoleName):null;this.chart._addPlotPanel(this)}).add({anchor:'fill',visualRoles:null,_getExtensionId:function(){var extensionIds=['chart','plot'];if(this.plotName){extensionIds.push(this.plotName)}return extensionIds},isOrientationVertical:function(){return this.orientation===pvc.orientation.vertical},isOrientationHorizontal:function(){return this.orientation===pvc.orientation.horizontal}});
85   -def.type('pvc.MultiChartPanel',pvc.BasePanel).add({anchor:'fill',_multiInfo:null,createSmallCharts:function(){var chart=this.chart;var options=chart.options;var multiChartMax=Number(options.multiChartMax);if(isNaN(multiChartMax)||multiChartMax<1){multiChartMax=Infinity}var multiChartRole=chart.visualRoles('multiChart');var data=chart.data.flattenBy(multiChartRole,{visible:true});var leafCount=data._children.length;var count=Math.min(leafCount,multiChartMax);if(count===0){return}var multiChartColumnsMax=+options.multiChartColumnsMax;if(isNaN(multiChartColumnsMax)||multiChartMax<1){multiChartColumnsMax=3}var colCount=Math.min(count,multiChartColumnsMax);colCount>=1&&isFinite(colCount)||def.assert("Must be at least 1 and finite");var rowCount=Math.ceil(count/colCount);rowCount>=1||def.assert("Must be at least 1");var coordRootAxesByScopeType=this._getCoordinatedRootAxesByScopeType();var coordScopesByType,addChartToScope,indexChartByScope;if(coordRootAxesByScopeType){coordScopesByType={};addChartToScope=function(childChart,scopeType,scopeIndex){var scopes=def.array.lazy(coordScopesByType,scopeType);def.array.lazy(scopes,scopeIndex).push(childChart)};indexChartByScope=function(childChart){if(coordRootAxesByScopeType.row){addChartToScope(childChart,'row',childChart.smallRowIndex)}if(coordRootAxesByScopeType.column){addChartToScope(childChart,'column',childChart.smallColIndex)}if(coordRootAxesByScopeType.global){addChartToScope(childChart,'global',0)}}}var childOptionsBase=this._buildSmallChartsBaseOptions();var ChildClass=chart.constructor;for(var index=0;index<count;index++){var childData=data._children[index];var colIndex=(index%colCount);var rowIndex=Math.floor(index/colCount);var childOptions=def.set(Object.create(childOptionsBase),'smallColIndex',colIndex,'smallRowIndex',rowIndex,'title',childData.absLabel,'data',childData);var childChart=new ChildClass(childOptions);if(!coordRootAxesByScopeType){childChart._preRender()}else{childChart._preRenderPhase1();indexChartByScope(childChart)}}if(coordRootAxesByScopeType){def.eachOwn(coordRootAxesByScopeType,function(axes,scopeType){axes.forEach(function(axis){coordScopesByType[scopeType].forEach(function(scopeCharts){this._coordinateScopeAxes(axis.id,scopeCharts)},this)},this)},this);chart.children.forEach(function(childChart){childChart._preRenderPhase2()})}this._multiInfo={data:data,count:count,rowCount:rowCount,colCount:colCount,multiChartColumnsMax:multiChartColumnsMax,coordScopesByType:coordScopesByType}},_getCoordinatedRootAxesByScopeType:function(){var hasCoordination=false;var rootAxesByScopeType=def.query(this.chart.axesList).multipleIndex(function(axis){if(axis.scaleType!=='discrete'&&axis.option.isDefined('DomainScope')){var scopeType=axis.option('DomainScope');if(scopeType!=='cell'){hasCoordination=true;return scopeType}}});return hasCoordination?rootAxesByScopeType:null},_coordinateScopeAxes:function(axisId,scopeCharts){var unionExtent=def.query(scopeCharts).select(function(childChart){var scale=childChart.axes[axisId].scale;if(!scale.isNull){var domain=scale.domain();return{min:domain[0],max:domain[1]}}}).reduce(pvc.unionExtents,null);if(unionExtent){scopeCharts.forEach(function(childChart){var axis=childChart.axes[axisId];var scale=axis.scale;if(!scale.isNull){scale.domain(unionExtent.min,unionExtent.max);axis.setScale(scale)}})}},_buildSmallChartsBaseOptions:function(){var chart=this.chart;var options=chart.options;return def.set(Object.create(options),'parent',chart,'legend',false,'titleFont',options.smallTitleFont,'titlePosition',options.smallTitlePosition,'titleAlign',options.smallTitleAlign,'titleAlignTo',options.smallTitleAlignTo,'titleOffset',options.smallTitleOffset,'titleKeepInBounds',options.smallTitleKeepInBounds,'titleMargins',options.smallTitleMargins,'titlePaddings',options.smallTitlePaddings,'titleSize',options.smallTitleSize,'titleSizeMax',options.smallTitleSizeMax)},_calcLayout:function(layoutInfo){var multiInfo=this._multiInfo;if(!multiInfo){return}var chart=this.chart;var options=chart.options;var clientSize=layoutInfo.clientSize;var prevLayoutInfo=layoutInfo.previous;var initialClientWidth=prevLayoutInfo?prevLayoutInfo.initialClientWidth:clientSize.width;var initialClientHeight=prevLayoutInfo?prevLayoutInfo.initialClientHeight:clientSize.height;var smallWidth=pvc.PercentValue.parse(options.smallWidth);if(smallWidth!=null){smallWidth=pvc.PercentValue.resolve(smallWidth,initialClientWidth)}var smallHeight=pvc.PercentValue.parse(options.smallHeight);if(smallHeight!=null){smallHeight=pvc.PercentValue.resolve(smallHeight,initialClientHeight)}var ar=+options.smallAspectRatio;if(isNaN(ar)||ar<=0){ar=this._calulateDefaultAspectRatio()}if(smallWidth==null){if(isFinite(multiInfo.multiChartColumnsMax)){smallWidth=clientSize.width/multiInfo.colCount}else{if(smallHeight==null){smallHeight=initialClientHeight}smallWidth=ar*smallHeight}}if(smallHeight==null){if((multiInfo.rowCount===1&&def.get(options,'multiChartSingleRowFillsHeight',true))||(multiInfo.colCount===1&&def.get(options,'multiChartSingleColFillsHeight',true))){smallHeight=initialClientHeight}else{smallHeight=smallWidth/ar}}def.set(layoutInfo,'initialClientWidth',initialClientWidth,'initialClientHeight',initialClientHeight,'width',smallWidth,'height',smallHeight);return{width:smallWidth*multiInfo.colCount,height:Math.max(clientSize.height,smallHeight*multiInfo.rowCount)}},_calulateDefaultAspectRatio:function(){if(this.chart instanceof pvc.PieChart){return 10/7}return 5/4},_getExtensionId:function(){return'content'},_createCore:function(li){var mi=this._multiInfo;if(!mi){return}var chart=this.chart;var options=chart.options;var smallMargins=options.smallMargins;if(smallMargins==null){smallMargins=new pvc.Sides(new pvc.PercentValue(0.02))}else{smallMargins=new pvc.Sides(smallMargins)}var smallPaddings=new pvc.Sides(options.smallPaddings);chart.children.forEach(function(childChart){childChart._setSmallLayout({left:childChart.smallColIndex*li.width,top:childChart.smallRowIndex*li.height,width:li.width,height:li.height,margins:this._buildSmallMargins(childChart,smallMargins),paddings:smallPaddings})},this);var coordScopesByType=mi.coordScopesByType;if(coordScopesByType){chart._coordinateSmallChartsLayout(coordScopesByType)}this.base(li)},_buildSmallMargins:function(childChart,smallMargins){var mi=this._multiInfo;var lastColIndex=mi.colCount-1;var lastRowIndex=mi.rowCount-1;var colIndex=childChart.smallColIndex;var rowIndex=childChart.smallRowIndex;var margins={};if(colIndex>0){margins.left=smallMargins.left}if(colIndex<lastColIndex){margins.right=smallMargins.right}if(rowIndex>0){margins.top=smallMargins.top}if(rowIndex<lastRowIndex){margins.bottom=smallMargins.bottom}return margins}});
86   -def.type('pvc.TitlePanelAbstract',pvc.BasePanel).init(function(chart,parent,options){if(!options){options={}}var anchor=options.anchor||this.anchor;if(options.size==null){var size=options.titleSize;if(size!=null){options.size=new pvc.Size().setSize(size,{singleProp:this.anchorOrthoLength(anchor)})}}if(options.sizeMax==null){var sizeMax=options.titleSizeMax;if(sizeMax!=null){options.sizeMax=new pvc.Size().setSize(sizeMax,{singleProp:this.anchorOrthoLength(anchor)})}}if(options.paddings==null){options.paddings=this.defaultPaddings}this.base(chart,parent,options);if(options.font===undefined){var extensionFont=this._getExtension('label','font');if(typeof extensionFont==='string'){this.font=extensionFont}}}).add({pvLabel:null,anchor:'top',title:null,titleSize:undefined,font:"12px sans-serif",defaultPaddings:2,_extensionPrefix:'title',_calcLayout:function(layoutInfo){var requestSize=new pvc.Size();var a=this.anchor;var a_width=this.anchorLength(a);var a_height=this.anchorOrthoLength(a);var textWidth=pv.Text.measure(this.title,this.font).width+2;var clientWidth=layoutInfo.clientSize[a_width];var desiredWidth=layoutInfo.desiredClientSize[a_width];if(desiredWidth==null){desiredWidth=textWidth>clientWidth?clientWidth:textWidth}else if(desiredWidth>clientWidth){desiredWidth=clientWidth}var lines;if(textWidth>desiredWidth){lines=pvc.text.justify(this.title,desiredWidth,this.font)}else{lines=this.title?[this.title]:[]}var lineHeight=pv.Text.fontHeight(this.font);var realHeight=lines.length*lineHeight;var availableHeight=layoutInfo.clientSize[a_height];var desiredHeight=layoutInfo.desiredClientSize[a_height];if(desiredHeight==null){desiredHeight=realHeight}else if(desiredHeight>availableHeight){desiredHeight=availableHeight}if(realHeight>desiredHeight){var maxLineCount=Math.max(1,Math.floor(desiredHeight/lineHeight));if(lines.length>maxLineCount){var firstCroppedLine=lines[maxLineCount];lines.length=maxLineCount;realHeight=desiredHeight=maxLineCount*lineHeight;var lastLine=lines[maxLineCount-1]+" "+firstCroppedLine;lines[maxLineCount-1]=pvc.text.trimToWidthB(desiredWidth,lastLine,this.font,"..")}}layoutInfo.lines=lines;layoutInfo.topOffset=(desiredHeight-realHeight)/2;layoutInfo.lineSize={width:desiredWidth,height:lineHeight};layoutInfo.a_width=a_width;layoutInfo.a_height=a_height;requestSize[a_width]=desiredWidth;requestSize[a_height]=desiredHeight;return requestSize},_createCore:function(layoutInfo){var rootScene=this._buildScene(layoutInfo);var rotationByAnchor={top:0,right:Math.PI/2,bottom:0,left:-Math.PI/2};var textAlign=pvc.BasePanel.horizontalAlign[this.align];var textAnchor=pvc.BasePanel.leftTopAnchor[this.anchor];var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(itemScene){return v1f.call(this)}}}this.pvLabel=new pvc.visual.Label(this,this.pvPanel,{extensionId:'label',wrapper:wrapper}).lock('data',rootScene.lineScenes).pvMark[textAnchor](function(lineScene){return layoutInfo.topOffset+lineScene.vars.size.height/2+this.index*lineScene.vars.size.height}).textAlign(textAlign)[this.anchorOrtho(textAnchor)](function(lineScene){switch(this.textAlign()){case'center':return lineScene.vars.size.width/2;case'left':return 0;case'right':return lineScene.vars.size.width}}).text(function(lineScene){return lineScene.vars.textLines[this.index]}).font(this.font).textBaseline('middle').textAngle(rotationByAnchor[this.anchor])},_buildScene:function(layoutInfo){var rootScene=new pvc.visual.Scene(null,{panel:this,group:this.chart.data});var textLines=layoutInfo.lines;rootScene.vars.size=layoutInfo.lineSize;rootScene.vars.textLines=textLines;rootScene.lineScenes=def.array.create(textLines.length,rootScene);return rootScene},_getExtensionId:function(){return''}});
87   -def.type('pvc.TitlePanel',pvc.TitlePanelAbstract).init(function(chart,parent,options){if(!options){options={}}var isV1Compat=chart.compatVersion()<=1;if(isV1Compat){var size=options.titleSize;if(size==null){options.titleSize=25}}this._extensionPrefix=!chart.parent?"title":"smallTitle";this.base(chart,parent,options)}).add({font:"14px sans-serif",defaultPaddings:4});
88   -def.type('pvc.LegendPanel',pvc.BasePanel).add({pvRule:null,pvDot:null,pvLabel:null,anchor:'bottom',pvLegendPanel:null,textMargin:6,itemPadding:2.5,markerSize:15,font:'10px sans-serif',_calcLayout:function(layoutInfo){return this._getBulletRootScene().layout(layoutInfo)},_createCore:function(layoutInfo){var clientSize=layoutInfo.clientSize,rootScene=this._getBulletRootScene(),itemPadding=rootScene.vars.itemPadding,contentSize=rootScene.vars.size;var isHorizontal=this.isAnchorTopOrBottom();var a_top=isHorizontal?'top':'left';var a_bottom=this.anchorOpposite(a_top);var a_width=this.anchorLength(a_top);var a_height=this.anchorOrthoLength(a_top);var a_center=isHorizontal?'center':'middle';var a_left=isHorizontal?'left':'top';var a_right=this.anchorOpposite(a_left);var leftOffset=0;switch(this.align){case a_right:leftOffset=clientSize[a_width]-contentSize.width;break;case a_center:leftOffset=(clientSize[a_width]-contentSize.width)/2;break}this.pvPanel.overflow("hidden");var pvLegendRowPanel=this.pvPanel.add(pv.Panel).data(rootScene.vars.rows)[a_left](leftOffset)[a_top](function(){var prevRow=this.sibling();return prevRow?(prevRow[a_top]+prevRow[a_height]+itemPadding[a_height]):0})[a_width](function(row){return row.size.width})[a_height](function(row){return row.size.height});var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(itemScene){return v1f.call(this,itemScene.vars.value.rawValue)}}}this.pvLegendPanel=new pvc.visual.Panel(this,pvLegendRowPanel,{extensionId:'panel',wrapper:wrapper,noSelect:false,noClickSelect:true}).lockMark('data',function(row){return row.items}).lock(a_right,null).lock(a_bottom,null).lockMark(a_left,function(clientScene){var itemPadding=clientScene.vars.itemPadding;var prevItem=this.sibling();return prevItem?(prevItem[a_left]+prevItem[a_width]+itemPadding[a_width]):0}).lockMark('height',function(itemScene){return itemScene.vars.clientSize.height}).lockMark(a_top,isHorizontal?function(itemScene){var vars=itemScene.vars;return vars.row.size.height/2-vars.clientSize.height/2}:0).lockMark('width',isHorizontal?function(itemScene){return itemScene.vars.clientSize.width}:function(){return this.parent.width()}).pvMark.def("hidden","false").fillStyle(function(){return this.hidden()=="true"?"rgba(200,200,200,1)":"rgba(200,200,200,0.0001)"}).cursor(function(itemScene){return itemScene.isClickable()?"pointer":null}).event("click",function(itemScene){if(itemScene.isClickable()){return itemScene.click()}});var pvLegendMarkerPanel=new pvc.visual.Panel(this,this.pvLegendPanel).pvMark.left(0).top(0).right(null).bottom(null).width(function(itemScene){return itemScene.vars.markerSize}).height(function(itemScene){return itemScene.vars.clientSize.height});if(pvc.debug>=20){pvLegendRowPanel.strokeStyle('red');this.pvLegendPanel.strokeStyle('green');pvLegendMarkerPanel.strokeStyle('blue')}rootScene.childNodes.forEach(function(groupScene){var pvGroupPanel=new pvc.visual.Panel(this,pvLegendMarkerPanel).pvMark.visible(function(itemScene){return itemScene.parent===groupScene});groupScene.renderer().create(this,pvGroupPanel,groupScene.extensionPrefix,wrapper)},this);this.pvLabel=new pvc.visual.Label(this,pvLegendMarkerPanel.anchor("right"),{extensionId:'label',wrapper:wrapper}).intercept('textStyle',function(itemScene){var baseTextStyle=this.delegateExtension()||"black";return itemScene.isOn()?baseTextStyle:pvc.toGrayScale(baseTextStyle,null,undefined,150)}).pvMark.textAlign('left').text(function(itemScene){return itemScene.vars.value.label}).lock('textMargin',function(itemScene){return itemScene.vars.textMargin-4}).font(function(itemScene){return itemScene.vars.font}).textDecoration(function(itemScene){return itemScene.isOn()?"":"line-through"})},_getExtensionId:function(){return'area'},_getExtensionPrefix:function(){return'legend'},_getSelectableMarks:function(){return[this.pvLegendPanel]},_getBulletRootScene:function(){var rootScene=this._rootScene;if(!rootScene){rootScene=new pvc.visual.legend.BulletRootScene(null,{panel:this,group:this.chart.data,horizontal:this.isAnchorTopOrBottom(),font:this.font,markerSize:this.markerSize,textMargin:this.textMargin,itemPadding:this.itemPadding});this._rootScene=rootScene}return rootScene}});
89   -def.type('pvc.CartesianAbstract',pvc.BaseChart).init(function(options){this.axesPanels={};this.base(options)}).add({_gridDockPanel:null,axesPanels:null,yAxisPanel:null,xAxisPanel:null,secondXAxisPanel:null,secondYAxisPanel:null,yScale:null,xScale:null,_getSeriesRoleSpec:function(){return{isRequired:true,defaultDimension:'series*',autoCreateDimension:true,requireIsDiscrete:true}},_getColorRoleSpec:function(){return{isRequired:true,defaultDimension:'color*',defaultSourceRole:'series',requireIsDiscrete:true}},_collectPlotAxesDataCells:function(plot,dataCellsByAxisTypeThenIndex){this.base(plot,dataCellsByAxisTypeThenIndex);if(plot.option.isDefined('BaseAxis')){var baseDataCellsByAxisIndex=def.array.lazy(dataCellsByAxisTypeThenIndex,'base');def.array.lazy(baseDataCellsByAxisIndex,plot.option('BaseAxis')-1).push({plot:plot,role:this.visualRoles(plot.option('BaseRole')),dataPartValue:plot.option('DataPart')})}if(plot.option.isDefined('OrthoAxis')){var trend=plot.option('Trend');var isStacked=plot.option.isDefined('Stacked')?plot.option('Stacked'):undefined;var orthoDataCellsByAxisIndex=def.array.lazy(dataCellsByAxisTypeThenIndex,'ortho');var orthoRoleNames=def.array.to(plot.option('OrthoRole'));var dataCellBase={dataPartValue:plot.option('DataPart'),isStacked:isStacked,trend:trend,nullInterpolationMode:plot.option('NullInterpolationMode')};var orthoDataCells=def.array.lazy(orthoDataCellsByAxisIndex,plot.option('OrthoAxis')-1);orthoRoleNames.forEach(function(orthoRoleName){var dataCell=Object.create(dataCellBase);dataCell.role=this.visualRoles(orthoRoleName);orthoDataCells.push(dataCell)},this)}},_addAxis:function(axis){this.base(axis);switch(axis.type){case'base':case'ortho':this.axes[axis.orientedId]=axis;if(axis.v1SecondOrientedId){this.axes[axis.v1SecondOrientedId]=axis}break}return this},_generateTrendsDataCell:function(dataCell){var trend=dataCell.trend;if(trend){var trendInfo=pvc.trends.get(trend.type);var newDatums=[];this._generateTrendsDataCellCore(newDatums,dataCell,trendInfo);if(newDatums.length){this.data.owner.add(newDatums)}}},_generateTrendsDataCellCore:function(dataCell,trendInfo){},_setAxesScales:function(hasMultiRole){this.base(hasMultiRole);if(!hasMultiRole||this.parent){['base','ortho'].forEach(function(type){var axisOfType=this.axesByType[type];if(axisOfType){axisOfType.forEach(this._createAxisScale,this)}},this)}},_createAxisScale:function(axis){var isOrtho=axis.type==='ortho';var isCart=isOrtho||axis.type==='base';var scale=this._createScaleByAxis(axis);if(scale.isNull&&pvc.debug>=3){this._log(def.format("{0} scale for axis '{1}'- no data",[axis.scaleType,axis.id]))}scale=axis.setScale(scale).scale;if(isCart){if(isOrtho&&axis.index===1){this.secondScale=scale}else if(!axis.index){this[axis.orientation+'Scale']=scale}}return scale},_createScaleByAxis:function(axis){var createScale=this['_create'+def.firstUpperCase(axis.scaleType)+'ScaleByAxis'];return createScale.call(this,axis)},_preRenderContent:function(contentOptions){this._createFocusWindow();this._gridDockPanel=new pvc.CartesianGridDockingPanel(this,this.basePanel,{margins:contentOptions.margins,paddings:contentOptions.paddings});['base','ortho'].forEach(function(type){var typeAxes=this.axesByType[type];if(typeAxes){def.query(typeAxes).reverse().each(function(axis){this._createAxisPanel(axis)},this)}},this);this._createPlotPanels(this._gridDockPanel,{clickAction:contentOptions.clickAction,doubleClickAction:contentOptions.doubleClickAction})},_createFocusWindow:function(){if(this._canSelectWithFocusWindow()){var fwData;var fw=this.focusWindow;if(fw){fwData=fw._exportData()}fw=this.focusWindow=new pvc.visual.CartesianFocusWindow(this);if(fwData){fw._importData(fwData)}fw._initFromOptions()}else if(this.focusWindow){delete this.focusWindow}},_createAxisPanel:function(axis){if(axis.option('Visible')){var titlePanel;var title=axis.option('Title');if(!def.empty(title)){titlePanel=new pvc.AxisTitlePanel(this,this._gridDockPanel,axis,{title:title,font:axis.option('TitleFont')||axis.option('Font'),anchor:axis.option('Position'),align:axis.option('TitleAlign'),margins:axis.option('TitleMargins'),paddings:axis.option('TitlePaddings'),titleSize:axis.option('TitleSize'),titleSizeMax:axis.option('TitleSizeMax')})}var panel=new pvc.AxisPanel(this,this._gridDockPanel,axis,{anchor:axis.option('Position'),size:axis.option('Size'),sizeMax:axis.option('SizeMax'),clickAction:axis.option('ClickAction'),doubleClickAction:axis.option('DoubleClickAction'),useCompositeAxis:axis.option('Composite'),font:axis.option('Font'),labelSpacingMin:axis.option('LabelSpacingMin'),tickExponentMin:axis.option('TickExponentMin'),tickExponentMax:axis.option('TickExponentMax'),grid:axis.option('Grid'),gridCrossesMargin:axis.option('GridCrossesMargin'),ruleCrossesMargin:axis.option('RuleCrossesMargin'),zeroLine:axis.option('ZeroLine'),domainRoundMode:axis.option('DomainRoundMode'),desiredTickCount:axis.option('DesiredTickCount'),showTicks:axis.option('Ticks'),showMinorTicks:axis.option('MinorTicks')});if(titlePanel){panel.titlePanel=titlePanel}this.axesPanels[axis.id]=panel;this.axesPanels[axis.orientedId]=panel;if(axis.index<=1&&axis.v1SecondOrientedId){this[axis.v1SecondOrientedId+'AxisPanel']=panel}return panel}},_createDiscreteScaleByAxis:function(axis){var dataPartValues=axis.dataCells.map(function(dataCell){return dataCell.dataPartValue});var baseData=this.visibleData(dataPartValues,{ignoreNulls:false});var data=baseData&&baseData.flattenBy(axis.role);var scale=new pv.Scale.ordinal();if(!data||!data.count()){scale.isNull=true}else{var values=data.children().select(function(child){return def.nullyTo(child.value,"")}).array();scale.domain(values)}return scale},_createTimeSeriesScaleByAxis:function(axis){var extent=this._getContinuousVisibleExtent(axis);var scale=new pv.Scale.linear();if(!extent){scale.isNull=true}else{var dMin=extent.min;var dMax=extent.max;if((dMax-dMin)===0){dMax=new Date(dMax.getTime()+3600000)}scale.domain(dMin,dMax);scale.minLocked=extent.minLocked;scale.maxLocked=extent.maxLocked}return scale},_createNumericScaleByAxis:function(axis){var extent=this._getContinuousVisibleExtentConstrained(axis);var scale=new pv.Scale.linear();if(!extent){scale.isNull=true}else{var tmp;var dMin=extent.min;var dMax=extent.max;if(dMin>dMax){tmp=dMin;dMin=dMax;dMax=tmp}var originIsZero=axis.option('OriginIsZero');if(originIsZero){if(dMin===0){extent.minLocked=true}else if(dMax===0){extent.maxLocked=true}else if((dMin*dMax)>0){if(dMin>0){if(!extent.minLocked){extent.minLocked=true;dMin=0}}else{if(!extent.maxLocked){extent.maxLocked=true;dMax=0}}}}if(dMin>dMax){tmp=dMin;dMin=dMax;dMax=tmp}if(dMax-dMin<=1e-12){if(!extent.minLocked){dMin=dMin!==0?(dMin*0.99):-0.1}if(!extent.maxLocked||extent.minLocked){dMax=dMax!==0?dMax*1.01:0.1}}scale.domain(dMin,dMax);scale.minLocked=extent.minLocked;scale.maxLocked=extent.maxLocked}return scale},_onLaidOut:function(){if(this.plotPanelList&&this.plotPanelList[0]){['base','ortho'].forEach(function(type){var axes=this.axesByType[type];if(axes){axes.forEach(this._setCartAxisScaleRange,this)}},this)}},_setCartAxisScaleRange:function(axis){var info=this.plotPanelList[0]._layoutInfo;var size=info.clientSize;var length=(axis.orientation==='x')?size.width:size.height;axis.setScaleRange(length);return axis.scale},_getAxesRoundingPaddings:function(){var axesPaddings={};var axesByType=this.axesByType;['base','ortho'].forEach(function(type){var typeAxes=axesByType[type];if(typeAxes){typeAxes.forEach(processAxis)}});return axesPaddings;function setSide(side,pct,locked){var value=axesPaddings[side];if(value==null||pct>value){axesPaddings[side]=pct;axesPaddings[side+'Locked']=locked}else if(locked){axesPaddings[side+'Locked']=locked}}function processAxis(axis){if(axis){var tickRoundPads=axis.getScaleRoundingPaddings();if(tickRoundPads){var isX=axis.orientation==='x';setSide(isX?'left':'bottom',tickRoundPads.begin,tickRoundPads.beginLocked);setSide(isX?'right':'top',tickRoundPads.end,tickRoundPads.endLocked)}}}},_warnSingleContinuousValueRole:function(valueRole){if(!valueRole.grouping.isSingleDimension){this._log("[WARNING] A linear scale can only be obtained for a single dimension role.")}if(valueRole.grouping.isDiscrete()){this._log("[WARNING] The single dimension of role '{0}' should be continuous.",[valueRole.name])}},_getContinuousVisibleExtentConstrained:function(axis,min,max){var minLocked=false;var maxLocked=false;if(min==null){min=axis.option('FixedMin');minLocked=(min!=null)}if(max==null){max=axis.option('FixedMax');maxLocked=(max!=null)}if(min==null||max==null){var baseExtent=this._getContinuousVisibleExtent(axis);if(!baseExtent){return null}if(min==null){min=baseExtent.min}if(max==null){max=baseExtent.max}}return{min:min,max:max,minLocked:minLocked,maxLocked:maxLocked}},_getContinuousVisibleExtent:function(valueAxis){var dataCells=valueAxis.dataCells;if(dataCells.length===1){return this._getContinuousVisibleCellExtent(valueAxis,dataCells[0])}return def.query(dataCells).select(function(dataCell){return this._getContinuousVisibleCellExtent(valueAxis,dataCell)},this).reduce(pvc.unionExtents,null)},_getContinuousVisibleCellExtent:function(valueAxis,valueDataCell){var valueRole=valueDataCell.role;this._warnSingleContinuousValueRole(valueRole);if(valueRole.name==='series'){throw def.error.notImplemented()}var useAbs=valueAxis.scaleUsesAbs();var data=this.visibleData(valueDataCell.dataPartValue);var extent=data&&data.dimensions(valueRole.firstDimensionName()).extent({abs:useAbs});if(extent){var minValue=extent.min.value;var maxValue=extent.max.value;return{min:(useAbs?Math.abs(minValue):minValue),max:(useAbs?Math.abs(maxValue):maxValue)}}},markEventDefaults:{strokeStyle:"#5BCBF5",lineWidth:"0.5",textStyle:"#5BCBF5",verticalOffset:10,verticalAnchor:"bottom",horizontalAnchor:"right",forceHorizontalAnchor:false,horizontalAnchorSwapLimit:80},markEvent:function(dateString,label,options){var baseScale=this.axes.base.scale;if(baseScale.type!=='timeSeries'){this._log("Attempting to mark an event on a non timeSeries chart");return this}var o=$.extend({},this.markEventDefaults,options);var d=pv.Format.date(this.options.timeSeriesFormat).parse(dateString);var dpos=baseScale(d),range=baseScale.range();if(dpos<range[0]||dpos>range[1]){this._log("Event outside the allowed range, returning");return this}var panel=this.plotPanelList[0].pvPanel;var h=this.yScale.range()[1];if(!o.forceHorizontalAnchor){var availableSize=o.horizontalAnchor=="right"?range[1]-dpos:dpos;if(availableSize<o.horizontalAnchorSwapLimit){o.horizontalAnchor=o.horizontalAnchor=="right"?"left":"right"}}var line=panel.add(pv.Line).data([0,h]).strokeStyle(o.strokeStyle).lineWidth(o.lineWidth).bottom(function(d){return d}).left(dpos);line.anchor(o.horizontalAnchor).top(o.verticalAnchor=="top"?o.verticalOffset:(h-o.verticalOffset)).add(pv.Label).text(label).textStyle(o.textStyle).visible(function(){return!this.index});return this},defaults:{panelSizeRatio:0.9,timeSeries:false,timeSeriesFormat:"%Y-%m-%d"}});
90   -def.type('pvc.GridDockingPanel',pvc.BasePanel).add({anchor:'fill',_calcLayout:function(layoutInfo){var me=this;if(!me._children){return}var useLog=pvc.debug>=5;var margins=new pvc.Sides(0);var paddings=new pvc.Sides(0);var remSize=def.copyOwn(layoutInfo.clientSize);var aolMap=pvc.BasePanel.orthogonalLength;var aoMap=pvc.BasePanel.relativeAnchor;var alMap=pvc.BasePanel.parallelLength;var childKeyArgs={force:true,referenceSize:layoutInfo.clientSize};var fillChildren=[];var sideChildren=[];var paddingHistory={};var LoopDetected=1;var NormalPaddingsChanged=2;var OverflowPaddingsChanged=4;var emptyNewPaddings=new pvc.Sides();var isDisasterRecovery=false;if(useLog){me._group("CCC GRID LAYOUT clientSize = "+pvc.stringify(remSize))}try{this._children.forEach(initChild);if(useLog){me._group("Phase 1 - Determine MARGINS and FILL SIZE from SIDE panels")}try{sideChildren.forEach(layoutChild1Side)}finally{if(useLog){me._groupEnd();me._log("Final FILL margins = "+pvc.stringify(margins));me._log("Final FILL border size = "+pvc.stringify(remSize))}}if(useLog){me._group("Phase 2 - Determine COMMON PADDINGS")}try{doMaxTimes(9,layoutCycle)}finally{if(useLog){me._groupEnd();me._log("Final FILL clientSize = "+pvc.stringify({width:(remSize.width-paddings.width),height:(remSize.height-paddings.height)}));me._log("Final COMMON paddings = "+pvc.stringify(paddings))}}layoutInfo.gridMargins=new pvc.Sides(margins);layoutInfo.gridPaddings=new pvc.Sides(paddings);layoutInfo.gridSize=new pvc.Size(remSize)}finally{if(useLog){me._groupEnd()}}function layoutCycle(remTimes,iteration){if(useLog){me._group("LayoutCycle "+(isDisasterRecovery?"- Disaster MODE":("#"+(iteration+1))))}try{var index,count;var canChange=layoutInfo.canChange!==false&&!isDisasterRecovery&&(remTimes>0);var paddingsChanged;var ownPaddingsChanged=false;var breakAndRepeat;index=0;count=sideChildren.length;while(index<count){if(useLog){me._group("SIDE Child #"+(index+1))}try{paddingsChanged=layoutChild2Side(sideChildren[index],canChange);if(!isDisasterRecovery&&paddingsChanged){breakAndRepeat=false;if((paddingsChanged&OverflowPaddingsChanged)!==0){if(useLog){me._log("SIDE Child #"+(index+1)+" changed overflow paddings")}if(!ownPaddingsChanged){ownPaddingsChanged=true;layoutInfo.requestPaddings=layoutInfo.paddings}}if((paddingsChanged&NormalPaddingsChanged)!==0){if(remTimes>0){if(useLog){me._log("SIDE Child #"+(index+1)+" changed normal paddings")}breakAndRepeat=true}else if(pvc.debug>=2){me._warn("SIDE Child #"+(index+1)+" changed paddings but no more iterations possible.")}}if((paddingsChanged&LoopDetected)!==0){isDisasterRecovery=true;layoutCycle(0);return false}if(breakAndRepeat){return true}}}finally{if(useLog){me._groupEnd()}}index++}if(ownPaddingsChanged){if(useLog){me._log("Restarting due to overflowPaddings change")}return false}index=0;count=fillChildren.length;while(index<count){if(useLog){me._group("FILL Child #"+(index+1))}try{paddingsChanged=layoutChildFill(fillChildren[index],canChange);if(!isDisasterRecovery&&paddingsChanged){breakAndRepeat=false;if((paddingsChanged&NormalPaddingsChanged)!==0){if(remTimes>0){if(pvc.debug>=5){me._log("FILL Child #"+(index+1)+" increased paddings")}breakAndRepeat=true}else if(pvc.debug>=2){me._warn("FILL Child #"+(index+1)+" increased paddings but no more iterations possible.")}}if((paddingsChanged&LoopDetected)!==0){isDisasterRecovery=true;layoutCycle(0);return false}if(breakAndRepeat){return true}}}finally{if(useLog){me._groupEnd()}}index++}return false}finally{if(useLog){me._groupEnd()}}}function doMaxTimes(maxTimes,fun){var index=0;while(maxTimes--){if(fun(maxTimes,index)===false){return true}index++}return false}function initChild(child){var a=child.anchor;if(a){if(a==='fill'){fillChildren.push(child);var childPaddings=child.paddings.resolve(childKeyArgs.referenceSize);paddings=pvc.Sides.resolvedMax(paddings,childPaddings)}else{def.hasOwn(aoMap,a)||def.fail.operationInvalid("Unknown anchor value '{0}'",[a]);sideChildren.push(child)}}}function layoutChild1Side(child,index){if(useLog){me._group("SIDE Child #"+(index+1))}try{var paddingsChanged=0;var a=child.anchor;childKeyArgs.paddings=filterAnchorPaddings(a,paddings);child.layout(new pvc.Size(remSize),childKeyArgs);if(child.isVisible){paddingsChanged|=checkAnchorPaddingsChanged(a,paddings,child);positionChildNormal(a,child);updateSide(a,child)}return paddingsChanged}finally{if(useLog){me._groupEnd()}}}function layoutChildFill(child,canChange){var paddingsChanged=0;var a=child.anchor;childKeyArgs.paddings=filterAnchorPaddings(a,paddings);childKeyArgs.canChange=canChange;child.layout(new pvc.Size(remSize),childKeyArgs);if(child.isVisible){paddingsChanged|=checkAnchorPaddingsChanged(a,paddings,child,canChange);positionChildNormal(a,child);positionChildOrtho(child,a)}return paddingsChanged}function layoutChild2Side(child,canChange){var paddingsChanged=0;if(child.isVisible){var a=child.anchor;var al=alMap[a];var aol=aolMap[a];var length=remSize[al];var olength=child[aol];var childSize2=new pvc.Size(def.set({},al,length,aol,olength));childKeyArgs.paddings=filterAnchorPaddings(a,paddings);childKeyArgs.canChange=canChange;child.layout(childSize2,childKeyArgs);if(child.isVisible){paddingsChanged=checkAnchorPaddingsChanged(a,paddings,child,canChange)|checkOverflowPaddingsChanged(a,layoutInfo.paddings,child,canChange);if(!paddingsChanged){positionChildOrtho(child,child.align)}}}return paddingsChanged}function positionChildNormal(side,child){var sidePos;if(side==='fill'){side='left';sidePos=margins.left+remSize.width/2-(child.width/2)}else{sidePos=margins[side]}child.setPosition(def.set({},side,sidePos))}function updateSide(side,child){var sideol=aolMap[side],olen=child[sideol];margins[side]+=olen;remSize[sideol]-=olen}function positionChildOrtho(child,align){var sideo;if(align==='fill'){align='middle'}var sideOPos;switch(align){case'top':case'bottom':case'left':case'right':sideo=align;sideOPos=margins[sideo];break;case'middle':sideo='bottom';sideOPos=margins.bottom+(remSize.height/2)-(child.height/2);break;case'center':sideo='left';sideOPos=margins.left+remSize.width/2-(child.width/2);break}child.setPosition(def.set({},sideo,sideOPos))}function filterAnchorPaddings(a,paddings){var filtered=new pvc.Sides();getAnchorPaddingsNames(a).forEach(function(side){filtered.set(side,paddings[side])});return filtered}function checkAnchorPaddingsChanged(a,paddings,child,canChange){var newPaddings=child._layoutInfo.requestPaddings;var changed=0;if(newPaddings){if(useLog&&pvc.debug>=10){me._log("=> clientSize="+pvc.stringify(child._layoutInfo.clientSize));me._log("<= requestPaddings="+pvc.stringify(newPaddings))}getAnchorPaddingsNames(a).forEach(function(side){var value=paddings[side]||0;var newValue=Math.floor(10000*(newPaddings[side]||0))/10000;var increase=newValue-value;var minChange=Math.max(1,Math.abs(0.01*value));if(increase!==0&&Math.abs(increase)>=minChange){if(!canChange){if(pvc.debug>=2){me._warn("CANNOT change but child wanted to: "+side+"="+newValue)}}else{changed|=NormalPaddingsChanged;paddings[side]=newValue;if(useLog){me._log("Changed padding "+side+" <- "+newValue)}}}});if(changed){var paddingKey=pvc.Sides.names.map(function(side){return(paddings[side]||0).toFixed(0)}).join('|');if(def.hasOwn(paddingHistory,paddingKey)){if(pvc.debug>=2){me._warn("LOOP detected!!!!")}changed|=LoopDetected}else{paddingHistory[paddingKey]=true}paddings.width=paddings.left+paddings.right;paddings.height=paddings.top+paddings.bottom}}return changed}function checkOverflowPaddingsChanged(a,ownPaddings,child,canChange){var overflowPaddings=child._layoutInfo.overflowPaddings||emptyNewPaddings;var changed=0;if(useLog&&pvc.debug>=10){me._log("<= overflowPaddings="+pvc.stringify(overflowPaddings))}getAnchorPaddingsNames(a).forEach(function(side){if(overflowPaddings.hasOwnProperty(side)){var value=ownPaddings[side]||0;var newValue=Math.floor(10000*(overflowPaddings[side]||0))/10000;newValue-=margins[side];var increase=newValue-value;var minChange=Math.max(1,Math.abs(0.05*value));if(increase>=minChange){if(!canChange){if(pvc.debug>=2){me._warn("CANNOT change overflow padding but child wanted to: "+side+"="+newValue)}}else{changed|=OverflowPaddingsChanged;ownPaddings[side]=newValue;if(useLog){me._log("changed overflow padding "+side+" <- "+newValue)}}}}});if(changed){ownPaddings.width=ownPaddings.left+ownPaddings.right;ownPaddings.height=ownPaddings.top+ownPaddings.bottom}return changed}function getAnchorPaddingsNames(a){switch(a){case'left':case'right':return pvc.Sides.vnames;case'top':case'bottom':return pvc.Sides.hnames;case'fill':return pvc.Sides.names}}}});
91   -def.type('pvc.CartesianGridDockingPanel',pvc.GridDockingPanel).init(function(chart,parent,options){this.base(chart,parent,options);this._plotBgPanel=new pvc.PlotBgPanel(chart,this)}).add({_getExtensionId:function(){return!this.chart.parent?'content':'smallContent'},_createCore:function(layoutInfo){var chart=this.chart;var axes=chart.axes;var xAxis=axes.x;var yAxis=axes.y;if(xAxis.option('Visible')&&xAxis.option('Grid')){this.xGridRule=this._createGridRule(xAxis)}if(yAxis.option('Visible')&&yAxis.option('Grid')){this.yGridRule=this._createGridRule(yAxis)}this.base(layoutInfo);if(chart.focusWindow){this._createFocusWindow(layoutInfo)}var plotFrameVisible;if(chart.compatVersion()<=1){plotFrameVisible=!!(xAxis.option('EndLine')||yAxis.option('EndLine'))}else{plotFrameVisible=def.get(chart.options,'plotFrameVisible',true)}if(plotFrameVisible){this.pvFrameBar=this._createFrame(layoutInfo,axes)}if(xAxis.scaleType!=='discrete'&&xAxis.option('ZeroLine')){this.xZeroLine=this._createZeroLine(xAxis,layoutInfo)}if(yAxis.scaleType!=='discrete'&&yAxis.option('ZeroLine')){this.yZeroLine=this._createZeroLine(yAxis,layoutInfo)}},_createGridRule:function(axis){var scale=axis.scale;if(scale.isNull){return}var isDiscrete=axis.role.grouping.isDiscrete();var axisPanel=this.chart.axesPanels[axis.id];var rootScene=axisPanel._getRootScene();if(!rootScene){return}var margins=this._layoutInfo.gridMargins;var paddings=this._layoutInfo.gridPaddings;var tick_a=axis.orientation==='x'?'left':'bottom';var len_a=this.anchorLength(tick_a);var obeg_a=this.anchorOrtho(tick_a);var oend_a=this.anchorOpposite(obeg_a);var tick_offset=margins[tick_a]+paddings[tick_a];var obeg=margins[obeg_a];var oend=margins[oend_a];var tickScenes=rootScene.leafs().array();var tickCount=tickScenes.length;if(isDiscrete&&tickCount){tickScenes.push(tickScenes[tickCount-1])}var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(tickScene){return v1f.call(this,tickScene.vars.tick.rawValue)}}}var pvGridRule=new pvc.visual.Rule(this,this.pvPanel,{extensionId:axis.extensionPrefixes.map(function(prefix){return prefix+'Grid'}),wrapper:wrapper}).lock('data',tickScenes).lock(len_a,null).override('defaultColor',function(){return pv.color("#f0f0f0")}).pvMark.lineWidth(1).antialias(true)[obeg_a](obeg)[oend_a](oend).zOrder(-12).events('none');if(isDiscrete){var halfStep=scale.range().step/2;pvGridRule.lock(tick_a,function(tickScene){var tickPosition=tick_offset+scale(tickScene.vars.tick.value);var isLastLine=this.index===tickCount;return tickPosition+(isLastLine?halfStep:-halfStep)})}else{pvGridRule.lock(tick_a,function(tickScene){return tick_offset+scale(tickScene.vars.tick.value)})}return pvGridRule},_createFrame:function(layoutInfo,axes){if(axes.base.scale.isNull||(axes.ortho.scale.isNull&&(!axes.ortho2||axes.ortho2.scale.isNull))){return}var margins=layoutInfo.gridMargins;var left=margins.left;var right=margins.right;var top=margins.top;var bottom=margins.bottom;var extensionIds=[];if(this.compatVersion()<=1){extensionIds.push('xAxisEndLine');extensionIds.push('yAxisEndLine')}extensionIds.push('plotFrame');return new pvc.visual.Panel(this,this.pvPanel,{extensionId:extensionIds}).pvMark.lock('left',left).lock('right',right).lock('top',top).lock('bottom',bottom).lock('fillStyle',null).events('none').strokeStyle("#666666").lineWidth(1).antialias(false).zOrder(-8)},_createZeroLine:function(axis,layoutInfo){var scale=axis.scale;if(!scale.isNull){var domain=scale.domain();if(domain[0]*domain[1]<-1e-12){var a=axis.orientation==='x'?'left':'bottom';var len_a=this.anchorLength(a);var obeg_a=this.anchorOrtho(a);var oend_a=this.anchorOpposite(obeg_a);var margins=layoutInfo.gridMargins;var paddings=layoutInfo.gridPaddings;var zeroPosition=margins[a]+paddings[a]+scale(0);var obeg=margins[obeg_a];var oend=margins[oend_a];var rootScene=new pvc.visual.Scene(null,{panel:this});return new pvc.visual.Rule(this,this.pvPanel,{extensionId:axis.extensionPrefixes.map(function(prefix){return prefix+'ZeroLine'})}).lock('data',[rootScene]).lock(len_a,null).lock(obeg_a,obeg).lock(oend_a,oend).lock(a,zeroPosition).override('defaultColor',function(){return pv.color("#666666")}).pvMark.events('none').lineWidth(1).antialias(true).zOrder(-9)}}},_createFocusWindow:function(layoutInfo){var me=this;var topRoot=me.topRoot;var chart=me.chart;var focusWindow=chart.focusWindow.base;var axis=focusWindow.axis;var scale=axis.scale;if(scale.isNull){return}var resizable=focusWindow.option('Resizable');var movable=focusWindow.option('Movable');var isDiscrete=axis.isDiscrete();var isV=chart.isOrientationVertical();var a_left=isV?'left':'top';var a_top=isV?'top':'left';var a_width=me.anchorOrthoLength(a_left);var a_right=me.anchorOpposite(a_left);var a_height=me.anchorOrthoLength(a_top);var a_bottom=me.anchorOpposite(a_top);var a_x=isV?'x':'y';var a_dx='d'+a_x;var a_y=isV?'y':'x';var a_dy='d'+a_y;var margins=layoutInfo.gridMargins;var paddings=layoutInfo.gridPaddings;var space={left:margins.left+paddings.left,right:margins.right+paddings.right,top:margins.top+paddings.top,bottom:margins.bottom+paddings.bottom};space.width=space.left+space.right;space.height=space.top+space.bottom;var clientSize=layoutInfo.clientSize;var wf=clientSize[a_width];var hf=clientSize[a_height];var w=wf-space[a_width];var h=hf-space[a_height];var padLeft=paddings[a_left];var padRight=paddings[a_right];var scene=new pvc.visual.Scene(null,{panel:this});var band=isDiscrete?scale.range().step:0;var halfBand=band/2;scene[a_x]=scale(focusWindow.begin)-halfBand,scene[a_dx]=band+(scale(focusWindow.end)-halfBand)-scene[a_x],resetSceneY();function resetSceneY(){scene[a_y]=0-paddings[a_top];scene[a_dy]=h+paddings[a_top]+paddings[a_bottom]}var sceneProp=function(p){return function(){return scene[p]}};var boundLeft=function(){var begin=scene[a_x];return Math.max(0,Math.min(w,begin))};var boundWidth=function(){var begin=boundLeft();var end=scene[a_x]+scene[a_dx];end=Math.max(0,Math.min(w,end));return end-begin};var addSelBox=function(panel,id){return new pvc.visual.Bar(me,panel,{extensionId:id,normalStroke:true,noHover:true,noSelect:true,noClick:true,noDoubleClick:true,noTooltip:true,showsInteraction:false}).pvMark.lock('data').lock('visible').lock(a_left,boundLeft).lock(a_width,boundWidth).lock(a_top,sceneProp(a_y)).lock(a_height,sceneProp(a_dy)).lock(a_bottom).lock(a_right).sign};var baseBgPanel=this._plotBgPanel.pvPanel.borderPanel;baseBgPanel.lock('data',[scene]);if(movable&&resizable){baseBgPanel.paddingPanel.lock('events','all').lock('cursor','crosshair').event('mousedown',pv.Behavior.select().autoRender(false).collapse(isV?'y':'x').positionConstraint(function(drag){var op=drag.phase==='start'?'new':'resize-end';return positionConstraint(drag,op)})).event('selectstart',function(ev){resetSceneY();onDrag(ev)}).event('select',onDrag).event('selectend',onDrag)}else{baseBgPanel.paddingPanel.events('all')}var focusBg=addSelBox(baseBgPanel.paddingPanel,'focusWindowBg').override('defaultColor',function(type){return pvc.invisibleFill}).pvMark;if(movable){focusBg.lock('events','all').lock('cursor','move').event("mousedown",pv.Behavior.drag().autoRender(false).collapse(isV?'y':'x').positionConstraint(function(drag){positionConstraint(drag,'move')})).event("drag",onDrag).event("dragend",onDrag)}else{focusBg.events('none')}var baseFgPanel=new pvc.visual.Panel(me,me.pvPanel).pvMark.lock('data',[scene]).lock('visible').lock('fillStyle',pvc.invisibleFill).lock('left',space.left).lock('right',space.right).lock('top',space.top).lock('bottom',space.bottom).lock('zOrder',10).lock('events',function(){var drag=scene.drag;return drag&&drag.phase!=='end'?'all':'none'}).lock('cursor',function(){var drag=scene.drag;return drag&&drag.phase!=='end'?((drag.type==='drag'||(drag.type==='select'&&!resizable))?'move':(isV?'ew-resize':'ns-resize')):null}).antialias(false);var curtainFillColor='rgba(20, 20, 20, 0.1)';new pvc.visual.Bar(me,baseFgPanel,{extensionId:'focusWindowBaseCurtain',normalStroke:true,noHover:true,noSelect:true,noClick:true,noDoubleClick:true,noTooltip:true,showsInteraction:false}).override('defaultColor',function(type){return type==='stroke'?null:curtainFillColor}).pvMark.lock('data',[scene,scene]).lock('visible').lock('events','none').lock(a_left,function(){return!this.index?-padLeft:boundLeft()+boundWidth()}).lock(a_right,function(){return!this.index?null:-padRight}).lock(a_width,function(){return!this.index?padLeft+boundLeft():null}).lock(a_top,sceneProp(a_y)).lock(a_height,sceneProp(a_dy)).lock(a_bottom);var selectBoxFg=addSelBox(baseFgPanel,'focusWindow').override('defaultColor',function(type){return null}).pvMark.lock('events','none');var addResizeSideGrip=function(side){var a_begin=(side==='left'||side==='top')?'begin':'end';var opposite=me.anchorOpposite(side);var fillColor='linear-gradient(to '+opposite+', '+curtainFillColor+', #444 90%)';var grip=new pvc.visual.Bar(me,selectBoxFg.anchor(side),{extensionId:focusWindow.id+'Grip'+def.firstUpperCase(a_begin),normalStroke:true,noHover:true,noSelect:true,noClick:true,noDoubleClick:true,noTooltip:true,showsInteraction:false}).override('defaultColor',function(type){return type==='stroke'?null:fillColor}).pvMark.lock('data').lock('visible')[a_top](scene[a_y])[a_height](scene[a_dy]);if(resizable){var opId='resize-'+a_begin;grip.lock('events','all')[a_width](5).cursor(isV?'ew-resize':'ns-resize').event("mousedown",pv.Behavior.resize(side).autoRender(false).positionConstraint(function(drag){positionConstraint(drag,opId)}).preserveOrtho(true)).event("resize",onDrag).event("resizeend",onDrag)}else{grip.events('none')[a_width](1)}return grip};addResizeSideGrip(a_left);addResizeSideGrip(a_right);function onDrag(){var ev=arguments[arguments.length-1];var isEnd=ev.drag.phase==='end';topRoot._isRubberBandSelecting=!isEnd;baseBgPanel.render();baseFgPanel.render();var pbeg=scene[a_x];var pend=scene[a_x]+scene[a_dx];if(!isV){var temp=w-pbeg;pbeg=w-pend;pend=temp}focusWindow._updatePosition(pbeg,pend,isEnd,true)}var a_p=a_x;var a_dp=a_dx;function positionConstraint(drag,op){var m=drag.m;var p=m[a_p];var b,e,l;var l0=scene[a_dp];var target;switch(op){case'new':l=0;target='begin';break;case'resize-begin':l=l0;target='begin';break;case'move':l=l0;target='begin';break;case'resize-end':l=p-scene[a_p];target='end';break}var min=drag.min[a_p];var max=drag.max[a_p];var oper={type:op,target:target,point:p,length:l,length0:l0,min:min,max:max,minView:0,maxView:w};focusWindow._constraintPosition(oper);m[a_p]=oper.point;switch(op){case'resize-begin':oper.max=Math.min(oper.max,scene[a_p]+scene[a_dp]);break;case'resize-end':oper.min=Math.max(oper.min,scene[a_p]);break}drag.min[a_p]=oper.min;drag.max[a_p]=oper.max}},_getOrthoAxis:function(type){var orthoType=type==='base'?'ortho':'base';return this.chart.axes[orthoType]},_getDatumsOnRect:function(datumMap,rect,keyArgs){var chart=this.chart,xAxisPanel=chart.axesPanels.x,yAxisPanel=chart.axesPanels.y,xDatumMap,yDatumMap;if(xAxisPanel){xDatumMap=new def.Map();xAxisPanel._getDatumsOnRect(xDatumMap,rect,keyArgs);if(!xDatumMap.count){xDatumMap=null}}if(yAxisPanel){yDatumMap=new def.Map();yAxisPanel._getOwnDatumsOnRect(yDatumMap,rect,keyArgs);if(!yDatumMap.count){yDatumMap=null}}if(xDatumMap&&yDatumMap){xDatumMap.intersect(yDatumMap,datumMap);keyArgs.toggle=true}else if(xDatumMap){datumMap.copy(xDatumMap)}else if(yDatumMap){datumMap.copy(yDatumMap)}else{chart.plotPanelList.forEach(function(plotPanel){plotPanel._getDatumsOnRect(datumMap,rect,keyArgs)},this)}}});
92   -def.type('pvc.CartesianAbstractPanel',pvc.PlotPanel).init(function(chart,parent,plot,options){this.base(chart,parent,plot,options);var axes=this.axes;function addAxis(axis){axes[axis.type]=axis;axes[axis.orientedId]=axis;if(axis.v1SecondOrientedId){axes[axis.v1SecondOrientedId]=axis}}addAxis(chart._getAxis('base',plot.option('BaseAxis')-1));addAxis(chart._getAxis('ortho',plot.option('OrthoAxis')-1));var pctPaddings={};var hasAny=false;function setSide(side,pct){var value=pctPaddings[side];if(value==null||pct>value){hasAny=true;pctPaddings[side]=pct}}function processAxis(axis){var offset=axis&&axis.option('Offset');if(offset!=null&&offset>0&&offset<1){if(axis.orientation==='x'){setSide('left',offset);setSide('right',offset)}else{setSide('top',offset);setSide('bottom',offset)}}}var chartAxes=chart.axesByType;['base','ortho'].forEach(function(type){var typeAxes=chartAxes[type];if(typeAxes){typeAxes.forEach(processAxis)}});if(hasAny){this.offsetPaddings=pctPaddings}}).add({offsetPaddings:null,_calcLayout:function(layoutInfo){layoutInfo.requestPaddings=this._calcRequestPaddings(layoutInfo)},_calcRequestPaddings:function(layoutInfo){var reqPads;var offPads=this.offsetPaddings;if(offPads){var tickRoundPads=this.chart._getAxesRoundingPaddings();var clientSize=layoutInfo.clientSize;var pads=layoutInfo.paddings;pvc.Sides.names.forEach(function(side){var len_a=pvc.BasePanel.orthogonalLength[side];var clientLen=clientSize[len_a];var paddingLen=pads[len_a];var len=clientLen+paddingLen;if(!tickRoundPads[side+'Locked']){var offLen=len*(offPads[side]||0);var roundLen=clientLen*(tickRoundPads[side]||0);(reqPads||(reqPads={}))[side]=Math.max(offLen-roundLen,0)}},this)}return reqPads},_createCore:function(){this.pvPanel.zOrder(-10);var hideOverflow;var contentOverflow=this.chart.options.leafContentOverflow||'auto';if(contentOverflow==='auto'){hideOverflow=def.query(['ortho','base']).select(function(axisType){return this.axes[axisType]},this).any(function(axis){return axis.option('FixedMin')!=null||axis.option('FixedMax')!=null})}else{hideOverflow=(contentOverflow==='hidden')}if(hideOverflow){this.pvPanel.borderPanel.overflow('hidden')}}});
93   -def.type('pvc.PlotBgPanel',pvc.BasePanel).init(function(chart,parent,options){this.base(chart,parent,options)}).add({anchor:'fill',_getExtensionId:function(){return'plotBg'},_createCore:function(layoutInfo){this.pvPanel.borderPanel.lock('zOrder',-13).antialias(false);this.base(layoutInfo)}});
94   -def.type('pvc.CategoricalAbstract',pvc.CartesianAbstract).init(function(options){this.base(options);var parent=this.parent;if(parent){this._catRole=parent._catRole}}).add({_initVisualRoles:function(){this.base();this._catRole=this._addVisualRole('category',this._getCategoryRoleSpec())},_getCategoryRoleSpec:function(){return{isRequired:true,defaultDimension:'category*',autoCreateDimension:true}},_generateTrendsDataCellCore:function(newDatums,dataCell,trendInfo){var serRole=this._serRole;var xRole=this._catRole;var yRole=dataCell.role;var trendOptions=dataCell.trend;this._warnSingleContinuousValueRole(yRole);var dataPartDimName=this._dataPartRole.firstDimensionName();var yDimName=yRole.firstDimensionName();var xDimName;var isXDiscrete=xRole.isDiscrete();if(!isXDiscrete){xDimName=xRole.firstDimensionName()}var sumKeyArgs={zeroIfNone:false};var ignoreNullsKeyArgs={ignoreNulls:false};var data=this.visibleData(dataCell.dataPartValue);var allPartsData=this.visibleData(null,ignoreNullsKeyArgs);var allCatDataRoot=allPartsData.flattenBy(xRole,ignoreNullsKeyArgs);var allCatDatas=allCatDataRoot._children;def.scope(function(){return(serRole&&serRole.isBound())?data.flattenBy(serRole).children():def.query([null])}).each(genSeriesTrend,this);function genSeriesTrend(serData1){var funX=isXDiscrete?null:function(allCatData){return allCatData.atoms[xDimName].value};var funY=function(allCatData){var group=data._childrenByKey[allCatData.key];if(group&&serData1){group=group._childrenByKey[serData1.key]}return group?group.dimensions(yDimName).sum(sumKeyArgs):null};var options=def.create(trendOptions,{rows:def.query(allCatDatas),x:funX,y:funY});var trendModel=trendInfo.model(options);var dataPartAtom=data.owner.dimensions(dataPartDimName).intern(this.root._firstTrendAtomProto);if(trendModel){allCatDatas.forEach(function(allCatData,index){var trendX=isXDiscrete?index:allCatData.atoms[xDimName].value;var trendY=trendModel.sample(trendX,funY(allCatData),index);if(trendY!=null){var catData=data._childrenByKey[allCatData.key];var efCatData=catData||allCatData;var atoms;if(serData1){var catSerData=catData&&catData._childrenByKey[serData1.key];if(catSerData){atoms=Object.create(catSerData._datums[0].atoms)}else{atoms=Object.create(efCatData._datums[0].atoms);def.copyOwn(atoms,serData1.atoms)}}else{atoms=Object.create(efCatData._datums[0].atoms)}atoms[yDimName]=trendY;atoms[dataPartDimName]=dataPartAtom;var newDatum=new pvc.data.Datum(efCatData.owner,atoms);newDatum.isVirtual=true;newDatum.isTrend=true;newDatum.trendType=trendInfo.type;newDatums.push(newDatum)}},this)}}},_interpolateDataCell:function(dataCell){var nullInterpMode=dataCell.nullInterpolationMode;if(nullInterpMode){var InterpType;switch(dataCell.nullInterpolationMode){case'linear':InterpType=pvc.data.LinearInterpolationOper;break;case'zero':InterpType=pvc.data.ZeroInterpolationOper;break;case'none':break;default:throw def.error.argumentInvalid('nullInterpolationMode',''+nullInterpMode)}if(InterpType){this._warnSingleContinuousValueRole(dataCell.role);var visibleData=this.visibleData(dataCell.dataPartValue);if(visibleData.childCount()>0){var allPartsData=this.visibleData(null,{ignoreNulls:false});new InterpType(allPartsData,visibleData,this._catRole,this._serRole,dataCell.role,true).interpolate()}}}},_createVisibleData:function(dataPartValue,keyArgs){var serGrouping=this._serRole&&this._serRole.flattenedGrouping();var catGrouping=this._catRole.flattenedGrouping();var partData=this.partData(dataPartValue);var ignoreNulls=def.get(keyArgs,'ignoreNulls');var groupKeyArgs={visible:true,isNull:ignoreNulls?false:null};return serGrouping?partData.groupBy([catGrouping,serGrouping],groupKeyArgs):partData.groupBy(catGrouping,groupKeyArgs)},_getContinuousVisibleCellExtent:function(valueAxis,valueDataCell){var valueRole=valueDataCell.role;switch(valueRole.name){case'series':case'category':return this.base(valueAxis,valueDataCell)}this._warnSingleContinuousValueRole(valueRole);var dataPartValue=valueDataCell.dataPartValue;var valueDimName=valueRole.firstDimensionName();var data=this.visibleData(dataPartValue);var useAbs=valueAxis.scaleUsesAbs();if(valueAxis.type!=='ortho'||!valueDataCell.isStacked){return data.leafs().select(function(serGroup){var value=serGroup.dimensions(valueDimName).sum();return useAbs&&value<0?-value:value}).range()}return data.children().select(function(catGroup){var range=this._getStackedCategoryValueExtent(catGroup,valueDimName,useAbs);if(range){return{range:range,group:catGroup}}},this).where(def.notNully).reduce(function(result,rangeInfo){return this._reduceStackedCategoryValueExtent(result,rangeInfo.range,rangeInfo.group)}.bind(this),null)},_getStackedCategoryValueExtent:function(catGroup,valueDimName,useAbs){var posSum=null,negSum=null;catGroup.children().select(function(serGroup){var value=serGroup.dimensions(valueDimName).sum();return useAbs&&value<0?-value:value}).each(function(value){if(value!=null){if(value>=0){posSum+=value}else{negSum+=value}}});if(posSum==null&&negSum==null){return null}return{max:posSum||0,min:negSum||0}},_reduceStackedCategoryValueExtent:function(result,catRange,catGroup){return pvc.unionExtents(result,catRange)},_coordinateSmallChartsLayout:function(scopesByType){this.base(scopesByType);var titleSizeMax=0;var titleOrthoLen;var axisIds=null;var sizesMaxByAxisId={};this.children.forEach(function(childChart){childChart.basePanel.layout();var size;var panel=childChart.titlePanel;if(panel){if(!titleOrthoLen){titleOrthoLen=panel.anchorOrthoLength()}size=panel[titleOrthoLen];if(size>titleSizeMax){titleSizeMax=size}}var axesPanels=childChart.axesPanels;if(!axisIds){axisIds=def.query(def.ownKeys(axesPanels)).where(function(alias){return alias===axesPanels[alias].axis.id}).select(function(id){sizesMaxByAxisId[id]={axis:0,title:0};return id}).array()}axisIds.forEach(function(id){var axisPanel=axesPanels[id];var sizes=sizesMaxByAxisId[id];var ol=axisPanel.axis.orientation==='x'?'height':'width';size=axisPanel[ol];if(size>sizes.axis){sizes.axis=size}var titlePanel=axisPanel.titlePanel;if(titlePanel){size=titlePanel[ol];if(size>sizes.title){sizes.title=size}}})},this);this.children.forEach(function(childChart){if(titleSizeMax>0){var panel=childChart.titlePanel;panel.size=panel.size.clone().set(titleOrthoLen,titleSizeMax)}var axesPanels=childChart.axesPanels;axisIds.forEach(function(id){var axisPanel=axesPanels[id];var sizes=sizesMaxByAxisId[id];var ol=axisPanel.axis.orientation==='x'?'height':'width';axisPanel.size=axisPanel.size.clone().set(ol,sizes.axis);var titlePanel=axisPanel.titlePanel;if(titlePanel){titlePanel.size=titlePanel.size.clone().set(ol,sizes.title)}});childChart.basePanel.invalidateLayout()},this)},defaults:{orthoAxisOrdinal:false}});
95   -def.type('pvc.CategoricalAbstractPanel',pvc.CartesianAbstractPanel).init(function(chart,parent,plot,options){this.base(chart,parent,plot,options);this.stacked=plot.option('Stacked')});
96   -def.type('pvc.AxisPanel',pvc.BasePanel).init(function(chart,parent,axis,options){options=def.create(options,{anchor:axis.option('Position')});var anchor=options.anchor||this.anchor;this.axis=axis;this.base(chart,parent,options);this.roleName=axis.role.name;this.isDiscrete=axis.role.isDiscrete();this._extensionPrefix=axis.extensionPrefixes;if(this.labelSpacingMin==null){this.labelSpacingMin=this.isDiscrete?0.1:1.5}if(this.showTicks==null){this.showTicks=!this.isDiscrete}if(options.font===undefined){var extFont=this._getConstantExtension('label','font');if(extFont){this.font=extFont}}if(options.tickLength===undefined){var tickLength=+this._getConstantExtension('ticks',this.anchorOrthoLength(anchor));if(!isNaN(tickLength)&&isFinite(tickLength)){this.tickLength=tickLength}}}).add({pvRule:null,pvTicks:null,pvLabel:null,pvRuleGrid:null,pvScale:null,isDiscrete:false,roleName:null,axis:null,anchor:"bottom",tickLength:6,scale:null,ruleCrossesMargin:true,font:'9px sans-serif',labelSpacingMin:null,domainRoundMode:'none',desiredTickCount:null,tickExponentMin:null,tickExponentMax:null,showMinorTicks:true,showTicks:null,hiddenLabelText:"\u00B7",_isScaleSetup:false,_createLogInstanceId:function(){return this.base()+" - "+this.axis.id},getTicks:function(){return this._layoutInfo&&this._layoutInfo.ticks},_calcLayout:function(layoutInfo){var scale=this.axis.scale;if(!this._isScaleSetup){this.pvScale=scale;this.scale=scale;this.extend(scale,"scale");this._isScaleSetup=true}if(scale.isNull){layoutInfo.axisSize=0}else{this._calcLayoutCore(layoutInfo)}return this.createAnchoredSize(layoutInfo.axisSize,layoutInfo.clientSize)},_calcLayoutCore:function(layoutInfo){var axisSize=layoutInfo.desiredClientSize[this.anchorOrthoLength()];layoutInfo.axisSize=axisSize;if(this.isDiscrete&&this.useCompositeAxis){if(layoutInfo.axisSize==null){layoutInfo.axisSize=50}}else{layoutInfo.textAngle=def.number.as(this._getExtension('label','textAngle'),0);layoutInfo.textMargin=def.number.as(this._getExtension('label','textMargin'),3);this._calcTicks();if(this.scale.type==='discrete'){this._calcDiscreteTicksHidden()}this._calcAxisSizeFromLabel();if(layoutInfo.axisSize==null){layoutInfo.axisSize=layoutInfo.requiredAxisSize}this._calcMaxTextLengthThatFits();this._calcOverflowPaddings()}},_calcAxisSizeFromLabel:function(){this._calcLabelBBox();this._calcAxisSizeFromLabelBBox()},_calcLabelBBox:function(){var layoutInfo=this._layoutInfo;var align=this._getExtension('label','textAlign');if(typeof align!=='string'){align=this.isAnchorTopOrBottom()?"center":(this.anchor=="left")?"right":"left"}var baseline=this._getExtension('label','textBaseline');if(typeof baseline!=='string'){switch(this.anchor){case"right":case"left":case"center":baseline="middle";break;case"bottom":baseline="top";break;default:baseline="bottom"}}return(layoutInfo.labelBBox=pvc.text.getLabelBBox(layoutInfo.maxTextWidth!=null?layoutInfo.maxTextWidth:layoutInfo._maxTextWidth,layoutInfo.textHeight,align,baseline,layoutInfo.textAngle,layoutInfo.textMargin))},_calcAxisSizeFromLabelBBox:function(){var layoutInfo=this._layoutInfo;var labelBBox=layoutInfo.labelBBox;var length=this._getLabelBBoxQuadrantLength(labelBBox,this.anchor);var axisSize=this.tickLength+length;var angle=labelBBox.sourceAngle;if(!(angle===0&&this.isAnchorTopOrBottom())){axisSize+=this.tickLength}layoutInfo.requiredAxisSize=axisSize},_getLabelBBoxQuadrantLength:function(labelBBox,quadrantSide){var length;switch(quadrantSide){case'left':length=-labelBBox.x;break;case'right':length=labelBBox.x2;break;case'top':length=-labelBBox.y;break;case'bottom':length=labelBBox.y2;break}return Math.max(length,0)},_calcOverflowPaddings:function(){if(!this._layoutInfo.canChange){if(pvc.debug>=2){this._log("[WARNING] Layout cannot change. Skipping calculation of overflow paddings.")}return}if(!this._layoutInfo.labelBBox){this._calcLabelBBox()}this._calcOverflowPaddingsFromLabelBBox()},_calcOverflowPaddingsFromLabelBBox:function(){var overflowPaddings=null;var layoutInfo=this._layoutInfo;var ticks=layoutInfo.ticks;var tickCount=ticks.length;if(tickCount){var paddings=layoutInfo.paddings;var labelBBox=layoutInfo.labelBBox;var isTopOrBottom=this.isAnchorTopOrBottom();var begSide=isTopOrBottom?'left':'top';var endSide=isTopOrBottom?'right':'bottom';var isDiscrete=this.scale.type==='discrete';var clientLength=layoutInfo.clientSize[this.anchorLength()];this.axis.setScaleRange(clientLength);var sideTickOffset;if(isDiscrete){var halfBand=this.scale.range().step/2; sideTickOffset=def.set({},begSide,halfBand,endSide,halfBand)}else{sideTickOffset=def.set({},begSide,this.scale(ticks[0]),endSide,clientLength-this.scale(ticks[tickCount-1]))}[begSide,endSide].forEach(function(side){var overflowPadding=this._getLabelBBoxQuadrantLength(labelBBox,side);if(overflowPadding>0){overflowPadding-=(paddings[side]||0);if(overflowPadding>0){overflowPadding-=sideTickOffset[side];if(overflowPadding>1){if(isDiscrete){overflowPadding*=1.05}if(!overflowPaddings){overflowPaddings={}}overflowPaddings[side]=overflowPadding}}}},this);if(pvc.debug>=6&&overflowPaddings){this._log("OverflowPaddings = "+pvc.stringify(overflowPaddings))}}layoutInfo.overflowPaddings=overflowPaddings},_calcMaxTextLengthThatFits:function(){var layoutInfo=this._layoutInfo;if(this.compatVersion()<=1){layoutInfo.maxTextWidth=null;return}var availableClientLength=layoutInfo.clientSize[this.anchorOrthoLength()];var efSize=Math.min(layoutInfo.axisSize,availableClientLength);if(efSize>=(layoutInfo.requiredAxisSize-this.tickLength)){layoutInfo.maxTextWidth=null}else{var labelBBox=layoutInfo.labelBBox;var maxOrthoLength=efSize-2*this.tickLength;var mostOrthoDistantPoint;var parallelDirection;switch(this.anchor){case'left':parallelDirection=pv.vector(0,1);mostOrthoDistantPoint=pv.vector(-maxOrthoLength,0);break;case'right':parallelDirection=pv.vector(0,1);mostOrthoDistantPoint=pv.vector(maxOrthoLength,0);break;case'top':parallelDirection=pv.vector(1,0);mostOrthoDistantPoint=pv.vector(0,-maxOrthoLength);break;case'bottom':parallelDirection=pv.vector(1,0);mostOrthoDistantPoint=pv.vector(0,maxOrthoLength);break}var orthoOutwardsDir=mostOrthoDistantPoint.norm();var corners=labelBBox.source.points();var botL=corners[0];var botR=corners[1];var topR=corners[2];var topL=corners[3];var topLRSideDir=topR.minus(topL);var botLRSideDir=botR.minus(botL);var intersect=pv.SvgScene.lineIntersect;var botI=intersect(mostOrthoDistantPoint,parallelDirection,botL,botLRSideDir);var topI=intersect(mostOrthoDistantPoint,parallelDirection,topL,topLRSideDir);var sideLRWidth=labelBBox.sourceTextWidth;var maxTextWidth=sideLRWidth;var botLI=botI.minus(botL);var botLILen=botLI.length();if(botLILen<=sideLRWidth&&botLI.dot(topLRSideDir)>=0){if(botL.dot(orthoOutwardsDir)<botR.dot(orthoOutwardsDir)){maxTextWidth=botLILen}else{maxTextWidth=botI.minus(botR).length()}}var topLI=topI.minus(topL);var topLILen=topLI.length();if(topLILen<=sideLRWidth&&topLI.dot(topLRSideDir)>=0){if(topL.dot(orthoOutwardsDir)<topR.dot(orthoOutwardsDir)){maxTextWidth=Math.min(maxTextWidth,topLILen)}else{maxTextWidth=Math.min(maxTextWidth,topI.minus(topR).length())}}if(labelBBox.sourceAlign==='center'){var cutWidth=sideLRWidth-maxTextWidth;maxTextWidth-=cutWidth}layoutInfo.maxTextWidth=maxTextWidth;if(pvc.debug>=3){this._log("Trimming labels' text at length "+maxTextWidth.toFixed(2)+"px maxOrthoLength="+maxOrthoLength.toFixed(2)+"px")}}},_calcTicks:function(){var layoutInfo=this._layoutInfo;layoutInfo.textHeight=pv.Text.fontHeight(this.font);layoutInfo.maxTextWidth=null;this.axis.setTicks(null);switch(this.scale.type){case'discrete':this._calcDiscreteTicks();break;case'timeSeries':this._calcTimeSeriesTicks();break;case'numeric':this._calcNumberTicks(layoutInfo);break;default:throw def.error.operationInvalid("Undefined axis scale type")}this.axis.setTicks(layoutInfo.ticks);var clientLength=layoutInfo.clientSize[this.anchorLength()];this.axis.setScaleRange(clientLength);if(layoutInfo.maxTextWidth==null){layoutInfo.maxTextWidth=def.query(layoutInfo.ticksText).select(function(text){return pv.Text.measure(text,this.font).width},this).max()}layoutInfo._maxTextWidth=layoutInfo.maxTextWidth},_calcDiscreteTicks:function(){var layoutInfo=this._layoutInfo;var role=this.chart.visualRoles(this.roleName);var data=role.flatten(this.chart.data,{visible:true});layoutInfo.data=data;layoutInfo.ticks=data._children;var format,dimType;var grouping=role.grouping;if(grouping.isSingleDimension&&(dimType=grouping.firstDimensionType())&&(dimType.valueType===Date)){var extent=data.dimensions(dimType.name).extent();if(extent&&extent.min!==extent.max){var scale=new pv.Scale.linear(extent.min.value,extent.max.value);scale.ticks();var tickFormatter=this.axis.option('TickFormatter');if(tickFormatter){scale.tickFormatter(tickFormatter)}format=function(child){return scale.tickFormat(child.value)}}}if(!format){format=function(child){return child.absLabel}}layoutInfo.ticksText=data._children.map(format)},_calcTimeSeriesTicks:function(){this._calcContinuousTicks(this._layoutInfo)},_calcNumberTicks:function(){var desiredTickCount=this.desiredTickCount;if(desiredTickCount==null){if(this.isAnchorTopOrBottom()){this._calcNumberHTicks();return}desiredTickCount=this._calcNumberVDesiredTickCount()}this._calcContinuousTicks(this._layoutInfo,desiredTickCount)},_calcContinuousTicks:function(ticksInfo,desiredTickCount){this._calcContinuousTicksValue(ticksInfo,desiredTickCount);this._calcContinuousTicksText(ticksInfo)},_calcContinuousTicksValue:function(ticksInfo,desiredTickCount){ticksInfo.ticks=this.scale.ticks(desiredTickCount,{roundInside:this.domainRoundMode!=='tick',numberExponentMin:this.tickExponentMin,numberExponentMax:this.tickExponentMax});if(pvc.debug>4){this._log("DOMAIN: "+pvc.stringify(this.scale.domain()));this._log("TICKS: "+pvc.stringify(ticksInfo.ticks))}},_calcContinuousTicksText:function(ticksInfo){ticksInfo.ticksText=def.query(ticksInfo.ticks).select(function(tick){return this.scale.tickFormat(tick)},this).array()},_calcDiscreteTicksHidden:function(){return this._tickIncludeModulo=this._calcDiscreteTicksHiddenCore()},_calcDiscreteTicksHiddenCore:function(){var mode=this.axis.option('OverlappedLabelsMode');if(mode!=='hide'){return 1}var layoutInfo=this._layoutInfo;var ticks=layoutInfo.ticks;var tickCount=ticks.length;if(tickCount<=1){return 1}var b=this.scale.range().step;var h=layoutInfo.textHeight;var w=layoutInfo.maxTextWidth;if(!(w>0&&h>0&&b>0)){return 1}var sMin=h*this.labelSpacingMin;var a=layoutInfo.textAngle;var isTopOrBottom=this.isAnchorTopOrBottom();var sinOrCos=isTopOrBottom?'sin':'cos';var cosOrSin=!isTopOrBottom?'sin':'cos';var tickIncludeModulo=1;do{var bEf=tickIncludeModulo*b;var sBase=bEf*Math.abs(Math[sinOrCos](a))-h;var sOrtho=bEf*Math.abs(Math[cosOrSin](a))-w;if(sBase>=sMin||sOrtho>=sMin){break}tickIncludeModulo++}while(Math.ceil(tickCount/tickIncludeModulo)>1);if(tickIncludeModulo>1&&pvc.debug>=3){this._log("Showing only one in every "+tickIncludeModulo+" tick labels")}return tickIncludeModulo},_calcNumberVDesiredTickCount:function(){var layoutInfo=this._layoutInfo;var lineHeight=layoutInfo.textHeight*(1+Math.max(0,this.labelSpacingMin));var clientLength=layoutInfo.clientSize[this.anchorLength()];return Math.max(1,~~(clientLength/lineHeight))},_calcNumberHTicks:function(){var layoutInfo=this._layoutInfo;var clientLength=layoutInfo.clientSize[this.anchorLength()];var spacing=layoutInfo.textHeight*Math.max(0,this.labelSpacingMin);var desiredTickCount=this._calcNumberHDesiredTickCount(spacing);var doLog=(pvc.debug>=7);var dir,prevResultTickCount;var ticksInfo,lastBelow,lastAbove;do{if(doLog){this._log("calculateNumberHTicks TickCount IN desired = "+desiredTickCount)}ticksInfo={};this._calcContinuousTicksValue(ticksInfo,desiredTickCount);var ticks=ticksInfo.ticks;var resultTickCount=ticks.length;if(ticks.exponentOverflow){if(dir==null){if(ticks.exponent===this.exponentMin){lastBelow=ticksInfo;dir=1}else{lastAbove=ticksInfo;dir=-1}}else if(dir===1){if(lastBelow){ticksInfo=lastBelow}break}else{if(lastAbove){ticksInfo=lastAbove}break}}else if(prevResultTickCount==null||resultTickCount!==prevResultTickCount){if(doLog){this._log("calculateNumberHTicks TickCount desired/resulting = "+desiredTickCount+" -> "+resultTickCount)}prevResultTickCount=resultTickCount;this._calcContinuousTicksText(ticksInfo);var length=this._calcNumberHLength(ticksInfo,spacing);var excessLength=ticksInfo.excessLength=length-clientLength;var pctError=ticksInfo.error=Math.abs(excessLength/clientLength);if(doLog){this._log("calculateNumberHTicks error="+(excessLength>=0?"+":"-")+(ticksInfo.error*100).toFixed(0)+"% count="+resultTickCount+" step="+ticks.step);this._log("calculateNumberHTicks Length client/resulting = "+clientLength+" / "+length+" spacing = "+spacing)}if(excessLength>0){if(desiredTickCount===1){if(resultTickCount===3&&pctError<=1){ticksInfo.ticks.splice(1,1);ticksInfo.ticksText.splice(1,1);ticksInfo.ticks.step*=2}else{ticksInfo.ticks.length=1;ticksInfo.ticksText.length=1}delete ticksInfo.maxTextWidth;break}if(lastBelow){ticksInfo=lastBelow;break}lastAbove=ticksInfo;dir=-1}else{if(pctError<=0.05||dir===-1){break}lastBelow=ticksInfo;dir=+1}}desiredTickCount+=dir}while(true);if(ticksInfo){layoutInfo.ticks=ticksInfo.ticks;layoutInfo.ticksText=ticksInfo.ticksText;layoutInfo.maxTextWidth=ticksInfo.maxTextWidth;if(pvc.debug>=5){this._log("calculateNumberHTicks RESULT error="+(ticksInfo.excessLength>=0?"+":"-")+(ticksInfo.error*100).toFixed(0)+"% count="+ticksInfo.ticks.length+" step="+ticksInfo.ticks.step)}}if(doLog){this._log("calculateNumberHTicks END")}},_calcNumberHDesiredTickCount:function(spacing){var layoutInfo=this._layoutInfo;var domainTextLength=this.scale.domain().map(function(tick){tick=+tick.toFixed(2);var text=this.scale.tickFormat(tick);return pv.Text.measure(text,this.font).width},this);var avgTextLength=Math.max((domainTextLength[1]+domainTextLength[0])/2,layoutInfo.textHeight);var clientLength=layoutInfo.clientSize[this.anchorLength()];return Math.max(1,~~(clientLength/(avgTextLength+spacing)))},_calcNumberHLength:function(ticksInfo,spacing){var ticksText=ticksInfo.ticksText;var maxTextWidth=def.query(ticksText).select(function(text){return pv.Text.measure(text,this.font).width},this).max();return Math.max(maxTextWidth,(ticksText.length-1)*(maxTextWidth+spacing))},_createCore:function(){if(this.scale.isNull){return}var clientSize=this._layoutInfo.clientSize;var paddings=this._layoutInfo.paddings;var begin_a=this.anchorOrtho();var end_a=this.anchorOpposite(begin_a);var size_a=this.anchorOrthoLength(begin_a);var rMin=this.ruleCrossesMargin?-paddings[begin_a]:0;var rMax=clientSize[size_a]+(this.ruleCrossesMargin?paddings[end_a]:0);var rSize=rMax-rMin;var ruleParentPanel=this.pvPanel;this._rSize=rSize;var rootScene=this._getRootScene();this.pvRule=new pvc.visual.Rule(this,this.pvPanel,{extensionId:'rule'}).lock('data',[rootScene]).override('defaultColor',def.fun.constant("#666666")).lock(this.anchorOpposite(),0).lock(begin_a,rMin).lock(size_a,rSize).pvMark.zOrder(30).strokeDasharray(null).lineCap('square');if(this.isDiscrete){if(this.useCompositeAxis){this.renderCompositeOrdinalAxis()}else{this.renderOrdinalAxis()}}else{this.renderLinearAxis()}},_getExtensionId:function(){return''},_getRootScene:function(){if(!this._rootScene){var rootScene=this._rootScene=new pvc.visual.CartesianAxisRootScene(null,{panel:this,group:this._getRootData()});var layoutInfo=this._layoutInfo;var ticksText=layoutInfo.ticksText;if(this.isDiscrete){if(this.useCompositeAxis){this._buildCompositeScene(rootScene)}else{layoutInfo.ticks.forEach(function(tickData,index){new pvc.visual.CartesianAxisTickScene(rootScene,{group:tickData,tick:tickData.value,tickRaw:tickData.rawValue,tickLabel:ticksText[index]})})}}else{layoutInfo.ticks.forEach(function(majorTick,index){new pvc.visual.CartesianAxisTickScene(rootScene,{tick:majorTick,tickRaw:majorTick,tickLabel:ticksText[index]})},this)}}return this._rootScene},_buildCompositeScene:function(rootScene){var isV1Compat=this.compatVersion()<=1;rootScene.vars.tick=new pvc.visual.ValueLabelVar('',"");recursive(rootScene);function recursive(scene){var data=scene.group;if(isV1Compat){var tickVar=scene.vars.tick;scene.nodeValue=scene.value=tickVar.rawValue;scene.nodeLabel=scene.label=tickVar.label}if(data.childCount()){data.children().each(function(childData){var childScene=new pvc.visual.CartesianAxisTickScene(scene,{group:childData,tick:childData.value,tickRaw:childData.rawValue,tickLabel:childData.label});recursive(childScene)})}}},_getRootData:function(){var chart=this.chart;var data=chart.data;if(this.isDiscrete&&this.useCompositeAxis){var orientation=this.anchor;var reverse=orientation=='bottom'||orientation=='left';data=chart.visualRoles(this.roleName).select(data,{visible:true,reverse:reverse})}return data},_getOrthoScale:function(){var orthoType=this.axis.type==='base'?'ortho':'base';return this.chart.axes[orthoType].scale},_getOrthoAxis:function(){var orthoType=this.axis.type==='base'?'ortho':'base';return this.chart.axes[orthoType]},renderOrdinalAxis:function(){var myself=this,scale=this.scale,hiddenLabelText=this.hiddenLabelText,anchorOpposite=this.anchorOpposite(),anchorLength=this.anchorLength(),anchorOrtho=this.anchorOrtho(),anchorOrthoLength=this.anchorOrthoLength(),layoutInfo=this._layoutInfo,pvRule=this.pvRule,ticks=layoutInfo.ticks,data=layoutInfo.data,itemCount=layoutInfo.ticks.length,rootScene=this._getRootScene(),includeModulo=this._tickIncludeModulo,isV1Compat=this.compatVersion()<=1;rootScene.vars.tickIncludeModulo=includeModulo;rootScene.vars.hiddenLabelText=hiddenLabelText;var wrapper;if(isV1Compat){var DataElement=function(tickVar){this.value=this.absValue=tickVar.rawValue;this.nodeName=''+(this.value||'');this.path=this.nodeName?[this.nodeName]:[];this.label=this.absLabel=tickVar.label};DataElement.prototype.toString=function(){return''+this.value};wrapper=function(v1f){return function(tickScene){var markWrapped=Object.create(this);markWrapped.index=this.parent.index;return v1f.call(markWrapped,new DataElement(tickScene.vars.tick))}}}var pvTicksPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:'ticksPanel'}).lock('data',rootScene.childNodes).localProperty('hidden').lockMark('hidden',function(){return(this.index%includeModulo)!==0}).lock(anchorOpposite,0).lockMark(anchorOrtho,function(tickScene){return scale(tickScene.vars.tick.value)}).lock('strokeDasharray',null).lock('strokeStyle',null).lock('fillStyle',null).lock('lineWidth',0).pvMark.zOrder(20);if(isV1Compat||this.showTicks){var pvTicks=this.pvTicks=new pvc.visual.Rule(this,pvTicksPanel,{extensionId:'ticks',wrapper:wrapper}).lock('data').intercept('visible',function(){return!this.pvMark.parent.hidden()&&this.delegateExtension(true)}).optional('lineWidth',1).lock(anchorOpposite,0).lock(anchorOrtho,0).lock(anchorLength,null).optional(anchorOrthoLength,this.tickLength*2/3).override('defaultColor',function(type){if(isV1Compat){return pv.Color.names.transparent}return pvRule.scene?pvRule.scene[0].strokeStyle:"#666666"}).pvMark}var baseline;var align;switch(this.anchor){case'top':align='center';baseline='bottom';break;case'bottom':align='center';baseline='top';break;case'left':align='right';baseline='middle';break;case'right':align='left';baseline='middle';break}var font=this.font;var maxTextWidth=this._layoutInfo.maxTextWidth;if(!isFinite(maxTextWidth)){maxTextWidth=0}this.pvLabel=new pvc.visual.Label(this,pvTicksPanel,{extensionId:'label',noClick:false,noDoubleClick:false,noSelect:false,noTooltip:false,noHover:false,wrapper:wrapper,tooltipArgs:{buildTooltip:function(context){return context.scene.vars.tick.label},isLazy:false,options:{gravity:this._calcTipsyGravity()}}}).intercept('visible',function(tickScene){return!this.pvMark.parent.hidden()?this.delegateExtension(true):!!tickScene.vars.hiddenLabelText}).intercept('text',function(tickScene){var text;if(this.pvMark.parent.hidden()){text=tickScene.vars.hiddenLabelText}else{text=this.delegateExtension();if(text===undefined){text=tickScene.vars.tick.label}if(maxTextWidth){text=pvc.text.trimToWidthB(maxTextWidth,text,font,"..",false)}}return text}).pvMark.zOrder(40).lock(anchorOpposite,this.tickLength).lock(anchorOrtho,0).font(font).textStyle("#666666").textAlign(align).textBaseline(baseline);this._debugTicksPanel(pvTicksPanel)},_debugTicksPanel:function(pvTicksPanel){if(pvc.debug>=16){var corners=this._layoutInfo.labelBBox.source.points();if(corners.length>1){corners=corners.concat(corners[0])}pvTicksPanel.add(pv.Panel)[this.anchorOpposite()](this.tickLength)[this.anchorOrtho()](0)[this.anchorLength()](0)[this.anchorOrthoLength()](0).fillStyle(null).strokeStyle(null).lineWidth(0).add(pv.Line).visible(function(){var gp=this.parent.parent;return!gp.hidden||!gp.hidden()}).data(corners).left(function(p){return p.x}).top(function(p){return p.y}).strokeStyle('red').lineWidth(0.5).strokeDasharray('-')}},renderLinearAxis:function(){var scale=this.scale,orthoAxis=this._getOrthoAxis(),orthoScale=orthoAxis.scale,pvRule=this.pvRule,anchorOpposite=this.anchorOpposite(),anchorLength=this.anchorLength(),anchorOrtho=this.anchorOrtho(),anchorOrthoLength=this.anchorOrthoLength(),rootScene=this._getRootScene();var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(tickScene){var markWrapped=Object.create(this);markWrapped.index=this.parent.index;return v1f.call(markWrapped,tickScene.vars.tick.rawValue)}}}var pvTicksPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:'ticksPanel'}).lock('data',rootScene.childNodes).lock(anchorOpposite,0).lockMark(anchorOrtho,function(tickScene){return scale(tickScene.vars.tick.value)}).lock('strokeStyle',null).lock('fillStyle',null).lock('lineWidth',0).pvMark.zOrder(20);if(this.showTicks){var pvTicks=this.pvTicks=new pvc.visual.Rule(this,pvTicksPanel,{extensionId:'ticks',wrapper:wrapper}).lock('data').override('defaultColor',function(){return pvRule.scene?pvRule.scene[0].strokeStyle:"#666666"}).lock(anchorOpposite,0).lock(anchorOrtho,0).lock(anchorLength,null).optional(anchorOrthoLength,this.tickLength).pvMark;if(this.showMinorTicks){var layoutInfo=this._layoutInfo;var ticks=layoutInfo.ticks;var tickCount=ticks.length;var minorTickOffset=tickCount>1?Math.abs(scale(ticks[1])-scale(ticks[0]))/2:0;this.pvMinorTicks=new pvc.visual.Rule(this,this.pvTicks,{extensionId:'minorTicks',wrapper:wrapper}).lock('data').intercept('visible',function(){var visible=(this.index<tickCount-1)&&(!pvTicks.scene||pvTicks.scene[0].visible);return visible&&this.delegateExtension(true)}).override('defaultColor',function(){return pvTicks.scene?pvTicks.scene[0].strokeStyle:pv.Color.names.d}).lock(anchorOpposite,0).lock(anchorLength,null).optional(anchorOrthoLength,this.tickLength/2).lockMark(anchorOrtho,minorTickOffset).pvMark}}this.renderLinearAxisLabel(pvTicksPanel,wrapper);this._debugTicksPanel(pvTicksPanel)},renderLinearAxisLabel:function(pvTicksPanel,wrapper){var pvTicks=this.pvTicks;var anchorOpposite=this.anchorOpposite();var anchorOrtho=this.anchorOrtho();var scale=this.scale;var font=this.font;posFixoY="";if(this.chart.options.posFixoY){posFixoY=this.chart.options.posFixoY}var maxTextWidth=this._layoutInfo.maxTextWidth;if(!isFinite(maxTextWidth)){maxTextWidth=0}var label=this.pvLabel=new pvc.visual.Label(this,pvTicksPanel,{extensionId:'label',wrapper:wrapper}).lock('data').pvMark.lock(anchorOpposite,this.tickLength).lock(anchorOrtho,0).zOrder(40).text(function(tickScene){var text=tickScene.vars.tick.label+posFixoY;if(maxTextWidth){text=pvc.text.trimToWidthB(maxTextWidth,text,font,'..',false)}return text}).font(this.font).textStyle("#666666");var rootPanel=this.pvPanel.root;if(this.isAnchorTopOrBottom()){label.textBaseline(anchorOpposite).textAlign(function(tickScene){var absLeft;if(this.index===0){absLeft=label.toScreenTransform().transformHPosition(label.left());if(absLeft<=0){return'left'}}else if(this.index===tickScene.parent.childNodes.length-1){absLeft=label.toScreenTransform().transformHPosition(label.left());if(absLeft>=rootPanel.width()){return'right'}}return'center'})}else{label.textAlign(anchorOpposite).textBaseline(function(tickScene){var absTop;if(this.index===0){absTop=label.toScreenTransform().transformVPosition(label.top());if(absTop>=rootPanel.height()){return'bottom'}}else if(this.index===tickScene.parent.childNodes.length-1){absTop=label.toScreenTransform().transformVPosition(label.top());if(absTop<=0){return'top'}}return'middle'})}},_onV1Click:function(context,handler){if(this.isDiscrete&&this.useCompositeAxis){handler.call(context.pvMark,context.scene,context.event)}},_onV1DoubleClick:function(context,handler){if(this.isDiscrete&&this.useCompositeAxis){handler.call(context.pvMark,context.scene,context.event)}},_getSelectableMarks:function(){if(this.isDiscrete&&this.isVisible&&this.pvLabel){return[this.pvLabel]}},renderCompositeOrdinalAxis:function(){var myself=this,isTopOrBottom=this.isAnchorTopOrBottom(),axisDirection=isTopOrBottom?'h':'v',diagDepthCutoff=2,vertDepthCutoff=2,font=this.font;var diagMargin=pv.Text.fontHeight(font)/2;var layout=this._pvLayout=this.getLayoutSingleCluster();layout.node.def("fitInfo",null).height(function(tickScene,e,f){var fitInfo=pvc.text.getFitInfo(tickScene.dx,tickScene.dy,tickScene.vars.tick.label,font,diagMargin);if(!fitInfo.h){if(axisDirection==='v'&&fitInfo.v){vertDepthCutoff=Math.min(diagDepthCutoff,tickScene.depth)}else{diagDepthCutoff=Math.min(diagDepthCutoff,tickScene.depth)}}this.fitInfo(fitInfo);return tickScene.dy});layout.node.add(pv.Bar).fillStyle('rgba(127,127,127,.001)').strokeStyle(function(tickScene){if(tickScene.maxDepth===1||!tickScene.maxDepth){return null}return"rgba(127,127,127,0.3)"}).lineWidth(function(tickScene){if(tickScene.maxDepth===1||!tickScene.maxDepth){return 0}return 0.5}).text(function(tickScene){return tickScene.vars.tick.label});var H_CUTOFF_ANG=0.30,V_CUTOFF_ANG=1.27;var align=isTopOrBottom?"center":(this.anchor=="left")?"right":"left";var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(tickScene){return v1f.call(this,tickScene)}}}this.pvLabel=new pvc.visual.Label(this,layout.label,{extensionId:'label',noClick:false,noDoubleClick:false,noSelect:false,noTooltip:false,noHover:false,wrapper:wrapper,tooltipArgs:{isLazy:false,buildTooltip:function(context){return context.scene.vars.tick.label},options:{gravity:this._calcTipsyGravity(),offset:diagMargin*2}}}).pvMark.def('lblDirection','h').textAngle(function(tickScene){if(tickScene.depth>=vertDepthCutoff&&tickScene.depth<diagDepthCutoff){this.lblDirection('v');return-Math.PI/2}if(tickScene.depth>=diagDepthCutoff){var tan=tickScene.dy/tickScene.dx;var angle=Math.atan(tan);if(angle>V_CUTOFF_ANG){this.lblDirection('v');return-Math.PI/2}if(angle>H_CUTOFF_ANG){this.lblDirection('d');return-angle}}this.lblDirection('h');return 0}).textMargin(1).textAlign(function(tickScene){return(axisDirection!='v'||tickScene.depth>=vertDepthCutoff||tickScene.depth>=diagDepthCutoff)?'center':align}).left(function(tickScene){return(axisDirection!='v'||tickScene.depth>=vertDepthCutoff||tickScene.depth>=diagDepthCutoff)?tickScene.x+tickScene.dx/2:((align=='right')?tickScene.x+tickScene.dx:tickScene.x)}).font(font).textStyle("#666666").text(function(tickScene){var fitInfo=this.fitInfo();var label=tickScene.vars.tick.label;switch(this.lblDirection()){case'h':if(!fitInfo.h){return pvc.text.trimToWidth(tickScene.dx,label,font,'..')}break;case'v':if(!fitInfo.v){return pvc.text.trimToWidth(tickScene.dy,label,font,'..')}break;case'd':if(!fitInfo.d){var diagonalLength=Math.sqrt(tickScene.dy*tickScene.dy+tickScene.dx*tickScene.dx);return pvc.text.trimToWidth(diagonalLength-diagMargin,label,font,'..')}break}return label})},getLayoutSingleCluster:function(){var rootScene=this._getRootScene(),orientation=this.anchor,maxDepth=rootScene.group.treeHeight,depthLength=this._layoutInfo.axisSize;maxDepth++;var baseDisplacement=depthLength/maxDepth,margin=maxDepth>2?((1/12)*depthLength):0;baseDisplacement-=margin;var scaleFactor=maxDepth/(maxDepth-1),orthoLength=pvc.BasePanel.orthogonalLength[orientation];var displacement=(orthoLength=='width')?(orientation==='left'?[-baseDisplacement,0]:[baseDisplacement,0]):(orientation==='top'?[0,-baseDisplacement]:[0,baseDisplacement]);this.pvRule.sign.override('defaultColor',def.fun.constant(null)).override('defaultStrokeWidth',def.fun.constant(0));var panel=this.pvRule.add(pv.Panel)[orthoLength](depthLength).strokeStyle(null).lineWidth(0).add(pv.Panel)[orthoLength](depthLength*scaleFactor).strokeStyle(null).lineWidth(0);panel.transform(pv.Transform.identity.translate(displacement[0],displacement[1]));return panel.add(pv.Layout.Cluster.Fill).nodes(rootScene.nodes()).orient(orientation)},_calcTipsyGravity:function(){switch(this.anchor){case'bottom':return's';case'top':return'n';case'left':return'w';case'right':return'e'}return's'}});
97   -def.type('pvc.AxisTitlePanel',pvc.TitlePanelAbstract).init(function(chart,parent,axis,options){this.axis=axis;this.base(chart,parent,options);this._extensionPrefix=axis.extensionPrefixes.map(function(prefix){return prefix+'Title'})}).add({_calcLayout:function(layoutInfo){var scale=this.axis.scale;if(!scale||scale.isNull){return new pvc.Size(0,0)}return this.base(layoutInfo)},_createCore:function(layoutInfo){var scale=this.axis.scale;if(!scale||scale.isNull){return}return this.base(layoutInfo)}});
98   -def.type('pvc.PieChartPanel',pvc.PlotPanel).init(function(chart,parent,plot,options){var labelStyle=plot.option('ValuesLabelStyle');this.base(chart,parent,plot,options);this.explodedOffsetRadius=plot.option('ExplodedSliceRadius');this.explodedSliceIndex=plot.option('ExplodedSliceIndex');this.activeOffsetRadius=plot.option('ActiveSliceRadius');this.labelStyle=labelStyle;if(labelStyle==='linked'){this.linkInsetRadius=plot.option('LinkInsetRadius');this.linkOutsetRadius=plot.option('LinkOutsetRadius');this.linkMargin=plot.option('LinkMargin');this.linkHandleWidth=plot.option('LinkHandleWidth');this.linkLabelSize=plot.option('LinkLabelSize');this.linkLabelSpacingMin=plot.option('LinkLabelSpacingMin')}}).add({pvPie:null,pvPieLabel:null,valueRoleName:'value',_getV1Datum:function(scene){var datum=scene.datum;if(datum){var datumEx=Object.create(datum);datumEx.percent=scene.vars.value.percent;datum=datumEx}return datum},_calcLayout:function(layoutInfo){var clientSize=layoutInfo.clientSize;var clientWidth=clientSize.width;var clientRadius=Math.min(clientWidth,clientSize.height)/2;if(!clientRadius){return new pvc.Size(0,0)}var center=pv.vector(clientSize.width/2,clientSize.height/2);function resolvePercentRadius(radius){return def.between(pvc.PercentValue.resolve(radius,clientRadius),0,clientRadius)}function resolvePercentWidth(width){return def.between(pvc.PercentValue.resolve(width,clientWidth),0,clientWidth)}var labelFont=this._getConstantExtension('label','font');if(!def.string.is(labelFont)){labelFont=this.valuesFont}var maxPieRadius=clientRadius;if(this.valuesVisible&&this.labelStyle==='linked'){var linkInsetRadius=resolvePercentRadius(this.linkInsetRadius);var linkOutsetRadius=resolvePercentRadius(this.linkOutsetRadius);var linkMargin=resolvePercentWidth(this.linkMargin);var linkLabelSize=resolvePercentWidth(this.linkLabelSize);var textMargin=def.number.to(this._getConstantExtension('label','textMargin'),3);var textHeight=pv.Text.fontHeight(labelFont);var linkHandleWidth=this.linkHandleWidth*textHeight;linkMargin+=linkHandleWidth;var linkLabelSpacingMin=this.linkLabelSpacingMin*textHeight;var freeWidthSpace=Math.max(0,clientWidth/2-clientRadius);var spaceH=Math.max(0,linkOutsetRadius+linkMargin+linkLabelSize-freeWidthSpace);var spaceV=linkOutsetRadius+textHeight;var linkAndLabelRadius=Math.max(0,spaceV,spaceH);if(linkAndLabelRadius>=maxPieRadius){this.valuesVisible=false;if(pvc.debug>=2){this._log("Hiding linked labels due to insufficient space.")}}else{maxPieRadius-=linkAndLabelRadius;layoutInfo.link={insetRadius:linkInsetRadius,outsetRadius:linkOutsetRadius,elbowRadius:maxPieRadius+linkOutsetRadius,linkMargin:linkMargin,handleWidth:linkHandleWidth,labelSize:linkLabelSize,maxTextWidth:linkLabelSize-textMargin,labelSpacingMin:linkLabelSpacingMin,textMargin:textMargin,lineHeight:textHeight}}}var explodedOffsetRadius=resolvePercentRadius(this.explodedOffsetRadius);var activeOffsetRadius=0;if(this.chart.options.hoverable){activeOffsetRadius=resolvePercentRadius(this.activeOffsetRadius)}var effectOffsetRadius=explodedOffsetRadius+activeOffsetRadius;var normalPieRadius=maxPieRadius-effectOffsetRadius;if(normalPieRadius<0){return new pvc.Size(0,0)}layoutInfo.center=center;layoutInfo.clientRadius=clientRadius;layoutInfo.normalRadius=normalPieRadius;layoutInfo.explodedOffsetRadius=explodedOffsetRadius;layoutInfo.activeOffsetRadius=activeOffsetRadius;layoutInfo.labelFont=labelFont},_createCore:function(layoutInfo){var myself=this;var chart=this.chart;var options=chart.options;var visibleKeyArgs={visible:true};var rootScene=this._buildScene();var center=layoutInfo.center;var normalRadius=layoutInfo.normalRadius;var wrapper;var extensionIds=['slice'];if(this.compatVersion()<=1){extensionIds.push('');wrapper=function(v1f){return function(pieCatScene){return v1f.call(this,pieCatScene.vars.value.value)}}}this.pvPie=new pvc.visual.PieSlice(this,this.pvPanel,{extensionId:extensionIds,center:center,activeOffsetRadius:layoutInfo.activeOffsetRadius,wrapper:wrapper,tooltipArgs:{options:{useCorners:true,gravity:function(){var isRightPlane=Math.cos(this.midAngle())>=0;var isTopPlane=Math.sin(this.midAngle())>=0;return isRightPlane?(isTopPlane?'nw':'sw'):(isTopPlane?'ne':'se')}}}}).lock('data',rootScene.childNodes).override('angle',function(){return this.scene.vars.value.angle}).override('baseOffsetRadius',function(){var explodeIndex=myself.explodedSliceIndex;if(explodeIndex==null||explodeIndex==this.pvMark.index){return layoutInfo.explodedOffsetRadius}return this.base()}).lock('outerRadius',function(){return chart.animate(0,normalRadius)}).localProperty('innerRadiusEx',pvc.PercentValue.parse).intercept('innerRadius',function(scene){var innerRadius=this.delegateExtension();if(innerRadius==null){var innerRadiusPct=this.pvMark.innerRadiusEx();if(innerRadiusPct!=null){innerRadius=pvc.PercentValue.resolve(innerRadiusPct,this.pvMark.outerRadius())||0}else{innerRadius=0}}return innerRadius>0?chart.animate(0,innerRadius):0}).pvMark;if(this.valuesVisible){if(this.labelStyle==='inside'){this.pvPieLabel=new pvc.visual.Label(this,this.pvPie.anchor(this.valuesAnchor),{extensionId:'label',wrapper:wrapper}).intercept('visible',function(scene){var angle=scene.vars.value.angle;if(angle<0.001){return false}return this.delegateExtension(true)}).pvMark.text(function(scene){return scene.vars.value.sliceLabel}).textMargin(10)}else if(this.labelStyle==='linked'){var linkLayout=layoutInfo.link;rootScene.layoutLinkLabels(layoutInfo);this.pvLinkPanel=this.pvPanel.add(pv.Panel).data(rootScene.childNodes).localProperty('pieSlice').pieSlice(function(scene){return myself.pvPie.scene[this.index]});this.pvLinkLine=new pvc.visual.Line(this,this.pvLinkPanel,{extensionId:'linkLine',freePosition:true,noClick:true,noDoubleClick:true,noSelect:true,noTooltip:true,noHover:true}).lockMark('data',function(scene){var pieSlice=this.parent.pieSlice();var midAngle=pieSlice.startAngle+pieSlice.angle/2;var outerRadius=pieSlice.outerRadius-linkLayout.insetRadius;var x=pieSlice.left+outerRadius*Math.cos(midAngle);var y=pieSlice.top+outerRadius*Math.sin(midAngle);var firstDotScene=scene.childNodes[0];if(!firstDotScene||!firstDotScene._isFirstDynamicScene){firstDotScene=new pvc.visual.PieLinkLineScene(scene,x,y,0);firstDotScene._isFirstDynamicScene=true}else{firstDotScene.x=x;firstDotScene.y=y}return scene.childNodes}).override('defaultColor',function(type){if(type==='stroke'){return'black'}return this.base(type)}).override('defaultStrokeWidth',def.fun.constant(0.5)).pvMark.lock('visible').lock('top',function(dot){return dot.y}).lock('left',function(dot){return dot.x});this.pvPieLabel=new pvc.visual.Label(this,this.pvLinkPanel,{extensionId:'label',noClick:false,noDoubleClick:false,noSelect:false,noHover:false}).lockMark('data',function(scene){return scene.lineScenes}).pvMark.lock('visible').left(function(scene){return scene.vars.link.labelX}).top(function(scene){return scene.vars.link.labelY+((this.index+1)*linkLayout.lineHeight)}).textAlign(function(scene){return scene.vars.link.labelAnchor}).textMargin(linkLayout.textMargin).textBaseline('bottom').text(function(scene){return scene.vars.link.labelLines[this.index]}).fillStyle('red');if(pvc.debug>=20){this.pvPanel.add(pv.Panel).zOrder(-10).left(center.x-layoutInfo.clientRadius).top(center.y-layoutInfo.clientRadius).width(layoutInfo.clientRadius*2).height(layoutInfo.clientRadius*2).strokeStyle('red');this.pvPanel.strokeStyle('green');var linkColors=pv.Colors.category10();this.pvLinkLine.segmented(true).strokeStyle(function(){return linkColors(this.index)})}}this.pvPieLabel.font(layoutInfo.labelFont)}},_getExtensionId:function(){var extensionIds=[{abs:'content'}];if(this.chart.parent){extensionIds.push({abs:'smallContent'})}return extensionIds.concat(this.base())},renderInteractive:function(){this.pvPanel.render()},_getSelectableMarks:function(){var marks=[this.pvPie];if(this.pvPieLabel){marks.push(this.pvPieLabel)}return marks},_buildScene:function(){var rootScene=new pvc.visual.PieRootScene(this);this.sum=rootScene.vars.sumAbs.value;return rootScene}});def.type('pvc.visual.PieRootScene',pvc.visual.Scene).init(function(panel){var chart=panel.chart;var data=chart.visualRoles('category').flatten(chart.data,pvc.data.visibleKeyArgs);var colorVarHelper=new pvc.visual.RoleVarHelper(chart,chart._colorRole);this.base(null,{panel:panel,group:data});var valueRoleName=panel.valueRoleName;var valueDimName=chart.visualRoles(valueRoleName).firstDimensionName();var valueDim=data.dimensions(valueDimName);var options=chart.options;var percentValueFormat=options.percentValueFormat;var rootScene=this;var sumAbs=0;var CategSceneClass=def.type(pvc.visual.PieCategoryScene).init(function(categData,value){this.base(rootScene,{group:categData});this.vars.category=pvc.visual.ValueLabelVar.fromComplex(categData);sumAbs+=Math.abs(value);this.vars.value=new pvc.visual.ValueLabelVar(value,formatValue(value,categData));colorVarHelper.onNewScene(this,true)});panel._extendSceneType('category',CategSceneClass,['sliceLabel','sliceLabelMask']);data.children().each(function(categData){var value=categData.dimensions(valueDimName).sum(pvc.data.visibleKeyArgs);if(value!==0){new CategSceneClass(categData,value)}});this.angleScale=pv.Scale.linear(0,sumAbs).range(0,2*Math.PI).by1(Math.abs);this.vars.sumAbs=new pvc.visual.ValueLabelVar(sumAbs,formatValue(sumAbs));this.childNodes.forEach(function(categScene){completeBuildCategScene.call(categScene)});function formatValue(value,categData){if(categData){var datums=categData._datums;if(datums.length===1){return datums[0].atoms[valueDimName].label}}return valueDim.format(value)}function completeBuildCategScene(){var valueVar=this.vars.value;valueVar.angle=this.parent.angleScale(valueVar.value);var percent=Math.abs(valueVar.value)/sumAbs;valueVar.percent=new pvc.visual.ValueLabelVar(percent,percentValueFormat(percent));valueVar.sliceLabel=this.sliceLabel()}}).add({layoutLinkLabels:function(layoutInfo){var startAngle=-Math.PI/2;var leftScenes=[];var rightScenes=[];this.childNodes.forEach(function(categScene){startAngle=categScene.layoutI(layoutInfo,startAngle);(categScene.vars.link.dir>0?rightScenes:leftScenes).push(categScene)});this._distributeLabels(-1,leftScenes,layoutInfo);this._distributeLabels(+1,rightScenes,layoutInfo)},_distributeLabels:function(dir,scenes,layoutInfo){scenes.sort(function(sceneA,sceneB){return def.compare(sceneA.vars.link.targetY,sceneB.vars.link.targetY)});this._distributeLabelsDownwards(scenes,layoutInfo)&&this._distributeLabelsUpwards(scenes,layoutInfo)&&this._distributeLabelsEvenly(scenes,layoutInfo);scenes.forEach(function(categScene){categScene.layoutII(layoutInfo)})},_distributeLabelsDownwards:function(scenes,layoutInfo){var linkLayout=layoutInfo.link;var labelSpacingMin=linkLayout.labelSpacingMin;var yMax=layoutInfo.clientSize.height;var overlapping=false;for(var i=0,J=scenes.length-1;i<J;i++){var linkVar0=scenes[i].vars.link;if(!i&&linkVar0.labelTop()<0){overlapping=true}var linkVar1=scenes[i+1].vars.link;var labelTopMin1=linkVar0.labelBottom()+labelSpacingMin;if(linkVar1.labelTop()<labelTopMin1){var halfLabelHeight1=linkVar1.labelHeight/2;var targetY1=labelTopMin1+halfLabelHeight1;var targetYMax=yMax-halfLabelHeight1;if(targetY1>targetYMax){overlapping=true;linkVar1.targetY=targetYMax}else{linkVar1.targetY=targetY1}}}return overlapping},_distributeLabelsUpwards:function(scenes,layoutInfo){var linkLayout=layoutInfo.link;var labelSpacingMin=linkLayout.labelSpacingMin;var overlapping=false;for(var i=scenes.length-1;i>0;i--){var linkVar1=scenes[i-1].vars.link;var linkVar0=scenes[i].vars.link;if(i===1&&linkVar1.labelTop()<0){overlapping=true}var labelBottomMax1=linkVar0.labelTop()-labelSpacingMin;if(linkVar1.labelBottom()>labelBottomMax1){var halfLabelHeight1=linkVar1.labelHeight/2;var targetY1=labelBottomMax1-halfLabelHeight1;var targetYMin=halfLabelHeight1;if(targetY1<targetYMin){overlapping=true;linkVar1.targetY=targetYMin}else{linkVar1.targetY=targetY1}}}return overlapping},_distributeLabelsEvenly:function(scenes,layoutInfo){var linkLayout=layoutInfo.link;var labelSpacingMin=linkLayout.labelSpacingMin;var totalHeight=0;scenes.forEach(function(categScene){totalHeight+=categScene.vars.link.labelHeight});var freeSpace=layoutInfo.clientSize.height-totalHeight;var labelSpacing=freeSpace;if(scenes.length>1){labelSpacing/=(scenes.length-1)}var y=0;scenes.forEach(function(scene){var linkVar=scene.vars.link;var halfLabelHeight=linkVar.labelHeight/2;y+=halfLabelHeight;linkVar.targetY=y;y+=halfLabelHeight+labelSpacing});return true}});def.type('pvc.visual.PieLinkLabelVar').add({labelTop:function(){return this.targetY-this.labelHeight/2},labelBottom:function(){return this.targetY+this.labelHeight/2}});def.type('pvc.visual.PieCategoryScene',pvc.visual.Scene).add({sliceLabelMask:function(){return this.panel().valuesMask},sliceLabel:function(){return this.format(this.sliceLabelMask())},layoutI:function(layoutInfo,startAngle){var valueVar=this.vars.value;var endAngle=startAngle+valueVar.angle;var midAngle=(startAngle+endAngle)/2;var linkVar=(this.vars.link=new pvc.visual.PieLinkLabelVar());var linkLayout=layoutInfo.link;var labelLines=pvc.text.justify(valueVar.sliceLabel,linkLayout.maxTextWidth,layoutInfo.labelFont);var lineCount=labelLines.length;linkVar.labelLines=labelLines;linkVar.labelHeight=lineCount*linkLayout.lineHeight;this.lineScenes=def.array.create(lineCount,this);var cosMid=Math.cos(midAngle);var sinMid=Math.sin(midAngle);var isAtRight=cosMid>=0;var dir=isAtRight?1:-1;linkVar.labelAnchor=isAtRight?'left':'right';var center=layoutInfo.center;var elbowRadius=linkLayout.elbowRadius;var elbowX=center.x+elbowRadius*cosMid;var elbowY=center.y+elbowRadius*sinMid;var anchorX=center.x+dir*elbowRadius;var targetX=anchorX+dir*linkLayout.linkMargin;new pvc.visual.PieLinkLineScene(this,elbowX,elbowY);new pvc.visual.PieLinkLineScene(this,anchorX,elbowY);linkVar.elbowY=elbowY;linkVar.targetY=elbowY+0;linkVar.targetX=targetX;linkVar.dir=dir;return endAngle},layoutII:function(layoutInfo){var linkVar=this.vars.link;var targetY=linkVar.targetY;var targetX=linkVar.targetX;var handleWidth=layoutInfo.link.handleWidth;if(handleWidth>0){new pvc.visual.PieLinkLineScene(this,targetX-linkVar.dir*handleWidth,targetY)}new pvc.visual.PieLinkLineScene(this,targetX,targetY);linkVar.labelX=targetX;linkVar.labelY=targetY-linkVar.labelHeight/2}});def.type('pvc.visual.PieLinkLineScene',pvc.visual.Scene).init(function(catScene,x,y,index){this.base(catScene,{group:catScene.group,index:index});this.x=x;this.y=y}).add(pv.Vector);
99   -def.type('pvc.PieChart',pvc.BaseChart).add({_animatable:true,pieChartPanel:null,_getColorRoleSpec:function(){return{isRequired:true,defaultSourceRole:'category',defaultDimension:'color*',requireIsDiscrete:true}},_initVisualRoles:function(){this.base();this._addVisualRole('category',{isRequired:true,defaultDimension:'category*',autoCreateDimension:true});this._addVisualRole('value',{isMeasure:true,isRequired:true,isPercent:true,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number,defaultDimension:'value'})},_initPlotsCore:function(){new pvc.visual.PiePlot(this)},_preRenderContent:function(contentOptions){this.base();var isV1Compat=this.compatVersion()<=1;if(isV1Compat){var innerGap=pvc.castNumber(this.options.innerGap)||0.95;innerGap=def.between(innerGap,0.1,1);contentOptions.paddings=((1-innerGap)*100/2).toFixed(2)+"%"}else if(contentOptions.paddings==null){contentOptions.paddings=new pvc.PercentValue(0.025)}var piePlot=this.plots.pie;this.pieChartPanel=new pvc.PieChartPanel(this,this.basePanel,piePlot,def.create(contentOptions,{scenes:def.getPath(this.options,'pie.scenes')}))}});
100   -def.type('pvc.BarAbstractPanel',pvc.CategoricalAbstractPanel).add({pvBar:null,pvBarLabel:null,pvCategoryPanel:null,pvSecondLine:null,pvSecondDot:null,_creating:function(){var groupScene=this.defaultVisibleBulletGroupScene();if(groupScene&&!groupScene.hasRenderer()){var colorAxis=groupScene.colorAxis;var drawLine=colorAxis.option('LegendDrawLine');var drawMarker=!drawLine||colorAxis.option('LegendDrawMarker');if(drawMarker){var keyArgs={drawMarker:true,markerShape:colorAxis.option('LegendShape'),drawRule:drawLine,markerPvProto:new pv.Mark()};this.extend(keyArgs.markerPvProto,'',{constOnly:true});groupScene.renderer(new pvc.visual.legend.BulletItemDefaultRenderer(keyArgs))}}},_createCore:function(){this.base();var me=this,chart=me.chart,plot=me.plot,isStacked=!!me.stacked,isVertical=me.isOrientationVertical(),data=me.visibleData(),seriesData=me.visualRoles.series.flatten(data),rootScene=me._buildScene(data,seriesData),orthoAxis=me.axes.ortho,baseAxis=me.axes.base,orthoScale=orthoAxis.scale,orthoZero=orthoScale(0),sceneOrthoScale=orthoAxis.sceneScale({sceneVarName:'value',nullToZero:false}),sceneBaseScale=baseAxis.sceneScale({sceneVarName:'category'}),barSizeRatio=plot.option('BarSizeRatio'),barSizeMax=plot.option('BarSizeMax'),barStackedMargin=plot.option('BarStackedMargin'),baseRange=baseAxis.scale.range(),bandWidth=baseRange.band,barStepWidth=baseRange.step,barWidth,reverseSeries=isVertical===isStacked;if(isStacked){barWidth=bandWidth}else{var S=seriesData.childCount();barWidth=S>0?(bandWidth*barSizeRatio/S):0}if(barWidth>barSizeMax){barWidth=barSizeMax}me.barWidth=barWidth;me.barStepWidth=barStepWidth;var wrapper;if(me.compatVersion()<=1){wrapper=function(v1f){return function(scene){var markParent=Object.create(this.parent);var mark=Object.create(this);mark.parent=markParent;var serIndex=scene.parent.childIndex();var catIndex=scene.childIndex();if(isStacked){markParent.index=serIndex;mark.index=catIndex}else{markParent.index=catIndex;mark.index=serIndex}return v1f.call(mark,scene.vars.value.rawValue)}}}me.pvBarPanel=new pvc.visual.Panel(me,me.pvPanel,{panelType:pv.Layout.Band,extensionId:'panel'}).lock('layers',rootScene.childNodes).lockMark('values',function(seriesScene){return seriesScene.childNodes}).lockMark('orient',isVertical?'bottom-left':'left-bottom').lockMark('layout',isStacked?'stacked':'grouped').lockMark('verticalMode',me._barVerticalMode()).lockMark('yZero',orthoZero).pvMark.band.x(sceneBaseScale).w(bandWidth).differentialControl(me._barDifferentialControl()).item.order(reverseSeries?"reverse":null).h(function(scene){var y=sceneOrthoScale(scene);return y!=null?chart.animate(0,y-orthoZero):null}).w(barWidth).horizontalRatio(barSizeRatio).verticalMargin(barStackedMargin).end;this.pvBar=new pvc.visual.Bar(me,me.pvBarPanel.item,{extensionId:'',freePosition:true,wrapper:wrapper}).lockDimensions().pvMark.antialias(false);if(plot.option('OverflowMarkersVisible')){this._addOverflowMarkers(wrapper)}if(me.valuesVisible){me.pvBarLabel=new pvc.visual.Label(me,me.pvBar.anchor(me.valuesAnchor||'center'),{extensionId:'label',wrapper:wrapper}).pvMark.visible(function(){var length=this.scene.target[this.index][isVertical?'height':'width'];return length>=4}).font(me.valuesFont).text(function(scene){return scene.format(me.valuesMask)})}},_barVerticalMode:function(){return null},_barDifferentialControl:function(){return null},_getV1Datum:function(scene){var datum=scene.datum;if(datum){var datumEx=Object.create(datum);datumEx.percent=scene.vars.value.percent;datum=datumEx}return datum},_addOverflowMarkers:function(wrapper){var orthoAxis=this.axes.ortho;if(orthoAxis.option('FixedMax')!=null){this.pvOverflowMarker=this._addOverflowMarker(false,orthoAxis.scale,wrapper)}if(orthoAxis.option('FixedMin')!=null){this.pvUnderflowMarker=this._addOverflowMarker(true,orthoAxis.scale,wrapper)}},_addOverflowMarker:function(isMin,orthoScale,wrapper){var isVertical=this.isOrientationVertical(),a_bottom=isVertical?"bottom":"left",a_top=this.anchorOpposite(a_bottom),a_height=this.anchorOrthoLength(a_bottom),a_width=this.anchorLength(a_bottom),paddings=this._layoutInfo.paddings,rOrthoBound=isMin?(orthoScale.min-paddings[a_bottom]):(orthoScale.max+paddings[a_top]),angle;if(!isMin){angle=isVertical?Math.PI:-Math.PI/2}else{angle=isVertical?0:Math.PI/2}return new pvc.visual.Dot(this,this.pvBar.anchor('center'),{noSelect:true,noHover:true,noClick:true,noDoubleClick:true,noTooltip:true,freePosition:true,extensionId:isMin?'underflowMarker':'overflowMarker',wrapper:wrapper}).intercept('visible',function(scene){var visible=this.delegateExtension();if(visible!==undefined&&!visible){return false}var value=scene.vars.value.value;if(value==null){return false}var targetInstance=this.pvMark.scene.target[this.index];var orthoMaxPos=targetInstance[a_bottom]+(value>0?targetInstance[a_height]:0);return isMin?(orthoMaxPos<rOrthoBound):(orthoMaxPos>rOrthoBound)}).lock(a_top,null).lock('shapeSize').pvMark.shape("triangle").shapeRadius(function(){return Math.min(Math.sqrt(10),this.scene.target[this.index][a_width]/2)}).shapeAngle(angle).lineWidth(1.5).strokeStyle("red").fillStyle("white")[a_bottom](function(){return rOrthoBound+(isMin?1:-1)*(this.shapeRadius()+2)})},renderInteractive:function(){this.pvPanel.render()},_getSelectableMarks:function(){return[this.pvBar]},_buildScene:function(data,seriesData){var rootScene=new pvc.visual.Scene(null,{panel:this,group:data});var categDatas=data._children;var roles=this.visualRoles;var valueVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.value,{hasPercentSubVar:this.stacked});var colorVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.color);seriesData.children().each(createSeriesScene);return rootScene;function createSeriesScene(seriesData1){var seriesScene=new pvc.visual.Scene(rootScene,{group:seriesData1}),seriesKey=seriesData1.key;seriesScene.vars.series=pvc.visual.ValueLabelVar.fromComplex(seriesData1);colorVarHelper.onNewScene(seriesScene,false);categDatas.forEach(function(categData1){var group=data._childrenByKey[categData1.key]._childrenByKey[seriesKey],scene=new pvc.visual.Scene(seriesScene,{group:group});var categVar=scene.vars.category=pvc.visual.ValueLabelVar.fromComplex(categData1);categVar.group=categData1;valueVarHelper.onNewScene(scene,true);colorVarHelper.onNewScene(scene,true)})}}});
101   -def.type('pvc.BarAbstract',pvc.CategoricalAbstract).init(function(options){this.base(options);var parent=this.parent;if(parent){this._valueRole=parent._valueRole}}).add({_initVisualRoles:function(){this.base();this._addVisualRole('value',{isMeasure:true,isRequired:true,isPercent:this.options.stacked,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number,defaultDimension:'value'});this._valueRole=this.visualRoles('value')},_getCategoryRoleSpec:function(){var catRoleSpec=this.base();catRoleSpec.requireIsDiscrete=true;return catRoleSpec},_initData:function(){this.base.apply(this,arguments);var data=this.data;this._valueDim=data.dimensions(this._valueRole.firstDimensionName())}});
102   -def.type('pvc.BarPanel',pvc.BarAbstractPanel).add({});
103   -def.type('pvc.BarChart',pvc.BarAbstract).add({_animatable:true,_allowV1SecondAxis:true,_initPlotsCore:function(){var options=this.options;var barPlot=new pvc.visual.BarPlot(this);var trend=barPlot.option('Trend');if(options.plot2){var plot2Plot=new pvc.visual.PointPlot(this,{name:'plot2',fixed:{DataPart:'1'},defaults:{ColorAxis:2,LinesVisible:true,DotsVisible:true}});if(!trend){trend=plot2Plot.option('Trend')}}if(trend){new pvc.visual.PointPlot(this,{name:'trend',fixed:{DataPart:'trend',TrendType:'none',ColorRole:'series',NullInterpolatioMode:'none'},defaults:{ColorAxis:2,LinesVisible:true,DotsVisible:false}})}},_hasDataPartRole:function(){return true},_createPlotPanels:function(parentPanel,baseOptions){var plots=this.plots;var barPlot=plots.bar;var barPanel=new pvc.BarPanel(this,parentPanel,barPlot,Object.create(baseOptions));this.barChartPanel=barPanel;var plot2Plot=plots.plot2;if(plot2Plot){if(pvc.debug>=3){this._log("Creating Point panel.")}var pointPanel=new pvc.PointPanel(this,parentPanel,plot2Plot,Object.create(baseOptions));barPanel.pvSecondLine=pointPanel.pvLine;barPanel.pvSecondDot=pointPanel.pvDot;pointPanel._applyV1BarSecondExtensions=true}var trendPlot=plots.trend;if(trendPlot){if(pvc.debug>=3){this._log("Creating Trends Point panel.")}new pvc.PointPanel(this,parentPanel,trendPlot,Object.create(baseOptions))}}});
104   -def.type('pvc.NormalizedBarPanel',pvc.BarAbstractPanel).add({_barVerticalMode:function(){return'expand'}});
105   -def.type('pvc.NormalizedBarChart',pvc.BarAbstract).add({_processOptionsCore:function(options){options.stacked=true;this.base(options)},_getContinuousVisibleExtentConstrained:function(axis,min,max){if(axis.type==='ortho'){return{min:0,max:100,minLocked:true,maxLocked:true}}return this.base(axis,min,max)},_initPlotsCore:function(hasMultiRole){new pvc.visual.NormalizedBarPlot(this)},_createPlotPanels:function(parentPanel,baseOptions){var barPlot=this.plots.bar;this.barChartPanel=new pvc.NormalizedBarPanel(this,parentPanel,barPlot,Object.create(baseOptions))}});
106   -def.type('pvc.visual.legend.WaterfallBulletGroupScene',pvc.visual.Scene).init(function(rootScene,keyArgs){this.base(rootScene,keyArgs);this.extensionPrefix=def.get(keyArgs,'extensionPrefix')||'';var item=this.createItem({value:null,rawValue:null,label:def.get(keyArgs,'label')});item.color=def.get(keyArgs,'color')}).add({hasRenderer:function(){return this._renderer},renderer:function(renderer){if(renderer!=null){this._renderer=renderer}return this._renderer},itemSceneType:function(){var ItemType=this._itemSceneType;if(!ItemType){ItemType=def.type(pvc.visual.legend.BulletItemScene);this.panel()._extendSceneType('item',ItemType,['isOn','isClickable','click']);this._itemSceneType=ItemType}return ItemType},createItem:function(keyArgs){var ItemType=this.itemSceneType();return new ItemType(this,keyArgs)}});
107   -def.type('pvc.WaterfallPanel',pvc.BarAbstractPanel).add({pvWaterfallLine:null,ruleData:null,_barDifferentialControl:function(){var isFalling=this.chart._isFalling;return function(scene){if(isFalling&&!this.index){return 1}var group=scene.vars.category.group;if(group._isFlattenGroup&&!group._isDegenerateFlattenGroup){return-2}return isFalling?-1:1}},_creating:function(){var rootScene=this._getLegendBulletRootScene();if(rootScene){var waterfallGroupScene=rootScene.firstChild;if(waterfallGroupScene&&!waterfallGroupScene.hasRenderer()){var keyArgs={drawRule:true,drawMarker:false,noSelect:true,noHover:true,rulePvProto:new pv.Mark()};this.extend(keyArgs.rulePvProto,'line',{constOnly:true});waterfallGroupScene.renderer(new pvc.visual.legend.BulletItemDefaultRenderer(keyArgs))}}},_createCore:function(){this.base();var chart=this.chart,isVertical=this.isOrientationVertical(),anchor=isVertical?"bottom":"left",ao=this.anchorOrtho(anchor),ruleRootScene=this._buildRuleScene(),orthoScale=chart.axes.ortho.scale,orthoPanelMargin=0.04*(orthoScale.range()[1]-orthoScale.range()[0]),orthoZero=orthoScale(0),sceneOrthoScale=chart.axes.ortho.sceneScale({sceneVarName:'value'}),sceneBaseScale=chart.axes.base.sceneScale({sceneVarName:'category'}),baseScale=chart.axes.base.scale,barWidth2=this.barWidth/2,barWidth=this.barWidth,barStepWidth=this.barStepWidth,isFalling=chart._isFalling,waterColor=chart._waterColor;if(this.plot.option('AreasVisible')){var panelColors=pv.Colors.category10();var waterGroupRootScene=this._buildWaterGroupScene();this.pvWaterfallGroupPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:'group'}).lock('data',waterGroupRootScene.childNodes).pvMark.zOrder(-1).fillStyle(function(){return panelColors(0).alpha(0.15)})[ao](function(scene){var categVar=scene.vars.category;return baseScale(categVar.leftValue)-barStepWidth/2})[this.anchorLength(anchor)](function(scene){var categVar=scene.vars.category,length=Math.abs(baseScale(categVar.rightValue)-baseScale(categVar.leftValue));return length+barStepWidth})[anchor](function(scene){return orthoScale(scene.vars.value.bottomValue)-orthoPanelMargin/2})[this.anchorOrthoLength(anchor)](function(scene){return orthoScale(scene.vars.value.heightValue)+orthoPanelMargin})}this.pvBar.sign.override('baseColor',function(type){var color=this.base(type);if(type==='fill'){if(!this.scene.vars.category.group._isFlattenGroup){return pv.color(color).alpha(0.5)}}return color});this.pvWaterfallLine=new pvc.visual.Rule(this,this.pvPanel,{extensionId:'line',noTooltip:false,noHover:false,noSelect:false,noClick:false,noDoubleClick:false}).lock('data',ruleRootScene.childNodes).optional('visible',function(){return(isFalling&&!!this.scene.previousSibling)||(!isFalling&&!!this.scene.nextSibling)}).optional(anchor,function(){return orthoZero+chart.animate(0,sceneOrthoScale(this.scene)-orthoZero)}).optional(this.anchorLength(anchor),barStepWidth+barWidth).optional(ao,isFalling?function(){return sceneBaseScale(this.scene)-barStepWidth-barWidth2}:function(){return sceneBaseScale(this.scene)-barWidth2}).override('defaultColor',function(){return waterColor}).pvMark.antialias(true).lineCap('butt');if(this.plot.option('TotalValuesVisible')){this.pvWaterfallLabel=new pvc.visual.Label(this,this.pvWaterfallLine,{extensionId:'lineLabel'}).intercept('visible',function(scene){if(scene.vars.category.group._isFlattenGroup){return false}return isFalling||!!scene.nextSibling}).pvMark[anchor](function(scene){return orthoZero+chart.animate(0,sceneOrthoScale(scene)-orthoZero)})[this.anchorOrtho(anchor)](sceneBaseScale).textAlign(isVertical?'center':'left').textBaseline(function(categScene){if(!isVertical){return'middle'}var direction=categScene.vars.direction;if(direction==null){return'bottom'}var isRising=!isFalling;return(isRising===(direction==='up')?'bottom':'top')}).textStyle(pv.Color.names.darkgray.darker(2)).textMargin(5).text(function(scene){return scene.vars.value.label})}},_buildRuleScene:function(){var rootScene=new pvc.visual.Scene(null,{panel:this,group:this.visibleData()});var prevValue;if(this.chart._ruleInfos){this.chart._ruleInfos.forEach(createCategScene,this)}return rootScene;function createCategScene(ruleInfo){var categData1=ruleInfo.group;var categScene=new pvc.visual.Scene(rootScene,{group:categData1});var categVar=categScene.vars.category=pvc.visual.ValueLabelVar.fromComplex(categData1);categVar.group=categData1;var value=ruleInfo.offset;categScene.vars.value=new pvc.visual.ValueLabelVar(value,this.chart._valueDim.format(value));categScene.vars.direction=(prevValue==null||prevValue===value)?null:(prevValue<value?'up':'down');prevValue=value}},_buildWaterGroupScene:function(){var chart=this.chart,ruleInfos=this.chart._ruleInfos,ruleInfoByCategKey=ruleInfos&&def.query(ruleInfos).object({name:function(ruleInfo){return ruleInfo.group.absKey},value:function(ruleInfo){return ruleInfo}}),isFalling=chart._isFalling,rootCatData=chart._catRole.select(chart.partData(this.dataPartValue),{visible:true}),rootScene=new pvc.visual.Scene(null,{panel:this,group:rootCatData});if(ruleInfoByCategKey){createCategSceneRecursive(rootCatData,0)}return rootScene;function createCategSceneRecursive(catData,level){var children=catData.children().where(function(child){return child.key!==""}).array();if(children.length){if(level){var categScene=new pvc.visual.Scene(rootScene,{group:catData});var categVar=categScene.vars.category=pvc.visual.ValueLabelVar.fromComplex(catData);categVar.group=catData;categVar.level=level;var valueVar=categScene.vars.value={};var ruleInfo=ruleInfoByCategKey[catData.absKey];var offset=ruleInfo.offset,range=ruleInfo.range,height=-range.min+range.max;if(isFalling){var lastChild=lastLeaf(catData);var lastRuleInfo=ruleInfoByCategKey[lastChild.absKey];categVar.leftValue=ruleInfo.group.value;categVar.rightValue=lastRuleInfo.group.value;valueVar.bottomValue=offset-range.max}else{var firstChild=firstLeaf(catData);var firstRuleInfo=ruleInfoByCategKey[firstChild.absKey];categVar.leftValue=firstRuleInfo.group.value;categVar.rightValue=ruleInfo.group.value;valueVar.bottomValue=offset-range.max}valueVar.heightValue=height}children.forEach(function(child){createCategSceneRecursive(child,level+1)})}}function firstLeaf(data){var firstChild=data._children&&data._children[0];return firstChild?firstLeaf(firstChild):data}function lastLeaf(data){var lastChild=data._children&&data._children[data._children.length-1];return lastChild?lastLeaf(lastChild):data}}});
108   -def.type('pvc.WaterfallChart',pvc.BarAbstract).init(function(options){this.base(options);var parent=this.parent;if(parent){this._isFalling=parent._isFalling}}).add({_animatable:true,_isFalling:true,_ruleInfos:null,_waterColor:pv.color("#1f77b4").darker(),_processOptionsCore:function(options){options.stacked=true;options.baseAxisComposite=false;this.base(options);options.plot2=false},_initPlotsCore:function(){var options=this.options;var waterPlot=new pvc.visual.WaterfallPlot(this);this._isFalling=waterPlot.option('Direction')==='down';this._catRole.setFlatteningMode(this._isFalling?'tree-pre':'tree-post');this._catRole.setFlattenRootLabel(this.plots.water.option('AllCategoryLabel'))},_initLegendScenes:function(legendPanel){var waterPlot=this.plots.water;var extAbsId=pvc.makeExtensionAbsId('line',waterPlot.extensionPrefixes);var strokeStyle=this._getConstantExtension(extAbsId,"strokeStyle");if(strokeStyle){this._waterColor=pv.color(strokeStyle)}var rootScene=legendPanel._getBulletRootScene();new pvc.visual.legend.WaterfallBulletGroupScene(rootScene,{extensionPrefix:pvc.buildIndexedId('',1),label:waterPlot.option('TotalLineLabel'),color:this._waterColor});this.base(legendPanel)},_reduceStackedCategoryValueExtent:function(result,catRange,catGroup){var offset;if(!result){if(catRange){offset=catRange.min+catRange.max;this._ruleInfos=[{offset:offset,group:catGroup,range:catRange}];return{min:catRange.min,max:catRange.max,offset:offset}}return null}offset=result.offset;if(this._isFalling){this._ruleInfos.push({offset:offset,group:catGroup,range:catRange})}if(!catGroup._isFlattenGroup||catGroup._isDegenerateFlattenGroup){var dir=this._isFalling?-1:1;offset=result.offset=offset+dir*(catRange.min+catRange.max);if(offset>result.max){result.max=offset}if(offset<result.min){result.min=offset}}if(!this._isFalling){this._ruleInfos.push({offset:offset,group:catGroup,range:catRange})}return result},_createPlotPanels:function(parentPanel,baseOptions){this.wfChartPanel=new pvc.WaterfallPanel(this,parentPanel,this.plots.water,def.create(baseOptions,{waterfall:this.options.waterfall}))}});
109   -def.type('pvc.PointPanel',pvc.CategoricalAbstractPanel).init(function(chart,parent,plot,options){this.base(chart,parent,plot,options);this.linesVisible=plot.option('LinesVisible');this.dotsVisible=plot.option('DotsVisible');this.areasVisible=plot.option('AreasVisible');if(!this.linesVisible&&!this.dotsVisible&&!this.areasVisible){this.linesVisible=true;plot.option.specify({'LinesVisible':true})}}).add({pvLine:null,pvArea:null,pvDot:null,pvLabel:null,pvScatterPanel:null,_creating:function(){var groupScene=this.defaultVisibleBulletGroupScene();if(groupScene&&!groupScene.hasRenderer()){var colorAxis=groupScene.colorAxis;var drawMarker=def.nullyTo(colorAxis.option('LegendDrawMarker',true),this.dotsVisible||this.areasVisible);var drawRule=!drawMarker||def.nullyTo(colorAxis.option('LegendDrawLine',true),this.linesVisible&&!this.areasVisible);if(drawMarker||drawRule){var keyArgs={};if((keyArgs.drawMarker=drawMarker)){var markerShape=colorAxis.option('LegendShape',true);if(this.dotsVisible){if(!markerShape){markerShape='circle'}keyArgs.markerPvProto=new pv.Dot().lineWidth(1.5,pvc.extensionTag).shapeSize(12,pvc.extensionTag)}else{keyArgs.markerPvProto=new pv.Mark()}keyArgs.markerShape=markerShape;if(this._applyV1BarSecondExtensions){this.chart.extend(keyArgs.markerPvProto,'barSecondDot',{constOnly:true})}this.extend(keyArgs.markerPvProto,'dot',{constOnly:true})}if((keyArgs.drawRule=drawRule)){keyArgs.rulePvProto=new pv.Line().lineWidth(1.5,pvc.extensionTag);if(this._applyV1BarSecondExtensions){this.chart.extend(keyArgs.rulePvProto,'barSecondLine',{constOnly:true})}this.extend(keyArgs.rulePvProto,'line',{constOnly:true})}groupScene.renderer(new pvc.visual.legend.BulletItemDefaultRenderer(keyArgs))}}},_createCore:function(){this.base();var myself=this;var chart=this.chart;var isStacked=this.stacked;var dotsVisible=this.dotsVisible;var areasVisible=this.areasVisible;var linesVisible=this.linesVisible;var anchor=this.isOrientationVertical()?"bottom":"left";this.valueRole=chart.visualRoles(this.plot.option('OrthoRole'));this.valueRoleName=this.valueRole.name;this.valueDimName=this.valueRole.firstDimensionName();var isBaseDiscrete=this.axes.base.role.grouping.isDiscrete();var data=this.visibleData();var rootScene=this._buildScene(data,isBaseDiscrete);if(areasVisible){this.pvPanel.zOrder(-7)}else{this.pvPanel.zOrder(1)}this.pvScatterPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:'panel'}).lock('data',rootScene.childNodes).pvMark;var areaFillColorAlpha=areasVisible&&linesVisible&&!isStacked?0.5:null;var wrapper;if(this.compatVersion()<=1){if(isStacked){wrapper=function(v1f){return function(dotScene){return v1f.call(this,dotScene.vars.value.rawValue)}}}else{wrapper=function(v1f){return function(dotScene){var d={category:dotScene.vars.category.rawValue,value:dotScene.vars.value.rawValue};var pseudo=Object.create(this);pseudo.index=dotScene.dataIndex;return v1f.call(pseudo,d)}}}}var isLineAreaVisible=isBaseDiscrete&&isStacked?function(){return!this.scene.isNull||this.scene.isIntermediate}:function(){return!this.scene.isNull};var isLineAreaNoSelect=chart._canSelectWithFocusWindow();this.pvArea=new pvc.visual.Area(this,this.pvScatterPanel,{extensionId:'area',noTooltip:false,wrapper:wrapper,noSelect:isLineAreaNoSelect,showsSelection:!isLineAreaNoSelect}).lock('visible',isLineAreaVisible).lock('data',function(seriesScene){return seriesScene.childNodes}).override('x',function(){return this.scene.basePosition}).override('y',function(){return this.scene.orthoPosition}).override('dy',function(){return chart.animate(0,this.scene.orthoLength)}).override('color',function(type){return areasVisible?this.base(type):null}).override('baseColor',function(type){var color=this.base(type);if(!this._finished&&color&&areaFillColorAlpha!=null){color=color.alpha(areaFillColorAlpha)}return color}).override('dimColor',function(color,type){return isStacked?pvc.toGrayScale(color,1,null,null).brighter():this.base(color,type)}).lock('events',areasVisible?'painted':'none').pvMark;var dotsVisibleOnly=dotsVisible&&!linesVisible&&!areasVisible,lineCopiesAreaColor=!linesVisible&&areasVisible,darkerLineAndDotColor=isStacked&&areasVisible;var extensionIds=['line'];if(this._applyV1BarSecondExtensions){extensionIds.push({abs:'barSecondLine'})}var isLineVisible=!dotsVisibleOnly&&isLineAreaVisible;this.pvLine=new pvc.visual.Line(this,this.pvArea.anchor(this.anchorOpposite(anchor)),{extensionId:extensionIds,freePosition:true,wrapper:wrapper,noTooltip:false,noSelect:isLineAreaNoSelect,showsSelection:!isLineAreaNoSelect}).lock('visible',isLineVisible).override('defaultColor',function(type){var color=this.base(type);if(!this._finished&&darkerLineAndDotColor&&color){color=color.darker(0.6)}return color}).override('normalColor',function(color,type){return linesVisible?color:null}).override('baseStrokeWidth',function(){var strokeWidth;if(linesVisible){strokeWidth=this.base()}return strokeWidth==null?1.5:strokeWidth}).intercept('strokeDasharray',function(){var dashArray=this.delegateExtension();if(dashArray===undefined){var scene=this.scene;var useDash=scene.isInterpolated;if(!useDash){var next=scene.nextSibling;useDash=next&&next.isIntermediate&&next.isInterpolated;if(!useDash){var previous=scene.previousSibling;useDash=previous&&scene.isIntermediate&&previous.isInterpolated}}dashArray=useDash?'. ':null}return dashArray}).pvMark;var showAloneDots=!(areasVisible&&isBaseDiscrete&&isStacked);extensionIds=['dot'];if(this._applyV1BarSecondExtensions){extensionIds.push({abs:'barSecondDot'})}this.pvDot=new pvc.visual.Dot(this,this.pvLine,{extensionId:extensionIds,freePosition:true,wrapper:wrapper}).intercept('visible',function(){var scene=this.scene;return(!scene.isNull&&!scene.isIntermediate)&&this.delegateExtension(true)}).override('color',function(type){if(!dotsVisible){var visible=this.scene.isActive||(!showAloneDots&&this.scene.isSingle)||(showAloneDots&&this.scene.isAlone);if(!visible){return pvc.invisibleFill}}if(this.scene.isInterpolated&&type==='fill'){var color=this.base(type);return color&&pv.color(color).brighter(0.5)}return this.base(type)}).optionalMark('lineCap','round').override('defaultColor',function(type){var color=this.base(type);if(!this._finished&&darkerLineAndDotColor&&color){color=color.darker(0.6)}return color}).override('baseSize',function(){if(!dotsVisible){var visible=this.scene.isActive||(!showAloneDots&&this.scene.isSingle)||(showAloneDots&&this.scene.isAlone);if(visible&&!this.scene.isActive){var lineWidth=Math.max(myself.pvLine.lineWidth(),0.2)/2;return lineWidth*lineWidth}}if(this.scene.isInterpolated){return 0.8*this.base()}return this.base()}).pvMark;if(this.valuesVisible){this.pvLabel=new pvc.visual.Label(this,this.pvDot.anchor(this.valuesAnchor),{extensionId:'label',wrapper:wrapper}).pvMark.font(this.valuesFont).text(function(scene){return scene.vars.value.label})}},renderInteractive:function(){this.pvScatterPanel.render()},_getSelectableMarks:function(){var marks=[];marks.push(this.pvDot);if(this.linesVisible||this.areasVisible){marks.push(this.pvLine)}return marks},_buildScene:function(data,isBaseDiscrete){var rootScene=new pvc.visual.Scene(null,{panel:this,group:data});var categDatas=data._children;var chart=this.chart;var colorVarHelper=new pvc.visual.RoleVarHelper(chart,chart._colorRole);var valueDim=data.owner.dimensions(this.valueDimName);var isStacked=this.stacked;var visibleKeyArgs={visible:true,zeroIfNone:false};var orthoScale=this.axes.ortho.scale;var orthoNullValue=def.scope(function(){var domain=orthoScale.domain(),dmin=domain[0],dmax=domain[1];if(dmin*dmax>=0){return dmin>=0?dmin:dmax}return 0});var orthoZero=orthoScale(orthoNullValue);var sceneBaseScale=this.axes.base.sceneScale({sceneVarName:'category'});def.scope(function(){var serRole=chart._serRole;return(serRole&&serRole.grouping)?serRole.flatten(data).children():def.query([null])}).each(function(seriesData1){var seriesScene=new pvc.visual.Scene(rootScene,{group:seriesData1||data});seriesScene.vars.series=pvc.visual.ValueLabelVar.fromComplex(seriesData1);colorVarHelper.onNewScene(seriesScene,false);categDatas.forEach(function(categData,categIndex){var group=categData;if(seriesData1){group=group._childrenByKey[seriesData1.key]}var value=group?group.dimensions(valueDim.name).sum(visibleKeyArgs):null;var serCatScene=new pvc.visual.Scene(seriesScene,{group:group});serCatScene.dataIndex=categIndex;serCatScene.vars.category=pvc.visual.ValueLabelVar.fromComplex(categData);var valueVar=new pvc.visual.ValueLabelVar(value,valueDim.format(value),value);valueVar.accValue=value!=null?value:orthoNullValue;serCatScene.vars.value=valueVar;colorVarHelper.onNewScene(serCatScene,true);var isInterpolated=false;if(group){var firstDatum=group._datums[0];if(firstDatum&&firstDatum.isInterpolated){isInterpolated=true}}serCatScene.isInterpolated=isInterpolated;serCatScene.isNull=value==null;serCatScene.isIntermediate=false},this)},this);var reversedSeriesScenes=rootScene.children().reverse().array();var belowSeriesScenes2;reversedSeriesScenes.forEach(completeSeriesScenes,this);reversedSeriesScenes.forEach(trimNullSeriesScenes,this);return rootScene;function completeSeriesScenes(seriesScene){var seriesScenes2=[],seriesScenes=seriesScene.childNodes,fromScene,notNullCount=0,firstAloneScene=null;for(var c=0,toChildIndex=0,categCount=seriesScenes.length;c<categCount;c++,toChildIndex++){var toScene=seriesScenes[toChildIndex],c2=c*2;seriesScenes2[c2]=toScene;completeMainScene.call(this,fromScene,toScene,belowSeriesScenes2&&belowSeriesScenes2[c2]);if(toScene.isAlone&&!firstAloneScene){firstAloneScene=toScene}if(!toScene.isNull){notNullCount++}if(fromScene){var interScene=createIntermediateScene.call(this,seriesScene,fromScene,toScene,toChildIndex,belowSeriesScenes2&&belowSeriesScenes2[c2-1]);if(interScene){seriesScenes2[c2-1]=interScene;toChildIndex++}}fromScene=toScene}if(notNullCount===1&&firstAloneScene&&categCount===1){firstAloneScene.isSingle=true}if(isStacked){belowSeriesScenes2=seriesScenes2}}function completeMainScene(fromScene,toScene,belowScene){var toAccValue=toScene.vars.value.accValue;if(belowScene){if(toScene.isNull&&!isBaseDiscrete){toAccValue=orthoNullValue}else{toAccValue+=belowScene.vars.value.accValue}toScene.vars.value.accValue=toAccValue}toScene.basePosition=sceneBaseScale(toScene);toScene.orthoPosition=orthoZero;toScene.orthoLength=orthoScale(toAccValue)-orthoZero;var isNullFrom=(!fromScene||fromScene.isNull),isAlone=isNullFrom&&!toScene.isNull;if(isAlone){var nextScene=toScene.nextSibling;isAlone=!nextScene||nextScene.isNull}toScene.isAlone=isAlone;toScene.isSingle=false}function createIntermediateScene(seriesScene,fromScene,toScene,toChildIndex,belowScene){var interIsNull=fromScene.isNull||toScene.isNull;if(interIsNull&&!this.areasVisible){return null}var interValue,interAccValue,interBasePosition;if(interIsNull){if(belowScene&&isBaseDiscrete){var belowValueVar=belowScene.vars.value;interAccValue=belowValueVar.accValue;interValue=belowValueVar[this.valueRoleName]}else{interValue=interAccValue=orthoNullValue}if(isStacked&&isBaseDiscrete){interBasePosition=toScene.basePosition-(sceneBaseScale.range().step/2)}else if(fromScene.isNull){interBasePosition=toScene.basePosition}else{interBasePosition=fromScene.basePosition}}else{var fromValueVar=fromScene.vars.value,toValueVar=toScene.vars.value;interValue=(toValueVar.value+fromValueVar.value)/2;interAccValue=(toValueVar.accValue+fromValueVar.accValue)/2;interBasePosition=(toScene.basePosition+fromScene.basePosition)/2}var interScene=new pvc.visual.Scene(seriesScene,{index:toChildIndex,group:toScene.group,datum:toScene.group?null:toScene.datum});interScene.dataIndex=toScene.dataIndex;interScene.vars.category=toScene.vars.category;var interValueVar=new pvc.visual.ValueLabelVar(interValue,valueDim.format(interValue),interValue);interValueVar.accValue=interAccValue;interScene.vars.value=interValueVar;interScene.ownerScene=toScene;interScene.isInterpolated=toScene.isInterpolated;interScene.isIntermediate=true;interScene.isSingle=false;interScene.isNull=interIsNull;interScene.isAlone=interIsNull&&toScene.isNull&&fromScene.isNull;interScene.basePosition=interBasePosition;interScene.orthoPosition=orthoZero;interScene.orthoLength=orthoScale(interAccValue)-orthoZero;colorVarHelper.onNewScene(interScene,true);return interScene}function trimNullSeriesScenes(seriesScene){var seriesScenes=seriesScene.childNodes,L=seriesScenes.length;var scene,siblingScene;while(L&&(scene=seriesScenes[0]).isNull){siblingScene=scene.nextSibling;if(siblingScene&&!siblingScene.isNull){break}seriesScene.removeAt(0);L--}while(L&&(scene=seriesScenes[L-1]).isNull){siblingScene=scene.previousSibling;if(siblingScene&&!siblingScene.isNull){break}seriesScene.removeAt(L-1);L--}}}});
110   -def.type('pvc.PointAbstract',pvc.CategoricalAbstract).add({_animatable:true,_processOptionsCore:function(options){options.panelSizeRatio=1;this.base(options)},_hasDataPartRole:function(){return true},_initVisualRoles:function(){this.base();this._addVisualRole('value',{isMeasure:true,isRequired:true,isPercent:this.options.stacked,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number,defaultDimension:'value'})},_initPlotsCore:function(){var options=this.options;var pointPlot=this._createPointPlot();var trend=pointPlot.option('Trend');if(options.plot2){var plot2Plot=new pvc.visual.PointPlot(this,{name:'plot2',fixed:{DataPart:'1'},defaults:{ColorAxis:2,LinesVisible:true,DotsVisible:true}});if(!trend){trend=plot2Plot.option('Trend')}}if(trend){new pvc.visual.PointPlot(this,{name:'trend',fixed:{DataPart:'trend',TrendType:'none',ColorRole:'series',NullInterpolatioMode:'none'},defaults:{ColorAxis:2,LinesVisible:true,DotsVisible:false}})}},_bindAxes:function(hasMultiRole){this.base(hasMultiRole);var typeAxes=this.axesByType.base;if(typeAxes){typeAxes.forEach(function(axis){var isDiscrete=axis.scaleType==='discrete';if(!isDiscrete){axis.option.defaults({Offset:0.01})}})}typeAxes=this.axesByType.ortho;if(typeAxes){typeAxes.forEach(function(axis){axis.option.defaults({Offset:0.04})})}},_createPlotPanels:function(parentPanel,baseOptions){var plots=this.plots;var pointPlot=plots.point;this.scatterChartPanel=new pvc.PointPanel(this,parentPanel,pointPlot,Object.create(baseOptions));var plot2Plot=plots.plot2;if(plot2Plot){if(pvc.debug>=3){this._log("Creating second Point panel.")}new pvc.PointPanel(this,parentPanel,plot2Plot,Object.create(baseOptions))}var trendPlot=plots.trend;if(trendPlot){if(pvc.debug>=3){this._log("Creating Trends Point panel.")}new pvc.PointPanel(this,parentPanel,trendPlot,Object.create(baseOptions))}},defaults:{tooltipOffset:10}});def.type('pvc.DotChart',pvc.PointAbstract).add({_createPointPlot:function(){return new pvc.visual.PointPlot(this,{fixed:{DotsVisible:true}})}});def.type('pvc.LineChart',pvc.PointAbstract).add({_createPointPlot:function(){return new pvc.visual.PointPlot(this,{fixed:{LinesVisible:true}})}});def.type('pvc.AreaChart',pvc.PointAbstract).add({_createPointPlot:function(){return new pvc.visual.PointPlot(this,{fixed:{AreasVisible:true}})}});pvc.mStackedLineChart=def.type('pvc.StackedLineChart',pvc.PointAbstract).add({_createPointPlot:function(){return new pvc.visual.PointPlot(this,{fixed:{LinesVisible:true,Stacked:true}})}});def.type('pvc.StackedDotChart',pvc.PointAbstract).add({_createPointPlot:function(){return new pvc.visual.PointPlot(this,{fixed:{DotsVisible:true,Stacked:true}})}});pvc.mStackedAreaChart=def.type('pvc.StackedAreaChart',pvc.PointAbstract).add({_createPointPlot:function(){return new pvc.visual.PointPlot(this,{fixed:{AreasVisible:true,Stacked:true},defaults:{LinesVisible:true}})}});
111   -def.type('pvc.HeatGridPanel',pvc.CategoricalAbstractPanel).init(function(chart,parent,plot,options){this.base(chart,parent,plot,options);this.axes.size=chart._getAxis('size',plot.option('SizeAxis')-1);var roles=this.visualRoles;var sizeRoleName=plot.option('SizeRole');roles.size=chart.visualRoles(sizeRoleName);var valueDimName;if(roles.color.isBound()){valueDimName=roles.color.firstDimensionName()}else if(roles.size.isBound()){valueDimName=roles.size.firstDimensionName()}this._valueDimName=valueDimName;this.useShapes=plot.option('UseShapes');this.shape=plot.option('Shape');this.nullShape=plot.option('NullShape')}).add({pvHeatGrid:null,pvHeatGridLabel:null,defaultBorder:1,nullBorder:2,selectedBorder:2,_createCore:function(){this.base();var chart=this.chart;var a_bottom=this.isOrientationVertical()?"bottom":"left";var xScale=this.axes.x.scale;var yScale=this.axes.y.scale;var w=(xScale.max-xScale.min)/xScale.domain().length;var h=(yScale.max-yScale.min)/yScale.domain().length;if(a_bottom!=="bottom"){var tmp=w;w=h;h=tmp}this._cellWidth=w;this._cellHeight=h;var keyArgs={visible:true},rowRootData=chart.data.flattenBy(chart._serRole,keyArgs),data=this.visibleData(),rootScene=this._buildScene(data,rowRootData),hasColor=rootScene.hasColorRole,hasSize=rootScene.hasSizeRole;var getFillColor;var colorAxis=this.axes.color;var colorNull=colorAxis.option('Missing');if(hasColor){var fillColorScaleByColKey=colorAxis.scalesByCateg;if(fillColorScaleByColKey){getFillColor=function(leafScene){var colorValue=leafScene.vars.color.value;if(colorValue==null){return colorNull}var colAbsKey=leafScene.group.parent.absKey;return fillColorScaleByColKey[colAbsKey](colorValue)}}else{var colorScale=colorAxis.scale;getFillColor=function(leafScene){return colorScale(leafScene.vars.color.value)}}}else{getFillColor=def.fun.constant(colorNull)}var a_left=pvc.BasePanel.relativeAnchor[a_bottom];var a_width=pvc.BasePanel.parallelLength[a_bottom];var a_height=pvc.BasePanel.orthogonalLength[a_bottom];var pvRowPanel=new pvc.visual.Panel(this,this.pvPanel).pvMark.data(rootScene.childNodes)[a_bottom](function(){return this.index*h})[a_height](h);var wrapper;if(this.compatVersion()<=1){var colorValuesBySerAndCat=def.query(rootScene.childNodes).object({name:function(serScene){return''+serScene.vars.series.value},value:function(serScene){return def.query(serScene.childNodes).object({name:function(leafScene){return''+leafScene.vars.category.value},value:function(leafScene){var colorVar=leafScene.vars.color;return colorVar?(''+colorVar.value):null}})}});wrapper=function(v1f){return function(leafScene){var colorValuesByCat=colorValuesBySerAndCat[leafScene.vars.series.value];var cat=leafScene.vars.category.rawValue;var wrapperParent=Object.create(this.parent);var wrapper=Object.create(this);wrapper.parent=wrapperParent;var catIndex=leafScene.childIndex();var serIndex=leafScene.parent.childIndex();wrapperParent.index=catIndex;wrapper.index=serIndex;return v1f.call(wrapper,colorValuesByCat,cat)}}}var extensionIds=['panel'];if(this.compatVersion()<=1){extensionIds.push('')}keyArgs={extensionId:extensionIds,wrapper:wrapper};if(!this.useShapes){keyArgs.noSelect=keyArgs.noHover=keyArgs.noClick=keyArgs.noDoubleClick=keyArgs.freeColor=false;keyArgs.noTooltip=!!wrapper}var pvHeatGrid=this.pvHeatGrid=new pvc.visual.Panel(this,pvRowPanel,keyArgs).lock('data',function(serScene){return serScene.childNodes}).pvMark.localProperty('colorValue').lock('colorValue',function(leafScene){return leafScene.vars.color.value}).localProperty('sizeValue').lock('sizeValue',function(leafScene){return leafScene.vars.size.value}).lock(a_left,function(){return this.index*w}).lock(a_width,w).antialias(false);if(this.useShapes){this.shapes=this.createHeatMap(w,h,getFillColor,wrapper,hasColor,hasSize)}else{this.shapes=pvHeatGrid.sign.override('defaultColor',function(type){if(type==='stroke'){return null}return getFillColor.call(this.pvMark,this.scene)}).override('interactiveColor',function(color,type){var scene=this.scene;if(scene.isActive){return color.alpha(0.6)}if(scene.anySelected()&&!scene.isSelected()){return this.dimColor(color,type)}return this.base(color,type)}).override('dimColor',function(color){return pvc.toGrayScale(color,0.6)}).pvMark.lineWidth(1.5)}if(this.valuesVisible&&this._valueDimName){var valueDimName=this._valueDimName;this.pvHeatGridLabel=new pvc.visual.Label(this,this.pvHeatGrid.anchor("center"),{extensionId:'label',wrapper:wrapper}).pvMark.font(this.valuesFont).text(function(leafScene){return leafScene.atoms[valueDimName].label})}},_calcDotAreaRange:function(w,h){var maxRadius=Math.min(w,h)/2;if(this.shape==='diamond'){maxRadius/=Math.SQRT2}maxRadius-=2;var maxArea=maxRadius*maxRadius,minArea=12,areaSpan=maxArea-minArea;if(areaSpan<=1){maxArea=Math.max(maxArea,2);minArea=1;areaSpan=maxArea-minArea;if(pvc.debug>=2){this._log("Using rescue mode dot area calculation due to insufficient space.")}}return{min:minArea,max:maxArea,span:areaSpan}},createHeatMap:function(w,h,getFillColor,wrapper,hasColor,hasSize){var me=this,chart=me.chart,nullShapeType=me.nullShape,shapeType=me.shape;var areaRange=me._calcDotAreaRange(w,h);var maxArea=areaRange.max;var sizeScale;if(hasSize){sizeScale=me.axes.size.setScaleRange(areaRange).scale}var notNullSelectedBorder=(me.selectedBorder==null||(+me.selectedBorder)===0)?me.defaultBorder:me.selectedBorder;var nullSelectedBorder=(me.selectedBorder==null||(+me.selectedBorder)===0)?me.nullBorder:me.selectedBorder;var nullDeselectedBorder=me.defaultBorder>0?me.defaultBorder:me.nullBorder;var getShapeSize,getShapeType;if(!hasSize){getShapeType=def.fun.constant(shapeType);getShapeSize=function(){return(hasColor&&!nullShapeType&&this.parent.colorValue()==null)?0:maxArea}}else{getShapeType=function(){return this.parent.sizeValue()!=null?shapeType:nullShapeType};getShapeSize=function(){var sizeValue=this.parent.sizeValue();return(sizeValue==null&&!nullShapeType)?0:sizeScale(sizeValue)}}var keyArgs={extensionId:'dot',freePosition:true,activeSeriesAware:false,noHover:false,wrapper:wrapper};var options=chart.options;if(wrapper&&chart._tooltipEnabled){var customTooltip=options.customTooltip;if(!customTooltip){customTooltip=function(s,c,d){if(d!=null&&d[0]!==undefined){return d.join(', ')}return d}}keyArgs.tooltipArgs={buildTooltip:options.isMultiValued?function(context){var group=context.scene.group;var s=pvc.data.Complex.values(group,chart._serRole.grouping.dimensionNames());var c=pvc.data.Complex.values(group,chart._catRole.grouping.dimensionNames());var d=[];if(hasSize){d[options.sizeValIdx||0]=context.scene.vars.size.value}if(hasColor){d[options.colorValIdx||0]=context.scene.vars.color.value}return customTooltip.call(options,s,c,d)}:function(context){var s=context.scene.vars.series.rawValue;var c=context.scene.vars.category.rawValue;var valueVar=context.scene.vars[hasColor?'color':'size'];var d=valueVar?valueVar.value:null;return customTooltip.call(options,s,c,d)}}}return new pvc.visual.Dot(me,me.pvHeatGrid,keyArgs).override('defaultSize',function(){return getShapeSize.call(this.pvMark,this.scene)}).override('interactiveSize',function(size){if(this.scene.isActive){return Math.max(size,5)*1.5}return size}).override('baseColor',function(){return getFillColor.call(this.pvMark.parent,this.scene)}).override('normalColor',function(color,type){if(type==='stroke'){return color.darker()}return this.base(color,type)}).override('interactiveColor',function(color,type){var scene=this.scene;if(type==='stroke'){if(scene.anySelected()&&!scene.isSelected()){return color}return color.darker()}if(scene.isActive){return color.alpha(0.6)}return this.base(color,type)}).override('dimColor',function(color){return pvc.toGrayScale(color,0.6)}).pvMark.shape(getShapeType).lock('shapeAngle').lineWidth(function(leafScene){if(!hasSize||!me._isNullShapeLineOnly()||this.parent.sizeValue()!=null){return leafScene.isSelected()?notNullSelectedBorder:me.defaultBorder}return leafScene.isSelected()?nullSelectedBorder:nullDeselectedBorder})},_isNullShapeLineOnly:function(){return this.nullShape=='cross'},_getSelectableMarks:function(){return[this.shapes]},renderInteractive:function(){this.pvPanel.render()},_buildScene:function(data,seriesRootData){var me=this;var rootScene=new pvc.visual.Scene(null,{panel:me,group:data});var categDatas=data._children;var roles=me.visualRoles;var colorVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.color);var sizeVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.size);rootScene.hasColorRole=colorVarHelper.isBound();rootScene.hasSizeRole=sizeVarHelper.isBound();seriesRootData.children().each(createSeriesScene);return rootScene;function createSeriesScene(serData1){var serScene=new pvc.visual.Scene(rootScene,{group:serData1});serScene.vars.series=pvc.visual.ValueLabelVar.fromComplex(serData1);categDatas.forEach(function(catData1){createSeriesCategoryScene.call(me,serScene,catData1,serData1)})}function createSeriesCategoryScene(serScene,catData1,serData1){var group=data._childrenByKey[catData1.key]._childrenByKey[serData1.key];var serCatScene=new pvc.visual.Scene(serScene,{group:group});serCatScene.vars.category=pvc.visual.ValueLabelVar.fromComplex(catData1);colorVarHelper.onNewScene(serCatScene,true);sizeVarHelper.onNewScene(serCatScene,true)}}});
112   -def.type('pvc.HeatGridChart',pvc.CategoricalAbstract).add({_allowColorPerCategory:true,_axisCreateIfUnbound:{'color':true},_processOptionsCore:function(options){this.base(options);def.set(options,'orthoAxisOrdinal',true,'legend',false,'panelSizeRatio',1);var colorDimName='value',sizeDimName='value2';if(this.compatVersion()<=1){switch(this.options.colorValIdx){case 0:colorDimName='value';break;case 1:colorDimName='value2';break;default:colorDimName='value'}switch(this.options.sizeValIdx){case 0:sizeDimName='value';break;case 1:sizeDimName='value2';break;default:sizeDimName='value'}}this._colorDimName=colorDimName;this._sizeDimName=sizeDimName},_getCategoryRoleSpec:function(){var catRoleSpec=this.base();catRoleSpec.requireIsDiscrete=true;return catRoleSpec},_getColorRoleSpec:function(){return{isMeasure:true,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number,defaultDimension:this._colorDimName}},_initVisualRoles:function(){this.base();this._addVisualRole('size',{isMeasure:true,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number,defaultDimension:this._sizeDimName})},_initPlotsCore:function(){new pvc.visual.HeatGridPlot(this)},_collectPlotAxesDataCells:function(plot,dataCellsByAxisTypeThenIndex){this.base(plot,dataCellsByAxisTypeThenIndex);if(plot.type==='heatGrid'&&plot.option('UseShapes')){var sizeRole=this.visualRoles(plot.option('SizeRole'));if(sizeRole.isBound()){var sizeDataCellsByAxisIndex=def.array.lazy(dataCellsByAxisTypeThenIndex,'size');def.array.lazy(sizeDataCellsByAxisIndex,plot.option('SizeAxis')-1).push({plot:plot,role:sizeRole,dataPartValue:plot.option('DataPart')})}}},_setAxesScales:function(hasMultiRole){this.base(hasMultiRole);if(!hasMultiRole||this.parent){var sizeAxis=this.axes.size;if(sizeAxis&&sizeAxis.isBound()){this._createAxisScale(sizeAxis)}}},_createPlotPanels:function(parentPanel,baseOptions){var heatGridPlot=this.plots.heatGrid;this.heatGridChartPanel=new pvc.HeatGridPanel(this,parentPanel,heatGridPlot,Object.create(baseOptions))},defaults:{colorValIdx:0,sizeValIdx:1,measuresIndexes:[2],axisOffset:0,plotFrameVisible:false,colorNormByCategory:true,numSD:2}});
113   -def.type('pvc.MetricXYAbstract',pvc.CartesianAbstract).init(function(options){this.base(options);var parent=this.parent;if(parent){this._xRole=parent._xRole;this._yRole=parent._yRole}}).add({_processOptionsCore:function(options){this.base(options);options.panelSizeRatio=1},_initVisualRoles:function(){this.base();this._xRole=this._addVisualRole('x',{isMeasure:true,isRequired:true,requireSingleDimension:true,requireIsDiscrete:false,defaultDimension:'x',dimensionDefaults:{valueType:this.options.timeSeries?Date:Number}});this._yRole=this._addVisualRole('y',{isMeasure:true,isRequired:true,requireSingleDimension:true,requireIsDiscrete:false,defaultDimension:'y',dimensionDefaults:{valueType:Number}})},_initData:function(){this.base.apply(this,arguments);this._xDim=this.data.dimensions(this._xRole.firstDimensionName());this._yDim=this.data.dimensions(this._yRole.firstDimensionName())},_generateTrendsDataCellCore:function(newDatums,dataCell,trendInfo){var serRole=this._serRole;var xRole=this._xRole;var yRole=dataCell.role;var trendOptions=dataCell.trend;this._warnSingleContinuousValueRole(yRole);var dataPartDimName=this._dataPartRole.firstDimensionName();var xDimName=xRole.firstDimensionName();var yDimName=yRole.firstDimensionName();var data=this.visibleData(dataCell.dataPartValue);def.scope(function(){return serRole.isBound()?data.children():def.query([data])}).each(genSeriesTrend,this);function genSeriesTrend(serData){var funX=function(datum){return datum.atoms[xDimName].value};var funY=function(datum){return datum.atoms[yDimName].value};var datums=serData.datums().sort(null,funX).array();var options=def.create(trendOptions,{rows:def.query(datums),x:funX,y:funY});var trendModel=trendInfo.model(options);if(trendModel){var dataPartAtom=data.owner.dimensions(dataPartDimName).intern(this.root._firstTrendAtomProto);datums.forEach(function(datum,index){var trendX=funX(datum);if(trendX){var trendY=trendModel.sample(trendX,funY(datum),index);if(trendY!=null){var atoms=def.set(Object.create(serData.atoms),xDimName,trendX,yDimName,trendY,dataPartDimName,dataPartAtom);newDatums.push(def.set(new pvc.data.Datum(data.owner,atoms),'isVirtual',true,'isTrend',true,'trendType',trendInfo.type))}}})}}}});
114   -def.type('pvc.data.MetricPointChartTranslationOper').add({_meaLayoutRoles:['x','y','color','size'],configureType:function(){var itemTypes=this._itemTypes;var V=itemTypes.length;var freeMeaIndexes=[];var freeDisIndexes=[];def.range(0,V).each(function(j){if(!this._userUsedIndexes[j]){if(itemTypes[j]===1){freeMeaIndexes.push(j)}else{freeDisIndexes.push(j)}}},this);var N;var autoDimNames=[];var F=freeMeaIndexes.length;if(F>0){var R=this._meaLayoutRoles.length;var i=0;while(i<R&&autoDimNames.length<F){this._getUnboundRoleDefaultDimNames(this._meaLayoutRoles[i],1,autoDimNames);i++}N=autoDimNames.length;if(N>0){freeMeaIndexes.length=N;this.defReader({names:autoDimNames,indexes:freeMeaIndexes})}}F=freeDisIndexes.length;if(F>0){autoDimNames.length=0;this._getUnboundRoleDefaultDimNames('series',F,autoDimNames);N=autoDimNames.length;if(N>0){freeDisIndexes.length=N;this.defReader({names:autoDimNames,indexes:freeDisIndexes})}}}});
115   -def.type('pvc.MetricPointPanel',pvc.CartesianAbstractPanel).init(function(chart,parent,plot,options){this.base(chart,parent,plot,options);this.axes.size=chart._getAxis('size',(plot.option('SizeAxis')||0)-1);var sizeRoleName=plot.option('SizeRole');this.visualRoles.size=chart.visualRoles(sizeRoleName);this.linesVisible=plot.option('LinesVisible');this.dotsVisible=plot.option('DotsVisible');if(!this.linesVisible&&!this.dotsVisible){this.linesVisible=true;plot.option.specify({'LinesVisible':true})}this.dotShape=plot.option('Shape');if(!this.offsetPaddings){this.offsetPaddings=new pvc.Sides(0.01)}}).add({pvLine:null,pvDot:null,pvLabel:null,pvScatterPanel:null,dotShape:"circle",sizeAxisRatio:1/5,sizeAxisRatioTo:'minWidthHeight',autoPaddingByDotSize:true,_v1DimRoleName:{'category':'x','value':'y'},_creating:function(){var groupScene=this.defaultVisibleBulletGroupScene();if(groupScene&&!groupScene.hasRenderer()){var colorAxis=groupScene.colorAxis;var drawMarker=def.nullyTo(colorAxis.option('LegendDrawMarker',true),this.dotsVisible);var drawRule=def.nullyTo(colorAxis.option('LegendDrawLine',true),this.linesVisible);if(drawMarker||drawRule){var keyArgs={};if((keyArgs.drawMarker=drawMarker)){keyArgs.markerShape=colorAxis.option('LegendShape',true)||'circle';keyArgs.markerPvProto=new pv.Dot().lineWidth(1.5,pvc.extensionTag).shapeSize(12,pvc.extensionTag);this.extend(keyArgs.markerPvProto,'dot',{constOnly:true})}if((keyArgs.drawRule=drawRule)){keyArgs.rulePvProto=new pv.Line().lineWidth(1.5,pvc.extensionTag);this.extend(keyArgs.rulePvProto,'line',{constOnly:true})}groupScene.renderer(new pvc.visual.legend.BulletItemDefaultRenderer(keyArgs))}}},_getRootScene:function(){var me=this;var rootScene=me._rootScene;if(!rootScene){var roles=me.visualRoles;var hasColorRole=roles.color.isBound()&&!me.axes.color.scale.isNull;var hasSizeRole=roles.size.isBound()&&!me.axes.size.scale.isNull;me._rootScene=rootScene=me._buildScene(hasColorRole,hasSizeRole)}return rootScene},_calcLayout:function(layoutInfo){var rootScene=this._getRootScene();if(rootScene.hasSizeRole){var areaRange=this._calcDotAreaRange(layoutInfo);this.sizeScale=this.axes.size.setScaleRange(areaRange).scale}this._calcAxesPadding(layoutInfo,rootScene)},_getDotDiameterRefLength:function(layoutInfo){var clientSize=layoutInfo.clientSize;var paddings=layoutInfo.paddings;switch(this.sizeAxisRatioTo){case'minWidthHeight':return Math.min(clientSize.width+paddings.width,clientSize.height+paddings.height);case'width':return clientSize.width+paddings.width;case'height':return clientSize.height+paddings.height}if(pvc.debug>=2){this._log(def.format("Invalid option 'sizeAxisRatioTo' value. Assuming 'minWidthHeight'.",[this.sizeAxisRatioTo]))}this.sizeRatioTo='minWidthHeight';return this._getDotDiameterRefLength(layoutInfo)},_calcDotRadiusRange:function(layoutInfo){var refLength=this._getDotDiameterRefLength(layoutInfo);var max=(this.sizeAxisRatio/2)*refLength;var min=Math.sqrt(12);return{min:min,max:max}},_calcDotAreaRange:function(layoutInfo){var radiusRange=this._calcDotRadiusRange(layoutInfo);if(this.dotShape==='diamond'){radiusRange.max/=Math.SQRT2;radiusRange.min/=Math.SQRT2}var maxArea=radiusRange.max*radiusRange.max,minArea=radiusRange.min*radiusRange.min,areaSpan=maxArea-minArea;if(areaSpan<=1){maxArea=Math.max(maxArea,2);minArea=1;areaSpan=maxArea-minArea;radiusRange={min:Math.sqrt(minArea),max:Math.sqrt(maxArea)};if(pvc.debug>=3){this._log("Using rescue mode dot area calculation due to insufficient space.")}}return{min:minArea,max:maxArea,span:areaSpan}},_calcAxesPadding:function(layoutInfo,rootScene){var requestPaddings;if(!this.autoPaddingByDotSize){requestPaddings=this._calcRequestPaddings(layoutInfo)}else{var axes=this.axes;var clientSize=layoutInfo.clientSize;var paddings=layoutInfo.paddings;requestPaddings={};axes.x.setScaleRange(clientSize.width);axes.y.setScaleRange(clientSize.height);var sceneXScale=axes.base.sceneScale({sceneVarName:'x'});var sceneYScale=axes.ortho.sceneScale({sceneVarName:'y'});var xLength=axes.base.scale.max;var yLength=axes.ortho.scale.max;var hasSizeRole=rootScene.hasSizeRole;var sizeScale=this.sizeScale;if(!hasSizeRole){var defaultSize=def.number.as(this._getExtension('dot','shapeRadius'),0);if(defaultSize<=0){defaultSize=def.number.as(this._getExtension('dot','shapeSize'),0);if(defaultSize<=0){defaultSize=12}}else{defaultSize=defaultSize*defaultSize}sizeScale=def.fun.constant(defaultSize)}requestPaddings={};var op;if(this.offsetPaddings){op={};pvc.Sides.names.forEach(function(side){var len_a=pvc.BasePanel.orthogonalLength[side];op[side]=(this.offsetPaddings[side]||0)*(clientSize[len_a]+paddings[len_a])},this)}var setSide=function(side,padding){if(op){padding+=(op[side]||0)}if(padding<0){padding=0}var value=requestPaddings[side];if(value==null||padding>value){requestPaddings[side]=padding}};var processScene=function(scene){var x=sceneXScale(scene);var y=sceneYScale(scene);var r=Math.sqrt(sizeScale(hasSizeRole?scene.vars.size.value:0));setSide('left',r-x);setSide('bottom',r-y);setSide('right',x+r-xLength);setSide('top',y+r-yLength)};rootScene.children().selectMany(function(seriesScene){return seriesScene.childNodes}).each(processScene)}layoutInfo.requestPaddings=requestPaddings},_createCore:function(){this.base();var myself=this;var chart=this.chart;var rootScene=this._getRootScene();this._finalizeScene(rootScene);this.pvPanel.zOrder(1);this.pvScatterPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:'panel'}).lock('data',rootScene.childNodes).pvMark;var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(dotScene){var d={category:dotScene.vars.x.rawValue,value:dotScene.vars.y.rawValue};var pseudo=Object.create(this);pseudo.index=dotScene.dataIndex;return v1f.call(pseudo,d)}}}var isLineNoSelect=chart._canSelectWithFocusWindow();var line=new pvc.visual.Line(this,this.pvScatterPanel,{extensionId:'line',wrapper:wrapper,noTooltip:false,noHover:true,noSelect:isLineNoSelect,showsSelection:!isLineNoSelect}).lock('data',function(seriesScene){return seriesScene.childNodes}).lock('visible',this.linesVisible).override('x',function(){return this.scene.basePosition}).override('y',function(){return this.scene.orthoPosition});this.pvLine=line.pvMark;var dot=new pvc.visual.Dot(this,this.pvLine,{extensionId:'dot',wrapper:wrapper,activeSeriesAware:this.linesVisible}).intercept('visible',function(){return!this.scene.isIntermediate&&this.delegateExtension(true)}).lock('shape',this.dotShape).override('x',function(){return this.scene.basePosition}).override('y',function(){return this.scene.orthoPosition}).override('color',function(type){if(!myself.dotsVisible){var visible=this.scene.isActive||this.scene.isSingle;if(!visible){return pvc.invisibleFill}}return this.base(type)});this.pvDot=dot.pvMark;this.pvDot.rubberBandSelectionMode='center';dot.override('defaultColor',function(type){var color=this.base(type);if(color&&type==='stroke'){color=color.darker()}return color}).override('interactiveColor',function(color,type){if(type==='stroke'&&this.scene.isActive){return color}return this.base(color,type)});if(!rootScene.hasSizeRole){dot.override('baseSize',function(){if(!myself.dotsVisible){if(this.scene.isSingle){var lineWidth=Math.max(myself.pvLine.scene[this.pvMark.index].lineWidth,0.2)/2;return lineWidth*lineWidth}}return this.base()})}else{var sizeAxis=myself.axes.size;if(sizeAxis.scaleUsesAbs()){dot.override('strokeColor',function(){return this.scene.vars.size.value<0?"#000000":this.base()}).optional('lineCap','round').optionalMark('strokeDasharray',function(scene){return scene.vars.size.value<0?'dot':null}).optionalMark('lineWidth',function(scene){return scene.vars.size.value<0?1.8:1.5})}var sizeScale=this.sizeScale;dot.override('baseSize',function(){return sizeScale(this.scene.vars.size.value)}).override('interactiveSize',function(size){if(this.scene.isActive){var radius=Math.sqrt(size)*1.1;return radius*radius}return size});this.pvPanel.borderPanel.overflow("hidden")}if(this.valuesVisible){var extensionIds=['label'];if(this.compatVersion()<=1){extensionIds.push('lineLabel')}this.pvLabel=new pvc.visual.Label(this,this.pvDot.anchor(this.valuesAnchor),{extensionId:extensionIds,wrapper:wrapper}).pvMark.font(this.valuesFont).text(function(scene){return def.string.join(",",scene.vars.x.label,scene.vars.y.label)})}},renderInteractive:function(){this.pvScatterPanel.render()},_getSelectableMarks:function(){var marks=[];marks.push(this.pvDot);if(this.linesVisible){marks.push(this.pvLine)}return marks},_finalizeScene:function(rootScene){var axes=this.axes,sceneBaseScale=axes.base.sceneScale({sceneVarName:'x'}),sceneOrthoScale=axes.ortho.sceneScale({sceneVarName:'y'});rootScene.children().selectMany(function(seriesScene){return seriesScene.childNodes}).each(function(leafScene){leafScene.basePosition=sceneBaseScale(leafScene);leafScene.orthoPosition=sceneOrthoScale(leafScene)});return rootScene},_buildScene:function(hasColorRole,hasSizeRole){var data=this.visibleData();var rootScene=new pvc.visual.Scene(null,{panel:this,group:data});rootScene.hasColorRole=hasColorRole;rootScene.hasSizeRole=hasSizeRole;var roles=this.visualRoles;var colorVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.color,{forceUnbound:!hasColorRole});var sizeVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.size,{forceUnbound:!hasSizeRole});var xDim=data.owner.dimensions(roles.x.firstDimensionName());var yDim=data.owner.dimensions(roles.y.firstDimensionName());data.children().each(createSeriesScene,this);rootScene.children().each(completeSeriesScenes,this);return rootScene;function createSeriesScene(seriesGroup){var seriesScene=new pvc.visual.Scene(rootScene,{group:seriesGroup});seriesScene.vars.series=pvc.visual.ValueLabelVar.fromComplex(seriesGroup);colorVarHelper.onNewScene(seriesScene,false);seriesGroup.datums().each(function(datum,dataIndex){var xAtom=datum.atoms[xDim.name];if(xAtom.value==null){return}var yAtom=datum.atoms[yDim.name];if(yAtom.value==null){return}var scene=new pvc.visual.Scene(seriesScene,{datum:datum});scene.dataIndex=dataIndex;scene.vars.x=Object.create(xAtom);scene.vars.y=Object.create(yAtom);sizeVarHelper.onNewScene(scene,true);colorVarHelper.onNewScene(scene,true);scene.isIntermediate=false})}function completeSeriesScenes(seriesScene){var seriesScenes=seriesScene.childNodes,fromScene;for(var c=0,toChildIndex=0,pointCount=seriesScenes.length;c<pointCount;c++,toChildIndex++){var toScene=seriesScenes[toChildIndex];toScene.isSingle=!fromScene&&!toScene.nextSibling;if(fromScene){var interScene=createIntermediateScene(seriesScene,fromScene,toScene,toChildIndex);if(interScene){toChildIndex++}}fromScene=toScene}}function createIntermediateScene(seriesScene,fromScene,toScene,toChildIndex){var interYValue=yDim.type.cast.call(null,((+toScene.vars.y.value)+(+fromScene.vars.y.value))/2);var interXValue=xDim.type.cast.call(null,((+toScene.vars.x.value)+(+fromScene.vars.x.value))/2);var interScene=new pvc.visual.Scene(seriesScene,{index:toChildIndex,datum:toScene.datum});interScene.dataIndex=toScene.dataIndex;interScene.vars.x=new pvc.visual.ValueLabelVar(interXValue,xDim.format(interXValue),interXValue);interScene.vars.y=new pvc.visual.ValueLabelVar(interYValue,yDim.format(interYValue),interYValue);sizeVarHelper.onNewScene(interScene,true);colorVarHelper.onNewScene(interScene,true);interScene.ownerScene=toScene;interScene.isIntermediate=true;interScene.isSingle=false;return interScene}}});
116   -def.type('pvc.MetricPointAbstract',pvc.MetricXYAbstract).init(function(options){this.base(options);var parent=this.parent;if(parent){this._colorRole=parent._colorRole;this._sizeRole=parent._sizeRole}}).add({_initPlotsCore:function(){var pointPlot=this._createPointPlot();var trend=pointPlot.option('Trend');if(trend){new pvc.visual.MetricPointPlot(this,{name:'trend',fixed:{DataPart:'trend',TrendType:'none',NullInterpolatioMode:'none',ColorRole:'series',SizeRole:null,SizeAxis:null,OrthoAxis:1},defaults:{ColorAxis:2,LinesVisible:true,DotsVisible:false}})}},_hasDataPartRole:function(){return true},_getColorRoleSpec:function(){return{defaultSourceRole:'series',defaultDimension:'color*',dimensionDefaults:{valueType:Number}}},_initVisualRoles:function(){this.base();this._sizeRole=this._addVisualRole('size',{isMeasure:true,requireSingleDimension:true,requireIsDiscrete:false,defaultDimension:'size',dimensionDefaults:{valueType:Number}})},_getTranslationClass:function(translOptions){return def.type(this.base(translOptions)).add(pvc.data.MetricPointChartTranslationOper)},_initData:function(keyArgs){this.base(keyArgs);var sizeGrouping=this._sizeRole.grouping;if(sizeGrouping){this._sizeDim=this.data.dimensions(sizeGrouping.firstDimensionName())}},_collectPlotAxesDataCells:function(plot,dataCellsByAxisTypeThenIndex){this.base(plot,dataCellsByAxisTypeThenIndex);if(plot.type==='scatter'&&plot.option('DotsVisible')){var sizeRoleName=plot.option('SizeRole');if(sizeRoleName){var sizeRole=this.visualRoles(sizeRoleName);if(sizeRole.isBound()){var sizeDataCellsByAxisIndex=def.array.lazy(dataCellsByAxisTypeThenIndex,'size');def.array.lazy(sizeDataCellsByAxisIndex,plot.option('SizeAxis')-1).push({plot:plot,role:this.visualRoles(plot.option('SizeRole')),dataPartValue:plot.option('DataPart')})}}}},_setAxesScales:function(hasMultiRole){this.base(hasMultiRole);if(!hasMultiRole||this.parent){var sizeAxis=this.axes.size;if(sizeAxis&&sizeAxis.isBound()){this._createAxisScale(sizeAxis)}}},_createPlotPanels:function(parentPanel,baseOptions){var options=this.options;var panelOptions=def.set(Object.create(baseOptions),'sizeAxisRatio',options.sizeAxisRatio,'sizeAxisRatioTo',options.sizeAxisRatioTo,'autoPaddingByDotSize',options.autoPaddingByDotSize);var scatterPlot=this.plots.scatter;this.scatterChartPanel=new pvc.MetricPointPanel(this,parentPanel,scatterPlot,panelOptions);var trendPlot=this.plots.trend;if(trendPlot){new pvc.MetricPointPanel(this,parentPanel,trendPlot,Object.create(panelOptions))}},defaults:{axisOriginIsZero:false,tooltipOffset:10}});def.type('pvc.MetricDotChart',pvc.MetricPointAbstract).add({_createPointPlot:function(){return new pvc.visual.MetricPointPlot(this,{fixed:{DotsVisible:true}})}});def.type('pvc.MetricLineChart',pvc.MetricPointAbstract).add({_createPointPlot:function(){return new pvc.visual.MetricPointPlot(this,{fixed:{LinesVisible:true}})}});
117   -def.type('pvc.BulletChart',pvc.BaseChart).init(function(options){options=options||{};var dimGroups=options.dimensionGroups||(options.dimensionGroups={});var rangeDimGroup=dimGroups.range||(dimGroups.range={});if(rangeDimGroup.valueType===undefined){rangeDimGroup.valueType=Number}var markerDimGroup=dimGroups.marker||(dimGroups.marker={});if(markerDimGroup.valueType===undefined){markerDimGroup.valueType=Number}this.base(options)}).add({bulletChartPanel:null,allowNoData:true,_processOptionsCore:function(options){this.base(options);options.legend=false;options.selectable=false},_initVisualRoles:function(){this.base();this._addVisualRole('title',{defaultDimension:'title*'});this._addVisualRole('subTitle',{defaultDimension:'subTitle*'});this._addVisualRole('value',{isMeasure:true,requireIsDiscrete:false,valueType:Number,defaultDimension:'value*'});this._addVisualRole('marker',{isMeasure:true,requireIsDiscrete:false,valueType:Number,defaultDimension:'marker*'});this._addVisualRole('range',{isMeasure:true,requireIsDiscrete:false,valueType:Number,defaultDimension:'range*'})},_createTranslation:function(translOptions){var translation=this.base(translOptions),size=translation.virtualItemSize();if(size){switch(size){case 1:translation.defReader({names:'value'});break;case 2:translation.defReader({names:['title','value']});break;case 3:translation.defReader({names:['title','value','marker']});break;default:translation.defReader({names:['title','subTitle','value','marker']});if(size>4){translation.defReader({names:'range',indexes:pv.range(4,size)})}break}}return translation},_initPlotsCore:function(hasMultiRole){new pvc.visual.BulletPlot(this)},_preRenderContent:function(contentOptions){var bulletPlot=this.plots.bullet;this.bulletChartPanel=new pvc.BulletChartPanel(this,this.basePanel,bulletPlot,def.create(contentOptions,{tooltipEnabled:this._tooltipEnabled}))},defaults:{compatVersion:1,orientation:'horizontal',bulletSize:30,bulletSpacing:50,bulletMargin:100,bulletTitle:"Title",bulletSubtitle:"",bulletTitlePosition:"left",tooltipFormat:function(s,c,v){return this.chart.options.valueFormat(v)},crosstabMode:false,seriesInRows:false}});def.type('pvc.BulletChartPanel',pvc.PlotPanel).add({pvBullets:null,pvBullet:null,data:null,onSelectionChange:null,_createCore:function(layoutInfo){var chart=this.chart,options=chart.options,data=this.buildData();var anchor=options.orientation=="horizontal"?"left":"bottom";var size,angle,align,titleLeftOffset,titleTopOffset,ruleAnchor,leftPos,topPos,titleSpace;if(options.orientation=="horizontal"){size=layoutInfo.clientSize.width-this.chart.options.bulletMargin-20;angle=0;switch(options.bulletTitlePosition){case'top':leftPos=this.chart.options.bulletMargin;titleLeftOffset=0;align='left';titleTopOffset=-12;titleSpace=parseInt(options.titleSize/2,10);break;case'bottom':leftPos=this.chart.options.bulletMargin;titleLeftOffset=0;align='left';titleTopOffset=options.bulletSize+32;titleSpace=0;break;case'right':leftPos=5;titleLeftOffset=size+5;align='left';titleTopOffset=parseInt(options.bulletSize/2,10);titleSpace=0;break;case'left':default:leftPos=this.chart.options.bulletMargin;titleLeftOffset=0;titleTopOffset=parseInt(options.bulletSize/2,10);align='right';titleSpace=0}ruleAnchor="bottom";topPos=function(){return(this.index*(options.bulletSize+options.bulletSpacing))+titleSpace}}else{size=layoutInfo.clientSize.height-this.chart.options.bulletMargin-20;switch(options.bulletTitlePosition){case'top':leftPos=this.chart.options.bulletMargin;titleLeftOffset=0;align='left';titleTopOffset=-20;angle=0;topPos=undefined;break;case'bottom':leftPos=this.chart.options.bulletMargin;titleLeftOffset=0;align='left';titleTopOffset=size+20;angle=0;topPos=20;break;case'right':leftPos=5;titleLeftOffset=this.chart.options.bulletSize+40;align='left';titleTopOffset=size;angle=-Math.PI/2;topPos=undefined;break;case'left':default:leftPos=this.chart.options.bulletMargin;titleLeftOffset=-12;titleTopOffset=this.height-this.chart.options.bulletMargin-20;align='left';angle=-Math.PI/2;topPos=undefined}ruleAnchor="right";leftPos=function(){return options.bulletMargin+this.index*(options.bulletSize+options.bulletSpacing)}}this.pvBullets=this.pvPanel.add(pv.Panel).data(data)[pvc.BasePanel.orthogonalLength[anchor]](size)[pvc.BasePanel.parallelLength[anchor]](this.chart.options.bulletSize).margin(20).left(leftPos).top(topPos);this.pvBullet=this.pvBullets.add(pv.Layout.Bullet).orient(anchor).ranges(function(d){return d.ranges}).measures(function(d){return d.measures}).markers(function(d){return d.markers});if(options.clickable&&this.clickAction){var me=this;this.pvBullet.cursor("pointer").event("click",function(d){var s=d.title;var c=d.subtitle;var ev=pv.event;return me.clickAction(s,c,d.measures,ev)})}this.pvBulletRange=this.pvBullet.range.add(pv.Bar);this.pvBulletMeasure=this.pvBullet.measure.add(pv.Bar).text(function(v,d){return d.formattedMeasures[this.index]});this.pvBulletMarker=this.pvBullet.marker.add(pv.Dot).shape("square").fillStyle("white").text(function(v,d){return d.formattedMarkers[this.index]});if(this.tooltipEnabled){var myself=this;this.pvBulletMeasure.localProperty('tooltip').tooltip(function(v,d){var s=d.title;var c=d.subtitle;return chart.options.tooltipFormat.call(myself,s,c,v)});this.pvBulletMarker.localProperty('tooltip').tooltip(function(v,d){var s=d.title;var c=d.subtitle;return chart.options.tooltipFormat.call(myself,s,c,v)});this.pvBulletMeasure.event("mouseover",pv.Behavior.tipsy(this.chart._tooltipOptions));this.pvBulletMarker.event("mouseover",pv.Behavior.tipsy(this.chart._tooltipOptions))}this.pvBulletRule=this.pvBullet.tick.add(pv.Rule);this.pvBulletRuleLabel=this.pvBulletRule.anchor(ruleAnchor).add(pv.Label).text(this.pvBullet.x.tickFormat);this.pvBulletTitle=this.pvBullet.anchor(anchor).add(pv.Label).font("bold 12px sans-serif").textAngle(angle).left(-10).textAlign(align).textBaseline("bottom").left(titleLeftOffset).top(titleTopOffset).text(function(d){return d.formattedTitle});this.pvBulletSubtitle=this.pvBullet.anchor(anchor).add(pv.Label).textStyle("#666").textAngle(angle).textAlign(align).textBaseline("top").left(titleLeftOffset).top(titleTopOffset).text(function(d){return d.formattedSubtitle});var doubleClickAction=(typeof(options.axisDoubleClickAction)=='function')?function(d,e){options.axisDoubleClickAction(d,e)}:null;if(options.clickable&&doubleClickAction){this.pvBulletTitle.cursor("pointer").events('all').event("dblclick",function(d){doubleClickAction(d,arguments[arguments.length-1])});this.pvBulletSubtitle.cursor("pointer").events('all').event("dblclick",function(d){doubleClickAction(d,arguments[arguments.length-1])})}},applyExtensions:function(){this.base();this.extend(this.pvBullets,"bulletsPanel");this.extend(this.pvBullet,"bulletPanel");this.extend(this.pvBulletRange,"bulletRange");this.extend(this.pvBulletMeasure,"bulletMeasure");this.extend(this.pvBulletMarker,"bulletMarker");this.extend(this.pvBulletRule,"bulletRule");this.extend(this.pvBulletRuleLabel,"bulletRuleLabel");this.extend(this.pvBulletTitle,"bulletTitle");this.extend(this.pvBulletSubtitle,"bulletSubtitle")},_getExtensionId:function(){return[{abs:'content'}].concat(this.base())},buildData:function(){var data,chart=this.chart,options=chart.options,titleRole=chart.visualRoles('title'),titleGrouping=titleRole.grouping,subTitleRole=chart.visualRoles('subTitle'),subTitleGrouping=subTitleRole.grouping,valueRole=chart.visualRoles('value'),valueGrouping=valueRole.grouping,markerRole=chart.visualRoles('marker'),markerGrouping=markerRole.grouping,rangeRole=chart.visualRoles('range'),rangeGrouping=rangeRole.grouping;var defaultData={title:options.bulletTitle,formattedTitle:options.bulletTitle,subtitle:options.bulletSubtitle,formattedSubtitle:options.bulletSubtitle,ranges:def.array.to(options.bulletRanges)||[],measures:def.array.to(options.bulletMeasures)||[],markers:def.array.to(options.bulletMarkers)||[]};def.set(defaultData,'formattedRanges',defaultData.ranges.map(String),'formattedMeasures',defaultData.measures.map(String),'formattedMarkers',defaultData.markers.map(String));if(!valueGrouping&&!titleGrouping&&!markerGrouping&&!subTitleGrouping&&!rangeGrouping){data=[defaultData]}else{data=chart.data.datums().select(function(datum){var d=Object.create(defaultData),view;if(valueGrouping){view=valueGrouping.view(datum);d.measures=view.values();d.formattedMeasures=view.labels()}if(titleGrouping){view=titleGrouping.view(datum);d.title=view.value;d.formattedTitle=view.label}if(subTitleGrouping){view=subTitleGrouping.view(datum);d.subtitle=view.value;d.formattedSubtitle=view.label}if(markerGrouping){view=markerGrouping.view(datum);d.markers=view.values();d.formattedMarkers=view.labels()}if(rangeGrouping){view=rangeGrouping.view(datum);d.ranges=view.values();d.formattedRanges=view.labels()}return d},this).array()}return data}});
118   -def.type('pvc.ParallelCoordinates',pvc.BaseChart).init(function(options){options=options||{};options.dimensions=options.dimensions||{};if(!options.dimensions.value){options.dimensions.value={valueType:null}}this.base(options)}).add({parCoordPanel:null,_preRenderContent:function(contentOptions){this.parCoordPanel=new pvc.ParCoordPanel(this,this.basePanel,def.create(contentOptions,{topRuleOffset:this.options.topRuleOffset,botRuleOffset:this.options.botRuleOffset,leftRuleOffset:this.options.leftRuleOffset,rightRuleOffset:this.options.rightRuleOffset,sortCategorical:this.options.sortCategorical,mapAllDimensions:this.options.mapAllDimensions,numDigits:this.options.numDigits}))},defaults:def.create(pvc.BaseChart.prototype.defaults,{compatVersion:1,topRuleOffset:30,botRuleOffset:30,leftRuleOffset:60,rightRuleOffset:60,sortCategorical:true,mapAllDimensions:true,numDigits:0})});def.type('pvc.ParCoordPanel',pvc.BasePanel).add({anchor:'fill',pvParCoord:null,dimensions:null,dimensionDescr:null,data:null,retrieveData:function(){var data=this.chart.data;var numDigit=this.chart.options.numDigits;this.dimensions=data.getVisibleCategories();var values=data.getValues();var dataRowIndex=data.getVisibleSeriesIndexes();var pCoordIndex=data.getVisibleCategoriesIndexes();var pCoordKeys=data.getCategories();var pCoordMapping=this.chart.options.mapAllDimensions?pCoordIndex.map(function(d){return isNaN(values[d][0])?{categorical:true,len:0,map:[]}:{categorical:false,len:0,map:[],displayValue:[]}}):pCoordIndex.map(function(d){return isNaN(values[d][0])?{categorical:true,len:0,map:[]}:null});var coordMapUpdate=function(i,val){var cMap=pCoordMapping[i];var k=null;if(!cMap.categorical){var keyVal=val.toFixed(numDigit);k=cMap.map[keyVal];if(k==null){k=cMap.len;cMap.len++;cMap.map[keyVal]=k;cMap.displayValue[keyVal]=val}}else{k=cMap.map[val];if(k==null){k=cMap.len;cMap.len++;cMap.map[val]=k}}return k};for(var d in pCoordMapping){if(pCoordMapping.hasOwnProperty(d)&&pCoordMapping[d]&&pCoordMapping[d].categorical){pCoordMapping[d].displayValue=pCoordMapping[d].map}}var i,item,k;if(this.chart.options.sortCategorical||this.chart.options.mapAllDimensions){for(i=0;i<pCoordMapping.length;i++){if(pCoordMapping[i]){for(var col=0;col<values[i].length;col++){coordMapUpdate(i,values[i][col])}var cMap=pCoordMapping[i].map;var sorted=[];for(item in cMap){if(cMap.hasOwnProperty(item)){sorted.push(item)}}sorted.sort();if(pCoordMapping[i].categorical){for(k=0;k<sorted.length;k++){cMap[sorted[k]]=k}}else{for(k=0;k<sorted.length;k++){cMap[sorted[k]].index=k}}}}}var generateHashMap=function(col){var record={};for(var j in pCoordIndex){if(pCoordIndex.hasOwnProperty(j)){record[pCoordKeys[j]]=(pCoordMapping[j])?coordMapUpdate(j,values[j][col]):values[j][col]}}return record};this.data=dataRowIndex.map(function(col){return generateHashMap(col)});var descrVals=this.dimensions.map(function(cat){var item2={};var elements=cat.split("__");item2.id=cat;item2.name=elements[0];item2.unit=(elements.length>1)?elements[1]:"";return item2});for(i=0;i<descrVals.length;i++){item=descrVals[i];var index=pCoordIndex[i];item.orgRowIndex=index;var len=values[index].length;var theMin,theMax,theMin2,theMax2;var v;if(pCoordMapping[index]){theMin=theMax=theMin2=theMax2=pCoordMapping[index].displayValue[values[index][0]];for(k=1;k<len;k++){v=pCoordMapping[index].displayValue[values[index][k]];if(v<theMin){theMin2=theMin;theMin=v}if(v>theMax){theMax2=theMax;theMax=v}}}else{theMin=theMax=theMin2=theMax2=values[index][0];for(k=1;k<len;k++){v=values[index][k];if(v<theMin){theMin2=theMin;theMin=v}if(v>theMax){theMax2=theMax;theMax=v}}}var theStep=((theMax-theMax2)+(theMin2-theMin))/2;item.min=theMin;item.max=theMax;item.step=theStep;item.categorical=false;if(pCoordMapping[index]){item.map=pCoordMapping[index].map;item.mapLength=pCoordMapping[index].len;item.categorical=pCoordMapping[index].categorical;if(!item.categorical){item.orgValue=[];var theMap=pCoordMapping[index].map;for(var key in theMap){if(theMap.hasOwnProperty(key)){item.orgValue[theMap[key]]=0.0+key}}}}}var genKeyVal=function(keys,vals){var record={};for(var i=0;i<keys.length;i++){record[keys[i]]=vals[i]}return record};this.dimensionDescr=genKeyVal(this.dimensions,descrVals)},_createCore:function(){var myself=this;this.retrieveData();var height=this.height,numDigits=this.chart.options.numDigits,topRuleOffs=this.chart.options.topRuleOffset,botRuleOffs=this.chart.options.botRuleOffset,leftRuleOffs=this.chart.options.leftRuleOffset,rightRulePos=this.width-this.chart.options.rightRuleOffset,topRulePos=this.height-topRuleOffs,ruleHeight=topRulePos-botRuleOffs,labelTopOffs=topRuleOffs-12,dims=this.dimensions,dimDescr=this.dimensionDescr;var getDimSc=function(t,addMargin){var theMin=dimDescr[t].min;var theMax=dimDescr[t].max;var theStep=dimDescr[t].step;if(addMargin){theMin-=theStep;theMax+=theStep}return pv.Scale.linear(theMin,theMax).range(botRuleOffs,topRulePos)};var getDimensionScale=function(t){var scale=getDimSc(t,true).range(botRuleOffs,topRulePos);var dd=dimDescr[t];if(dd.orgValue&&!dd.categorical){var func=function(x){var res=scale(dd.orgValue[x]);return res};func.domain=function(){return scale.domain()};func.invert=function(d){return scale.invert(d)};return func}return scale};var getDimColorScale=function(t){var scale=getDimSc(t,false).range("steelblue","brown");return scale};var x=pv.Scale.ordinal(dims).splitFlush(leftRuleOffs,rightRulePos);var y=pv.dict(dims,getDimensionScale);var colors=pv.dict(dims,getDimColorScale);var filter=pv.dict(dims,function(t){return{min:y[t].domain()[0],max:y[t].domain()[1]}});var active=dims[0];var selectVisible=this.chart.options.mapAllDimensions?function(d){return dims.every(function(t){var dd=dimDescr[t];var val=(dd.orgValue&&!dd.categorical)?dd.orgValue[d[t]]:d[t];return(val>=filter[t].min)&&(val<=filter[t].max)})}:function(d){return dims.every(function(t){return(d[t]>=filter[t].min)&&(d[t]<=filter[t].max)})};var auxData=null;this.pvParCoord=this.pvPanel.add(pv.Panel).data(myself.data).visible(selectVisible).add(pv.Line).data(dims).left(function(t,d){return x(t)}).bottom(function(t,d){var res=y[t](d[t]);return res}).strokeStyle("#ddd").lineWidth(1).antialias(false);var rule=this.pvPanel.add(pv.Rule).data(dims).left(x).top(topRuleOffs).bottom(botRuleOffs);rule.anchor("top").add(pv.Label).top(labelTopOffs).font("bold 10px sans-serif").text(function(d){return dimDescr[d].name});var labels=[];var labelXoffs=6,labelYoffs=3;for(var d in dimDescr){if(dimDescr.hasOwnProperty(d)){var dim=dimDescr[d];if(dim.categorical){var xVal=x(dim.id)+labelXoffs;for(var l in dim.map){if(dim.map.hasOwnProperty(l)){labels[labels.length]={x:xVal,y:y[dim.id](dim.map[l])+labelYoffs,label:l}}}}}}var dimLabels=this.pvPanel.add(pv.Panel).data(labels).add(pv.Label).left(function(d){return d.x}).bottom(function(d){return d.y}).text(function(d){return d.label}).textAlign("left");var change=this.pvPanel.add(pv.Panel);var line=change.add(pv.Panel).data(myself.data).visible(selectVisible).add(pv.Line).data(dims).left(function(t,d){return x(t)}).bottom(function(t,d){return y[t](d[t])}).strokeStyle(function(t,d){var dd=dimDescr[active];var val=(dd.orgValue&&!dd.categorical)?dd.orgValue[d[active]]:d[active];return colors[active](val)}).lineWidth(1);function update(d){var t=d.dim;filter[t].min=Math.max(y[t].domain()[0],y[t].invert(height-d.y-d.dy));filter[t].max=Math.min(y[t].domain()[1],y[t].invert(height-d.y));active=t;change.render();return false}function selectAll(d){if(d.dy<3){var t=d.dim;filter[t].min=Math.max(y[t].domain()[0],y[t].invert(0));filter[t].max=Math.min(y[t].domain()[1],y[t].invert(height));d.y=botRuleOffs;d.dy=ruleHeight;active=t;change.render()}return false}var handle=change.add(pv.Panel).data(dims.map(function(dim){return{y:botRuleOffs,dy:ruleHeight,dim:dim}})).left(function(t){return x(t.dim)-30}).width(60).fillStyle("rgba(0,0,0,.001)").cursor("crosshair").event("mousedown",pv.Behavior.select()).event("select",update).event("selectend",selectAll).add(pv.Bar).left(25).top(function(d){return d.y}).width(10).height(function(d){return d.dy}).fillStyle(function(t){return(t.dim==active)?colors[t.dim]((filter[t.dim].max+filter[t.dim].min)/2):"hsla(0,0,50%,.5)"}).strokeStyle("white").cursor("move").event("mousedown",pv.Behavior.drag()).event("dragstart",update).event("drag",update);handle.anchor("bottom").add(pv.Label).textBaseline("top").text(function(d){return(dimDescr[d.dim].categorical)?"":filter[d.dim].min.toFixed(numDigits)+dimDescr[d.dim].unit});handle.anchor("top").add(pv.Label).textBaseline("bottom").text(function(d){return(dimDescr[d.dim].categorical)?"":filter[d.dim].max.toFixed(numDigits)+dimDescr[d.dim].unit});this.extend(this.pvParCoord,"parCoord");this.extend(this.pvPanel,"chart")}});
119   -def.type('pvc.DataTree',pvc.BaseChart).init(function(options){options=options||{};options.dimensionGroups=options.dimensionGroups||{};if(!options.dimensionGroups.value){options.dimensionGroups.value={valueType:null}}this.base(options)}).add({structEngine:null,structMetadata:null,structDataset:null,DataTreePanel:null,_getColorRoleSpec:function(){return{isRequired:true,defaultSourceRole:'category',requireIsDiscrete:true}},setStructData:function(data){this.structDataset=data.resultset;if(!this.structDataset.length){this._log("Warning: Structure-dataset is empty")}this.structMetadata=data.metadata;if(!this.structMetadata.length){this._log("Warning: Structure-Metadata is empty")}},_preRenderContent:function(contentOptions){var structEngine=this.structEngine;var structType=structEngine?structEngine.type:new pvc.data.ComplexType();structType.addDimension('value',{});var translOptions={seriesInRows:true,crosstabMode:true};var translation=new pvc.data.CrosstabTranslationOper(structType,this.structDataset,this.structMetadata,translOptions);translation.configureType();if(!structEngine){structEngine=this.structEngine=new pvc.data.Data({type:structType})}structEngine.load(translation.execute(structEngine));if(pvc.debug>=3){this._log(this.structEngine.getInfo())}this.dataTreePanel=new pvc.DataTreePanel(this,this.basePanel,def.create(contentOptions,{topRuleOffset:this.options.topRuleOffset,botRuleOffset:this.options.botRuleOffset,leftRuleOffset:this.options.leftRuleOffset,rightRuleOffset:this.options.rightRuleOffset,boxplotColor:this.options.boxplotColor,valueFontsize:this.options.valueFontsize,headerFontsize:this.options.headerFontsize,border:this.options.border,perpConnector:this.options.perpConnector,numDigits:this.options.numDigits,minVerticalSpace:this.options.minVerticalSpace,connectorSpace:this.options.connectorSpace,minAspectRatio:this.options.minAspectRatio}))},defaults:{compatVersion:1,topRuleOffset:30,botRuleOffset:30,leftRuleOffset:60,rightRuleOffset:60,boxplotColor:"grey",headerFontsize:16,valueFontsize:20,border:2,perpConnector:false,numDigits:0,connectorSpace:0.15,minVerticalSpace:0.05,minAspectRatio:2.0}});def.type('pvc.DataTreePanel',pvc.PlotPanel).add({pvDataTree:null,treeElements:null,structMap:null,structArr:null,hRules:null,vRules:null,rules:null,generatePerpConnectors:function(leftLength){this.hRules=[];this.vRules=[];this.rules=[];for(var e in this.structMap){var elem=this.structMap[e];if(elem.children!=null){var min=+10000,max=-10000;var theLeft=elem.left+elem.width;this.hRules.push({"left":theLeft,"width":leftLength,"bottom":elem.bottom+elem.height/2});theLeft+=leftLength;for(var i in elem.children){var child=this.structMap[elem.children[i]];var theBottom=child.bottom+child.height/2;if(theBottom>max){max=theBottom}if(theBottom<min){min=theBottom}this.hRules.push({"left":theLeft,"width":child.left-theLeft,"bottom":theBottom})}if(max>min){this.vRules.push({"left":theLeft,"bottom":min,"height":max-min})}}}},generateLineSegment:function(x1,y1,x2,y2){var line=[];line.push({"x":x1,"y":y1});line.push({"x":x2,"y":y2});this.rules.push(line)},generateConnectors:function(leftLength){this.hRules=[];this.vRules=[];if(this.chart.options.perpConnector){this.generatePerpConnectors(leftLength);return}this.rules=[];for(var e in this.structMap){var elem=this.structMap[e];if(elem.children!=null){var theCenter,child,i;var min=+10000,max=-10000;for(i in elem.children){child=this.structMap[elem.children[i]];theCenter=child.bottom+child.height/2;if(theCenter>max){max=theCenter}if(theCenter<min){min=theCenter}}var mid=(max+min)/2;var theLeft1=elem.left+elem.width;var theLeft2=theLeft1+leftLength;this.generateLineSegment(theLeft1,elem.bottom+elem.height/2,theLeft2,mid);for(i in elem.children){child=this.structMap[elem.children[i]];theCenter=child.bottom+child.height/2;this.generateLineSegment(theLeft2,mid,child.left,theCenter)}}}},retrieveStructure:function(){var data=this.chart.structEngine;var options=this.chart.options;var colLabels=data.getVisibleCategories();this.treeElements=data.getVisibleSeries();var values=data.getValues();var bottomHeightSpecified=(colLabels.length>4);var e;for(e in this.treeElements){this.treeElements[e]=$.trim(this.treeElements[e])}var bounds=[];bounds.getElement=function(label){if(bounds[label]==null){bounds[label]={"min":+10000,"max":-10000}}return bounds[label]};bounds.addValue=function(label,value){var bnd=bounds.getElement(label);if(value<bnd.min){bnd.min=value}if(value>bnd.max){bnd.max=value}return bnd};var col,colnr,elem,row;for(e in this.treeElements){elem=this.treeElements[e];col=elem[0];colnr=col.charCodeAt(0);row=parseInt(elem.slice(1),10);bounds.addValue("__cols",colnr);bounds.addValue(col,row)}var bnds=bounds.getElement("__cols");var gridWidth=this.innerWidth/(bnds.max-bnds.min+1);var connectorWidth=options.connectorSpace*gridWidth;var cellWidth=gridWidth-connectorWidth;var maxCellHeight=cellWidth/options.minAspectRatio;var colBase=bnds.min;delete bounds.__cols;for(e in bounds){bnds=bounds[e];if(typeof bnds=="function"){continue}var numRows=bnds.max-bnds.min+1;bnds.gridHeight=this.innerHeight/numRows;bnds.cellHeight=bnds.gridHeight*(1.0-options.minVerticalSpace);if(bnds.cellHeight>maxCellHeight){bnds.cellHeight=maxCellHeight}bnds.relBottom=(bnds.gridHeight-bnds.cellHeight)/2;bnds.numRows=numRows}var whitespaceQuote=new RegExp('[\\s\"\']+',"g");this.structMap={};for(e in this.treeElements){var box={};elem=this.treeElements[e];box.box_id=elem;this.structMap[elem]=box;col=elem[0];colnr=col.charCodeAt(0);row=parseInt(elem.slice(1),10);bnds=bounds.getElement(col);box.colIndex=colnr-colBase;box.rowIndex=bnds.numRows-(row-bnds.min)-1;box.left=this.leftOffs+box.colIndex*gridWidth;box.width=cellWidth;if(bottomHeightSpecified){box.bottom=values[4][e];box.height=values[5][e]}else{box.bottom=this.botOffs+box.rowIndex*bnds.gridHeight+bnds.relBottom;box.height=bnds.cellHeight}box.label=values[0][e];box.selector=values[1][e];box.aggregation=values[2][e];var children=(values[3][e]||'').replace(whitespaceQuote," ");box.children=(children===" "||children==="")?null:children.split(" ")}this.generateConnectors((gridWidth-cellWidth)/2);this.structArr=[];for(e in this.structMap){elem=this.structMap[e];this.structArr.push(elem)}},findDataValue:function(key,data){for(var i=0;i<data[0].length;i++){if(data[0][i]==key){return data[1][i]}}this._log("Error: value with key : "+key+" not found.")},generateBoxPlots:function(){var options=this.chart.options;for(var e in this.structArr){var elem=this.structArr[e];if(!elem.values.length){continue}elem.subplot={};var sp=elem.subplot;var dat=[];var margin=15;var rlMargin=elem.width/6;sp.hRules=[];sp.vRules=[];sp.marks=[];sp.labels=[];dat.push(this.findDataValue("_p5",elem.values));dat.push(this.findDataValue("_p25",elem.values));dat.push(this.findDataValue("_p50",elem.values));dat.push(this.findDataValue("_p75",elem.values));dat.push(this.findDataValue("_p95",elem.values));var noBox=false;if(typeof(dat[2])!="undefined"){if(dat[4]<dat[0]){dat=dat.reverse();this._log(" dataset "+elem.box_id+" repaired (_p95 was smaller than _p5)")}if(dat[4]>dat[0]){sp.hScale=pv.Scale.linear(dat[0],dat[4])}else{noBox=true;sp.hScale=pv.Scale.linear(dat[0]-1e-10,dat[0]+1e-10)}sp.hScale.range(elem.left+rlMargin,elem.left+elem.width-rlMargin);var avLabel=""+dat[2];var i;for(i=0;i<dat.length;i++){dat[i]=sp.hScale(dat[i])}sp.bot=elem.bottom+elem.height/3;sp.top=elem.bottom+2*elem.height/3;sp.mid=(sp.top+sp.bot)/2; sp.textBottom=elem.bottom+margin;sp.textBottom=sp.bot-options.valueFontsize-1;var lwa=3;if(noBox){sp.vRules.push({"left":dat[0],"bottom":sp.bot,"lWidth":lwa,"height":sp.top-sp.bot})}else{sp.hRules.push({"left":dat[0],"width":dat[1]-dat[0],"lWidth":1,"bottom":sp.mid});sp.hRules.push({"left":dat[1],"width":dat[3]-dat[1],"lWidth":1,"bottom":sp.bot});sp.hRules.push({"left":dat[1],"width":dat[3]-dat[1],"lWidth":1,"bottom":sp.top});sp.hRules.push({"left":dat[3],"width":dat[4]-dat[3],"lWidth":1,"bottom":sp.mid});for(i=0;i<dat.length;i++){sp.vRules.push({"left":dat[i],"bottom":sp.bot,"lWidth":(i==2)?lwa:1,"height":sp.top-sp.bot})}}sp.labels.push({left:dat[2],bottom:sp.textBottom,text:this.labelFixedDigits(avLabel),size:options.smValueFont,color:options.boxplotColor})}}},labelFixedDigits:function(value){if(typeof value=="string"){value=parseFloat(value)}if(typeof value=="number"){var nd=this.chart.options.numDigits;value=value.toFixed(nd)}return""+value},addDataPoint:function(key){var options=this.chart.options;for(var e in this.structArr){var elem=this.structArr[e];if(!elem.values.length){continue}var value=this.findDataValue(key,elem.values);if(typeof value=="undefined"){continue}var sp=elem.subplot;var theLeft=sp.hScale(value);var theColor="green";sp.marks.push({left:theLeft,bottom:sp.mid,color:theColor});sp.labels.push({left:theLeft,bottom:sp.textBottom,text:this.labelFixedDigits(value),size:options.valueFont,color:theColor})}},retrieveData:function(){var data=this.chart.data;var options=this.chart.options;var colLabels=data.getVisibleCategories();var selectors=data.getVisibleSeries();var values=data.getValues();var selMap={};var i;var numCols=values.length;for(var e in this.structArr){var elem=this.structArr[e];elem.values=[];for(i=0;i<numCols;i++){elem.values.push([])}selMap[elem.selector]=elem}var boxNotFound={};for(i in selectors){var box=selMap[selectors[i]];if(typeof(box)!="undefined"){for(var j in values){box.values[j].push(values[j][i])}}else{boxNotFound[selectors[i]]=true}}for(var sel in boxNotFound){this._log("Could'nt find box for selector: "+sel)}this.generateBoxPlots();var whitespaceQuote=new RegExp('[\\s\"\']+',"g");if(options.selectParam){var selPar=options.selectParam.replace(whitespaceQuote,'');if((selPar!="undefined")&&(selPar.length>0)&&(typeof window[selPar]!="undefined")){selPar=window[selPar];this.addDataPoint(selPar)}}},_createCore:function(){var myself=this;var options=this.chart.options;options.smValueFontsize=Math.round(0.6*options.valueFontsize);options.smValueFont=""+options.smValueFontsize+"px sans-serif";options.valueFont=""+options.valueFontsize+"px sans-serif";var topRuleOffs=options.topRuleOffset,botRuleOffs=options.botRuleOffset,leftRuleOffs=options.leftRuleOffset;this.innerWidth=this.width-leftRuleOffs-options.rightRuleOffset;this.innerHeight=this.height-topRuleOffs-botRuleOffs;this.botOffs=botRuleOffs;this.leftOffs=leftRuleOffs;this.retrieveStructure();this.retrieveData();var topMargin=options.headerFontsize+3;var rules=this.rules;var i;for(i=0;i<rules.length;i++){this.pvPanel.add(pv.Line).data(rules[i]).left(function(d){return d.x}).bottom(function(d){return d.y}).lineWidth(1).strokeStyle("black")}this.pvDataTree=this.pvPanel.add(pv.Bar).data(myself.structArr).left(function(d){return d.left}).bottom(function(d){return d.bottom}).height(function(d){return d.height}).width(function(d){return d.width}).fillStyle("green").add(pv.Bar).left(function(d){return d.left+options.border}).bottom(function(d){return d.bottom+options.border}).height(function(d){return d.height-options.border-topMargin}).width(function(d){return d.width-2*options.border}).fillStyle("white").add(pv.Label).text(function(d){return d.label}).textAlign("center").left(function(d){return d.left+d.width/2}).bottom(function(d){return d.bottom+d.height-options.headerFontsize-5+options.headerFontsize/5}).font(""+options.headerFontsize+"px sans-serif").textStyle("white").fillStyle("blue");for(i=0;i<this.structArr.length;i++){var box=this.structArr[i];this.pvPanel.add(pv.Rule).data(box.subplot.hRules).left(function(d){return d.left}).width(function(d){return d.width}).bottom(function(d){return d.bottom}).lineWidth(function(d){return d.lWidth}).strokeStyle(myself.chart.options.boxplotColor);this.pvPanel.add(pv.Rule).data(box.subplot.vRules).left(function(d){return d.left}).height(function(d){return d.height}).bottom(function(d){return d.bottom}).lineWidth(function(d){return d.lWidth}).strokeStyle(myself.chart.options.boxplotColor);this.pvPanel.add(pv.Dot).data(box.subplot.marks).left(function(d){return d.left}).bottom(function(d){return d.bottom}).fillStyle(function(d){return d.color});this.pvPanel.add(pv.Label).data(box.subplot.labels).left(function(d){return d.left}).bottom(function(d){return d.bottom}).font(function(d){return d.size}).text(function(d){return d.text}).textAlign("center").textStyle(function(d){return d.color})}if(options.perpConnector){this.pvPanel.add(pv.Rule).data(myself.vRules).left(function(d){return d.left}).bottom(function(d){return d.bottom}).height(function(d){return d.height}).strokeStyle("black");this.pvPanel.add(pv.Rule).data(myself.hRules).left(function(d){return d.left}).bottom(function(d){return d.bottom}).width(function(d){return d.width}).strokeStyle("black")}},applyExtensions:function(){this.extend(this.pvDataTree,"dataTree")}});
120   -def.type('pvc.data.BoxplotChartTranslationOper').add({_configureTypeCore:function(){var autoDimNames=[];var V=this.virtualItemSize();var C=V-this.M;this._getUnboundRoleDefaultDimNames('category',C,autoDimNames);pvc.BoxplotChart.measureRolesNames.forEach(function(roleName){this._getUnboundRoleDefaultDimNames(roleName,1,autoDimNames)},this);autoDimNames.slice(0,this.freeVirtualItemSize());if(autoDimNames.length){this.defReader({names:autoDimNames})}}});
121   -def.type('pvc.BoxplotPanel',pvc.CategoricalAbstractPanel).init(function(chart,parent,plot,options){this.base(chart,parent,plot,options);this.boxSizeRatio=plot.option('BoxSizeRatio');this.maxBoxSize=plot.option('BoxSizeMax')}).add({plotType:'box',anchor:'fill',_v1DimRoleName:{'value':'median'},_createCore:function(){this.base();var rootScene=this._buildScene();var a_bottom=this.isOrientationVertical()?"bottom":"left",a_left=this.anchorOrtho(a_bottom),a_width=this.anchorLength(a_bottom),a_height=this.anchorOrthoLength(a_bottom);function defaultColor(type){var color=this.base(type);return type==='stroke'?color.darker(1):color}var extensionIds=['panel'];if(this.compatVersion()<=1){extensionIds.push('')}this.pvBoxPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:extensionIds}).lock('data',rootScene.childNodes).lockMark(a_left,function(scene){var catVar=scene.vars.category;return catVar.x-catVar.width/2}).pvMark[a_width](function(scene){return scene.vars.category.width});function setupRuleWhisker(rule){rule.lock(a_left,function(){return this.pvMark.parent[a_width]()/2}).override('defaultColor',defaultColor);return rule}this.pvRuleWhiskerUpper=setupRuleWhisker(new pvc.visual.Rule(this,this.pvBoxPanel,{extensionId:'boxRuleWhisker',freePosition:true,noHover:false,noSelect:false,noClick:false,noDoubleClick:false})).intercept('visible',function(scene){return scene.vars.category.showRuleWhiskerUpper&&this.delegateExtension(true)}).lock(a_bottom,function(scene){return scene.vars.category.ruleWhiskerUpperBottom}).lock(a_height,function(scene){return scene.vars.category.ruleWhiskerUpperHeight}).pvMark;this.pvRuleWhiskerLower=setupRuleWhisker(new pvc.visual.Rule(this,this.pvBoxPanel,{extensionId:'boxRuleWhisker',freePosition:true,noHover:false,noSelect:false,noClick:false,noDoubleClick:false})).intercept('visible',function(scene){return scene.vars.category.showRuleWhiskerBelow&&this.delegateExtension(true)}).lock(a_bottom,function(scene){return scene.vars.category.ruleWhiskerLowerBottom}).lock(a_height,function(scene){return scene.vars.category.ruleWhiskerLowerHeight}).pvMark;function setupHCateg(sign){sign.lock(a_left,function(scene){return scene.vars.category.boxLeft}).lock(a_width,function(scene){return scene.vars.category.boxWidth});return sign}this.pvBar=setupHCateg(new pvc.visual.Bar(this,this.pvBoxPanel,{extensionId:'boxBar',freePosition:true,normalStroke:true})).intercept('visible',function(scene){return scene.vars.category.showBox&&this.delegateExtension(true)}).lock(a_bottom,function(scene){return scene.vars.category.boxBottom}).lock(a_height,function(scene){return scene.vars.category.boxHeight}).override('defaultColor',defaultColor).override('defaultStrokeWidth',def.fun.constant(1)).pvMark;function setupHRule(rule){setupHCateg(rule);rule.override('defaultColor',defaultColor);return rule}this.pvRuleMin=setupHRule(new pvc.visual.Rule(this,this.pvBoxPanel,{extensionId:'boxRuleMin',freePosition:true,noHover:false,noSelect:false,noClick:false,noDoubleClick:false})).intercept('visible',function(){return this.scene.vars.minimum.value!=null&&this.delegateExtension(true)}).lock(a_bottom,function(){return this.scene.vars.minimum.position}).pvMark;this.pvRuleMax=setupHRule(new pvc.visual.Rule(this,this.pvBoxPanel,{extensionId:'boxRuleMax',freePosition:true,noHover:false,noSelect:false,noClick:false,noDoubleClick:false})).intercept('visible',function(){return this.scene.vars.maximum.value!=null&&this.delegateExtension(true)}).lock(a_bottom,function(){return this.scene.vars.maximum.position}).pvMark;this.pvRuleMedian=setupHRule(new pvc.visual.Rule(this,this.pvBoxPanel,{extensionId:'boxRuleMedian',freePosition:true,noHover:false,noSelect:false,noClick:false,noDoubleClick:false})).intercept('visible',function(){return this.scene.vars.median.value!=null&&this.delegateExtension(true)}).lock(a_bottom,function(){return this.scene.vars.median.position}).override('defaultStrokeWidth',def.fun.constant(2)).pvMark},renderInteractive:function(){this.pvBoxPanel.render()},_getSelectableMarks:function(){return[this.pvBar]},_buildScene:function(){var chart=this.chart,measureRolesDimNames=def.query(chart.measureVisualRoles()).object({name:function(role){return role.name},value:function(role){return role.firstDimensionName()}}),visibleKeyArgs={visible:true,zeroIfNone:false},data=this.visibleData(),rootScene=new pvc.visual.Scene(null,{panel:this,group:data}),baseScale=this.axes.base.scale,bandWidth=baseScale.range().band,boxWidth=Math.min(bandWidth*this.boxSizeRatio,this.maxBoxSize),orthoScale=this.axes.ortho.scale,colorVarHelper=new pvc.visual.RoleVarHelper(chart,chart._colorRole);data.children().each(createCategScene,this);return rootScene;function createCategScene(categData){var categScene=new pvc.visual.Scene(rootScene,{group:categData});var vars=categScene.vars;vars.series=new pvc.visual.ValueLabelVar(null,"");var catVar=vars.category=new pvc.visual.ValueLabelVar(categData.value,categData.label);def.set(catVar,'group',categData,'x',baseScale(categData.value),'width',bandWidth,'boxWidth',boxWidth,'boxLeft',bandWidth/2-boxWidth/2);chart.measureVisualRoles().forEach(function(role){var dimName=measureRolesDimNames[role.name],svar;if(dimName){var dim=categData.dimensions(dimName),value=dim.sum(visibleKeyArgs);svar=new pvc.visual.ValueLabelVar(value,dim.format(value));svar.position=orthoScale(value)}else{svar=new pvc.visual.ValueLabelVar(null,"");svar.position=null}vars[role.name]=svar});colorVarHelper.onNewScene(categScene,true);var hasMin=vars.minimum.value!=null,hasLower=vars.lowerQuartil.value!=null,hasMedian=vars.median.value!=null,hasUpper=vars.upperQuartil.value!=null,bottom,top;var show=hasLower||hasUpper;if(show){bottom=hasLower?vars.lowerQuartil.position:hasMedian?vars.median.position:vars.upperQuartil.position;top=hasUpper?vars.upperQuartil.position:hasMedian?vars.median.position:vars.lowerQuartil.position;show=(top!==bottom);if(show){catVar.boxBottom=bottom;catVar.boxHeight=top-bottom}}catVar.showBox=show;show=vars.maximum.value!=null;if(show){bottom=hasUpper?vars.upperQuartil.position:hasMedian?vars.median.position:hasLower?vars.lowerQuartil.position:hasMin?vars.minimum.position:null;show=bottom!=null;if(show){catVar.ruleWhiskerUpperBottom=bottom;catVar.ruleWhiskerUpperHeight=vars.maximum.position-bottom}}catVar.showRuleWhiskerUpper=show;show=hasMin;if(show){top=hasLower?vars.lowerQuartil.position:hasMedian?vars.median.position:hasUpper?vars.upperQuartil.position:null;show=top!=null;if(show){bottom=vars.minimum.position;catVar.ruleWhiskerLowerHeight=top-bottom;catVar.ruleWhiskerLowerBottom=bottom}}catVar.showRuleWhiskerBelow=show}}});
122   -def.type('pvc.BoxplotChart',pvc.CategoricalAbstract).add({_processOptionsCore:function(options){this.base.apply(this,arguments);options.stacked=false},_initVisualRoles:function(){this.base();var roleSpecBase={isMeasure:true,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number};[{name:'median',label:'Median',defaultDimension:'median',isRequired:true},{name:'lowerQuartil',label:'Lower Quartil',defaultDimension:'lowerQuartil'},{name:'upperQuartil',label:'Upper Quartil',defaultDimension:'upperQuartil'},{name:'minimum',label:'Minimum',defaultDimension:'minimum'},{name:'maximum',label:'Maximum',defaultDimension:'maximum'}].forEach(function(info){this._addVisualRole(info.name,def.create(roleSpecBase,info))},this)},_getTranslationClass:function(translOptions){return def.type(this.base(translOptions)).add(pvc.data.BoxplotChartTranslationOper)},_initPlotsCore:function(){new pvc.visual.BoxPlot(this);if(this.options.plot2){this._animatable=true;new pvc.visual.PointPlot(this,{name:'plot2',defaults:{LinesVisible:true,DotsVisible:true,OrthoRole:'median',ColorAxis:2},fixed:{OrthoAxis:1}})}},_bindAxes:function(hasMultiRole){this.base(hasMultiRole);var typeAxes=this.axesByType.ortho;if(typeAxes){typeAxes.forEach(function(axis){axis.option.defaults({Offset:0.02})})}},_createPlotPanels:function(parentPanel,baseOptions){var plots=this.plots;var boxPlot=plots.box;var boxPanel=new pvc.BoxplotPanel(this,parentPanel,boxPlot,Object.create(baseOptions));this.bpChartPanel=boxPanel;var plot2Plot=plots.plot2;if(plot2Plot){if(pvc.debug>=3){this._log("Creating Point panel.")}var pointPanel=new pvc.PointPanel(this,parentPanel,plot2Plot,Object.create(baseOptions));pointPanel._v1DimRoleName.value=plot2Plot.option('OrthoRole')}},defaults:{crosstabMode:false}}).addStatic({measureRolesNames:['median','lowerQuartil','upperQuartil','minimum','maximum']});
pacotes/ccc2/ccc2sage.php
... ... @@ -1,22 +0,0 @@
1   -<?php
2   -/**
3   - * Carrega os arquivos javascript necessarios para a producao de graficos
4   - * Deve ser inserido na tag script de um arquivo HTML
5   - *
6   - * @author Edmar Moretti
7   - *
8   - * Esse programa faz parte do pacote ccc2sage - veja licenca
9   - */
10   -//precisa da zlib: extension_loaded('zlib')
11   -error_reporting(0);
12   -ob_start('ob_gzhandler');
13   -include_once ("cdf/jquery.js");
14   -include_once ("lib/jquery.tipsy.js");
15   -include_once ("lib/protovis-d3.3.js");
16   -include_once ("lib/protovis-msie.js");
17   -include_once ("def/def.js");
18   -include_once ("lib/tipsy.js");
19   -include_once ("ccc2sage.js");
20   -include_once ("sageicones.js");
21   -include_once ("../formatnumber.js");
22   -?>
pacotes/ccc2/cdf/jquery.js
... ... @@ -1,154 +0,0 @@
1   -/*!
2   - * jQuery JavaScript Library v1.4.2
3   - * http://jquery.com/
4   - *
5   - * Copyright 2010, John Resig
6   - * Dual licensed under the MIT or GPL Version 2 licenses.
7   - * http://jquery.org/license
8   - *
9   - * Includes Sizzle.js
10   - * http://sizzlejs.com/
11   - * Copyright 2010, The Dojo Foundation
12   - * Released under the MIT, BSD, and GPL Licenses.
13   - *
14   - * Date: Sat Feb 13 22:33:48 2010 -0500
15   - */
16   -(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
17   -e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
18   -j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
19   -"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
20   -true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
21   -Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
22   -(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
23   -a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
24   -"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
25   -function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
26   -c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
27   -L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
28   -"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
29   -a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
30   -d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
31   -a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
32   -!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
33   -true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
34   -var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
35   -parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
36   -false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
37   -s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
38   -applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
39   -else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
40   -a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
41   -w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
42   -cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
43   -i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
44   -" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
45   -this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
46   -e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
47   -c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
48   -a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
49   -function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
50   -k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
51   -C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
52   -null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
53   -e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
54   -f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
55   -if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
56   -fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
57   -d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
58   -"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
59   -a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
60   -isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
61   -{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
62   -if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
63   -e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
64   -"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
65   -d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
66   -!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
67   -toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
68   -u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
69   -function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
70   -if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
71   -e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
72   -t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
73   -g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
74   -for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
75   -1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
76   -CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
77   -relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
78   -l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
79   -h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
80   -CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
81   -g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
82   -text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
83   -setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
84   -h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
85   -m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
86   -"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
87   -h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
88   -!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
89   -h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
90   -q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
91   -if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
92   -(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
93   -function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
94   -gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
95   -c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
96   -{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
97   -"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
98   -d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
99   -a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
100   -1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
101   -a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
102   -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
103   -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
104   -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
105   -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
106   -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
107   -""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
108   -this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
109   -u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
110   -1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
111   -return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
112   -""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
113   -c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
114   -c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
115   -function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
116   -Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
117   -"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
118   -a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
119   -a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
120   -"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
121   -serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
122   -function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
123   -global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
124   -e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
125   -"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
126   -false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
127   -false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
128   -c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
129   -d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
130   -g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
131   -1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
132   -"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
133   -if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
134   -this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
135   -"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
136   -animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
137   -j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
138   -this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
139   -"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
140   -c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
141   -this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
142   -this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
143   -e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
144   -c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
145   -function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
146   -this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
147   -k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
148   -f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
149   -a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
150   -c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
151   -d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
152   -f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
153   -"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
154   -e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
pacotes/ccc2/compactajs.php
... ... @@ -1,221 +0,0 @@
1   -<?php
2   -/**
3   - * Faz a compactacao dos codigos javascripts que sao usados para producao dos graficos
4   - * Compacta as bibliotecas do CCC2 e gera o arquivo ccc2sage.js
5   - *
6   - * @author Edmar Moretti
7   - *
8   - * Esse programa faz parte do pacote ccc2sage - veja licenca
9   - **/
10   -
11   -echo "<pre>";
12   -
13   -$originais = array(
14   -"pvc/pvc.js",
15   -"pvc/pvc.text.js",
16   -"pvc/pvc.color.js",
17   -"pvc/pvc.trends.js",
18   -"pvc/pvc.options.js",
19   -"pvc/data/_data.js",
20   -"pvc/data/meta/DimensionType.js",
21   -"pvc/data/meta/ComplexType.js",
22   -"pvc/data/meta/ComplexTypeProject.js",
23   -"pvc/data/translation/TranslationOper.js",
24   -"pvc/data/translation/MatrixTranslationOper.js",
25   -"pvc/data/translation/CrosstabTranslationOper.js",
26   -"pvc/data/translation/RelationalTranslationOper.js",
27   -"pvc/data/Atom.js",
28   -"pvc/data/Complex.js",
29   -"pvc/data/ComplexView.js",
30   -"pvc/data/Datum.js",
31   -"pvc/data/Dimension.js",
32   -"pvc/data/Data.js",
33   -"pvc/data/Data.selected.js",
34   -"pvc/data/GroupingSpec.js",
35   -"pvc/data/DataOper.js",
36   -"pvc/data/GroupingOper.js",
37   -"pvc/data/LinearInterpolationOper.js",
38   -"pvc/data/LinearInterpolationOperSeriesState.js",
39   -"pvc/data/ZeroInterpolationOper.js",
40   -"pvc/data/ZeroInterpolationOperSeriesState.js",
41   -"pvc/data/Data.operations.js",
42   -"pvc/data/Data.compat.js",
43   -"pvc/visual/Role.js",
44   -"pvc/visual/Scene.js",
45   -"pvc/visual/Var.js",
46   -"pvc/visual/sign/BasicSign.js",
47   -"pvc/visual/sign/Sign.js",
48   -"pvc/visual/sign/Panel.js",
49   -"pvc/visual/sign/Label.js",
50   -"pvc/visual/sign/Dot.js",
51   -"pvc/visual/sign/Line.js",
52   -"pvc/visual/sign/Area.js",
53   -"pvc/visual/sign/Bar.js",
54   -"pvc/visual/sign/PieSlice.js",
55   -"pvc/visual/sign/Rule.js",
56   -"pvc/visual/Context.js",
57   -"pvc/visual/OptionsBase.js",
58   -"pvc/visual/Axis.js",
59   -"pvc/visual/CartesianAxis.js",
60   -"pvc/visual/CartesianAxisRootScene.js",
61   -"pvc/visual/CartesianAxisTickScene.js",
62   -"pvc/visual/CartesianFocusWindow.js",
63   -"pvc/visual/ColorAxis.js",
64   -"pvc/visual/SizeAxis.js",
65   -"pvc/visual/Legend.js",
66   -"pvc/visual/legend/BulletRootScene.js",
67   -"pvc/visual/legend/BulletGroupScene.js",
68   -"pvc/visual/legend/BulletItemScene.js",
69   -"pvc/visual/legend/BulletItemSceneSelection.js",
70   -"pvc/visual/legend/BulletItemSceneVisibility.js",
71   -"pvc/visual/legend/BulletItemRenderer.js",
72   -"pvc/visual/legend/BulletItemDefaultRenderer.js",
73   -"pvc/visual/plot/Plot.js",
74   -"pvc/visual/plot/CartesianPlot.js",
75   -"pvc/visual/plot/CategoricalPlot.js",
76   -"pvc/visual/plot/BarPlotAbstract.js",
77   -"pvc/visual/plot/BarPlot.js",
78   -"pvc/visual/plot/NormalizedBarPlot.js",
79   -"pvc/visual/plot/WaterfallPlot.js",
80   -"pvc/visual/plot/PointPlot.js",
81   -"pvc/visual/plot/MetricXYPlot.js",
82   -"pvc/visual/plot/MetricPointPlot.js",
83   -"pvc/visual/plot/PiePlot.js",
84   -"pvc/visual/plot/HeatGridPlot.js",
85   -"pvc/visual/plot/BoxPlot.js",
86   -"pvc/visual/plot/BulletPlot.js",
87   -"pvc/pvcAbstract.js",
88   -"pvc/pvcBaseChart.js",
89   -"pvc/pvcBaseChart.visualRoles.js",
90   -"pvc/pvcBaseChart.data.js",
91   -"pvc/pvcBaseChart.plots.js",
92   -"pvc/pvcBaseChart.axes.js",
93   -"pvc/pvcBaseChart.panels.js",
94   -"pvc/pvcBaseChart.selection.js",
95   -"pvc/pvcBaseChart.extension.js",
96   -"pvc/pvcBasePanel.js",
97   -"pvc/pvcPlotPanel.js",
98   -"pvc/pvcMultiChartPanel.js",
99   -"pvc/pvcTitlePanelAbstract.js",
100   -"pvc/pvcTitlePanel.js",
101   -"pvc/pvcLegendPanel.js",
102   -"pvc/pvcCartesianAbstract.js",
103   -"pvc/pvcGridDockingPanel.js",
104   -"pvc/pvcCartesianGridDockingPanel.js",
105   -"pvc/pvcCartesianAbstractPanel.js",
106   -"pvc/pvcPlotBgPanel.js",
107   -"pvc/pvcCategoricalAbstract.js",
108   -"pvc/pvcCategoricalAbstractPanel.js",
109   -"pvc/pvcAxisPanel.js",
110   -"pvc/pvcAxisTitlePanel.js",
111   -"pvc/pvcPiePanel.js",
112   -"pvc/pvcPieChart.js",
113   -"pvc/pvcBarAbstractPanel.js",
114   -"pvc/pvcBarAbstract.js",
115   -"pvc/pvcBarPanel.js",
116   -"pvc/pvcBarChart.js",
117   -"pvc/pvcNormalizedBarPanel.js",
118   -"pvc/pvcNormalizedBarChart.js",
119   -"pvc/visual/legend/WaterfallBulletGroupScene.js",
120   -"pvc/pvcWaterfallPanel.js",
121   -"pvc/pvcWaterfallChart.js",
122   -"pvc/pvcPointPanel.js",
123   -"pvc/pvcPoint.js",
124   -"pvc/pvcHeatGridPanel.js",
125   -"pvc/pvcHeatGridChart.js",
126   -"pvc/pvcMetricXYAbstract.js",
127   -"pvc/data/translation/MetricPointChartTranslationOper.js",
128   -"pvc/pvcMetricPointPanel.js",
129   -"pvc/pvcMetricPoint.js",
130   -"pvc/pvcBulletChart.js",
131   -"pvc/pvcParallelCoordinates.js",
132   -"pvc/pvcDataTree.js",
133   -"pvc/data/translation/BoxplotChartTranslationOper.js",
134   -"pvc/pvcBoxplotPanel.js",
135   -"pvc/pvcBoxplotChart.js"
136   -);
137   -$jsfiles = array();
138   -foreach($originais as $o){
139   - packer($o,"compacto/".basename($o),"Normal");
140   - $jsfiles[] = "compacto/".basename($o);
141   -}
142   -echo "<br><br>junta tudo<br>";
143   -
144   -$buffer = "";
145   -salvatudojs($jsfiles,$buffer,"ccc2sage.js","js");
146   -
147   -function inicia($arquivo)
148   -{
149   - $abre = fopen($arquivo, "r");
150   - while (!feof($abre))
151   - {
152   - $buffer = fgets($abre);
153   - $maparray[] = $buffer."kkkk";
154   - }
155   - fclose($abre);
156   - $c = compress(implode("",$maparray));
157   - $c = str_replace("kkkk","\n",$c);
158   - $c = str_replace("kkk","",$c);
159   - $c = str_replace(";\n",";",$c);
160   - $c = str_replace("{\n","{",$c);
161   - $c = str_replace("\n}","}",$c);
162   - $c = str_replace(")\n",")",$c);
163   - $c = str_replace(" \n","",$c);
164   - $c = str_replace("\n}","}\n",$c);
165   - return $c;
166   -}
167   -function compress($code)
168   -{ // Remove multiline comment
169   -$mlcomment = '/\/\*(?!-)[\x00-\xff]*?\*\//';
170   -$code = preg_replace($mlcomment,"",$code);
171   -
172   -// Remove single line comment
173   -$slcomment = '/[^:]\/\/.*/';
174   -$code = preg_replace($slcomment,"",$code);
175   -
176   -// Remove extra spaces
177   -$extra_space = '/\s+/';
178   -$code = preg_replace($extra_space," ",$code);
179   -
180   -// Remove spaces that can be removed
181   -$removable_space = '/\s?([\{\};\=\(\)\\\/\+\*-])\s?/';
182   -$code = preg_replace('/\s?([\{\};\=\(\)\/\+\*-])\s?/',"\\1",$code);
183   -return $code;
184   -}
185   -function packer($src,$out,$tipo="None")
186   -{
187   - if(file_exists($out))
188   - {unlink($out);}
189   - require_once '../packer/class.JavaScriptPacker.php';
190   - $script = file_get_contents($src);
191   - $script = str_replace("if(typeof(console)","//if(typeof(console)",$script);
192   - $t1 = microtime(true);
193   - $packer = new JavaScriptPacker($script, 0, true, false);
194   - $packed = $packer->pack();
195   - $t2 = microtime(true);
196   - $time = sprintf('%.4f', ($t2 - $t1) );
197   - echo 'script ', $src, ' packed in ' , $out, ', in ', $time, ' s.', "\n";
198   - file_put_contents($out, $packed);
199   - chmod($out,0777);
200   -}
201   -function salvatudojs($jsfiles,$buffer,$final,$tipo)
202   -{
203   - //junta todos os js em um unico
204   - if(file_exists($final))
205   - {unlink($final);}
206   - foreach ($jsfiles as $f)
207   - {
208   - echo $f;
209   - $linhas = file($f);
210   - foreach($linhas as $linha){
211   - $linha = trim(preg_replace('#[\r\n]#', '', $linha));
212   - if($linha != "")
213   - {$buffer .= $linha."\n";}
214   - }
215   - }
216   - $abre = fopen($final, "wt");
217   - $escreve = fwrite ($abre,$buffer);
218   - $fecha = fclose ($abre);
219   - chmod($final,0777);
220   -}
221   -?>
pacotes/ccc2/compacto/Area.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Area',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Area);if(!keyArgs){keyArgs={}}keyArgs.freeColor=true;this.base(panel,pvMark,keyArgs);var antialias=def.get(keyArgs,'antialias',true);this.lock('segmented','smart').lock('antialias',antialias);if(!def.get(keyArgs,'freePosition',false)){var basePosProp=panel.isOrientationVertical()?"left":"bottom",orthoPosProp=panel.anchorOrtho(basePosProp),orthoLenProp=panel.anchorOrthoLength(orthoPosProp);this._lockDynamic(basePosProp,'x')._lockDynamic(orthoPosProp,'y')._lockDynamic(orthoLenProp,'dy')}this._bindProperty('fillStyle','fillColor','color');this.lock('strokeStyle',null).lock('lineWidth',0)}).add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noTooltip',true);this.base(keyArgs)},x:function(){return 0},y:function(){return 0},dy:function(){return 0},interactiveColor:function(color,type){if(type==='fill'&&this.showsSelection()&&this.scene.anySelected()&&!this.scene.isSelected()){return this.dimColor(color,type)}return this.base(color,type)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Atom.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.Atom').init(function(dimension,value,label,rawValue,key){this.dimension=dimension;this.id=(value==null?-def.nextId():def.nextId());this.value=value;this.label=label;if(rawValue!==undefined){this.rawValue=rawValue}this.key=key}).add({isVirtual:false,rawValue:undefined,toString:function(){var label=this.label;if(label!=null){return label}label=this.value;return label!=null?(""+label):""}});function atom_idComparer(a,b){return a.id-b.id}function atom_idComparerReverse(a,b){return b.id-a.id}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Axis.js
... ... @@ -1 +0,0 @@
1   -var axis_optionsDef;def.scope(function(){def.type('pvc.visual.Axis',pvc.visual.OptionsBase).init(function(chart,type,index,keyArgs){this.base(chart,type,index,keyArgs);chart._addAxis(this)}).add({isVisible:true,scaleTreatsNullAs:function(){return'null'},scaleNullRangeValue:function(){return null},scaleUsesAbs:function(){return false},bind:function(dataCells){dataCells||def.fail.argumentRequired('dataCells');!this.dataCells||def.fail.operationInvalid('Axis is already bound.');this.dataCells=def.array.to(dataCells);this.dataCell=this.dataCells[0];this.role=this.dataCell&&this.dataCell.role;this.scaleType=groupingScaleType(this.role.grouping);this._checkRoleCompatibility();return this},isDiscrete:function(){return this.role&&this.role.isDiscrete()},isBound:function(){return!!this.role},setScale:function(scale,noWrap){this.role||def.fail.operationInvalid('Axis is unbound.');this.scale=scale?(noWrap?scale:this._wrapScale(scale)):null;return this},_wrapScale:function(scale){scale.type=this.scaleType;var by;if(scale.type!=='discrete'){var useAbs=this.scaleUsesAbs();var nullAs=this.scaleTreatsNullAs();if(nullAs&&nullAs!=='null'){var nullValue=nullAs==='min'?scale.domain()[0]:0;if(useAbs){by=function(v){return scale(v==null?nullValue:(v<0?-v:v))}}else{by=function(v){return scale(v==null?nullValue:v)}}}else{var nullRangeValue=this.scaleNullRangeValue();if(useAbs){by=function(v){return v==null?nullRangeValue:scale(v<0?-v:v)}}else{by=function(v){return v==null?nullRangeValue:scale(v)}}}}else{by=function(v){return scale(v==null?'':v)}}return def.copy(by,scale)},sceneScale:function(keyArgs){var varName=def.get(keyArgs,'sceneVarName')||this.role.name,grouping=this.role.grouping;if(grouping.isSingleDimension&&grouping.firstDimensionValueType()===Number){var scale=this.scale,nullToZero=def.get(keyArgs,'nullToZero',true);var by=function(scene){var value=scene.vars[varName].value;if(value==null){if(!nullToZero){return value}value=0}return scale(value)};def.copy(by,scale);return by}return this.scale.by1(function(scene){return scene.vars[varName].value})},_checkRoleCompatibility:function(){var L=this.dataCells.length;if(L>1){var grouping=this.role.grouping,i;if(this.scaleType==='discrete'){for(i=1;i<L;i++){if(grouping.id!==this.dataCells[i].role.grouping.id){throw def.error.operationInvalid("Discrete roles on the same axis must have equal groupings.")}}}else{if(!grouping.firstDimensionType().isComparable){throw def.error.operationInvalid("Continuous roles on the same axis must have 'comparable' groupings.")}for(i=1;i<L;i++){if(this.scaleType!==groupingScaleType(this.dataCells[i].role.grouping)){throw def.error.operationInvalid("Continuous roles on the same axis must have scales of the same type.")}}}}},_getOptionsDefinition:function(){return axis_optionsDef}});function groupingScaleType(grouping){return grouping.isDiscrete()?'discrete':(grouping.firstDimensionValueType()===Date?'timeSeries':'numeric')}axis_optionsDef={}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Bar.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Bar',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Bar);keyArgs=def.setDefaults(keyArgs,'freeColor',false);this.base(panel,pvMark,keyArgs);this.normalStroke=def.get(keyArgs,'normalStroke',false);this._bindProperty('lineWidth','strokeWidth')}).prototype.property('strokeWidth').constructor.add({normalColor:function(color,type){if(type==='stroke'&&!this.normalStroke){return null}return color},interactiveColor:function(color,type){var scene=this.scene;if(type==='stroke'){if(scene.isActive){return color.brighter(1.3).alpha(0.7)}if(!this.normalStroke){return null}if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return pv.Color.names.darkgray.darker().darker()}return this.dimColor(color,type)}if(this.isActiveSeriesAware&&scene.isActiveSeries()){return color.brighter(1).alpha(0.7)}}else if(type==='fill'){if(scene.isActive){return color.brighter(0.2).alpha(0.8)}if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return pv.Color.names.darkgray.darker(2).alpha(0.8)}return this.dimColor(color,type)}if(this.isActiveSeriesAware&&scene.isActiveSeries()){return color.brighter(0.2).alpha(0.8)}}return this.base(color,type)},defaultStrokeWidth:function(){return 0.5},interactiveStrokeWidth:function(strokeWidth){if(this.scene.isActive){return Math.max(1,strokeWidth)*1.3}return strokeWidth}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BarPlot.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.BarPlot',pvc.visual.BarPlotAbstract).add({type:'bar'});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BarPlotAbstract.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.BarPlotAbstract',pvc.visual.CategoricalPlot).add({_getOptionsDefinition:function(){return pvc.visual.BarPlotAbstract.optionsDef}});pvc.visual.BarPlotAbstract.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{BarSizeRatio:{resolve:'_resolveFull',cast:function(value){value=pvc.castNumber(value);if(value==null){value=1}else if(value<0.05){value=0.05}else if(value>1){value=1}return value},value:0.9},BarSizeMax:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'maxBarSize');return true}},cast:function(value){value=pvc.castNumber(value);if(value==null){value=Infinity}else if(value<1){value=1}return value},value:2000},BarStackedMargin:{resolve:'_resolveFull',cast:function(value){value=pvc.castNumber(value);if(value!=null&&value<0){value=0}return value},value:0},OverflowMarkersVisible:{resolve:'_resolveFull',cast:Boolean,value:true},ValuesAnchor:{value:'center'}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BasicSign.js
... ... @@ -1 +0,0 @@
1   -(function(){pv.Mark.prototype.getSign=function(){return this.sign||createBasic(this)};pv.Mark.prototype.getScene=function(){return this.getSign().scene};function createBasic(pvMark){var as=getAncestorSign(pvMark)||def.assert("There must exist an ancestor sign");var bs=new pvc.visual.BasicSign(as.panel,pvMark);var i;var s=pvMark.scene;if(s&&(i=pvMark.index)!=null&&i>=0){bs._buildInstance(pvMark,s[i],true)}return bs}function getAncestorSign(pvMark){var sign;do{pvMark=pvMark.parent}while(pvMark&&!(sign=pvMark.sign)&&(!pvMark.proto||!(sign=pvMark.proto.sign)));return sign}def.type('pvc.visual.BasicSign').init(function(panel,pvMark){this.chart=panel.chart;this.panel=panel;this.pvMark=pvMark;!pvMark.sign||def.assert("Mark already has an attached Sign.");pvMark.sign=this;pvMark.__buildInstance=pvMark.buildInstance;pvMark.buildInstance=this._dispatchBuildInstance}).add({localProperty:function(name,type){this.pvMark.localProperty(name,type);return this},lock:function(name,value){return this.lockMark(name,this._bindWhenFun(value))},optional:function(name,value,tag){return this.optionalMark(name,this._bindWhenFun(value),tag)},lockMark:function(name,value){this.pvMark.lock(name,value);return this},optionalMark:function(name,value,tag){this.pvMark[name](value,tag);return this},delegate:function(dv,tag){return this.pvMark.delegate(dv,tag)},delegateExtension:function(dv){return this.pvMark.delegate(dv,pvc.extensionTag)},hasDelegate:function(tag){return this.pvMark.hasDelegate(tag)},_bindWhenFun:function(value){if(typeof value==='function'){return function(){var sign=this.getSign();return value.apply(sign,arguments)}}return value},_lockDynamic:function(name,method){var me=this;return this.lockMark(name,function(){var sign=this.getSign();var m=sign[method]||me[method]||def.assert("No method with name '"+method+"' is defined");return m.apply(sign,arguments)})},_dispatchBuildInstance:function(instance){this.sign._buildInstance(this,instance)},_buildInstance:function(mark,instance,lateCall){var scene=instance.data;var index=scene?scene.childIndex():0;this.pvInstance=instance;this.scene=scene;this.index=index<0?0:index;scene_renderId.call(scene,mark.renderId());this.state={};if(!lateCall){mark.__buildInstance.call(mark,instance)}}})}());
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BoxPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.BoxPlot',pvc.visual.CategoricalPlot).add({type:'box',_getOptionsDefinition:function(){return pvc.visual.BoxPlot.optionsDef}});pvc.visual.BoxPlot.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{Stacked:{resolve:null,value:false},OrthoRole:{value:['median','lowerQuartil','upperQuartil','minimum','maximum']},BoxSizeRatio:{resolve:'_resolveFull',cast:function(value){value=pvc.castNumber(value);if(value==null){value=1}else if(value<0.05){value=0.05}else if(value>1){value=1}return value},value:1/3},BoxSizeMax:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'maxBoxSize');return true}},cast:function(value){value=pvc.castNumber(value);if(value==null){value=Infinity}else if(value<1){value=1}return value},value:Infinity}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BoxplotChartTranslationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.BoxplotChartTranslationOper').add({_configureTypeCore:function(){var autoDimNames=[];var V=this.virtualItemSize();var C=V-this.M;this._getUnboundRoleDefaultDimNames('category',C,autoDimNames);pvc.BoxplotChart.measureRolesNames.forEach(function(roleName){this._getUnboundRoleDefaultDimNames(roleName,1,autoDimNames)},this);autoDimNames.slice(0,this.freeVirtualItemSize());if(autoDimNames.length){this.defReader({names:autoDimNames})}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletGroupScene.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.BulletGroupScene',pvc.visual.Scene).init(function(rootScene,keyArgs){this.base(rootScene,keyArgs);this.extensionPrefix=def.get(keyArgs,'extensionPrefix')||'';this._renderer=def.get(keyArgs,'renderer');this.colorAxis=def.get(keyArgs,'colorAxis');this.clickMode=def.get(keyArgs,'clickMode');if(this.colorAxis&&!this.clickMode){this.clickMode=this.colorAxis.option('LegendClickMode')}}).add({hasRenderer:function(){return this._renderer},renderer:function(renderer){if(renderer!=null){this._renderer=renderer}else{renderer=this._renderer;if(!renderer){var keyArgs;var colorAxis=this.colorAxis;if(colorAxis){keyArgs={drawRule:colorAxis.option('LegendDrawLine'),drawMarker:colorAxis.option('LegendDrawMarker'),markerShape:colorAxis.option('LegendShape')}}renderer=new pvc.visual.legend.BulletItemDefaultRenderer(keyArgs);this._renderer=renderer}}return renderer},itemSceneType:function(){var ItemType=this._itemSceneType;if(!ItemType){ItemType=def.type(pvc.visual.legend.BulletItemScene);var clickMode=this.clickMode;switch(clickMode){case'toggleSelected':ItemType.add(pvc.visual.legend.BulletItemSceneSelection);break;case'toggleVisible':ItemType.add(pvc.visual.legend.BulletItemSceneVisibility);break}this.panel()._extendSceneType('item',ItemType,['isOn','isClickable','click']);this._itemSceneType=ItemType}return ItemType},createItem:function(keyArgs){var ItemType=this.itemSceneType();return new ItemType(this,keyArgs)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletItemDefaultRenderer.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.BulletItemDefaultRenderer',pvc.visual.legend.BulletItemRenderer).init(function(keyArgs){this.noSelect=def.get(keyArgs,'noSelect',false);this.noHover=def.get(keyArgs,'noHover',false);this.drawRule=def.get(keyArgs,'drawRule',false);if(this.drawRule){this.rulePvProto=def.get(keyArgs,'rulePvProto')}this.drawMarker=!this.drawRule||def.get(keyArgs,'drawMarker',true);if(this.drawMarker){this.markerShape=def.get(keyArgs,'markerShape','square');this.markerPvProto=def.get(keyArgs,'markerPvProto')}}).add({drawRule:false,drawMarker:true,markerShape:null,rulePvProto:null,markerPvProto:null,create:function(legendPanel,pvBulletPanel,extensionPrefix,wrapper){var renderInfo={};var drawRule=this.drawRule;var sceneColorProp=function(scene){return scene.color};if(drawRule){var rulePvBaseProto=new pv.Mark().left(0).top(function(){return this.parent.height()/2}).width(function(){return this.parent.width()}).lineWidth(1,pvc.extensionTag).strokeStyle(sceneColorProp,pvc.extensionTag);if(this.rulePvProto){rulePvBaseProto=this.rulePvProto.extend(rulePvBaseProto)}renderInfo.pvRule=new pvc.visual.Rule(legendPanel,pvBulletPanel,{proto:rulePvBaseProto,noSelect:this.noSelect,noHover:this.noHover,activeSeriesAware:false,extensionId:extensionPrefix+"Rule",wrapper:wrapper}).pvMark}if(this.drawMarker){var markerPvBaseProto=new pv.Mark().left(function(){return this.parent.width()/2}).top(function(){return this.parent.height()/2}).shapeSize(function(){return this.parent.width()},pvc.extensionTag).lineWidth(2,pvc.extensionTag).fillStyle(sceneColorProp,pvc.extensionTag).strokeStyle(sceneColorProp,pvc.extensionTag).shape(this.markerShape,pvc.extensionTag).angle(drawRule?0:Math.PI/2,pvc.extensionTag).antialias(function(){var cos=Math.abs(Math.cos(this.angle()));if(cos!==0&&cos!==1){switch(this.shape()){case'square':case'bar':return false}}return true},pvc.extensionTag);if(this.markerPvProto){markerPvBaseProto=this.markerPvProto.extend(markerPvBaseProto)}renderInfo.pvDot=new pvc.visual.Dot(legendPanel,pvBulletPanel,{proto:markerPvBaseProto,freePosition:true,activeSeriesAware:false,noTooltip:true,noSelect:this.noSelect,noHover:this.noHover,extensionId:extensionPrefix+"Dot",wrapper:wrapper}).pvMark}return renderInfo}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletItemRenderer.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.BulletItemRenderer');
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletItemScene.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.BulletItemScene',pvc.visual.Scene).init(function(bulletGroup,keyArgs){this.base(bulletGroup,keyArgs);var value,rawValue,label;if(keyArgs){value=keyArgs.value;rawValue=keyArgs.rawValue;label=keyArgs.label}if(value===undefined){var source=this.group||this.datum;if(source){value=source.value;rawValue=source.rawValue;label=source.ensureLabel();var dataPartDim=this.chart()._getDataPartDimName();if(dataPartDim){var dataPartAtom=source.atoms[dataPartDim];if(isNaN(+dataPartAtom.value)){label+=" ("+dataPartAtom.label+")"}}}}this.vars.value=new pvc.visual.ValueLabelVar(value||null,label||"",rawValue)}).add({isOn:function(){return true},isClickable:function(){return false},click:function(){},labelTextSize:function(){var valueVar=this.vars.value;return valueVar&&pv.Text.measure(valueVar.label,this.vars.font)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletItemSceneSelection.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.BulletItemSceneSelection').add({isOn:function(){var owner=(this.group||this.datum).owner;return!owner.selectedCount()||this.datums().any(function(datum){return!datum.isNull&&datum.isSelected})},isClickable:function(){return this.chart()._canSelectWithClick()},click:function(){var datums=this.datums().array();if(datums.length){var chart=this.chart();chart._updatingSelections(function(){datums=chart._onUserSelection(datums);if(datums){var on=def.query(datums).any(function(datum){return datum.isSelected});pvc.data.Data.setSelected(datums,!on)}})}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletItemSceneVisibility.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.BulletItemSceneVisibility').add({isOn:function(){return this.datums().any(function(datum){return!datum.isNull&&datum.isVisible})},isClickable:function(){return true},click:function(){if(pvc.data.Data.toggleVisible(this.datums())){this.chart().render(true,true,false)}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletPlot.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.BulletPlot',pvc.visual.Plot).add({type:'bullet',_getOptionsDefinition:function(){return pvc.visual.BulletPlot.optionsDef}});pvc.visual.BulletPlot.optionsDef=def.create(pvc.visual.Plot.optionsDef,{ValuesVisible:{value:true},ColorRole:{value:null}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/BulletRootScene.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.BulletRootScene',pvc.visual.Scene).init(function(parent,keyArgs){this.base(parent,keyArgs);var markerDiam=def.get(keyArgs,'markerSize',15);var itemPadding=new pvc.Sides(def.get(keyArgs,'itemPadding',5)).resolve(markerDiam,markerDiam);def.set(this.vars,'horizontal',def.get(keyArgs,'horizontal',false),'font',def.get(keyArgs,'font'),'markerSize',markerDiam,'textMargin',def.get(keyArgs,'textMargin',6),'itemPadding',itemPadding)}).add({layout:function(layoutInfo){var clientSize=layoutInfo.clientSize;if(!(clientSize.width>0&&clientSize.height>0)){return new pvc.Size(0,0)}var desiredClientSize=layoutInfo.desiredClientSize;var markerDiam=this.vars.markerSize;var textLeft=markerDiam+this.vars.textMargin;var itemPadding=this.vars.itemPadding;var a_width=this.vars.horizontal?'width':'height';var a_height=pvc.BasePanel.oppositeLength[a_width];var maxRowWidth=desiredClientSize[a_width];if(!maxRowWidth||maxRowWidth<0){maxRowWidth=clientSize[a_width]}var row;var rows=[];var contentSize={width:0,height:0};this.childNodes.forEach(function(groupScene){groupScene.childNodes.forEach(layoutItem,this)},this);if(!row){return new pvc.Size(0,0)}commitRow(true);def.set(this.vars,'rows',rows,'rowCount',row,'size',contentSize);var isV1Compat=this.compatVersion()<=1;var w=isV1Compat?maxRowWidth:contentSize.width;var h=desiredClientSize[a_height];if(!h||h<0){h=contentSize.height}return def.set({},a_width,Math.min(w,clientSize[a_width]),a_height,Math.min(h,clientSize[a_height]));function layoutItem(itemScene){var textSize=itemScene.labelTextSize();var hidden=!textSize||!textSize.width||!textSize.height;itemScene.isHidden=hidden;if(hidden){return}var widthMargin=0;var itemClientSize={width:textLeft+textSize.width+widthMargin,height:Math.max(textSize.height,markerDiam)};var isFirstInRow;if(!row){row=new pvc.visual.legend.BulletItemSceneRow(0);isFirstInRow=true}else{isFirstInRow=!row.items.length}var newRowWidth=row.size.width+itemClientSize[a_width];if(!isFirstInRow){newRowWidth+=itemPadding[a_width]}if(!isFirstInRow&&(newRowWidth>maxRowWidth)){commitRow(false);newRowWidth=itemClientSize[a_width]}var rowSize=row.size;rowSize.width=newRowWidth;rowSize.height=Math.max(rowSize.height,itemClientSize[a_height]);var rowItemIndex=row.items.length;row.items.push(itemScene);def.set(itemScene.vars,'row',row,'rowIndex',rowItemIndex,'clientSize',itemClientSize)}function commitRow(isLast){var rowSize=row.size;contentSize.height+=rowSize.height;if(rows.length){contentSize.height+=itemPadding[a_height]}contentSize.width=Math.max(contentSize.width,rowSize.width);rows.push(row);if(!isLast){row=new pvc.visual.legend.BulletItemSceneRow(rows.length)}}},defaultGroupSceneType:function(){var GroupType=this._bulletGroupType;if(!GroupType){GroupType=def.type(pvc.visual.legend.BulletGroupScene);this._bulletGroupType=GroupType}return GroupType},createGroup:function(keyArgs){var GroupType=this.defaultGroupSceneType();return new GroupType(this,keyArgs)}});def.type('pvc.visual.legend.BulletItemSceneRow').init(function(index){this.index=index;this.items=[];this.size={width:0,height:0}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/CartesianAxis.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){var $VA=pvc.visual.Axis;def.type('pvc.visual.CartesianAxis',$VA).init(function(chart,type,index,keyArgs){var options=chart.options;this.orientation=$VCA.getOrientation(type,options.orientation);this.orientedId=$VCA.getOrientedId(this.orientation,index);if(chart._allowV1SecondAxis&&index===1){this.v1SecondOrientedId='second'+this.orientation.toUpperCase()}this.base(chart,type,index,keyArgs);var extensions=this.extensionPrefixes=[this.id+'Axis',this.orientedId+'Axis'];if(this.v1SecondOrientedId){extensions.push(this.v1SecondOrientedId+'Axis')}this._extPrefAxisPosition=extensions.length;extensions.push('axis')}).add({bind:function(dataCells){this.base(dataCells);this._syncExtensionPrefixes();return this},_syncExtensionPrefixes:function(){var extensions=this.extensionPrefixes;extensions.length=this._extPrefAxisPosition;var st=this.scaleType;if(st){extensions.push(st+'Axis');if(st!=='discrete'){extensions.push('continuousAxis')}}extensions.push('axis')},setScale:function(scale){var oldScale=this.scale;this.base(scale);if(oldScale){delete this.domain;delete this.ticks;delete this._roundingPaddings}if(scale){if(!scale.isNull&&this.scaleType!=='discrete'){this.domain=scale.domain();this.domain.minLocked=!!scale.minLocked;this.domain.maxLocked=!!scale.maxLocked;if(this.scaleType==='numeric'){var roundMode=this.option('DomainRoundMode');if(roundMode==='nice'){scale.nice()}var tickFormatter=this.option('TickFormatter');if(tickFormatter){scale.tickFormatter(tickFormatter)}}}}return this},setTicks:function(ticks){var scale=this.scale;(scale&&!scale.isNull)||def.fail.operationInvalid("Scale must be set and non-null.");this.ticks=ticks;if(scale.type==='numeric'&&this.option('DomainRoundMode')==='tick'){delete this._roundingPaddings;var tickCount=ticks&&ticks.length;if(tickCount){this.scale.domain(ticks[0],ticks[tickCount-1])}else{this.scale.domain(this.domain[0],this.domain[1])}}},setScaleRange:function(size){var scale=this.scale;scale.min=0;scale.max=size;scale.size=size;if(scale.type==='discrete'){if(scale.domain().length>0){var bandRatio=this.chart.options.panelSizeRatio||0.8;scale.splitBandedCenter(scale.min,scale.max,bandRatio)}}else{scale.range(scale.min,scale.max)}if(pvc.debug>4){this.chart._log("Axis "+this.id+" setRange: "+pvc.stringify(scale.range()))}return scale},getScaleRoundingPaddings:function(){var roundingPaddings=this._roundingPaddings;if(!roundingPaddings){roundingPaddings={begin:0,end:0,beginLocked:false,endLocked:false};var scale=this.scale;if(scale&&!scale.isNull&&scale.type!=='discrete'){var originalDomain=this.domain;roundingPaddings.beginLocked=originalDomain.minLocked;roundingPaddings.endLocked=originalDomain.maxLocked;if(scale.type==='numeric'&&this.option('DomainRoundMode')!=='none'){var currDomain=scale.domain();var origDomain=this.domain||def.assert("Original domain must be set");var currLength=currDomain[1]-currDomain[0];if(currLength){var diff=origDomain[0]-currDomain[0];if(diff>0){roundingPaddings.begin=diff/currLength}diff=currDomain[1]-origDomain[1];if(diff>0){roundingPaddings.end=diff/currLength}}}}this._roundingPaddings=roundingPaddings}return roundingPaddings},_getOptionsDefinition:function(){return cartAxis_optionsDef},_buildOptionId:function(){return this.id+"Axis"},_registerResolversNormal:function(rs,keyArgs){if(this.chart.compatVersion()<=1){rs.push(this._resolveByV1OnlyLogic)}rs.push(this._resolveByOptionId,this._resolveByOrientedId);if(this.index===1){rs.push(this._resolveByV1OptionId)}rs.push(this._resolveByScaleType,this._resolveByCommonId)},_resolveByOrientedId:pvc.options.specify(function(optionInfo){return this._chartOption(this.orientedId+"Axis"+optionInfo.name)}),_resolveByV1OptionId:pvc.options.specify(function(optionInfo){return this._chartOption('secondAxis'+optionInfo.name)}),_resolveByScaleType:pvc.options.specify(function(optionInfo){var st=this.scaleType;if(st){var name=optionInfo.name;var value=this._chartOption(st+'Axis'+name);if(value===undefined&&st!=='discrete'){value=this._chartOption('continuousAxis'+name)}return value}}),_resolveByCommonId:pvc.options.specify(function(optionInfo){return this._chartOption('axis'+optionInfo.name)})});var $VCA=pvc.visual.CartesianAxis;$VCA.getOrientation=function(type,chartOrientation){return((type==='base')===(chartOrientation==='vertical'))?'x':'y'};$VCA.getOrientedId=function(orientation,index){if(index===0){return orientation}return orientation+(index+1)};var fixedMinMaxSpec={resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(!this.index&&this.type==='ortho'){this._specifyChartOption(optionInfo,this.id+optionInfo.name)}return true}},cast:pvc.castNumber};function castDomainScope(scope,axis){return pvc.parseDomainScope(scope,axis.orientation)}function castAxisPosition(side){if(side){if(def.hasOwn(pvc.Sides.namesSet,side)){var mapAlign=pvc.BasePanel[this.orientation==='y'?'horizontalAlign':'verticalAlign2'];return mapAlign[side]}if(pvc.debug>=2){pvc.log(def.format("Invalid axis position value '{0}'.",[side]))}}return this.orientation==='x'?'bottom':'left'}var normalV1Data={resolveV1:function(optionInfo){if(!this.index){if(this._resolveByOrientedId(optionInfo)){return true}}else if(this._resolveByV1OptionId(optionInfo)){return true}this._resolveDefault(optionInfo);return true}};var defaultPosition=pvc.options.defaultValue(function(optionInfo){if(!this.typeIndex){return this.orientation==='x'?'bottom':'left'}var firstAxis=this.chart.axesByType[this.type].first;var position=firstAxis.option('Position');return pvc.BasePanel.oppositeAnchor[position]});function castSize(value){var position=this.option('Position');return pvc.Size.toOrtho(value,position)}function castTitleSize(value){var position=this.option('Position');return pvc.Size.to(value,{singleProp:pvc.BasePanel.orthogonalLength[position]})}var cartAxis_optionsDef=def.create(axis_optionsDef,{Visible:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(this.index<=1){var v1OptionId=this.index===0?def.firstUpperCase(this.orientation):'Second';this._specifyChartOption(optionInfo,'show'+v1OptionId+'Scale')}return true}},cast:Boolean,value:true},Composite:{resolve:function(optionInfo){if(this.index>0){optionInfo.specify(false);return true}return this._resolveFull(optionInfo)},data:{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'useCompositeAxis');return true}},cast:Boolean,value:false},Size:{resolve:'_resolveFull',data:normalV1Data,cast:castSize},SizeMax:{resolve:'_resolveFull',cast:castSize},Position:{resolve:'_resolveFull',data:{resolveV1:normalV1Data.resolveV1,resolveDefault:defaultPosition},cast:castAxisPosition},FixedMin:fixedMinMaxSpec,FixedMax:fixedMinMaxSpec,OriginIsZero:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){switch(this.index){case 0:this._specifyChartOption(optionInfo,'originIsZero');break;case 1:if(this.chart._allowV1SecondAxis){this._specifyChartOption(optionInfo,'secondAxisOriginIsZero')}break}return true}},cast:Boolean,value:true},DomainScope:{resolve:'_resolveFull',cast:castDomainScope,value:'global'},Offset:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){switch(this.index){case 0:this._specifyChartOption(optionInfo,'axisOffset');break;case 1:if(this.chart._allowV1SecondAxis){this._specifyChartOption(optionInfo,'secondAxisOffset');break}break}return true}},cast:pvc.castNumber},LabelSpacingMin:{resolve:'_resolveFull',cast:pvc.castNumber},OverlappedLabelsMode:{resolve:'_resolveFull',cast:pvc.parseOverlappedLabelsMode,value:'hide'},Grid:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(!this.index){this._specifyChartOption(optionInfo,this.orientation+'AxisFullGrid')}return true}},cast:Boolean,value:false},GridCrossesMargin:{resolve:'_resolveFull',cast:Boolean,value:true},EndLine:{resolve:'_resolveFull',cast:Boolean},ZeroLine:{resolve:'_resolveFull',cast:Boolean,value:true},RuleCrossesMargin:{resolve:'_resolveFull',cast:Boolean,value:true},Ticks:{resolve:'_resolveFull',cast:Boolean},DesiredTickCount:{resolve:'_resolveFull',data:{resolveV1:normalV1Data.resolveV1,resolveDefault:function(optionInfo){if(this.chart.compatVersion()<=1){optionInfo.defaultValue(5);return true}}},cast:pvc.castNumber},MinorTicks:{resolve:'_resolveFull',data:normalV1Data,cast:Boolean,value:true},TickFormatter:{resolve:'_resolveFull',cast:def.fun.as},DomainRoundMode:{resolve:'_resolveFull',data:{resolveV1:normalV1Data.resolveV1,resolveDefault:function(optionInfo){if(this.chart.compatVersion()<=1){optionInfo.defaultValue('none');return true}}},cast:pvc.parseDomainRoundingMode,value:'tick'},TickExponentMin:{resolve:'_resolveFull',cast:pvc.castNumber},TickExponentMax:{resolve:'_resolveFull',cast:pvc.castNumber},Title:{resolve:'_resolveFull',cast:String},TitleSize:{resolve:'_resolveFull',cast:castTitleSize},TitleSizeMax:{resolve:'_resolveFull',cast:castTitleSize},TitleFont:{resolve:'_resolveFull',cast:String},TitleMargins:{resolve:'_resolveFull',cast:pvc.Sides.as},TitlePaddings:{resolve:'_resolveFull',cast:pvc.Sides.as},TitleAlign:{resolve:'_resolveFull',cast:function castAlign(align){var position=this.option('Position');return pvc.parseAlign(position,align)}},Font:{resolve:'_resolveFull',cast:String},ClickAction:{resolve:'_resolveFull',data:normalV1Data},DoubleClickAction:{resolve:'_resolveFull',data:normalV1Data}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/CartesianAxisRootScene.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.CartesianAxisRootScene',pvc.visual.Scene);
2 0 \ No newline at end of file
pacotes/ccc2/compacto/CartesianAxisTickScene.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.CartesianAxisTickScene',pvc.visual.Scene).init(function(parent,keyArgs){this.base(parent,keyArgs);this.vars.tick=new pvc.visual.ValueLabelVar(def.get(keyArgs,'tick'),def.get(keyArgs,'tickLabel'),def.get(keyArgs,'tickRaw'))});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/CartesianFocusWindow.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.CartesianFocusWindow',pvc.visual.OptionsBase).init(function(chart){this.base(chart,'focusWindow',0,{byNaked:false});var baseAxis=chart.axes.base;this.base=new pvc.visual.CartesianFocusWindowAxis(this,baseAxis)}).add({_getOptionsDefinition:function(){return focusWindow_optionsDef},_exportData:function(){return{base:def.copyProps(this.base,pvc.visual.CartesianFocusWindow.props)}},_importData:function(data){var baseData=data.base;this.base.option.specify({Begin:baseData.begin,End:baseData.end,Length:baseData.length})},_initFromOptions:function(){this.base._initFromOptions()},_onAxisChanged:function(axis){var changed=this.option('Changed');if(changed){changed.call(this.chart.basePanel._getContext())}}});var focusWindow_optionsDef=def.create(axis_optionsDef,{Changed:{resolve:'_resolveFull',cast:def.fun.as}});def.type('pvc.visual.CartesianFocusWindowAxis',pvc.visual.OptionsBase).init(function(fw,axis){this.window=fw;this.axis=axis;this.isDiscrete=axis.isDiscrete();this.base(axis.chart,'focusWindow'+def.firstUpperCase(axis.type),0,{byNaked:false})}).addStatic({props:['begin','end','length']}).add({_getOptionsDefinition:function(){return focusWindowAxis_optionsDef},_initFromOptions:function(){var o=this.option;this.set({begin:o('Begin'),end:o('End'),length:o('Length')})},set:function(keyArgs){var me=this;var render=def.get(keyArgs,'render');var select=def.get(keyArgs,'select',true);var b,e,l;keyArgs=me._readArgs(keyArgs);if(!keyArgs){if(this.begin!=null&&this.end!=null&&this.length!=null){return}}else{b=keyArgs.begin;e=keyArgs.end;l=keyArgs.length}var axis=me.axis;var scale=axis.scale;var isDiscrete=me.isDiscrete;var contCast=!isDiscrete?axis.role.firstDimensionType().cast:null;var domain=scale.domain();var a,L;if(isDiscrete){L=domain.length;var ib,ie,ia;if(b!=null){var nb=+b;if(!isNaN(nb)){if(nb===Infinity){ib=L-1;b=domain[ib]}else if(nb===-Infinity){ib=0;b=domain[ib]}}if(ib==null){ib=domain.indexOf(''+b);if(ib<0){ib=0;b=domain[ib]}}}if(e!=null){var ne=+e;if(!isNaN(ne)){if(ne===Infinity){ie=L-1;e=domain[ie]}else if(ne===-Infinity){ie=0;e=domain[ie]}}if(ie==null){ie=domain.indexOf(''+e);if(ie<0){ie=L-1;e=domain[ie]}}}if(l!=null){l=+l;if(isNaN(l)){l=null}else if(l<0&&(b!=null||e!=null)){a=b;ia=ib;b=e,ib=ie,e=a,ie=ia;l=-l}}if(b!=null){if(e!=null){if(ib>ie){a=b;ia=ib;b=e,ib=ie,e=a,ie=ia}l=ie-ib+1}else{if(l==null){l=L-ib}ie=ib+l-1;if(ie>L-1){ie=L-1;l=ie-ib+1}e=domain[ie]}}else{if(e!=null){if(l==null){l=ie}ib=ie-l+1;if(ib<0){ib=0;l=ie-ib+1}b=domain[ib]}else{if(l==null){l=Math.max(~~(L/3),1); }if(l>L){l=L;ib=0;ie=L-1}else{ia=~~(L/2); ib=ia-~~(l/2);ie=ib+l-1}b=domain[ib];e=domain[ie]}}}else{if(l!=null){l=+l;if(isNaN(l)){l=null}else if(l<0&&(b!=null||e!=null)){a=b;b=e,e=a;l=-l}}var min=domain[0];var max=domain[1];L=max-min;if(b!=null){if(b<min){b=min}if(b>max){b=max}}if(e!=null){if(e<min){e=min}if(e>max){e=max}}if(b!=null){if(e!=null){if(b>e){a=b;b=e,e=a}l=e-b}else{if(l==null){l=max-b}e=b+l;if(e>max){e=max;l=e-b}}}else{if(e!=null){if(l==null){l=e-min}b=e-l;if(b<min){b=min;l=e-b}}else{if(l==null){l=Math.max(~~(L/3),1); }if(l>L){l=L;b=min;e=max}else{a=~~(L/2); b=a-~~(l/2);e=(+b)+(+l)}}}b=contCast(b);e=contCast(e);l=contCast(l);var constraint=me.option('Constraint');if(constraint){var oper2={type:'new',target:'begin',value:b,length:l,length0:l,min:min,max:max,minView:min,maxView:max};constraint(oper2);b=contCast(oper2.value);l=contCast(oper2.length);e=contCast((+b)+(+l))}}me._set(b,e,l,select,render)},_updatePosition:function(pbeg,pend,select,render){var me=this;var axis=me.axis;var scale=axis.scale;var b,e,l;if(me.isDiscrete){var ib=scale.invertIndex(pbeg);var ie=scale.invertIndex(pend)-1;var domain=scale.domain();b=domain[ib];e=domain[ie];l=ie-ib+1}else{b=scale.invert(pbeg);e=scale.invert(pend);l=e-b}this._set(b,e,l,select,render)},_constraintPosition:function(oper){var me=this;var axis=me.axis;var scale=axis.scale;var constraint;if(me.isDiscrete){var index=Math.floor(scale.invertIndex(oper.point,true));if(index>=0){var r=scale.range();var L=scale.domain().length;var S=(r.max-r.min)/L;if(index>=L&&(oper.type==='new'||oper.type==='resize-begin')){index=L-1}oper.point=index*S}}else if((constraint=me.option('Constraint'))){var contCast=axis.role.firstDimensionType().cast;var v=contCast(scale.invert(oper.point));var sign=oper.target==='begin'?1:-1;var pother=oper.point+sign*oper.length;var vother=contCast(scale.invert(pother));var vlength=contCast(sign*(vother-v));var vlength0,pother0,vother0;if(oper.length===oper.length0){vlength0=vlength}else{pother0=oper.point+sign*oper.length0;vother0=contCast(scale.invert(pother0));vlength0=sign*(vother0-v)}var vmin=contCast(scale.invert(oper.min));var vmax=contCast(scale.invert(oper.max));var oper2={type:oper.type,target:oper.target,value:v,length:vlength,length0:vlength0,min:vmin,max:vmax,minView:contCast(scale.invert(oper.minView)),maxView:contCast(scale.invert(oper.maxView))};constraint(oper2);if(+oper2.value!==+v){v=oper2.value;oper.point=scale(v)}var vlength2=oper2.length;if(+vlength2!==+vlength){if(+vlength2===+vlength0){oper.length=oper.length0}else{var vother2=(+v)+sign*(+vlength2);var pother2=scale(vother2);oper.length=pother2-sign*oper.point}}if(+oper2.min!==+vmin){oper.min=scale(oper2.min)}if(+oper2.max!==+vmax){oper.max=scale(oper2.max)}}},_compare:function(a,b){return this.isDiscrete?((''+a)===(''+b)):((+a)===(+b))},_set:function(b,e,l,select,render){var me=this;var changed=false;if(!me._compare(b,me.begin)){me.begin=b;changed=true}if(!me._compare(e,me.end)){me.end=e;changed=true}if(!me._compare(l,me.length)){me.length=l;changed=true}if(changed){me.window._onAxisChanged(this)}if(select){me._updateSelection({render:render})}return changed},_readArgs:function(keyArgs){if(keyArgs){var out={};var any=0;var read=function(p){var v=keyArgs[p];if(v!=null){any=true}else{v=this[p]}out[p]=v};pvc.visual.CartesianFocusWindowAxis.props.forEach(read,this);if(any){return out}}},_updateSelection:function(keyArgs){var me=this;var selectDatums;var axis=me.axis;var isDiscrete=axis.isDiscrete();var chart=axis.chart;var dataCell=axis.dataCell;var role=dataCell.role;var partData=chart.partData(dataCell.dataPartValue,{visible:true});var domainData;if(isDiscrete){domainData=partData.flattenBy(role);var dataBegin=domainData._childrenByKey[me.begin];var dataEnd=domainData._childrenByKey[me.end];if(dataBegin&&dataEnd){var indexBegin=dataBegin.childIndex();var indexEnd=dataEnd.childIndex();selectDatums=def.range(indexBegin,indexEnd-indexBegin+1).select(function(index){return domainData._children[index]}).selectMany(function(data){return data._datums}).distinct(function(datum){return datum.key})}}else{domainData=partData;var dimName=role.firstDimensionName();selectDatums=def.query(partData._datums).where(function(datum){var v=datum.atoms[dimName].value;return v!=null&&v>=me.begin&&v<=me.end})}if(selectDatums){chart.data.replaceSelected(selectDatums);chart.root.updateSelections(keyArgs)}}});var focusWindowAxis_optionsDef=def.create(axis_optionsDef,{Resizable:{resolve:'_resolveFull',cast:Boolean,value:true},Movable:{resolve:'_resolveFull',cast:Boolean,value:true},Begin:{resolve:'_resolveFull'},End:{resolve:'_resolveFull'},Length:{resolve:'_resolveFull'},Constraint:{resolve:'_resolveFull',cast:def.fun.as}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/CartesianPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.CartesianPlot',pvc.visual.Plot).add({_getOptionsDefinition:function(){return pvc.visual.CartesianPlot.optionsDef}});function castTrend(trend){if(this.name==='trend'){return null}var type=this.option('TrendType');if(!type&&trend){type=trend.type}if(!type||type==='none'){return null}if(!trend){trend={}}else{trend=Object.create(trend)}trend.type=type;var label=this.option('TrendLabel');if(label!==undefined){trend.label=label}return trend}pvc.visual.CartesianPlot.optionsDef=def.create(pvc.visual.Plot.optionsDef,{BaseAxis:{value:1},BaseRole:{resolve:'_resolveFixed',cast:String},OrthoAxis:{resolve:function(optionInfo){if(this.globalIndex===0){optionInfo.specify(1);return true}return this._resolveFull(optionInfo)},data:{resolveV1:function(optionInfo){if(this.name==='plot2'&&this.chart._allowV1SecondAxis&&this._chartOption('secondAxisIndependentScale')){optionInfo.specify(2)}return true}},cast:function(value){value=pvc.castNumber(value);if(value!=null){value=def.between(value,1,10)}else{value=1}return value},value:1},OrthoRole:{resolve:pvc.options.resolvers(['_resolveFixed','_resolveDefault'])},Trend:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){var type=this.option('TrendType');if(type){optionInfo.defaultValue({type:type});return true}}},cast:castTrend},TrendType:{resolve:'_resolveFull',cast:pvc.parseTrendType},TrendLabel:{resolve:'_resolveFull',cast:String},NullInterpolationMode:{resolve:'_resolveFull',cast:pvc.parseNullInterpolationMode,value:'none'}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/CategoricalPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.CategoricalPlot',pvc.visual.CartesianPlot).add({_getOptionsDefinition:function(){return pvc.visual.CategoricalPlot.optionsDef}});pvc.visual.CategoricalPlot.optionsDef=def.create(pvc.visual.CartesianPlot.optionsDef,{Stacked:{resolve:'_resolveFull',cast:Boolean,value:false},BaseRole:{value:'category'},OrthoRole:{value:'value'}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/ColorAxis.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.ColorAxis',pvc.visual.Axis).add({scaleNullRangeValue:function(){return this.option('Missing')||null},scaleUsesAbs:function(){return this.option('UseAbs')},bind:function(dataCells){this.base(dataCells);this._plotList=def.query(dataCells).select(function(dataCell){return dataCell.plot}).distinct(function(plot){return plot&&plot.id}).array();return this},calculateScale:function(){var scale,noWrap;var dataCells=this.dataCells;if(dataCells){var chart=this.chart;if(this.scaleType==='discrete'){var domainValues=def.query(dataCells).selectMany(function(dataCell){var role=dataCell.role;if(role&&role.isBound()){var partData=chart.partData(dataCell.dataPartValue);var domainData=partData&&partData.flattenBy(role);dataCell.data=domainData;return domainData&&domainData.children()}}).distinct(function(child){return child.key}).select(function(child){return def.nullyTo(child.value,'')}).array();this.domainValues=domainValues;scale=this.scheme()(domainValues);noWrap=true}else{if(dataCells.length===1){var visibleDomainData=chart.root.visibleData(this.dataCell.dataPartValue);var normByCateg=this.option('NormByCategory');var scaleOptions={type:this.option('ScaleType'),colors:this.option('Colors')().range(),colorDomain:this.option('Domain'),colorMin:this.option('Min'),colorMax:this.option('Max'),colorNull:this.option('Missing'),data:visibleDomainData,colorDimension:this.role.firstDimensionName(),normPerBaseCategory:normByCateg};if(normByCateg){this.scalesByCateg=pvc.color.scales(scaleOptions)}else{scale=pvc.color.scale(scaleOptions)}}}}this.setScale(scale,noWrap);return this},_wrapScale:function(scale){var applyTransf;if(this.scaleType==='discrete'){applyTransf=this.option.isSpecified('Transform')||(!this.option.isSpecified('Colors')&&!this.option.isSpecified('Map'))}else{applyTransf=true}if(applyTransf){var colorTransf=this.option('Transform');if(colorTransf){scale=scale.transform(colorTransf)}}return this.base(scale)},scheme:function(){return def.lazy(this,'_scheme',this._createScheme,this)},_createColorMapFilter:function(colorMap){var fixedColors=def.uniqueIndex(colorMap,function(c){return c.key});return{domain:function(k){return!def.hasOwn(colorMap,k)},color:function(c){return!def.hasOwn(fixedColors,c.key)}}},_createScheme:function(){var me=this;var baseScheme=me.option('Colors');if(me.scaleType!=='discrete'){return function(d){var scale=baseScheme.apply(null,arguments);return me._wrapScale(scale)}}var colorMap=me.option('Map');if(!colorMap){return function(d){var scale=baseScheme.apply(null,arguments);return me._wrapScale(scale)}}var filter=this._createColorMapFilter(colorMap);return function(d){var scale;if(!(d instanceof Array)){d=def.array.copy(arguments)}d=d.filter(filter.domain);var baseScale=baseScheme(d);var r=baseScale.range().filter(filter.color);baseScale.range(r);scale=function(k){var c=def.getOwn(colorMap,k);return c||baseScale(k)};def.copy(scale,baseScale);var dx,rx;scale.domain=function(){if(arguments.length){throw def.operationInvalid("The scale cannot be modified.")}if(!dx){dx=def.array.append(def.ownKeys(colorMap),d)}return dx};scale.range=function(){if(arguments.length){throw def.operationInvalid("The scale cannot be modified.")}if(!rx){rx=def.array.append(def.own(colorMap),d)}return rx};return me._wrapScale(scale)}},sceneScale:function(keyArgs){var varName=def.get(keyArgs,'sceneVarName')||this.role.name;return this.scale.by1(function(scene){return scene.vars[varName].value})},_buildOptionId:function(){return this.id+"Axis"},_getOptionsDefinition:function(){return colorAxis_optionsDef},_resolveByNaked:pvc.options.specify(function(optionInfo){if(!this.index){return this._chartOption(this.id+def.firstUpperCase(optionInfo.name))}}),_specifyV1ChartOption:function(optionInfo,asName){if(!this.index&&this.chart.compatVersion()<=1&&this._specifyChartOption(optionInfo,asName)){return true}}});function castSize(size){if(!def.object.is(size)){var position=this.option('Position');size=new pvc.Size().setSize(size,{singleProp:pvc.BasePanel.orthogonalLength[position]})}return size}function castAlign(align){var position=this.option('Position');return pvc.parseAlign(position,align)}function castColorMap(colorMap){var resultMap;if(colorMap){var any;def.eachOwn(colorMap,function(v,k){any=true;colorMap[k]=pv.color(v)});if(any){resultMap=colorMap}}return resultMap}var legendData={resolveDefault:function(optionInfo){if(!this.index&&this._specifyChartOption(optionInfo,def.firstLowerCase(optionInfo.name))){return true}}};function getDefaultColor(optionInfo){var colors;if(this.scaleType==='discrete'){if(this.index===0){colors=pvc.createColorScheme()}else{var me=this;colors=function(){return me.chart._getRoleColorScale(me.role.name)}}}else{colors=['red','yellow','green'].map(function(name){return pv.Color.names[name]})}return colors}var colorAxis_optionsDef=def.create(axis_optionsDef,{Colors:{resolve:'_resolveFull',getDefault:getDefaultColor,data:{resolveV1:function(optionInfo){if(this.scaleType==='discrete'){if(this.index===0){this._specifyChartOption(optionInfo,'colors')}else if(this.index===1&&this.chart._allowV1SecondAxis){this._specifyChartOption(optionInfo,'secondAxisColor')}}else{this._specifyChartOption(optionInfo,'colorRange')}return true},resolveDefault:function(optionInfo){if(this.index===0){this._specifyChartOption(optionInfo,'colors')}}},cast:pvc.colorScheme},Map:{resolve:'_resolveFull',cast:castColorMap},Transform:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){var plotList=this._plotList;if(plotList.length<=2){var onlyTrendAndPlot2=def.query(plotList).all(function(plot){var name=plot.name;return(name==='plot2'||name==='trend')});if(onlyTrendAndPlot2){optionInfo.defaultValue(pvc.brighterColorTransform);return true}}}},cast:def.fun.to},NormByCategory:{resolve:function(optionInfo){if(!this.chart._allowColorPerCategory){optionInfo.specify(false);return true}return this._resolveFull(optionInfo)},data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'normPerBaseCategory');return true}},cast:Boolean,value:false},ScaleType:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'scalingType');return true}},cast:pvc.parseContinuousColorScaleType,value:'linear'},UseAbs:{resolve:'_resolveFull',cast:Boolean,value:false},Domain:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'colorRangeInterval');return true}},cast:def.array.to},Min:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'minColor');return true}},cast:pv.color},Max:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'maxColor');return true}},cast:pv.color},Missing:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){this._specifyV1ChartOption(optionInfo,'nullColor');return true}},cast:pv.color,value:pv.color("#efc5ad")},LegendVisible:{resolve:'_resolveFull',data:legendData,cast:Boolean,value:true},LegendClickMode:{resolve:'_resolveFull',data:legendData,cast:pvc.parseLegendClickMode,value:'toggleVisible'},LegendDrawLine:{resolve:'_resolveFull',data:legendData,cast:Boolean,value:false},LegendDrawMarker:{resolve:'_resolveFull',data:legendData,cast:Boolean,value:true},LegendShape:{resolve:'_resolveFull',data:legendData,cast:pvc.parseShape}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Complex.js
... ... @@ -1 +0,0 @@
1   -var complex_nextId=1;def.type('pvc.data.Complex').init(function(source,atomsByName,dimNames,atomsBase,wantLabel,calculate){this.id=complex_nextId++;var owner;if(source){owner=source.owner;if(!atomsBase){atomsBase=source.atoms}}this.owner=owner||this;this.atoms=atomsBase?Object.create(atomsBase):{};var hadDimNames=!!dimNames;if(!dimNames){dimNames=owner.type._dimsNames}var atomsMap=this.atoms;var D=dimNames.length;var i,dimName;if(atomsByName){var ownerDims=owner._dimensions;var addAtom=function(dimName,value){if(value!=null){var dimension=def.getOwn(ownerDims,dimName);var atom=dimension.intern(value);if(!atomsBase||atom!==atomsBase[dimName]){atomsMap[dimName]=atom}}};if(!hadDimNames){for(dimName in atomsByName){addAtom(dimName,atomsByName[dimName])}}else{for(i=0;i<D;i++){dimName=dimNames[i];addAtom(dimName,atomsByName[dimName])}}if(calculate){var newAtomsByName=owner.type._calculate(this);for(dimName in newAtomsByName){if(!def.hasOwnProp.call(atomsMap,dimName)){addAtom(dimName,newAtomsByName[dimName])}}}}if(!D){this.value=null;this.key='';if(wantLabel){this.label=""}}else if(D===1){var singleAtom=atomsMap[dimNames[0]];this.value=singleAtom.value;this.rawValue=singleAtom.rawValue;this.key=singleAtom.key;if(wantLabel){this.label=singleAtom.label}}else{var key,label;var labelSep=owner.labelSep;var keySep=owner.keySep;for(i=0;i<D;i++){dimName=dimNames[i];var atom=atomsMap[dimName];if(!i){key=atom.key}else{key+=keySep+atom.key}if(wantLabel){var atomLabel=atom.label;if(atomLabel){if(!label){label=atomLabel}else{label+=labelSep+atomLabel}}}}this.value=this.rawValue=this.key=key;if(wantLabel){this.label=label}}}).add({labelSep:" ~ ",keySep:',',label:null,rawValue:undefined,ensureLabel:function(){var label=this.label;if(label!=null){label="";var labelSep=this.owner.labelSep;def.eachOwn(this.atoms,function(atom){var alabel=atom.label;if(alabel){if(label){label+=labelSep+alabel}else{label=alabel}}});this.label=label}return label},view:function(dimNames){return new pvc.data.ComplexView(this,dimNames)},toString:function(){var s=[''+this.constructor.typeName];if(this.index!=null){s.push("#"+this.index)}this.owner.type.dimensionsNames().forEach(function(name){s.push(name+": "+pvc.stringify(this.atoms[name].value))},this);return s.join(" ")}});pvc.data.Complex.values=function(complex,dimNames){var atoms=complex.atoms;return dimNames.map(function(dimName){return atoms[dimName].value})};pvc.data.Complex.labels=function(complex,dimNames){var atoms=complex.atoms;return dimNames.map(function(dimName){return atoms[dimName].label})};
2 0 \ No newline at end of file
pacotes/ccc2/compacto/ComplexType.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.ComplexType').init(function(dimTypeSpecs){this._dims={};this._dimsList=[];this._dimsNames=[];this._calculations=[];this._calculatedDimNames={};this._dimsIndexByName=null;this._dimsByGroup={};this._dimsNamesByGroup={};if(dimTypeSpecs){for(var name in dimTypeSpecs){this.addDimension(name,dimTypeSpecs[name])}}}).add({describe:function(){var out=["COMPLEX TYPE INFORMATION",pvc.logSeparator];this._dimsList.forEach(function(type){var features=[];features.push(type.valueTypeName);if(type.isComparable){features.push("comparable")}if(!type.isDiscrete){features.push("continuous")}if(type.isHidden){features.push("hidden")}out.push(" "+type.name+" ("+features.join(', ')+")")});return out.join("\n")},dimensions:function(name,keyArgs){if(name==null){return this._dims}var dimType=def.getOwn(this._dims,name,null);if(!dimType&&def.get(keyArgs,'assertExists',true)){throw def.error.argumentInvalid('name',"Undefined dimension '{0}'",[name])}return dimType},dimensionsList:function(){return this._dimsList},calculatedDimensionsList:function(){return this._calcDimsList},dimensionsNames:function(){return this._dimsNames},groupDimensions:function(group,keyArgs){var dims=def.getOwn(this._dimsByGroup,group);if(!dims&&def.get(keyArgs,'assertExists',true)){throw def.error.operationInvalid("There is no dimension type group with name '{0}'.",[group])}return dims},groupDimensionsNames:function(group,keyArgs){var dimNames=def.getOwn(this._dimsNamesByGroup,group);if(!dimNames&&def.get(keyArgs,'assertExists',true)){throw def.error.operationInvalid("There is no dimension type group with name '{0}'.",[group])}return dimNames},addDimension:function(name,dimTypeSpec){name||def.fail.argumentRequired('name');!def.hasOwn(this._dims,name)||def.fail.operationInvalid("A dimension type with name '{0}' is already defined.",[name]);var dimension=new pvc.data.DimensionType(this,name,dimTypeSpec);this._dims[name]=dimension;this._dimsIndexByName=null;var group=dimension.group;var groupLevel;if(group){var groupDims=def.getOwn(this._dimsByGroup,group),groupDimsNames;if(!groupDims){groupDims=this._dimsByGroup[group]=[];groupDimsNames=this._dimsNamesByGroup[group]=[]}else{groupDimsNames=this._dimsNamesByGroup[group]}groupLevel=def.array.insert(groupDimsNames,name,def.compare);groupLevel=~groupLevel;def.array.insertAt(groupDims,groupLevel,dimension)}var index;var L=this._dimsList.length;if(!group){index=L}else{groupLevel=dimension.groupLevel;for(var i=0;i<L;i++){var dim=this._dimsList[i];if(dim.group===group){if(dim.groupLevel>groupLevel){index=i;break}index=i+1}}if(index==null){index=L}}def.array.insertAt(this._dimsList,index,dimension);def.array.insertAt(this._dimsNames,index,name);if(dimension._calculate){index=def.array.binarySearch(this._calcDimsList,dimension._calculationOrder,def.compare,function(dimType){return dimType._calculationOrder});if(index>=0){index++}else{index=~index}def.array.insertAt(this._calcDimsList,index,dimension)}this._isPctRoleDimTypeMap=null;return dimension},addCalculation:function(calcSpec,dimsOptions){calcSpec||def.fail.argumentRequired('calcSpec');var calculation=calcSpec.calculation||def.fail.argumentRequired('calculations[i].calculation');var dimNames=calcSpec.names;if(typeof dimNames==='string'){dimNames=dimNames.split(/\s*\,\s*/)}else{dimNames=def.array.as(dimNames)}if(dimNames&&dimNames.length){var calcDimNames=this._calculatedDimNames;dimNames.forEach(function(name){if(name){name=name.replace(/^\s*(.+?)\s*$/,"$1");!def.hasOwn(calcDimNames,name)||def.fail.argumentInvalid('calculations[i].names',"Dimension name '{0}' is already being calculated.",[name]);var dimType=this._dims[name];if(!dimType){var dimSpec=pvc.data.DimensionType.extendSpec(name,null,dimsOptions);this.addDimension(name,dimSpec)}calcDimNames[name]=true;dimType._toCalculated()}},this)}this._calculations.push(calculation)},isCalculated:function(dimName){return def.hasOwn(this._calculatedDimNames,dimName)},_calculate:function(complex){var calcs=this._calculations;if(calcs.length){var valuesByName={};calcs.forEach(function(calc){calc(complex,valuesByName)});return valuesByName}},getPlayingPercentVisualRoleDimensionMap:function(){var map=this._isPctRoleDimTypeMap;if(!map){map=this._isPctRoleDimTypeMap=new def.Map(def.query(def.own(this._dims)).where(function(dimType){return dimType.playingPercentVisualRole()}).object({name:function(dimType){return dimType.name}}))}return map},sortDimensionNames:function(dims,nameKey){var dimsIndexByName=this._dimsIndexByName;if(!dimsIndexByName){dimsIndexByName=def.query(this._dimsList).object({name:function(dim){return dim.name},value:function(dim,index){return index}});this._dimsIndexByName=dimsIndexByName}dims.sort(function(da,db){return def.compare(dimsIndexByName[nameKey?nameKey(da):da],dimsIndexByName[nameKey?nameKey(db):db])});return dims}});function compType_dimensionRolesChanged(dimType){this._isPctRoleDimTypeMap=null}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/ComplexTypeProject.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.ComplexTypeProject').init(function(dimGroupSpecs){this._dims={};this._dimList=[];this._dimGroupsDims={};this._dimGroupSpecs=dimGroupSpecs||{};this._calcList=[]}).add({_ensureDim:function(name){name||def.fail.argumentInvalid('name',"Invalid dimension name '{0}'.",[name]);var info=def.getOwn(this._dims,name);if(!info){info=this._dims[name]=this._createDim(name);this._dimList.push(info);var groupDimsNames=def.array.lazy(this._dimGroupsDims,info.groupName);def.array.insert(groupDimsNames,name,def.compare)}return info},hasDim:function(name){return def.hasOwn(this._dims,name)},setDim:function(name,spec){var _=this._ensureDim(name).spec;if(spec){def.copy(_,spec)}return this},setDimDefaults:function(name,spec){def.setUDefaults(this._ensureDim(name).spec,spec);return this},_createDim:function(name,spec){var dimGroupName=pvc.data.DimensionType.dimensionGroupName(name);var dimGroupSpec=this._dimGroupSpecs[dimGroupName];if(dimGroupSpec){spec=def.create(dimGroupSpec,spec)}return{name:name,groupName:dimGroupName,spec:spec||{}}},readDim:function(name){var info=this._ensureDim(name);if(info.isRead){throw def.error.operationInvalid("Dimension '{0}' already is the target of a reader.",[name])}if(info.isCalc){throw def.error.operationInvalid("Dimension '{0}' is being calculated, so it cannot be the target of a reader.",[name])}info.isRead=true},calcDim:function(name){var info=this._ensureDim(name);if(info.isCalc){throw def.error.operationInvalid("Dimension '{0}' already is being calculated.",[name])}if(info.isRead){throw def.error.operationInvalid("Dimension '{0}' is the target of a reader, so it cannot be calculated.",[name])}info.isCalc=true},isReadOrCalc:function(name){if(name){var info=def.getOwn(this._dims,name);if(info){return info.isRead||info.isCalc}}return false},groupDimensionsNames:function(groupDimName){return this._dimGroupsDims[groupDimName]},setCalc:function(calcSpec){calcSpec||def.fail.argumentRequired('calculations[i]');calcSpec.calculation||def.fail.argumentRequired('calculations[i].calculation');var dimNames=calcSpec.names;if(typeof dimNames==='string'){dimNames=dimNames.split(/\s*\,\s*/)}else{dimNames=def.array.as(dimNames)}if(dimNames&&dimNames.length){dimNames.forEach(this.calcDim,this)}this._calcList.push(calcSpec)},configureComplexType:function(complexType,translOptions){this._dimList.forEach(function(dimInfo){var dimName=dimInfo.name;var spec=dimInfo.spec;spec=pvc.data.DimensionType.extendSpec(dimName,spec,translOptions);complexType.addDimension(dimName,spec)});this._calcList.forEach(function(calcSpec){complexType.addCalculation(calcSpec)})}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/ComplexView.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.ComplexView',pvc.data.Complex).init(function(source,viewDimNames){this.source=source;this.viewDimNames=viewDimNames;var sourceAtoms=source.atoms,ownSourceAtoms=[];viewDimNames.forEach(function(dimName){if(def.hasOwnProp.call(sourceAtoms,dimName)){ownSourceAtoms[dimName]=sourceAtoms[dimName]}});this.base(source,ownSourceAtoms,viewDimNames,source.owner.atoms,true)}).add({values:function(){return pvc.data.Complex.values(this,this.viewDimNames)},labels:function(){return pvc.data.Complex.labels(this,this.viewDimNames)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Context.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Context').init(function(panel,mark,event){this.chart=panel.chart;this.panel=panel;visualContext_update.call(this,mark,event)}).add({isPinned:false,pin:function(){this.isPinned=true;return this},finished:function(v){return this.sign.finished(v)},delegate:function(dv){return this.sign.delegate(dv)},getV1Series:function(){var s;var series=this.scene.firstAtoms&&(s=this.scene.firstAtoms[this.panel._getV1DimName('series')])&&s.rawValue;if(series==null){series='Series'}return series},getV1Category:function(){var c;return this.scene.firstAtoms&&(c=this.scene.firstAtoms[this.panel._getV1DimName('category')])&&c.rawValue},getV1Value:function(){var v;return this.scene.firstAtoms&&(v=this.scene.firstAtoms[this.panel._getV1DimName('value')])&&v.value},getV1Datum:function(){return this.panel._getV1Datum(this.scene)}});if(Object.defineProperty){try{Object.defineProperty(pvc.visual.Context.prototype,'parent',{get:function(){throw def.error.operationInvalid("The 'this.parent.index' idiom has no equivalent in this version. Please try 'this.pvMark.parent.index'.")}})}catch(ex){}}function visualContext_update(mark,event){this.event=event||null;this.pvMark=mark;var scene;if(mark){var sign=this.sign=mark.sign||null;if(sign){scene=mark.instance().data}if(!scene){this.index=null;scene=new pvc.visual.Scene(null,{panel:this.panel})}else{this.index=scene.childIndex()}}else{this.sign=null;this.index=null;scene=new pvc.visual.Scene(null,{panel:this.panel,group:this.chart.root.data})}this.scene=scene}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/CrosstabTranslationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.CrosstabTranslationOper',pvc.data.MatrixTranslationOper).add({virtualItemSize:function(){return this.R+this.C+this.M},_executeCore:function(){if(!this.metadata.length){return def.query()}var dimsReaders=this._getDimensionsReaders();var item=new Array(this.virtualItemSize()),itemCrossGroupIndex=this._itemCrossGroupIndex,me=this;function updateVItemCrossGroup(crossGroupId,source){var itemIndex=itemCrossGroupIndex[crossGroupId],sourceIndex=0,depth=me[crossGroupId];while((depth--)>0){item[itemIndex++]=source[sourceIndex++]}}function updateVItemMeasure(line,cg){var itemIndex=itemCrossGroupIndex.M;var cgIndexes=me._colGroupsIndexes[cg];var depth=me.M;for(var i=0;i<depth;i++){var lineIndex=cgIndexes[i];item[itemIndex++]=lineIndex!=null?line[lineIndex]:null}}function expandLine(line){updateVItemCrossGroup('R',line);return def.query(this._colGroups).select(function(colGroup,cg){updateVItemCrossGroup('C',colGroup);updateVItemMeasure(line,cg);return this._readItem(item,dimsReaders)},this)}return def.query(this._lines).selectMany(expandLine,this)},_processMetadata:function(){this.base();this._separator=this.options.separator||'~';var lines=pvc.cloneMatrix(this.source);this._lines=lines;this.R=1;this.C=1;this.M=1;this.measuresDirection=null;var colNames;if(this.options.seriesInRows){colNames=this.metadata.map(function(d){return d.colName})}else if(this.options.compatVersion<=1){colNames=this.metadata.map(function(d){return{v:d.colName}})}else{colNames=this.metadata.map(function(d){return{v:d.colName,f:d.colLabel}})}var itemCrossGroupTypes=this._itemCrossGroupTypes={};if(!this.options.isMultiValued){this.R=this._getCategoriesCount();this._colGroups=colNames.slice(this.R);this._colGroupsIndexes=new Array(this._colGroups.length);this._colGroups.forEach(function(colGroup,cg){this._colGroups[cg]=[colGroup];this._colGroupsIndexes[cg]=[this.R+cg]},this);itemCrossGroupTypes.C=[0];itemCrossGroupTypes.M=[this._columnTypes[this.R]]}else{var measuresInColumns=def.get(this.options,'measuresInColumns',true);if(measuresInColumns||this.options.measuresIndex==null){this.R=this._getCategoriesCount();var encodedColGroups=colNames.slice(this.R);var L=encodedColGroups.length;if(L>0){if(!measuresInColumns){this._colGroups=encodedColGroups;this._colGroupsIndexes=[];this._colGroups.forEach(function(colGroup,cg){this._colGroups[cg]=this._splitEncodedColGroupCell(colGroup);this._colGroupsIndexes[cg]=[this.R+cg]},this);itemCrossGroupTypes.M=[this._columnTypes[this.R]]}else{this.measuresDirection='columns';this._processEncodedColGroups(encodedColGroups)}this.C=this._colGroups[0].length;itemCrossGroupTypes.C=def.array.create(this.C,0)}else{this.C=this.M=0;itemCrossGroupTypes.M=itemCrossGroupTypes.C=[]}}else{this.measuresDirection='rows';this.R=+this.options.measuresIndex;var measuresCount=this.options.measuresCount;if(measuresCount==null){measuresCount=1}this.M=measuresCount;this._colGroups=colNames.slice(this.R+1);this._colGroups.forEach(function(colGroup,cg){this._colGroups[cg]=[colGroup]},this)}}itemCrossGroupTypes.R=this._columnTypes.slice(0,this.R);var seriesInRows=this.options.seriesInRows;var itemGroupIndex=this._itemCrossGroupIndex={'C':!seriesInRows?0:this.R,'R':!seriesInRows?this.C:0,'M':this.C+this.R};var itemTypes=this._itemTypes=new Array(this.virtualItemSize());def.eachOwn(itemGroupIndex,function(groupStartIndex,crossGroup){itemCrossGroupTypes[crossGroup].forEach(function(type,groupIndex){itemTypes[groupStartIndex+groupIndex]=type})});this._itemLogicalGroup={'series':seriesInRows?this.R:this.C,'category':seriesInRows?this.C:this.R,'value':this.M};this._itemLogicalGroupIndex={'series':0,'category':this._itemLogicalGroup.series,'value':this.C+this.R};if(pvc.debug>=3){pvc.log("Crosstab translator "+pvc.stringify({R:this.R,C:this.C,M:this.M}))}},_getCategoriesCount:function(){var R=this.options.categoriesCount;if(R!=null&&(!isFinite(R)||R<0)){R=null}if(R==null){R=def.query(this._columnTypes).whayl(function(type){return type===0}).count();if(!R){R=1}}return R},_splitEncodedColGroupCell:function(colGroup){var values=colGroup.v;var labels;if(values==null){values=[]}else{values=values.split(this._separator);labels=colGroup.f;if(labels){labels=labels.split(this._separator)}}return values.map(function(value,index){return{v:value,f:labels&&labels[index]}})},_processEncodedColGroups:function(encodedColGroups){var L=encodedColGroups.length||def.assert("Must have columns"),R=this.R,colGroups=[],currColGroup,measuresInfo={},measuresInfoList=[];for(var i=0;i<L;i++){var colGroupCell=encodedColGroups[i];var encColGroupValues=colGroupCell.v;var encColGroupLabels=colGroupCell.f;var sepIndex=encColGroupValues.lastIndexOf(this._separator);var meaName,colGroupValues,colGroupLabels;if(sepIndex<0){meaName=encColGroupValues;encColGroupValues='';colGroupValues=[]}else{meaName=encColGroupValues.substring(sepIndex+1);encColGroupValues=encColGroupValues.substring(0,sepIndex);colGroupValues=encColGroupValues.split(this._separator);if(encColGroupLabels!=null){colGroupLabels=encColGroupLabels.split(this._separator);colGroupLabels.pop()}colGroupValues.forEach(function(value,index){var label=colGroupLabels&&colGroupLabels[index];colGroupValues[index]={v:value,f:label}})}if(!currColGroup||currColGroup.encValues!==encColGroupValues){currColGroup={startIndex:i,encValues:encColGroupValues,values:colGroupValues,measureNames:[meaName]};colGroups.push(currColGroup)}else{currColGroup.measureNames.push(meaName)}var currMeaIndex=(i-currColGroup.startIndex),meaInfo=def.getOwn(measuresInfo,meaName);if(!meaInfo){measuresInfo[meaName]=meaInfo={name:meaName,groupIndex:currMeaIndex,index:i,type:this._columnTypes[R+i]};measuresInfoList.push(meaInfo)}else if(currMeaIndex>meaInfo.groupIndex){meaInfo.groupIndex=currMeaIndex}}measuresInfoList.sort(function(meaInfoA,meaInfoB){return def.compare(meaInfoA.groupIndex,meaInfoB.groupIndex)||def.compare(meaInfoA.index,meaInfoB.index)});var M=measuresInfoList.length;var meaTypes=new Array(M);this._itemCrossGroupTypes.M=meaTypes;measuresInfoList.forEach(function(meaInfoA,index){meaInfoA.groupIndex=index;meaTypes[index]=meaInfoA.type});var CG=colGroups.length,colGroupsValues=new Array(CG),colGroupsIndexes=new Array(CG);colGroups.map(function(colGroup,cg){colGroupsValues[cg]=colGroup.values;var colGroupStartIndex=colGroup.startIndex;var meaIndexes=colGroupsIndexes[cg]=new Array(M);colGroup.measureNames.forEach(function(meaName2,localMeaIndex){var meaIndex=measuresInfo[meaName2].groupIndex;meaIndexes[meaIndex]=R+colGroupStartIndex+localMeaIndex})});this._colGroups=colGroupsValues;this._colGroupsIndexes=colGroupsIndexes;this.M=M},configureType:function(){if(this.measuresDirection==='rows'){throw def.error.notImplemented()}this.base()},_configureTypeCore:function(){var me=this;var itemLogicalGroup=me._itemLogicalGroup;var itemLogicalGroupIndex=me._itemLogicalGroupIndex;var index=0;var dimsReaders=[];function add(dimGroupName,level,count){var crossEndIndex=itemLogicalGroupIndex[dimGroupName]+count;while(count>0){var dimName=pvc.buildIndexedId(dimGroupName,level);if(!me.complexTypeProj.isReadOrCalc(dimName)){index=me._nextAvailableItemIndex(index);if(index>=crossEndIndex){return}dimsReaders.push({names:dimName,indexes:index});index++;count--}level++}}var dataPartDimName=this.options.dataPartDimName;if(dataPartDimName&&this.C===1&&!this.complexTypeProj.isReadOrCalc(dataPartDimName)){var plot2SeriesIndexes=this.options.plot2SeriesIndexes;if(plot2SeriesIndexes!=null){var seriesKeys=this._colGroups.map(function(colGroup){return''+colGroup[0].v});this._plot2SeriesKeySet=this._createPlot2SeriesKeySet(plot2SeriesIndexes,seriesKeys)}}['series','category','value'].forEach(function(dimGroupName){var L=itemLogicalGroup[dimGroupName];if(L>0){add(dimGroupName,0,L)}});if(dimsReaders){dimsReaders.forEach(this.defReader,this)}if(this._plot2SeriesKeySet){var seriesReader=this._userDimsReadersByDim.series;if(seriesReader){var calcAxis2SeriesKeySet=def.fun.constant(this._plot2SeriesKeySet);this._userRead(this._dataPartGet(calcAxis2SeriesKeySet,seriesReader),dataPartDimName)}}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Data.compat.js
... ... @@ -1 +0,0 @@
1   -pvc.data.Data.add({getInfo:function(){var out=["DATA SUMMARY",pvc.logSeparator," Dimension",pvc.logSeparator];def.eachOwn(this.dimensions(),function(dimension,name){var count=dimension.count(),type=dimension.type,features=[];features.push('"'+type.label+'"');features.push(type.valueTypeName);if(type.isComparable){features.push("comparable")}if(!type.isDiscrete){features.push("continuous")}if(type.isHidden){features.push("hidden")}out.push(" "+name+" ("+features.join(', ')+")"+" ("+count+")\n\t"+dimension.atoms().slice(0,10).map(function(atom){return atom.label}).join(", ")+(count>10?"...":""))});return out.join("\n")},getValues:function(){return pv.range(0,this.getCategoriesSize()).map(function(categIndex){return this._getValuesForCategoryIndex(categIndex)},this)},_getDimensionValues:function(name){return this.dimensions(name).atoms().map(function(atom){return atom.value})},_getDimensionVisibleValues:function(name){return this.dimensions(name).atoms({visible:true}).map(function(atom){return atom.value})},getSeries:function(){return this._getDimensionValues('series')},getVisibleSeriesIndexes:function(){return this.dimensions('series').indexes({visible:true})},getVisibleCategoriesIndexes:function(){return this.dimensions('category').indexes({visible:true})},getVisibleSeries:function(){return this._getDimensionVisibleValues('series')},getCategories:function(){return this._getDimensionValues('category')},getVisibleCategories:function(){return this._getDimensionVisibleValues('category')},_getValuesForCategoryIndex:function(categIdx){var categAtom=this.dimensions('category').atoms()[categIdx];var datumsBySeriesKey=this.datums({category:categAtom}).uniqueIndex(function(datum){return datum.atoms.series.key});return this.dimensions('series').atoms().map(function(atom){var datum=def.getOwn(datumsBySeriesKey,atom.key);return datum?datum.atoms.value.value:null})},getSeriesSize:function(){var dim=this.dimensions('series',{assertExists:false});return dim?dim.count():0},getCategoriesSize:function(){var dim=this.dimensions('category',{assertExists:false});return dim?dim.count():0}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Data.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.Data',pvc.data.Complex).init(function(keyArgs){keyArgs||def.fail.argumentRequired('keyArgs');this._visibleDatums=new def.Map();var owner,atoms,atomsBase,dimNames,datums,index,parent=this.parent=keyArgs.parent||null;if(parent){this.root=parent.root;this.depth=parent.depth+1;this.type=parent.type;datums=keyArgs.datums||def.fail.argumentRequired('datums');owner=parent.owner;atoms=keyArgs.atoms||def.fail.argumentRequired('atoms');dimNames=keyArgs.dimNames||def.fail.argumentRequired('dimNames');atomsBase=parent.atoms}else{this.root=this;dimNames=[];var linkParent=keyArgs.linkParent||null;if(linkParent){owner=linkParent.owner;this.type=owner.type;datums=keyArgs.datums||def.fail.argumentRequired('datums');this._leafs=[];atomsBase=linkParent.atoms;index=def.get(keyArgs,'index',null);data_addLinkChild.call(linkParent,this,index)}else{owner=this;atomsBase={};if(keyArgs.labelSep){this.labelSep=keyArgs.labelSep}this.type=keyArgs.type||def.fail.argumentRequired('type');this._selectedDatums=new def.Map()}}if(datums){data_setDatums.call(this,datums)}this.owner=owner;this._atomsBase=atomsBase;this._dimensions={};this.type.dimensionsList().forEach(this._initDimension,this);this.base(owner,atoms,dimNames,atomsBase,true);pv.Dom.Node.call(this,null);delete this.nodeValue;this._children=this.childNodes;if(parent){index=def.get(keyArgs,'index',null);data_addChild.call(parent,this,index);if(parent.absLabel){this.absLabel=def.string.join(owner.labelSep,parent.absLabel,this.label)}else{this.absLabel=this.label}if(parent.absKey){this.absKey=def.string.join(",",parent.absKey,this.key)}else{this.absKey=this.key}}else{this.absLabel=this.label;this.absKey=this.key}}).add(pv.Dom.Node).add({parent:null,linkParent:null,_dimensions:null,_freeDimensionNames:null,_children:null,_linkChildren:null,_leafs:null,_childrenByKey:null,_visibleDatums:null,_selectedDatums:null,_groupByCache:null,_sumAbsCache:null,treeHeight:null,_groupOper:null,_groupSpec:null,_groupLevel:null,_datums:null,_datumsById:null,depth:0,label:"",absLabel:"",_disposed:false,_isFlattenGroup:false,_isDegenerateFlattenGroup:false,_initDimension:function(dimType){this._dimensions[dimType.name]=new pvc.data.Dimension(this,dimType)},dimensions:function(name,keyArgs){if(name==null){return this._dimensions}var dim=def.getOwn(this._dimensions,name);if(!dim&&def.get(keyArgs,'assertExists',true)){throw def.error.argumentInvalid('name',"Undefined dimension '{0}'.",[name])}return dim},freeDimensionNames:function(){if(!this._freeDimensionNames){var free=this._freeDimensionNames=[];def.eachOwn(this._dimensions,function(dim,dimName){var atom=this.atoms[dimName];if(!(atom instanceof pvc.data.Atom)||atom.value==null){free.push(dimName)}},this)}return this._freeDimensionNames},isOwner:function(){return this.owner===this},children:function(){if(!this._children){return def.query()}return def.query(this._children)},childCount:function(){return this._children?this._children.length:0},leafs:function(){return def.query(this._leafs)},count:function(){return this._datums.length},singleDatum:function(){var datums=this._datums;return datums.length===1?datums[0]:null},dispose:function(){if(!this._disposed){data_disposeChildLists.call(this);if(this._selectedDatums){this._selectedDatums.clear()}this._visibleDatums.clear();def.eachOwn(this._dimensions,function(dimension){dimension.dispose()});if(this.parent){this.parent.removeChild(this);this.parent=null}if(this.linkParent){data_removeLinkChild.call(this.linkParent,this)}this._disposed=true}},disposeChildren:function(){data_disposeChildLists.call(this)}});function data_addChild(child,index){this.insertAt(child,index);(this._childrenByKey||(this._childrenByKey={}))[child.key]=child}function data_addLinkChild(linkChild,index){data_addColChild(this,'_linkChildren',linkChild,'linkParent',index)}function data_removeLinkChild(linkChild){data_removeColChild(this,'_linkChildren',linkChild,'linkParent')}function data_disposeChildLists(){data_disposeChildList(this._children,'parent');this._childrenByKey=null;data_disposeChildList(this._linkChildren,'linkParent');this._groupByCache=null;this._sumAbsCache=null}function data_assertIsOwner(){this.isOwner()||def.fail("Can only be called on the owner data.")}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Data.operations.js
... ... @@ -1 +0,0 @@
1   -pvc.data.Data.add({load:function(atomz,keyArgs){data_assertIsOwner.call(this);var whereFun=def.get(keyArgs,'where');var isNullFun=def.get(keyArgs,'isNull');var datums=def.query(atomz).select(function(atoms){var datum=new pvc.data.Datum(this,atoms);if(isNullFun&&isNullFun(datum)){datum.isNull=true}if(whereFun&&!whereFun(datum)){return null}return datum},this);data_setDatums.call(this,datums,{doAtomGC:true})},clearVirtuals:function(){var datums=this._datums;if(datums){this._sumAbsCache=null;var visibleDatums=this._visibleDatums;var selectedDatums=this._selectedDatums;var i=0;var L=datums.length;var removed;while(i<L){var datum=datums[i];if(datum.isVirtual){var id=datum.id;if(selectedDatums&&datum.isSelected){selectedDatums.rem(id)}if(datum.isVisible){visibleDatums.rem(id)}datums.splice(i,1);L--;removed=true}else{i++}}if(removed){if(!datums.length&&this.parent){this.dispose();return}var children=this._children;if(children){i=0;L=children.length;while(i<L){var childData=children[i];childData.clearVirtuals();if(!childData.parent){L--}else{i++}}}if(this._linkChildren){this._linkChildren.forEach(function(linkChildData){linkChildData.clearVirtuals()})}}}def.eachOwn(this._dimensions,function(dim){dim_uninternVirtualAtoms.call(dim)})},add:function(datums){data_assertIsOwner.call(this);data_setDatums.call(this,datums,{isAdditive:true,doAtomGC:true})},groupBy:function(groupingSpecText,keyArgs){var groupOper=new pvc.data.GroupingOper(this,groupingSpecText,keyArgs),cacheKey=groupOper.key,groupByCache,data;if(cacheKey){groupByCache=this._groupByCache;data=groupByCache&&groupByCache[cacheKey]}if(!data){if(pvc.debug>=7){pvc.log("[GroupBy] "+(cacheKey?("Cache key not found: '"+cacheKey+"'"):"No Cache key"))}data=groupOper.execute();if(cacheKey){(groupByCache||(this._groupByCache={}))[cacheKey]=data}}else if(pvc.debug>=7){pvc.log("[GroupBy] Cache key hit '"+cacheKey+"'")}return data},flattenBy:function(role,keyArgs){var grouping=role.flattenedGrouping(keyArgs)||def.fail.operationInvalid("Role is unbound.");return this.groupBy(grouping,keyArgs)},where:function(whereSpec,keyArgs){var datums=this.datums(whereSpec,keyArgs);return new pvc.data.Data({linkParent:this,datums:datums})},datums:function(whereSpec,keyArgs){if(!whereSpec){if(!keyArgs){return def.query(this._datums)}return data_whereState(def.query(this._datums),keyArgs)}whereSpec=data_processWhereSpec.call(this,whereSpec,keyArgs);return data_where.call(this,whereSpec,keyArgs)},datum:function(whereSpec,keyArgs){whereSpec||def.fail.argumentRequired('whereSpec');whereSpec=data_processWhereSpec.call(this,whereSpec,keyArgs);var datum=data_where.call(this,whereSpec,keyArgs).first()||null;if(!datum&&def.get(keyArgs,'createNull')&&whereSpec.length){var sourceDatumFilter=whereSpec[0],atoms={};for(var dimName in this._dimensions){var dimAtoms=sourceDatumFilter[dimName];if(dimAtoms){atoms[dimName]=dimAtoms[0]}}datum=new pvc.data.Datum(this,atoms,true)}return datum},firstDatum:function(){return this._datums.length?this._datums[0]:null},dimensionsSumAbs:function(dimName,keyArgs){var key=dimName+":"+dim_buildDatumsFilterKey(keyArgs),sum=def.getOwn(this._sumAbsCache,key);if(sum==null){sum=this.children().where(function(childData){return!childData._isFlattenGroup||childData._isDegenerateFlattenGroup}).select(function(childData){return Math.abs(childData.dimensions(dimName).sum(keyArgs))},this).reduce(def.add,0);(this._sumAbsCache||(this._sumAbsCache={}))[key]=sum}return sum}});function data_setDatums(newDatums,keyArgs){newDatums||def.fail.argumentRequired('newDatums');var doAtomGC=def.get(keyArgs,'doAtomGC',false);var isAdditive=def.get(keyArgs,'isAdditive',false);var visibleDatums=this._visibleDatums;var selectedDatums=this._selectedDatums;var newDatumsByKey={};var prevDatumsByKey;var prevDatums=this._datums;if(prevDatums){var processPrevAtoms=isAdditive&&doAtomGC;prevDatumsByKey=def.query(prevDatums).uniqueIndex(function(datum){if(processPrevAtoms){data_processDatumAtoms.call(this,datum,false,true)}return datum.key},this);if(isAdditive){this._sumAbsCache=null}else{data_disposeChildLists.call(this);if(selectedDatums){selectedDatums.clear()}visibleDatums.clear()}}else{isAdditive=false}var datumsById;if(isAdditive){datumsById=this._datumsById}else{datumsById=this._datumsById={}}if(def.array.is(newDatums)){var i=0;var L=newDatums.length;while(i<L){var inDatum=newDatums[i];var outDatum=setDatum.call(this,inDatum);if(!outDatum){newDatums.splice(i,1);L--}else{if(outDatum!==inDatum){newDatums[i]=outDatum}i++}}}else if(newDatums instanceof def.Query){newDatums=newDatums.select(setDatum,this).where(def.notNully).array()}else{throw def.error.argumentInvalid('newDatums',"Argument is of invalid type.")}if(doAtomGC){def.eachOwn(this._dimensions,function(dimension){dim_uninternUnvisitedAtoms.call(dimension)})}if(isAdditive){def.array.append(prevDatums,newDatums);if(this._linkChildren){this._linkChildren.forEach(function(linkChildData){data_addDatumsSimple.call(linkChildData,newDatums)})}}else{this._datums=newDatums}function setDatum(newDatum){if(!newDatum){return}var key=newDatum.key;if(def.hasOwnProp.call(newDatumsByKey,key)){return}if(prevDatumsByKey){var prevDatum=def.getOwn(prevDatumsByKey,key);if(prevDatum){if(isAdditive){return}newDatum=prevDatum}}newDatumsByKey[key]=newDatum;var id=newDatum.id;datumsById[id]=newDatum;data_processDatumAtoms.call(this,newDatum,!!this._dimensions,doAtomGC);if(!newDatum.isNull){if(selectedDatums&&newDatum.isSelected){selectedDatums.set(id,newDatum)}if(newDatum.isVisible){visibleDatums.set(id,newDatum)}}return newDatum}}function data_processDatumAtoms(datum,intern,markVisited){var dims=this._dimensions;if(!dims){intern=false}def.each(datum.atoms,function(atom){if(intern){var localDim=def.getOwn(dims,atom.dimension.name)||def.fail.argumentInvalid("Datum has atoms of foreign dimension.");dim_internAtom.call(localDim,atom)}if(markVisited){atom.visited=true}})}function data_addDatumsSimple(newDatums){newDatums||def.fail.argumentRequired('newDatums');var groupOper=this._groupOper;if(groupOper){newDatums=groupOper.executeAdd(this,newDatums)}else{data_addDatumsLocal.call(this,newDatums)}if(this._linkChildren){this._linkChildren.forEach(function(linkChildData){data_addDatumsSimple.call(linkChildData,newDatums)})}}function data_addDatumsLocal(newDatums){var visibleDatums=this._visibleDatums;var selectedDatums=this._selectedDatums;this._sumAbsCache=null;var datumsById=this._datumsById;var datums=this._datums;newDatums.forEach(addDatum,this);function addDatum(newDatum){var id=newDatum.id;datumsById[id]=newDatum;data_processDatumAtoms.call(this,newDatum,true,false);if(!newDatum.isNull){if(selectedDatums&&newDatum.isSelected){selectedDatums.set(id,newDatum)}if(newDatum.isVisible){visibleDatums.set(id,newDatum)}}datums.push(newDatum)}}function data_processWhereSpec(whereSpec){var whereProcSpec=[];whereSpec=def.array.as(whereSpec);if(whereSpec){whereSpec.forEach(processDatumFilter,this)}return whereProcSpec;function processDatumFilter(datumFilter){if(datumFilter!=null){(typeof datumFilter==='object')||def.fail.invalidArgument('datumFilter');var datumProcFilter={},any=false;for(var dimName in datumFilter){var atoms=processDimensionFilter.call(this,dimName,datumFilter[dimName]);if(atoms){any=true;datumProcFilter[dimName]=atoms}}if(any){whereProcSpec.push(datumProcFilter)}}}function processDimensionFilter(dimName,values){var dimension=this.dimensions(dimName),atoms=def.query(values).select(function(value){return dimension.atom(value)}).where(def.notNully).distinct(function(atom){return atom.key}).array();return atoms.length?atoms:null}}function data_whereState(q,keyArgs){var selected=def.get(keyArgs,'selected'),visible=def.get(keyArgs,'visible'),where=def.get(keyArgs,'where'),isNull=def.get(keyArgs,'isNull');if(visible!=null){q=q.where(function(datum){return datum.isVisible===visible})}if(isNull!=null){q=q.where(function(datum){return datum.isNull===isNull})}if(selected!=null){q=q.where(function(datum){return datum.isSelected===selected})}if(where){q=q.where(where)}return q}function data_where(whereSpec,keyArgs){var orderBys=def.array.as(def.get(keyArgs,'orderBy')),datumKeyArgs=def.create(keyArgs||{},{orderBy:null});var query=def.query(whereSpec).selectMany(function(datumFilter,index){if(orderBys){datumKeyArgs.orderBy=orderBys[index]}return data_whereDatumFilter.call(this,datumFilter,datumKeyArgs)},this);return query.distinct(function(datum){return datum.id})}function data_whereDatumFilter(datumFilter,keyArgs){var groupingSpecText=keyArgs.orderBy;if(!groupingSpecText){groupingSpecText=Object.keys(datumFilter).sort().join(',')}else{if(groupingSpecText.indexOf("|")>=0){throw def.error.argumentInvalid('keyArgs.orderBy',"Multi-dimension order by is not supported.")}}var rootData=this.groupBy(groupingSpecText,keyArgs),H=rootData.treeHeight;var stateStack=[];return def.query(function(){var state;if(!this._data){this._data=rootData;this._dimAtomsOrQuery=def.query(datumFilter[rootData._groupLevelSpec.dimensions[0].name])}else if(this._datumsQuery){this._data||def.assert("Must have a current data");stateStack.length||def.assert("Must have a parent data");!this._dimAtomsOrQuery||def.assert();if(this._datumsQuery.next()){this.item=this._datumsQuery.item;return 1}this._datumsQuery=null;state=stateStack.pop();this._data=state.data;this._dimAtomsOrQuery=state.dimAtomsOrQuery}this._dimAtomsOrQuery||def.assert("Invalid programmer");this._data||def.assert("Must have a current data");var depth=stateStack.length;do{while(this._dimAtomsOrQuery.next()){var dimAtomOr=this._dimAtomsOrQuery.item,childData=this._data._childrenByKey[dimAtomOr.key];if(childData&&(depth<H-1||childData._datums.length)){stateStack.push({data:this._data,dimAtomsOrQuery:this._dimAtomsOrQuery});this._data=childData;if(depth<H-1){this._dimAtomsOrQuery=def.query(datumFilter[childData._groupLevelSpec.dimensions[0].name]);depth++}else{this._dimAtomsOrQuery=null;this._datumsQuery=def.query(childData._datums);this._datumsQuery.next();this.item=this._datumsQuery.item;return 1}}}if(!depth){return 0}state=stateStack.pop();this._data=state.data;this._dimAtomsOrQuery=state.dimAtomsOrQuery;depth--}while(true);return 0})}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Data.selected.js
... ... @@ -1 +0,0 @@
1   -pvc.data.Data.add({selectedCount:function(){if(!this.isOwner()){return this.datums(null,{selected:true}).count()}return this._selectedDatums.count},selectedDatums:function(){if(!this.isOwner()){return this.datums(null,{selected:true}).array()}return this._selectedDatums.values()},selectedDatumMap:function(){if(!this.isOwner()){var datums=this.datums(null,{selected:true}).object({name:function(datum){return datum.id}});return new def.Set(datums)}return this._selectedDatums.clone()},visibleCount:function(){return this._visibleDatums.count},replaceSelected:function(datums){if(!def.array.is(datums)){datums=datums.array()}var alreadySelectedById=def.query(datums).where(function(datum){return datum.isSelected}).object({name:function(datum){return datum.id}});var changed=this.owner.clearSelected(function(datum){return!def.hasOwn(alreadySelectedById,datum.id)});changed|=pvc.data.Data.setSelected(datums,true);return changed},clearSelected:function(funFilter){if(this.owner!==this){return this.owner.clearSelected(funFilter)}if(!this._selectedDatums.count){return false}var changed;if(funFilter){changed=false;this._selectedDatums.values().filter(funFilter).forEach(function(datum){changed=true;datum_deselect.call(datum);this._selectedDatums.rem(datum.id)},this)}else{changed=true;this._selectedDatums.values().forEach(function(datum){datum_deselect.call(datum)});this._selectedDatums.clear()}return changed}});function data_onDatumSelectedChanged(datum,selected){!datum.isNull||def.assert("Null datums do not notify selected changes");if(selected){this._selectedDatums.set(datum.id,datum)}else{this._selectedDatums.rem(datum.id)}this._sumAbsCache=null}function data_onDatumVisibleChanged(datum,visible){if(def.hasOwn(this._datumsById,datum.id)){!datum.isNull||def.assert("Null datums do not notify visible changes");if(visible){this._visibleDatums.set(datum.id,datum)}else{this._visibleDatums.rem(datum.id)}this._sumAbsCache=null;def.eachOwn(this._dimensions,function(dimension){dim_onDatumVisibleChanged.call(dimension,datum,visible)});this._children.forEach(function(data){data_onDatumVisibleChanged.call(data,datum,visible)});if(this._linkChildren){this._linkChildren.forEach(function(data){data_onDatumVisibleChanged.call(data,datum,visible)})}}}pvc.data.Data.setSelected=function(datums,selected){var anyChanged=false;if(datums){def.query(datums).each(function(datum){if(datum.setSelected(selected)){anyChanged=true}})}return anyChanged};pvc.data.Data.toggleSelected=function(datums){if(!def.array.isLike(datums)){datums=def.query(datums).array()}var allSelected=def.query(datums).all(function(datum){return datum.isNull||datum.isSelected});return this.setSelected(datums,!allSelected)};pvc.data.Data.setVisible=function(datums,visible){var anyChanged=false;if(datums){def.query(datums).each(function(datum){if(datum.setVisible(visible)){anyChanged=true}})}return anyChanged};pvc.data.Data.toggleVisible=function(datums){if(!def.array.isLike(datums)){datums=def.query(datums).array()}var allVisible=def.query(datums).all(function(datum){return datum.isVisible});return pvc.data.Data.setVisible(datums,!allVisible)};
2 0 \ No newline at end of file
pacotes/ccc2/compacto/DataOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.DataOper').init(function(linkParent,keyArgs){this._linkParent=linkParent}).add({key:null,execute:def.method({isAbstract:true})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Datum.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.Datum',pvc.data.Complex).init(function(data,atomsByName,isNull){this.base(data,atomsByName,null,null,false,!isNull);if(isNull){this.isNull=true}}).add({isSelected:false,isVisible:true,isNull:false,isVirtual:false,isTrend:false,trendType:null,isInterpolated:false,interpolation:null,setSelected:function(select){if(this.isNull){return false}select=(select==null)||!!select;var changed=this.isSelected!==select;if(changed){if(!select){delete this.isSelected}else{this.isSelected=true}data_onDatumSelectedChanged.call(this.owner,this,select)}return changed},toggleSelected:function(){return this.setSelected(!this.isSelected)},setVisible:function(visible){if(this.isNull){return false}visible=(visible==null)||!!visible;var changed=this.isVisible!==visible;if(changed){this.isVisible=visible;data_onDatumVisibleChanged.call(this.owner,this,visible)}return changed},toggleVisible:function(){return this.setVisible(!this.isVisible)}});function datum_deselect(){delete this.isSelected}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Dimension.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.Dimension').init(function(data,type){this.data=data;this.type=type;this.root=this;this.owner=this;var name=type.name;this.name=name;this._atomComparer=type.atomComparer();this._atomsByKey={};if(data.isOwner()){this._atoms=[];dim_createVirtualNullAtom.call(this)}else{var parentData=data.parent;var source;if(parentData){source=parentData._dimensions[name];dim_addChild.call(source,this);this.root=data.parent.root}else{parentData=data.linkParent;parentData||def.assert("Data must have a linkParent");source=parentData._dimensions[name];dim_addLinkChild.call(source,this)}this._nullAtom=this.owner._nullAtom;this._lazyInit=function(){this._lazyInit=null;var datums=this.data._datums;var L=datums.length;var atomsByKey=this._atomsByKey;for(var i=0;i<L;i++){var atom=datums[i].atoms[name];atomsByKey[atom.key]=atom}this._atoms=source.atoms().filter(function(atom){return def.hasOwnProp.call(atomsByKey,atom.key)})}}}).add({parent:null,linkParent:null,_children:null,_linkChildren:null,_atomsByKey:null,_atomVisibleDatumsCount:null,_disposed:false,_nullAtom:null,_virtualNullAtom:null,_visibleAtoms:null,_visibleIndexes:null,_atomComparer:null,_atoms:null,_sumCache:null,count:function(){if(this._lazyInit){this._lazyInit()}return this._atoms.length},isVisible:function(atom){if(this._lazyInit){this._lazyInit()}def.hasOwn(this._atomsByKey,atom.key)||def.assert("Atom must exist in this dimension.");return dim_getVisibleDatumsCountMap.call(this)[atom.key]>0},atoms:function(keyArgs){if(this._lazyInit){this._lazyInit()}var visible=def.get(keyArgs,'visible');if(visible==null){return this._atoms}visible=!!visible;this._visibleAtoms||(this._visibleAtoms={});return this._visibleAtoms[visible]||(this._visibleAtoms[visible]=dim_calcVisibleAtoms.call(this,visible))},indexes:function(keyArgs){if(this._lazyInit){this._lazyInit()}var visible=def.get(keyArgs,'visible');if(visible==null){return pv.range(0,this._atoms.length)}visible=!!visible;this._visibleIndexes||(this._visibleIndexes={});return this._visibleIndexes[visible]||(this._visibleIndexes[visible]=dim_calcVisibleIndexes.call(this,visible))},atom:function(value){if(value==null||value===''){return this._nullAtom}if(value instanceof pvc.data.Atom){return value}if(this._lazyInit){this._lazyInit()}var key=this.type._key?this.type._key.call(null,value):value;return this._atomsByKey[key]||null},extent:function(keyArgs){var atoms=this.atoms(keyArgs);var L=atoms.length;if(!L){return undefined}var offset=this._nullAtom&&atoms[0].value==null?1:0;var countWithoutNull=L-offset;if(countWithoutNull>0){var min=atoms[offset];var max=atoms[L-1];var tmp;if(min!==max&&def.get(keyArgs,'abs',false)){var minSign=min.value<0?-1:1;var maxSign=max.value<0?-1:1;if(minSign===maxSign){if(maxSign<0){tmp=max;max=min;min=tmp}}else if(countWithoutNull>2){if(max.value<-min.value){max=min}var zeroIndex=def.array.binarySearch(atoms,0,this.type.comparer(),function(a){return a.value});if(zeroIndex<0){zeroIndex=~zeroIndex;var negAtom=atoms[zeroIndex-1];var posAtom=atoms[zeroIndex];if(-negAtom.value<posAtom.value){min=negAtom}else{min=posAtom}}else{min=atoms[zeroIndex]}}else if(max.value<-min.value){tmp=max;max=min;min=tmp}}return{min:min,max:max}}return undefined},min:function(keyArgs){var atoms=this.atoms(keyArgs);var L=atoms.length;if(!L){return undefined}var offset=this._nullAtom&&atoms[0].value==null?1:0;return(L>offset)?atoms[offset]:undefined},max:function(keyArgs){var atoms=this.atoms(keyArgs);var L=atoms.length;return L&&atoms[L-1].value!=null?atoms[L-1]:undefined},sum:function(keyArgs){var isAbs=!!def.get(keyArgs,'abs',false),zeroIfNone=def.get(keyArgs,'zeroIfNone',true),key=dim_buildDatumsFilterKey(keyArgs)+':'+isAbs;var sum=def.getOwn(this._sumCache,key);if(sum===undefined){var dimName=this.name;sum=this.data.datums(null,keyArgs).reduce(function(sum2,datum){var value=datum.atoms[dimName].value;if(isAbs&&value<0){value=-value}return sum2!=null?(sum2+value):value},null);(this._sumCache||(this._sumCache={}))[key]=sum}return zeroIfNone?(sum||0):sum},percent:function(atomOrValue,keyArgs){var value=(atomOrValue instanceof pvc.data.Atom)?atomOrValue.value:atomOrValue;if(!value){return 0}var sum=this.sum(def.create(keyArgs,{abs:true}));return sum?(Math.abs(value)/sum):0},percentOverParent:function(keyArgs){var value=this.sum(keyArgs);if(!value){return 0}var parentData=this.data.parent;if(!parentData){return 0}var sum=parentData.dimensionsSumAbs(this.name,keyArgs);return sum?(Math.abs(value)/sum):0},format:function(value,sourceValue){return""+(this.type._formatter?this.type._formatter.call(null,value,sourceValue):"")},intern:function(sourceValue,isVirtual){if(sourceValue==null||sourceValue===''){return this._nullAtom||dim_createNullAtom.call(this,sourceValue)}if(sourceValue instanceof pvc.data.Atom){if(sourceValue.dimension!==this){throw def.error.operationInvalid("Atom is of a different dimension.")}return sourceValue}var value,label;var type=this.type;if(typeof sourceValue==='object'&&('v'in sourceValue)){label=sourceValue.f;sourceValue=sourceValue.v}if(!isVirtual){var converter=type._converter;value=converter?converter(sourceValue):sourceValue;if(value==null||value===''){return this._nullAtom||dim_createNullAtom.call(this,sourceValue)}}else{value=sourceValue}var cast=type.cast;if(cast){value=cast(value);if(value==null||value===''){return this._nullAtom||dim_createNullAtom.call(this)}}var keyFun=type._key;var key=''+(keyFun?keyFun(value):value);key||def.fail.operationInvalid("Only a null value can have an empty key.");var atom=this._atomsByKey[key];if(atom){if(!isVirtual&&atom.isVirtual){delete atom.isVirtual}return atom}return dim_createAtom.call(this,type,sourceValue,key,value,label,isVirtual)},dispose:function(){if(!this._disposed){data_disposeChildList(this._children,'parent');data_disposeChildList(this._linkChildren,'linkParent');if(this.parent){dim_removeChild.call(this.parent,this)}if(this.linkParent){dim_removeLinkChild.call(this.linkParent,this)}dim_clearVisiblesCache.call(this);this._lazyInit=null;this._atoms=this._nullAtom=this._virtualNullAtom=null;this._disposed=true}}});function dim_createAtom(type,sourceValue,key,value,label,isVirtual){var atom;if(this.owner===this){if(label==null){var formatter=type._formatter;if(formatter){label=formatter(value,sourceValue)}else{label=value}}label=""+label;if(!label&&pvc.debug>=2){pvc.log("Only the null value should have an empty label.")}atom=new pvc.data.Atom(this,value,label,sourceValue,key);if(isVirtual){atom.isVirtual=true}}else{var source=this.parent||this.linkParent;atom=source._atomsByKey[key]||dim_createAtom.call(source,type,sourceValue,key,value,label,isVirtual)}def.array.insert(this._atoms,atom,this._atomComparer);dim_clearVisiblesCache.call(this);this._atomsByKey[key]=atom;return atom}function dim_internAtom(atom){var key=atom.key;if(atom.dimension===this){(this.owner===this)||def.assert("Should be an owner dimension");if(!key&&atom===this._virtualNullAtom){atom=this.intern(null)}return atom}if(!this._lazyInit){var localAtom=this._atomsByKey[key];if(localAtom){if(localAtom!==atom){throw def.error.operationInvalid("Atom is from a different root data.")}return atom}if(this.owner===this){throw def.error.operationInvalid("Atom is from a different root data.")}}dim_internAtom.call(this.parent||this.linkParent,atom);if(!this._lazyInit){this._atomsByKey[key]=atom;if(!key){this._nullAtom=atom;this._atoms.unshift(atom)}else{def.array.insert(this._atoms,atom,this._atomComparer)}dim_clearVisiblesCache.call(this)}return atom}function dim_buildDatumsFilterKey(keyArgs){var visible=def.get(keyArgs,'visible'),selected=def.get(keyArgs,'selected');return(visible==null?null:!!visible)+':'+(selected==null?null:!!selected)}function dim_createNullAtom(sourceValue){var nullAtom=this._nullAtom;if(!nullAtom){if(this.owner===this){var typeFormatter=this.type._formatter;var label=""+(typeFormatter?typeFormatter.call(null,null,sourceValue):"");nullAtom=new pvc.data.Atom(this,null,label,null,'');this.data._atomsBase[this.name]=nullAtom}else{nullAtom=dim_createNullAtom.call(this.parent||this.linkParent,sourceValue)}this._atomsByKey['']=this._nullAtom=nullAtom;this._atoms.unshift(nullAtom)}return nullAtom}function dim_createVirtualNullAtom(){(this.owner===this)||def.assert("Can only create atoms on an owner dimension.");if(!this._virtualNullAtom){this._virtualNullAtom=new pvc.data.Atom(this,null,"",null,'');this.data._atomsBase[this.name]=this._virtualNullAtom}return this._virtualNullAtom}function dim_unintern(atom){(this.owner===this)||def.assert("Can only unintern atoms on an owner dimension.");(atom&&atom.dimension===this)||def.assert("Not an interned atom");if(atom===this._virtualNullAtom){return}var key=atom.key;if(this._atomsByKey[key]===atom){def.array.remove(this._atoms,atom,this._atomComparer);delete this._atomsByKey[key];if(!key){delete this._nullAtom;this.data._atomsBase[this.name]=this._virtualNullAtom}}dim_clearVisiblesCache.call(this)}function dim_uninternUnvisitedAtoms(){(this.owner===this)||def.assert("Can only unintern atoms of an owner dimension.");var atoms=this._atoms;if(atoms){var atomsByKey=this._atomsByKey;var i=0;var L=atoms.length;while(i<L){var atom=atoms[i];if(atom.visited){delete atom.visited;i++}else if(atom!==this._virtualNullAtom){atoms.splice(i,1);L--;var key=atom.key;delete atomsByKey[key];if(!key){delete this._nullAtom;this.data._atomsBase[this.name]=this._virtualNullAtom}}}dim_clearVisiblesCache.call(this)}}function dim_uninternVirtualAtoms(){var atoms=this._atoms;if(atoms){var atomsByKey=this._atomsByKey;var i=0;var L=atoms.length;var removed;while(i<L){var atom=atoms[i];if(!atom.isVirtual){i++}else{atoms.splice(i,1);L--;removed=true;var key=atom.key||def.assert("Cannot be the null or virtual null atom.");delete atomsByKey[key]}}if(removed){dim_clearVisiblesCache.call(this)}}}function dim_clearVisiblesCache(){this._atomVisibleDatumsCount=this._sumCache=this._visibleAtoms=this._visibleIndexes=null}function dim_onDatumsChanged(){dim_clearVisiblesCache.call(this)}function dim_addChild(child){data_addColChild(this,'_children',child,'parent');child.owner=this.owner}function dim_removeChild(child){data_removeColChild(this,'_children',child,'parent')}function dim_addLinkChild(linkChild){data_addColChild(this,'_linkChildren',linkChild,'linkParent');linkChild.owner=this.owner}function dim_removeLinkChild(linkChild){data_removeColChild(this,'_linkChildren',linkChild,'linkParent')}function dim_onDatumVisibleChanged(datum,visible){var map;if(!this._disposed&&(map=this._atomVisibleDatumsCount)){var atom=datum.atoms[this.name],key=atom.key;def.hasOwn(this._atomsByKey,key)||def.assert("Atom must exist in this dimension.");var count=map[key];(visible||(count>0))||def.assert("Must have had accounted for at least one visible datum.");map[key]=(count||0)+(visible?1:-1);this._visibleAtoms=this._sumCache=this._visibleIndexes=null}}function dim_getVisibleDatumsCountMap(){var map=this._atomVisibleDatumsCount;if(!map){map={};this.data.datums(null,{visible:true}).each(function(datum){var atom=datum.atoms[this.name],key=atom.key;map[key]=(map[key]||0)+1},this);this._atomVisibleDatumsCount=map}return map}function dim_calcVisibleIndexes(visible){var indexes=[];this._atoms.forEach(function(atom,index){if(this.isVisible(atom)===visible){indexes.push(index)}},this);return indexes}function dim_calcVisibleAtoms(visible){return def.query(this._atoms).where(function(atom){return this.isVisible(atom)===visible},this).array()}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/DimensionType.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.DimensionType').init(function(complexType,name,keyArgs){this.complexType=complexType;this.name=name;this.label=def.get(keyArgs,'label')||pvc.buildTitleFromName(name);var groupAndLevel=pvc.splitIndexedId(name);this.group=groupAndLevel[0];this.groupLevel=def.nullyTo(groupAndLevel[1],0);if(this.label.indexOf('{')>=0){this.label=def.format(this.label,[this.groupLevel+1])}this.playedVisualRoles=new def.Map();this.isHidden=!!def.get(keyArgs,'isHidden');var valueType=def.get(keyArgs,'valueType')||null;var valueTypeName=pvc.data.DimensionType.valueTypeName(valueType);var cast=def.getOwn(pvc.data.DimensionType.cast,valueTypeName,null);this.valueType=valueType;this.valueTypeName=valueTypeName;this.cast=cast;this.isDiscreteValueType=(this.valueType!==Number&&this.valueType!==Date);this.isDiscrete=def.get(keyArgs,'isDiscrete');if(this.isDiscrete==null){this.isDiscrete=this.isDiscreteValueType}else{this.isDiscrete=!!this.isDiscrete;if(!this.isDiscrete&&this.isDiscreteValueType){throw def.error.argumentInvalid('isDiscrete',"The only supported continuous value types are Number and Date.")}}this._converter=def.get(keyArgs,'converter')||null;if(!this._converter){var rawFormat=def.get(keyArgs,'rawFormat');if(rawFormat){switch(this.valueType){case Date:this._converter=pv.Format.createParser(pv.Format.date(rawFormat));break}}}this._key=def.get(keyArgs,'key')||null;this._comparer=def.get(keyArgs,'comparer');if(this._comparer===undefined){switch(this.valueType){case Number:case Date:this._comparer=def.compare;break;default:this._comparer=null}}this.isComparable=this._comparer!=null;this._formatter=def.get(keyArgs,'formatter')||null;if(!this._formatter){switch(this.valueType){case Number:this._formatter=pv.Format.createFormatter(pv.Format.number().fractionDigits(0,2));break;case Date:var format=def.get(keyArgs,'format');if(!format){format=def.get(keyArgs,'rawFormat');if(format){format=format.replace(/-/g,"/")}}if(!format){format="%Y/%m/%d"}this._formatter=pv.Format.createFormatter(pv.Format.date(format));break}}}).add({isCalculated:false,compare:function(a,b){if(a==null){if(b==null){return 0}return-1}else if(b==null){return 1}return this._comparer.call(null,a,b)},comparer:function(reverse){if(!this.isComparable){return null}var me=this;if(reverse){return this._reverseComparer||(this._reverseComparer=function(a,b){return me.compare(b,a)})}return this._directComparer||(this._directComparer=function(a,b){return me.compare(a,b)})},atomComparer:function(reverse){if(reverse){return this._reverseAtomComparer||(this._reverseAtomComparer=this._createReverseAtomComparer())}return this._directAtomComparer||(this._directAtomComparer=this._createDirectAtomComparer())},_toDiscrete:function(){this.isDiscrete=true},_toCalculated:function(){this.isCalculated=true},_createReverseAtomComparer:function(){if(!this.isComparable){return atom_idComparerReverse}var me=this;function reverseAtomComparer(a,b){if(a===b){return 0}return me.compare(b.value,a.value)}return reverseAtomComparer},_createDirectAtomComparer:function(){if(!this.isComparable){return atom_idComparer}var me=this;function directAtomComparer(a,b){if(a===b){return 0}return me.compare(a.value,b.value)}return directAtomComparer},formatter:function(){return this._formatter},converter:function(){return this._converter},playingPercentVisualRole:function(){return def.query(this.playedVisualRoles.values()).any(function(visualRole){return visualRole.isPercent})}});pvc.data.DimensionType.cast={'Date':function(value){return value instanceof Date?value:new Date(value)},'Number':function(value){value=Number(value);return isNaN(value)?null:value},'String':String,'Boolean':Boolean,'Object':Object,'Any':null};pvc.data.DimensionType.dimensionGroupName=function(dimName){return dimName.replace(/^(.*?)(\d*)$/,"$1")};pvc.data.DimensionType.valueTypeName=function(valueType){if(valueType==null){return"Any"}switch(valueType){case Boolean:return'Boolean';case Number:return'Number';case String:return'String';case Object:return'Object';case Date:return'Date';default:throw def.error.argumentInvalid('valueType',"Invalid valueType function: '{0}'.",[valueType])}};pvc.data.DimensionType.extendSpec=function(dimName,dimSpec,keyArgs){var dimGroup=pvc.data.DimensionType.dimensionGroupName(dimName),userDimGroupsSpec=def.get(keyArgs,'dimensionGroups');if(userDimGroupsSpec){var groupDimSpec=userDimGroupsSpec[dimGroup];if(groupDimSpec){dimSpec=def.create(groupDimSpec,dimSpec)}}if(!dimSpec){dimSpec={}}switch(dimGroup){case'category':var isCategoryTimeSeries=def.get(keyArgs,'isCategoryTimeSeries',false);if(isCategoryTimeSeries){if(dimSpec.valueType===undefined){dimSpec.valueType=Date}}break;case'value':if(dimSpec.valueType===undefined){dimSpec.valueType=Number}if(dimSpec.valueType===Number){if(dimSpec.formatter===undefined&&!dimSpec.format){dimSpec.formatter=def.get(keyArgs,'valueNumberFormatter')}}break}if(dimSpec.converter===undefined&&dimSpec.valueType===Date&&!dimSpec.rawFormat){dimSpec.rawFormat=def.get(keyArgs,'timeSeriesFormat')}return dimSpec};function dimType_addVisualRole(visualRole){this.playedVisualRoles.set(visualRole.name,visualRole);compType_dimensionRolesChanged.call(this.type,this)}function dimType_removeVisualRole(visualRole){this.playedVisualRoles.rem(visualRole.name);compType_dimensionRolesChanged.call(this.type,this)}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Dot.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Dot',pvc.visual.Sign).init(function(panel,parentMark,keyArgs){var pvMark=parentMark.add(pv.Dot);var protoMark=def.get(keyArgs,'proto');if(protoMark){pvMark.extend(protoMark)}keyArgs=def.setDefaults(keyArgs,'freeColor',false);this.base(panel,pvMark,keyArgs);if(!def.get(keyArgs,'freePosition',false)){var basePosProp=panel.isOrientationVertical()?"left":"bottom",orthoPosProp=panel.anchorOrtho(basePosProp);this._lockDynamic(orthoPosProp,'y')._lockDynamic(basePosProp,'x')}this._bindProperty('shape','shape')._bindProperty('shapeRadius','radius')._bindProperty('shapeSize','size').optional('strokeDasharray',undefined).optional('lineWidth',1.5)}).prototype.property('size').constructor.add({y:function(){return 0},x:function(){return 0},shape:function(){return this.delegateExtension()},radius:function(){this.state.radius=this.delegateExtension()},baseSize:function(){var radius=this.state.radius;if(radius!=null){return radius*radius}return this.base()},defaultSize:function(){return 12},interactiveSize:function(size){if(this.scene.isActive){return Math.max(size,5)*2.5}return size},interactiveColor:function(color,type){var scene=this.scene;if(scene.isActive){if(type==='stroke'){return color.brighter(1)}}else if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return color.alpha(0.8)}else{switch(type){case'fill':return this.dimColor(color,type);case'stroke':return color.alpha(0.45)}}}return this.base(color,type)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/GroupingOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.GroupingOper',pvc.data.DataOper).init(function(linkParent,groupingSpecs,keyArgs){groupingSpecs||def.fail.argumentRequired('groupingSpecs');this.base(linkParent,keyArgs);this._where=def.get(keyArgs,'where');this._visible=def.get(keyArgs,'visible',null);this._selected=def.get(keyArgs,'selected',null);this._isNull=def.get(keyArgs,'isNull',null);var hasKey=this._selected==null,whereKey='';if(this._where){whereKey=def.get(keyArgs,'whereKey');if(!whereKey){if(!keyArgs||whereKey===null){hasKey=false}else{whereKey=''+def.nextId('dataOperWhereKey');keyArgs.whereKey=whereKey}}}var ids=[];this._groupSpecs=def.array.as(groupingSpecs).map(function(groupSpec){if(groupSpec instanceof pvc.data.GroupingSpec){if(groupSpec.type!==linkParent.type){throw def.error.argumentInvalid('groupingSpecText',"Invalid associated complex type.")}}else{groupSpec=pvc.data.GroupingSpec.parse(groupSpec,linkParent.type)}ids.push(groupSpec.id);return groupSpec});if(hasKey){this.key=ids.join('!!')+"||visible:"+this._visible+"||isNull:"+this._isNull+"||where:"+whereKey}}).add({execute:function(){var datumsQuery=data_whereState(def.query(this._linkParent._datums),{visible:this._visible,selected:this._selected,isNull:this._isNull,where:this._where});var rootNode=this._group(datumsQuery);return this._generateData(rootNode,null,this._linkParent)},executeAdd:function(rootData,datums){var datumsQuery=data_whereState(def.query(datums),{visible:this._visible,selected:this._selected,isNull:this._isNull,where:this._where});var rootNode=this._group(datumsQuery);this._generateData(rootNode,null,this._linkParent,rootData);return rootNode.datums},_group:function(datumsQuery){var rootNode={isRoot:true,treeHeight:def.query(this._groupSpecs).select(function(spec){var levelCount=spec.levels.length;if(!levelCount){return 0}return!!spec.flatteningMode?1:levelCount}).reduce(def.add,0),datums:[]};if(rootNode.treeHeight>0){this._groupSpecRecursive(rootNode,datumsQuery,0)}return rootNode},_groupSpecRecursive:function(specParentNode,specDatumsQuery,specIndex){var groupSpec=this._groupSpecs[specIndex];var levelSpecs=groupSpec.levels;var L=levelSpecs.length;var doFlatten=!!groupSpec.flatteningMode;var nextSpecIndex=specIndex+1;var isLastSpec=(nextSpecIndex>=this._groupSpecs.length);var isPostOrder=doFlatten&&(groupSpec.flatteningMode==='tree-post');var specGroupParent;if(doFlatten){specParentNode.children=[];specParentNode.childrenByKey={};specGroupParent={key:'',absKey:'',atoms:{},datums:[],label:groupSpec.flattenRootLabel,dimNames:[]};if(!isPostOrder){specParentNode.children.push(specGroupParent);specParentNode.childrenByKey['']=specGroupParent}}else{specGroupParent=specParentNode}groupLevelRecursive.call(this,specGroupParent,specDatumsQuery,0);if(doFlatten){if(isPostOrder){specParentNode.children.push(specGroupParent)}specParentNode.datums=specGroupParent.datums}function groupLevelRecursive(levelParentNode,levelDatums,levelIndex){var levelSpec=levelSpecs[levelIndex];if(!doFlatten){levelParentNode.children=[];levelParentNode.groupSpec=groupSpec;levelParentNode.groupLevelSpec=levelSpec}var childNodes=this._groupDatums(levelSpec,levelParentNode,levelDatums,doFlatten);var isLastSpecLevel=levelIndex===L-1;var willRecurseParent=doFlatten&&!isLastSpec;var levelParentDatums=willRecurseParent?[]:levelParentNode.datums;childNodes.forEach(function(child){var childDatums=child.datums;if(!(isLastSpec&&isLastSpecLevel)){child.datums=[]}var specParentChildIndex;if(!doFlatten){levelParentNode.children.push(child)}else{def.array.lazy(levelParentNode,'_children').push(child);if(def.hasOwn(specParentNode.childrenByKey,child.key)){def.array.append(levelParentDatums,childDatums);return}specParentChildIndex=specParentNode.children.length;if(!isPostOrder){specParentNode.children.push(child);specParentNode.childrenByKey[child.key]=child;levelParentNode.isFlattenGroup=true}}if(!isLastSpecLevel){groupLevelRecursive.call(this,child,childDatums,levelIndex+1)}else if(!isLastSpec){this._groupSpecRecursive(child,childDatums,nextSpecIndex)}def.array.append(levelParentDatums,child.datums);if(doFlatten&&isPostOrder){if(def.hasOwn(specParentNode.childrenByKey,child.key)){child.isFlattenGroup||def.assert("Must be a parent for duplicate keys to exist.");if(child._children.length===1){specParentNode.children.splice(specParentChildIndex,specParentNode.children.length-specParentChildIndex);child.isDegenerateFlattenGroup=true}}specParentNode.children.push(child);specParentNode.childrenByKey[child.key]=child;levelParentNode.isFlattenGroup=true}},this);if(willRecurseParent){this._groupSpecRecursive(levelParentNode,levelParentDatums,nextSpecIndex)}}},_groupDatums:function(levelSpec,levelParentNode,levelDatums,doFlatten){var firstDatums=[];var childNodes=new def.OrderedMap();def.query(levelDatums).each(function(datum){var newChild=levelSpec.key(datum);var key=newChild.key;var child=childNodes.get(key);if(child){child.datums.push(datum)}else{child=newChild;child.datums=[datum];if(doFlatten){def.copy(child.atoms,levelParentNode.atoms);if(levelParentNode.dimNames.length){var keySep=datum.owner.keySep;child.absKey=levelParentNode.absKey+keySep+key;var K=keySep.length;var trimKey=child.absKey;while(trimKey.lastIndexOf(keySep)===trimKey.length-K){trimKey=trimKey.substr(0,trimKey.length-K)}child.key=trimKey}else{child.absKey=key}child.dimNames=levelSpec.accDimensionNames()}var datumIndex=def.array.insert(firstDatums,datum,levelSpec.comparer);childNodes.add(key,child,~datumIndex)}});return childNodes},_generateData:function(node,parentNode,parentData,rootData){var data,isNew;if(node.isRoot){if(rootData){data=rootData;data_addDatumsLocal.call(data,node.datums)}else{isNew=true;data=new pvc.data.Data({linkParent:parentData,datums:node.datums});data.treeHeight=node.treeHeight;data._groupOper=this}}else{if(rootData){data=def.get(parentData._childrenByKey,node.key);if(data){data_addDatumsSimple.call(data,node.datums)}}if(!data){isNew=true;var index,siblings;if(rootData&&(siblings=parentData._children)){index=~def.array.binarySearch(siblings,node.datums[0],parentNode.groupLevelSpec.comparer)}data=new pvc.data.Data({parent:parentData,atoms:node.atoms,dimNames:node.dimNames,datums:node.datums,index:index})}}if(isNew&&node.isFlattenGroup){data._isFlattenGroup=true;data._isDegenerateFlattenGroup=!!node.isDegenerateFlattenGroup;var label=node.label;if(label){data.label+=label;data.absLabel+=label}}var childNodes=node.children;if(childNodes&&childNodes.length){if(isNew){data._groupSpec=node.groupSpec;data._groupLevelSpec=node.groupLevelSpec}childNodes.forEach(function(childNode){this._generateData(childNode,node,data,rootData)},this)}else if(isNew&&!node.isRoot){var leafs=data.root._leafs;data.leafIndex=leafs.length;leafs.push(data)}return data}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/GroupingSpec.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.GroupingSpec').init(function(levelSpecs,type,keyArgs){this.type=type||null;var ids=[];this.hasCompositeLevels=false;var dimNames=[];this.levels=def.query(levelSpecs||undefined).where(function(levelSpec){return levelSpec.dimensions.length>0}).select(function(levelSpec){ids.push(levelSpec.id);def.array.append(dimNames,levelSpec.dimensionNames());if(!this.hasCompositeLevels&&levelSpec.dimensions.length>1){this.hasCompositeLevels=true}levelSpec._setAccDimNames(dimNames.slice(0));return levelSpec},this).array();this._dimNames=dimNames;this.depth=this.levels.length;this.isSingleLevel=this.depth===1;this.isSingleDimension=this.isSingleLevel&&!this.hasCompositeLevels;this.firstDimension=this.depth>0?this.levels[0].dimensions[0]:null;this.flatteningMode=def.get(keyArgs,'flatteningMode')||null;this.flattenRootLabel=def.get(keyArgs,'flattenRootLabel')||'';this.id=(this.flatteningMode||'')+"##"+this.flattenRootLabel+"##"+ids.join('||')}).add({bind:function(type){this.type=type||def.fail.argumentRequired('type');this.levels.forEach(function(levelSpec){levelSpec.bind(type)})},dimensions:function(){return def.query(this.levels).selectMany(function(level){return level.dimensions})},dimensionNames:function(){return this._dimNames},view:function(complex){return complex.view(this.dimensionNames())},isDiscrete:function(){var d;return!this.isSingleDimension||(!!(d=this.firstDimension)&&d.type.isDiscrete)},firstDimensionType:function(){var d=this.firstDimension;return d&&d.type},firstDimensionName:function(){var dt=this.firstDimensionType();return dt&&dt.name},firstDimensionValueType:function(){var dt=this.firstDimensionType();return dt&&dt.valueType},isNull:function(){return!this.levels.length},ensure:function(keyArgs){var grouping=this,flatteningMode=def.get(keyArgs,'flatteningMode');if(flatteningMode){if(flatteningMode==='singleLevel'){return grouping.singleLevelGrouping(keyArgs)}var flattenRootLabel=def.get(keyArgs,'flattenRootLabel')||'';if(this.flatteningMode!==flatteningMode||(this.flattenRootLabel!==flattenRootLabel)){grouping=new pvc.data.GroupingSpec(grouping.levels,grouping.type,{flatteningMode:flatteningMode,flattenRootLabel:flattenRootLabel})}}if(def.get(keyArgs,'reverse',false)){grouping=grouping.reversed()}return grouping},singleLevelGrouping:function(keyArgs){var reverse=!!def.get(keyArgs,'reverse',false);if(this.isSingleLevel&&!reverse){return this}this._singleLevelGrouping||(this._singleLevelGrouping={});var singleLevel=this._singleLevelGrouping[reverse];if(!singleLevel){var dimSpecs=this.dimensions().select(function(dimSpec){return reverse?new pvc.data.GroupingDimensionSpec(dimSpec.name,!dimSpec.reverse,dimSpec.type.complexType):dimSpec});var levelSpec=new pvc.data.GroupingLevelSpec(dimSpecs,this.type);singleLevel=new pvc.data.GroupingSpec([levelSpec],this.type,{flatteningMode:this.flatteningMode});this._singleLevelGrouping[reverse]=singleLevel}return singleLevel},reversed:function(){var reverseGrouping=this._reverseGrouping;if(!reverseGrouping){var levelSpecs=def.query(this.levels).select(function(levelSpec){var dimSpecs=def.query(levelSpec.dimensions).select(function(dimSpec){return new pvc.data.GroupingDimensionSpec(dimSpec.name,!dimSpec.reverse,dimSpec.type.complexType)});return new pvc.data.GroupingLevelSpec(dimSpecs,this.type)});reverseGrouping=new pvc.data.GroupingSpec(levelSpecs,this.type,{flatteningMode:this.flatteningMode});this._reverseGrouping=reverseGrouping}return reverseGrouping},toString:function(){return def.query(this.levels).select(function(level){return''+level}).array().join(', ')}});def.type('pvc.data.GroupingLevelSpec').init(function(dimSpecs,type){var ids=[];var dimNames=[];this.dimensions=def.query(dimSpecs).select(function(dimSpec){ids.push(dimSpec.id);dimNames.push(dimSpec.name);return dimSpec}).array();this._dimNames=dimNames;this.dimensionsInDefOrder=this.dimensions.slice(0);if(type){this._sortDimensions(type)}this.id=ids.join(',');this.depth=this.dimensions.length;var me=this;this.comparer=function(a,b){return me.compare(a,b)}}).add({_sortDimensions:function(type){type.sortDimensionNames(this.dimensionsInDefOrder,function(d){return d.name})},_setAccDimNames:function(accDimNames){this._accDimNames=accDimNames},accDimensionNames:function(){return this._accDimNames},dimensionNames:function(){return this._dimNames},bind:function(type){this._sortDimensions(type);this.dimensions.forEach(function(dimSpec){dimSpec.bind(type)})},compare:function(a,b){for(var i=0,D=this.depth;i<D;i++){var result=this.dimensions[i].compareDatums(a,b);if(result!==0){return result}}return 0},key:function(datum){var key='';var atoms={};var datoms=datum.atoms;var dimNames=this._dimNames;var keySep=datum.owner.keySep;for(var i=0,D=this.depth;i<D;i++){var dimName=dimNames[i];var atom=datoms[dimName];atoms[dimName]=atom;if(!i){key=atom.key}else{key+=keySep+atom.key}}return{key:key,atoms:atoms,dimNames:dimNames}},toString:function(){return def.query(this.dimensions).select(function(dimSpec){return''+dimSpec}).array().join('|')}});def.type('pvc.data.GroupingDimensionSpec').init(function(name,reverse,type){this.name=name;this.reverse=!!reverse;this.id=this.name+":"+(this.reverse?'0':'1');if(type){this.bind(type)}}).add({type:null,comparer:null,bind:function(type){type||def.fail.argumentRequired('type');this.type=type.dimensions(this.name);this.comparer=this.type.atomComparer(this.reverse)},compareDatums:function(a,b){var result=this.comparer(a.atoms[this.name],b.atoms[this.name]);if(result!==0){return result}return 0},toString:function(){return this.name+(this.reverse?' desc':'')}});pvc.data.GroupingSpec.parse=function(specText,type){if(!specText){return new pvc.data.GroupingSpec(null,type)}var levels;if(def.array.is(specText)){levels=specText}else if(def.string.is(specText)){levels=specText.split(/\s*,\s*/)}var levelSpecs=def.query(levels).select(function(levelText){var dimSpecs=groupSpec_parseGroupingLevel(levelText,type);return new pvc.data.GroupingLevelSpec(dimSpecs,type)});return new pvc.data.GroupingSpec(levelSpecs,type)};var groupSpec_matchDimSpec=/^\s*(.+?)(?:\s+(asc|desc))?\s*$/i;function groupSpec_parseGroupingLevel(groupLevelText,type){def.string.is(groupLevelText)||def.fail.argumentInvalid('groupLevelText',"Invalid grouping specification.");return def.query(groupLevelText.split(/\s*\|\s*/)).where(def.truthy).select(function(dimSpecText){var match=groupSpec_matchDimSpec.exec(dimSpecText)||def.fail.argumentInvalid('groupLevelText',"Invalid grouping level syntax '{0}'.",[dimSpecText]),name=match[1],order=(match[2]||'').toLowerCase(),reverse=order==='desc';return new pvc.data.GroupingDimensionSpec(name,reverse,type)})}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/HeatGridPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.HeatGridPlot',pvc.visual.CategoricalPlot).add({type:'heatGrid',_getOptionsDefinition:function(){return pvc.visual.HeatGridPlot.optionsDef}});pvc.visual.HeatGridPlot.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{SizeRole:{value:'size'},SizeAxis:{value:1},UseShapes:{resolve:'_resolveFull',cast:Boolean,value:false},Shape:{resolve:'_resolveFull',cast:pvc.parseShape,value:'square'},NullShape:{resolve:'_resolveFull',cast:pvc.parseShape,value:'cross'},ValuesVisible:{value:true},OrthoRole:{value:'series'},OrthoAxis:{resolve:null},NullInterpolationMode:{resolve:null,value:'none'},Stacked:{resolve:null,value:false}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Label.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Label',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Label);this.base(panel,pvMark,keyArgs)}).add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noSelect',true,'noHover',true,'noTooltip',true,'noClick',true,'noDoubleClick',true);this.base(keyArgs)},defaultColor:function(type){return pv.Color.names.black}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Legend.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.Legend',pvc.visual.OptionsBase).init(function(chart,type,index,keyArgs){keyArgs=def.set(keyArgs,'byNaked',false);this.base(chart,type,index,keyArgs)}).add({_getOptionsDefinition:function(){return legend_optionsDef}});function castSize(size){if(!def.object.is(size)){var position=this.option('Position');size=new pvc.Size().setSize(size,{singleProp:pvc.BasePanel.orthogonalLength[position]})}return size}function castAlign(align){var position=this.option('Position');return pvc.parseAlign(position,align)}var legend_optionsDef={Position:{resolve:'_resolveFull',cast:pvc.parsePosition,value:'bottom'},Size:{resolve:'_resolveFull',cast:castSize},SizeMax:{resolve:'_resolveFull',cast:castSize},Align:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){var position=this.option('Position');var align;if(position!=='top'&&position!=='bottom'){align='top'}else if(this.chart.compatVersion()<=1){align='left'}optionInfo.defaultValue(align);return true}},cast:castAlign},Margins:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){if(this.chart.compatVersion()>1){var position=this.option('Position');var margins=def.set({},pvc.BasePanel.oppositeAnchor[position],5);optionInfo.defaultValue(margins)}return true}},cast:pvc.Sides.as},Paddings:{resolve:'_resolveFull',cast:pvc.Sides.as,value:5},Font:{resolve:'_resolveFull',cast:String,value:'10px sans-serif'}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Line.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Line',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.Line);this.base(panel,pvMark,keyArgs);this.lock('segmented','smart').lock('antialias',true);if(!def.get(keyArgs,'freePosition',false)){var basePosProp=panel.isOrientationVertical()?"left":"bottom",orthoPosProp=panel.anchorOrtho(basePosProp);this._lockDynamic(orthoPosProp,'y')._lockDynamic(basePosProp,'x')}this._bindProperty('strokeStyle','strokeColor','color')._bindProperty('lineWidth','strokeWidth')}).prototype.property('strokeWidth').constructor.add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noTooltip',true);this.base(keyArgs)},y:function(){return 0},x:function(){return 0},defaultStrokeWidth:function(){return 1.5},interactiveStrokeWidth:function(strokeWidth){if(this.isActiveSeriesAware&&this.scene.isActiveSeries()){return Math.max(1,strokeWidth)*2.5}return strokeWidth},interactiveColor:function(color,type){var scene=this.scene;if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(this.isActiveSeriesAware&&scene.isActiveSeries()){return pv.Color.names.darkgray.darker().darker()}if(type==='stroke'){return this.dimColor(color,type)}}return this.base(color,type)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/LinearInterpolationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.LinearInterpolationOper').init(function(allPartsData,data,catRole,serRole,valRole,stretchEnds){this._newDatums=[];this._data=data;var allCatDataRoot=allPartsData.flattenBy(catRole,{ignoreNulls:false});var allCatDatas=allCatDataRoot._children;var serDatas1=this._serDatas1=serRole.isBound()?data.flattenBy(serRole).children().array():[null];this._isCatDiscrete=catRole.grouping.isDiscrete();this._firstCatDim=!this._isCatDiscrete?data.owner.dimensions(catRole.firstDimensionName()):null;this._stretchEnds=stretchEnds;var valDim=this._valDim=data.owner.dimensions(valRole.firstDimensionName());var visibleKeyArgs={visible:true,zeroIfNone:false};this._catInfos=allCatDatas.map(function(allCatData,catIndex){var catData=data._childrenByKey[allCatData.key];var catInfo={data:catData||allCatData,value:allCatData.value,isInterpolated:false,serInfos:null,index:catIndex};catInfo.serInfos=serDatas1.map(function(serData1){var group=catData;if(group&&serData1){group=group._childrenByKey[serData1.key]}var value=group?group.dimensions(valDim.name).sum(visibleKeyArgs):null;return{data:serData1,group:group,value:value,isNull:value==null,catInfo:catInfo}},this);return catInfo});this._serCount=serDatas1.length;this._serStates=def.range(0,this._serCount).select(function(serIndex){return new pvc.data.LinearInterpolationOperSeriesState(this,serIndex)},this).array()}).add({interpolate:function(){var catInfo;while((catInfo=this._catInfos.shift())){catInfo.serInfos.forEach(this._visitSeries,this)}var newDatums=this._newDatums;if(newDatums.length){this._data.owner.add(newDatums)}},_visitSeries:function(catSerInfo,serIndex){this._serStates[serIndex].visit(catSerInfo)},nextUnprocessedNonNullCategOfSeries:function(serIndex){var catIndex=0,catCount=this._catInfos.length;while(catIndex<catCount){var catInfo=this._catInfos[catIndex++];var catSerInfo=catInfo.serInfos[serIndex];if(!catSerInfo.isNull){return catSerInfo}}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/LinearInterpolationOperSeriesState.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.LinearInterpolationOperSeriesState').init(function(interpolation,serIndex){this.interpolation=interpolation;this.index=serIndex;this._lastNonNull(null)}).add({visit:function(catSeriesInfo){if(catSeriesInfo.isNull){this._interpolate(catSeriesInfo)}else{this._lastNonNull(catSeriesInfo)}},_lastNonNull:function(catSerInfo){if(arguments.length){this.__lastNonNull=catSerInfo;this.__nextNonNull=undefined}return this.__lastNonNull},_nextNonNull:function(){return this.__nextNonNull},_initInterpData:function(){if(this.__nextNonNull!==undefined){return}var last=this.__lastNonNull;var next=this.__nextNonNull=this.interpolation.nextUnprocessedNonNullCategOfSeries(this.index)||null;if(next&&last){var fromValue=last.value;var toValue=next.value;var deltaValue=toValue-fromValue;if(this.interpolation._isCatDiscrete){var stepCount=next.catInfo.index-last.catInfo.index;(stepCount>=2)||def.assert("Must have at least one interpolation point.");this._stepValue=deltaValue/stepCount;this._middleIndex=~~(stepCount/2); var dotCount=(stepCount-1);this._isOdd=(dotCount%2)>0}else{var fromCat=+last.catInfo.value;var toCat=+next.catInfo.value;var deltaCat=toCat-fromCat;this._steep=deltaValue/deltaCat; this._middleCat=(toCat+fromCat)/2}}},_interpolate:function(catSerInfo){this._initInterpData();var next=this.__nextNonNull;var last=this.__lastNonNull;var one=next||last;if(!one){return}var value,group;var interpolation=this.interpolation;var catInfo=catSerInfo.catInfo;if(next&&last){if(interpolation._isCatDiscrete){var groupIndex=(catInfo.index-last.catInfo.index);value=last.value+this._stepValue*groupIndex;if(this._isOdd){group=groupIndex<this._middleIndex?last.group:next.group}else{group=groupIndex<=this._middleIndex?last.group:next.group}}else{var cat=+catInfo.value;var lastCat=+last.catInfo.value;value=last.value+this._steep*(cat-lastCat);group=cat<this._middleCat?last.group:next.group}}else{if(!interpolation._stretchEnds){return}value=one.value;group=one.group}var atoms=Object.create(group._datums[0].atoms);def.copyOwn(atoms,catInfo.data.atoms);var valueAtom=interpolation._valDim.intern(value,true);atoms[valueAtom.dimension.name]=valueAtom;var newDatum=new pvc.data.Datum(group.owner,atoms);newDatum.isVirtual=true;newDatum.isInterpolated=true;newDatum.interpolation='linear';interpolation._newDatums.push(newDatum)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/MatrixTranslationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.MatrixTranslationOper',pvc.data.TranslationOper).add({_initType:function(){this.J=this.metadata.length;this.I=this.source.length;this._processMetadata();this.base()},_knownContinuousColTypes:{'numeric':1,'number':1,'integer':1},_processMetadata:function(){var knownContinColTypes=this._knownContinuousColTypes;var columns=def.query(this.metadata).select(function(colDef,colIndex){colDef.colIndex=colIndex;return colDef}).where(function(colDef){var colType=colDef.colType;return!colType||knownContinColTypes[colType.toLowerCase()]!==1}).select(function(colDef){return colDef.colIndex}).array();var columnTypes=def.array.create(this.J,1);var I=this.I;var source=this.source;var J=columns.length;for(var i=0;i<I&&J>0;i++){var row=source[i];var m=0;while(m<J){var j=columns[m];var value=row[j];if(value!=null){columnTypes[j]=this._getSourceValueType(value);columns.splice(m,1);J--}else{m++}}}this._columnTypes=columnTypes},_getSourceValueType:function(value){switch(typeof value){case'number':return 1;case'object':if(value instanceof Date){return 1}}return 0},logSource:function(){var out=["DATA SOURCE SUMMARY",pvc.logSeparator,"ROWS ("+Math.min(10,this.I)+"/"+this.I+")"];def.query(this.source).take(10).each(function(row,index){out.push(" ["+index+"] "+pvc.stringify(row))});if(this.I>10){out.push(' ...')}out.push("COLS ("+this.J+")");var colTypes=this._columnTypes;this.metadata.forEach(function(col,j){out.push(" ["+j+"] "+"'"+col.colName+"' ("+"type: "+col.colType+", "+"inspected: "+(colTypes[j]?'continuous':'discrete')+(col.colLabel?(", label: '"+col.colLabel+"'"):"")+")")});pvc.log(out.join('\n'))},_createPlot2SeriesKeySet:function(plot2SeriesIndexes,seriesKeys){var plot2SeriesKeySet=null,seriesCount=seriesKeys.length;def.query(plot2SeriesIndexes).each(function(indexText){var seriesIndex=+indexText;if(isNaN(seriesIndex)){throw def.error.argumentInvalid('plot2SeriesIndexes',"Element is not a number '{0}'.",[indexText])}if(seriesIndex<0){if(seriesIndex<=-seriesCount){throw def.error.argumentInvalid('plot2SeriesIndexes',"Index is out of range '{0}'.",[seriesIndex])}seriesIndex=seriesCount+seriesIndex}else if(seriesIndex>=seriesCount){throw def.error.argumentInvalid('plot2SeriesIndexes',"Index is out of range '{0}'.",[seriesIndex])}if(!plot2SeriesKeySet){plot2SeriesKeySet={}}plot2SeriesKeySet[seriesKeys[seriesIndex]]=true});return plot2SeriesKeySet},_dataPartGet:function(calcAxis2SeriesKeySet,seriesReader){var me=this;var dataPartDimName=this.options.dataPartDimName;var dataPartDimension,plot2SeriesKeySet,part1Atom,part2Atom,outAtomsSeries={};function dataPartGet(item,outAtoms){if(!dataPartDimension){plot2SeriesKeySet=calcAxis2SeriesKeySet();dataPartDimension=me.data.dimensions(dataPartDimName);if(pvc.debug>=3&&plot2SeriesKeySet){pvc.log("Second axis series values: "+pvc.stringify(def.keys(plot2SeriesKeySet)))}}var partAtom;seriesReader(item,outAtomsSeries);var series=outAtomsSeries.series;if(series!=null&&series.v!=null){series=series.v}if(def.hasOwn(plot2SeriesKeySet,series)){partAtom=part2Atom||(part2Atom=dataPartDimension.intern("1"))}else{partAtom=part1Atom||(part1Atom=dataPartDimension.intern("0"))}outAtoms[dataPartDimName]=partAtom}return dataPartGet}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/MetricPointChartTranslationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.MetricPointChartTranslationOper').add({_meaLayoutRoles:['x','y','color','size'],configureType:function(){var itemTypes=this._itemTypes;var V=itemTypes.length;var freeMeaIndexes=[];var freeDisIndexes=[];def.range(0,V).each(function(j){if(!this._userUsedIndexes[j]){if(itemTypes[j]===1){freeMeaIndexes.push(j)}else{freeDisIndexes.push(j)}}},this);var N;var autoDimNames=[];var F=freeMeaIndexes.length;if(F>0){var R=this._meaLayoutRoles.length;var i=0;while(i<R&&autoDimNames.length<F){this._getUnboundRoleDefaultDimNames(this._meaLayoutRoles[i],1,autoDimNames);i++}N=autoDimNames.length;if(N>0){freeMeaIndexes.length=N;this.defReader({names:autoDimNames,indexes:freeMeaIndexes})}}F=freeDisIndexes.length;if(F>0){autoDimNames.length=0;this._getUnboundRoleDefaultDimNames('series',F,autoDimNames);N=autoDimNames.length;if(N>0){freeDisIndexes.length=N;this.defReader({names:autoDimNames,indexes:freeDisIndexes})}}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/MetricPointPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.MetricPointPlot',pvc.visual.MetricXYPlot).add({type:'scatter',_getOptionsDefinition:function(){return pvc.visual.MetricPointPlot.optionsDef}});function visibleData(type){return{resolveV1:function(optionInfo){this._specifyChartOption(optionInfo,'show'+type);return true}}}pvc.visual.MetricPointPlot.optionsDef=def.create(pvc.visual.MetricXYPlot.optionsDef,{SizeRole:{resolve:'_resolveFixed',value:'size'},SizeAxis:{resolve:'_resolveFixed',value:1},Shape:{resolve:'_resolveFull',cast:pvc.parseShape,value:'circle'},DotsVisible:{resolve:'_resolveFull',data:visibleData('Dots'),cast:Boolean,value:false},LinesVisible:{resolve:'_resolveFull',data:visibleData('Lines'),cast:Boolean,value:false},ValuesAnchor:{value:'right'}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/MetricXYPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.MetricXYPlot',pvc.visual.CartesianPlot).add({_getOptionsDefinition:function(){return pvc.visual.MetricXYPlot.optionsDef}});pvc.visual.MetricXYPlot.optionsDef=def.create(pvc.visual.CartesianPlot.optionsDef,{BaseRole:{value:'x'},OrthoAxis:{resolve:null},OrthoRole:{value:'y'}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/NormalizedBarPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.NormalizedBarPlot',pvc.visual.BarPlotAbstract).add({type:'bar',_getOptionsDefinition:function(){return pvc.visual.NormalizedBarPlot.optionsDef}});pvc.visual.NormalizedBarPlot.optionsDef=def.create(pvc.visual.BarPlotAbstract.optionsDef,{Stacked:{resolve:null,value:true}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/OptionsBase.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.OptionsBase').init(function(chart,type,index,keyArgs){this.chart=chart;this.type=type;this.index=index==null?0:index;this.name=def.get(keyArgs,'name');this.id=this._buildId();this.optionId=this._buildOptionId();var rs=this._resolvers=[];this._registerResolversFull(rs,keyArgs);this.option=pvc.options(this._getOptionsDefinition(),this)}).add({_buildId:function(){return pvc.buildIndexedId(this.type,this.index)},_buildOptionId:function(){return this.id},_getOptionsDefinition:def.method({isAbstract:true}),_chartOption:function(name){return this.chart.options[name]},_registerResolversFull:function(rs,keyArgs){var fixed=def.get(keyArgs,'fixed');if(fixed){this._fixed=fixed;rs.push(pvc.options.specify(function(optionInfo){return fixed[optionInfo.name]}))}this._registerResolversNormal(rs,keyArgs);var defaults=def.get(keyArgs,'defaults');if(defaults){this._defaults=defaults}rs.push(this._resolveDefault)},_registerResolversNormal:function(rs,keyArgs){if(this.chart.compatVersion()<=1){rs.push(this._resolveByV1OnlyLogic)}if(this.name){rs.push(pvc.options.specify(function(optionInfo){return this._chartOption(this.name+def.firstUpperCase(optionInfo.name))}))}rs.push(this._resolveByOptionId);if(def.get(keyArgs,'byNaked',!this.index)){rs.push(this._resolveByNaked)}},_resolveFull:function(optionInfo){var rs=this._resolvers;for(var i=0,L=rs.length;i<L;i++){if(rs[i].call(this,optionInfo)){return true}}return false},_resolveFixed:pvc.options.specify(function(optionInfo){if(this._fixed){return this._fixed[optionInfo.name]}}),_resolveByV1OnlyLogic:function(optionInfo){var data=optionInfo.data;var resolverV1;if(data&&(resolverV1=data.resolveV1)){return resolverV1.call(this,optionInfo)}},_resolveByName:pvc.options.specify(function(optionInfo){if(this.name){return this._chartOption(this.name+def.firstUpperCase(optionInfo.name))}}),_resolveByOptionId:pvc.options.specify(function(optionInfo){return this._chartOption(this.optionId+def.firstUpperCase(optionInfo.name))}),_resolveByNaked:pvc.options.specify(function(optionInfo){if(!this.index){return this._chartOption(def.firstLowerCase(optionInfo.name))}}),_resolveDefault:function(optionInfo){var data=optionInfo.data;var resolverDefault;if(data&&(resolverDefault=data.resolveDefault)){if(resolverDefault.call(this,optionInfo)){return true}}if(this._defaults){var value=this._defaults[optionInfo.name];if(value!==undefined){optionInfo.defaultValue(value);return true}}},_specifyChartOption:function(optionInfo,asName){var value=this._chartOption(asName);if(value!=null){optionInfo.specify(value);return true}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Panel.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Panel',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvPanel=def.get(keyArgs,'panel');if(!pvPanel){var pvPanelType=def.get(keyArgs,'panelType')||pv.Panel;pvPanel=protoMark.add(pvPanelType)}this.base(panel,pvPanel,keyArgs)}).add({_addInteractive:function(keyArgs){var t=true;keyArgs=def.setDefaults(keyArgs,'noSelect',t,'noHover',t,'noTooltip',t,'noClick',t,'noDoubleClick',t);this.base(keyArgs)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/PiePlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.PiePlot',pvc.visual.Plot).add({type:'pie',_getOptionsDefinition:function(){return pvc.visual.PiePlot.optionsDef}});pvc.visual.PiePlot.optionsDef=def.create(pvc.visual.Plot.optionsDef,{ActiveSliceRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.05)},ExplodedSliceRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:0},ExplodedSliceIndex:{resolve:'_resolveFull',cast:pvc.castNumber,value:null},ValuesAnchor:{cast:pvc.parseAnchorWedge,value:'outer'},ValuesVisible:{value:true},ValuesLabelStyle:{resolve:function(optionInfo){var isV1Compat=this.chart.compatVersion()<=1;if(isV1Compat){optionInfo.specify('inside');return true}return this._resolveFull(optionInfo)},cast:function(value){switch(value){case'inside':case'linked':return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'ValuesLabelStyle' value: '"+value+"'.")}return'linked'},value:'linked'},ValuesMask:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){optionInfo.defaultValue(this.option('ValuesLabelStyle')==='linked'?"{value} ({value.percent})":"{value}");return true}}},LinkInsetRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.05)},LinkOutsetRadius:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.025)},LinkMargin:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.025)},LinkHandleWidth:{resolve:'_resolveFull',cast:pvc.castNumber,value:0.5},LinkLabelSize:{resolve:'_resolveFull',cast:pvc.PercentValue.parse,value:new pvc.PercentValue(0.15)},LinkLabelSpacingMin:{resolve:'_resolveFull',cast:pvc.castNumber,value:0.5}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/PieSlice.js
... ... @@ -1 +0,0 @@
1   -pv.PieSlice=function(){pv.Wedge.call(this)};pv.PieSlice.prototype=pv.extend(pv.Wedge);pv.PieSlice.prototype.midAngle=function(){var instance=this.instance();return instance.startAngle+(instance.angle/2)};def.type('pvc.visual.PieSlice',pvc.visual.Sign).init(function(panel,protoMark,keyArgs){var pvMark=protoMark.add(pv.PieSlice);keyArgs=def.setDefaults(keyArgs,'freeColor',false);this.base(panel,pvMark,keyArgs);this._activeOffsetRadius=def.get(keyArgs,'activeOffsetRadius',0);this._center=def.get(keyArgs,'center');this.optional('lineWidth',0.6)._bindProperty('angle','angle')._lockDynamic('bottom','y')._lockDynamic('left','x').lock('top',null).lock('right',null)}).prototype.property('offsetRadius').constructor.add({angle:function(){return 0},x:function(){return this._center.x+this._offsetSlice('cos')},y:function(){return this._center.y-this._offsetSlice('sin')},_offsetSlice:function(fun){var offset=this._getOffsetRadius();if(offset!==0){offset=offset*Math[fun](this.pvMark.midAngle())}return offset},_getOffsetRadius:function(){var offset=this.state.offsetRadius;if(offset==null){offset=(this.state.offsetRadius=this.offsetRadius()||0)}return offset},defaultColor:function(type){if(type==='stroke'){return null}return this.base(type)},interactiveColor:function(color,type){var scene=this.scene;if(scene.isActive){switch(type){case'fill':return color.brighter(0.2).alpha(0.8);case'stroke':return color.brighter(1.3).alpha(0.7)}}else if(this.showsSelection()&&scene.anySelected()&&!scene.isSelected()){if(type==='fill'){return this.dimColor(color,type)}}return this.base(color,type)},baseOffsetRadius:function(){return 0},interactiveOffsetRadius:function(offsetRadius){if(this.scene.isActive){return offsetRadius+this._activeOffsetRadius}return offsetRadius}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Plot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.Plot',pvc.visual.OptionsBase).init(function(chart,keyArgs){var typePlots=def.getPath(chart,['plotsByType',this.type]);var index=typePlots?typePlots.length:0;var globalIndex=chart.plotList.length;keyArgs=def.set(keyArgs,'byNaked',!globalIndex);this.base(chart,this.type,index,keyArgs);chart._addPlot(this);var prefixes=this.extensionPrefixes=[this.id];if(!this.globalIndex){prefixes.push('')}if(this.name){prefixes.push(this.name)}}).add({_getOptionsDefinition:function(){return pvc.visual.Plot.optionsDef},_resolveByNaked:pvc.options.specify(function(optionInfo){if(!this.globalIndex){return this._chartOption(def.firstLowerCase(optionInfo.name))}})});pvc.visual.Plot.optionsDef={Orientation:{resolve:function(optionInfo){optionInfo.specify(this._chartOption('orientation')||'vertical');return true},cast:String},ValuesVisible:{resolve:'_resolveFull',data:{resolveV1:function(optionInfo){if(this.globalIndex===0){var show=this._chartOption('showValues');if(show!==undefined){optionInfo.specify(show)}else{show=this.type!=='point';optionInfo.defaultValue(show)}return true}}},cast:Boolean,value:false},ValuesAnchor:{resolve:'_resolveFull',cast:pvc.parseAnchor},ValuesFont:{resolve:'_resolveFull',cast:String,value:'10px sans-serif'},ValuesMask:{resolve:'_resolveFull',cast:String,value:"{value}"},DataPart:{resolve:'_resolveFixed',cast:String,value:'0'},ColorRole:{resolve:'_resolveFixed',cast:String,value:'color'},ColorAxis:{resolve:pvc.options.resolvers([function(optionInfo){if(this.globalIndex===0){optionInfo.specify(1);return true}},'_resolveFull']),cast:function(value){value=pvc.castNumber(value);if(value!=null){value=def.between(value,1,10)}else{value=1}return value},value:1}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/PointPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.PointPlot',pvc.visual.CategoricalPlot).add({type:'point',_getOptionsDefinition:function(){return pvc.visual.PointPlot.optionsDef}});function visibleData(type,dv){return{resolveV1:function(optionInfo){if(this.globalIndex===0){if(!this._specifyChartOption(optionInfo,'show'+type)){optionInfo.defaultValue(dv)}return true}}}}pvc.visual.PointPlot.optionsDef=def.create(pvc.visual.CategoricalPlot.optionsDef,{DotsVisible:{resolve:'_resolveFull',data:visibleData('Dots',true),cast:Boolean,value:false},LinesVisible:{resolve:'_resolveFull',data:visibleData('Lines',true),cast:Boolean,value:false},AreasVisible:{resolve:'_resolveFull',data:visibleData('Areas',false),cast:Boolean,value:false},ValuesAnchor:{value:'right'}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/RelationalTranslationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.RelationalTranslationOper',pvc.data.MatrixTranslationOper).add({M:0,C:0,S:0,_processMetadata:function(){this.base();var metadata=this.metadata;var J=this.J;var C=this.options.categoriesCount;if(C!=null&&(!isFinite(C)||C<0)){C=0}var S;var valuesColIndexes,M;if(this.options.isMultiValued){valuesColIndexes=pvc.parseDistinctIndexArray(this.options.measuresIndexes,J-1);M=valuesColIndexes?valuesColIndexes.length:0}var D;if(M==null){if(J>0&&J<=3&&(C==null||C===1)&&S==null){M=1;valuesColIndexes=[J-1];C=J>=2?1:0;S=J>=3?1:0;D=C+S}else if(C!=null&&C>=J){D=J;C=J;S=0;M=0}else{var Mmax=C!=null?(J-C):Infinity;valuesColIndexes=def.query(metadata).where(function(colDef,index){return this._columnTypes[index]!==0},this).select(function(colDef){return colDef.colIndex}).take(Mmax).array();M=valuesColIndexes.length}}if(D==null){D=J-M;if(D===0){S=C=0}else if(C!=null){if(C>D){C=D;S=0}else{S=D-C}}else{S=D>1?1:0;C=D-S}}var seriesInRows=this.options.seriesInRows;var colGroupSpecs=[];if(D){if(S&&!seriesInRows){colGroupSpecs.push({name:'S',count:S})}if(C){colGroupSpecs.push({name:'C',count:C})}if(S&&seriesInRows){colGroupSpecs.push({name:'S',count:S})}}if(M){colGroupSpecs.push({name:'M',count:M})}var availableInputIndexes=def.range(0,J).array();if(valuesColIndexes){valuesColIndexes.forEach(function(inputIndex){availableInputIndexes.splice(inputIndex,1)})}var specsByName={};colGroupSpecs.forEach(function(groupSpec){var count=groupSpec.count;var name=groupSpec.name;specsByName[name]=groupSpec;if(valuesColIndexes&&name==='M'){groupSpec.indexes=valuesColIndexes}else{groupSpec.indexes=availableInputIndexes.splice(0,count)}},this);this.M=M;this.S=S;this.C=C;var itemPerm=[];['S','C','M'].forEach(function(name){var groupSpec=specsByName[name];if(groupSpec){def.array.append(itemPerm,groupSpec.indexes)}});var colTypes=this._columnTypes;this._itemTypes=itemPerm.map(function(index){return colTypes[index]});this._itemCrossGroupIndex={S:0,C:this.S,M:this.S+this.C};this._itemPerm=itemPerm;if(pvc.debug>=3){var out=["RELATIONAL TRANSLATOR MAPPING",pvc.logSeparator,"["+colGroupSpecs.map(function(groupSpec){return def.array.create(groupSpec.count,groupSpec.name).join('')}).join(' ')+"]"];pvc.log(out.join("\n"))}},_configureTypeCore:function(){var me=this;var index=0;var dimsReaders=[];function add(dimGroupName,colGroupName,level,count){var groupEndIndex=me._itemCrossGroupIndex[colGroupName]+count;while(count>0){var dimName=pvc.buildIndexedId(dimGroupName,level);if(!me.complexTypeProj.isReadOrCalc(dimName)){index=me._nextAvailableItemIndex(index);if(index>=groupEndIndex){return}dimsReaders.push({names:dimName,indexes:index});index++;count--}level++}}if(this.S>0){add('series','S',0,this.S)}if(this.C>0){add('category','C',0,this.C)}if(this.M>0){add('value','M',0,this.M)}if(dimsReaders){dimsReaders.forEach(this.defReader,this)}var plot2SeriesIndexes=this.options.plot2SeriesIndexes;if(plot2SeriesIndexes!=null){var seriesReader=this._userDimsReadersByDim.series;if(seriesReader){var dataPartDimName=this.options.dataPartDimName;this._userRead(relTransl_dataPartGet.call(this,plot2SeriesIndexes,seriesReader),dataPartDimName)}}},_executeCore:function(){var dimsReaders=this._getDimensionsReaders();var permIndexes=this._itemPerm;return def.query(this._getItems()).select(function(item){item=pv.permute(item,permIndexes);return this._readItem(item,dimsReaders)},this)}});function relTransl_dataPartGet(plot2SeriesIndexes,seriesReader){var me=this;function calcAxis2SeriesKeySet(){var atoms={};var seriesKeys=def.query(me.source).select(function(item){seriesReader(item,atoms);var value=atoms.series;if(value!=null&&value.v!=null){value=value.v}return value||null}).distinct().array();return me._createPlot2SeriesKeySet(plot2SeriesIndexes,seriesKeys)}return this._dataPartGet(calcAxis2SeriesKeySet,seriesReader)}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Role.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Role').init(function(name,keyArgs){this.name=name;this.label=def.get(keyArgs,'label')||pvc.buildTitleFromName(name);this.index=def.get(keyArgs,'index')||0;this.dimensionDefaults=def.get(keyArgs,'dimensionDefaults')||{};if(def.get(keyArgs,'isRequired',false)){this.isRequired=true}if(def.get(keyArgs,'autoCreateDimension',false)){this.autoCreateDimension=true}var defaultSourceRoleName=def.get(keyArgs,'defaultSourceRole');if(defaultSourceRoleName){this.defaultSourceRoleName=defaultSourceRoleName}var defaultDimensionName=def.get(keyArgs,'defaultDimension');if(defaultDimensionName){this.defaultDimensionName=defaultDimensionName}if(!defaultDimensionName&&this.autoCreateDimension){throw def.error.argumentRequired('defaultDimension')}var requireSingleDimension;var requireIsDiscrete=def.get(keyArgs,'requireIsDiscrete');if(requireIsDiscrete!=null){if(!requireIsDiscrete){requireSingleDimension=true}}if(requireSingleDimension!=null){requireSingleDimension=def.get(keyArgs,'requireSingleDimension',false);if(requireSingleDimension){if(def.get(keyArgs,'isMeasure',false)){this.isMeasure=true;if(def.get(keyArgs,'isPercent',false)){this.isPercent=true}}var valueType=def.get(keyArgs,'valueType',null);if(valueType!==this.valueType){this.valueType=valueType;this.dimensionDefaults.valueType=valueType}}}if(requireSingleDimension!==this.requireSingleDimension){this.requireSingleDimension=requireSingleDimension}if(requireIsDiscrete!=this.requireIsDiscrete){this.requireIsDiscrete=!!requireIsDiscrete;this.dimensionDefaults.isDiscrete=this.requireIsDiscrete}var flatteningMode=def.get(keyArgs,'flatteningMode');if(flatteningMode&&flatteningMode!=this.flatteningMode){this.flatteningMode=flatteningMode}}).add({isRequired:false,requireSingleDimension:false,valueType:null,requireIsDiscrete:null,isMeasure:false,isPercent:false,defaultSourceRoleName:null,defaultDimensionName:null,grouping:null,flatteningMode:'singleLevel',flattenRootLabel:'',autoCreateDimension:false,isReversed:false,label:null,sourceRole:null,firstDimensionType:function(){var g=this.grouping;return g&&g.firstDimensionType()},firstDimensionName:function(){var g=this.grouping;return g&&g.firstDimensionName()},firstDimensionValueType:function(){var g=this.grouping;return g&&g.firstDimensionValueType()},isDiscrete:function(){var g=this.grouping;return g&&g.isDiscrete()},setSourceRole:function(sourceRole){this.sourceRole=sourceRole},setIsReversed:function(isReversed){if(!isReversed){delete this.isReversed}else{this.isReversed=true}},setFlatteningMode:function(flatteningMode){if(!flatteningMode||flatteningMode==='singleLevel'){delete this.flatteningMode}else{this.flatteningMode=flatteningMode}},setFlattenRootLabel:function(flattenRootLabel){if(!flattenRootLabel){delete this.flattenRootLabel}else{this.flattenRootLabel=flattenRootLabel}},flatten:function(data,keyArgs){if(this.grouping){return data.flattenBy(this,keyArgs)}},flattenedGrouping:function(keyArgs){var grouping=this.grouping;if(grouping){keyArgs=def.setDefaults(keyArgs,'flatteningMode',this.flatteningMode,'flattenRootLabel',this.flattenRootLabel);return grouping.ensure(keyArgs)}},select:function(data,keyArgs){var grouping=this.grouping;if(grouping){return data.groupBy(grouping.ensure(keyArgs),keyArgs)}},view:function(complex){var grouping=this.grouping;if(grouping){return grouping.view(complex)}},preBind:function(groupingSpec){this.__grouping=groupingSpec;return this},isPreBound:function(){return!!this.__grouping},preBoundGrouping:function(){return this.__grouping},isBound:function(){return!!this.grouping},postBind:function(type){var grouping=this.__grouping;if(grouping){delete this.__grouping;grouping.bind(type);this.bind(grouping)}return this},bind:function(groupingSpec){if(groupingSpec){if(groupingSpec.isNull()){groupingSpec=null}else{if(this.requireSingleDimension&&!groupingSpec.isSingleDimension){throw def.error.operationInvalid("Role '{0}' only accepts a single dimension.",[this.name])}var valueType=this.valueType;var requireIsDiscrete=this.requireIsDiscrete;groupingSpec.dimensions().each(function(dimSpec){var dimType=dimSpec.type;if(valueType&&dimType.valueType!==valueType){throw def.error.operationInvalid("Role '{0}' cannot be bound to dimension '{1}'. \nIt only accepts dimensions of type '{2}' and not of type '{3}'.",[this.name,dimType.name,pvc.data.DimensionType.valueTypeName(valueType),dimType.valueTypeName])}if(requireIsDiscrete!=null&&dimType.isDiscrete!==requireIsDiscrete){if(requireIsDiscrete){dimType._toDiscrete()}else{throw def.error.operationInvalid("Role '{0}' cannot be bound to dimension '{1}'. \nIt only accepts {2} dimensions.",[this.name,dimType.name,requireIsDiscrete?'discrete':'continuous'])}}},this)}}if(this.grouping){this.grouping.dimensions().each(function(dimSpec){if(dimSpec.type){dimType_removeVisualRole.call(dimSpec.type,this)}},this)}this.grouping=groupingSpec;if(this.grouping){if(this.isReversed){this.grouping=this.grouping.reversed()}this.grouping.dimensions().each(function(dimSpec){dimType_addVisualRole.call(dimSpec.type,this)},this)}return this}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Rule.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Rule',pvc.visual.Sign).init(function(panel,parentMark,keyArgs){var pvMark=parentMark.add(pv.Rule);var protoMark=def.get(keyArgs,'proto');if(protoMark){pvMark.extend(protoMark)}this.base(panel,pvMark,keyArgs);if(!def.get(keyArgs,'freeStyle')){this._bindProperty('strokeStyle','strokeColor','color')._bindProperty('lineWidth','strokeWidth')}}).prototype.property('strokeWidth').constructor.add({_addInteractive:function(keyArgs){keyArgs=def.setDefaults(keyArgs,'noHover',true,'noSelect',true,'noTooltip',true,'noClick',true,'noDoubleClick',true);this.base(keyArgs)},defaultStrokeWidth:function(){return 1},interactiveStrokeWidth:function(strokeWidth){if(this.scene.isActive){return Math.max(1,strokeWidth)*2.2}return strokeWidth},interactiveColor:function(color,type){var scene=this.scene;if(!scene.isActive&&this.showsSelection()&&scene.anySelected()&&scene.datum&&!scene.isSelected()){return this.dimColor(color,type)}return this.base(color,type)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Scene.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Scene').init(function(parent,keyArgs){if(pvc.debug>=4){this.id=def.nextId('scene')}this._renderId=0;this.renderState={};pv.Dom.Node.call(this,null);this.parent=parent||null;this.root=this;if(parent){var index=def.get(keyArgs,'index',null);parent.insertAt(this,index);this.root=parent.root}else{this._active=null;this._panel=def.get(keyArgs,'panel')||def.fail.argumentRequired('panel',"Argument is required on root scene.")}var group=def.get(keyArgs,'group',null),datum;if(group){datum=group._datums[0]}else{datum=def.get(keyArgs,'datum')}this.datum=datum||null;this.group=group;var parentAtoms;var source=(group||datum);this.atoms=source?source.atoms:(parentAtoms=(parent&&parent.atoms))?Object.create(parentAtoms):{};source=(datum||group);this.firstAtoms=source?source.atoms:(parentAtoms=(parent&&parent.firstAtoms))?Object.create(parentAtoms):this.atoms;if(!source){this.isNull=true}this.vars=parent?Object.create(parent.vars):{}}).add(pv.Dom.Node).add({isNull:false,datums:function(){return this.group?this.group.datums():(this.datum?def.query(this.datum):def.query())},format:function(mask){return def.format(mask,this._formatScope,this)},_formatScope:function(prop){if(prop.charAt(0)==='#'){prop=prop.substr(1).split('.');if(prop.length>2){throw def.error.operationInvalid("Scene format mask is invalid.")}var atom=this.atoms[prop[0]];if(atom){if(prop.length>1){switch(prop[1]){case'value':return atom.value;case'label':break;default:throw def.error.operationInvalid("Scene format mask is invalid.")}}return atom}return null}return def.getPath(this.vars,prop)},isRoot:function(){return this.root===this},panel:function(){return this.root._panel},chart:function(){return this.root._panel.chart},compatVersion:function(){return this.root._panel.compatVersion()},children:function(){if(!this.childNodes){return def.query()}return def.query(this.childNodes)},leafs:function(){function getFirstLeafFrom(leaf){while(leaf.childNodes.length){leaf=leaf.childNodes[0]}return leaf}var root=this;return def.query(function(nextIndex){if(!nextIndex){var item=getFirstLeafFrom(root);if(item===root){return 0}this.item=item;return 1}var next=this.item.nextSibling;if(next){this.item=next;return 1}var current=this.item;while((current!==root)&&(current=current.parentNode)){if((next=current.nextSibling)){this.item=getFirstLeafFrom(next);return 1}}return 0})},anyInteraction:function(){return(!!this.root._active||this.anySelected())},isActive:false,setActive:function(isActive){isActive=!!isActive;if(this.isActive!==isActive){rootScene_setActive.call(this.root,this.isActive?null:this)}},clearActive:function(){return rootScene_setActive.call(this.root,null)},anyActive:function(){return!!this.root._active},active:function(){return this.root._active},activeSeries:function(){var active=this.active();var seriesVar;return active&&(seriesVar=active.vars.series)&&seriesVar.value},isActiveSeries:function(){if(this.isActive){return true}var activeSeries;return(activeSeries=this.activeSeries())!=null&&(activeSeries===this.vars.series.value)},isSelected:function(){return this._selectedData().is},anySelected:function(){return this._selectedData().any},_selectedData:function(){return this.renderState._selectedData||(this.renderState._selectedData=this._createSelectedData())},_createSelectedData:function(){var any=this.panel().chart.data.owner.selectedCount()>0,isSelected=any&&this.datums().any(function(datum){return datum.isSelected});return{any:any,is:isSelected}}});function scene_renderId(renderId){if(this._renderId!==renderId){if(pvc.debug>=20){pvc.log({sceneId:this.id,oldRenderId:this._renderId,newRenderId:renderId})}this._renderId=renderId;this.renderState={}}}function rootScene_setActive(scene){var ownerScene;if(scene&&(ownerScene=scene.ownerScene)){scene=ownerScene}if(this._active!==scene){if(this._active){scene_setActive.call(this._active,false)}this._active=scene||null;if(this._active){scene_setActive.call(this._active,true)}return true}return false}function scene_setActive(isActive){isActive=!!isActive;if(this.isActive!==isActive){if(!isActive){delete this.isActive}else{this.isActive=true}}}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Sign.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.Sign',pvc.visual.BasicSign).init(function(panel,pvMark,keyArgs){this.base(panel,pvMark,keyArgs);this.bits=0;var extensionIds=def.get(keyArgs,'extensionId');if(extensionIds!=null){this.extensionAbsIds=def.array.to(panel._makeExtensionAbsId(extensionIds))}this.isActiveSeriesAware=def.get(keyArgs,'activeSeriesAware',true)&&!!this.chart.visualRoles('series',{assertExists:false});var wrapper=def.get(keyArgs,'wrapper');if(!wrapper){wrapper=function(f){return function(scene){return f.call(panel._getContext(pvMark),scene)}}}pvMark.wrapper(wrapper);if(!def.get(keyArgs,'freeColor',true)){this._bindProperty('fillStyle','fillColor','color')._bindProperty('strokeStyle','strokeColor','color')}}).postInit(function(panel,pvMark,keyArgs){panel._addSign(this);this._addInteractive(keyArgs)}).add({property:function(name){var upperName=def.firstUpperCase(name);var baseName='base'+upperName;var defName='default'+upperName;var normalName='normal'+upperName;var interName='interactive'+upperName;var methods={};methods[name]=function(arg){delete this._finished;var value;this._arg=arg;try{value=this[baseName](arg);if(value==null){return null}if(this.hasOwnProperty('_finished')){return value}if(this.showsInteraction()&&this.scene.anyInteraction()){value=this[interName](value,arg)}else{value=this[normalName](value,arg)}}finally{delete this._arg}return value};methods[baseName]=function(arg){return this.delegateExtension()};methods[defName]=function(arg){return};methods[normalName]=function(value,arg){return value};methods[interName]=function(value,arg){return value};this.constructor.add(methods);return this},finished:function(value){this._finished=true;return value},applyExtensions:function(){if(!this._extended){this._extended=true;var extensionAbsIds=this.extensionAbsIds;if(extensionAbsIds){extensionAbsIds.forEach(function(extensionAbsId){this.panel.extendAbs(this.pvMark,extensionAbsId)},this)}}return this},intercept:function(name,fun){return this._intercept(name,fun.bind(this))},lockDimensions:function(){this.pvMark.lock('left').lock('right').lock('top').lock('bottom').lock('width').lock('height');return this},_extensionKeyArgs:{tag:pvc.extensionTag},_bindProperty:function(pvName,prop,realProp){var me=this;if(!realProp){realProp=prop}var defaultPropName="default"+def.firstUpperCase(realProp);if(def.fun.is(this[defaultPropName])){if(!this.pvMark.hasDelegateValue(pvName,pvc.extensionTag)){var defaultMethodCaller=function(){return me[defaultPropName](me._arg)};this.pvMark.intercept(pvName,defaultMethodCaller,this._extensionKeyArgs)}}function mainMethodCaller(){return me[prop]()}return this._intercept(pvName,mainMethodCaller)},_intercept:function(name,fun){var mark=this.pvMark;var extensionAbsIds=this.extensionAbsIds;if(extensionAbsIds){def.query(extensionAbsIds).select(function(extensionAbsId){return this.panel._getExtensionAbs(extensionAbsId,name)},this).where(def.notUndef).each(function(extValue){extValue=mark.wrap(extValue,name);mark.intercept(name,extValue,this._extensionKeyArgs)},this)}(mark._intercepted||(mark._intercepted={}))[name]=true;mark.intercept(name,fun);return this}}).prototype.property('color').constructor.add({_bitShowsActivity:2,_bitShowsSelection:4,_bitShowsInteraction:4|2,_bitShowsTooltip:8,_bitSelectable:16,_bitHoverable:32,_bitClickable:64,_bitDoubleClickable:128,showsInteraction:function(){return(this.bits&this._bitShowsInteraction)!==0},showsActivity:function(){return(this.bits&this._bitShowsActivity)!==0},showsSelection:function(){return(this.bits&this._bitShowsSelection)!==0},showsTooltip:function(){return(this.bits&this._bitShowsTooltip)!==0},isSelectable:function(){return(this.bits&this._bitSelectable)!==0},isHoverable:function(){return(this.bits&this._bitHoverable)!==0},isClickable:function(){return(this.bits&this._bitClickable)!==0},isDoubleClickable:function(){return(this.bits&this._bitDoubleClickable)!==0},extensionAbsIds:null,_addInteractive:function(keyArgs){var panel=this.panel,pvMark=this.pvMark,chart=this.chart,options=chart.options;var bits=this.bits;bits|=this._bitShowsInteraction;if(chart._tooltipEnabled&&!def.get(keyArgs,'noTooltip')){bits|=this._bitShowsTooltip;this.panel._addPropTooltip(pvMark,def.get(keyArgs,'tooltipArgs'))}var clickSelectable=false;var clickable=false;if(options.selectable||options.hoverable){if(options.selectable&&!def.get(keyArgs,'noSelect')){bits|=this._bitSelectable;clickSelectable=!def.get(keyArgs,'noClickSelect')&&chart._canSelectWithClick()}if(options.hoverable&&!def.get(keyArgs,'noHover')){bits|=this._bitHoverable;panel._addPropHoverable(pvMark)}}var showsInteraction=def.get(keyArgs,'showsInteraction');if(showsInteraction!=null){if(showsInteraction){bits|=this._bitShowsInteraction}else{bits&=~this._bitShowsInteraction}}var showsActivity=def.get(keyArgs,'showsActivity');if(showsActivity!=null){if(showsActivity){bits|=this._bitShowsActivity}else{bits&=~this._bitShowsActivity}}var showsSelection=def.get(keyArgs,'showsSelection');if(showsSelection!=null){if(showsSelection){bits|=this._bitShowsSelection}else{bits&=~this._bitShowsSelection}}if(!def.get(keyArgs,'noClick')&&panel._isClickable()){bits|=this._bitClickable;clickable=true}if(clickSelectable||clickable){panel._addPropClick(pvMark)}if(!def.get(keyArgs,'noDoubleClick')&&panel._isDoubleClickable()){bits|=this._bitDoubleClickable;panel._addPropDoubleClick(pvMark)}this.bits=bits},fillColor:function(){return this.color('fill')},strokeColor:function(){return this.color('stroke')},defaultColor:function(){return this.defaultColorSceneScale()(this.scene)},dimColor:function(color){return pvc.toGrayScale(color,-0.3,null,null)},_initDefaultColorSceneScale:function(){var colorAxis=this.panel.axes.color;return colorAxis?colorAxis.sceneScale({nullToZero:false}):def.fun.constant(pvc.defaultColor)},defaultColorSceneScale:function(){return this._defaultColorSceneScale||(this._defaultColorSceneScale=this._initDefaultColorSceneScale())}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/SizeAxis.js
... ... @@ -1 +0,0 @@
1   -var sizeAxis_optionsDef;def.scope(function(){def.type('pvc.visual.SizeAxis',pvc.visual.Axis).init(function(chart,type,index,keyArgs){keyArgs=def.set(keyArgs,'byNaked',false);this.base(chart,type,index,keyArgs)}).add({scaleTreatsNullAs:function(){return'min'},scaleUsesAbs:function(){return this.option('UseAbs')},setScaleRange:function(range){var scale=this.scale;scale.min=range.min;scale.max=range.max;scale.size=range.max-range.min;scale.range(scale.min,scale.max);if(pvc.debug>=4){pvc.log("Scale: "+pvc.stringify(def.copyOwn(scale)))}return this},_getOptionsDefinition:function(){return sizeAxis_optionsDef}});sizeAxis_optionsDef=def.create(axis_optionsDef,{OriginIsZero:{resolve:'_resolveFull',cast:Boolean,value:false},FixedMin:{resolve:'_resolveFull',cast:pvc.castNumber},FixedMax:{resolve:'_resolveFull',cast:pvc.castNumber},UseAbs:{resolve:'_resolveFull',cast:Boolean,value:false}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/TranslationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.TranslationOper').init(function(chart,complexTypeProj,source,metadata,options){this.chart=chart;this.complexTypeProj=complexTypeProj;this.source=source;this.metadata=metadata||{};this.options=options||{};this._initType();if(pvc.debug>=4){this._logItems=true;this._logItemCount=0}}).add({_logItems:false,logSource:def.method({isAbstract:true}),virtualItemSize:function(){return this.metadata.length},freeVirtualItemSize:function(){return this.virtualItemSize()-this._userUsedIndexesCount},defReader:function(dimReaderSpec){dimReaderSpec||def.fail.argumentRequired('readerSpec');var dimNames;if(typeof dimReaderSpec==='string'){dimNames=dimReaderSpec}else{dimNames=dimReaderSpec.names}if(typeof dimNames==='string'){dimNames=dimNames.split(/\s*\,\s*/)}else{dimNames=def.array.as(dimNames)}var indexes=def.array.as(dimReaderSpec.indexes);if(indexes){indexes.forEach(this._userUseIndex,this)}var hasDims=!!(dimNames&&dimNames.length);var reader=dimReaderSpec.reader;if(!reader){if(hasDims){return this._userCreateReaders(dimNames,indexes)}}else{hasDims||def.fail.argumentRequired('reader.names',"Required argument when a reader function is specified.");this._userRead(reader,dimNames)}return indexes},configureType:function(){this._configureTypeCore()},_configureTypeCore:def.method({isAbstract:true}),_initType:function(){this._userDimsReaders=[];this._userDimsReadersByDim={};this._userItem=[];this._userUsedIndexes={};this._userUsedIndexesCount=0;var userDimReaders=this.options.readers;if(userDimReaders){userDimReaders.forEach(this.defReader,this)}var multiChartIndexes=pvc.parseDistinctIndexArray(this.options.multiChartIndexes);if(multiChartIndexes){this._multiChartIndexes=this.defReader({names:'multiChart',indexes:multiChartIndexes})}},_userUseIndex:function(index){index=+index;(index>=0)||def.fail.argumentInvalid('index',"Invalid reader index: '{0}'.",[index]);!def.hasOwn(this._userUsedIndexes,index)||def.fail.argumentInvalid('index',"Virtual item index '{0}' is already assigned.",[index]);this._userUsedIndexes[index]=true;this._userUsedIndexesCount++;this._userItem[index]=true;return index},_userCreateReaders:function(dimNames,indexes){if(!indexes){indexes=[]}else{indexes.forEach(function(index,j){indexes[j]=+index})}var I=indexes.length,N=dimNames.length,dimName;if(N>I){var nextIndex=I>0?(indexes[I-1]+1):0;do{nextIndex=this._nextAvailableItemIndex(nextIndex);indexes[I]=nextIndex;this._userUseIndex(nextIndex);I++}while(N>I)}var L=(I===N)?N:(N-1);for(var n=0;n<L;n++){dimName=dimNames[n];this._userRead(this._propGet(dimName,indexes[n]),dimName)}if(L<N){var splitGroupName=pvc.splitIndexedId(dimNames[N-1]),groupName=splitGroupName[0],level=def.nullyTo(splitGroupName[1],0);for(var i=L;i<I;i++,level++){dimName=pvc.buildIndexedId(groupName,level);this._userRead(this._propGet(dimName,indexes[i]),dimName)}}return indexes},_userRead:function(reader,dimNames){def.fun.is(reader)||def.fail.argumentInvalid('reader',"Reader must be a function.");if(def.array.is(dimNames)){dimNames.forEach(function(name){this._readDim(name,reader)},this)}else{this._readDim(dimNames,reader)}this._userDimsReaders.push(reader)},_readDim:function(name,reader){this.complexTypeProj.readDim(name);this._userDimsReadersByDim[name]=reader},execute:function(data){this.data=data;return this._executeCore()},_executeCore:function(){var dimsReaders=this._getDimensionsReaders();return def.query(this._getItems()).select(function(item){return this._readItem(item,dimsReaders)},this)},_getItems:function(){return this.source},_getDimensionsReaders:function(){return this._userDimsReaders},_readItem:function(item,dimsReaders){var logItem=this._logItems;if(logItem){var logItemCount=this._logItemCount;if(logItemCount<10){pvc.log('virtual item ['+this._logItemCount+']: '+pvc.stringify(item));this._logItemCount++}else{pvc.log('...');logItem=this._logItems=false}}var r=0,R=dimsReaders.length,a=0,data=this.data,valuesByDimName={};while(r<R){dimsReaders[r++].call(data,item,valuesByDimName)}if(logItem){var atoms={};for(var dimName in valuesByDimName){var atom=valuesByDimName[dimName];if(def.object.is(atom)){atom=('v'in atom)?atom.v:('value'in atom)?atom.value:'...'}atoms[dimName]=atom}pvc.log('-> read: '+pvc.stringify(atoms))}return valuesByDimName},_propGet:function(dimName,prop){function propGet(item,atoms){atoms[dimName]=item[prop]}return propGet},_constGet:function(dimName,constRawValue,keyArgs){var me=this,constAtom;function constGet(item,atoms){atoms[dimName]=constAtom||(constAtom=me.data.dimensions(dimName).intern(constRawValue))}return constGet},_nextAvailableItemIndex:function(index,L){if(index==null){index=0}if(L==null){L=Infinity}while(index<L&&def.hasOwn(this._userItem,index)){index++}return index<L?index:-1},_getUnboundRoleDefaultDimNames:function(roleName,count,dims,level){var role=this.chart.visualRoles(roleName,{assertExists:false});if(role&&!role.isPreBound()){var dimGroupName=role.defaultDimensionName;if(dimGroupName){dimGroupName=dimGroupName.match(/^(.*?)(\*)?$/)[1];if(!dims){dims=[]}if(level==null){level=0}if(count==null){count=1}while(count--){var dimName=pvc.buildIndexedId(dimGroupName,level++);if(!this.complexTypeProj.isReadOrCalc(dimName)){dims.push(dimName)}}return dims.length?dims:null}}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/Var.js
... ... @@ -1 +0,0 @@
1   -pvc.visual.ValueLabelVar=function(value,label,rawValue){this.value=value;this.label=label;if(rawValue!==undefined){this.rawValue=rawValue}};def.set(pvc.visual.ValueLabelVar.prototype,'rawValue',undefined,'clone',function(){return new pvc.visual.ValueLabelVar(this.value,this.label,this.rawValue)},'toString',function(){var label=this.label||this.value;return typeof label!=='string'?(''+label):label});pvc.visual.ValueLabelVar.fromComplex=function(complex){return complex?new pvc.visual.ValueLabelVar(complex.value,complex.label,complex.rawValue):new pvc.visual.ValueLabelVar(null,"",null)};def.type('pvc.visual.RoleVarHelper').init(function(rootScene,role,keyArgs){var g;var hasPercentSubVar=def.get(keyArgs,'hasPercentSubVar',false);if(!def.get(keyArgs,'forceUnbound',false)){this.role=role;this.sourceRoleName=role.sourceRole&&role.sourceRole.name;g=this.grouping=role.grouping;if(g&&!g.isDiscrete()){var panel=rootScene.panel();this.rootContDim=panel.data.owner.dimensions(g.firstDimensionName());if(hasPercentSubVar){this.percentFormatter=panel.chart.options.percentValueFormat}}}if(!g){var roleVar=rootScene.vars[role.name]=new pvc.visual.ValueLabelVar(null,"");if(hasPercentSubVar){roleVar.percent=new pvc.visual.ValueLabelVar(null,"")}}}).add({isBound:function(){return!!this.grouping},onNewScene:function(scene,isLeaf){if(!this.grouping){return}var roleName=this.role.name;if(scene.vars[roleName]){return}var sourceName=this.sourceRoleName;if(sourceName){var sourceVar=def.getOwn(scene.vars,sourceName);if(sourceVar){scene.vars[roleName]=sourceVar.clone();return}}if(isLeaf){var roleVar;var rootContDim=this.rootContDim;if(!rootContDim){var firstDatum=scene.datum;if(firstDatum&&!firstDatum.isNull){var view=this.grouping.view(firstDatum);roleVar=new pvc.visual.ValueLabelVar(view.value,view.label,view.rawValue)}}else{var group=scene.group;var singleDatum=group?group.singleDatum():scene.datum;if(singleDatum){if(!singleDatum.isNull){roleVar=Object.create(singleDatum.atoms[rootContDim.name])}}else if(group){var valueDim=group.dimensions(rootContDim.name);var value=valueDim.sum({visible:true,zeroIfNone:false});var label=rootContDim.format(value);roleVar=new pvc.visual.ValueLabelVar(value,label,value);if(this.percentFormatter){if(value==null){roleVar.percent=new pvc.visual.ValueLabelVar(value,label)}else{var valuePct=valueDim.percentOverParent({visible:true});roleVar.percent=new pvc.visual.ValueLabelVar(valuePct,this.percentFormatter.call(null,valuePct))}}}}scene.vars[roleName]=roleVar||new pvc.visual.ValueLabelVar(null,"")}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/WaterfallBulletGroupScene.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.visual.legend.WaterfallBulletGroupScene',pvc.visual.Scene).init(function(rootScene,keyArgs){this.base(rootScene,keyArgs);this.extensionPrefix=def.get(keyArgs,'extensionPrefix')||'';var item=this.createItem({value:null,rawValue:null,label:def.get(keyArgs,'label')});item.color=def.get(keyArgs,'color')}).add({hasRenderer:function(){return this._renderer},renderer:function(renderer){if(renderer!=null){this._renderer=renderer}return this._renderer},itemSceneType:function(){var ItemType=this._itemSceneType;if(!ItemType){ItemType=def.type(pvc.visual.legend.BulletItemScene);this.panel()._extendSceneType('item',ItemType,['isOn','isClickable','click']);this._itemSceneType=ItemType}return ItemType},createItem:function(keyArgs){var ItemType=this.itemSceneType();return new ItemType(this,keyArgs)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/WaterfallPlot.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){def.type('pvc.visual.WaterfallPlot',pvc.visual.BarPlotAbstract).add({type:'water',_getOptionsDefinition:function(){return pvc.visual.WaterfallPlot.optionsDef}});pvc.visual.WaterfallPlot.optionsDef=def.create(pvc.visual.BarPlotAbstract.optionsDef,{Stacked:{resolve:null,value:true},TotalLineLabel:{resolve:'_resolveFull',cast:String,value:"Accumulated"},TotalValuesVisible:{resolve:'_resolveFull',data:{resolveDefault:function(optionInfo){optionInfo.defaultValue(this.option('ValuesVisible'));return true}},cast:Boolean},Direction:{resolve:'_resolveFull',cast:pvc.parseWaterDirection,value:'down'},AreasVisible:{resolve:'_resolveFull',cast:Boolean,value:true},AllCategoryLabel:{resolve:'_resolveFull',cast:String,value:"All"}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/ZeroInterpolationOper.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.ZeroInterpolationOper').init(function(allPartsData,data,catRole,serRole,valRole,stretchEnds){this._newDatums=[];this._data=data;var allCatDataRoot=allPartsData.flattenBy(catRole,{ignoreNulls:false});var allCatDatas=allCatDataRoot._children;var serDatas1=this._serDatas1=serRole.isBound()?data.flattenBy(serRole).children().array():[null];this._isCatDiscrete=catRole.grouping.isDiscrete();this._firstCatDim=!this._isCatDiscrete?data.owner.dimensions(catRole.firstDimensionName()):null;this._stretchEnds=stretchEnds;var valDim=this._valDim=data.owner.dimensions(valRole.firstDimensionName());var visibleKeyArgs={visible:true,zeroIfNone:false};this._catInfos=allCatDatas.map(function(allCatData,catIndex){var catData=data._childrenByKey[allCatData.key];var catInfo={data:catData||allCatData,value:allCatData.value,isInterpolated:false,serInfos:null,index:catIndex};catInfo.serInfos=serDatas1.map(function(serData1){var group=catData;if(group&&serData1){group=group._childrenByKey[serData1.key]}var value=group?group.dimensions(valDim.name).sum(visibleKeyArgs):null;return{data:serData1,group:group,value:value,isNull:value==null,catInfo:catInfo}},this);return catInfo});this._serCount=serDatas1.length;this._serStates=def.range(0,this._serCount).select(function(serIndex){return new pvc.data.ZeroInterpolationOperSeriesState(this,serIndex)},this).array()}).add({interpolate:function(){var catInfo;while((catInfo=this._catInfos.shift())){catInfo.serInfos.forEach(this._visitSeries,this)}var newDatums=this._newDatums;if(newDatums.length){this._data.owner.add(newDatums)}},_visitSeries:function(catSerInfo,serIndex){this._serStates[serIndex].visit(catSerInfo)},nextUnprocessedNonNullCategOfSeries:function(serIndex){var catIndex=0,catCount=this._catInfos.length;while(catIndex<catCount){var catInfo=this._catInfos[catIndex++];var catSerInfo=catInfo.serInfos[serIndex];if(!catSerInfo.isNull){return catSerInfo}}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/ZeroInterpolationOperSeriesState.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.data.ZeroInterpolationOperSeriesState').init(function(interpolation,serIndex){this.interpolation=interpolation;this.index=serIndex;this._lastNonNull(null)}).add({visit:function(catSeriesInfo){if(catSeriesInfo.isNull){this._interpolate(catSeriesInfo)}else{this._lastNonNull(catSeriesInfo)}},_lastNonNull:function(catSerInfo){if(arguments.length){this.__lastNonNull=catSerInfo;this.__nextNonNull=undefined}return this.__lastNonNull},_nextNonNull:function(){return this.__nextNonNull},_initInterpData:function(){if(this.__nextNonNull!==undefined){return}var last=this.__lastNonNull;var next=this.__nextNonNull=this.interpolation.nextUnprocessedNonNullCategOfSeries(this.index)||null;if(next&&last){var fromValue=last.value;var toValue=next.value;var deltaValue=toValue-fromValue;if(this.interpolation._isCatDiscrete){var stepCount=next.catInfo.index-last.catInfo.index;(stepCount>=2)||def.assert("Must have at least one interpolation point.");this._middleIndex=~~(stepCount/2); var dotCount=(stepCount-1);this._isOdd=(dotCount%2)>0}else{var fromCat=+last.catInfo.value;var toCat=+next.catInfo.value;this._middleCat=(toCat+fromCat)/2}}},_interpolate:function(catSerInfo){this._initInterpData();var next=this.__nextNonNull;var last=this.__lastNonNull;var one=next||last;if(!one){return}var group;var interpolation=this.interpolation;var catInfo=catSerInfo.catInfo;if(next&&last){if(interpolation._isCatDiscrete){var groupIndex=(catInfo.index-last.catInfo.index);if(this._isOdd){group=groupIndex<this._middleIndex?last.group:next.group}else{group=groupIndex<=this._middleIndex?last.group:next.group}}else{var cat=+catInfo.value;group=cat<this._middleCat?last.group:next.group}}else{if(!interpolation._stretchEnds){return}group=one.group}var atoms=Object.create(group._datums[0].atoms);def.copyOwn(atoms,catInfo.data.atoms);var zeroAtom=interpolation._zeroAtom||(interpolation._zeroAtom=interpolation._valDim.intern(0,true));atoms[zeroAtom.dimension.name]=zeroAtom;var newDatum=new pvc.data.Datum(group.owner,atoms);newDatum.isVirtual=true;newDatum.isInterpolated=true;newDatum.interpolation='zero';interpolation._newDatums.push(newDatum)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/_data.js
... ... @@ -1 +0,0 @@
1   -def.global.NoDataException=function(){};pvc.data={visibleKeyArgs:{visible:true}};function data_disposeChildList(list,parentProp){if(list){list.forEach(function(child){if(parentProp){child[parentProp]=null}child.dispose()});list.length=0}}function data_addColChild(parent,childrenProp,child,parentProp,index){(child&&!child[parentProp])||def.assert("Must not have a '"+parentProp+"'.");child[parentProp]=parent;var col=(parent[childrenProp]||(parent[childrenProp]=[]));if(index==null||index>=col.length){col.push(child)}else{col.splice(index,0,child)}}function data_removeColChild(parent,childrenProp,child,parentProp){(child&&(!child[parentProp]||child[parentProp]===parent))||def.assert("Not a child");var children=parent[childrenProp];if(children){var index=children.indexOf(child);if(index>=0){def.array.removeAt(children,index)}}child[parentProp]=null}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/def.js
... ... @@ -1 +0,0 @@
1   -var arraySlice=Array.prototype.slice;if(!Object.keys){Object.keys=function(o){if(o!==Object(o)){throw new TypeError('Object.keys called on non-object')}var ret=[];for(var p in o){if(Object.prototype.hasOwnProperty.call(o,p)){ret.push(p)}}return ret}}if(!Object.create){Object.create=(function(){var Klass=function(){},proto=Klass.prototype;function create(baseProto){Klass.prototype=baseProto||{};var instance=new Klass();Klass.prototype=proto;return instance}return create}())}if(!Function.prototype.bind){Function.prototype.bind=function(ctx){var staticArgs=arraySlice.call(arguments,1);var fToBind=this;return function(){return fToBind.apply(ctx,staticArgs.concat(arraySlice.call(arguments)))}}}if(!this.JSON){this.JSON={}}if(!this.JSON.stringify){this.JSON.stringify=function(t){return''+t}}var objectHasOwn=Object.prototype.hasOwnProperty;var def={global:this,get:function(o,p,dv){var v;return o&&(v=o[p])!=null?v:dv},gets:function(o,props){return props.map(function(p){return o[p]})},getPath:function(o,path,dv,create){if(!o){return dv}if(path!=null){var parts=def.array.is(path)?path:path.split('.');var L=parts.length;if(L){var i=0;while(i<L){var part=parts[i++];var value=o[part];if(value==null){if(!create){return dv}value=o[part]=(dv==null||isNaN(+dv))?{}:[]}o=value}}}return o},setPath:function(o,path,v){if(o&&path!=null){var parts=def.array.is(path)?path:path.split('.');if(parts.length){var pLast=parts.pop();o=def.getPath(o,parts,pLast,true);if(o!=null){o[pLast]=v}}}return o},propGet:function(p,dv){p=''+p;return function(o){return o!=null?o[p]:dv}},getOwn:function(o,p,dv){var v;return o&&objectHasOwn.call(o,p)&&(v=o[p])!=null?v:dv},hasOwn:function(o,p){return!!o&&objectHasOwn.call(o,p)},hasOwnProp:objectHasOwn,set:function(o){if(!o){o={}}var a=arguments;for(var i=1,A=a.length-1;i<A;i+=2){o[a[i]]=a[i+1]}return o},setDefaults:function(o,o2){if(!o){o={}}var a=arguments;var A=a.length;var p;if(A===2&&def.object.is(o2)){for(p in o2){if(o[p]==null){o[p]=o2[p]}}}else{A--;for(var i=1;i<A;i+=2){p=a[i];if(o[p]==null){o[p]=a[i+1]}}}return o},setUDefaults:function(o,o2){if(!o){o={}}var a=arguments;var A=a.length;var p;if(A===2&&def.object.is(o2)){for(p in o2){if(o[p]===undefined){o[p]=o2[p]}}}else{A--;for(var i=1;i<A;i+=2){p=a[i];if(o[p]===undefined){o[p]=a[i+1]}}}return o},eachOwn:function(o,fun,ctx){if(o){for(var p in o){if(objectHasOwn.call(o,p)){fun.call(ctx,o[p],p,o)}}}},each:function(o,fun,ctx){if(o){for(var p in o){fun.call(ctx,o[p],p,o)}}},copyOwn:function(a,b){var to,from;if(arguments.length>=2){to=a||{};from=b}else{to={};from=a}if(from){for(var p in from){if(objectHasOwn.call(from,p)){to[p]=from[p]}}}return to},copy:function(a,b){var to,from;if(arguments.length>=2){to=a||{};from=b}else{to={};from=a}if(from){for(var p in from){to[p]=from[p]}}return to},copyProps:function(a,b,props){var to,from;if(arguments.length>=3){to=a||{};from=b}else{to={};from=a;props=b}if(props){if(from){props.forEach(function(p){to[p]=from[p]})}else{props.forEach(function(p){to[p]=undefined})}}return to},keys:function(o){var keys=[];for(var p in o){keys.push(p)}return keys},values:function(o){var values=[];for(var p in o){values.push(o[p])}return values},uniqueIndex:function(o,key,ctx){var index={};for(var p in o){var v=key?key.call(ctx,o[p]):o[p];if(v!=null&&!objectHasOwn.call(index,v)){index[v]=p}}return index},ownKeys:Object.keys,own:function(o,f,ctx){var keys=Object.keys(o);return f?keys.map(function(key){return f.call(ctx,o[key],key)}):keys.map(function(key){return o[key]})},scope:function(scopeFun,ctx){return scopeFun.call(ctx)},compare:function(a,b){return(a===b)?0:((a>b)?1:-1)},compareReverse:function(a,b){return(a===b)?0:((a>b)?-1:1)},methodCaller:function(p,context){if(context){return function(){return context[p].apply(context,arguments)}}return function(){return this[p].apply(this,arguments)}},identity:function(x){return x},add:function(a,b){return a+b},negate:function(f){return function(){return!f.apply(this,arguments)}},noop:function noop(){},retTrue:function(){return true},retFalse:function(){return false},number:{is:function(v){return typeof v==='number'},as:function(d,dv){var v=parseFloat(d);return isNaN(v)?(dv||0):v},to:function(d,dv){var v=parseFloat(d);return isNaN(v)?(dv||0):v}},array:{is:function(v){return(v instanceof Array)},isLike:function(v){return v&&(v.length!=null)&&(typeof v!=='string')},as:function(thing){return(thing instanceof Array)?thing:((thing!=null)?[thing]:null)},to:function(thing){return(thing instanceof Array)?thing:((thing!=null)?[thing]:null)},lazy:function(scope,p,f,ctx){return scope[p]||(scope[p]=(f?f.call(ctx,p):[]))},copy:function(al){return arraySlice.apply(al,arraySlice.call(arguments,1))}},object:{is:function(v){return v&&typeof(v)==='object'},isNative:function(v){return(!!v)&&v.constructor===Object},as:function(v){return v&&typeof(v)==='object'?v:null},asNative:function(v){return v&&v.constructor===Object?v:null},lazy:function(scope,p,f,ctx){return scope[p]||(scope[p]=(f?f.call(ctx,p):{}))}},string:{is:function(v){return typeof v==='string'},to:function(v,ds){return v!=null?(''+v):(ds||'')},join:function(sep){var a=arguments;var L=a.length;var v,v2;switch(L){case 3:v=a[1];v2=a[2];if(v!=null&&v!==""){if(v2!=null&&v2!==""){return(""+v)+sep+(""+v2)}return(""+v)}else if(v2!=null&&v2!==""){return(""+v2)}return"";case 2:v=a[1];return v!=null?(""+v):"";case 1:case 0:return""}var args=[];for(var i=1;i<L;i++){v=a[i];if(v!=null&&v!==""){args.push(""+v)}}return args.join(sep)}},fun:{is:function(v){return typeof v==='function'},as:function(v){return typeof v==='function'?v:null},to:function(v){return typeof v==='function'?v:def.fun.constant(v)},constant:function(v){return function(){return v}}},nullyTo:function(v,dv){return v!=null?v:dv},between:function(v,min,max){return Math.max(min,Math.min(v,max))},nully:function(v){return v==null},notNully:function(v){return v!=null},notUndef:function(v){return v!==undefined},empty:function(v){return v==null||v===''},notEmpty:function(v){return v!=null&&v!==''},truthy:function(x){return!!x},falsy:function(x){return!x},firstUpperCase:function(s){if(s){var c=s.charAt(0),cU=c.toUpperCase();if(c!==cU){s=cU+s.substr(1)}}return s},firstLowerCase:function(s){if(s){var c=s.charAt(0),cL=c.toLowerCase();if(c!==cL){s=cL+s.substr(1)}}return s},format:function(mask,scope,ctx){if(mask==null||mask===''){return""}var isScopeFun=scope&&def.fun.is(scope);return mask.replace(/(^|[^{])\{([^{}]+)\}/g,function($0,before,prop){var value;if(scope){if(isScopeFun){value=scope.call(ctx,prop)}else{value=scope[prop]}}else{value=null}return before+(value==null?"":value)})},destructuringTypeBind:function(types,values){var T=types.length;var result=new Array(T);if(T&&values){var V=values.length;if(V){var v=0;var t=0;do{var value=values[v];if(value==null||typeof value===types[t]){result[t]=value;v++}t++}while(t<T&&v<V)}}return result},error:function(error){return(error instanceof Error)?error:new Error(error)},fail:function(error){throw def.error(error)},assert:function(msg,scope){throw def.error.assertionFailed(msg,scope)}};def.lazy=def.object.lazy;def.shared=function(){var _channel=null;function create(value){function safe(){_channel=value}return safe}function opener(safe){if(_channel!=null){throw new Error("Access denied.")}safe();var value;value=_channel;_channel=null;return value}opener.safe=create;return opener};var errors={operationInvalid:function(msg,scope){return def.error(def.string.join(" ","Invalid operation.",def.format(msg,scope)))},notImplemented:function(){return def.error("Not implemented.")},argumentRequired:function(name){return def.error(def.format("Required argument '{0}'.",[name]))},argumentInvalid:function(name,msg,scope){return def.error(def.string.join(" ",def.format("Invalid argument '{0}'.",[name]),def.format(msg,scope)))},assertionFailed:function(msg,scope){return def.error(def.string.join(" ","Assertion failed.",def.format(msg,scope)))}};def.copyOwn(def.error,errors);def.eachOwn(errors,function(errorFun,name){def.fail[name]=function(){throw errorFun.apply(null,arguments)}});var currentNamespace=def,globalNamespaces={},namespaceStack=[];function globalSpace(name,space){return globalNamespaces[name]=space}function getNamespace(name,base){var current=base||currentNamespace;if(name){var parts=name.split('.');var L=parts.length;if(L){var i=0;var part;if(current===def.global){part=parts[0];var globalNamespace=def.getOwn(globalNamespaces,part);if(globalNamespace){current=globalNamespace;i++}}while(i<L){part=parts[i++];current=current[part]||(current[part]={})}}}return current}function createSpace(name,base,definition){if(def.fun.is(base)){definition=base;base=null}var namespace=getNamespace(name,base);if(definition){namespaceStack.push(currentNamespace);try{definition(namespace)}finally{currentNamespace=namespaceStack.pop()}}return namespace}function defineName(namespace,name,value){!def.hasOwn(namespace,name)||def.fail.operationInvalid("Name '{0}' is already defined in namespace.",[name]);return namespace[name]=value}def.space=createSpace;def.globalSpace=globalSpace;def.mixin=createMixin(Object.create);def.copyOwn(def.mixin,{custom:createMixin,inherit:def.mixin,copy:createMixin(def.copy),share:createMixin(def.identity)});function createMixin(protectNativeObject){return function(instance){return mixinMany(instance,arraySlice.call(arguments,1),protectNativeObject)}}function mixinMany(instance,mixins,protectNativeObject){for(var i=0,L=mixins.length;i<L;i++){var mixin=mixins[i];if(mixin){mixin=def.object.as(mixin.prototype||mixin);if(mixin){mixinRecursive(instance,mixin,protectNativeObject)}}}return instance}function mixinRecursive(instance,mixin,protectNativeObject){for(var p in mixin){mixinProp(instance,p,mixin[p],protectNativeObject)}}function mixinProp(instance,p,vMixin,protectNativeObject){if(vMixin!==undefined){var oMixin,oTo=def.object.asNative(instance[p]);if(oTo){oMixin=def.object.as(vMixin);if(oMixin){if(!objectHasOwn.call(instance,p)){instance[p]=oTo=Object.create(oTo)}mixinRecursive(oTo,oMixin,protectNativeObject)}else{instance[p]=vMixin}}else{oMixin=def.object.asNative(vMixin);if(oMixin){vMixin=(protectNativeObject||Object.create)(oMixin)}instance[p]=vMixin}}}function createRecursive(instance){for(var p in instance){var vObj=def.object.asNative(instance[p]);if(vObj){createRecursive((instance[p]=Object.create(vObj)))}}}def.create=function(){var mixins=arraySlice.call(arguments),deep=true,baseProto=mixins.shift();if(typeof(baseProto)==='boolean'){deep=baseProto;baseProto=mixins.shift()}var instance=baseProto?Object.create(baseProto):{};if(deep){createRecursive(instance)}if(mixins.length>0){mixins.unshift(instance);def.mixin.apply(def,mixins)}return instance};def.scope(function(){var shared=def.shared();function typeLocked(){return def.error.operationInvalid("Type is locked.")}var typeProto={init:function(init){init||def.fail.argumentRequired('init');var state=shared(this.safe);!state.locked||def.fail(typeLocked());var baseInit=state.init;if(baseInit){init=override(init,baseInit)}state.init=init;state.initOrPost=true;return this},postInit:function(postInit){postInit||def.fail.argumentRequired('postInit');var state=shared(this.safe);!state.locked||def.fail(typeLocked());var basePostInit=state.post;if(basePostInit){postInit=override(postInit,basePostInit)}state.post=postInit;state.initOrPost=true;return this},add:function(mixin){var state=shared(this.safe);!state.locked||def.fail(typeLocked());var proto=this.prototype;var baseState=state.base;def.each(mixin.prototype||mixin,function(value,p){switch(p){case'base':case'constructor':return;case'toString':if(value===toStringMethod){return}break;case'override':if(value===overrideMethod){return}break}if(value){var method=asMethod(value);if(method){var baseMethod;var bm=state.methods[p];if(bm&&(bm instanceof Method)){baseMethod=bm}else if(baseState){bm=baseState.methods[p];if(bm&&(bm instanceof Method)){baseMethod=bm}}state.methods[p]=method;if(baseMethod){value=baseMethod.override(method)}proto[p]=value;return}}mixinProp(proto,p,value,def.identity)});return this},getStatic:function(p){return getStatic(shared(this.safe),p)},addStatic:function(mixin){var state=shared(this.safe);!state.locked||def.fail(typeLocked());for(var p in mixin){if(p!=='prototype'){var v1=def.getOwn(this,p);var v2=mixin[p];var o2=def.object.as(v2);if(o2){var v1Local=(v1!==undefined);if(!v1Local){v1=getStatic(state.base,p)}var o1=def.object.asNative(v1);if(o1){if(v1Local){def.mixin(v1,v2);continue}v2=def.create(v1,v2)}}this[p]=v2}}return this}};function getStatic(state,p){if(state){do{var v=def.getOwn(state.constructor,p);if(v!==undefined){return v}}while((state=state.base))}}function TypeName(full){var parts;if(full){if(full instanceof Array){parts=full;full=parts.join('.')}else{parts=full.split('.')}}if(parts&&parts.length>1){this.name=parts.pop();this.namespace=parts.join('.');this.namespaceParts=parts}else{this.name=full||null;this.namespace=null;this.namespaceParts=[]}}TypeName.prototype.toString=function(){return def.string.join('.',this.namespace+'.'+this.name)};function Method(spec){this.fun=spec.as;if(spec){if(spec.isAbstract){this.isAbstract=true}}}def.copyOwn(Method.prototype,{isAbstract:false,override:function(method){if(this.isAbstract){return method.fun}var fun2=override(method.fun,this.fun);method.fun=fun2;return fun2}});function asMethod(fun){if(fun){if(def.fun.is(fun)){return new Method({as:fun})}if(fun instanceof Method){return fun}if(def.fun.is(fun.as)){return new Method(fun)}if(fun.isAbstract){return new Method({isAbstract:true,as:def.fail.notImplemented})}}return null}function method(fun){return asMethod(fun)||def.fail.argumentInvalid('fun')}function rootType(){}var rootProto=rootType.prototype;rootProto.base=undefined;var rootState={locked:true,init:undefined,postInit:undefined,initOrPost:false,methods:{},constructor:rootType};rootType.safe=shared.safe(rootState);function override(method,base){return function(){var prevBase=rootProto.base;rootProto.base=base;try{return method.apply(this,arguments)}finally{rootProto.base=prevBase}}}function overrideMethod(mname,method){this[mname]=override(method,this[mname]);return this}function toStringMethod(){return''+this.constructor}function inherits(type,base){var proto=type.prototype=Object.create(base.prototype);proto.constructor=type;return proto}function createConstructor(state){var S=1;var steps=[function(){S=0;if(state.initOrPost){steps.length=0;if(state.init){steps.push(state.init);S++}if(state.post){steps.push(state.post);S++}constructor.apply(this,arguments);return false}else{steps=null}}];function constructor(){if(S){var i=0;while(steps[i].apply(this,arguments)!==false&&++i<S){}}}return constructor}var _typeFunArgTypes=['string','function','object'];function type(){var args=def.destructuringTypeBind(_typeFunArgTypes,arguments);return typeCore.apply(this,args)}function typeCore(name,baseType,space){var typeName=new TypeName(name);var baseState;if(baseType){baseState=(baseType.safe&&shared(baseType.safe))||def.fail.operationInvalid("Invalid \"foreign\" base type.");baseState.locked=true}else{baseType=rootType;baseState=rootState}var state=Object.create(baseState);state.locked=false;state.base=baseState;state.methods=Object.create(baseState.methods);var constructor=createConstructor(state);def.copyOwn(constructor,typeProto);constructor.name=typeName.name;constructor.typeName=typeName;constructor.safe=shared.safe(state);constructor.toString=function(){return(''+this.typeName)||"Anonymous type"};var proto=inherits(constructor,baseType);state.constructor=constructor;proto.override=overrideMethod;proto.toString=toStringMethod;if(typeName.name){defineName(def.space(typeName.namespace,space),typeName.name,constructor)}return constructor}def.type=type;def.method=method});def.copyOwn(def.array,{create:function(len,dv){var a=len>=0?new Array(len):[];if(dv!==undefined){for(var i=0;i<len;i++){a[i]=dv}}return a},append:function(target,source,start){if(start==null){start=0}for(var i=0,L=source.length,T=target.length;i<L;i++){target[T+i]=source[start+i]}return target},appendMany:function(target){var a=arguments;var S=a.length;if(S>1){var t=target.length;for(var s=1;s<S;s++){var source=a[s];if(source){var i=0;var L=source.length;while(i<L){target[t++]=source[i++]}}}}return target},prepend:function(target,source,start){if(start==null){start=0}for(var i=0,L=source.length;i<L;i++){target.unshift(source[start+i])}return target},removeAt:function(array,index){return array.splice(index,1)[0]},insertAt:function(array,index,elem){array.splice(index,0,elem);return array},binarySearch:function(array,item,comparer,key){if(!comparer){comparer=def.compare}var low=0,high=array.length-1;while(low<=high){var mid=(low+high)>>1;var result=comparer(item,key?key(array[mid]):array[mid]);if(result<0){high=mid-1}else if(result>0){low=mid+1}else{return mid}}return~low},insert:function(array,item,comparer){var index=def.array.binarySearch(array,item,comparer);if(index<0){array.splice(~index,0,item)}return index},remove:function(array,item,comparer){var index=def.array.binarySearch(array,item,comparer);if(index>=0){return array.splice(index,1)[0]}}});var nextGlobalId=1,nextIdByScope={};def.nextId=function(scope){if(scope){var nextId=def.getOwn(nextIdByScope,scope)||1;nextIdByScope[scope]=nextId+1;return nextId}return nextGlobalId++};def.type('Set').init(function(source,count){this.source=source||{};this.count=source?(count!=null?count:def.ownKeys(source).length):0}).add({has:function(p){return objectHasOwn.call(this.source,p)},add:function(p){var source=this.source;if(!objectHasOwn.call(source,p)){this.count++;source[p]=true}return this},rem:function(p){if(objectHasOwn.call(this.source,p)){delete this.source[p];this.count--}return this},clear:function(){if(this.count){this.source={};this.count=0}return this},members:function(){return def.ownKeys(this.source)}});def.type('Map').init(function(source,count){this.source=source||{};this.count=source?(count!=null?count:def.ownKeys(source).length):0}).add({has:function(p){return objectHasOwn.call(this.source,p)},get:function(p){return objectHasOwn.call(this.source,p)?this.source[p]:undefined},set:function(p,v){var source=this.source;if(!objectHasOwn.call(source,p)){this.count++}source[p]=v;return this},rem:function(p){if(objectHasOwn.call(this.source,p)){delete this.source[p];this.count--}return this},clear:function(){if(this.count){this.source={};this.count=0}return this},copy:function(other){def.eachOwn(other.source,function(value,p){this.set(p,value)},this)},values:function(){return def.own(this.source)},keys:function(){return def.ownKeys(this.source)},clone:function(){return new def.Map(def.copy(this.source),this.count)},symmetricDifference:function(other){if(!this.count){return other.clone()}if(!other.count){return this.clone()}var result={};var count=0;var as=this.source;var bs=other.source;def.eachOwn(as,function(a,p){if(!objectHasOwn.call(bs,p)){result[p]=a;count++}});def.eachOwn(bs,function(b,p){if(!objectHasOwn.call(as,p)){result[p]=b;count++}});return new def.Map(result,count)},intersect:function(other,result){if(!result){result=new def.Map()}def.eachOwn(this.source,function(value,p){if(other.has(p)){result.set(p,value)}});return result}});def.type('OrderedMap').init(function(){this._list=[];this._map={}}).add({has:function(key){return objectHasOwn.call(this._map,key)},count:function(){return this._list.length},get:function(key){var bucket=def.getOwn(this._map,key);if(bucket){return bucket.value}},at:function(index){var bucket=this._list[index];if(bucket){return bucket.value}},add:function(key,v,index){var map=this._map;var bucket=def.getOwn(map,key);if(!bucket){bucket=map[key]={key:key,value:v};if(index==null){this._list.push(bucket)}else{def.array.insertAt(this._list,index,bucket)}}else if(bucket.value!==v){bucket.value=v}return this},rem:function(key){var bucket=def.getOwn(this._map,key);if(bucket){var index=this._list.indexOf(bucket);this._list.splice(index,1);delete this._map[key]}return this},clear:function(){if(this._list.length){this._map={};this._list.length=0}return this},keys:function(){return def.ownKeys(this._map)},forEach:function(fun,ctx){return this._list.forEach(function(bucket){fun.call(ctx,bucket.value,bucket.key)})}});def.html={escape:function(str){return def.string.to(str).replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;")}};def.type('Query').init(function(){this.index=-1;this.item=undefined}).add({next:function(){var index=this.index;if(index===-2){return false}index++;if(!this._next(index)){this.index=-2;this.item=undefined;return false}this.index=index;return true},_next:def.method({isAbstract:true}),_finish:function(){this.index=-2;this.item=undefined},each:function(fun,ctx){while(this.next()){if(fun.call(ctx,this.item,this.index)===false){return true}}return false},array:function(){var array=[];while(this.next()){array.push(this.item)}return array},sort:function(compare,by){if(!compare){compare=def.compare}if(by){var keyCompare=compare;compare=function(a,b){return keyCompare(by(a),by(b))}}var sorted=this.array().sort(compare);return new def.ArrayLikeQuery(sorted)},object:function(keyArgs){var target=def.get(keyArgs,'target')||{},nameFun=def.get(keyArgs,'name'),valueFun=def.get(keyArgs,'value'),ctx=def.get(keyArgs,'context');while(this.next()){var name=''+(nameFun?nameFun.call(ctx,this.item,this.index):this.item);target[name]=valueFun?valueFun.call(ctx,this.item,this.index):this.item}return target},reduce:function(accumulator){var i=0,result;if(arguments.length<2){if(!this.next()){throw new TypeError("Length is 0 and no second argument")}result=this.item}else{result=arguments[1]}while(this.next()){result=accumulator(result,this.item,this.index);++i}return result},count:function(){var count=0;while(this.next()){count++}return count},first:function(pred,ctx,dv){while(this.next()){if(!pred||pred.call(ctx,this.item,this.index)){var item=this.item;this._finish();return item}}return dv},last:function(pred,ctx,dv){var theItem=dv;while(this.next()){if(!pred||pred.call(ctx,this.item,this.index)){theItem=this.item}}return theItem},any:function(pred,ctx){while(this.next()){if(!pred||pred.call(ctx,this.item,this.index)){this._finish();return true}}return false},all:function(pred,ctx){while(this.next()){if(!pred.call(ctx,this.item,this.index)){this._finish();return false}}return true},min:function(){var min=null;while(this.next()){if(min===null||this.item<min){min=this.item}}return min},max:function(){var max=null;while(this.next()){if(max===null||this.item>max){max=this.item}}return max},range:function(){var min=null,max=null;while(this.next()){var item=this.item;if(min===null){min=max=item}else{if(item<min){min=item}if(item>max){max=item}}}return min!=null?{min:min,max:max}:null},multipleIndex:function(keyFun,ctx){var keyIndex={};this.each(function(item){var key=keyFun?keyFun.call(ctx,item):item;if(key!=null){var sameKeyItems=def.getOwn(keyIndex,key)||(keyIndex[key]=[]);sameKeyItems.push(item)}});return keyIndex},uniqueIndex:function(keyFun,ctx){var keyIndex={};this.each(function(item){var key=keyFun?keyFun.call(ctx,item):item;if(key!=null&&!def.hasOwn(keyIndex,key)){keyIndex[key]=item}});return keyIndex},select:function(fun,ctx){return new def.SelectQuery(this,fun,ctx)},selectMany:function(fun,ctx){return new def.SelectManyQuery(this,fun,ctx)},union:function(){var queries=def.array.append([this],arguments);return new def.SelectManyQuery(new def.ArrayLikeQuery(queries))},where:function(fun,ctx){return new def.WhereQuery(this,fun,ctx)},distinct:function(fun,ctx){return new def.DistinctQuery(this,fun,ctx)},skip:function(n){return new def.SkipQuery(this,n)},take:function(n){if(n<=0){return new def.NullQuery()}if(!isFinite(n)){return this}return new def.TakeQuery(this,n)},whayl:function(pred,ctx){return new def.WhileQuery(this,pred,ctx)},reverse:function(){return new def.ReverseQuery(this)}});def.type('NullQuery',def.Query).add({_next:function(){}});def.type('AdhocQuery',def.Query).init(function(next){this.base();this._next=next});def.type('ArrayLikeQuery',def.Query).init(function(list){this.base();this._list=def.array.isLike(list)?list:[list];this._count=this._list.length}).add({_next:function(nextIndex){var count=this._count;if(nextIndex<count){var list=this._list;while(!objectHasOwn.call(list,nextIndex)){nextIndex++;if(nextIndex>=count){return 0}this._count--}this.item=list[nextIndex];return 1}},count:function(){var remaining=this._count;if(this.index>=0){remaining-=(this.index+1)}this._finish();return remaining}});def.type('RangeQuery',def.Query).init(function(start,count,step){this.base();this._index=start;this._count=count;this._step=step==null?1:step}).add({_next:function(nextIndex){if(nextIndex<this._count){this.item=this._index;this._index+=this._step;return 1}},count:function(){var remaining=this._count;if(this.index>=0){remaining-=(this.index+1)}this._finish();return remaining}});def.type('WhereQuery',def.Query).init(function(source,where,ctx){this.base();this._where=where;this._ctx=ctx;this._source=source}).add({_next:function(nextIndex){var source=this._source;while(source.next()){var nextItem=source.item;if(this._where.call(this._ctx,nextItem,source.index)){this.item=nextItem;return 1}}}});def.type('WhileQuery',def.Query).init(function(source,pred,ctx){this.base();this._pred=pred;this._ctx=ctx;this._source=source}).add({_next:function(nextIndex){while(this._source.next()){var nextItem=this._source.item;if(this._pred.call(this._ctx,nextItem,this._source.index)){this.item=nextItem;return 1}return 0}}});def.type('SelectQuery',def.Query).init(function(source,select,ctx){this.base();this._select=select;this._ctx=ctx;this._source=source}).add({_next:function(nextIndex){if(this._source.next()){this.item=this._select.call(this._ctx,this._source.item,this._source.index);return 1}}});def.type('SelectManyQuery',def.Query).init(function(source,selectMany,ctx){this.base();this._selectMany=selectMany;this._ctx=ctx;this._source=source;this._manySource=null}).add({_next:function(nextIndex){while(true){if(this._manySource){if(this._manySource.next()){this.item=this._manySource.item;return 1}this._manySource=null}if(!query_nextMany.call(this)){break}}}});function query_nextMany(){while(this._source.next()){var manySource=this._selectMany?this._selectMany.call(this._ctx,this._source.item,this._source.index):this._source.item;if(manySource!=null){this._manySource=def.query(manySource);return 1}}}def.type('DistinctQuery',def.Query).init(function(source,key,ctx){this.base();this._key=key;this._ctx=ctx;this._source=source;this._keys={}}).add({_next:function(nextIndex){while(this._source.next()){var nextItem=this._source.item,keyValue=this._key?this._key.call(this._ctx,nextItem,this._source.index):nextItem;if(keyValue!=null&&!def.hasOwn(this._keys,keyValue)){this._keys[keyValue]=true;this.item=nextItem;return 1}}}});def.type('SkipQuery',def.Query).init(function(source,skip){this.base();this._source=source;this._skip=skip}).add({_next:function(nextIndex){while(this._source.next()){if(this._skip>0){this._skip--}else{this.item=this._source.item;return 1}}}});def.type('TakeQuery',def.Query).init(function(source,take){this.base();this._source=source;this._take=take}).add({_next:function(nextIndex){if(this._take>0&&this._source.next()){this._take--;this.item=this._source.item;return 1}}});def.type('ReverseQuery',def.Query).init(function(source){this.base();this._source=source}).add({_next:function(nextIndex){if(!nextIndex){if(this._source instanceof def.Query){if(this._source instanceof def.ArrayLikeQuery){this._source=this._source._list}else{this._source=this._source.array()}}this._count=this._source.length}var count=this._count;if(nextIndex<count){var index=count-nextIndex-1;var source=this._source;while(!objectHasOwn.call(source,index)){if(--index<0){return 0}this._count--}this.item=source[index];return 1}}});def.query=function(q){if(q===undefined){return new def.NullQuery()}if(q instanceof def.Query){return q}if(def.fun.is(q)){return new def.AdhocQuery(q)}return new def.ArrayLikeQuery(q)};def.range=function(start,count,step){return new def.RangeQuery(start,count,step)};currentNamespace=def.global;
2 0 \ No newline at end of file
pacotes/ccc2/compacto/protovis-d3.3.js
... ... @@ -1 +0,0 @@
1   -if(!Array.prototype.map)Array.prototype.map=function(f,o){var n=this.length;var result=new Array(n);for(var i=0;i<n;i++){if(i in this){result[i]=f.call(o,this[i],i,this)}}return result};if(!Array.prototype.filter)Array.prototype.filter=function(f,o){var n=this.length;var result=new Array();for(var i=0;i<n;i++){if(i in this){var v=this[i];if(f.call(o,v,i,this))result.push(v)}}return result};if(!Array.prototype.forEach)Array.prototype.forEach=function(f,o){var n=this.length>>>0;for(var i=0;i<n;i++){if(i in this)f.call(o,this[i],i,this)}};if(!Array.prototype.reduce)Array.prototype.reduce=function(f,v){var len=this.length;if(!len&&(arguments.length==1)){throw new Error("reduce: empty array, no initial value")}var i=0;if(arguments.length<2){while(true){if(i in this){v=this[i++];break}if(++i>=len){throw new Error("reduce: no values, no initial value")}}}for(;i<len;i++){if(i in this){v=f(v,this[i],i,this)}}return v};var pv={};pv.version={major:3,minor:3};pv.identity=function(x){return x};pv.index=function(){return this.index};pv.child=function(){return this.childIndex};pv.parent=function(){return this.parent.index};pv.extend=Object.create?function(f){return Object.create(f.prototype||f)}:function(f){function g(){}g.prototype=f.prototype||f;return new g()};pv.parse=function(js){var re=new RegExp("function\\s*(\\b\\w+)?\\s*\\([^)]*\\)\\s*","mg"),m,d,i=0,s="";while(m=re.exec(js)){var j=m.index+m[0].length;if(js.charAt(j)!='{'){s+=js.substring(i,j)+"{return ";i=j;for(var p=0;p>=0&&j<js.length;j++){var c=js.charAt(j);switch(c){case'"':case'\'':{while(++j<js.length&&(d=js.charAt(j))!=c){if(d=='\\')j++}break}case'[':case'(':p++;break;case']':case')':p--;break;case';':case',':if(p==0)p--;break}}s+=pv.parse(js.substring(i,--j))+";}";i=j}re.lastIndex=j}s+=js.substring(i);return s};pv.css=function(e,p){return window.getComputedStyle?window.getComputedStyle(e,null).getPropertyValue(p):e.currentStyle[p]};pv.error=function(e){(typeof console==="undefined"||!console.error)?alert(e):console.error(e)};pv.listen=function(target,type,listener){if(type==='load'||type==='onload'){return pv.listenForPageLoad(pv.listener(listener))}listener=pv.listener(listener);target.addEventListener?target.addEventListener(type,listener,false):target.attachEvent('on'+type,listener);return listener};pv.unlisten=function(target,type,listener){if(listener.$listener){listener=listener.$listener}target.removeEventListener?target.removeEventListener(type,listener,false):target.detachEvent('on'+type,listener)};pv.listener=function(f){return f.$listener||(f.$listener=function(e){try{if(e.pageX==null&&e.clientX!=null){var eventDoc=(e.target&&e.target.ownerDocument)||document;var doc=eventDoc.documentElement;var body=eventDoc.body;e.pageX=(e.clientX*1)+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);e.pageY=(e.clientY*1)+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}pv.event=e;return f.call(this,e)}catch(ex){pv.error(ex)}finally{delete pv.event}})};pv.ancestor=function(a,e){while(e){if(e==a)return true;e=e.parentNode}return false};pv.getWindow=function(elem){return(elem!=null&&elem==elem.window)?elem:elem.nodeType===9?elem.defaultView||elem.parentWindow:false};pv.elementOffset=function(elem){var docElem,body,win,clientTop,clientLeft,scrollTop,scrollLeft,box={top:0,left:0},doc=elem&&elem.ownerDocument;if(!doc){return}body=doc.body;if(body===elem){return}docElem=doc.documentElement;if(typeof elem.getBoundingClientRect!=="undefined"){box=elem.getBoundingClientRect()}win=pv.getWindow(doc);clientTop=docElem.clientTop||body.clientTop||0;clientLeft=docElem.clientLeft||body.clientLeft||0;scrollTop=win.pageYOffset||docElem.scrollTop;scrollLeft=win.pageXOffset||docElem.scrollLeft;return{top:box.top+scrollTop-clientTop,left:box.left+scrollLeft-clientLeft}};pv.listenForPageLoad=function(listener){if(document.readyState==="complete"){listener()}if(pv.renderer()=="svgweb"){window.addEventListener("SVGLoad",listener,false)}else{if(document.addEventListener){window.addEventListener("load",listener,false)}else if(document.attachEvent){window.attachEvent("onload",listener)}}};pv.renderer=function(){var renderer=(typeof document.svgImplementation!=="undefined")?document.svgImplementation:(typeof window.svgweb==="undefined")?"nativesvg":"svgweb";pv.renderer=function(){return renderer};return renderer};pv.id=function(){var id=1;return function(){return id++}}();pv.functor=function(v){return typeof v=="function"?v:function(){return v}};pv.get=function(o,p,dv){var v;return o&&(v=o[p])!=null?v:dv};if(pv.renderer()!=="batik"){pv.listen(window,"load",function(){pv.$={i:0,x:document.getElementsByTagName("script")};pv.$.xlen=pv.$.x.length;for(;pv.$.i<pv.$.xlen;pv.$.i++){pv.$.s=pv.$.x[pv.$.i];if(pv.$.s.type=="text/javascript+protovis"){try{window.eval(pv.parse(pv.$.s.text))}catch(e){pv.error(e)}}}delete pv.$})}pv.Format={};pv.Format.re=function(s){return s.replace(/[\\\^\$\*\+\?\[\]\(\)\.\{\}]/g,"\\$&")};pv.Format.pad=function(c,n,s){var m=n-String(s).length;return(m<1)?s:new Array(m+1).join(c)+s};pv.Format.date=function(pattern){var pad=pv.Format.pad;function format(d){return pattern.replace(/%[a-zA-Z0-9]/g,function(s){switch(s){case'%a':return["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][d.getDay()];case'%A':return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][d.getDay()];case'%h':case'%b':return["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][d.getMonth()];case'%B':return["January","February","March","April","May","June","July","August","September","October","November","December"][d.getMonth()];case'%c':return d.toLocaleString();case'%C':return pad("0",2,Math.floor(d.getFullYear()/100)%100);case'%d':return pad("0",2,d.getDate());case'%x':case'%D':return pad("0",2,d.getMonth()+1)+"/"+pad("0",2,d.getDate())+"/"+pad("0",2,d.getFullYear()%100);case'%e':return pad(" ",2,d.getDate());case'%H':return pad("0",2,d.getHours());case'%I':{var h=d.getHours()%12;return h?pad("0",2,h):12}case'%m':return pad("0",2,d.getMonth()+1);case'%M':return pad("0",2,d.getMinutes());case'%n':return"\n";case'%p':return d.getHours()<12?"AM":"PM";case'%T':case'%X':case'%r':{var h=d.getHours()%12;return(h?pad("0",2,h):12)+":"+pad("0",2,d.getMinutes())+":"+pad("0",2,d.getSeconds())+" "+(d.getHours()<12?"AM":"PM")}case'%R':return pad("0",2,d.getHours())+":"+pad("0",2,d.getMinutes());case'%S':return pad("0",2,d.getSeconds());case'%Q':return pad("0",3,d.getMilliseconds());case'%t':return"\t";case'%u':{var w=d.getDay();return w?w:1}case'%w':return d.getDay();case'%y':return pad("0",2,d.getFullYear()%100);case'%Y':return d.getFullYear();case'%%':return"%"}return s})}format.format=format;format.parse=function(s){var year=1970,month=0,date=1,hour=0,minute=0,second=0;var fields=[function(){}];var re=pv.Format.re(pattern).replace(/%[a-zA-Z0-9]/g,function(s){switch(s){case'%b':{fields.push(function(x){month={Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11}[x]});return"([A-Za-z]+)"}case'%h':case'%B':{fields.push(function(x){month={January:0,February:1,March:2,April:3,May:4,June:5,July:6,August:7,September:8,October:9,November:10,December:11}[x]});return"([A-Za-z]+)"}case'%e':case'%d':{fields.push(function(x){date=x});return"([0-9]+)"}case'%I':case'%H':{fields.push(function(x){hour=x});return"([0-9]+)"}case'%m':{fields.push(function(x){month=x-1});return"([0-9]+)"}case'%M':{fields.push(function(x){minute=x});return"([0-9]+)"}case'%p':{fields.push(function(x){if(hour==12){if(x=="am")hour=0}else if(x=="pm"){hour=Number(hour)+12}});return"(am|pm)"}case'%S':{fields.push(function(x){second=x});return"([0-9]+)"}case'%y':{fields.push(function(x){x=Number(x);year=x+(((0<=x)&&(x<69))?2000:(((x>=69)&&(x<100)?1900:0)))});return"([0-9]+)"}case'%Y':{fields.push(function(x){year=x});return"([0-9]+)"}case'%%':{fields.push(function(){});return"%"}}return s});var match=s.match(re);if(match)match.forEach(function(m,i){fields[i](m)});return new Date(year,month,date,hour,minute,second)};return format};pv.Format.time=function(type){var pad=pv.Format.pad;function format(t){t=Number(t);switch(type){case"short":{if(t>=31536e6){return(t/31536e6).toFixed(1)+" years"}else if(t>=6048e5){return(t/6048e5).toFixed(1)+" weeks"}else if(t>=864e5){return(t/864e5).toFixed(1)+" days"}else if(t>=36e5){return(t/36e5).toFixed(1)+" hours"}else if(t>=6e4){return(t/6e4).toFixed(1)+" minutes"}return(t/1e3).toFixed(1)+" seconds"}case"long":{var a=[],s=((t%6e4)/1e3)>>0,m=((t%36e5)/6e4)>>0;a.push(pad("0",2,s));if(t>=36e5){var h=((t%864e5)/36e5)>>0;a.push(pad("0",2,m));if(t>=864e5){a.push(pad("0",2,h));a.push(Math.floor(t/864e5).toFixed())}else{a.push(h.toFixed())}}else{a.push(m.toFixed())}return a.reverse().join(":")}}}format.format=format;format.parse=function(s){switch(type){case"short":{var re=/([0-9,.]+)\s*([a-z]+)/g,a,t=0;while(a=re.exec(s)){var f=parseFloat(a[0].replace(",","")),u=0;switch(a[2].toLowerCase()){case"year":case"years":u=31536e6;break;case"week":case"weeks":u=6048e5;break;case"day":case"days":u=864e5;break;case"hour":case"hours":u=36e5;break;case"minute":case"minutes":u=6e4;break;case"second":case"seconds":u=1e3;break}t+=f*u}return t}case"long":{var a=s.replace(",","").split(":").reverse(),t=0;if(a.length)t+=parseFloat(a[0])*1e3;if(a.length>1)t+=parseFloat(a[1])*6e4;if(a.length>2)t+=parseFloat(a[2])*36e5;if(a.length>3)t+=parseFloat(a[3])*864e5;return t}}}return format};pv.Format.number=function(){var mini=0,maxi=Infinity,mins=0,minf=0,maxf=0,maxk=1,padi="0",padf="0",padg=true,decimal=".",group=",",np="\u2212",ns="";function format(x){if(Infinity>maxf)x=Math.round(x*maxk)/maxk;var s=String(Math.abs(x)).split(".");var i=s[0];if(i.length>maxi)i=i.substring(i.length-maxi);if(padg&&(i.length<mini))i=new Array(mini-i.length+1).join(padi)+i;if(i.length>3)i=i.replace(/\B(?=(?:\d{3})+(?!\d))/g,group);if(!padg&&(i.length<mins))i=new Array(mins-i.length+1).join(padi)+i;s[0]=x<0?np+i+ns:i;var f=s[1]||"";if(f.length>maxf){f=s[1]=f.substr(0,maxf)}if(f.length<minf)s[1]=f+new Array(minf-f.length+1).join(padf);return s.join(decimal)}format.format=format;format.parse=function(x){var re=pv.Format.re;var s=String(x).split(decimal);if(s.length==1)s[1]="";s[0].replace(new RegExp("^("+re(padi)+")*"),"");s[1].replace(new RegExp("("+re(padf)+")*$"),"")var i=s[0].replace(new RegExp(re(group),"g"),"");if(i.length>maxi)i=i.substring(i.length-maxi);var f=s[1]?Number("0."+s[1]):0;if(Infinity>maxf)f=Math.round(f*maxk)/maxk;return Math.round(i)+f};format.integerDigits=function(min,max){if(arguments.length){mini=Number(min);maxi=(arguments.length>1)?Number(max):mini;mins=mini+Math.floor(mini/3)*group.length;return this}return[mini,maxi]};format.fractionDigits=function(min,max){if(arguments.length){minf=Number(min);maxf=(arguments.length>1)?Number(max):minf;maxk=Math.pow(10,maxf);return this}return[minf,maxf]};format.integerPad=function(x){if(arguments.length){padi=String(x);padg=/\d/.test(padi);return this}return padi};format.fractionPad=function(x){if(arguments.length){padf=String(x);return this}return padf};format.decimal=function(x){if(arguments.length){decimal=String(x);return this}return decimal};format.group=function(x){if(arguments.length){group=x?String(x):"";mins=mini+Math.floor(mini/3)*group.length;return this}return group};format.negativeAffix=function(x,y){if(arguments.length){np=String(x||"");ns=String(y||"");return this}return[np,ns]};return format};(function(){var _cache;pv.Text={};pv.Text.createCache=function(){return new FontSizeCache()};pv.Text.usingCache=function(cache,fun,ctx){if(!(cache instanceof FontSizeCache)){throw new Error("Not a valid cache.")}var prevCache=_cache;_cache=cache;try{return fun.call(ctx)}finally{_cache=prevCache}};pv.Text.measure=function(text,font){if(text==null){text=""}else{text=""+text}var bbox=_cache&&_cache.get(font,text);if(!bbox){if(!text){bbox={width:0,height:0}}else{bbox=this.measureCore(text,font)}if(_cache){_cache.put(font,text,bbox)}}return bbox};pv.Text.fontHeight=function(font){return pv.Text.measure('M',font).height};pv.Text.measureCore=(function(){var _svgText,_svgTextFont;function createTextSizePlaceholder(){var div=document.createElement('div');div.id='pvSVGText_'+new Date().getTime();var style=div.style;style.position='absolute';style.visibility='hidden';style.width=0;style.height=0;style.left=0;style.top=0;document.body.appendChild(div);return div}return function(text,font){if(!_svgText){var holder=createTextSizePlaceholder();var svgElem=pv.SvgScene.create('svg');svgElem.setAttribute('font-size','10px');svgElem.setAttribute('font-family','sans-serif');_svgText=pv.SvgScene.create('text');svgElem.appendChild(_svgText);holder.appendChild(svgElem)}if(!font){font=null}if(_svgTextFont!==font){_svgTextFont=font;pv.SvgScene.setStyle(_svgText,{'font':font})}var textNode=_svgText.firstChild;if(textNode){textNode.nodeValue=''+text}else{if(pv.renderer()==="svgweb"){_svgText.appendChild(document.createTextNode(''+text,true))}else{_svgText.appendChild(document.createTextNode(''+text))}}var box=_svgText.getBBox();return{width:box.width,height:box.height}}}());var FontSizeCache=function(){this._fontsCache={}};var hasOwnProp=Object.prototype.hasOwnProperty;FontSizeCache.prototype._getFont=function(font){font=font||'';return hasOwnProp.call(this._fontsCache,font)?this._fontsCache[font]:(this._fontsCache[font]={})};FontSizeCache.prototype.get=function(font,text){text=text||'';var fontCache=this._getFont(font);return hasOwnProp.call(fontCache,text)?fontCache[text]:null};FontSizeCache.prototype.put=function(font,text,size){return this._getFont(font)[text||'']=size}}());pv.map=function(array,f){var o={};return f?array.map(function(d,i){o.index=i;return f.call(o,d)}):array.slice()};pv.repeat=function(array,n){if(arguments.length==1)n=2;return pv.blend(pv.range(n).map(function(){return array}))};pv.array=function(len,dv){var a=len>=0?new Array(len):[];if(dv!==undefined){for(var i=0;i<len;i++){a[i]=dv}}return a};pv.cross=function(a,b){var array=[];for(var i=0,n=a.length,m=b.length;i<n;i++){for(var j=0,x=a[i];j<m;j++){array.push([x,b[j]])}}return array};pv.blend=function(arrays){return Array.prototype.concat.apply([],arrays)};pv.transpose=function(arrays){var n=arrays.length,m=pv.max(arrays,function(d){return d.length});if(m>n){arrays.length=m;for(var i=n;i<m;i++){arrays[i]=new Array(n)}for(var i=0;i<n;i++){for(var j=i+1;j<m;j++){var t=arrays[i][j];arrays[i][j]=arrays[j][i];arrays[j][i]=t}}}else{for(var i=0;i<m;i++){arrays[i].length=n}for(var i=0;i<n;i++){for(var j=0;j<i;j++){var t=arrays[i][j];arrays[i][j]=arrays[j][i];arrays[j][i]=t}}}arrays.length=m;for(var i=0;i<m;i++){arrays[i].length=n}return arrays};pv.normalize=function(array,f){var norm=pv.map(array,f),sum=pv.sum(norm);for(var i=0;i<norm.length;i++)norm[i]/=sum;return norm};pv.permute=function(array,indexes,f){if(!f)f=pv.identity;var p=new Array(indexes.length),o={};indexes.forEach(function(j,i){o.index=j;p[i]=f.call(o,array[j])});return p};pv.numerate=function(keys,f){if(!f)f=pv.identity;var map={},o={};keys.forEach(function(x,i){o.index=i;map[f.call(o,x)]=i});return map};pv.uniq=function(array,f){if(!f)f=pv.identity;var map={},keys=[],o={},y;array.forEach(function(x,i){o.index=i;y=f.call(o,x);if(!(y in map))map[y]=keys.push(y)});return keys};pv.naturalOrder=function(a,b){return(a<b)?-1:((a>b)?1:0)};pv.reverseOrder=function(b,a){return(a<b)?-1:((a>b)?1:0)};pv.search=function(array,value,f){if(!f)f=pv.identity;var low=0,high=array.length-1;while(low<=high){var mid=(low+high)>>1,midValue=f(array[mid]);if(midValue<value)low=mid+1;else if(midValue>value)high=mid-1;else return mid}return-low-1};pv.search.index=function(array,value,f){var i=pv.search(array,value,f);return(i<0)?(-i-1):i};pv.range=function(start,stop,step){if(arguments.length==1){stop=start;start=0}if(step==undefined)step=1;if((stop-start)/step==Infinity)throw new Error("range must be finite");var array=[],i=0,j;stop-=(stop-start)*1e-10;if(step<0){while((j=start+step*i++)>stop){array.push(j)}}else{while((j=start+step*i++)<stop){array.push(j)}}return array};pv.random=function(start,stop,step){if(arguments.length==1){stop=start;start=0}if(step==undefined)step=1;return step?(Math.floor(Math.random()*(stop-start)/step)*step+start):(Math.random()*(stop-start)+start)};pv.sum=function(array,f){var o={};return array.reduce(f?function(p,d,i){o.index=i;return p+f.call(o,d)}:function(p,d){return p+d},0)};pv.max=function(array,f){if(f==pv.index)return array.length-1;return Math.max.apply(null,f?pv.map(array,f):array)};pv.max.index=function(array,f){if(!array.length)return-1;if(f==pv.index)return array.length-1;if(!f)f=pv.identity;var maxi=0,maxx=-Infinity,o={};for(var i=0;i<array.length;i++){o.index=i;var x=f.call(o,array[i]);if(x>maxx){maxx=x;maxi=i}}return maxi};pv.min=function(array,f){if(f==pv.index)return 0;return Math.min.apply(null,f?pv.map(array,f):array)};pv.min.index=function(array,f){if(!array.length)return-1;if(f==pv.index)return 0;if(!f)f=pv.identity;var mini=0,minx=Infinity,o={};for(var i=0;i<array.length;i++){o.index=i;var x=f.call(o,array[i]);if(x<minx){minx=x;mini=i}}return mini};pv.mean=function(array,f){return pv.sum(array,f)/array.length};pv.median=function(array,f){if(f==pv.index)return(array.length-1)/2;array=pv.map(array,f).sort(pv.naturalOrder);if(array.length%2)return array[Math.floor(array.length/2)];var i=array.length/2;return(array[i-1]+array[i])/2};pv.variance=function(array,f){if(array.length<1)return NaN;if(array.length==1)return 0;var mean=pv.mean(array,f),sum=0,o={};if(!f)f=pv.identity;for(var i=0;i<array.length;i++){o.index=i;var d=f.call(o,array[i])-mean;sum+=d*d}return sum};pv.deviation=function(array,f){return Math.sqrt(pv.variance(array,f)/(array.length-1))};pv.log=function(x,b){return Math.log(x)/Math.log(b)};pv.logSymmetric=function(x,b){return(x==0)?0:((x<0)?-pv.log(-x,b):pv.log(x,b))};pv.logAdjusted=function(x,b){if(!isFinite(x))return x;var negative=x<0;if(x<b)x+=(b-x)/b;return negative?-pv.log(x,b):pv.log(x,b)};pv.logFloor=function(x,b){return(x>0)?Math.pow(b,Math.floor(pv.log(x,b))):-Math.pow(b,-Math.floor(-pv.log(-x,b)))};pv.logCeil=function(x,b){return(x>0)?Math.pow(b,Math.ceil(pv.log(x,b))):-Math.pow(b,-Math.ceil(-pv.log(-x,b)))};(function(){var radians=Math.PI/180,degrees=180/Math.PI;pv.radians=function(degrees){return radians*degrees};pv.degrees=function(radians){return degrees*radians}})();pv.keys=function(map){var array=[];for(var key in map){array.push(key)}return array};pv.entries=function(map){var array=[];for(var key in map){array.push({key:key,value:map[key]})}return array};pv.values=function(map){var array=[];for(var key in map){array.push(map[key])}return array};pv.dict=function(keys,f){var m={},o={};for(var i=0;i<keys.length;i++){if(i in keys){var k=keys[i];o.index=i;m[k]=f.call(o,k)}}return m};pv.hasOwnProp=Object.prototype.hasOwnProperty;pv.copyOwn=function(a,b){if(b){var hop=pv.hasOwnProp;for(var p in b){if(hop.call(b,p)){a[p]=b[p]}}}return a};pv.dom=function(map){return new pv.Dom(map)};pv.Dom=function(map){this.$map=map};pv.Dom.prototype.$leaf=function(n){return typeof n!="object"};pv.Dom.prototype.leaf=function(f){if(arguments.length){this.$leaf=f;return this}return this.$leaf};pv.Dom.prototype.root=function(nodeName){var leaf=this.$leaf,root=recurse(this.$map);function recurse(map){var n=new pv.Dom.Node();for(var k in map){var v=map[k];n.appendChild(leaf(v)?new pv.Dom.Node(v):recurse(v)).nodeName=k}return n}root.nodeName=nodeName;return root};pv.Dom.prototype.nodes=function(){return this.root().nodes()};pv.Dom.Node=function(value){if(value!==undefined){this.nodeValue=value}this.childNodes=[]};pv.Dom.Node.prototype.nodeValue=undefined;pv.Dom.Node.prototype.parentNode=null;pv.Dom.Node.prototype.firstChild=null;pv.Dom.Node.prototype.lastChild=null;pv.Dom.Node.prototype.previousSibling=null;pv.Dom.Node.prototype.nextSibling=null;pv.Dom.Node.prototype._firstDirtyChildIndex=Infinity;pv.Dom.Node.prototype.removeChild=function(n){var i=this.childNodes.indexOf(n);if(i===-1)throw new Error("child not found");return this.removeAt(i)};pv.Dom.Node.prototype.appendChild=function(n){var pn=n.parentNode;if(pn)pn.removeChild(n);var lc=this.lastChild;n.parentNode=this;n.previousSibling=lc;if(lc){lc.nextSibling=n;n._childIndex=lc._childIndex+1}else{this.firstChild=n;n._childIndex=0}this.lastChild=n;this.childNodes.push(n);return n};pv.Dom.Node.prototype.insertBefore=function(n,r){if(!r)return this.appendChild(n);var ns=this.childNodes;var i=ns.indexOf(r);if(i===-1)throw new Error("child not found");return this.insertAt(n,i)};pv.Dom.Node.prototype.insertAt=function(n,i){if(i==null){return this.appendChild(n)}var ns=this.childNodes;var L=ns.length;if(i===L){return this.appendChild(n)}if(i>L){throw new Error("Index out of range.")}var ni=i+1;var firstDirtyIndex=this._firstDirtyChildIndex;if(ni<firstDirtyIndex){this._firstDirtyChildIndex=ni}var pn=n.parentNode;if(pn){pn.removeChild(n)}var r=ns[i];n.parentNode=this;n.nextSibling=r;n._childIndex=i;var psib=n.previousSibling=r.previousSibling;if(psib){psib.nextSibling=n}else{if(r===this.lastChild){this.lastChild=n}this.firstChild=n}this.childNodes.splice(i,0,n);return n};pv.Dom.Node.prototype.removeAt=function(i){var ns=this.childNodes;var n=ns[i];if(n){ns.splice(i,1);if(i<ns.length){var firstDirtyIndex=this._firstDirtyChildIndex;if(i<firstDirtyIndex){this._firstDirtyChildIndex=i}}var psib=n.previousSibling;if(psib){psib.nextSibling=n.nextSibling}else{this.firstChild=n.nextSibling}var nsib=n.nextSibling;if(nsib){nsib.previousSibling=n.previousSibling}else{this.lastChild=n.previousSibling}delete n.nextSibling;delete n.previousSibling;delete n.parentNode}return n};pv.Dom.Node.prototype.replaceChild=function(n,r){var ns=this.childNodes;var i=ns.indexOf(r);if(i===-1)throw new Error("child not found");var pn=n.parentNode;if(pn)pn.removeChild(n);n.parentNode=this;n.nextSibling=r.nextSibling;n._childIndex=r._childIndex;var psib=n.previousSibling=r.previousSibling;if(psib)psib.nextSibling=n;else this.firstChild=n;var nsib=r.nextSibling;if(nsib)nsib.previousSibling=n;else this.lastChild=n;ns[i]=n;return r};pv.Dom.Node.prototype.childIndex=function(){var p=this.parentNode;if(p){var i=p._firstDirtyChildIndex;if(i<Infinity){var ns=p.childNodes;if(i<ns.length){for(var c=ns[i];c;c=c.nextSibling){c._childIndex=i++}}delete p._firstDirtyChildIndex}return this._childIndex}return-1};pv.Dom.Node.prototype.visitBefore=function(f){function visit(n,i){f(n,i);for(var c=n.firstChild;c;c=c.nextSibling){visit(c,i+1)}}visit(this,0)};pv.Dom.Node.prototype.visitAfter=function(f){function visit(n,i){for(var c=n.firstChild;c;c=c.nextSibling){visit(c,i+1)}f(n,i)}visit(this,0)};pv.Dom.Node.prototype.sort=function(f){if(this.firstChild){delete p._firstDirtyChildIndex;this.childNodes.sort(f);var p=this.firstChild=this.childNodes[0],c;delete p.previousSibling;p._childIndex=0;for(var i=1;i<this.childNodes.length;i++){p.sort(f);c=this.childNodes[i];c._childIndex=i;c.previousSibling=p;p=p.nextSibling=c}this.lastChild=p;delete p.nextSibling;p.sort(f)}return this};pv.Dom.Node.prototype.reverse=function(){var childNodes=[];this.visitAfter(function(n){while(n.lastChild)childNodes.push(n.removeChild(n.lastChild));for(var c;c=childNodes.pop();)n.insertBefore(c,n.firstChild)});return this};pv.Dom.Node.prototype.nodes=function(){var array=[];function flatten(node){array.push(node);node.childNodes.forEach(flatten)}flatten(this,array);return array};pv.Dom.Node.prototype.toggle=function(recursive){if(recursive)return this.toggled?this.visitBefore(function(n){if(n.toggled)n.toggle()}):this.visitAfter(function(n){if(!n.toggled)n.toggle()});var n=this;if(n.toggled){for(var c;c=n.toggled.pop();)n.appendChild(c);delete n.toggled}else if(n.lastChild){n.toggled=[];while(n.lastChild)n.toggled.push(n.removeChild(n.lastChild))}};pv.nodes=function(values){var root=new pv.Dom.Node();for(var i=0;i<values.length;i++){root.appendChild(new pv.Dom.Node(values[i]))}return root.nodes()};pv.tree=function(array){return new pv.Tree(array)};pv.Tree=function(array){this.array=array};pv.Tree.prototype.keys=function(k){this.k=k;return this};pv.Tree.prototype.value=function(v){this.v=v;return this};pv.Tree.prototype.map=function(){var map={},o={};for(var i=0;i<this.array.length;i++){o.index=i;var value=this.array[i],keys=this.k.call(o,value),node=map;for(var j=0;j<keys.length-1;j++){node=node[keys[j]]||(node[keys[j]]={})}node[keys[j]]=this.v?this.v.call(o,value):value}return map};pv.nest=function(array){return new pv.Nest(array)};pv.Nest=function(array){this.array=array;this.keys=[]};pv.Nest.prototype.key=function(key){this.keys.push(key);return this};pv.Nest.prototype.sortKeys=function(order){this.keys[this.keys.length-1].order=order||pv.naturalOrder;return this};pv.Nest.prototype.sortValues=function(order){this.order=order||pv.naturalOrder;return this};pv.Nest.prototype.map=function(){var map={},values=[];for(var i,j=0;j<this.array.length;j++){var x=this.array[j];var m=map;for(i=0;i<this.keys.length-1;i++){var k=this.keys[i](x);if(!m[k])m[k]={};m=m[k]}k=this.keys[i](x);if(!m[k]){var a=[];values.push(a);m[k]=a}m[k].push(x)}if(this.order){for(var i=0;i<values.length;i++){values[i].sort(this.order)}}return map};pv.Nest.prototype.entries=function(){function entries(map){var array=[];for(var k in map){var v=map[k];array.push({key:k,values:(v instanceof Array)?v:entries(v)})};return array}function sort(array,i){var o=this.keys[i].order;if(o)array.sort(function(a,b){return o(a.key,b.key)});if(++i<this.keys.length){for(var j=0;j<array.length;j++){sort.call(this,array[j].values,i)}}return array}return sort.call(this,entries(this.map()),0)};pv.Nest.prototype.rollup=function(f){function rollup(map){for(var key in map){var value=map[key];if(value instanceof Array){map[key]=f(value)}else{rollup(value)}}return map}return rollup(this.map())};pv.flatten=function(map){return new pv.Flatten(map)};pv.Flatten=function(map){this.map=map;this.keys=[]};pv.Flatten.prototype.key=function(key,f){this.keys.push({name:key,value:f});delete this.$leaf;return this};pv.Flatten.prototype.leaf=function(f){this.keys.length=0;this.$leaf=f;return this};pv.Flatten.prototype.array=function(){var entries=[],stack=[],keys=this.keys,leaf=this.$leaf;if(leaf){function recurse(value,i){if(leaf(value)){entries.push({keys:stack.slice(),value:value})}else{for(var key in value){stack.push(key);recurse(value[key],i+1);stack.pop()}}}recurse(this.map,0);return entries}function visit(value,i){if(i<keys.length-1){for(var key in value){stack.push(key);visit(value[key],i+1);stack.pop()}}else{entries.push(stack.concat(value))}}visit(this.map,0);return entries.map(function(stack){var m={};for(var i=0;i<keys.length;i++){var k=keys[i],v=stack[i];m[k.name]=k.value?k.value.call(null,v):v}return m})};pv.Transform=function(){};pv.Transform.prototype={k:1,x:0,y:0};pv.Transform.identity=new pv.Transform();pv.Transform.prototype.translate=function(x,y){var v=new pv.Transform();v.k=this.k;v.x=this.k*x+this.x;v.y=this.k*y+this.y;return v};pv.Transform.prototype.scale=function(k){var v=new pv.Transform();v.k=this.k*k;v.x=this.x;v.y=this.y;return v};pv.Transform.prototype.invert=function(){var v=new pv.Transform(),k=1/this.k;v.k=k;v.x=-this.x*k;v.y=-this.y*k;return v};pv.Transform.prototype.times=function(m){var v=new pv.Transform();v.k=this.k*m.k;v.x=this.k*m.x+this.x;v.y=this.k*m.y+this.y;return v};pv.Scale=function(){};pv.Scale.interpolator=function(start,end){if(typeof start=="number"){return function(t){return t*(end-start)+start}}var startGradient=(start.type&&start.type!=='solid');var endGradient=(end.type&&end.type!=='solid');if(startGradient||endGradient){start=startGradient?start:pv.color(start).rgb();end=endGradient?end:pv.color(end).rgb();return function(t){return t<0.5?start:end}}start=pv.color(start).rgb();end=pv.color(end).rgb();return function(t){var a=start.a*(1-t)+end.a*t;if(a<1e-5)a=0;return(start.a==0)?pv.rgb(end.r,end.g,end.b,a):((end.a==0)?pv.rgb(start.r,start.g,start.b,a):pv.rgb(Math.round(start.r*(1-t)+end.r*t),Math.round(start.g*(1-t)+end.g*t),Math.round(start.b*(1-t)+end.b*t),a))}};pv.Scale.common={by:function(f){var scale=this;function by(){return scale(f.apply(this,arguments))}for(var method in scale)by[method]=scale[method];return by},by1:function(f){var scale=this;function by1(x){return scale(f.call(this,x))}for(var method in scale)by1[method]=scale[method];return by1},transform:function(t){var scale=this;function transfScale(){return t.call(this,scale.apply(scale,arguments))}for(var method in scale)transfScale[method]=scale[method];return transfScale}};pv.Scale.quantitative=function(){var d=[0,1],l=[0,1],r=[0,1],i=[pv.identity],type=Number,n=false,f=pv.identity,g=pv.identity,tickFormat=String,tickFormatter=null,dateTickFormat,dateTickPrecision,usedDateTickPrecision,usedNumberExponent;function newDate(x){return new Date(x)}function scale(x){var j=pv.search(d,x);if(j<0)j=-j-2;j=Math.max(0,Math.min(i.length-1,j));return i[j]((f(x)-l[j])/(l[j+1]-l[j]))}scale.transform=function(forward,inverse){f=function(x){return n?-forward(-x):forward(x)};g=function(y){return n?-inverse(-y):inverse(y)};l=d.map(f);return this};scale.domain=function(array,min,max){if(arguments.length){var o;if(array instanceof Array){if(arguments.length<2)min=pv.identity;if(arguments.length<3)max=min;o=array.length&&min(array[0]);d=array.length?[pv.min(array,min),pv.max(array,max)]:[]}else{o=array;d=Array.prototype.slice.call(arguments).map(Number)}if(!d.length)d=[-Infinity,Infinity];else if(d.length==1)d=[d[0],d[0]];n=(d[0]||d[d.length-1])<0;l=d.map(f);type=(o instanceof Date)?newDate:Number;return this}return d.map(type)};scale.range=function(){if(arguments.length){r=Array.prototype.slice.call(arguments);if(!r.length)r=[-Infinity,Infinity];else if(r.length==1)r=[r[0],r[0]];i=[];for(var j=0;j<r.length-1;j++){i.push(pv.Scale.interpolator(r[j],r[j+1]))}return this}return r};scale.invert=function(y){var j=pv.search(r,y);if(j<0)j=-j-2;j=Math.max(0,Math.min(i.length-1,j));return type(g(l[j]+(y-r[j])/(r[j+1]-r[j])*(l[j+1]-l[j])))};scale.ticks=function(m,options){var start=d[0],end=d[d.length-1],reverse=end<start,min=reverse?end:start,max=reverse?start:end,span=max-min;if(!span||!isFinite(span)){if(type==newDate)tickFormat=pv.Format.date("%x");return[type(min)]}if(type==newDate){function floor(d,p){switch(p){case 31536e6:d.setMonth(0);case 2592e6:d.setDate(1);case 6048e5:if(p==6048e5)d.setDate(d.getDate()-d.getDay());case 864e5:d.setHours(0);case 36e5:d.setMinutes(0);case 6e4:d.setSeconds(0);case 1e3:d.setMilliseconds(0)}}var nn=5;var precision,format,increment,step=1;if(span>=nn*31536e6){precision=31536e6;format="%Y";increment=function(d){d.setFullYear(d.getFullYear()+step)}}else if(span>=nn*2592e6){precision=2592e6;format="%m/%Y";increment=function(d){d.setMonth(d.getMonth()+step)}}else if(span>=nn*6048e5){precision=6048e5;format="%m/%d";increment=function(d){d.setDate(d.getDate()+7*step)}}else if(span>=nn*864e5){precision=864e5;format="%m/%d";increment=function(d){d.setDate(d.getDate()+step)}}else if(span>=nn*36e5){precision=36e5;format="%I:%M %p";increment=function(d){d.setHours(d.getHours()+step)}}else if(span>=nn*6e4){precision=6e4;format="%I:%M %p";increment=function(d){d.setMinutes(d.getMinutes()+step)}}else if(span>=nn*1e3){precision=1e3;format="%I:%M:%S";increment=function(d){d.setSeconds(d.getSeconds()+step)}}else{precision=1;format="%S.%Qs";increment=function(d){d.setTime(d.getTime()+step)}}precision=dateTickPrecision?dateTickPrecision:precision;format=dateTickFormat?dateTickFormat:format;usedDateTickPrecision=precision;tickFormat=pv.Format.date(format);var date=new Date(min),dates=[];floor(date,precision);var n=span/precision;if(n>10){switch(precision){case 36e5:{step=(n>20)?6:3;date.setHours(Math.floor(date.getHours()/step)*step);break}case 2592e6:{step=(n>24)?3:((n>12)?2:1);date.setMonth(Math.floor(date.getMonth()/step)*step);break}case 6048e5:{step=(n>15)?3:(n>10?2:1);date.setDate(Math.floor(date.getDate()/(7*step))*(7*step));break}case 864e5:{step=(n>=30)?5:((n>=15)?3:2);date.setDate(Math.floor(date.getDate()/step)*step);break}case 6e4:{step=(n>30)?15:((n>15)?10:5);date.setMinutes(Math.floor(date.getMinutes()/step)*step);break}case 1e3:{step=(n>90)?15:((n>60)?10:5);date.setSeconds(Math.floor(date.getSeconds()/step)*step);break}case 1:{step=(n>1000)?250:((n>200)?100:((n>100)?50:((n>50)?25:5)));date.setMilliseconds(Math.floor(date.getMilliseconds()/step)*step);break}default:{step=pv.logCeil(n/15,10);if(n/step<2)step/=5;else if(n/step<5)step/=2;date.setFullYear(Math.floor(date.getFullYear()/step)*step);break}}}if(dateTickPrecision){step=1;increment=function(d){d.setSeconds(d.getSeconds()+step*dateTickPrecision/1000)}}while(true){increment(date);if(date>max)break;dates.push(new Date(date))}return reverse?dates.reverse():dates}if(m==null){m=10}var roundInside=pv.get(options,'roundInside',true);var exponentMin=pv.get(options,'numberExponentMin',-Infinity);var exponentMax=pv.get(options,'numberExponentMax',+Infinity);var exponent=Math.floor(pv.log(span/m,10));var overflow=false;if(exponent>exponentMax){exponent=exponentMax;overflow=true}else if(exponent<exponentMin){exponent=exponentMin;overflow=true}step=Math.pow(10,exponent);var mObtained=(span/step);var err=m/mObtained;if(err<=.15&&exponent<exponentMax-1){step*=10}else if(err<=.35){step*=5}else if(err<=.75){step*=2}exponent=Math.floor(pv.log(step,10)+1e-10);start=step*Math[roundInside?'ceil':'floor'](min/step);end=step*Math[roundInside?'floor':'ceil'](max/step);usedNumberExponent=Math.max(0,-exponent);tickFormat=pv.Format.number().fractionDigits(usedNumberExponent);var ticks=pv.range(start,end+step,step);if(reverse){ticks.reverse()}ticks.roundInside=roundInside;ticks.step=step;ticks.exponent=exponent;ticks.exponentOverflow=overflow;ticks.exponentMin=exponentMin;ticks.exponentMax=exponentMax;return ticks};scale.dateTickFormat=function(){if(arguments.length){dateTickFormat=arguments[0];return this}return dateTickFormat};scale.dateTickPrecision=function(){if(arguments.length){dateTickPrecision=arguments[0];return this}return dateTickPrecision};scale.tickFormatter=function(f){if(arguments.length){tickFormatter=f;return this}return tickFormatter};scale.tickFormat=function(t){if(tickFormatter){return tickFormatter(t,type!==Number?usedDateTickPrecision:usedNumberExponent)}var formatter=tickFormatter||tickFormat;return formatter(t)};scale.nice=function(){if(d.length!=2)return this;var start=d[0],end=d[d.length-1],reverse=end<start,min=reverse?end:start,max=reverse?start:end,span=max-min;if(!span||!isFinite(span))return this;var step=Math.pow(10,Math.round(Math.log(span)/Math.log(10))-1);d=[Math.floor(min/step)*step,Math.ceil(max/step)*step];if(reverse)d.reverse();l=d.map(f);return this};pv.copyOwn(scale,pv.Scale.common);scale.domain.apply(scale,arguments);return scale};pv.Scale.linear=function(){var scale=pv.Scale.quantitative();scale.domain.apply(scale,arguments);return scale};pv.Scale.log=function(){var scale=pv.Scale.quantitative(1,10),b,p,log=function(x){return Math.log(x)/p},pow=function(y){return Math.pow(b,y)};scale.ticks=function(){var d=scale.domain(),n=d[0]<0,i=Math.floor(n?-log(-d[0]):log(d[0])),j=Math.ceil(n?-log(-d[1]):log(d[1])),ticks=[];if(n){ticks.push(-pow(-i));for(;i++<j;)for(var k=b-1;k>0;k--)ticks.push(-pow(-i)*k)}else{for(;i<j;i++)for(var k=1;k<b;k++)ticks.push(pow(i)*k);ticks.push(pow(i))}for(i=0;ticks[i]<d[0];i++);for(j=ticks.length;ticks[j-1]>d[1];j--);return ticks.slice(i,j)};scale.tickFormat=function(t){return t.toPrecision(1)};scale.nice=function(){var d=scale.domain();return scale.domain(pv.logFloor(d[0],b),pv.logCeil(d[1],b))};scale.base=function(v){if(arguments.length){b=Number(v);p=Math.log(b);scale.transform(log,pow);return this}return b};scale.domain.apply(scale,arguments);return scale.base(10)};pv.Scale.root=function(){var scale=pv.Scale.quantitative();scale.power=function(v){if(arguments.length){var b=Number(v),p=1/b;scale.transform(function(x){return Math.pow(x,p)},function(y){return Math.pow(y,b)});return this}return b};scale.domain.apply(scale,arguments);return scale.power(2)};pv.Scale.ordinal=function(){var d=[],i={},r=[],band=0;function scale(x){if(!(x in i))i[x]=d.push(x)-1;return r[i[x]%r.length]}scale.domain=function(array,f){if(arguments.length){array=(array instanceof Array)?((arguments.length>1)?pv.map(array,f):array):Array.prototype.slice.call(arguments);d=[];var seen={};for(var j=0;j<array.length;j++){var o=array[j];if(!(o in seen)){seen[o]=true;d.push(o)}}i=pv.numerate(d);return this}return d};scale.range=function(array,f){if(arguments.length){r=(array instanceof Array)?((arguments.length>1)?pv.map(array,f):array):Array.prototype.slice.call(arguments);if(typeof r[0]=="string")r=r.map(pv.color);r.min=r[0];r.max=r[r.length-1];return this}return r};scale.split=function(min,max){var R=max-min;var N=this.domain().length;var step=0;if(R===0){r=pv.array(N,min)}else if(N){step=(max-min)/N;r=pv.range(min+step/2,max,step)}r.min=min;r.max=max;r.step=step;return this};scale.splitBandedCenter=function(min,max,band){scale.split(min,max);if(band==null){band=1}r.band=r.step*band;r.margin=r.step-r.band;r.min=min;r.max=max;return this};scale.splitBandedFlushCenter=function(min,max,band){if(band==null){band=1}var R=(max-min),N=this.domain().length,S=0,B=0,M=0;if(R===0){r=pv.array(N,min)}else if(N){B=(R*band)/N;M=N>1?((R-N*B)/(N-1)):0;S=M+B;r=pv.range(min+B/2,max,S)}r.step=S;r.band=B;r.margin=M;r.min=min;r.max=max;return this};scale.splitFlush=function(min,max){var n=this.domain().length,step=(max-min)/(n-1);r=(n==1)?[(min+max)/2]:pv.range(min,max+step/2,step);r.min=min;r.max=max;return this};scale.splitBanded=function(min,max,band){if(arguments.length<3)band=1;if(band<0){var n=this.domain().length,total=-band*n,remaining=max-min-total,padding=remaining/(n+1);r=pv.range(min+padding,max,padding-band);r.band=-band}else{var step=(max-min)/(this.domain().length+(1-band));r=pv.range(min+step*(1-band),max,step);r.band=step*band;r.step=step;r.margin=step-r.band}r.min=min;r.max=max;return this};scale.invertIndex=function(y,noRound){var N=this.domain().length;if(N===0){return-1}var r=this.range();var R=r.max-r.min;if(R===0){return 0}var S=R/N;if(y>=r.max){return N}if(y<r.min){return 0}var i=(y-r.min)/S;return noRound?i:Math.round(i)};pv.copyOwn(scale,pv.Scale.common);scale.domain.apply(scale,arguments);return scale};pv.Scale.quantile=function(){var n=-1,j=-1,q=[],d=[],y=pv.Scale.linear();function scale(x){return y(Math.max(0,Math.min(j,pv.search.index(q,x)-1))/j)}scale.quantiles=function(x){if(arguments.length){n=Number(x);if(n<0){q=[d[0]].concat(d);j=d.length-1}else{q=[];q[0]=d[0];for(var i=1;i<=n;i++){q[i]=d[~~(i*(d.length-1)/n)]}j=n-1}return this}return q};scale.domain=function(array,f){if(arguments.length){d=(array instanceof Array)?pv.map(array,f):Array.prototype.slice.call(arguments);d.sort(pv.naturalOrder);scale.quantiles(n);return this}return d};scale.range=function(){if(arguments.length){y.range.apply(y,arguments);return this}return y.range()};pv.copyOwn(scale,pv.Scale.common);scale.domain.apply(scale,arguments);return scale};pv.histogram=function(data,f){var frequency=true;return{bins:function(ticks){var x=pv.map(data,f),bins=[];if(!arguments.length)ticks=pv.Scale.linear(x).ticks();for(var i=0;i<ticks.length-1;i++){var bin=bins[i]=[];bin.x=ticks[i];bin.dx=ticks[i+1]-ticks[i];bin.y=0}for(var i=0;i<x.length;i++){var j=pv.search.index(ticks,x[i])-1,bin=bins[Math.max(0,Math.min(bins.length-1,j))];bin.y++;bin.push(data[i])}if(!frequency)for(var i=0;i<bins.length;i++){bins[i].y/=x.length}return bins},frequency:function(x){if(arguments.length){frequency=Boolean(x);return this}return frequency}}};(function(){pv.Shape=function(){};var _k0={x:1,y:1};pv.Shape.dist2=function(v,w,k){k=k||_k0;var dx=v.x-w.x;var dy=v.y-w.y;var dx2=dx*dx;var dy2=dy*dy;return{cost:dx2+dy2,dist2:k.x*dx2+k.y*dy2}};var pi=Math.PI;var pi2=2*pi;var atan2=Math.atan2;pv.Shape.normalizeAngle=function(a){a=a%pi2;if(a<0){a+=pi2}return a};pv.Shape.atan2Norm=function(dy,dx){var a=atan2(dy,dx);if(a<0){a+=pi2}return a};pv.Shape.prototype.hasArea=function(){return true}}());(function(){var dist2=pv.Shape.dist2;var cos=Math.cos;var sin=Math.sin;var sqrt=Math.sqrt;pv.vector=function(x,y){return new Point(x,y)};pv.Vector=function(x,y){this.x=x;this.y=y};var Point=pv.Shape.Point=pv.Vector;pv.Vector.prototype=pv.extend(pv.Shape);pv.Vector.prototype.perp=function(){return new Point(-this.y,this.x)};pv.Vector.prototype.rotate=function(angle){var c=cos(angle);var s=sin(angle);return new Point(c*this.x-s*this.y,s*this.x+c*this.y)};pv.Vector.prototype.norm=function(){var l=this.length();return this.times(l?(1/l):1)};pv.Vector.prototype.length=function(){return sqrt(this.x*this.x+this.y*this.y)};pv.Vector.prototype.times=function(k){return new Point(this.x*k,this.y*k)};pv.Vector.prototype.plus=function(x,y){return(arguments.length==1)?new Point(this.x+x.x,this.y+x.y):new Point(this.x+x,this.y+y)};pv.Vector.prototype.minus=function(x,y){return(arguments.length==1)?new Point(this.x-x.x,this.y-x.y):new Point(this.x-x,this.y-y)};pv.Vector.prototype.dot=function(x,y){return(arguments.length==1)?this.x*x.x+this.y*x.y:this.x*x+this.y*y};pv.Vector.prototype.hasArea=function(){return false};pv.Vector.prototype.clone=function(){return new Point(this.x,this.y)};pv.Vector.prototype.apply=function(t){return new Point(t.x+(t.k*this.x),t.y+(t.k*this.y))};pv.Vector.prototype.intersectsRect=function(rect){return(this.x>=rect.x)&&(this.x<=rect.x2)&&(this.y>=rect.y)&&(this.y<=rect.y2)};pv.Vector.prototype.containsPoint=function(p){return(this.x===p.x)&&(this.y===p.y)};pv.Vector.prototype.points=function(){return[this]};pv.Vector.prototype.edges=function(){return[]};pv.Vector.prototype.center=function(){return this};pv.Vector.prototype.distance2=function(p,k){return dist2(this,p,k)}}());(function(){var Point=pv.Shape.Point;var dist2=pv.Shape.dist2;pv.Shape.Line=function(x,y,x2,y2){this.x=x||0;this.y=y||0;this.x2=x2||0;this.y2=y2||0};var Line=pv.Shape.Line;Line.prototype=pv.extend(pv.Shape);Line.prototype.hasArea=function(){return false};Line.prototype.clone=function(){return new Line(this.x,this.y,this.x2,this.x2)};Line.prototype.apply=function(t){var x=t.x+(t.k*this.x);var y=t.y+(t.k*this.y);var x2=t.x+(t.k*this.x2);var y2=t.y+(t.k*this.y2);return new Line(x,y,x2,y2)};Line.prototype.points=function(){return[new Point(this.x,this.y),new Point(this.x2,this.y2)]};Line.prototype.edges=function(){return[this]};Line.prototype.center=function(){return new Point((this.x+this.x2)/2,(this.y+this.y2)/2)};Line.prototype.normal=function(at,shapeCenter){var points=this.points();var norm=points[1].minus(points[0]).perp().norm();if(shapeCenter){var outside=points[0].minus(shapeCenter);if(outside.dot(norm)<0){norm=norm.times(-1)}}return norm};Line.prototype.intersectsRect=function(rect){var i,L;var points=this.points();L=points.length;for(i=0;i<L;i++){if(points[i].intersectsRect(rect)){return true}}var edges=rect.edges();L=edges.length;for(i=0;i<L;i++){if(this.intersectsLine(edges[i])){return true}}return false};Line.prototype.containsPoint=function(p){var x=this.x;var x2=this.x2;var y=this.y;var y2=this.y2;return x<=p.x&&p.x<=x2&&((x===x2)?(Math.min(y,y2)<=p.y&&p.y<=Math.max(y,y2)):(Math.abs((y2-y)/(x2-x)*(p.x-x)+y-p.y)<=1e-10))};Line.prototype.intersectsLine=function(b){var a=this,x21=a.x2-a.x,y21=a.y2-a.y,x43=b.x2-b.x,y43=b.y2-b.y,denom=y43*x21-x43*y21;if(denom===0){return false}var y13=a.y-b.y,x13=a.x-b.x,numa=(x43*y13-y43*x13),numb=(x21*y13-y21*x13);if(denom===0){return(numa===0)&&(numb===0)}var ua=numa/denom;if(ua<0||ua>1){return false}var ub=numb/denom;if(ub<0||ub>1){return false}return true};Line.prototype.distance2=function(p,k){var v=this;var w={x:this.x2,y:this.y2};var l2=dist2(v,w).dist2;if(l2<=1e-10){return dist2(p,v,k)}var wvx=w.x-v.x;var wvy=w.y-v.y;var t=((p.x-v.x)*wvx+(p.y-v.y)*wvy)/l2;if(t<0){return dist2(p,v,k)}if(t>1){return dist2(p,w,k)}var proj={x:v.x+t*wvx,y:v.y+t*wvy};return dist2(p,proj,k)}}());(function(){var Point=pv.Shape.Point;var Line=pv.Shape.Line;pv.Shape.Polygon=function(points){this._points=points||[]};var Polygon=pv.Shape.Polygon;Polygon.prototype=pv.extend(pv.Shape);Polygon.prototype.points=function(){return this._points};Polygon.prototype.clone=function(){return new Polygon(this.points().slice())};Polygon.prototype.apply=function(t){var points=this.points();var L=points.length;var points2=new Array(L);for(var i=0;i<L;i++){points2[i]=points[i].apply(t)}return new Polygon(points2)};Polygon.prototype.intersectsRect=function(rect){var i,L;var points=this.points();L=points.length;for(i=0;i<L;i++){if(points[i].intersectsRect(rect)){return true}}var edges=this.edges();L=edges.length;for(i=0;i<L;i++){if(edges[i].intersectsRect(rect)){return true}}return false};Polygon.prototype.edges=function(){var edges=this._edges;if(!edges){edges=this._edges=[];var points=this.points();var L=points.length;if(L){var prevPoint=points[0];var firstPoint=prevPoint;var point;for(var i=1;i<L;i++){point=points[i];edges.push(new Line(prevPoint.x,prevPoint.y,point.x,point.y));prevPoint=point}if(L>2){edges.push(new Line(point.x,point.y,firstPoint.x,firstPoint.y))}}}return edges};Polygon.prototype.distance2=function(p,k){var min={cost:Infinity,dist2:Infinity};this.edges().forEach(function(edge){var d=edge.distance2(p,k);if(d.cost<min.cost){min=d}},this);return min};Polygon.prototype.center=function(){var points=this.points();var x=0;var y=0;for(var i=0,L=points.length;i<L;i++){var p=points[i];x+=p.x;y+=p.y}return new Point(x/L,y/L)};Polygon.prototype.containsPoint=function(p){var bbox=this.bbox();if(!bbox.containsPoint(p)){return false}var e=bbox.dx*0.01;var ray=new Line(bbox.x-e,p.y,p.x,p.y);var intersectCount=0;var edges=this.edges();edges.forEach(function(edge){if(edge.intersectsLine(ray)){intersectCount++}});return(intersectCount&1)===1};Polygon.prototype.bbox=function(){var bbox=this._bbox;if(!bbox){var min,max;this.points().forEach(function(point,index){if(min==null){min={x:point.x,y:point.y}}else{if(point.x<min.x){min.x=point.x}if(point.y<min.y){min.y=point.y}}if(max==null){max={x:point.x,y:point.y}}else{if(point.x>max.x){max.x=point.x}if(point.y>max.y){max.y=point.y}}});if(min){bbox=this._bbox=new pv.Shape.Rect(min.x,min.y,max.x-min.x,max.y-min.y)}}return bbox}}());(function(){var Point=pv.Shape.Point;var Line=pv.Shape.Line;pv.Shape.Rect=function(x,y,dx,dy){this.x=x||0;this.y=y||0;this.dx=dx||0;this.dy=dy||0;if(this.dx<0){this.dx=-this.dx;this.x=this.x-this.dx}if(this.dy<0){this.dy=-this.dy;this.y=this.y-this.dy}this.x2=this.x+this.dx;this.y2=this.y+this.dy};var Rect=pv.Shape.Rect;Rect.prototype=pv.extend(pv.Shape.Polygon);Rect.prototype.clone=function(){var r2=Object.create(Rect.prototype);r2.x=this.x;r2.y=this.y;r2.dx=this.dx;r2.dy=this.dy;r2.x2=this.x2;r2.y2=this.y2;return r2};Rect.prototype.apply=function(t){var x=t.x+(t.k*this.x);var y=t.y+(t.k*this.y);var dx=t.k*this.dx;var dy=t.k*this.dy;return new Rect(x,y,dx,dy)};Rect.prototype.containsPoint=function(p){return this.x<=p.x&&p.x<=this.x2&&this.y<=p.y&&p.y<=this.y2};Rect.prototype.intersectsRect=function(rect){return(this.x2>rect.x)&&(this.x<rect.x2)&&(this.y2>rect.y)&&(this.y<rect.y2)};Rect.prototype.edges=function(){if(!this._edges){var x=this.x,y=this.y,x2=this.x2,y2=this.y2;this._edges=[new Line(x,y,x2,y),new Line(x2,y,x2,y2),new Line(x2,y2,x,y2),new Line(x,y2,x,y)]}return this._edges};Rect.prototype.center=function(){return new Point(this.x+this.dx/2,this.y+this.dy/2)};Rect.prototype.points=function(){var points=this._points;if(!points){var x=this.x,y=this.y,x2=this.x2,y2=this.y2;points=this._points=[new Point(x,y),new Point(x2,y),new Point(x2,y2),new Point(x,y2)]}return points};Rect.prototype.bbox=function(){return this.clone()}}());(function(){var Point=pv.Shape.Point;var dist2=pv.Shape.dist2;var sqrt=Math.sqrt;var abs=Math.abs;var pow=Math.pow;pv.Shape.Circle=function(x,y,radius){this.x=x||0;this.y=y||0;this.radius=radius||0};var Circle=pv.Shape.Circle;Circle.prototype=pv.extend(pv.Shape);Circle.prototype.clone=function(){return new Circle(this.x,this.y,this.radius)};Circle.prototype.apply=function(t){var x=t.x+(t.k*this.x);var y=t.y+(t.k*this.y);var r=t.k*this.radius;return new Circle(x,y,r)};Circle.prototype.intersectsRect=function(rect){var dx2=rect.dx/2,dy2=rect.dy/2,r=this.radius;var circleDistX=abs(this.x-rect.x-dx2),circleDistY=abs(this.y-rect.y-dy2);if((circleDistX>dx2+r)||(circleDistY>dy2+r)){return false}if(circleDistX<=dx2||circleDistY<=dy2){return true}var sqCornerDistance=pow(circleDistX-dx2,2)+pow(circleDistY-dy2,2);return sqCornerDistance<=r*r};Circle.prototype.intersectLine=function(line,isInfiniteLine){var baX=line.x2-line.x;var baY=line.y2-line.y;var caX=this.x-line.x;var caY=this.y-line.y;var ba2=baX*baX+baY*baY;var bBy2=baX*caX+baY*caY;var r=this.radius;var c=caX*caX+caY*caY-r*r;var pBy2=bBy2/ba2;var disc=pBy2*pBy2-c/ba2;if(disc<0){return}var discSqrt=sqrt(disc);var t1=pBy2-discSqrt;var t2=pBy2+discSqrt;var ps=[];if(isInfiniteLine||(t1>=0&&t1<=1)){ps.push(new Point(line.x+baX*t1,line.y+baY*t1))}if(disc!==0){if(isInfiniteLine||(t2>=0&&t2<=1)){ps.push(new Point(line.x+baX*t2,line.y+baY*t2))}}return ps};Circle.prototype.points=function(){return[this.center()]};Circle.prototype.center=function(){return new Point(this.x,this.y)};Circle.prototype.normal=function(at){return at.minus(this.x,this.y).norm()};Circle.prototype.containsPoint=function(p){var dx=p.x-this.x,dy=p.y-this.y,r=this.radius;return dx*dx+dy*dy<=r*r};Circle.prototype.distance2=function(p,k){var dx=p.x-this.x,dy=p.y-this.y,r=this.radius;var b=p.minus(this).norm().times(r).plus(this);var dBorder=dist2(p,b,k);return dBorder}}());(function(){var Point=pv.Shape.Point;var dist2=pv.Shape.dist2;var normalizeAngle=pv.Shape.normalizeAngle;var atan2Norm=pv.Shape.atan2Norm;var cos=Math.cos;var sin=Math.sin;var sqrt=Math.sqrt;pv.Shape.Arc=function(x,y,radius,startAngle,angleSpan){this.x=x;this.y=y;this.radius=radius;this.startAngle=normalizeAngle(startAngle);this.angleSpan=normalizeAngle(angleSpan);this.endAngle=this.startAngle+this.angleSpan};var Arc=pv.Shape.Arc;Arc.prototype=pv.extend(pv.Shape);Arc.prototype.hasArea=function(){return false};Arc.prototype.clone=function(){var arc=Object.create(Arc.prototype);var me=this;arc.x=me.x;arc.y=me.y;arc.radius=me.radius;arc.startAngle=me.startAngle;arc.angleSpan=me.angleSpan;arc.endAngle=me.endAngle;return arc};Arc.prototype.apply=function(t){var x=t.x+(t.k*this.x);var y=t.y+(t.k*this.y);var r=t.k*this.radius;return new Arc(x,y,r,this.startAngle,this.angleSpan)};Arc.prototype.containsPoint=function(p){var dx=p.x-this.x;var dy=p.y-this.y;var r=sqrt(dx*dx+dy*dy);if(Math.abs(r-this.radius)<=1e-10){var a=atan2Norm(dy,dx);return this.startAngle<=a&&a<=this.endAngle}return false};Arc.prototype.intersectsRect=function(rect){var i,L;var points=this.points();var L=points.length;for(i=0;i<L;i++){if(points[i].intersectsRect(rect)){return true}}var edges=rect.edges();L=edges.length;for(i=0;i<L;i++){if(this.intersectLine(edges[i])){return true}}return false};var circleIntersectLine=pv.Shape.Circle.prototype.intersectLine;Arc.prototype.intersectLine=function(line,isInfiniteLine){var ps=circleIntersectLine.call(this,line,isInfiniteLine);if(ps){ps=ps.filter(function(p){return this.containsPoint(p)},this);if(ps.length){return ps}}};Arc.prototype.points=function(){var x=this.x;var y=this.y;var r=this.radius;var ai=this.startAngle;var af=this.endAngle;return[new Point(x+r*cos(ai),y+r*sin(ai)),new Point(x+r*cos(af),y+r*sin(af))]};Arc.prototype.center=function(){var x=this.x;var y=this.y;var r=this.radius;var am=(this.startAngle+this.endAngle)/2;return new Point(x+r*cos(am),y+r*sin(am))};Arc.prototype.normal=function(at,shapeCenter){var norm=at.minus(this.x,this.y).norm();if(shapeCenter){var outside=this.center().minus(shapeCenter);if(outside.dot(norm)<0){norm=norm.times(-1)}}return norm};Arc.prototype.distance2=function(p,k){var dx=p.x-this.x;var dy=p.y-this.y;var a=atan2Norm(dy,dx);if(this.startAngle<=a&&a<=this.endAngle){var b=new Point(this.x+this.radius*cos(a),this.y+this.radius*sin(a));return dist2(p,b,k)}var points=this.points();var d1=dist2(p,points[0],k);var d2=dist2(p,points[1],k);return d1.cost<d2.cost?d1:d2}}());(function(){var Arc=pv.Shape.Arc;var Line=pv.Shape.Line;var Point=pv.Shape.Point;var cos=Math.cos;var sin=Math.sin;var sqrt=Math.sqrt;var atan2Norm=pv.Shape.atan2Norm;var normalizeAngle=pv.Shape.normalizeAngle;pv.Shape.Wedge=function(x,y,innerRadius,outerRadius,startAngle,angleSpan){this.x=x;this.y=y;this.innerRadius=innerRadius;this.outerRadius=outerRadius;this.startAngle=normalizeAngle(startAngle);this.angleSpan=normalizeAngle(angleSpan);this.endAngle=this.startAngle+this.angleSpan};var Wedge=pv.Shape.Wedge;Wedge.prototype=pv.extend(pv.Shape);Wedge.prototype.clone=function(){return new Wedge(this.x,this.y,this.innerRadius,this.outerRadius,this.startAngle,this.angleSpan)};Wedge.prototype.apply=function(t){var x=t.x+(t.k*this.x);var y=t.y+(t.k*this.y);var ir=t.k*this.innerRadius;var or=t.k*this.outerRadius;return new Wedge(x,y,ir,or,this.startAngle,this.angleSpan)};Wedge.prototype.containsPoint=function(p){var dx=p.x-this.x;var dy=p.y-this.y;var r=sqrt(dx*dx+dy*dy);if(r>=this.innerRadius&&r<=this.outerRadius){var a=atan2Norm(dy,dx);return this.startAngle<=a&&a<=this.endAngle}return false};Wedge.prototype.intersectsRect=function(rect){var i,L;var points=this.points();L=points.length;for(i=0;i<L;i++){if(points[i].intersectsRect(rect)){return true}}points=rect.points();L=points.length;for(i=0;i<L;i++){if(this.containsPoint(points[i])){return true}}var edges=this.edges();L=edges.length;for(i=0;i<L;i++){if(edges[i].intersectsRect(rect)){return true}}return false};Wedge.prototype.points=function(){if(!this._points){this.edges()}return this._points};Wedge.prototype.edges=function(){var edges=this._edges;if(!edges){var x=this.x;var y=this.y;var ir=this.innerRadius;var or=this.outerRadius;var ai=this.startAngle;var af=this.endAngle;var aa=this.angleSpan;var cai=cos(ai);var sai=sin(ai);var caf=cos(af);var saf=sin(af);var pii,pfi;if(ir>0){pii=new Point(x+ir*cai,y+ir*sai);pfi=new Point(x+ir*caf,y+ir*saf)}else{pii=pfi=new Point(x,y)}var pio=new Point(x+or*cai,y+or*sai);var pfo=new Point(x+or*caf,y+or*saf);edges=this._edges=[];if(ir>0){edges.push(new Arc(x,y,ir,ai,aa))}edges.push(new Line(pii.x,pii.y,pio.x,pio.y),new Arc(x,y,or,ai,aa),new Line(pfi.x,pfi.y,pfo.x,pfo.y));var points=this._points=[pii,pio,pfo];if(ir>0){points.push(pfi)}}return edges};Wedge.prototype.distance2=function(p,k){var min={cost:Infinity,dist2:Infinity};this.edges().forEach(function(edge){var d=edge.distance2(p,k);if(d.cost<min.cost){min=d}});return min};Wedge.prototype.center=function(){var midAngle=(this.startAngle+this.endAngle)/2;var midRadius=(this.innerRadius+this.outerRadius)/2;return new Point(this.x+midRadius*cos(midAngle),this.y+midRadius*sin(midAngle))}}());pv.color=function(format){if(format.rgb)return format.rgb();var m1=/([a-z]+)\((.*)\)/i.exec(format);if(m1){var m2=m1[2].split(","),a=1;switch(m1[1]){case"hsla":case"rgba":{a=parseFloat(m2[3]);if(!a)return pv.Color.transparent;break}}switch(m1[1]){case"hsla":case"hsl":{var h=parseFloat(m2[0]),s=parseFloat(m2[1])/100, l=parseFloat(m2[2])/100; return(new pv.Color.Hsl(h,s,l,a)).rgb()}case"rgba":case"rgb":{function parse(c){var f=parseFloat(c);return(c[c.length-1]=='%')?Math.round(f*2.55):f}var r=parse(m2[0]),g=parse(m2[1]),b=parse(m2[2]);return pv.rgb(r,g,b,a)}}}var named=pv.Color.names[format];if(named)return named;if(format.charAt(0)=="#"){var r,g,b;if(format.length==4){r=format.charAt(1);r+=r;g=format.charAt(2);g+=g;b=format.charAt(3);b+=b}else if(format.length==7){r=format.substring(1,3);g=format.substring(3,5);b=format.substring(5,7)}return pv.rgb(parseInt(r,16),parseInt(g,16),parseInt(b,16),1)}return new pv.Color(format,1)};pv.Color=function(color,opacity){this.color=color;this.opacity=opacity;this.key="solid "+color+" alpha("+opacity+")"};pv.Color.prototype.hsl=function(){return this.rgb().hsl()};pv.Color.prototype.brighter=function(k){return this.rgb().brighter(k)};pv.Color.prototype.darker=function(k){return this.rgb().darker(k)};pv.rgb=function(r,g,b,a){return new pv.Color.Rgb(r,g,b,(arguments.length==4)?a:1)};pv.Color.Rgb=function(r,g,b,a){pv.Color.call(this,a?("rgb("+r+","+g+","+b+")"):"none",a);this.r=r;this.g=g;this.b=b;this.a=a};pv.Color.Rgb.prototype=pv.extend(pv.Color);pv.Color.Rgb.prototype.red=function(r){return pv.rgb(r,this.g,this.b,this.a)};pv.Color.Rgb.prototype.green=function(g){return pv.rgb(this.r,g,this.b,this.a)};pv.Color.Rgb.prototype.blue=function(b){return pv.rgb(this.r,this.g,b,this.a)};pv.Color.Rgb.prototype.alpha=function(a){return pv.rgb(this.r,this.g,this.b,a)};pv.Color.Rgb.prototype.rgb=function(){return this};pv.Color.Rgb.prototype.brighter=function(k){k=Math.pow(0.7,arguments.length?k:1);var r=this.r,g=this.g,b=this.b,i=30;if(!r&&!g&&!b)return pv.rgb(i,i,i,this.a);if(r&&(r<i))r=i;if(g&&(g<i))g=i;if(b&&(b<i))b=i;return pv.rgb(Math.min(255,Math.floor(r/k)),Math.min(255,Math.floor(g/k)),Math.min(255,Math.floor(b/k)),this.a)};pv.Color.Rgb.prototype.darker=function(k){k=Math.pow(0.7,arguments.length?k:1);return pv.rgb(Math.max(0,Math.floor(k*this.r)),Math.max(0,Math.floor(k*this.g)),Math.max(0,Math.floor(k*this.b)),this.a)};pv.Color.Rgb.prototype.hsl=function(){var r=this.r/255;var g=this.g/255;var b=this.b/255;var max=Math.max(r,g,b);var min=Math.min(r,g,b);var l=(max+min)/2;var h,s;if(max===min){h=s=0}else{var d=max-min;s=l>0.5?d/(2-max-min):d/(max+min);switch(max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break}h/=6}return pv.hsl(h*360,s,l,this.a)};pv.hsl=function(h,s,l,a){return new pv.Color.Hsl(h,s,l,(arguments.length==4)?a:1)};pv.Color.Hsl=function(h,s,l,a){pv.Color.call(this,"hsl("+h+","+(s*100)+"%,"+(l*100)+"%)",a);this.h=h;this.s=s;this.l=l;this.a=a};pv.Color.Hsl.prototype=pv.extend(pv.Color);pv.Color.Hsl.prototype.hsl=function(){return this};pv.Color.Hsl.prototype.hue=function(h){return pv.hsl(h,this.s,this.l,this.a)};pv.Color.Hsl.prototype.saturation=function(s){return pv.hsl(this.h,s,this.l,this.a)};pv.Color.Hsl.prototype.lightness=function(l){return pv.hsl(this.h,this.s,l,this.a)};pv.Color.Hsl.prototype.alpha=function(a){return pv.hsl(this.h,this.s,this.l,a)};pv.Color.Hsl.prototype.rgb=function(){var h=this.h,s=this.s,l=this.l;h=h%360;if(h<0)h+=360;s=Math.max(0,Math.min(s,1));l=Math.max(0,Math.min(l,1));var m2=(l<=.5)?(l*(1+s)):(l+s-l*s);var m1=2*l-m2;function v(h){if(h>360)h-=360;else if(h<0)h+=360;if(h<60)return m1+(m2-m1)*h/60;if(h<180)return m2;if(h<240)return m1+(m2-m1)*(240-h)/60;return m1}function vv(h){return Math.round(v(h)*255)}return pv.rgb(vv(h+120),vv(h),vv(h-120),this.a)};pv.Color.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",transparent:pv.Color.transparent=pv.rgb(0,0,0,0)};(function(){var names=pv.Color.names;names.none=names.transparent;for(var name in names)names[name]=pv.color(names[name])})();pv.colors=function(){var scale=pv.Scale.ordinal();scale.range.apply(scale,arguments);return scale};pv.Colors={};pv.Colors.category10=function(){var scale=pv.colors("#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf");scale.domain.apply(scale,arguments);return scale};pv.Colors.category20=function(){var scale=pv.colors("#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5");scale.domain.apply(scale,arguments);return scale};pv.Colors.category19=function(){var scale=pv.colors("#9c9ede","#7375b5","#4a5584","#cedb9c","#b5cf6b","#8ca252","#637939","#e7cb94","#e7ba52","#bd9e39","#8c6d31","#e7969c","#d6616b","#ad494a","#843c39","#de9ed6","#ce6dbd","#a55194","#7b4173");scale.domain.apply(scale,arguments);return scale};(function(){pv.fillStyle=function(format){if(format.type){return format}if(format.rgb){return new pv.FillStyle.Solid(format.color,format.opacity)}var match=/^\s*([a-z\-]+)\(\s*(.*?)\s*\)\s*$/.exec(format);if(match){switch(match[1]){case"linear-gradient":return parseLinearGradient(match[2]);case"radial-gradient":return parseRadialGradient(match[2])}}return new pv.FillStyle.Solid(pv.color(format))};var keyAnglesDeg={top:0,'top right':45,right:90,'bottom right':135,bottom:180,'bottom left':225,left:270,'top left':315};function parseLinearGradient(text){var terms=parseText(text);if(!terms.length){return null}var angle=Math.PI;var keyAngle;var m,f;var term=terms[0];if(term.indexOf('to ')===0){m=/^to\s+(?:((top|bottom)(?:\s+(left|right))?)|((left|right)(?:\\s+(top|bottom))?))$/.exec(term);if(m){if(m[1]){keyAngle=m[2];if(m[3]){keyAngle+=' '+m[3]}}else{keyAngle=m[5];if(m[6]){keyAngle=m[6]+' '+keyAngle}}angle=pv.radians(keyAnglesDeg[keyAngle]);terms.shift()}}else{f=parseFloat(term);if(!isNaN(f)){angle=f;if(/^.*?deg$/.test(term)){angle=pv.radians(angle)}terms.shift()}}var stops=parseStops(terms);switch(stops.length){case 0:return null;case 1:return new pv.FillStyle.Solid(stops[0].color,1)}return new pv.FillStyle.LinearGradient(angle,stops,text)}function parseRadialGradient(text){var terms=parseText(text);if(!terms.length){return null}var stops=parseStops(terms);switch(stops.length){case 0:return null;case 1:return new pv.FillStyle.Solid(stops[0].color,1)}return new pv.FillStyle.RadialGradient(50,50,stops,text)}function parseText(text){var colorFuns={};var colorFunId=0;text=text.replace(/\b\w+?\(.*?\)/g,function($0){var id='__color'+(colorFunId++);colorFuns[id]=$0;return id});var terms=text.split(/\s*,\s*/);if(!terms.length){return null}if(colorFunId){terms.forEach(function(id,index){if(colorFuns.hasOwnProperty(id)){terms[index]=colorFuns[id]}})}return terms}function parseStops(terms){var stops=[];var minOffsetPercent=+Infinity;var maxOffsetPercent=-Infinity;var pendingOffsetStops=[];function processPendingStops(lastOffset){var count=pendingOffsetStops.length;if(count){var firstOffset=maxOffsetPercent;var step=(lastOffset-firstOffset)/(count+1);for(var i=0;i<count;i++){firstOffset+=step;pendingOffsetStops[i].offset=firstOffset}pendingOffsetStops.length=0}}var i=0;var T=terms.length;while(i<T){var term=terms[i++];var m=/^(.+?)\s*([+\-]?[e\.\d]+%)?$/i.exec(term);if(m){var stop={color:pv.color(m[1])};var offsetPercent=parseFloat(m[2]);if(isNaN(offsetPercent)){if(!stops.length){offsetPercent=0}else if(i===T){offsetPercent=Math.max(maxOffsetPercent,100)}}stops.push(stop);if(isNaN(offsetPercent)){pendingOffsetStops.push(stop)}else{stop.offset=offsetPercent;processPendingStops(offsetPercent);if(offsetPercent>maxOffsetPercent){maxOffsetPercent=offsetPercent}else if(offsetPercent<maxOffsetPercent){offsetPercent=maxOffsetPercent}if(offsetPercent<minOffsetPercent){minOffsetPercent=offsetPercent}}}}if(stops.length>=2&&(minOffsetPercent<0||maxOffsetPercent>100)){var colorDomain=[];var colorRange=[];stops.forEach(function(stop){colorDomain.push(stop.offset);colorRange.push(stop.color)});var colorScale=pv.scale.linear().domain(colorDomain).range(colorRange);if(minOffsetPercent<0){while(stops.length&&stops[0].offset<=0){stops.shift()}stops.unshift({offset:0,color:colorScale(0)})}if(maxOffsetPercent>100){while(stops.length&&stops[stops.length-1].offset>=100){stops.pop()}stops.push({offset:100,color:colorScale(100)})}}return stops}var FillStyle=pv.FillStyle=function(type){this.type=type;this.key=type};FillStyle.prototype=new pv.Color('none',1);FillStyle.prototype.rgb=function(){var color=pv.color(this.color);if(this.opacity!==color.opacity){color=color.alpha(this.opacity)}return color};var Solid=pv.FillStyle.Solid=function(color,opacity){FillStyle.call(this,'solid');if(color.rgb){this.color=color.color;this.opacity=color.opacity}else{this.color=color;this.opacity=opacity}this.key+=" "+this.color+" alpha("+this.opacity+")"};Solid.prototype=pv.extend(pv.FillStyle);Solid.prototype.alpha=function(opacity){return new Solid(this.color,opacity)};Solid.prototype.brighter=function(k){return new Solid(this.rgb().brighter(k))};Solid.prototype.darker=function(k){return new Solid(this.rgb().darker(k))};pv.FillStyle.transparent=new Solid(pv.Color.transparent);var gradient_id=0;var Gradient=pv.FillStyle.Gradient=function(type,stops){FillStyle.call(this,type);this.id=++gradient_id;this.stops=stops;if(stops.length){this.color=stops[0].color.color}this.key+=" stops("+stops.map(function(stop){var color=stop.color;return color.color+" alpha("+color.opacity+") at("+stop.offset+")"}).join(", ")+")"};Gradient.prototype=pv.extend(pv.FillStyle);Gradient.prototype.rgb=function(){return this.stops.length?this.stops[0].color:undefined};Gradient.prototype.alpha=function(opacity){return this._clone(this.stops.map(function(stop){return{offset:stop.offset,color:stop.color.alpha(opacity)}}))};Gradient.prototype.darker=function(k){return this._clone(this.stops.map(function(stop){return{offset:stop.offset,color:stop.color.darker(k)}}))};Gradient.prototype.brighter=function(k){return this._clone(this.stops.map(function(stop){return{offset:stop.offset,color:stop.color.brighter(k)}}))};var LinearGradient=pv.FillStyle.LinearGradient=function(angle,stops){Gradient.call(this,'lineargradient',stops);this.angle=angle;this.key+=" angle("+angle+")"};LinearGradient.prototype=pv.extend(Gradient);LinearGradient.prototype._clone=function(stops){return new LinearGradient(this.angle,stops)};var RadialGradient=pv.FillStyle.RadialGradient=function(cx,cy,stops){Gradient.call(this,'radialgradient',stops);this.cx=cx;this.cy=cy;this.key+=" center("+cx+","+cy+")"};RadialGradient.prototype=pv.extend(Gradient);RadialGradient.prototype._clone=function(stops){return new RadialGradient(this.cx,this.cy)}})();pv.ramp=function(start,end){var scale=pv.Scale.linear();scale.range.apply(scale,arguments);return scale};pv.Scene=pv.SvgScene={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml",scale:1,events:["DOMMouseScroll","mousewheel","mousedown","mouseup","mouseover","mouseout","mousemove","click","dblclick"],implicit:{svg:{"shape-rendering":"auto","pointer-events":"painted","x":0,"y":0,"dy":0,"text-anchor":"start","transform":"translate(0,0)","fill":"none","fill-opacity":1,"stroke":"none","stroke-opacity":1,"stroke-width":1.5,"stroke-linejoin":"miter","stroke-linecap":"butt","stroke-miterlimit":8,"stroke-dasharray":"none"},css:{"font":"10px sans-serif"}}};pv.SvgScene.updateAll=function(scenes){if(scenes.length&&scenes[0].reverse&&(scenes.type!="line")&&(scenes.type!="area")){var reversed=pv.extend(scenes);for(var i=0,j=scenes.length-1;j>=0;i++,j--){reversed[i]=scenes[j]}scenes=reversed}this.removeSiblings(this[scenes.type](scenes))};pv.SvgScene.create=function(type){return document.createElementNS(this.svg,type)};pv.SvgScene.expect=function(e,type,scenes,i,attributes,style){var tagName;if(e){tagName=e.tagName;if(tagName==='defs'){e=e.nextSibling;if(e){tagName=e.tagName}}else if(tagName==='a'){e=e.firstChild}}if(e){if(tagName!==type){var n=this.create(type);e.parentNode.replaceChild(n,e);e=n}}else{e=this.create(type)}if(attributes)this.setAttributes(e,attributes);if(style)this.setStyle(e,style);return e};pv.SvgScene.setAttributes=function(e,attributes){var implicitSvg=this.implicit.svg;for(var name in attributes){var value=attributes[name];if(value==null||value==implicitSvg[name]){e.removeAttribute(name)}else{e.setAttribute(name,value)}}};pv.SvgScene.setStyle=function(e,style){var implicitCss=this.implicit.css;switch(pv.renderer()){case'batik':for(var name in style){var value=style[name];if(value==null||value==implicitCss[name]){e.removeAttribute(name)}else{e.style.setProperty(name,value)}}break;case'svgweb':for(var name in style){var value=style[name];if(value==null||value==implicitCss[name]){continue}e.style[name]=value}break;default:for(var name in style){var value=style[name];if(value==null||value==implicitCss[name]){e.style.removeProperty(name)}else{e.style[name]=value}}}};pv.SvgScene.append=function(e,scenes,index){e.$scene={scenes:scenes,index:index};e=this.title(e,scenes[index]);if(!e.parentNode)scenes.$g.appendChild(e);return e.nextSibling};pv.SvgScene.title=function(e,s){var a=e.parentNode;if(a&&(a.tagName!="a"))a=null;if(s.title){if(!a){a=this.create("a");a.setAttributeNS(this.xlink,"xlink:href","");if(e.parentNode)e.parentNode.replaceChild(a,e);a.appendChild(e)}a.setAttributeNS(this.xlink,"xlink:title",s.title);var t=null;for(var c=e.firstChild;c!=null;c=c.nextSibling){if(c.nodeName=="title"){t=c;break}}if(!t){t=this.create("title");e.appendChild(t)}else{t.removeChild(t.firstChild)}if(pv.renderer()=="svgweb"){t.appendChild(document.createTextNode(s.title,true))}else{t.appendChild(document.createTextNode(s.title))}return a}if(a)a.parentNode.replaceChild(e,a);return e};pv.SvgScene.dispatch=pv.listener(function(e){var t=e.target.$scene;if(t){var type=e.type;switch(type){case"DOMMouseScroll":type="mousewheel";e.wheel=-480*e.detail;break;case"mousewheel":e.wheel=(window.opera?12:1)*e.wheelDelta;break}if(pv.Mark.dispatch(type,t.scenes,t.index,e)){e.preventDefault()}}});pv.SvgScene.removeSiblings=function(e){while(e){var n=e.nextSibling;if(e.nodeName!=='defs'){e.parentNode.removeChild(e)}e=n}};pv.SvgScene.undefined=function(){};pv.SvgScene.removeFillStyleDefinitions=function(scenes){var results=scenes.$g.getElementsByTagName('defs');if(results.length===1){var defs;if(pv.renderer()!=="batik")defs=results[0];else defs=new cgg.element(results.item(0));var cur=defs.firstChild;while(cur){var next=cur.nextSibling;if(cur.nodeName=='linearGradient'||cur.nodeName=='radialGradient'){defs.removeChild(cur)}cur=next}}};(function(){var dashAliasMap={'-':'shortdash','.':'shortdot','-.':'shortdashdot','-..':'shortdashdotdot','. ':'dot','- ':'dash','--':'longdash','- .':'dashdot','--.':'longdashdot','--..':'longdashdotdot'};var dashMap={'shortdash':[3,1],'shortdot':[1,1],'shortdashdot':[3,1,1,1],'shortdashdotdot':[3,1,1,1,1,1],'dot':[1,3],'dash':[4,3],'longdash':[8,3],'dashdot':[4,3,1,3],'longdashdot':[8,3,1,3],'longdashdotdot':[8,3,1,3,1,3]};pv.SvgScene.isStandardDashStyle=function(dashArray){return dashMap.hasOwnProperty(dashArray)};pv.SvgScene.translateDashStyleAlias=function(dashArray){return dashAliasMap.hasOwnProperty(dashArray)?dashAliasMap[dashArray]:dashArray};pv.SvgScene.parseDasharray=function(s){var dashArray=s.strokeDasharray;if(dashArray&&dashArray!=='none'){dashArray=this.translateDashStyleAlias(dashArray);var standardDashArray=dashMap[dashArray];if(standardDashArray){dashArray=standardDashArray}else{dashArray=dashArray.split(/[\s,]+/)}var lineWidth=s.lineWidth;var lineCap=s.lineCap||'butt';var isButtCap=lineCap==='butt';dashArray=dashArray.map(function(num,index){num=+num;if(!isButtCap){if(index%2){num++}else{num-=1}}if(num<=0){num=.001}return num*lineWidth/this.scale},this).join(' ')}else{dashArray=null}return dashArray}})();(function(){var gradient_definition_id=0;function zeroRounding(x){return Math.abs(x)<=1e-12?0:x}pv.SvgScene.addFillStyleDefinition=function(scenes,fill){if(!fill.type||fill.type==='solid'){return}var isLinear=fill.type==='lineargradient';if(isLinear||fill.type==='radialgradient'){var g=scenes.$g;var results=g.getElementsByTagName('defs');var defs;if(results.length){if(pv.renderer()!=="batik")defs=results.item(0);else defs=new cgg.element(results.item(0))}else{defs=g.appendChild(this.create("defs"))}var elem;var className='__pv_gradient'+fill.id;results=undefined;if(!results){var instId='__pv_gradient'+fill.id+'_inst_'+(++gradient_definition_id);elem=defs.appendChild(this.create(isLinear?"linearGradient":"radialGradient"));elem.setAttribute("id",instId);elem.setAttribute("class",className);if(isLinear){var svgAngle=fill.angle-Math.PI/2;var diagAngle=Math.abs(svgAngle%(Math.PI/2))-Math.PI/4;var radius=Math.abs((Math.SQRT2/2)*Math.cos(diagAngle));var dirx=radius*Math.cos(svgAngle);var diry=radius*Math.sin(svgAngle);var x1=zeroRounding(0.5-dirx);var y1=zeroRounding(0.5-diry);var x2=zeroRounding(0.5+dirx);var y2=zeroRounding(0.5+diry);elem.setAttribute("x1",x1);elem.setAttribute("y1",y1);elem.setAttribute("x2",x2);elem.setAttribute("y2",y2)}else{}var stops=fill.stops;for(var i=0,S=stops.length;i<S;i++){var stop=stops[i];var stopElem=elem.appendChild(this.create("stop"));var color=stop.color;stopElem.setAttribute("offset",stop.offset+'%');stopElem.setAttribute("stop-color",color.color);stopElem.setAttribute("stop-opacity",color.opacity+'')}fill.color='url(#'+instId+')'}}}})();pv.SvgScene.pathBasis=(function(){var basis=[[1/6,2/3,1/6,0],[0,2/3,1/3,0],[0,1/3,2/3,0],[0,1/6,2/3,1/6]];function weight(w,p0,p1,p2,p3){return{x:w[0]*p0.left+w[1]*p1.left+w[2]*p2.left+w[3]*p3.left,y:w[0]*p0.top+w[1]*p1.top+w[2]*p2.top+w[3]*p3.top}}var convert=function(p0,p1,p2,p3){var b1=weight(basis[1],p0,p1,p2,p3),b2=weight(basis[2],p0,p1,p2,p3),b3=weight(basis[3],p0,p1,p2,p3);return"C"+b1.x+","+b1.y+","+b2.x+","+b2.y+","+b3.x+","+b3.y};convert.segment=function(p0,p1,p2,p3){var b0=weight(basis[0],p0,p1,p2,p3),b1=weight(basis[1],p0,p1,p2,p3),b2=weight(basis[2],p0,p1,p2,p3),b3=weight(basis[3],p0,p1,p2,p3);return["M"+b0.x+","+b0.y,"C"+b1.x+","+b1.y+","+b2.x+","+b2.y+","+b3.x+","+b3.y]};return convert})();pv.SvgScene.curveBasis=function(points,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}if(L<=2)return"";var path="",p0=points[from],p1=p0,p2=p0,p3=points[from+1];path+=this.pathBasis(p0,p1,p2,p3);for(var i=from+2;i<=to;i++){p0=p1;p1=p2;p2=p3;p3=points[i];path+=this.pathBasis(p0,p1,p2,p3)}path+=this.pathBasis(p1,p2,p3,p3);path+=this.pathBasis(p2,p3,p3,p3);return path};pv.SvgScene.curveBasisSegments=function(points,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}if(L<=2)return"";var paths=[],p0=points[from],p1=p0,p2=p0,p3=points[from+1],firstPath=this.pathBasis.segment(p0,p1,p2,p3);p0=p1;p1=p2;p2=p3;p3=points[from+2];firstPath[1]+=this.pathBasis(p0,p1,p2,p3);paths.push(firstPath);for(var i=from+3;i<=to;i++){p0=p1;p1=p2;p2=p3;p3=points[i];paths.push(this.pathBasis.segment(p0,p1,p2,p3))}var lastPath=this.pathBasis.segment(p1,p2,p3,p3);lastPath[1]+=this.pathBasis(p2,p3,p3,p3);paths.push(lastPath);return paths};pv.SvgScene.curveHermite=function(points,tangents,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}var T=tangents.length;if(T<1||(L!==T&&L!==T+2)){return""}var quad=L!==T,path="",p0=points[from],p=points[from+1],t0=tangents[0],t=t0,pi=from+1;if(quad){path+="Q"+(p.left-t0.x*2/3)+","+(p.top-t0.y*2/3)+","+p.left+","+p.top;p0=points[from+1];pi=from+2}if(T>1){t=tangents[1];p=points[pi];pi++;path+="C"+(p0.left+t0.x)+","+(p0.top+t0.y)+","+(p.left-t.x)+","+(p.top-t.y)+","+p.left+","+p.top;for(var i=2;i<T;i++,pi++){p=points[pi];t=tangents[i];path+="S"+(p.left-t.x)+","+(p.top-t.y)+","+p.left+","+p.top}}if(quad){var lp=points[pi];path+="Q"+(p.left+t.x*2/3)+","+(p.top+t.y*2/3)+","+lp.left+","+lp.top}return path};pv.SvgScene.curveHermiteSegments=function(points,tangents,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}var T=tangents.length;if(T<1||(L!==T&&L!==T+2)){return[]}var quad=L!==T,paths=[],p0=points[from],p=p0,t0=tangents[0],t=t0,pi=from+1;if(quad){p=points[from+1];paths.push(["M"+p0.left+","+p0.top,"Q"+(p.left-t.x*2/3)+","+(p.top-t.y*2/3)+","+p.left+","+p.top]);pi=from+2}for(var i=1;i<T;i++,pi++){p0=p;t0=t;p=points[pi];t=tangents[i];paths.push(["M"+p0.left+","+p0.top,"C"+(p0.left+t0.x)+","+(p0.top+t0.y)+","+(p.left-t.x)+","+(p.top-t.y)+","+p.left+","+p.top])}if(quad){var lp=points[pi];paths.push(["M"+p.left+","+p.top,"Q"+(p.left+t.x*2/3)+","+(p.top+t.y*2/3)+","+lp.left+","+lp.top])}return paths};pv.SvgScene.cardinalTangents=function(points,tension,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}var tangents=[],a=(1-tension)/2,p0=points[from],p1=points[from+1],p2=points[from+2];for(var i=from+3;i<=to;i++){tangents.push({x:a*(p2.left-p0.left),y:a*(p2.top-p0.top)});p0=p1;p1=p2;p2=points[i]}tangents.push({x:a*(p2.left-p0.left),y:a*(p2.top-p0.top)});return tangents};pv.SvgScene.curveCardinal=function(points,tension,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}if(L<=2)return"";return this.curveHermite(points,this.cardinalTangents(points,tension,from,to),from,to)};pv.SvgScene.curveCardinalSegments=function(points,tension,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}if(L<=2)return"";return this.curveHermiteSegments(points,this.cardinalTangents(points,tension,from,to),from,to)};pv.SvgScene.monotoneTangents=function(points,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}var tangents=[],d=[],m=[],dx=[],k=0,j;for(k=0;k<L-1;k++){j=from+k;var den=points[j+1].left-points[j].left;d[k]=Math.abs(den)<=1e-12?0:(points[j+1].top-points[j].top)/den}m[0]=d[0];dx[0]=points[from+1].left-points[from].left;for(k=1,j=from+k;k<L-1;k++,j++){m[k]=(d[k-1]+d[k])/2;dx[k]=(points[j+1].left-points[j-1].left)/2}m[k]=d[k-1];dx[k]=(points[j].left-points[j-1].left);for(k=0;k<L-1;k++){if(d[k]==0){m[k]=0;m[k+1]=0}}for(k=0;k<L-1;k++){if((Math.abs(m[k])<1e-5)||(Math.abs(m[k+1])<1e-5))continue;var ak=m[k]/d[k],bk=m[k+1]/d[k],s=ak*ak+bk*bk;if(s>9){var tk=3/Math.sqrt(s);m[k]=tk*ak*d[k];m[k+1]=tk*bk*d[k]}}var len;for(var i=0;i<L;i++){len=1+m[i]*m[i];tangents.push({x:dx[i]/ 3 /len,y:m[i]*dx[i]/ 3 /len})}return tangents};pv.SvgScene.curveMonotone=function(points,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}if(L<=2)return"";return this.curveHermite(points,this.monotoneTangents(points,from,to),from,to)};pv.SvgScene.curveMonotoneSegments=function(points,from,to){var L;if(from==null){L=points.length;from=0;to=L-1}else{L=to-from+1}if(L<=2)return"";return this.curveHermiteSegments(points,this.monotoneTangents(points,from,to),from,to)};pv.SvgScene.area=function(scenes){var e=scenes.$g.firstChild;this.removeFillStyleDefinitions(scenes);var count=scenes.length;if(!count){return e}var s=scenes[0];if(s.segmented==='smart'){return this.areaSegmentedSmart(e,scenes)}if(s.segmented){return this.areaSegmentedFull(e,scenes)}return this.areaFixed(e,scenes,0,count-1,true)};pv.SvgScene.areaFixed=function(elm,scenes,from,to,addEvents){var count=to-from+1;if(count===1){return this.lineAreaDot(elm,scenes,from)}var s=scenes[from];if(!s.visible){return elm}var fill=s.fillStyle;var stroke=s.strokeStyle;if(!fill.opacity&&!stroke.opacity){return elm}this.addFillStyleDefinition(scenes,fill);this.addFillStyleDefinition(scenes,stroke);var isInterpBasis=false;var isInterpCardinal=false;var isInterpMonotone=false;var isInterpStepAfter=false;var isInterpStepBefore=false;switch(s.interpolate){case'basis':isInterpBasis=true;break;case'cardinal':isInterpCardinal=true;break;case'monotone':isInterpMonotone=true;break;case'step-after':isInterpStepAfter=true;break;case'step-before':isInterpStepBefore=true;break}var isInterpBasisCardinalOrMonotone=isInterpBasis||isInterpCardinal||isInterpMonotone;var d=[],si,sj;for(var i=from;i<=to;i++){si=scenes[i];if(!si.width&&!si.height){continue}for(var j=i+1;j<=to;j++){sj=scenes[j];if(!sj.width&&!sj.height){break}}if((i>from)&&!isInterpStepAfter){i--}if((j<=to)&&!isInterpStepBefore){j++}var fun=isInterpBasisCardinalOrMonotone&&(j-i>2)?this.areaPathCurve:this.areaPathStraight;d.push(fun.call(this,scenes,i,j-1,s));i=j-1}if(!d.length){return elm}var sop=stroke.opacity;elm=this.expect(elm,"path",scenes,from,{"shape-rendering":s.antialias?null:"crispEdges","pointer-events":addEvents?s.events:'none',"cursor":s.cursor,"d":"M"+d.join("ZM")+"Z","fill":fill.color,"fill-opacity":fill.opacity||null,"stroke":stroke.color,"stroke-opacity":sop||null,"stroke-width":sop?(s.lineWidth/this.scale):null,"stroke-linecap":s.lineCap,"stroke-linejoin":s.lineJoin,"stroke-miterlimit":s.strokeMiterLimit,"stroke-dasharray":sop?this.parseDasharray(s):null});if(s.svg)this.setAttributes(elm,s.svg);if(s.css)this.setStyle(elm,s.css);return this.append(elm,scenes,from)};pv.SvgScene.areaSegmentedSmart=function(elm,scenes){var eventsSegments=scenes.mark.$hasHandlers?[]:null;elm=this.eachLineAreaSegment(elm,scenes,function(elm,scenes,from,to){var segment=this.areaSegmentPaths(scenes,from,to);var pathsT=segment.top;var pathsB=segment.bottom;var fromp=from;if(eventsSegments){eventsSegments.push(segment)}var options={breakOnKeyChange:true,from:from,to:to};return this.eachLineAreaSegment(elm,scenes,options,function(elm,scenes,from,to){var s1=scenes[from];var fill=s1.fillStyle;var stroke=s1.strokeStyle;this.addFillStyleDefinition(scenes,fill);this.addFillStyleDefinition(scenes,stroke);if(from===to){return this.lineAreaDotAlone(elm,scenes,from)}var d=this.areaJoinPaths(pathsT,pathsB,from-fromp,to-fromp-1);var sop=stroke.opacity;var attrs={'shape-rendering':s1.antialias?null:'crispEdges','pointer-events':'none','cursor':s1.cursor,'d':d,'fill':fill.color,'fill-opacity':fill.opacity||null,'stroke':stroke.color,'stroke-opacity':sop||null,'stroke-width':sop?(s1.lineWidth/this.scale):null,'stroke-linecap':s1.lineCap,'stroke-linejoin':s1.lineJoin,'stroke-miterlimit':s1.strokeMiterLimit,'stroke-dasharray':sop?this.parseDasharray(s1):null};elm=this.expect(elm,'path',scenes,from,attrs,s1.css);return this.append(elm,scenes,from)})});if(eventsSegments){eventsSegments.forEach(function(segment){var from=segment.from;var pathsT=segment.top;var pathsB=segment.bottom;var P=pathsT.length;var attrsBase={'shape-rendering':'crispEdges','fill':'rgb(127,127,127)','fill-opacity':0.005,'stroke':null};pathsT.forEach(function(pathT,j){var i=from+j;var s=scenes[i];var events=s.events;if(events&&events!=="none"){var pathB=pathsB[P-j-1];var attrs=Object.create(attrsBase);attrs['pointer-events']=events;attrs.cursor=s.cursor;attrs.d=pathT.join("")+"L"+pathB[0].substr(1)+pathB[1]+"Z";elm=this.expect(elm,'path',scenes,i,attrs);elm=this.append(elm,scenes,i)}},this)},this)}return elm};pv.SvgScene.areaSegmentPaths=function(scenes,from,to){return this.areaSegmentCurvePaths(scenes,from,to)||this.areaSegmentStraightPaths(scenes,from,to)};pv.SvgScene.areaSegmentCurvePaths=function(scenes,from,to){var count=to-from+1;var s=scenes[from];var isBasis=s.interpolate==="basis";var isCardinal=!isBasis&&s.interpolate==="cardinal";if(isBasis||isCardinal||s.interpolate=="monotone"){var pointsT=[];var pointsB=[];for(var i=0;i<count;i++){var si=scenes[from+i];var sj=scenes[to-i];pointsT.push(si);pointsB.push({left:sj.left+sj.width,top:sj.top+sj.height})}var pathsT,pathsB;if(isBasis){pathsT=this.curveBasisSegments(pointsT);pathsB=this.curveBasisSegments(pointsB)}else if(isCardinal){pathsT=this.curveCardinalSegments(pointsT,s.tension);pathsB=this.curveCardinalSegments(pointsB,s.tension)}else{pathsT=this.curveMonotoneSegments(pointsT);pathsB=this.curveMonotoneSegments(pointsB)}if(pathsT||pathsT.length){return{from:from,top:pathsT,bottom:pathsB}}}};pv.SvgScene.areaSegmentStraightPaths=function(scenes,i,j){var pathsT=[];var pathsB=[];for(var k=j,m=i;i<k;i++,j--){var si=scenes[i],sj=scenes[j],pi=['M'+si.left+","+si.top],pj=['M'+(sj.left+sj.width)+","+(sj.top+sj.height)];var sk=scenes[i+1],sl=scenes[j-1];switch(si.interpolate){case'step-before':pi.push("V"+sk.top+"H"+sk.left);break;case'step-after':pi.push("H"+sk.left+"V"+sk.top);break;default:pi.push("L"+sk.left+","+sk.top)}pj.push("L"+(sl.left+sl.width)+","+(sl.top+sl.height));pathsT.push(pi);pathsB.push(pj)}return{from:m,top:pathsT,bottom:pathsB}};pv.SvgScene.areaJoinPaths=function(pathsT,pathsB,i,j){var fullPathT="";var fullPathB="";var N=pathsT.length;for(var k=i,l=N-1-j;k<=j;k++,l++){var pathT=pathsT[k];var pathB=pathsB[l];var dT;var dB;if(k===i){dT=pathT.join("");dB="L"+pathB[0].substr(1)+pathB[1]}else{dT=pathT[1];dB=pathB[1]}fullPathT+=dT;fullPathB+=dB}return fullPathT+fullPathB+"Z"};pv.SvgScene.areaSegmentedFull=function(e,scenes){var count=scenes.length;var pathsT,pathsB;var result=this.areaSegmentCurvePaths(scenes,0,count-1);if(result){pathsT=result.top;pathsB=result.bottom}var s=scenes[0];for(var i=0;i<count-1;i++){var s1=scenes[i];var s2=scenes[i+1];if(!s1.visible||!s2.visible){continue}var fill=s1.fillStyle;var stroke=s1.strokeStyle;if(!fill.opacity&&!stroke.opacity){continue}var d;if(pathsT){var pathT=pathsT[i].join(""),pathB="L"+pathsB[count-i-2].join("").substr(1);d=pathT+pathB+"Z"}else{var si=s1;var sj=s2;switch(s1.interpolate){case"step-before":si=s2;break;case"step-after":sj=s1;break}d="M"+s1.left+","+si.top+"L"+s2.left+","+sj.top+"L"+(s2.left+s2.width)+","+(sj.top+sj.height)+"L"+(s1.left+s1.width)+","+(si.top+si.height)+"Z"}var attrs={"shape-rendering":s1.antialias?null:"crispEdges","pointer-events":s1.events,"cursor":s1.cursor,"d":d,"fill":fill.color,"fill-opacity":fill.opacity||null,"stroke":stroke.color,"stroke-opacity":stroke.opacity||null,"stroke-width":stroke.opacity?s1.lineWidth/this.scale:null};e=this.expect(e,"path",scenes,i,attrs);if(s1.svg)this.setAttributes(e,s1.svg);if(s1.css)this.setStyle(e,s1.css);e=this.append(e,scenes,i)}return e};pv.SvgScene.areaPathStraight=function(scenes,i,j,s){var pointsT=[];var pointsB=[];for(var k=j;i<=k;i++,j--){var si=scenes[i],sj=scenes[j],pi=si.left+","+si.top,pj=(sj.left+sj.width)+","+(sj.top+sj.height);if(i<k){var sk=scenes[i+1],sl=scenes[j-1];switch(s.interpolate){case'step-before':pi+="V"+sk.top;pj+="H"+(sl.left+sl.width);break;case'step-after':pi+="H"+sk.left;pj+="V"+(sl.top+sl.height);break}}pointsT.push(pi);pointsB.push(pj)}return pointsT.concat(pointsB).join("L")};pv.SvgScene.areaPathCurve=function(scenes,i,j,s){var pointsT=[];var pointsB=[];var pathT,pathB;for(var k=j;i<=k;i++,j--){var sj=scenes[j];pointsT.push(scenes[i]);pointsB.push({left:sj.left+sj.width,top:sj.top+sj.height})}switch(s.interpolate){case'basis':pathT=this.curveBasis(pointsT);pathB=this.curveBasis(pointsB);break;case'cardinal':pathT=this.curveCardinal(pointsT,s.tension);pathB=this.curveCardinal(pointsB,s.tension);break;default:pathT=this.curveMonotone(pointsT);pathB=this.curveMonotone(pointsB)}return pointsT[0].left+","+pointsT[0].top+pathT+"L"+pointsB[0].left+","+pointsB[0].top+pathB};pv.SvgScene.minBarWidth=1;pv.SvgScene.minBarHeight=1;pv.SvgScene.minBarLineWidth=0.2;pv.SvgScene.bar=function(scenes){var e=scenes.$g.firstChild;this.removeFillStyleDefinitions(scenes);for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible||Math.abs(s.width)<=1E-10||Math.abs(s.height)<=1E-10)continue;if(s.width<this.minBarWidth){s.width=this.minBarWidth}if(s.height<this.minBarHeight){s.height=this.minBarHeight}var fill=s.fillStyle,stroke=s.strokeStyle;if(!fill.opacity&&!stroke.opacity)continue;if(fill.type&&fill.type!=='solid'){this.addFillStyleDefinition(scenes,fill)}if(stroke.type&&stroke.type!='solid'){this.addFillStyleDefinition(scenes,stroke)}var lineWidth;if(stroke.opacity){lineWidth=s.lineWidth;if(lineWidth<1e-10){lineWidth=0}else{lineWidth=Math.max(this.minBarLineWidth,lineWidth/this.scale)}}else{lineWidth=null}e=this.expect(e,"rect",scenes,i,{"shape-rendering":s.antialias?null:"crispEdges","pointer-events":s.events,"cursor":s.cursor,"x":s.left,"y":s.top,"width":Math.max(1E-10,s.width),"height":Math.max(1E-10,s.height),"fill":fill.color,"fill-opacity":fill.opacity||null,"stroke":stroke.color,"stroke-opacity":stroke.opacity||null,"stroke-width":lineWidth,"stroke-linecap":s.lineCap,"stroke-dasharray":stroke.opacity?this.parseDasharray(s):null});if(s.svg)this.setAttributes(e,s.svg);if(s.css)this.setStyle(e,s.css);e=this.append(e,scenes,i)}return e};pv.SvgScene.dot=function(scenes){var e=scenes.$g.firstChild;this.removeFillStyleDefinitions(scenes);for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;var fill=s.fillStyle,stroke=s.strokeStyle;if(!fill.opacity&&!stroke.opacity)continue;if(fill.type&&fill.type!=='solid'){this.addFillStyleDefinition(scenes,fill)}if(stroke.type&&stroke.type!='solid'){this.addFillStyleDefinition(scenes,stroke)}var radius=s.shapeRadius,path=null;switch(s.shape){case"cross":{path="M"+ -radius+","+ -radius+"L"+radius+","+radius+"M"+radius+","+ -radius+"L"+ -radius+","+radius;break}case"triangle":{var h=radius,w=radius*1.1547;path="M0,"+h+"L"+w+","+ -h+" "+ -w+","+ -h+"Z";break}case"diamond":{radius*=Math.SQRT2;path="M0,"+ -radius+"L"+radius+",0"+" 0,"+radius+" "+ -radius+",0"+"Z";break}case"square":{path="M"+ -radius+","+ -radius+"L"+radius+","+ -radius+" "+radius+","+radius+" "+ -radius+","+radius+"Z";break}case"tick":{path="M0,0L0,"+ -s.shapeSize;break}case"bar":{path="M0,"+(s.shapeSize/2)+"L0,"+ -(s.shapeSize/2);break}}var svg={"shape-rendering":s.antialias?null:"crispEdges","pointer-events":s.events,"cursor":s.cursor,"fill":fill.color,"fill-opacity":fill.opacity||null,"stroke":stroke.color,"stroke-opacity":stroke.opacity||null,"stroke-width":stroke.opacity?s.lineWidth/this.scale:null,"stroke-linecap":s.lineCap,"stroke-dasharray":stroke.opacity?this.parseDasharray(s):null};if(path){svg.transform="translate("+s.left+","+s.top+")";if(s.shapeAngle)svg.transform+=" rotate("+180*s.shapeAngle/Math.PI+")";svg.d=path;e=this.expect(e,"path",scenes,i,svg)}else{svg.cx=s.left;svg.cy=s.top;svg.r=radius;e=this.expect(e,"circle",scenes,i,svg)}if(s.svg)this.setAttributes(e,s.svg);if(s.css)this.setStyle(e,s.css);e=this.append(e,scenes,i)}return e};pv.SvgScene.image=function(scenes){var e=scenes.$g.firstChild;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;e=this.fill(e,scenes,i);if(s.image){e=this.expect(e,"foreignObject",scenes,i,{"cursor":s.cursor,"x":s.left,"y":s.top,"width":s.width,"height":s.height});if(s.svg)this.setAttributes(e,s.svg);if(s.css)this.setStyle(e,s.css);var c=e.firstChild||e.appendChild(document.createElementNS(this.xhtml,"canvas"));c.$scene={scenes:scenes,index:i};c.style.width=s.width;c.style.height=s.height;c.width=s.imageWidth;c.height=s.imageHeight;c.getContext("2d").putImageData(s.image,0,0)}else{e=this.expect(e,"image",scenes,i,{"preserveAspectRatio":"none","cursor":s.cursor,"x":s.left,"y":s.top,"width":s.width,"height":s.height});if(s.svg)this.setAttributes(e,s.svg);if(s.css)this.setStyle(e,s.css);e.setAttributeNS(this.xlink,"xlink:href",s.url)}e=this.append(e,scenes,i);e=this.stroke(e,scenes,i)}return e};pv.SvgScene.label=function(scenes){var e=scenes.$g.firstChild;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;var fill=s.textStyle;if(!fill.opacity||!s.text)continue;var x=0,y=0,dy=0,anchor="start";switch(s.textBaseline){case"middle":if(pv.renderer()=='svgweb')y=3;else dy=".35em";break;case"top":if(pv.renderer()=='svgweb'){y=9+s.textMargin}else{dy=".71em";y=s.textMargin}break;case"bottom":y="-"+s.textMargin;break}switch(s.textAlign){case"right":anchor="end";x="-"+s.textMargin;break;case"center":anchor="middle";break;case"left":x=s.textMargin;break}e=this.expect(e,"text",scenes,i,{"pointer-events":s.events,"cursor":s.cursor,"x":x,"y":y,"dy":dy,"transform":"translate("+s.left+","+s.top+")"+(s.textAngle?" rotate("+180*s.textAngle/Math.PI+")":"")+(this.scale!=1?" scale("+1/this.scale+")":""),"fill":fill.color,"fill-opacity":fill.opacity||null,"text-anchor":anchor},{"font":s.font,"text-shadow":s.textShadow,"text-decoration":s.textDecoration});if(s.svg)this.setAttributes(e,s.svg);if(s.css)this.setStyle(e,s.css);if(e.firstChild)e.firstChild.nodeValue=s.text;else{if(pv.renderer()=="svgweb"){e.appendChild(document.createTextNode(s.text,true))}else{e.appendChild(document.createTextNode(s.text))}}e=this.append(e,scenes,i)}return e};pv.SvgScene.line=function(scenes){var e=scenes.$g.firstChild;this.removeFillStyleDefinitions(scenes);var count=scenes.length;if(!count){return e}var s=scenes[0];if(s.segmented==='smart'){return this.lineSegmentedSmart(e,scenes)}if(count<2){return e}if(s.segmented){return this.lineSegmentedFull(e,scenes)}return this.lineFixed(e,scenes)};pv.SvgScene.lineFixed=function(elm,scenes){var count=scenes.length;if(count===1){return this.lineAreaDotAlone(elm,scenes,0)}var s=scenes[0];if(!s.visible){return elm}var fill=s.fillStyle;var stroke=s.strokeStyle;if(!fill.opacity&&!stroke.opacity){return elm}this.addFillStyleDefinition(scenes,fill);this.addFillStyleDefinition(scenes,stroke);var d="M"+s.left+","+s.top;var curveInterpolated=(count>2);if(curveInterpolated){switch(s.interpolate){case"basis":d+=this.curveBasis(scenes);break;case"cardinal":d+=this.curveCardinal(scenes,s.tension);break;case"monotone":d+=this.curveMonotone(scenes);break;default:curveInterpolated=false}}if(!curveInterpolated){for(var i=1;i<count;i++){d+=this.lineSegmentPath(scenes[i-1],scenes[i])}}var sop=stroke.opacity;var attrs={'shape-rendering':s.antialias?null:'crispEdges','pointer-events':s.events,'cursor':s.cursor,'d':d,'fill':fill.color,'fill-opacity':fill.opacity||null,'stroke':stroke.color,'stroke-opacity':sop||null,'stroke-width':sop?(s.lineWidth/this.scale):null,'stroke-linecap':s.lineCap,'stroke-linejoin':s.lineJoin,'stroke-miterlimit':s.strokeMiterLimit,'stroke-dasharray':sop?this.parseDasharray(s):null};elm=this.expect(elm,'path',scenes,0,attrs,s.css);if(s.svg)this.setAttributes(elm,s.svg);return this.append(elm,scenes,0)};pv.SvgScene.lineSegmentedSmart=function(elm,scenes){var eventsSegments=scenes.mark.$hasHandlers?[]:null;elm=this.eachLineAreaSegment(elm,scenes,function(elm,scenes,from,to){var paths=this.lineSegmentPaths(scenes,from,to);var fromp=from;if(eventsSegments){eventsSegments.push({from:from,paths:paths})}var options={breakOnKeyChange:true,from:from,to:to};return this.eachLineAreaSegment(elm,scenes,options,function(elm,scenes,from,to){var s1=scenes[from];var fill=s1.fillStyle;this.addFillStyleDefinition(scenes,fill);var stroke=s1.strokeStyle;this.addFillStyleDefinition(scenes,stroke);if(from===to){return this.lineAreaDotAlone(elm,scenes,from)}var d=this.lineJoinPaths(paths,from-fromp,to-fromp-1);var sop=stroke.opacity;var attrs={'shape-rendering':s1.antialias?null:'crispEdges','pointer-events':'none','cursor':s1.cursor,'d':d,'fill':fill.color,'fill-opacity':fill.opacity||null,'stroke':stroke.color,'stroke-opacity':sop||null,'stroke-width':sop?(s1.lineWidth/this.scale):null,'stroke-linecap':s1.lineCap,'stroke-linejoin':s1.lineJoin,'stroke-miterlimit':s1.strokeMiterLimit,'stroke-dasharray':sop?this.parseDasharray(s1):null};elm=this.expect(elm,'path',scenes,from,attrs,s1.css);return this.append(elm,scenes,from)})});if(eventsSegments){eventsSegments.forEach(function(segment){var from=segment.from;var paths=segment.paths;var attrsBase={'shape-rendering':'crispEdges','fill':'rgb(127,127,127)','fill-opacity':0.005,'stroke':'rgb(127,127,127)','stroke-opacity':0.005,'stroke-width':5};paths.forEach(function(path,j){var i=from+j;var s=scenes[i];var events=s.events;if(events&&events!=='none'){var attrs=Object.create(attrsBase);attrs['pointer-events']=events;attrs.cursor=s.cursor;attrs.d=path.join('');elm=this.expect(elm,'path',scenes,i,attrs);elm=this.append(elm,scenes,i)}},this)},this)}return elm};pv.SvgScene.lineSegmentedFull=function(e,scenes){var s=scenes[0];var paths;switch(s.interpolate){case"basis":paths=this.curveBasisSegments(scenes);break;case"cardinal":paths=this.curveCardinalSegments(scenes,s.tension);break;case"monotone":paths=this.curveMonotoneSegments(scenes);break}for(var i=0,n=scenes.length-1;i<n;i++){var s1=scenes[i],s2=scenes[i+1];if(!s1.visible||!s2.visible)continue;var stroke=s1.strokeStyle,fill=pv.FillStyle.transparent;if(!stroke.opacity)continue;var d;if((s1.interpolate=="linear")&&(s1.lineJoin=="miter")){fill=stroke;stroke=pv.FillStyle.transparent;d=this.pathJoin(scenes[i-1],s1,s2,scenes[i+2])}else if(paths){d=paths[i].join("")}else{d="M"+s1.left+","+s1.top+this.lineSegmentPath(s1,s2)}e=this.expect(e,"path",scenes,i,{"shape-rendering":s1.antialias?null:"crispEdges","pointer-events":s1.events,"cursor":s1.cursor,"d":d,"fill":fill.color,"fill-opacity":fill.opacity||null,"stroke":stroke.color,"stroke-opacity":stroke.opacity||null,"stroke-width":stroke.opacity?s1.lineWidth/this.scale:null,"stroke-linejoin":s1.lineJoin});if(s1.svg)this.setAttributes(e,s1.svg);if(s1.css)this.setStyle(e,s1.css);e=this.append(e,scenes,i)}return e};pv.SvgScene.lineSegmentPath=function(s1,s2){var l=1;switch(s1.interpolate){case"polar-reverse":l=0;case"polar":{var dx=s2.left-s1.left,dy=s2.top-s1.top,e=1-s1.eccentricity,r=Math.sqrt(dx*dx+dy*dy)/(2*e);if((e<=0)||(e>1))break;return"A"+r+","+r+" 0 0,"+l+" "+s2.left+","+s2.top}case"step-before":return"V"+s2.top+"H"+s2.left;case"step-after":return"H"+s2.left+"V"+s2.top}return"L"+s2.left+","+s2.top};pv.SvgScene.lineSegmentPaths=function(scenes,from,to){var s=scenes[from];var paths;switch(s.interpolate){case"basis":paths=this.curveBasisSegments(scenes,from,to);break;case"cardinal":paths=this.curveCardinalSegments(scenes,s.tension,from,to);break;case"monotone":paths=this.curveMonotoneSegments(scenes,from,to);break}if(!paths||!paths.length){paths=[];for(var i=from+1;i<=to;i++){var s1=scenes[i-1];var s2=scenes[i];paths.push(["M"+s1.left+","+s1.top,this.lineSegmentPath(s1,s2)])}}return paths};pv.strokeMiterLimit=4;pv.SvgScene.pathJoin=function(s0,s1,s2,s3){var pts=[];var miterLimit,miterRatio,miterLength;var w1=s1.lineWidth/this.scale;var p1=pv.vector(s1.left,s1.top);var p2=pv.vector(s2.left,s2.top);var p21=p2.minus(p1);var v21=p21.perp().norm();var w21=v21.times(w1/2);var a=p1.plus(w21);var d=p1.minus(w21);var b=p2.plus(w21);var c=p2.minus(w21);if(!s0||!s0.visible){pts.push(d,a)}else{var p0=pv.vector(s0.left,s0.top);var p10=p1.minus(p0);var v10=p10.perp().norm();var v1=v10.plus(v21).norm();var am=this.lineIntersect(p1,v1,a,p21);var dm=this.lineIntersect(p1,v1,d,p21);miterLength=am.minus(dm).length();var w0=s0.lineWidth/this.scale;var w10avg=(w1+w0)/2;miterRatio=miterLength/w10avg;miterLimit=s1.strokeMiterLimit||pv.strokeMiterLimit;if(miterRatio<=miterLimit){pts.push(dm,am)}else{var p12=p21.times(-1);var v1Outer=p10.norm().plus(p12.norm()).norm();var bevel10=p1.plus(v1Outer.times(w10avg/2));if(v1Outer.dot(v21)>=0){pts.push(dm,bevel10,a)}else{pts.push(d,bevel10,am)}}}if(!s3||!s3.visible){pts.push(b,c)}else{var p3=pv.vector(s3.left,s3.top);var p32=p3.minus(p2);var v32=p32.perp().norm();var v2=v32.plus(v21).norm();var bm=this.lineIntersect(p2,v2,b,p21);var cm=this.lineIntersect(p2,v2,c,p21);miterLength=bm.minus(cm).length();var w3=s3.lineWidth/this.scale;var w31avg=(w3+w1)/2;miterRatio=miterLength/w31avg;miterLimit=s2.strokeMiterLimit||pv.strokeMiterLimit;if(miterRatio<=miterLimit){pts.push(bm,cm)}else{var p23=p32.times(-1);var v2Outer=p21.norm().plus(p23.norm()).norm();var bevel31=p2.plus(v2Outer.times(w31avg/2));if(v2Outer.dot(v21)>=0){pts.push(b,bevel31,cm)}else{pts.push(bm,bevel31,c)}}}var pt=pts.shift();return"M"+pt.x+","+pt.y+"L"+pts.map(function(pt2){return pt2.x+","+pt2.y}).join(" ")};pv.SvgScene.lineIntersect=function(o1,d1,o2,d2){return o1.plus(d1.times(o2.minus(o1).dot(d2.perp())/d1.dot(d2.perp())))};pv.SvgScene.lineJoinPaths=function(paths,from,to){var d=paths[from].join("");for(var i=from+1;i<=to;i++){d+=paths[i][1]}return d};pv.SvgScene.lineAreaDotAlone=function(elm,scenes,i){return elm};pv.SvgScene.eachLineAreaSegment=function(elm,scenes,keyArgs,lineAreaSegment){if(typeof keyArgs==='function'){lineAreaSegment=keyArgs;keyArgs=null}var breakOnKeyChange=pv.get(keyArgs,'breakOnKeyChange',false);var from=pv.get(keyArgs,'from')||0;var to=pv.get(keyArgs,'to',scenes.length-1);var ki,kf;if(breakOnKeyChange){ki=[];kf=[]}var i=from;while(i<=to){var si=scenes[i];if(!this.isSceneVisible(si)){i++;continue}if(breakOnKeyChange){this.lineAreaSceneKey(si,ki)}var i2;var f=i;while(true){var f2=f+1;if(f2>to){i2=f2;break}var sf=scenes[f2];if(!this.isSceneVisible(sf)){i2=f2+1;break}f=f2;if(breakOnKeyChange){this.lineAreaSceneKey(sf,kf);if(!this.equalSceneKeys(ki,kf)){i2=f;break}}}elm=lineAreaSegment.call(this,elm,scenes,i,f,keyArgs);i=i2}return elm};pv.SvgScene.lineAreaSceneKey=function(s,k){k[0]=s.fillStyle.key;k[1]=s.strokeStyle.key;k[2]=s.lineWidth;k[3]=(s.strokeDasharray||'none');k[4]=s.interpolate;return k};pv.SvgScene.isSceneVisible=function(s){return s.visible&&(s.fillStyle.opacity>0||s.strokeStyle.opacity>0)};pv.SvgScene.equalSceneKeys=function(ka,kb){for(var i=0,K=ka.length;i<K;i++){if(ka[i]!==kb[i]){return false}}return true};pv.SvgScene.panel=function(scenes){var g=scenes.$g,e=g&&g.firstChild;var complete=false;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;if(!scenes.parent){if(pv.renderer()!=="batik"){s.canvas.style.display="inline-block"}if(g&&(g.parentNode!=s.canvas)){g=s.canvas.firstChild;e=g&&g.firstChild}if(!g){g=this.create(pv.renderer()!=="batik"?"svg":"g");g.setAttribute("font-size","10px");g.setAttribute("font-family","sans-serif");g.setAttribute("fill","none");g.setAttribute("stroke","none");g.setAttribute("stroke-width",1.5);g.setAttribute("style","-webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;");if(typeof g.onselectstart!=='undefined'){g.setAttribute('unselectable','on');g.onselectstart=function(){return false}}if(pv.renderer()==="svgweb"){g.setAttribute("width",s.width+s.left+s.right);g.setAttribute("height",s.height+s.top+s.bottom);var frag=document.createDocumentFragment(true);g.addEventListener('SVGLoad',function(){var me=this;(function(){if(complete){complete=false;me.appendChild(frag);for(var j=0;j<pv.Scene.events.length;j++){me.addEventListener(pv.Scene.events[j],pv.SvgScene.dispatch,false)}scenes.$g=me;scenes.$g.__ready=true}else{setTimeout(arguments.callee,10)}})()},false);svgweb.appendChild(g,s.canvas);g=frag}else{for(var j=0;j<this.events.length;j++){g.addEventListener(this.events[j],this.dispatch,false)}g=s.canvas.appendChild(g);g.__ready=true}e=g.firstChild}scenes.$g=g;if(g.__ready){g.setAttribute("width",s.width+s.left+s.right);g.setAttribute("height",s.height+s.top+s.bottom)}}if(s.overflow=="hidden"){var id=pv.id().toString(36),c=this.expect(e,"g",scenes,i,{"clip-path":"url(#"+id+")"});if(!c.parentNode)g.appendChild(c);scenes.$g=g=c;e=c.firstChild;e=this.expect(e,"clipPath",scenes,i,{"id":id});var r=e.firstChild||e.appendChild(this.create("rect"));r.setAttribute("x",s.left);r.setAttribute("y",s.top);r.setAttribute("width",s.width);r.setAttribute("height",s.height);if(!e.parentNode)g.appendChild(e);e=e.nextSibling}e=this.fill(e,scenes,i);var k=this.scale,t=s.transform,x=s.left+t.x,y=s.top+t.y;this.scale*=t.k;this.eachChild(scenes,i,function(childScenes){childScenes.$g=e=this.expect(e,"g",scenes,i,{"transform":"translate("+x+","+y+")"+(t.k!=1?" scale("+t.k+")":"")});this.updateAll(childScenes);if(!e.parentNode)g.appendChild(e);e=e.nextSibling});this.scale=k;e=this.stroke(e,scenes,i);if(s.overflow=="hidden"){scenes.$g=g=c.parentNode;e=c.nextSibling}}complete=true;return e};pv.SvgScene.eachChild=function(scenes,i,fun,ctx){if(scenes.mark.zOrderChildCount){var sorted=scenes[i].children.slice(0);sorted.sort(function(scenes1,scenes2){var compare=scenes1.mark._zOrder-scenes2.mark._zOrder;if(compare===0){compare=scenes1.childIndex-scenes2.childIndex}return compare});sorted.forEach(fun,ctx||this)}else{scenes[i].children.forEach(fun,ctx||this)}};pv.SvgScene.fill=function(e,scenes,i){this.removeFillStyleDefinitions(scenes);var s=scenes[i],fill=s.fillStyle;if(fill.opacity||s.events=="all"){if(fill.type&&fill.type!=='solid'){this.addFillStyleDefinition(scenes,fill)}e=this.expect(e,"rect",scenes,i,{"shape-rendering":s.antialias?null:"crispEdges","pointer-events":s.events,"cursor":s.cursor,"x":s.left,"y":s.top,"width":s.width,"height":s.height,"fill":fill.color,"fill-opacity":fill.opacity,"stroke":null});e=this.append(e,scenes,i)}return e};pv.SvgScene.stroke=function(e,scenes,i){var s=scenes[i],stroke=s.strokeStyle;if(stroke.opacity||s.events=="all"){e=this.expect(e,"rect",scenes,i,{"shape-rendering":s.antialias?null:"crispEdges","pointer-events":s.events=="all"?"stroke":s.events,"cursor":s.cursor,"x":s.left,"y":s.top,"width":Math.max(1E-10,s.width),"height":Math.max(1E-10,s.height),"fill":null,"stroke":stroke.color,"stroke-opacity":stroke.opacity,"stroke-width":s.lineWidth/this.scale,"stroke-linecap":s.lineCap,"stroke-dasharray":stroke.opacity?this.parseDasharray(s):null});e=this.append(e,scenes,i)}return e};pv.SvgScene.minRuleLineWidth=1;pv.SvgScene.rule=function(scenes){var e=scenes.$g.firstChild;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;var stroke=s.strokeStyle;if(!stroke.opacity)continue;var lineWidth=s.lineWidth;if(lineWidth<1e-10){lineWidth=0}else{lineWidth=Math.max(this.minRuleLineWidth,lineWidth/this.scale)}e=this.expect(e,"line",scenes,i,{"shape-rendering":s.antialias?null:"crispEdges","pointer-events":s.events,"cursor":s.cursor,"x1":s.left,"y1":s.top,"x2":s.left+s.width,"y2":s.top+s.height,"stroke":stroke.color,"stroke-opacity":stroke.opacity,"stroke-width":lineWidth,"stroke-linecap":s.lineCap,"stroke-dasharray":stroke.opacity?this.parseDasharray(s):null});if(s.svg)this.setAttributes(e,s.svg);if(s.css)this.setStyle(e,s.css);e=this.append(e,scenes,i)}return e};pv.SvgScene.wedge=function(scenes){var e=scenes.$g.firstChild;this.removeFillStyleDefinitions(scenes);for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;var fill=s.fillStyle,stroke=s.strokeStyle;if(!fill.opacity&&!stroke.opacity)continue;var r1=s.innerRadius,r2=s.outerRadius,a=Math.abs(s.angle),p;if(a>=2*Math.PI){if(r1){p="M0,"+r2+"A"+r2+","+r2+" 0 1,1 0,"+(-r2)+"A"+r2+","+r2+" 0 1,1 0,"+r2+"M0,"+r1+"A"+r1+","+r1+" 0 1,1 0,"+(-r1)+"A"+r1+","+r1+" 0 1,1 0,"+r1+"Z"}else{p="M0,"+r2+"A"+r2+","+r2+" 0 1,1 0,"+(-r2)+"A"+r2+","+r2+" 0 1,1 0,"+r2+"Z"}}else{var sa=Math.min(s.startAngle,s.endAngle),ea=Math.max(s.startAngle,s.endAngle),c1=Math.cos(sa),c2=Math.cos(ea),s1=Math.sin(sa),s2=Math.sin(ea);if(r1){p="M"+r2*c1+","+r2*s1+"A"+r2+","+r2+" 0 "+((a<Math.PI)?"0":"1")+",1 "+r2*c2+","+r2*s2+"L"+r1*c2+","+r1*s2+"A"+r1+","+r1+" 0 "+((a<Math.PI)?"0":"1")+",0 "+r1*c1+","+r1*s1+"Z"}else{p="M"+r2*c1+","+r2*s1+"A"+r2+","+r2+" 0 "+((a<Math.PI)?"0":"1")+",1 "+r2*c2+","+r2*s2+"L0,0Z"}}if(fill.type&&fill.type!=='solid'){this.addFillStyleDefinition(scenes,fill)}if(stroke.type&&stroke.type!='solid'){this.addFillStyleDefinition(scenes,stroke)}e=this.expect(e,"path",scenes,i,{"shape-rendering":s.antialias?null:"crispEdges","pointer-events":s.events,"cursor":s.cursor,"transform":"translate("+s.left+","+s.top+")","d":p,"fill":fill.color,"fill-rule":"evenodd","fill-opacity":fill.opacity||null,"stroke":stroke.color,"stroke-opacity":stroke.opacity||null,"stroke-width":stroke.opacity?s.lineWidth/this.scale:null,"stroke-linejoin":s.lineJoin,"stroke-miterlimit":s.strokeMiterLimit,"stroke-linecap":s.lineCap,"stroke-dasharray":stroke.opacity?this.parseDasharray(s):null});if(s.svg)this.setAttributes(e,s.svg);if(s.css)this.setStyle(e,s.css);e=this.append(e,scenes,i)}return e};pv.Mark=function(){this.$properties=[];this.$propertiesMap={};this.$handlers={}};pv.Mark.prototype.properties={};pv.Mark.cast={};pv.Mark.prototype.property=function(name,cast){if(!this.hasOwnProperty("properties")){this.properties=pv.extend(this.properties)}this.properties[name]=true;pv.Mark.prototype.propertyMethod(name,false,pv.Mark.cast[name]=cast);return this};pv.Mark.prototype.localProperty=function(name,cast){if(!this.hasOwnProperty("properties")){this.properties=pv.extend(this.properties)}this.properties[name]=true;var currCast=pv.Mark.cast[name];if(cast){pv.Mark.cast[name]=currCast=cast}this.propertyMethod(name,false,currCast);return this};pv.Mark.prototype.propertyMethod=function(name,def,cast){if(!cast)cast=pv.Mark.cast[name];this[name]=function(v,tag){if(def&&this.scene){var defs=this.scene.defs;if(arguments.length){defs[name]={id:(v==null)?0:pv.id(),value:((v!=null)&&cast)?cast(v):v};return this}return defs[name]?defs[name].value:null}if(arguments.length){this.setPropertyValue(name,v,def,cast,false,tag);return this}var propEval=pv.propertyEval;if(propEval){var binds=this.binds;var propRead=binds.properties[name];if(propRead){var net=binds.net;var readNetIndex=net[name];if(readNetIndex==null){readNetIndex=net[name]=0}(propRead.dependents||(propRead.dependents={}))[propEval.name]=true;(pv.propertyEvalDependencies||(pv.propertyEvalDependencies={}))[name]=true;if(readNetIndex>=pv.propertyEvalNetIndex){pv.propertyEvalNetIndex=readNetIndex+1}}}return this.instance()[name]}};pv.Mark.funPropertyCaller=function(fun,cast){var stack=pv.Mark.stack;return function(){var value=fun.apply(this,stack);return value!=null?cast(value):value}};pv.Mark.prototype.setPropertyValue=function(name,v,def,cast,chain,tag){var type=!def<<1|(typeof v==="function");if(type&1&&cast){v=pv.Mark.funPropertyCaller(v,cast)}else if(v!=null&&cast){v=cast(v)}var propertiesMap=this.$propertiesMap;var properties=this.$properties;var p={name:name,id:pv.id(),value:v,type:type,tag:tag};var specified=propertiesMap[name];propertiesMap[name]=p;if(specified){for(var i=0;i<properties.length;i++){if(properties[i]===specified){properties.splice(i,1);break}}}properties.push(p);if(chain&&specified&&type===3){p.proto=specified;p.root=specified.root||specified}return p};pv.Mark.prototype.intercept=function(name,v,keyArgs){this.setPropertyValue(name,v,false,pv.get(keyArgs,'noCast')?null:pv.Mark.cast[name],true,pv.get(keyArgs,'tag'));return this};pv.Mark.prototype.propertyValue=function(name,inherit){var p=this.$propertiesMap[name];if(p){return p.value}if(inherit){if(this.proto){var value=this.proto.propertyValueRecursive(name);if(value!==undefined){return value}}return this.defaults.propertyValueRecursive(name)}};pv.Mark.prototype.propertyValueRecursive=function(name){var p=this.$propertiesMap[name];if(p){return p.value}if(this.proto){return this.proto.propertyValueRecursive(name)}};pv.Mark.stack=[];pv.Mark.prototype.property("data").property("visible",Boolean).property("css",Object).property("svg",Object).property("left",Number).property("right",Number).property("top",Number).property("bottom",Number).property("cursor",String).property("title",String).property("reverse",Boolean).property("antialias",Boolean).property("events",String).property("id",String);pv.Mark.prototype.childIndex=-1;pv.Mark.prototype.index=-1;pv.Mark.prototype.scale=1;pv.Mark.prototype._zOrder=0;pv.Mark.prototype.defaults=new pv.Mark().data(function(d){return[d]}).visible(true).antialias(true).events("painted");pv.Mark.prototype.extend=function(proto){this.proto=proto;this.target=proto.target;return this};pv.Mark.prototype.add=function(type){return this.parent.add(type).extend(this)};pv.Mark.prototype.def=function(name,v){this.propertyMethod(name,true);return this[name](arguments.length>1?v:null)};pv.Mark.prototype.zOrder=function(zOrder){if(!arguments.length){return this._zOrder}zOrder=(+zOrder)||0;if(this._zOrder!==zOrder){if(this._zOrder!==0&&this.parent){this.parent.zOrderChildCount--}this._zOrder=zOrder;if(this._zOrder!==0&&this.parent){this.parent.zOrderChildCount++}}return this};pv.Mark.prototype.anchor=function(name){if(!name)name="center";return new pv.Anchor(this).name(name).data(function(){return this.scene.target.map(function(s){return s.data})}).visible(function(){return this.scene.target[this.index].visible}).id(function(){return this.scene.target[this.index].id}).left(function(){var s=this.scene.target[this.index],w=s.width||0;switch(this.name()){case"bottom":case"top":case"center":return s.left+w/2;case"left":return null}return s.left+w}).top(function(){var s=this.scene.target[this.index],h=s.height||0;switch(this.name()){case"left":case"right":case"center":return s.top+h/2;case"top":return null}return s.top+h}).right(function(){var s=this.scene.target[this.index];return this.name()=="left"?s.right+(s.width||0):null}).bottom(function(){var s=this.scene.target[this.index];return this.name()=="top"?s.bottom+(s.height||0):null}).textAlign(function(){switch(this.name()){case"bottom":case"top":case"center":return"center";case"right":return"right"}return"left"}).textBaseline(function(){switch(this.name()){case"right":case"left":case"center":return"middle";case"top":return"top"}return"bottom"})};pv.Mark.prototype.anchorTarget=function(){return this.target};pv.Mark.prototype.margin=function(n){return this.left(n).right(n).top(n).bottom(n)};pv.Mark.prototype.instance=function(defaultIndex){var scene=this.scene||this.parent.instance(-1).children[this.childIndex],index=!arguments.length||this.hasOwnProperty("index")?this.index:defaultIndex;return scene[index<0?scene.length-1:index]};pv.Mark.prototype.instances=function(source){var mark=this,index=[],scene;while(!(scene=mark.scene)){source=source.parent;index.push({index:source.index,childIndex:mark.childIndex});mark=mark.parent}while(index.length){var i=index.pop();scene=scene[i.index].children[i.childIndex]}if(this.hasOwnProperty("index")){var s=pv.extend(scene[this.index]);s.right=s.top=s.left=s.bottom=0;return[s]}return scene};pv.Mark.prototype.first=function(){return this.scene[0]};pv.Mark.prototype.last=function(){return this.scene[this.scene.length-1]};pv.Mark.prototype.sibling=function(){return(this.index==0)?null:this.scene[this.index-1]};pv.Mark.prototype.cousin=function(){var p=this.parent,s=p&&p.sibling();return(s&&s.children)?s.children[this.childIndex][this.index]:null};pv.Mark.prototype.render=function(){if(this.parent&&!this.root.scene){this.root.render();return}this.renderCore()};pv.Mark.prototype.renderCore=function(){var parent=this.parent,stack=pv.Mark.stack;var indexes=[];for(var mark=this;mark.parent;mark=mark.parent){indexes.unshift(mark.childIndex)}function render(mark,depth,scale){mark.scale=scale;if(depth<indexes.length){stack.unshift(null);try{if(mark.hasOwnProperty("index")){renderInstance(mark,depth,scale)}else{for(var i=0,n=mark.scene.length;i<n;i++){mark.index=i;renderInstance(mark,depth,scale)}delete mark.index}}finally{stack.shift()}}else{mark.build();pv.Scene.scale=scale;var id=null;if(mark.scene&&mark.scene.$g&&mark.scene.$g.suspendRedraw)id=mark.scene.$g.suspendRedraw(1000);pv.Scene.updateAll(mark.scene);if(id)mark.scene.$g.unsuspendRedraw(id)}delete mark.scale}function renderInstance(mark,depth,scale){var s=mark.scene[mark.index],i;if(s.visible){var childIndex=indexes[depth],child=mark.children[childIndex];for(i=0;i<childIndex;i++){mark.children[i].scene=s.children[i]}stack[0]=s.data;if(child.scene){render(child,depth+1,scale*s.transform.k)}else{child.scene=s.children[childIndex];render(child,depth+1,scale*s.transform.k);delete child.scene}for(i=0;i<childIndex;i++){delete mark.children[i].scene}}}this.bind();while(parent&&!parent.hasOwnProperty("index"))parent=parent.parent;this.context(parent?parent.scene:undefined,parent?parent.index:-1,function(){render(this.root,0,1)})};pv.Mark.prototype.bind=function(){var seen={},data,required=[],types=[[],[],[],[]];function bind(mark){do{var properties=mark.$properties;for(var i=properties.length-1;i>=0;i--){var p=properties[i];var pLeaf=seen[p.name];if(!pLeaf){seen[p.name]=p;switch(p.name){case"data":data=p;break;case"visible":case"id":required.push(p);break;default:types[p.type].push(p);break}}else if(pLeaf.type===3){var pRoot=pLeaf.root;if(!pRoot){pLeaf.proto=pLeaf.root=p}else if(!pRoot.proto){pRoot.proto=p;pLeaf.root=p}}}}while(mark=mark.proto)}bind(this);bind(this.defaults);types[1].reverse();types[3].reverse();var mark=this;do{for(var name in mark.properties){if(!(name in seen)){types[2].push(seen[name]={name:name,type:2,value:null})}}}while((mark=mark.proto));var defs=types[0].concat(types[1]);for(var i=0;i<defs.length;i++){this.propertyMethod(defs[i].name,true)}this.binds={properties:seen,net:{},data:data,defs:defs,required:required,optional:pv.blend(types)}};pv.Mark.prototype.updateNet=function(pDependent,netIndex){var binds=this.binds;var props=binds.properties;var net=binds.net;propagateRecursive(pDependent,netIndex);function propagateRecursive(p,minNetIndex){if(minNetIndex>(net[p.name]||0)){net[p.name]=minNetIndex;var deps=p.dependents;if(deps){minNetIndex++;for(var depName in deps){if(deps.hasOwnProperty(depName)){var pDep=props[depName];if(pDep){propagateRecursive(pDep,minNetIndex)}}}}}}};pv.Mark.prototype.build=function(){var scene=this.scene,stack=pv.Mark.stack;if(!scene){scene=this.scene=[];scene.mark=this;scene.type=this.type;scene.childIndex=this.childIndex;if(this.parent){scene.parent=this.parent.scene;scene.parentIndex=this.parent.index}}if(this.target)scene.target=this.target.instances(scene);if(this.binds.defs.length){var defs=scene.defs;if(!defs)scene.defs=defs={};for(var i=0;i<this.binds.defs.length;i++){var p=this.binds.defs[i],d=defs[p.name];if(!d||(p.id>d.id)){defs[p.name]={id:0,value:(p.type&1)?p.value.apply(this,stack):p.value}}}}var data=this.binds.data;data=data.type&1?data.value.apply(this,stack):data.value;var markProto=pv.Mark.prototype;stack.unshift(null);try{var L=scene.length=data.length;for(var i=0;i<L;i++){markProto.index=this.index=i;var s=scene[i]||(scene[i]={});s.data=stack[0]=data[i];this.buildInstance(s)}}finally{markProto.index=-1;delete this.index;stack.shift()}return this};pv.Mark.prototype.buildProperties=function(s,properties){var stack=pv.Mark.stack;for(var i=0,n=properties.length;i<n;i++){var p=properties[i];var v;switch(p.type){case 3:var oldProtoProp=pv.propertyProto;try{pv.propertyProto=p.proto;v=p.value.apply(this,stack)}finally{pv.propertyProto=oldProtoProp}break;case 2:v=p.value;break;case 0:case 1:v=this.scene.defs[p.name].value;break}s[p.name]=v}};pv.Mark.prototype.delegate=function(dv,tag){var protoProp=pv.propertyProto;if(protoProp&&(!tag||protoProp.tag===tag)){var value=this.evalProperty(protoProp);if(value!==undefined){return value}}return dv};pv.Mark.prototype.hasDelegate=function(tag){var protoProp=pv.propertyProto;return!!protoProp&&(!tag||protoProp.tag===tag)};pv.Mark.prototype.evalProperty=function(p){switch(p.type){case 3:var oldProtoProp=pv.propertyProto;try{pv.propertyProto=p.proto;return p.value.apply(this,pv.Mark.stack)}finally{pv.propertyProto=oldProtoProp}case 2:return p.value;case 0:case 1:return this.scene.defs[p.name].value}};pv.Mark.prototype.buildPropertiesWithDepTracking=function(s,properties){var net=this.binds.net;var netIndex,newNetIndex,netDirtyProps,prevNetDirtyProps,propertyIndexes,evaluatedProps;var stack=pv.Mark.stack;var n=properties.length;try{while(true){netDirtyProps=null;evaluatedProps={};for(var i=0;i<n;i++){var p=properties[i];var name=p.name;evaluatedProps[name]=true;if(!prevNetDirtyProps||prevNetDirtyProps[name]){var v;switch(p.type){case 3:pv.propertyEval=p;pv.propertyEvalNetIndex=netIndex=(net[name]||0);pv.propertyEvalDependencies=null;var oldProtoProp=pv.propertyProto;try{pv.propertyProto=p.proto;v=p.value.apply(this,stack)}finally{pv.propertyProto=oldProtoProp}newNetIndex=pv.propertyEvalNetIndex;if(newNetIndex>netIndex){var evalDeps=pv.propertyEvalDependencies;for(var depName in evalDeps){if(evalDeps.hasOwnProperty(depName)&&!evaluatedProps.hasOwnProperty(name)){if(!netDirtyProps){netDirtyProps={}}netDirtyProps[depName]=true}}this.updateNet(p,newNetIndex)}break;case 2:v=p.value;break;case 0:case 1:v=this.scene.defs[name].value;break}s[name]=v}}if(!netDirtyProps){break}prevNetDirtyProps=netDirtyProps;propertyIndexes=pv.numerate(properties,function(p){return p.name});properties.sort(function(pa,pb){var comp=pv.naturalOrder(net[pa.name]||0,net[pb.name]||0);if(!comp){comp=pv.naturalOrder(propertyIndexes[pa.name],propertyIndexes[pb.name])}return comp});propertyIndexes=null}}finally{pv.propertyEval=null;pv.propertyEvalNetIndex=null;pv.propertyEvalDependencies=null}};pv.Mark.prototype.buildInstance=function(s){this.buildProperties(s,this.binds.required);if(s.visible){if(this.index===0){this.buildPropertiesWithDepTracking(s,this.binds.optional)}else{this.buildProperties(s,this.binds.optional)}this.buildImplied(s)}};pv.Mark.prototype.buildImplied=function(s){var l=s.left;var r=s.right;var t=s.top;var b=s.bottom;var p=this.properties;var w=p.width?s.width:0;var h=p.height?s.height:0;var instance;var checked;if(w==null||r==null||l==null){instance=this.parent?this.parent.instance():null;checked=true;var width=instance?instance.width:(w+l+r);if(w==null){w=width-(r=r||0)-(l=l||0)}else if(r==null){if(l==null){l=r=(width-w)/2}else{r=width-w-l}}else{l=width-w-r}}if(h==null||b==null||t==null){if(!checked){instance=this.parent?this.parent.instance():null}var height=instance?instance.height:(h+t+b);if(h==null){h=height-(t=t||0)-(b=b||0)}else if(b==null){if(t==null){b=t=(height-h)/2}else{b=height-h-t}}else{t=height-h-b}}s.left=l;s.right=r;s.top=t;s.bottom=b;if(p.width)s.width=w;if(p.height)s.height=h;if(p.textStyle&&!s.textStyle)s.textStyle=pv.FillStyle.transparent;if(p.fillStyle&&!s.fillStyle)s.fillStyle=pv.FillStyle.transparent;if(p.strokeStyle&&!s.strokeStyle)s.strokeStyle=pv.FillStyle.transparent};pv.Mark.prototype.mouse=function(){var n=this.root.canvas(),ev=pv.event,x=ev.pageX,y=ev.pageY;var offset=pv.elementOffset(n);if(offset){x-=offset.left;y-=offset.top;var computed=pv.getWindow(n.ownerDocument).getComputedStyle(n,null);if(computed){x-=parseFloat(computed.paddingLeft||0);y-=parseFloat(computed.paddingTop||0)}}var t=pv.Transform.identity,p=this.properties.transform?this:this.parent,pz=[];do{pz.push(p)}while((p=p.parent));while((p=pz.pop())){var pinst=p.instance();t=t.translate(pinst.left,pinst.top).times(pinst.transform)}t=t.invert();return pv.vector(x*t.k+t.x,y*t.k+t.y)};pv.Mark.prototype.event=function(type,handler){handler=pv.functor(handler);var handlers=this.$handlers[type];if(!handlers){handlers=handler}else if(handlers instanceof Array){handlers.push(handler)}else{handlers=[handlers,handler]}this.$hasHandlers=true;this.$handlers[type]=handlers;return this};pv.Mark.prototype.context=function(scene,index,f){var proto=pv.Mark.prototype,stack=pv.Mark.stack,oscene=pv.Mark.scene,oindex=proto.index;function apply(scene,index){pv.Mark.scene=scene;proto.index=index;if(!scene){return}var that=scene.mark,mark=that,ancestors=[];do{ancestors.push(mark);stack.push(scene[index].data);mark.index=index;mark.scene=scene;index=scene.parentIndex;scene=scene.parent}while(mark=mark.parent);for(var i=ancestors.length-1,k=1;i>0;i--){mark=ancestors[i];mark.scale=k;k*=mark.scene[mark.index].transform.k}var children=that.children;if(children){var thatInstance=that.scene[that.index];for(var i=0,n=children.length;i<n;i++){mark=children[i];mark.scene=thatInstance.children[i];mark.scale=k}}}function clear(scene,index){if(!scene)return;var that=scene.mark,mark;var children=that.children;if(children){for(var i=0,n=children.length;i<n;i++){mark=children[i];delete mark.scene;delete mark.scale}}mark=that;do{stack.pop();if(mark.parent){delete mark.scene;delete mark.scale}delete mark.index}while(mark=mark.parent)}if(scene&&scene===oscene&&index===oindex){try{f.apply(this,stack)}catch(ex){pv.error(ex);throw ex}finally{pv.Mark.scene=oscene;proto.index=oindex}}else{clear(oscene,oindex);apply(scene,index);try{f.apply(this,stack)}catch(ex){pv.error(ex);throw ex}finally{clear(scene,index);apply(oscene,oindex)}}};pv.Mark.getEventHandler=function(type,scenes,index,event){var handler=scenes.mark.$handlers[type];if(handler){return[handler,type,scenes,index,event]}var parentScenes=scenes.parent;if(parentScenes){return this.getEventHandler(type,parentScenes,scenes.parentIndex,event)}};pv.Mark.dispatch=function(type,scenes,index,event){var root=scenes.mark.root;if(root.animatingCount){return true}var handlerInfo;var interceptors=root.$interceptors&&root.$interceptors[type];if(interceptors){for(var i=0,L=interceptors.length;i<L;i++){handlerInfo=interceptors[i](type,event);if(handlerInfo){break}if(handlerInfo===false){return true}}}if(!handlerInfo){handlerInfo=this.getEventHandler(type,scenes,index,event)}return handlerInfo?this.handle.apply(this,handlerInfo):false};pv.Mark.handle=function(handler,type,scenes,index,event){var m=scenes.mark;m.context(scenes,index,function(){var stack=pv.Mark.stack.concat(event);if(handler instanceof Array){var ms;handler.forEach(function(hi){var mi=hi.apply(m,stack);if(mi&&mi.render){(ms||(ms=[])).push(mi)}});if(ms){ms.forEach(function(mi){mi.render()})}}else{m=handler.apply(m,stack);if(m&&m.render){m.render()}}});return true};pv.Mark.prototype.addEventInterceptor=function(type,handler,before){var root=this.root;if(root){var interceptors=root.$interceptors||(root.$interceptors={});var list=interceptors[type]||(interceptors[type]=[]);if(before){list.unshift(handler)}else{list.push(handler)}}};pv.Mark.prototype.eachInstance=function(fun,ctx){var mark=this,indexes=[];while(mark.parent){indexes.unshift(mark.childIndex);mark=mark.parent}var rootScene=mark.scene;if(!rootScene){return}var L=indexes.length;function mapRecursive(scene,level,toScreen){var D=scene.length;if(D>0){var isLastLevel=level===L,childIndex;if(!isLastLevel){childIndex=indexes[level]}for(var index=0;index<D;index++){var instance=scene[index];if(instance.visible){if(level===L){fun.call(ctx,scene,index,toScreen)}else{var childScene=instance.children[childIndex];if(childScene){var childToScreen=toScreen.times(instance.transform).translate(instance.left,instance.top);mapRecursive(childScene,level+1,childToScreen)}}}}}}mapRecursive(rootScene,0,pv.Transform.identity)};pv.Mark.prototype.toScreenTransform=function(){var t=pv.Transform.identity;if(this instanceof pv.Panel){t=t.translate(this.left(),this.top()).times(this.transform())}var parent=this.parent;if(parent){do{t=t.translate(parent.left(),parent.top()).times(parent.transform())}while((parent=parent.parent))}return t};pv.Mark.prototype.transition=function(){return new pv.Transition(this)};pv.Mark.prototype.on=function(state){return this["$"+state]=new pv.Transient(this)};pv.Mark.prototype.getShape=function(scenes,index){var s=scenes[index];if(!s.visible){return null}return s._shape||(s._shape=this.getShapeCore(scenes,index))};pv.Mark.prototype.getShapeCore=function(scenes,index){var s=scenes[index];return new pv.Shape.Rect(s.left,s.top,s.width,s.height)};pv.Anchor=function(target){pv.Mark.call(this);this.target=target;this.parent=target.parent};pv.Anchor.prototype=pv.extend(pv.Mark).property("name",String);pv.Anchor.prototype.extend=function(proto){this.proto=proto;return this};pv.Area=function(){pv.Mark.call(this)};pv.Area.castSegmented=function(v){if(!v){return''}switch(v){case'smart':case'full':break;default:v='full'}return v};pv.Area.prototype=pv.extend(pv.Mark).property("width",Number).property("height",Number).property("lineWidth",Number).property("lineJoin",String).property("strokeMiterLimit",Number).property("lineCap",String).property("strokeDasharray",String).property("strokeStyle",pv.fillStyle).property("fillStyle",pv.fillStyle).property("segmented",pv.Area.castSegmented).property("interpolate",String).property("tension",Number);pv.Area.prototype.type="area";pv.Area.prototype.defaults=new pv.Area().extend(pv.Mark.prototype.defaults).lineWidth(1.5).fillStyle(pv.Colors.category20().by(pv.parent)).interpolate("linear").tension(.7).lineJoin("miter").strokeMiterLimit(8).lineCap("butt").strokeDasharray("none");pv.Area.prototype.buildImplied=function(s){if(s.height==null)s.height=0;if(s.width==null)s.width=0;pv.Mark.prototype.buildImplied.call(this,s)};pv.Area.fixed={lineWidth:1,lineJoin:1,strokeMiterLimit:1,lineCap:1,strokeStyle:1,strokeDasharray:1,fillStyle:1,segmented:1,interpolate:1,tension:1};pv.Area.prototype.bind=function(){pv.Mark.prototype.bind.call(this);var binds=this.binds,required=binds.required,optional=binds.optional;for(var i=0,n=optional.length;i<n;i++){var p=optional[i];p.fixed=p.name in pv.Area.fixed;if(p.name=="segmented"){required.push(p);optional.splice(i,1);i--;n--}}this.binds.$required=required;this.binds.$optional=optional};pv.Area.prototype.buildInstance=function(s){var binds=this.binds;if(this.index){var fixed=binds.fixed;if(!fixed){fixed=binds.fixed=[];function f(p){return!p.fixed||(fixed.push(p),false)}binds.required=binds.required.filter(f);if(!this.scene[0].segmented)binds.optional=binds.optional.filter(f)}var n=fixed.length;if(n){var firstScene=this.scene[0];for(var i=0;i<n;i++){var p=fixed[i].name;s[p]=firstScene[p]}}}else{binds.required=binds.$required;binds.optional=binds.$optional;binds.fixed=null}pv.Mark.prototype.buildInstance.call(this,s)};pv.Area.prototype.anchor=function(name){var scene;return pv.Mark.prototype.anchor.call(this,name).interpolate(function(){return this.scene.target[this.index].interpolate}).eccentricity(function(){return this.scene.target[this.index].eccentricity}).tension(function(){return this.scene.target[this.index].tension})};pv.Area.prototype.getShapeCore=function(scenes,index){var s=scenes[index];var w=(s.width||0),h=(s.height||0),x=s.left,y=s.top;var s2=index+1<scenes.length?scenes[index+1]:null;if(!s2||!s2.visible){return new pv.Shape.Line(x,y,x+w,y+h)}var x2=s2.left,y2=s2.top,h2=s2.height||0,w2=s2.width||0;return new pv.Shape.Polygon([new pv.Vector(x,y),new pv.Vector(x2,y2),new pv.Vector(x2+w2,y2+h2),new pv.Vector(x+w,y+h)])};pv.Bar=function(){pv.Mark.call(this)};pv.Bar.prototype=pv.extend(pv.Mark).property("width",Number).property("height",Number).property("lineWidth",Number).property("strokeStyle",pv.fillStyle).property("fillStyle",pv.fillStyle).property("lineCap",String).property("strokeDasharray",String);pv.Bar.prototype.type="bar";pv.Bar.prototype.defaults=new pv.Bar().extend(pv.Mark.prototype.defaults).lineWidth(1.5).fillStyle(pv.Colors.category20().by(pv.parent)).lineCap("butt").strokeDasharray("none");pv.Dot=function(){pv.Mark.call(this)};pv.Dot.prototype=pv.extend(pv.Mark).property("shape",String).property("shapeAngle",Number).property("shapeRadius",Number).property("shapeSize",Number).property("lineWidth",Number).property("strokeStyle",pv.fillStyle).property("lineCap",String).property("strokeDasharray",String).property("fillStyle",pv.fillStyle);pv.Dot.prototype.type="dot";pv.Dot.prototype.defaults=new pv.Dot().extend(pv.Mark.prototype.defaults).shape("circle").lineWidth(1.5).strokeStyle(pv.Colors.category10().by(pv.parent)).lineCap("butt").strokeDasharray("none");pv.Dot.prototype.anchor=function(name){var scene;return pv.Mark.prototype.anchor.call(this,name).left(function(){var s=this.scene.target[this.index];switch(this.name()){case"bottom":case"top":case"center":return s.left;case"left":return null}return s.left+s.shapeRadius}).right(function(){var s=this.scene.target[this.index];return this.name()=="left"?s.right+s.shapeRadius:null}).top(function(){var s=this.scene.target[this.index];switch(this.name()){case"left":case"right":case"center":return s.top;case"top":return null}return s.top+s.shapeRadius}).bottom(function(){var s=this.scene.target[this.index];return this.name()=="top"?s.bottom+s.shapeRadius:null}).textAlign(function(){switch(this.name()){case"left":return"right";case"bottom":case"top":case"center":return"center"}return"left"}).textBaseline(function(){switch(this.name()){case"right":case"left":case"center":return"middle";case"bottom":return"top"}return"bottom"})};pv.Dot.prototype.buildImplied=function(s){var r=s.shapeRadius,z=s.shapeSize;if(r==null){if(z==null){s.shapeSize=20.25;s.shapeRadius=4.5}else{s.shapeRadius=Math.sqrt(z)}}else if(z==null){s.shapeSize=r*r}pv.Mark.prototype.buildImplied.call(this,s)};pv.Dot.prototype.getShapeCore=function(scenes,index){var s=scenes[index];var radius=s.shapeRadius,cx=s.left,cy=s.top;switch(s.shape){case'diamond':radius*=Math.SQRT2;case'square':case'cross':return new pv.Shape.Rect(cx-radius,cy-radius,2*radius,2*radius)}return new pv.Shape.Circle(cx,cy,radius)};pv.Label=function(){pv.Mark.call(this)};pv.Label.prototype=pv.extend(pv.Mark).property("text",String).property("font",String).property("textAngle",Number).property("textStyle",pv.color).property("textAlign",String).property("textBaseline",String).property("textMargin",Number).property("textDecoration",String).property("textShadow",String);pv.Label.prototype.type="label";pv.Label.prototype.defaults=new pv.Label().extend(pv.Mark.prototype.defaults).events("none").text(pv.identity).font("10px sans-serif").textAngle(0).textStyle("black").textAlign("left").textBaseline("bottom").textMargin(3);pv.Label.prototype.getShapeCore=function(scenes,index){var s=scenes[index];var size=pv.Text.measure(s.text,s.font);return pv.Label.getPolygon(size.width,size.height,s.textAlign,s.textBaseline,s.textAngle,s.textMargin).apply(pv.Transform.identity.translate(s.left,s.top))};pv.Label.getPolygon=function(textWidth,textHeight,align,baseline,angle,margin){var x,y;switch(baseline){case"middle":y=textHeight/2; break;case"top":y=margin+textHeight;break;case"bottom":y=-margin;break}switch(align){case"right":x=-margin-textWidth;break;case"center":x=-textWidth/2;break;case"left":x=margin;break}var bl=new pv.Vector(x,y);var br=bl.plus(textWidth,0);var tr=br.plus(0,-textHeight);var tl=bl.plus(0,-textHeight);if(angle!==0){bl=bl.rotate(angle);br=br.rotate(angle);tl=tl.rotate(angle);tr=tr.rotate(angle)}return new pv.Shape.Polygon([bl,br,tr,tl])};pv.Line=function(){pv.Mark.call(this)};pv.Line.prototype=pv.extend(pv.Mark).property("lineWidth",Number).property("lineJoin",String).property("strokeMiterLimit",Number).property("lineCap",String).property("strokeStyle",pv.fillStyle).property("strokeDasharray",String).property("fillStyle",pv.fillStyle).property("segmented",pv.Area.castSegmented).property("interpolate",String).property("eccentricity",Number).property("tension",Number);pv.Line.prototype.type="line";pv.Line.prototype.defaults=new pv.Line().extend(pv.Mark.prototype.defaults).lineWidth(1.5).strokeStyle(pv.Colors.category10().by(pv.parent)).interpolate("linear").eccentricity(0).tension(.7).lineJoin("miter").strokeMiterLimit(8).lineCap("butt").strokeDasharray("none");pv.Line.prototype.bind=pv.Area.prototype.bind;pv.Line.prototype.buildInstance=pv.Area.prototype.buildInstance;pv.Line.prototype.anchor=function(name){return pv.Area.prototype.anchor.call(this,name).textAlign(function(d){switch(this.name()){case"left":return"right";case"bottom":case"top":case"center":return"center";case"right":return"left"}}).textBaseline(function(d){switch(this.name()){case"right":case"left":case"center":return"middle";case"top":return"bottom";case"bottom":return"top"}})};pv.Line.prototype.getShapeCore=function(scenes,index){var s=scenes[index];var s2=index+1<scenes.length?scenes[index+1]:null;if(s2==null||!s2.visible){return new pv.Shape.Point(s.left,s.top)}return new pv.Shape.Line(s.left,s.top,s2.left,s2.top)};pv.Rule=function(){pv.Mark.call(this)};pv.Rule.prototype=pv.extend(pv.Mark).property("width",Number).property("height",Number).property("lineWidth",Number).property("strokeStyle",pv.fillStyle).property("lineCap",String).property("strokeDasharray",String);pv.Rule.prototype.type="rule";pv.Rule.prototype.defaults=new pv.Rule().extend(pv.Mark.prototype.defaults).lineWidth(1).strokeStyle("black").antialias(false).lineCap("butt").strokeDasharray("none");pv.Rule.prototype.anchor=pv.Line.prototype.anchor;pv.Rule.prototype.buildImplied=function(s){var l=s.left,r=s.right,t=s.top,b=s.bottom;if((s.width!=null)||((l==null)&&(r==null))||((r!=null)&&(l!=null))){s.height=0}else{s.width=0}pv.Mark.prototype.buildImplied.call(this,s)};pv.Rule.prototype.getShapeCore=function(scenes,index){var s=scenes[index];return new pv.Shape.Line(s.left,s.top,s.left+s.width,s.top+s.height)};pv.Panel=function(){pv.Bar.call(this);this.children=[];this.root=this;this.$dom=pv.$&&pv.$.s};pv.Panel.prototype=pv.extend(pv.Bar).property("transform").property("overflow",String).property("canvas",function(c){return(typeof c=="string")?document.getElementById(c):c});pv.Panel.prototype.type="panel";pv.Panel.prototype.animatingCount=0;pv.Panel.prototype.zOrderChildCount=0;pv.Panel.prototype.defaults=new pv.Panel().extend(pv.Bar.prototype.defaults).fillStyle(null).overflow("visible");pv.Panel.prototype.anchor=function(name){var anchor=pv.Bar.prototype.anchor.call(this,name);anchor.parent=this;return anchor};pv.Panel.prototype.add=function(type){var child=new type();child.parent=this;child.root=this.root;child.childIndex=this.children.length;this.children.push(child);return child};pv.Panel.prototype.bind=function(){pv.Mark.prototype.bind.call(this);var children=this.children;for(var i=0,n=children.length;i<n;i++){children[i].bind()}};pv.Panel.prototype.buildInstance=function(s){pv.Bar.prototype.buildInstance.call(this,s);if(!s.visible)return;var scale=this.scale*s.transform.k;pv.Mark.prototype.index=-1;var child;var children=this.children;var childScenes=s.children||(s.children=[]);for(var i=0,n=children.length;i<n;i++){child=children[i];child.scene=childScenes[i];child.scale=scale;child.build()}for(var i=0;i<n;i++){child=children[i];childScenes[i]=child.scene;delete child.scene;delete child.scale}childScenes.length=n};pv.Panel.prototype.buildImplied=function(s){if(!this.parent){var c=s.canvas;if(pv.renderer()==="batik"){if(c){if(c.$panel!=this){pv.Panel.updateCreateId(c);c.$panel=this;while(c.lastChild)c.removeChild(c.lastChild)}}else{c=document.lastChild}}else if(c){if(c.$panel!=this){pv.Panel.updateCreateId(c);c.$panel=this;while(c.lastChild)c.removeChild(c.lastChild)}var w,h;if(s.width==null){w=parseFloat(pv.css(c,"width"));s.width=w-s.left-s.right}if(s.height==null){h=parseFloat(pv.css(c,"height"));s.height=h-s.top-s.bottom}}else{var cache=this.$canvas||(this.$canvas=[]);if(!(c=cache[this.index])){c=cache[this.index]=document.createElement(pv.renderer()=="svgweb"?"div":"span");if(this.$dom){this.$dom.parentNode.insertBefore(c,this.$dom)}else{var n=document.body;while(n.lastChild&&n.lastChild.tagName)n=n.lastChild;if(n!=document.body)n=n.parentNode;n.appendChild(c)}}}s.canvas=c}if(!s.transform)s.transform=pv.Transform.identity;pv.Mark.prototype.buildImplied.call(this,s)};pv.Panel.updateCreateId=function(c){c.$pvCreateId=(c.$pvCreateId||0)+1};pv.Image=function(){pv.Bar.call(this)};pv.Image.prototype=pv.extend(pv.Bar).property("url",String).property("imageWidth",Number).property("imageHeight",Number);pv.Image.prototype.type="image";pv.Image.prototype.defaults=new pv.Image().extend(pv.Bar.prototype.defaults).fillStyle(null);pv.Image.prototype.image=function(f){this.$image=function(){var c=f.apply(this,arguments);return c==null?pv.Color.transparent:typeof c=="string"?pv.color(c):c};return this};pv.Image.prototype.bind=function(){pv.Bar.prototype.bind.call(this);var binds=this.binds,mark=this;do{binds.image=mark.$image}while(!binds.image&&(mark=mark.proto))};pv.Image.prototype.buildImplied=function(s){pv.Bar.prototype.buildImplied.call(this,s);if(!s.visible)return;if(s.imageWidth==null)s.imageWidth=s.width;if(s.imageHeight==null)s.imageHeight=s.height;if((s.url==null)&&this.binds.image){var canvas=this.$canvas||(this.$canvas=document.createElement("canvas")),context=canvas.getContext("2d"),w=s.imageWidth,h=s.imageHeight,stack=pv.Mark.stack,data;canvas.width=w;canvas.height=h;data=(s.image=context.createImageData(w,h)).data;stack.unshift(null,null);for(var y=0,p=0;y<h;y++){stack[1]=y;for(var x=0;x<w;x++){stack[0]=x;var color=this.binds.image.apply(this,stack);data[p++]=color.r;data[p++]=color.g;data[p++]=color.b;data[p++]=255*color.a}}stack.splice(0,2)}};pv.Wedge=function(){pv.Mark.call(this)};pv.Wedge.prototype=pv.extend(pv.Mark).property("startAngle",Number).property("endAngle",Number).property("angle",Number).property("innerRadius",Number).property("outerRadius",Number).property("lineWidth",Number).property("strokeStyle",pv.fillStyle).property("lineJoin",String).property("strokeMiterLimit",Number).property("lineCap",String).property("strokeDasharray",String).property("fillStyle",pv.fillStyle);pv.Wedge.prototype.type="wedge";pv.Wedge.prototype.defaults=new pv.Wedge().extend(pv.Mark.prototype.defaults).startAngle(function(){var s=this.sibling();return s?s.endAngle:-Math.PI/2}).innerRadius(0).lineWidth(1.5).strokeStyle(null).fillStyle(pv.Colors.category20().by(pv.index)).lineJoin("miter").strokeMiterLimit(8).lineCap("butt").strokeDasharray("none");pv.Wedge.prototype.midRadius=function(){return(this.innerRadius()+this.outerRadius())/2};pv.Wedge.prototype.midAngle=function(){return(this.startAngle()+this.endAngle())/2};pv.Wedge.prototype.anchor=function(name){function partial(s){return s.innerRadius||s.angle<2*Math.PI}function midRadius(s){return(s.innerRadius+s.outerRadius)/2}function midAngle(s){return(s.startAngle+s.endAngle)/2}return pv.Mark.prototype.anchor.call(this,name).left(function(){var s=this.scene.target[this.index];if(partial(s))switch(this.name()){case"outer":return s.left+s.outerRadius*Math.cos(midAngle(s));case"inner":return s.left+s.innerRadius*Math.cos(midAngle(s));case"start":return s.left+midRadius(s)*Math.cos(s.startAngle);case"center":return s.left+midRadius(s)*Math.cos(midAngle(s));case"end":return s.left+midRadius(s)*Math.cos(s.endAngle)}return s.left}).top(function(){var s=this.scene.target[this.index];if(partial(s))switch(this.name()){case"outer":return s.top+s.outerRadius*Math.sin(midAngle(s));case"inner":return s.top+s.innerRadius*Math.sin(midAngle(s));case"start":return s.top+midRadius(s)*Math.sin(s.startAngle);case"center":return s.top+midRadius(s)*Math.sin(midAngle(s));case"end":return s.top+midRadius(s)*Math.sin(s.endAngle)}return s.top}).textAlign(function(){var s=this.scene.target[this.index];if(partial(s))switch(this.name()){case"outer":return pv.Wedge.upright(midAngle(s))?"right":"left";case"inner":return pv.Wedge.upright(midAngle(s))?"left":"right"}return"center"}).textBaseline(function(){var s=this.scene.target[this.index];if(partial(s))switch(this.name()){case"start":return pv.Wedge.upright(s.startAngle)?"top":"bottom";case"end":return pv.Wedge.upright(s.endAngle)?"bottom":"top"}return"middle"}).textAngle(function(){var s=this.scene.target[this.index],a=0;if(partial(s))switch(this.name()){case"center":case"inner":case"outer":a=midAngle(s);break;case"start":a=s.startAngle;break;case"end":a=s.endAngle;break}return pv.Wedge.upright(a)?a:(a+Math.PI)})};pv.Wedge.upright=function(angle){angle=angle%(2*Math.PI);angle=(angle<0)?(2*Math.PI+angle):angle;return(angle<Math.PI/2)||(angle>=3*Math.PI/2)};pv.Wedge.prototype.buildImplied=function(s){if(s.angle==null)s.angle=s.endAngle-s.startAngle;else if(s.endAngle==null)s.endAngle=s.startAngle+s.angle;pv.Mark.prototype.buildImplied.call(this,s)};pv.Wedge.prototype.getShapeCore=function(scenes,index){var s=scenes[index];return new pv.Shape.Wedge(s.left,s.top,s.innerRadius,s.outerRadius,s.startAngle,s.angle)};pv.Ease=(function(){function reverse(f){return function(t){return 1-f(1-t)}}function reflect(f){return function(t){return.5*(t<.5?f(2*t):(2-f(2-2*t)))}}function poly(e){return function(t){return t<0?0:t>1?1:Math.pow(t,e)}}function sin(t){return 1-Math.cos(t*Math.PI/2)}function exp(t){return t?Math.pow(2,10*(t-1))-0.001:0}function circle(t){return-(Math.sqrt(1-t*t)-1)}function elastic(a,p){var s;if(!p)p=0.45;if(!a||a<1){a=1;s=p/4}else s=p/(2*Math.PI)*Math.asin(1/a);return function(t){return t<=0||t>=1?t:-(a*Math.pow(2,10*(--t))*Math.sin((t-s)*(2*Math.PI)/p))}}function back(s){if(!s)s=1.70158;return function(t){return t*t*((s+1)*t-s)}}function bounce(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}var quad=poly(2),cubic=poly(3),elasticDefault=elastic(),backDefault=back();var eases={"linear":pv.identity,"quad-in":quad,"quad-out":reverse(quad),"quad-in-out":reflect(quad),"quad-out-in":reflect(reverse(quad)),"cubic-in":cubic,"cubic-out":reverse(cubic),"cubic-in-out":reflect(cubic),"cubic-out-in":reflect(reverse(cubic)),"sin-in":sin,"sin-out":reverse(sin),"sin-in-out":reflect(sin),"sin-out-in":reflect(reverse(sin)),"exp-in":exp,"exp-out":reverse(exp),"exp-in-out":reflect(exp),"exp-out-in":reflect(reverse(exp)),"circle-in":circle,"circle-out":reverse(circle),"circle-in-out":reflect(circle),"circle-out-in":reflect(reverse(circle)),"elastic-in":elasticDefault,"elastic-out":reverse(elasticDefault),"elastic-in-out":reflect(elasticDefault),"elastic-out-in":reflect(reverse(elasticDefault)),"back-in":backDefault,"back-out":reverse(backDefault),"back-in-out":reflect(backDefault),"back-out-in":reflect(reverse(backDefault)),"bounce-in":bounce,"bounce-out":reverse(bounce),"bounce-in-out":reflect(bounce),"bounce-out-in":reflect(reverse(bounce))};pv.ease=function(f){return eases[f]};return{reverse:reverse,reflect:reflect,linear:function(){return pv.identity},sin:function(){return sin},exp:function(){return exp},circle:function(){return circle},elastic:elastic,back:back,bounce:bounce,poly:poly}})();pv.Transition=function(mark){var that=this,ease=pv.ease("cubic-in-out"),duration=250,timer,onEndCallback;var interpolated={top:1,left:1,right:1,bottom:1,width:1,height:1,innerRadius:1,outerRadius:1,radius:1,startAngle:1,endAngle:1,angle:1,fillStyle:1,strokeStyle:1,lineWidth:1,eccentricity:1,tension:1,textAngle:1,textStyle:1,textMargin:1};var defaults=new pv.Transient();function ids(marks){var map={};for(var i=0;i<marks.length;i++){var mark=marks[i];if(mark.id){map[mark.id]=mark}}return map}function interpolateProperty(list,name,before,after){var f;if(name in interpolated){var i=pv.Scale.interpolator(before[name],after[name]);f=function(t){before[name]=i(t)}}else{f=function(t){if(t>.5){before[name]=after[name]}}}f.next=list.head;list.head=f}function interpolateInstance(list,before,after){for(var name in before){if(name=="children")continue;if(before[name]==after[name])continue;interpolateProperty(list,name,before,after)}if(before.children){for(var j=0;j<before.children.length;j++){interpolate(list,before.children[j],after.children[j])}}}function interpolate(list,before,after){var mark=before.mark,bi=ids(before),ai=ids(after);for(var i=0;i<before.length;i++){var b=before[i],a=b.id?ai[b.id]:after[i];b.index=i;if(!b.visible){continue}if(!(a&&a.visible)){var o=override(before,i,mark.$exit,after);b.transition=a?2:(after.push(o),1);a=o}interpolateInstance(list,b,a)}for(var i=0;i<after.length;i++){var a=after[i],b=a.id?bi[a.id]:before[i];if(!(b&&b.visible)&&a.visible){var o=override(after,i,mark.$enter,before);if(!b)before.push(o);else before[b.index]=o;interpolateInstance(list,o,a)}}}function override(scene,index,proto,other){var s=pv.extend(scene[index]),m=scene.mark,r=m.root.scene,p=(proto||defaults).$properties,t;if(other.target&&(t=other.target[other.length])){scene=pv.extend(scene);scene.target=pv.extend(other.target);scene.target[index]=t}var seen={};for(var i=0;i<p.length;i++){seen[p[i].name]=1}p=m.binds.optional.filter(function(p){return!(p.name in seen)}).concat(p);m.context(scene,index,function(){this.buildProperties(s,p);this.buildImplied(s)});m.root.scene=r;return s}function cleanup(scene){for(var i=0,j=0;i<scene.length;i++){var s=scene[i];if(s.transition!=1){scene[j++]=s;if(s.transition==2)s.visible=false;if(s.children)s.children.forEach(cleanup)}}scene.length=j}that.ease=function(x){return arguments.length?(ease=typeof x=="function"?x:pv.ease(x),that):ease};that.duration=function(x){return arguments.length?(duration=Number(x),that):duration};function doEnd(){mark.root.animatingCount--;if(onEndCallback){var cb=onEndCallback;onEndCallback=null;cb()}}that.start=function(onEnd){onEndCallback=onEnd;mark.root.animatingCount++;if(mark.parent){doEnd();throw new Error("Animated partial rendering is not supported.")}try{if(mark.$transition){mark.$transition.stop()}mark.$transition=that;var i=pv.Mark.prototype.index,before=mark.scene,after;mark.scene=null;mark.bind();mark.build();after=mark.scene;mark.scene=before;pv.Mark.prototype.index=i;var start=Date.now(),list={};interpolate(list,before,after)}catch(ex){doEnd();throw ex}timer=setInterval(function(){var t=Math.max(0,Math.min(1,(Date.now()-start)/duration)),e=ease(t);for(var i=list.head;i;i=i.next){i(e)}if(t==1){cleanup(mark.scene);that.stop()}pv.Scene.updateAll(before)},24)};that.stop=function(){clearInterval(timer);doEnd()}};pv.Transient=function(mark){pv.Mark.call(this);this.fillStyle(null).strokeStyle(null).textStyle(null);this.on=function(state){return mark.on(state)}};pv.Transient.prototype=pv.extend(pv.Mark);pv.simulation=function(particles){return new pv.Simulation(particles)};pv.Simulation=function(particles){for(var i=0;i<particles.length;i++)this.particle(particles[i])};pv.Simulation.prototype.particle=function(p){p.next=this.particles;if(isNaN(p.px))p.px=p.x;if(isNaN(p.py))p.py=p.y;if(isNaN(p.fx))p.fx=0;if(isNaN(p.fy))p.fy=0;this.particles=p;return this};pv.Simulation.prototype.force=function(f){f.next=this.forces;this.forces=f;return this};pv.Simulation.prototype.constraint=function(c){c.next=this.constraints;this.constraints=c;return this};pv.Simulation.prototype.stabilize=function(n){var c;if(!arguments.length)n=3;for(var i=0;i<n;i++){var q=new pv.Quadtree(this.particles);for(c=this.constraints;c;c=c.next)c.apply(this.particles,q)}for(var p=this.particles;p;p=p.next){p.px=p.x;p.py=p.y}return this};pv.Simulation.prototype.step=function(){var p,f,c;for(p=this.particles;p;p=p.next){var px=p.px,py=p.py;p.px=p.x;p.py=p.y;p.x+=p.vx=((p.x-px)+p.fx);p.y+=p.vy=((p.y-py)+p.fy)}var q=new pv.Quadtree(this.particles);for(c=this.constraints;c;c=c.next)c.apply(this.particles,q);for(p=this.particles;p;p=p.next)p.fx=p.fy=0;for(f=this.forces;f;f=f.next)f.apply(this.particles,q)};pv.Quadtree=function(particles){var p;var x1=Number.POSITIVE_INFINITY,y1=x1,x2=Number.NEGATIVE_INFINITY,y2=x2;for(p=particles;p;p=p.next){if(p.x<x1)x1=p.x;if(p.y<y1)y1=p.y;if(p.x>x2)x2=p.x;if(p.y>y2)y2=p.y}var dx=x2-x1,dy=y2-y1;if(dx>dy)y2=y1+dx;else x2=x1+dy;this.xMin=x1;this.yMin=y1;this.xMax=x2;this.yMax=y2;function insert(n,p,x1,y1,x2,y2){if(isNaN(p.x)||isNaN(p.y))return;if(n.leaf){if(n.p){if((Math.abs(n.p.x-p.x)+Math.abs(n.p.y-p.y))<.01){insertChild(n,p,x1,y1,x2,y2)}else{var v=n.p;n.p=null;insertChild(n,v,x1,y1,x2,y2);insertChild(n,p,x1,y1,x2,y2)}}else{n.p=p}}else{insertChild(n,p,x1,y1,x2,y2)}}function insertChild(n,p,x1,y1,x2,y2){var sx=(x1+x2)*.5,sy=(y1+y2)*.5,right=p.x>=sx,bottom=p.y>=sy;n.leaf=false;switch((bottom<<1)+right){case 0:n=n.c1||(n.c1=new pv.Quadtree.Node());break;case 1:n=n.c2||(n.c2=new pv.Quadtree.Node());break;case 2:n=n.c3||(n.c3=new pv.Quadtree.Node());break;case 3:n=n.c4||(n.c4=new pv.Quadtree.Node());break}if(right)x1=sx;else x2=sx;if(bottom)y1=sy;else y2=sy;insert(n,p,x1,y1,x2,y2)}this.root=new pv.Quadtree.Node();for(p=particles;p;p=p.next)insert(this.root,p,x1,y1,x2,y2)};pv.Quadtree.Node=function(){this.leaf=true;this.c1=null;this.c2=null;this.c3=null;this.c4=null;this.p=null};pv.Force={};pv.Force.charge=function(k){var min=2,min1=1/min,max=500,max1=1/max,theta=.9,force={};if(!arguments.length)k=-40;force.constant=function(x){if(arguments.length){k=Number(x);return force}return k};force.domain=function(a,b){if(arguments.length){min=Number(a);min1=1/min;max=Number(b);max1=1/max;return force}return[min,max]};force.theta=function(x){if(arguments.length){theta=Number(x);return force}return theta};function accumulate(n){var cx=0,cy=0;n.cn=0;function accumulateChild(c){accumulate(c);n.cn+=c.cn;cx+=c.cn*c.cx;cy+=c.cn*c.cy}if(!n.leaf){if(n.c1)accumulateChild(n.c1);if(n.c2)accumulateChild(n.c2);if(n.c3)accumulateChild(n.c3);if(n.c4)accumulateChild(n.c4)}if(n.p){n.cn+=k;cx+=k*n.p.x;cy+=k*n.p.y}n.cx=cx/n.cn;n.cy=cy/n.cn}function forces(n,p,x1,y1,x2,y2){var dx=n.cx-p.x,dy=n.cy-p.y,dn=1/Math.sqrt(dx*dx+dy*dy);if((n.leaf&&(n.p!=p))||((x2-x1)*dn<theta)){if(dn<max1)return;if(dn>min1)dn=min1;var kc=n.cn*dn*dn*dn,fx=dx*kc,fy=dy*kc;p.fx+=fx;p.fy+=fy}else if(!n.leaf){var sx=(x1+x2)*.5,sy=(y1+y2)*.5;if(n.c1)forces(n.c1,p,x1,y1,sx,sy);if(n.c2)forces(n.c2,p,sx,y1,x2,sy);if(n.c3)forces(n.c3,p,x1,sy,sx,y2);if(n.c4)forces(n.c4,p,sx,sy,x2,y2);if(dn<max1)return;if(dn>min1)dn=min1;if(n.p&&(n.p!=p)){var kc=k*dn*dn*dn,fx=dx*kc,fy=dy*kc;p.fx+=fx;p.fy+=fy}}}force.apply=function(particles,q){accumulate(q.root);for(var p=particles;p;p=p.next){forces(q.root,p,q.xMin,q.yMin,q.xMax,q.yMax)}};return force};pv.Force.drag=function(k){var force={};if(!arguments.length)k=.1;force.constant=function(x){if(arguments.length){k=x;return force}return k};force.apply=function(particles){if(k)for(var p=particles;p;p=p.next){p.fx-=k*p.vx;p.fy-=k*p.vy}};return force};pv.Force.spring=function(k){var d=.1,l=20,links,kl,force={};if(!arguments.length)k=.1;force.links=function(x){if(arguments.length){links=x;kl=x.map(function(l){return 1/Math.sqrt(Math.max(l.sourceNode.linkDegree,l.targetNode.linkDegree))});return force}return links};force.constant=function(x){if(arguments.length){k=Number(x);return force}return k};force.damping=function(x){if(arguments.length){d=Number(x);return force}return d};force.length=function(x){if(arguments.length){l=Number(x);return force}return l};force.apply=function(particles){for(var i=0;i<links.length;i++){var a=links[i].sourceNode,b=links[i].targetNode,dx=a.x-b.x,dy=a.y-b.y,dn=Math.sqrt(dx*dx+dy*dy),dd=dn?(1/dn):1,ks=k*kl[i],kd=d*kl[i],kk=(ks*(dn-l)+kd*(dx*(a.vx-b.vx)+dy*(a.vy-b.vy))*dd)*dd,fx=-kk*(dn?dx:(.01*(.5-Math.random()))),fy=-kk*(dn?dy:(.01*(.5-Math.random())));a.fx+=fx;a.fy+=fy;b.fx-=fx;b.fy-=fy}};return force};pv.Constraint={};pv.Constraint.collision=function(radius){var n=1,r1,px1,py1,px2,py2,constraint={};if(!arguments.length)r1=10;constraint.repeat=function(x){if(arguments.length){n=Number(x);return constraint}return n};function constrain(n,p,x1,y1,x2,y2){if(!n.leaf){var sx=(x1+x2)*.5,sy=(y1+y2)*.5,top=sy>py1,bottom=sy<py2,left=sx>px1,right=sx<px2;if(top){if(n.c1&&left)constrain(n.c1,p,x1,y1,sx,sy);if(n.c2&&right)constrain(n.c2,p,sx,y1,x2,sy)}if(bottom){if(n.c3&&left)constrain(n.c3,p,x1,sy,sx,y2);if(n.c4&&right)constrain(n.c4,p,sx,sy,x2,y2)}}if(n.p&&(n.p!=p)){var dx=p.x-n.p.x,dy=p.y-n.p.y,l=Math.sqrt(dx*dx+dy*dy),d=r1+radius(n.p);if(l<d){var k=(l-d)/l*.5;dx*=k;dy*=k;p.x-=dx;p.y-=dy;n.p.x+=dx;n.p.y+=dy}}}constraint.apply=function(particles,q){var p,r,max=-Infinity;for(p=particles;p;p=p.next){r=radius(p);if(r>max)max=r}for(var i=0;i<n;i++){for(p=particles;p;p=p.next){r=(r1=radius(p))+max;px1=p.x-r;px2=p.x+r;py1=p.y-r;py2=p.y+r;constrain(q.root,p,q.xMin,q.yMin,q.xMax,q.yMax)}}};return constraint};pv.Constraint.position=function(f){var a=1,constraint={};if(!arguments.length)f=function(p){return p.fix};constraint.alpha=function(x){if(arguments.length){a=Number(x);return constraint}return a};constraint.apply=function(particles){for(var p=particles;p;p=p.next){var v=f(p);if(v){p.x+=(v.x-p.x)*a;p.y+=(v.y-p.y)*a;p.fx=p.fy=p.vx=p.vy=0}}};return constraint};pv.Constraint.bound=function(){var constraint={},x,y;constraint.x=function(min,max){if(arguments.length){x={min:Math.min(min,max),max:Math.max(min,max)};return this}return x};constraint.y=function(min,max){if(arguments.length){y={min:Math.min(min,max),max:Math.max(min,max)};return this}return y};constraint.apply=function(particles){if(x)for(var p=particles;p;p=p.next){p.x=p.x<x.min?x.min:(p.x>x.max?x.max:p.x)}if(y)for(var p=particles;p;p=p.next){p.y=p.y<y.min?y.min:(p.y>y.max?y.max:p.y)}};return constraint};pv.Layout=function(){pv.Panel.call(this)};pv.Layout.prototype=pv.extend(pv.Panel);pv.Layout.prototype.property=pv.Mark.prototype.localProperty;pv.Layout.Network=function(){pv.Layout.call(this);var that=this;this.$id=pv.id();(this.node=new pv.Mark().data(function(){return that.nodes()}).strokeStyle("#1f77b4").fillStyle("#fff").left(function(n){return n.x}).top(function(n){return n.y})).parent=this;this.link=new pv.Mark().extend(this.node).data(function(p){return[p.sourceNode,p.targetNode]}).fillStyle(null).lineWidth(function(d,p){return p.linkValue*1.5}).strokeStyle("rgba(0,0,0,.2)");this.link.add=function(type){return that.add(pv.Panel).data(function(){return that.links()}).add(type).extend(this)};(this.label=new pv.Mark().extend(this.node).textMargin(7).textBaseline("middle").text(function(n){return n.nodeName||n.nodeValue}).textAngle(function(n){var a=n.midAngle;return pv.Wedge.upright(a)?a:(a+Math.PI)}).textAlign(function(n){return pv.Wedge.upright(n.midAngle)?"left":"right"})).parent=this};pv.Layout.Network.prototype=pv.extend(pv.Layout).property("nodes",function(v){return v.map(function(d,i){if(typeof d!="object")d={nodeValue:d};d.index=i;return d})}).property("links",function(v){return v.map(function(d){if(isNaN(d.linkValue))d.linkValue=isNaN(d.value)?1:d.value;return d})});pv.Layout.Network.prototype.reset=function(){this.$id=pv.id();return this};pv.Layout.Network.prototype.buildProperties=function(s,properties){if((s.$id||0)<this.$id){pv.Layout.prototype.buildProperties.call(this,s,properties)}};pv.Layout.Network.prototype.buildImplied=function(s){pv.Layout.prototype.buildImplied.call(this,s);if(s.$id>=this.$id)return true;s.$id=this.$id;s.nodes.forEach(function(d){d.linkDegree=0});s.links.forEach(function(d){var v=d.linkValue;(d.sourceNode||(d.sourceNode=s.nodes[d.source])).linkDegree+=v;(d.targetNode||(d.targetNode=s.nodes[d.target])).linkDegree+=v})};pv.Layout.Hierarchy=function(){pv.Layout.Network.call(this);this.link.strokeStyle("#ccc")};pv.Layout.Hierarchy.prototype=pv.extend(pv.Layout.Network);pv.Layout.Hierarchy.prototype.buildImplied=function(s){if(!s.links)s.links=pv.Layout.Hierarchy.links.call(this);pv.Layout.Network.prototype.buildImplied.call(this,s)};pv.Layout.Hierarchy.links=function(){return this.nodes().filter(function(n){return n.parentNode}).map(function(n){return{sourceNode:n,targetNode:n.parentNode,linkValue:1}})};pv.Layout.Hierarchy.NodeLink={buildImplied:function(s){var nodes=s.nodes,orient=s.orient,horizontal=/^(top|bottom)$/.test(orient),w=s.width,h=s.height;if(orient=="radial"){var ir=s.innerRadius,or=s.outerRadius;if(ir==null)ir=0;if(or==null)or=Math.min(w,h)/2}function radius(n){return n.parentNode?(n.depth*(or-ir)+ir):0}function midAngle(n){return(n.parentNode?(n.breadth-.25)*2*Math.PI:0)}function x(n){switch(orient){case"left":return n.depth*w;case"right":return w-n.depth*w;case"top":return n.breadth*w;case"bottom":return w-n.breadth*w;case"radial":return w/2+radius(n)*Math.cos(n.midAngle)}}function y(n){switch(orient){case"left":return n.breadth*h;case"right":return h-n.breadth*h;case"top":return n.depth*h;case"bottom":return h-n.depth*h;case"radial":return h/2+radius(n)*Math.sin(n.midAngle)}}for(var i=0;i<nodes.length;i++){var n=nodes[i];n.midAngle=orient=="radial"?midAngle(n):horizontal?Math.PI/2:0;n.x=x(n);n.y=y(n);if(n.firstChild)n.midAngle+=Math.PI}}};pv.Layout.Hierarchy.Fill={constructor:function(){this.node.strokeStyle("#fff").fillStyle("#ccc").width(function(n){return n.dx}).height(function(n){return n.dy}).innerRadius(function(n){return n.innerRadius}).outerRadius(function(n){return n.outerRadius}).startAngle(function(n){return n.startAngle}).angle(function(n){return n.angle});this.label.textAlign("center").left(function(n){return n.x+(n.dx/2)}).top(function(n){return n.y+(n.dy/2)});delete this.link},buildImplied:function(s){var nodes=s.nodes,orient=s.orient,horizontal=/^(top|bottom)$/.test(orient),w=s.width,h=s.height,depth=-nodes[0].minDepth;if(orient=="radial"){var ir=s.innerRadius,or=s.outerRadius;if(ir==null)ir=0;if(ir)depth*=2;if(or==null)or=Math.min(w,h)/2}function scale(d,depth){return(d+depth)/(1+depth)}function x(n){switch(orient){case"left":return scale(n.minDepth,depth)*w;case"right":return(1-scale(n.maxDepth,depth))*w;case"top":return n.minBreadth*w;case"bottom":return(1-n.maxBreadth)*w;case"radial":return w/2}}function y(n){switch(orient){case"left":return n.minBreadth*h;case"right":return(1-n.maxBreadth)*h;case"top":return scale(n.minDepth,depth)*h;case"bottom":return(1-scale(n.maxDepth,depth))*h;case"radial":return h/2}}function dx(n){switch(orient){case"left":case"right":return(n.maxDepth-n.minDepth)/(1+depth)*w;case"top":case"bottom":return(n.maxBreadth-n.minBreadth)*w;case"radial":return n.parentNode?(n.innerRadius+n.outerRadius)*Math.cos(n.midAngle):0}}function dy(n){switch(orient){case"left":case"right":return(n.maxBreadth-n.minBreadth)*h;case"top":case"bottom":return(n.maxDepth-n.minDepth)/(1+depth)*h;case"radial":return n.parentNode?(n.innerRadius+n.outerRadius)*Math.sin(n.midAngle):0}}function innerRadius(n){return Math.max(0,scale(n.minDepth,depth/2))*(or-ir)+ir}function outerRadius(n){return scale(n.maxDepth,depth/2)*(or-ir)+ir}function startAngle(n){return(n.parentNode?n.minBreadth-.25:0)*2*Math.PI}function angle(n){return(n.parentNode?n.maxBreadth-n.minBreadth:1)*2*Math.PI}for(var i=0;i<nodes.length;i++){var n=nodes[i];n.x=x(n);n.y=y(n);if(orient=="radial"){n.innerRadius=innerRadius(n);n.outerRadius=outerRadius(n);n.startAngle=startAngle(n);n.angle=angle(n);n.midAngle=n.startAngle+n.angle/2}else{n.midAngle=horizontal?-Math.PI/2:0}n.dx=dx(n);n.dy=dy(n)}}};pv.Layout.Grid=function(){pv.Layout.call(this);var that=this;(this.cell=new pv.Mark().data(function(){return that.scene[that.index].$grid}).width(function(){return that.width()/that.cols()}).height(function(){return that.height()/that.rows()}).left(function(){return this.width()*(this.index%that.cols())}).top(function(){return this.height()*Math.floor(this.index/that.cols())})).parent=this};pv.Layout.Grid.prototype=pv.extend(pv.Layout).property("rows").property("cols");pv.Layout.Grid.prototype.defaults=new pv.Layout.Grid().extend(pv.Layout.prototype.defaults).rows(1).cols(1);pv.Layout.Grid.prototype.buildImplied=function(s){pv.Layout.prototype.buildImplied.call(this,s);var r=s.rows,c=s.cols;if(typeof c=="object")r=pv.transpose(c);if(typeof r=="object"){s.$grid=pv.blend(r);s.rows=r.length;s.cols=r[0]?r[0].length:0}else{s.$grid=pv.repeat([s.data],r*c)}};pv.Layout.Stack=function(){pv.Layout.call(this);var that=this,none=function(){return null},prop={t:none,l:none,r:none,b:none,w:none,h:none},values,buildImplied=that.buildImplied;function proxy(name){return function(){return prop[name](this.parent.index,this.index)}}this.buildImplied=function(s){buildImplied.call(this,s);var data=s.layers,n=data.length,m,orient=s.orient,horizontal=/^(top|bottom)\/.test(orient),h=this.parent[horizontal?"height":"width"](),x=[],y=[],dy=[];var stack=pv.Mark.stack,o={parent:{parent:this}};stack.unshift(null);values=[];for(var i=0;i<n;i++){dy[i]=[];y[i]=[];o.parent.index=i;stack[0]=data[i];values[i]=this.$values.apply(o.parent,stack);if(!i)m=values[i].length;stack.unshift(null);for(var j=0;j<m;j++){stack[0]=values[i][j];o.index=j;if(!i)x[j]=this.$x.apply(o,stack);dy[i][j]=this.$y.apply(o,stack)}stack.shift()}stack.shift();var index;switch(s.order){case"inside-out":{var max=dy.map(function(v){return pv.max.index(v)}),map=pv.range(n).sort(function(a,b){return max[a]-max[b]}),sums=dy.map(function(v){return pv.sum(v)}),top=0,bottom=0,tops=[],bottoms=[];for(var i=0;i<n;i++){var j=map[i];if(top<bottom){top+=sums[j];tops.push(j)}else{bottom+=sums[j];bottoms.push(j)}}index=bottoms.reverse().concat(tops);break}case"reverse":index=pv.range(n-1,-1,-1);break;default:index=pv.range(n);break}switch(s.offset){case"silohouette":{for(var j=0;j<m;j++){var o=0;for(var i=0;i<n;i++)o+=dy[i][j];y[index[0]][j]=(h-o)/2}break}case"wiggle":{var o=0;for(var i=0;i<n;i++)o+=dy[i][0];y[index[0]][0]=o=(h-o)/2;for(var j=1;j<m;j++){var s1=0,s2=0,dx=x[j]-x[j-1];for(var i=0;i<n;i++)s1+=dy[i][j];for(var i=0;i<n;i++){var s3=(dy[index[i]][j]-dy[index[i]][j-1])/(2*dx);for(var k=0;k<i;k++){s3+=(dy[index[k]][j]-dy[index[k]][j-1])/dx}s2+=s3*dy[index[i]][j]}y[index[0]][j]=o-=s1?s2/s1*dx:0}break}case"expand":{for(var j=0;j<m;j++){y[index[0]][j]=0;var k=0;for(var i=0;i<n;i++)k+=dy[i][j];if(k){k=h/k;for(var i=0;i<n;i++)dy[i][j]*=k}else{k=h/n;for(var i=0;i<n;i++)dy[i][j]=k}}break}default:{for(var j=0;j<m;j++)y[index[0]][j]=0;break}}for(var j=0;j<m;j++){var o=y[index[0]][j];for(var i=1;i<n;i++){o+=dy[index[i-1]][j];y[index[i]][j]=o}}var i=orient.indexOf("-"),pdy=horizontal?"h":"w",px=i<0?(horizontal?"l":"b"):orient.charAt(i+1),py=orient.charAt(0);for(var p in prop)prop[p]=none;prop[px]=function(i,j){return x[j]};prop[py]=function(i,j){return y[i][j]};prop[pdy]=function(i,j){return dy[i][j]}};this.layer=new pv.Mark().data(function(){return values[this.parent.index]}).top(proxy("t")).left(proxy("l")).right(proxy("r")).bottom(proxy("b")).width(proxy("w")).height(proxy("h"));this.layer.add=function(type){return that.add(pv.Panel).data(function(){return that.layers()}).add(type).extend(this)}};pv.Layout.Stack.prototype=pv.extend(pv.Layout).property("orient",String).property("offset",String).property("order",String).property("layers");pv.Layout.Stack.prototype.defaults=new pv.Layout.Stack().extend(pv.Layout.prototype.defaults).orient("bottom-left").offset("zero").layers([[]]);pv.Layout.Stack.prototype.$x=pv.Layout.Stack.prototype.$y=function(){return 0};pv.Layout.Stack.prototype.x=function(f){this.$x=pv.functor(f);return this};pv.Layout.Stack.prototype.y=function(f){this.$y=pv.functor(f);return this};pv.Layout.Stack.prototype.$values=pv.identity;pv.Layout.Stack.prototype.values=function(f){this.$values=pv.functor(f);return this};pv.Layout.Band=function(){pv.Layout.call(this);var that=this,buildImplied=that.buildImplied,itemProps,values;var itemProto=new pv.Mark().data(function(){return values[this.parent.index]}).top(proxy("t")).left(proxy("l")).right(proxy("r")).bottom(proxy("b")).width(proxy("w")).height(proxy("h"));function proxy(name){return function(){return itemProps[name](this.index,this.parent.index)}}this.buildImplied=function(s){buildImplied.call(this,s);itemProps=Object.create(pv.Layout.Band.$baseItemProps);values=[];var data=s.layers,L=data.length;if(L>0){var orient=s.orient,horizontal=/^(top|bottom)\/.test(orient),bh=this.parent[horizontal?"height":"width"](),bands=this._readData(data,values,s),B=bands.length;if(s.bandOrder==="reverse"){bands.reverse()}if(s.order==="reverse"){values.reverse();for(var b=0;b<B;b++){bands[b].items.reverse()}}switch(s.layout){case"grouped":this._calcGrouped(bands,L,s);break;case"stacked":this._calcStacked(bands,L,bh,s);break}this._bindItemProps(bands,itemProps,orient,horizontal)}};var itemAccessor=this.item={end:this,add:function(type){return that.add(pv.Panel).data(function(){return that.layers()}).add(type).extend(itemProto)},order:function(value){that.order(value);return this},w:function(f){that.$iw=pv.functor(f);return this},h:function(f){that.$ih=pv.functor(f);return this},horizontalRatio:function(f){that.$ihorizRatio=pv.functor(f);return this},verticalMargin:function(f){that.$ivertiMargin=pv.functor(f);return this}};var bandAccessor=this.band={end:this,w:function(f){that.$bw=pv.functor(f);return this},x:function(f){that.$bx=pv.functor(f);return this},order:function(value){that.bandOrder(value);return this},differentialControl:function(f){that.$bDiffControl=pv.functor(f);return this}};this.band.item=itemAccessor;this.item.band=bandAccessor};pv.Layout.Band.$baseItemProps=(function(){var none=function(){return null};return{t:none,l:none,r:none,b:none,w:none,h:none}}());pv.Layout.Band.prototype=pv.extend(pv.Layout).property("orient",String).property("layout",String).property("layers").property("yZero",Number).property("verticalMode",String).property("horizontalMode",String).property("order",String).property("bandOrder",String);pv.Layout.Band.prototype.defaults=new pv.Layout.Band().extend(pv.Layout.prototype.defaults).orient("bottom-left").layout("grouped").yZero(0).layers([[]]);pv.Layout.Band.prototype.$bx=pv.Layout.Band.prototype.$bw=pv.Layout.Band.prototype.$bDiffControl=pv.Layout.Band.prototype.$iw=pv.Layout.Band.prototype.$ih=pv.Layout.Band.prototype.$ivertiMargin=pv.functor(0);pv.Layout.Band.prototype.$ihorizRatio=pv.functor(0.9);pv.Layout.Band.prototype.$values=pv.identity;pv.Layout.Band.prototype.values=function(f){this.$values=pv.functor(f);return this};pv.Layout.prototype._readData=function(data,layersValues,scene){var L=data.length,bands=[],B;var stack=pv.Mark.stack,o={parent:{parent:this}};stack.unshift(null);for(var l=0;l<L;l++){o.parent.index=l;stack[0]=data[l];var layerValues=layersValues[l]=this.$values.apply(o.parent,stack);if(!l){B=layerValues.length}stack.unshift(null);for(var b=0;b<B;b++){stack[0]=layerValues[b];o.index=b;var band=bands[b];if(!band){band=bands[b]={horizRatio:this.$ihorizRatio.apply(o,stack),vertiMargin:this.$ivertiMargin.apply(o,stack),w:this.$bw.apply(o,stack),x:this.$bx.apply(o,stack),diffControl:this.$bDiffControl?this.$bDiffControl.apply(o,stack):0,items:[]}}var ih=this.$ih.apply(o,stack);band.items[l]={y:(scene.yZero||0),x:0,w:this.$iw.apply(o,stack),h:ih!=null?Math.abs(ih):ih,dir:ih<0?-1:1}}stack.shift()}stack.shift();return bands};pv.Layout.Band.prototype._calcGrouped=function(bands,L,scene){for(var b=0,B=bands.length;b<B;b++){var band=bands[b],items=band.items,w=band.w,horizRatio=band.horizRatio,wItems=0;for(var l=0;l<L;l++){wItems+=items[l].w}if(L===1){horizRatio=1}else if(!(horizRatio>0&&horizRatio<=1)){horizRatio=1}if(w==null){w=band.w=wItems/horizRatio}else if(scene.horizontalMode==='expand'){var wItems2=horizRatio*w;if(wItems){var wScale=wItems2/wItems;for(var l=0;l<L;l++){items[l].w*=wScale}}else{var wiavg=wItems2/L;for(var l=0;l<L;l++){items[l].w=wiavg}}wItems=wItems2}var wItemsWithMargin=wItems/horizRatio,ix=band.x-(wItemsWithMargin/2),margin=L>1?((wItemsWithMargin-wItems)/(L-1)):0;for(var l=0;l<L;l++){var item=items[l];item.x=ix;ix+=item.w+margin;if(item.dir<0){item.y-=item.h}}}};pv.Layout.Band.prototype._calcStacked=function(bands,L,bh,scene){var B=bands.length,items;if(scene.verticalMode==="expand"){for(var b=0;b<B;b++){items=bands[b].items;var hSum=null,nonNullCount=0;for(var l=0;l<L;l++){var item=items[l];item.dir=1;var h=item.h;if(h!=null){nonNullCount++;hSum+=h}}if(nonNullCount){if(hSum){var hScale=bh/hSum;for(var l=0;l<L;l++){var h=items[l].h;if(h!=null){items[l].h=h*hScale}}}else{var hAvg=bh/nonNullCount;for(var l=0;l<L;l++){var h=items[l].h;if(h!=null){items[l].h=hAvg}}}}}}var yZero=scene.yZero,yOffset=yZero;for(var b=0;b<B;b++){var band=bands[b],bx=band.x,bDiffControl=band.diffControl,invertDir=(bDiffControl<0),vertiMargin=band.vertiMargin>0?band.vertiMargin:0;items=band.items;var resultPos=this._layoutItemsOfDir(+1,invertDir,items,vertiMargin,bx,yOffset),resultNeg;if(resultPos.existsOtherDir){resultNeg=this._layoutItemsOfDir(-1,invertDir,items,vertiMargin,bx,yOffset)}if(bDiffControl){if(Math.abs(bDiffControl)===1){var yOffset0=yOffset;yOffset=resultPos.yOffset;if(resultNeg){yOffset-=(yOffset0-resultNeg.yOffset)}}}else{yOffset=yZero}}};pv.Layout.Band.prototype._layoutItemsOfDir=function(stackDir,invertDir,items,vertiMargin,bx,yOffset){var existsOtherDir=false,vertiMargin2=vertiMargin/2,efDir=(invertDir?-stackDir:stackDir),reverseLayers=invertDir;for(var l=0,L=items.length;l<L;l+=1){var item=items[reverseLayers?(L-l-1):l];if(item.dir===stackDir){var h=item.h||0;if(efDir>0){item.y=yOffset+vertiMargin2;yOffset+=h}else{item.y=yOffset-(h-vertiMargin2);yOffset-=h}var h2=item.h-vertiMargin;item.h=h2>0?h2:0;item.x=bx-item.w/2}else{existsOtherDir=true}}return{existsOtherDir:existsOtherDir,yOffset:yOffset}};pv.Layout.Band.prototype._bindItemProps=function(bands,itemProps,orient,horizontal){var index=orient.indexOf("-"),ph=horizontal?"h":"w",pw=horizontal?"w":"h",px=index<0?(horizontal?"l":"b"):orient.charAt(index+1),py=orient.charAt(0);itemProps[px]=function(b,l){return bands[b].items[l].x};itemProps[py]=function(b,l){return bands[b].items[l].y};itemProps[pw]=function(b,l){return bands[b].items[l].w};itemProps[ph]=function(b,l){return bands[b].items[l].h||0}};pv.Layout.Treemap=function(){pv.Layout.Hierarchy.call(this);this.node.strokeStyle("#fff").fillStyle("rgba(31, 119, 180, .25)").width(function(n){return n.dx}).height(function(n){return n.dy});this.label.visible(function(n){return!n.firstChild}).left(function(n){return n.x+(n.dx/2)}).top(function(n){return n.y+(n.dy/2)}).textAlign("center").textAngle(function(n){return n.dx>n.dy?0:-Math.PI/2});(this.leaf=new pv.Mark().extend(this.node).fillStyle(null).strokeStyle(null).visible(function(n){return!n.firstChild})).parent=this;delete this.link};pv.Layout.Treemap.prototype=pv.extend(pv.Layout.Hierarchy).property("round",Boolean).property("paddingLeft",Number).property("paddingRight",Number).property("paddingTop",Number).property("paddingBottom",Number).property("mode",String).property("order",String);pv.Layout.Treemap.prototype.defaults=new pv.Layout.Treemap().extend(pv.Layout.Hierarchy.prototype.defaults).mode("squarify").order("ascending");pv.Layout.Treemap.prototype.padding=function(n){return this.paddingLeft(n).paddingRight(n).paddingTop(n).paddingBottom(n)};pv.Layout.Treemap.prototype.$size=function(d){return Number(d.nodeValue)};pv.Layout.Treemap.prototype.size=function(f){this.$size=pv.functor(f);return this};pv.Layout.Treemap.prototype.buildImplied=function(s){if(pv.Layout.Hierarchy.prototype.buildImplied.call(this,s))return;var that=this,nodes=s.nodes,root=nodes[0],stack=pv.Mark.stack,left=s.paddingLeft,right=s.paddingRight,top=s.paddingTop,bottom=s.paddingBottom,size=function(n){return n.size},round=s.round?Math.round:Number,mode=s.mode;function slice(row,sum,horizontal,x,y,w,h){for(var i=0,d=0;i<row.length;i++){var n=row[i];if(horizontal){n.x=x+d;n.y=y;d+=n.dx=round(w*n.size/sum);n.dy=h}else{n.x=x;n.y=y+d;n.dx=w;d+=n.dy=round(h*n.size/sum)}}if(n){if(horizontal){n.dx+=w-d}else{n.dy+=h-d}}}function ratio(row,l){var rmax=-Infinity,rmin=Infinity,s=0;for(var i=0;i<row.length;i++){var r=row[i].size;if(r<rmin)rmin=r;if(r>rmax)rmax=r;s+=r}s=s*s;l=l*l;return Math.max(l*rmax/s,s/(l*rmin))}function layout(n,i){var x=n.x+left,y=n.y+top,w=n.dx-left-right,h=n.dy-top-bottom;if(mode!="squarify"){slice(n.childNodes,n.size,mode=="slice"?true:mode=="dice"?false:i&1,x,y,w,h);return}var row=[],mink=Infinity,l=Math.min(w,h),k=w*h/n.size;if(n.size<=0)return;n.visitBefore(function(n){n.size*=k});function position(row){var horizontal=w==l,sum=pv.sum(row,size),r=l?round(sum/l):0;slice(row,sum,horizontal,x,y,horizontal?w:r,horizontal?r:h);if(horizontal){y+=r;h-=r}else{x+=r;w-=r}l=Math.min(w,h);return horizontal}var children=n.childNodes.slice();while(children.length){var child=children[children.length-1];if(!child.size){children.pop();continue}row.push(child);var k=ratio(row,l);if(k<=mink){children.pop();mink=k}else{row.pop();position(row);row.length=0;mink=Infinity}}if(position(row))for(var i=0;i<row.length;i++){row[i].dy+=h}else for(var i=0;i<row.length;i++){row[i].dx+=w}}stack.unshift(null);root.visitAfter(function(n,i){n.depth=i;n.x=n.y=n.dx=n.dy=0;n.size=n.firstChild?pv.sum(n.childNodes,function(n){return n.size}):that.$size.apply(that,(stack[0]=n,stack))});stack.shift();switch(s.order){case"ascending":{root.sort(function(a,b){return a.size-b.size});break}case"descending":{root.sort(function(a,b){return b.size-a.size});break}case"reverse":root.reverse();break}root.x=0;root.y=0;root.dx=s.width;root.dy=s.height;root.visitBefore(layout)};pv.Layout.Tree=function(){pv.Layout.Hierarchy.call(this)};pv.Layout.Tree.prototype=pv.extend(pv.Layout.Hierarchy).property("group",Number).property("breadth",Number).property("depth",Number).property("orient",String);pv.Layout.Tree.prototype.defaults=new pv.Layout.Tree().extend(pv.Layout.Hierarchy.prototype.defaults).group(1).breadth(15).depth(60).orient("top");pv.Layout.Tree.prototype.buildImplied=function(s){if(pv.Layout.Hierarchy.prototype.buildImplied.call(this,s))return;var nodes=s.nodes,orient=s.orient,depth=s.depth,breadth=s.breadth,group=s.group,w=s.width,h=s.height;function firstWalk(v){var l,r,a;if(!v.firstChild){if(l=v.previousSibling){v.prelim=l.prelim+distance(v.depth,true)}}else{l=v.firstChild;r=v.lastChild;a=l;for(var c=l;c;c=c.nextSibling){firstWalk(c);a=apportion(c,a)}executeShifts(v);var midpoint=.5*(l.prelim+r.prelim);if(l=v.previousSibling){v.prelim=l.prelim+distance(v.depth,true);v.mod=v.prelim-midpoint}else{v.prelim=midpoint}}}function secondWalk(v,m,depth){v.breadth=v.prelim+m;m+=v.mod;for(var c=v.firstChild;c;c=c.nextSibling){secondWalk(c,m,depth)}}function apportion(v,a){var w=v.previousSibling;if(w){var vip=v,vop=v,vim=w,vom=v.parentNode.firstChild,sip=vip.mod,sop=vop.mod,sim=vim.mod,som=vom.mod,nr=nextRight(vim),nl=nextLeft(vip);while(nr&&nl){vim=nr;vip=nl;vom=nextLeft(vom);vop=nextRight(vop);vop.ancestor=v;var shift=(vim.prelim+sim)-(vip.prelim+sip)+distance(vim.depth,false);if(shift>0){moveSubtree(ancestor(vim,v,a),v,shift);sip+=shift;sop+=shift}sim+=vim.mod;sip+=vip.mod;som+=vom.mod;sop+=vop.mod;nr=nextRight(vim);nl=nextLeft(vip)}if(nr&&!nextRight(vop)){vop.thread=nr;vop.mod+=sim-sop}if(nl&&!nextLeft(vom)){vom.thread=nl;vom.mod+=sip-som;a=v}}return a}function nextLeft(v){return v.firstChild||v.thread}function nextRight(v){return v.lastChild||v.thread}function moveSubtree(wm,wp,shift){var subtrees=wp.number-wm.number;wp.change-=shift/subtrees;wp.shift+=shift;wm.change+=shift/subtrees;wp.prelim+=shift;wp.mod+=shift}function executeShifts(v){var shift=0,change=0;for(var c=v.lastChild;c;c=c.previousSibling){c.prelim+=shift;c.mod+=shift;change+=c.change;shift+=c.shift+change}}function ancestor(vim,v,a){return(vim.ancestor.parentNode==v.parentNode)?vim.ancestor:a}function distance(depth,siblings){return(siblings?1:(group+1))/((orient=="radial")?depth:1)}var root=nodes[0];root.visitAfter(function(v,i){v.ancestor=v;v.prelim=0;v.mod=0;v.change=0;v.shift=0;v.number=v.previousSibling?(v.previousSibling.number+1):0;v.depth=i});firstWalk(root);secondWalk(root,-root.prelim,0);function midAngle(n){return(orient=="radial")?n.breadth/depth:0}function x(n){switch(orient){case"left":return n.depth;case"right":return w-n.depth;case"top":case"bottom":return n.breadth+w/2;case"radial":return w/2+n.depth*Math.cos(midAngle(n))}}function y(n){switch(orient){case"left":case"right":return n.breadth+h/2;case"top":return n.depth;case"bottom":return h-n.depth;case"radial":return h/2+n.depth*Math.sin(midAngle(n))}}root.visitAfter(function(v){v.breadth*=breadth;v.depth*=depth;v.midAngle=midAngle(v);v.x=x(v);v.y=y(v);if(v.firstChild)v.midAngle+=Math.PI;delete v.breadth;delete v.depth;delete v.ancestor;delete v.prelim;delete v.mod;delete v.change;delete v.shift;delete v.number;delete v.thread})};pv.Layout.Indent=function(){pv.Layout.Hierarchy.call(this);this.link.interpolate("step-after")};pv.Layout.Indent.prototype=pv.extend(pv.Layout.Hierarchy).property("depth",Number).property("breadth",Number);pv.Layout.Indent.prototype.defaults=new pv.Layout.Indent().extend(pv.Layout.Hierarchy.prototype.defaults).depth(15).breadth(15);pv.Layout.Indent.prototype.buildImplied=function(s){if(pv.Layout.Hierarchy.prototype.buildImplied.call(this,s))return;var nodes=s.nodes,bspace=s.breadth,dspace=s.depth,ax=0,ay=0;function position(n,breadth,depth){n.x=ax+depth++*dspace;n.y=ay+breadth++*bspace;n.midAngle=0;for(var c=n.firstChild;c;c=c.nextSibling){breadth=position(c,breadth,depth)}return breadth}position(nodes[0],1,1)};pv.Layout.Pack=function(){pv.Layout.Hierarchy.call(this);this.node.shapeRadius(function(n){return n.radius}).strokeStyle("rgb(31, 119, 180)").fillStyle("rgba(31, 119, 180, .25)");this.label.textAlign("center");delete this.link};pv.Layout.Pack.prototype=pv.extend(pv.Layout.Hierarchy).property("spacing",Number).property("order",String);pv.Layout.Pack.prototype.defaults=new pv.Layout.Pack().extend(pv.Layout.Hierarchy.prototype.defaults).spacing(1).order("ascending");pv.Layout.Pack.prototype.$radius=function(){return 1};pv.Layout.Pack.prototype.size=function(f){this.$radius=typeof f=="function"?function(){return Math.sqrt(f.apply(this,arguments))}:(f=Math.sqrt(f),function(){return f});return this};pv.Layout.Pack.prototype.buildImplied=function(s){if(pv.Layout.Hierarchy.prototype.buildImplied.call(this,s))return;var that=this,nodes=s.nodes,root=nodes[0];function radii(nodes){var stack=pv.Mark.stack;stack.unshift(null);for(var i=0,n=nodes.length;i<n;i++){var c=nodes[i];if(!c.firstChild){c.radius=that.$radius.apply(that,(stack[0]=c,stack))}}stack.shift()}function packTree(n){var nodes=[];for(var c=n.firstChild;c;c=c.nextSibling){if(c.firstChild)c.radius=packTree(c);c.n=c.p=c;nodes.push(c)}switch(s.order){case"ascending":{nodes.sort(function(a,b){return a.radius-b.radius});break}case"descending":{nodes.sort(function(a,b){return b.radius-a.radius});break}case"reverse":nodes.reverse();break}return packCircle(nodes)}function packCircle(nodes){var xMin=Infinity,xMax=-Infinity,yMin=Infinity,yMax=-Infinity,a,b,c,j,k;function bound(n){xMin=Math.min(n.x-n.radius,xMin);xMax=Math.max(n.x+n.radius,xMax);yMin=Math.min(n.y-n.radius,yMin);yMax=Math.max(n.y+n.radius,yMax)}function insert(a,b){var c=a.n;a.n=b;b.p=a;b.n=c;c.p=b}function splice(a,b){a.n=b;b.p=a}function intersects(a,b){var dx=b.x-a.x,dy=b.y-a.y,dr=a.radius+b.radius;return(dr*dr-dx*dx-dy*dy)>.001}a=nodes[0];a.x=-a.radius;a.y=0;bound(a);if(nodes.length>1){b=nodes[1];b.x=b.radius;b.y=0;bound(b);if(nodes.length>2){c=nodes[2];place(a,b,c);bound(c);insert(a,c);a.p=c;insert(c,b);b=a.n;for(var i=3;i<nodes.length;i++){place(a,b,c=nodes[i]);var isect=0,s1=1,s2=1;for(j=b.n;j!=b;j=j.n,s1++){if(intersects(j,c)){isect=1;break}}if(isect==1){for(k=a.p;k!=j.p;k=k.p,s2++){if(intersects(k,c)){if(s2<s1){isect=-1;j=k}break}}}if(isect==0){insert(a,c);b=c;bound(c)}else if(isect>0){splice(a,j);b=j;i--}else if(isect<0){splice(j,b);a=j;i--}}}}var cx=(xMin+xMax)/2,cy=(yMin+yMax)/2,cr=0;for(var i=0;i<nodes.length;i++){var n=nodes[i];n.x-=cx;n.y-=cy;cr=Math.max(cr,n.radius+Math.sqrt(n.x*n.x+n.y*n.y))}return cr+s.spacing}function place(a,b,c){var da=b.radius+c.radius,db=a.radius+c.radius,dx=b.x-a.x,dy=b.y-a.y,dc=Math.sqrt(dx*dx+dy*dy),cos=(db*db+dc*dc-da*da)/(2*db*dc),theta=Math.acos(cos),x=cos*db,h=Math.sin(theta)*db;dx/=dc;dy/=dc;c.x=a.x+x*dx+h*dy;c.y=a.y+x*dy-h*dx}function transform(n,x,y,k){for(var c=n.firstChild;c;c=c.nextSibling){c.x+=n.x;c.y+=n.y;transform(c,x,y,k)}n.x=x+k*n.x;n.y=y+k*n.y;n.radius*=k}radii(nodes);root.x=0;root.y=0;root.radius=packTree(root);var w=this.width(),h=this.height(),k=1/Math.max(2*root.radius/ w, 2 * root.radius /h);transform(root,w/2,h/2,k)};pv.Layout.Force=function(){pv.Layout.Network.call(this);this.link.lineWidth(function(d,p){return Math.sqrt(p.linkValue)*1.5});this.label.textAlign("center")};pv.Layout.Force.prototype=pv.extend(pv.Layout.Network).property("bound",Boolean).property("iterations",Number).property("dragConstant",Number).property("chargeConstant",Number).property("chargeMinDistance",Number).property("chargeMaxDistance",Number).property("chargeTheta",Number).property("springConstant",Number).property("springDamping",Number).property("springLength",Number);pv.Layout.Force.prototype.defaults=new pv.Layout.Force().extend(pv.Layout.Network.prototype.defaults).dragConstant(.1).chargeConstant(-40).chargeMinDistance(2).chargeMaxDistance(500).chargeTheta(.9).springConstant(.1).springDamping(.3).springLength(20);pv.Layout.Force.prototype.buildImplied=function(s){if(pv.Layout.Network.prototype.buildImplied.call(this,s)){var f=s.$force;if(f){f.next=this.binds.$force;this.binds.$force=f}return}var that=this,nodes=s.nodes,links=s.links,k=s.iterations,w=s.width,h=s.height;for(var i=0,n;i<nodes.length;i++){n=nodes[i];if(isNaN(n.x))n.x=w/2+40*Math.random()-20;if(isNaN(n.y))n.y=h/2+40*Math.random()-20}var sim=pv.simulation(nodes);sim.force(pv.Force.drag(s.dragConstant));sim.force(pv.Force.charge(s.chargeConstant).domain(s.chargeMinDistance,s.chargeMaxDistance).theta(s.chargeTheta));sim.force(pv.Force.spring(s.springConstant).damping(s.springDamping).length(s.springLength).links(links));sim.constraint(pv.Constraint.position());if(s.bound){sim.constraint(pv.Constraint.bound().x(6,w-6).y(6,h-6))}function speed(n){return n.fix?1:n.vx*n.vx+n.vy*n.vy}if(k==null){sim.step();sim.step();var force=s.$force=this.binds.$force={next:this.binds.$force,nodes:nodes,min:1e-4*(links.length+1),sim:sim};if(!this.$timer)this.$timer=setInterval(function(){var render=false;for(var f=that.binds.$force;f;f=f.next){if(pv.max(f.nodes,speed)>f.min){f.sim.step();render=true}}if(render)that.render()},42)}else for(var i=0;i<k;i++){sim.step()}};pv.Layout.Cluster=function(){pv.Layout.Hierarchy.call(this);var interpolate,buildImplied=this.buildImplied;this.buildImplied=function(s){buildImplied.call(this,s);interpolate=/^(top|bottom)$/.test(s.orient)?"step-before":/^(left|right)$/.test(s.orient)?"step-after":"linear"};this.link.interpolate(function(){return interpolate})};pv.Layout.Cluster.prototype=pv.extend(pv.Layout.Hierarchy).property("group",Number).property("orient",String).property("innerRadius",Number).property("outerRadius",Number);pv.Layout.Cluster.prototype.defaults=new pv.Layout.Cluster().extend(pv.Layout.Hierarchy.prototype.defaults).group(0).orient("top");pv.Layout.Cluster.prototype.buildImplied=function(s){if(pv.Layout.Hierarchy.prototype.buildImplied.call(this,s))return;var root=s.nodes[0],group=s.group,breadth,depth,leafCount=0,leafIndex=.5-group/2;var p=undefined;root.visitAfter(function(n){if(n.firstChild){n.depth=1+pv.max(n.childNodes,function(n){return n.depth})}else{if(group&&(p!=n.parentNode)){p=n.parentNode;leafCount+=group}leafCount++;n.depth=0}});breadth=1/leafCount;depth=1/root.depth;var p=undefined;root.visitAfter(function(n){if(n.firstChild){n.breadth=pv.mean(n.childNodes,function(n){return n.breadth})}else{if(group&&(p!=n.parentNode)){p=n.parentNode;leafIndex+=group}n.breadth=breadth*leafIndex++}n.depth=1-n.depth*depth});root.visitAfter(function(n){n.minBreadth=n.firstChild?n.firstChild.minBreadth:(n.breadth-breadth/2);n.maxBreadth=n.firstChild?n.lastChild.maxBreadth:(n.breadth+breadth/2)});root.visitBefore(function(n){n.minDepth=n.parentNode?n.parentNode.maxDepth:0;n.maxDepth=n.parentNode?(n.depth+root.depth):(n.minDepth+2*root.depth)});root.minDepth=-depth;pv.Layout.Hierarchy.NodeLink.buildImplied.call(this,s)};pv.Layout.Cluster.Fill=function(){pv.Layout.Cluster.call(this);pv.Layout.Hierarchy.Fill.constructor.call(this)};pv.Layout.Cluster.Fill.prototype=pv.extend(pv.Layout.Cluster);pv.Layout.Cluster.Fill.prototype.buildImplied=function(s){if(pv.Layout.Cluster.prototype.buildImplied.call(this,s))return;pv.Layout.Hierarchy.Fill.buildImplied.call(this,s)};pv.Layout.Partition=function(){pv.Layout.Hierarchy.call(this)};pv.Layout.Partition.prototype=pv.extend(pv.Layout.Hierarchy).property("order",String).property("orient",String).property("innerRadius",Number).property("outerRadius",Number);pv.Layout.Partition.prototype.defaults=new pv.Layout.Partition().extend(pv.Layout.Hierarchy.prototype.defaults).orient("top");pv.Layout.Partition.prototype.$size=function(){return 1};pv.Layout.Partition.prototype.size=function(f){this.$size=f;return this};pv.Layout.Partition.prototype.buildImplied=function(s){if(pv.Layout.Hierarchy.prototype.buildImplied.call(this,s))return;var that=this,root=s.nodes[0],stack=pv.Mark.stack,maxDepth=0;stack.unshift(null);root.visitAfter(function(n,depth){if(depth>maxDepth)maxDepth=depth;n.size=n.firstChild?pv.sum(n.childNodes,function(n){return n.size}):that.$size.apply(that,(stack[0]=n,stack))});stack.shift();switch(s.order){case"ascending":root.sort(function(a,b){return a.size-b.size});break;case"descending":root.sort(function(b,a){return a.size-b.size});break}root.minBreadth=0;root.breadth=.5;root.maxBreadth=1;root.visitBefore(function(n){var b=n.minBreadth,s=n.maxBreadth-b;for(var c=n.firstChild;c;c=c.nextSibling){c.minBreadth=b;b+=(c.size/n.size)*s;c.maxBreadth=b;c.breadth=(b+c.minBreadth)/2}});root.visitAfter(function(n,depth){n.minDepth=(depth-1)/maxDepth;n.maxDepth=(n.depth=depth/maxDepth)});pv.Layout.Hierarchy.NodeLink.buildImplied.call(this,s)};pv.Layout.Partition.Fill=function(){pv.Layout.Partition.call(this);pv.Layout.Hierarchy.Fill.constructor.call(this)};pv.Layout.Partition.Fill.prototype=pv.extend(pv.Layout.Partition);pv.Layout.Partition.Fill.prototype.buildImplied=function(s){if(pv.Layout.Partition.prototype.buildImplied.call(this,s))return;pv.Layout.Hierarchy.Fill.buildImplied.call(this,s)};pv.Layout.Arc=function(){pv.Layout.Network.call(this);var interpolate,directed,reverse,buildImplied=this.buildImplied;this.buildImplied=function(s){buildImplied.call(this,s);directed=s.directed;interpolate=s.orient=="radial"?"linear":"polar";reverse=s.orient=="right"||s.orient=="top"};this.link.data(function(p){var s=p.sourceNode,t=p.targetNode;return reverse!=(directed||(s.breadth<t.breadth))?[s,t]:[t,s]}).interpolate(function(){return interpolate})};pv.Layout.Arc.prototype=pv.extend(pv.Layout.Network).property("orient",String).property("directed",Boolean);pv.Layout.Arc.prototype.defaults=new pv.Layout.Arc().extend(pv.Layout.Network.prototype.defaults).orient("bottom");pv.Layout.Arc.prototype.sort=function(f){this.$sort=f;return this};pv.Layout.Arc.prototype.buildImplied=function(s){if(pv.Layout.Network.prototype.buildImplied.call(this,s))return;var nodes=s.nodes,orient=s.orient,sort=this.$sort,index=pv.range(nodes.length),w=s.width,h=s.height,r=Math.min(w,h)/2;if(sort)index.sort(function(a,b){return sort(nodes[a],nodes[b])});function midAngle(b){switch(orient){case"top":return-Math.PI/2;case"bottom":return Math.PI/2;case"left":return Math.PI;case"right":return 0;case"radial":return(b-.25)*2*Math.PI}}function x(b){switch(orient){case"top":case"bottom":return b*w;case"left":return 0;case"right":return w;case"radial":return w/2+r*Math.cos(midAngle(b))}}function y(b){switch(orient){case"top":return 0;case"bottom":return h;case"left":case"right":return b*h;case"radial":return h/2+r*Math.sin(midAngle(b))}}for(var i=0;i<nodes.length;i++){var n=nodes[index[i]],b=n.breadth=(i+.5)/nodes.length;n.x=x(b);n.y=y(b);n.midAngle=midAngle(b)}};pv.Layout.Horizon=function(){pv.Layout.call(this);var that=this,bands,mode,size,fill,red,blue,buildImplied=this.buildImplied;this.buildImplied=function(s){buildImplied.call(this,s);bands=s.bands;mode=s.mode;size=Math.round((mode=="color"?.5:1)*s.height);fill=s.backgroundStyle;red=pv.ramp(fill,s.negativeStyle).domain(0,bands);blue=pv.ramp(fill,s.positiveStyle).domain(0,bands)};var bands=new pv.Panel().data(function(){return pv.range(bands*2)}).overflow("hidden").height(function(){return size}).top(function(i){return mode=="color"?(i&1)*size:0}).fillStyle(function(i){return i?null:fill});this.band=new pv.Mark().top(function(d,i){return mode=="mirror"&&i&1?(i+1>>1)*size:null}).bottom(function(d,i){return mode=="mirror"?(i&1?null:(i+1>>1)*-size):((i&1||-1)*(i+1>>1)*size)}).fillStyle(function(d,i){return(i&1?red:blue)((i>>1)+1)});this.band.add=function(type){return that.add(pv.Panel).extend(bands).add(type).extend(this)}};pv.Layout.Horizon.prototype=pv.extend(pv.Layout).property("bands",Number).property("mode",String).property("backgroundStyle",pv.color).property("positiveStyle",pv.color).property("negativeStyle",pv.color);pv.Layout.Horizon.prototype.defaults=new pv.Layout.Horizon().extend(pv.Layout.prototype.defaults).bands(2).mode("offset").backgroundStyle("white").positiveStyle("#1f77b4").negativeStyle("#d62728");pv.Layout.Rollup=function(){pv.Layout.Network.call(this);var that=this,nodes,links,buildImplied=that.buildImplied;this.buildImplied=function(s){buildImplied.call(this,s);nodes=s.$rollup.nodes;links=s.$rollup.links};this.node.data(function(){return nodes}).shapeSize(function(d){return d.nodes.length*20});this.link.interpolate("polar").eccentricity(.8);this.link.add=function(type){return that.add(pv.Panel).data(function(){return links}).add(type).extend(this)}};pv.Layout.Rollup.prototype=pv.extend(pv.Layout.Network).property("directed",Boolean);pv.Layout.Rollup.prototype.x=function(f){this.$x=pv.functor(f);return this};pv.Layout.Rollup.prototype.y=function(f){this.$y=pv.functor(f);return this};pv.Layout.Rollup.prototype.buildImplied=function(s){if(pv.Layout.Network.prototype.buildImplied.call(this,s))return;var nodes=s.nodes,links=s.links,directed=s.directed,n=nodes.length,x=[],y=[],rnindex=0,rnodes={},rlinks={};function id(i){return x[i]+","+y[i]}var stack=pv.Mark.stack,o={parent:this};stack.unshift(null);for(var i=0;i<n;i++){o.index=i;stack[0]=nodes[i];x[i]=this.$x.apply(o,stack);y[i]=this.$y.apply(o,stack)}stack.shift();for(var i=0;i<nodes.length;i++){var nodeId=id(i),rn=rnodes[nodeId];if(!rn){rn=rnodes[nodeId]=pv.extend(nodes[i]);rn.index=rnindex++;rn.x=x[i];rn.y=y[i];rn.nodes=[]}rn.nodes.push(nodes[i])}for(var i=0;i<links.length;i++){var source=links[i].sourceNode,target=links[i].targetNode,rsource=rnodes[id(source.index)],rtarget=rnodes[id(target.index)],reverse=!directed&&rsource.index>rtarget.index,linkId=reverse?rtarget.index+","+rsource.index:rsource.index+","+rtarget.index,rl=rlinks[linkId];if(!rl){rl=rlinks[linkId]={sourceNode:rsource,targetNode:rtarget,linkValue:0,links:[]}}rl.links.push(links[i]);rl.linkValue+=links[i].linkValue}s.$rollup={nodes:pv.values(rnodes),links:pv.values(rlinks)}};pv.Layout.Matrix=function(){pv.Layout.Network.call(this);var that=this,n,dx,dy,labels,pairs,buildImplied=that.buildImplied;this.buildImplied=function(s){buildImplied.call(this,s);n=s.nodes.length;dx=s.width/n;dy=s.height/n;labels=s.$matrix.labels;pairs=s.$matrix.pairs};this.link.data(function(){return pairs}).left(function(){return dx*(this.index%n)}).top(function(){return dy*Math.floor(this.index/n)}).width(function(){return dx}).height(function(){return dy}).lineWidth(1.5).strokeStyle("#fff").fillStyle(function(l){return l.linkValue?"#555":"#eee"}).parent=this;delete this.link.add;this.label.data(function(){return labels}).left(function(){return this.index&1?dx*((this.index>>1)+.5):0}).top(function(){return this.index&1?0:dy*((this.index>>1)+.5)}).textMargin(4).textAlign(function(){return this.index&1?"left":"right"}).textAngle(function(){return this.index&1?-Math.PI/2:0});delete this.node};pv.Layout.Matrix.prototype=pv.extend(pv.Layout.Network).property("directed",Boolean);pv.Layout.Matrix.prototype.sort=function(f){this.$sort=f;return this};pv.Layout.Matrix.prototype.buildImplied=function(s){if(pv.Layout.Network.prototype.buildImplied.call(this,s))return;var nodes=s.nodes,links=s.links,sort=this.$sort,n=nodes.length,index=pv.range(n),labels=[],pairs=[],map={};s.$matrix={labels:labels,pairs:pairs};if(sort)index.sort(function(a,b){return sort(nodes[a],nodes[b])});for(var i=0;i<n;i++){for(var j=0;j<n;j++){var a=index[i],b=index[j],p={row:i,col:j,sourceNode:nodes[a],targetNode:nodes[b],linkValue:0};pairs.push(map[a+"."+b]=p)}}for(var i=0;i<n;i++){var a=index[i];labels.push(nodes[a],nodes[a])}for(var i=0;i<links.length;i++){var l=links[i],source=l.sourceNode.index,target=l.targetNode.index,value=l.linkValue;map[source+"."+target].linkValue+=value;if(!s.directed)map[target+"."+source].linkValue+=value}};pv.Layout.Bullet=function(){pv.Layout.call(this);var that=this,buildImplied=that.buildImplied,scale=that.x=pv.Scale.linear(),orient,horizontal,rangeColor,measureColor,x;this.buildImplied=function(s){buildImplied.call(this,x=s);orient=s.orient;horizontal=/^left|right$/.test(orient);rangeColor=pv.ramp("#bbb","#eee").domain(0,Math.max(1,x.ranges.length-1));measureColor=pv.ramp("steelblue","lightsteelblue").domain(0,Math.max(1,x.measures.length-1))};(this.range=new pv.Mark()).data(function(){return x.ranges}).reverse(true).left(function(){return orient=="left"?0:null}).top(function(){return orient=="top"?0:null}).right(function(){return orient=="right"?0:null}).bottom(function(){return orient=="bottom"?0:null}).width(function(d){return horizontal?scale(d):null}).height(function(d){return horizontal?null:scale(d)}).fillStyle(function(){return rangeColor(this.index)}).antialias(false).parent=that;(this.measure=new pv.Mark()).extend(this.range).data(function(){return x.measures}).left(function(){return orient=="left"?0:horizontal?null:this.parent.width()/3.25}).top(function(){return orient=="top"?0:horizontal?this.parent.height()/3.25:null}).right(function(){return orient=="right"?0:horizontal?null:this.parent.width()/3.25}).bottom(function(){return orient=="bottom"?0:horizontal?this.parent.height()/3.25:null}).fillStyle(function(){return measureColor(this.index)}).parent=that;(this.marker=new pv.Mark()).data(function(){return x.markers}).left(function(d){return orient=="left"?scale(d):horizontal?null:this.parent.width()/2}).top(function(d){return orient=="top"?scale(d):horizontal?this.parent.height()/2:null}).right(function(d){return orient=="right"?scale(d):null}).bottom(function(d){return orient=="bottom"?scale(d):null}).strokeStyle("black").shape("bar").shapeAngle(function(){return horizontal?0:Math.PI/2}).parent=that;(this.tick=new pv.Mark()).data(function(){return scale.ticks(7)}).left(function(d){return orient=="left"?scale(d):null}).top(function(d){return orient=="top"?scale(d):null}).right(function(d){return orient=="right"?scale(d):horizontal?null:-6}).bottom(function(d){return orient=="bottom"?scale(d):horizontal?-8:null}).height(function(){return horizontal?6:null}).width(function(){return horizontal?null:6}).parent=that};pv.Layout.Bullet.prototype=pv.extend(pv.Layout).property("orient",String).property("ranges").property("markers").property("measures").property("maximum",Number);pv.Layout.Bullet.prototype.defaults=new pv.Layout.Bullet().extend(pv.Layout.prototype.defaults).orient("left").ranges([]).markers([]).measures([]);pv.Layout.Bullet.prototype.buildImplied=function(s){pv.Layout.prototype.buildImplied.call(this,s);var size=this.parent[/^left|right$/.test(s.orient)?"width":"height"]();s.maximum=s.maximum||pv.max([].concat(s.ranges,s.markers,s.measures));this.x.domain(0,s.maximum).range(0,size)};pv.Behavior={};pv.Behavior.dragBase=function(shared){var events,downElem,cancelClick,inited,drag;shared.autoRender=true;shared.positionConstraint=null;shared.bound=function(v,a_p){return Math.max(drag.min[a_p],Math.min(drag.max[a_p],v))};function mousedown(d){if(!inited){inited=true;this.addEventInterceptor('click',eventInterceptor,true)}if(!events){var root=this.root.scene.$g;events=[[root,'mousemove',pv.listen(root,'mousemove',mousemove)],[root,'mouseup',pv.listen(root,'mouseup',mouseup)],[document,'mousemove',pv.listen(document,'mousemove',mousemove)],[document,'mouseup',pv.listen(document,'mouseup',mouseup)]]}var ev=arguments[arguments.length-1];downElem=ev.target;cancelClick=false;ev.stopPropagation();var m1=this.mouse();var scene=this.scene;var index=this.index;drag=scene[index].drag={phase:'start',m:m1,m1:m1,m2:null,d:d,scene:scene,index:index};ev=wrapEvent(ev,drag);shared.dragstart.call(this,ev);var m=drag.m;if(m!==m1){m1.x=m.x;m1.y=m.y}}function mousemove(ev){if(!drag){return}drag.phase='move';ev.stopPropagation();ev=wrapEvent(ev,drag);var scene=drag.scene;scene.mark.context(scene,drag.index,function(){var mprev=drag.m2||drag.m1;var m2=this.mouse();if(mprev&&m2.distance2(mprev).dist2<=2){return}drag.m=drag.m2=m2;shared.drag.call(this,ev);var m=drag.m;if(m!==m2){m2.x=m.x;m2.y=m.y}})}function mouseup(ev){if(!drag){return}drag.phase='end';var m2=drag.m2;var isDrag=m2&&drag.m1.distance2(m2).dist2>0.1;drag.canceled=!isDrag;cancelClick=isDrag&&(downElem===ev.target);if(!cancelClick){downElem=null}ev.stopPropagation();ev=wrapEvent(ev,drag);if(events){events.forEach(function(registration){pv.unlisten.apply(pv,registration)});events=null}var scene=drag.scene;var index=drag.index;try{scene.mark.context(scene,index,function(){shared.dragend.call(this,ev)})}finally{drag=null;delete scene[index].drag}}function wrapEvent(ev,drag){try{ev.drag=drag;return ev}catch(ex){}var ev2={};for(var p in ev){var v=ev[p];ev2[p]=typeof v!=='function'?v:bindEventFun(f,ev)}ev2._sourceEvent=ev;return ev2}function bindEventFun(f,ctx){return function(){return f.apply(ctx,arguments)}}function eventInterceptor(type,ev){if(cancelClick&&downElem===ev.target){cancelClick=false;downElem=null;return false}}mousedown.autoRender=function(_){if(arguments.length){shared.autoRender=!!_;return mousedown}return shared.autoRender};mousedown.positionConstraint=function(_){if(arguments.length){shared.positionConstraint=_;return mousedown}return shared.positionConstraint};return mousedown};pv.Behavior.drag=function(){var collapse=null;var kx=1;var ky=1;var v1;var shared={dragstart:function(ev){var drag=ev.drag;drag.type='drag';var p=drag.d;var fix=pv.vector(p.x,p.y);p.fix=fix;p.drag=drag;v1=fix.minus(drag.m1);var parent=this.parent;drag.max={x:parent.width()-(p.dx||0),y:parent.height()-(p.dy||0)};drag.min={x:0,y:0};if(shared.autoRender){this.render()}pv.Mark.dispatch("dragstart",drag.scene,drag.index,ev)},drag:function(ev){var drag=ev.drag;var m2=drag.m2;var p=drag.d;drag.m=v1.plus(m2);var constraint=shared.positionConstraint;if(constraint){constraint(drag)}var m=drag.m;if(kx){p.x=p.fix.x=shared.bound(m.x,'x')}if(ky){p.y=p.fix.y=shared.bound(m.y,'y')}if(shared.autoRender){this.render()}pv.Mark.dispatch("drag",drag.scene,drag.index,ev)},dragend:function(ev){var drag=ev.drag;var p=drag.d;p.fix=null;v1=null;if(shared.autoRender){this.render()}try{pv.Mark.dispatch('dragend',drag.scene,drag.index,ev)}finally{delete p.drag}}};var mousedown=pv.Behavior.dragBase(shared);mousedown.collapse=function(x){if(arguments.length){collapse=String(x);switch(collapse){case"y":kx=1;ky=0;break;case"x":kx=0;ky=1;break;default:kx=1;ky=1;break}return mousedown}return collapse};return mousedown};pv.Behavior.point=function(r){var unpoint,collapse=null,kx=1,ky=1,pointingPanel=null,r2=arguments.length?r*r:900;function search(scene,index){var s=scene[index],point={cost:Infinity};for(var i=(s.visible?s.children.length:0)-1;i>=0;i--){var child=s.children[i],mark=child.mark,p;if(mark.type=="panel"){mark.scene=child;for(var j=child.length-1;j>=0;j--){mark.index=j;p=search(child,j);if(p.cost<point.cost)point=p}delete mark.scene;delete mark.index}else if(mark.$handlers.point){var v=mark.mouse();for(var j=child.length-1;j>=0;j--){var c=child[j],dx=v.x-c.left-(c.width||0)/2,dy=v.y-c.top-(c.height||0)/2,dd=kx*dx*dx+ky*dy*dy;if(dd<point.cost){point.distance=dx*dx+dy*dy;point.cost=dd;point.scene=child;point.index=j}}}}return point}function mousemove(e){var point=search(this.scene,this.index);if((point.cost==Infinity)||(point.distance>r2))point=null;if(unpoint){if(point&&(unpoint.scene==point.scene)&&(unpoint.index==point.index))return;pv.Mark.dispatch("unpoint",unpoint.scene,unpoint.index,e)}if(unpoint=point){pv.Mark.dispatch("point",point.scene,point.index,e);if(!pointingPanel&&this.type==='panel'){pointingPanel=this;pointingPanel.event('mouseout',function(){var ev=arguments[arguments.length-1];mouseout.call(pointingPanel.scene.$g,ev)})}else{pv.listen(this.root.canvas(),"mouseout",mouseout)}}}function mouseout(e){if(unpoint&&!pv.ancestor(this,e.relatedTarget)){pv.Mark.dispatch("unpoint",unpoint.scene,unpoint.index,e);unpoint=null}}mousemove.collapse=function(x){if(arguments.length){collapse=String(x);switch(collapse){case"y":kx=1;ky=0;break;case"x":kx=0;ky=1;break;default:kx=1;ky=1;break}return mousemove}return collapse};return mousemove};pv.Behavior.select=function(){var collapse=null;var kx=1;var ky=1;var preserveLength=false;var shared={dragstart:function(ev){var drag=ev.drag;drag.type='select';var r=drag.d;r.drag=drag;drag.max={x:this.width(),y:this.height()};drag.min={x:0,y:0};var constraint=shared.positionConstraint;if(constraint){drag.m=drag.m.clone();constraint(drag)}var m=drag.m;if(kx){r.x=shared.bound(m.x,'x');if(!preserveLength){r.dx=0}}if(ky){r.y=shared.bound(m.y,'y');if(!preserveLength){r.dy=0}}pv.Mark.dispatch('selectstart',drag.scene,drag.index,ev)},drag:function(ev){var drag=ev.drag;var m1=drag.m1;var r=drag.d;drag.max.x=this.width();drag.max.y=this.height();var constraint=shared.positionConstraint;if(constraint){drag.m=drag.m.clone();constraint(drag)}var m=drag.m;if(kx){var bx=Math.min(m1.x,m.x);bx=shared.bound(bx,'x');r.x=bx;if(!preserveLength){var ex=Math.max(m.x,m1.x);ex=shared.bound(ex,'x');r.dx=ex-bx}}if(ky){var by=Math.min(m1.y,m.y);by=shared.bound(by,'y');r.y=by;if(!preserveLength){var ey=Math.max(m.y,m1.y);ey=shared.bound(ey,'y');r.dy=ey-by}}if(shared.autoRender){this.render()}pv.Mark.dispatch('select',drag.scene,drag.index,ev)},dragend:function(ev){var drag=ev.drag;try{pv.Mark.dispatch('selectend',drag.scene,drag.index,ev)}finally{var r=drag.d;delete r.drag}}};var mousedown=pv.Behavior.dragBase(shared);mousedown.collapse=function(x){if(arguments.length){collapse=String(x);switch(collapse){case"y":kx=1;ky=0;break;case"x":kx=0;ky=1;break;default:kx=1;ky=1;break}return mousedown}return collapse};mousedown.preserveLength=function(_){if(arguments.length){preserveLength=!!_;return mousedown}return preserveLength};return mousedown};pv.Behavior.resize=function(side){var preserveOrtho=false;var isLeftRight=(side==='left'||side==='right');var shared={dragstart:function(ev){var drag=ev.drag;drag.type='resize';var m1=drag.m1;var r=drag.d;r.drag=drag;switch(side){case"left":m1.x=r.x+r.dx;break;case"right":m1.x=r.x;break;case"top":m1.y=r.y+r.dy;break;case"bottom":m1.y=r.y;break}var parent=this.parent;drag.max={x:parent.width(),y:parent.height()};drag.min={x:0,y:0};pv.Mark.dispatch("resizestart",drag.scene,drag.index,ev)},drag:function(ev){var drag=ev.drag;var m1=drag.m1;var constraint=shared.positionConstraint;if(constraint){drag.m=drag.m.clone();constraint(drag)}var m=drag.m;var r=drag.d;if(!preserveOrtho||isLeftRight){var bx=Math.min(m1.x,m.x);var ex=Math.max(m.x,m1.x);bx=shared.bound(bx,'x');ex=shared.bound(ex,'x');r.x=bx;r.dx=ex-bx}if(!preserveOrtho||!isLeftRight){var by=Math.min(m1.y,m.y);var ey=Math.max(m.y,m1.y);bx=shared.bound(by,'y');ex=shared.bound(ey,'y');r.y=by;r.dy=ey-by}if(shared.autoRender){this.render()}pv.Mark.dispatch("resize",drag.scene,drag.index,ev)},dragend:function(ev){var drag=ev.drag;max=null;try{pv.Mark.dispatch('resizeend',drag.scene,drag.index,ev)}finally{var r=drag.d;delete r.drag}}};var mousedown=pv.Behavior.dragBase(shared);mousedown.preserveOrtho=function(_){if(arguments.length){preserveOrtho=!!_;return mousedown}return preserveOrtho};return mousedown};pv.Behavior.pan=function(){var scene,index,m1,v1,k,bound;function mousedown(){index=this.index;scene=this.scene;v1=pv.vector(pv.event.pageX,pv.event.pageY);m1=this.transform();k=1/(m1.k*this.scale);if(bound){bound={x:(1-m1.k)*this.width(),y:(1-m1.k)*this.height()}}}function mousemove(e){if(!scene)return;scene.mark.context(scene,index,function(){var x=(pv.event.pageX-v1.x)*k,y=(pv.event.pageY-v1.y)*k,m=m1.translate(x,y);if(bound){m.x=Math.max(bound.x,Math.min(0,m.x));m.y=Math.max(bound.y,Math.min(0,m.y))}this.transform(m).render()});pv.Mark.dispatch("pan",scene,index,e)}function mouseup(){scene=null}mousedown.bound=function(x){if(arguments.length){bound=Boolean(x);return this}return Boolean(bound)};pv.listen(window,"mousemove",mousemove);pv.listen(window,"mouseup",mouseup);return mousedown};pv.Behavior.zoom=function(speed){var bound;if(!arguments.length)speed=1/48;function mousewheel(e){var v=this.mouse(),k=pv.event.wheel*speed,m=this.transform().translate(v.x,v.y).scale((k<0)?(1e3/(1e3-k)):((1e3+k)/1e3)).translate(-v.x,-v.y);if(bound){m.k=Math.max(1,m.k);m.x=Math.max((1-m.k)*this.width(),Math.min(0,m.x));m.y=Math.max((1-m.k)*this.height(),Math.min(0,m.y))}this.transform(m).render();pv.Mark.dispatch("zoom",this.scene,this.index,e)}mousewheel.bound=function(x){if(arguments.length){bound=Boolean(x);return this}return Boolean(bound)};return mousewheel};pv.Geo=function(){};pv.Geo.projections={mercator:{project:function(latlng){return{x:latlng.lng/180,y:latlng.lat>85?1:latlng.lat<-85?-1:Math.log(Math.tan(Math.PI/4+pv.radians(latlng.lat)/2))/Math.PI}},invert:function(xy){return{lng:xy.x*180,lat:pv.degrees(2*Math.atan(Math.exp(xy.y*Math.PI))-Math.PI/2)}}},"gall-peters":{project:function(latlng){return{x:latlng.lng/180,y:Math.sin(pv.radians(latlng.lat))}},invert:function(xy){return{lng:xy.x*180,lat:pv.degrees(Math.asin(xy.y))}}},sinusoidal:{project:function(latlng){return{x:pv.radians(latlng.lng)*Math.cos(pv.radians(latlng.lat))/Math.PI,y:latlng.lat/90}},invert:function(xy){return{lng:pv.degrees((xy.x*Math.PI)/Math.cos(xy.y*Math.PI/2)),lat:xy.y*90}}},aitoff:{project:function(latlng){var l=pv.radians(latlng.lng),f=pv.radians(latlng.lat),a=Math.acos(Math.cos(f)*Math.cos(l/2));return{x:2*(a?(Math.cos(f)*Math.sin(l/2)*a/ Math.sin(a)) : 0) /Math.PI,y:2*(a?(Math.sin(f)*a/Math.sin(a)):0)/Math.PI}},invert:function(xy){var x=xy.x*Math.PI/2,y=xy.y*Math.PI/2;return{lng:pv.degrees(x/Math.cos(y)),lat:pv.degrees(y)}}},hammer:{project:function(latlng){var l=pv.radians(latlng.lng),f=pv.radians(latlng.lat),c=Math.sqrt(1+Math.cos(f)*Math.cos(l/2));return{x:2*Math.SQRT2*Math.cos(f)*Math.sin(l/2)/ c /3,y:Math.SQRT2*Math.sin(f)/c/1.5}},invert:function(xy){var x=xy.x*3,y=xy.y*1.5,z=Math.sqrt(1-x*x/16-y*y/4);return{lng:pv.degrees(2*Math.atan2(z*x,2*(2*z*z-1))),lat:pv.degrees(Math.asin(z*y))}}},identity:{project:function(latlng){return{x:latlng.lng/180,y:latlng.lat/90}},invert:function(xy){return{lng:xy.x*180,lat:xy.y*90}}}};pv.Geo.scale=function(p){var rmin={x:0,y:0},rmax={x:1,y:1},d=[],j=pv.Geo.projections.identity,x=pv.Scale.linear(-1,1).range(0,1),y=pv.Scale.linear(-1,1).range(1,0),c={lng:0,lat:0},lastLatLng,lastPoint;function scale(latlng){if(!lastLatLng||(latlng.lng!=lastLatLng.lng)||(latlng.lat!=lastLatLng.lat)){lastLatLng=latlng;var p=project(latlng);lastPoint={x:x(p.x),y:y(p.y)}}return lastPoint}function project(latlng){var offset={lng:latlng.lng-c.lng,lat:latlng.lat};return j.project(offset)}function invert(xy){var latlng=j.invert(xy);latlng.lng+=c.lng;return latlng}scale.x=function(latlng){return scale(latlng).x};scale.y=function(latlng){return scale(latlng).y};scale.ticks={lng:function(m){var lat,lng;if(d.length>1){var s=pv.Scale.linear();if(m==undefined)m=10;lat=s.domain(d,function(d){return d.lat}).ticks(m);lng=s.domain(d,function(d){return d.lng}).ticks(m)}else{lat=pv.range(-80,81,10);lng=pv.range(-180,181,10)}return lng.map(function(lng){return lat.map(function(lat){return{lat:lat,lng:lng}})})},lat:function(m){return pv.transpose(scale.ticks.lng(m))}};scale.invert=function(p){return invert({x:x.invert(p.x),y:y.invert(p.y)})};scale.domain=function(array,f){if(arguments.length){d=(array instanceof Array)?((arguments.length>1)?pv.map(array,f):array):Array.prototype.slice.call(arguments);if(d.length>1){var lngs=d.map(function(c){return c.lng});var lats=d.map(function(c){return c.lat});c={lng:(pv.max(lngs)+pv.min(lngs))/2,lat:(pv.max(lats)+pv.min(lats))/2};var n=d.map(project);x.domain(n,function(p){return p.x});y.domain(n,function(p){return p.y})}else{c={lng:0,lat:0};x.domain(-1,1);y.domain(-1,1)}lastLatLng=null;return this}return d};scale.range=function(min,max){if(arguments.length){if(typeof min=="object"){rmin={x:Number(min.x),y:Number(min.y)};rmax={x:Number(max.x),y:Number(max.y)}}else{rmin={x:0,y:0};rmax={x:Number(min),y:Number(max)}}x.range(rmin.x,rmax.x);y.range(rmax.y,rmin.y);lastLatLng=null;return this}return[rmin,rmax]};scale.projection=function(p){if(arguments.length){j=typeof p=="string"?pv.Geo.projections[p]||pv.Geo.projections.identity:p;return this.domain(d)}return p};pv.copyOwn(scale,pv.Scale.common);if(arguments.length)scale.projection(p);return scale};
2 0 \ No newline at end of file
pacotes/ccc2/compacto/protovis-msie.js
... ... @@ -1 +0,0 @@
1   -pv.have_SVG=!!(document.createElementNS&&document.createElementNS('http://www.w3.org/2000/svg','svg').createSVGRect);pv.have_VML=(function(d,a,b){a=d.createElement('div');a.innerHTML='<pvml:shape adj="1" />';b=a.firstChild;b.style.behavior='url(#default#VML)';return b?typeof b.adj==='object':true})(document);if(!Array.prototype.indexOf){Array.prototype.indexOf=function(s,from){var n=this.length>>>0,i=(!isFinite(from)||from<0)?0:(from>this.length)?this.length:from;for(;i<n;i++){if(this[i]===s){return i}}return-1}}if(!pv.have_SVG&&pv.have_VML){(function(){if(typeof Date.now!=='function'){Date.now=function(){return new Date()*1}}var vml={is64Bit:window.navigator.cpuClass==='x64',round:function(n){return Math.round((n||0)*21.6)},styles:null,pre:'<pvml:',post:' class="msvml">',block:{'group':1,'shape':1,'shapetype':1,'line':1,'polyline':1,'curve':1,'rect':1,'roundrect':1,'oval':1,'arc':1,'image':1},caps:{'butt':'flat','round':'round','square':'square'},joins:{'bevel':'bevel','round':'round','miter':'miter'},cursorstyles:{'hand':'pointer','crosshair':1,'pointer':1,'move':1,'text':1,'wait':1,'help':1,'progress':1,'n-resize':1,'ne-resize':1,'nw-resize':1,'s-resize':1,'se-resize':1,'sw-resize':1,'e-resize':1,'w-resize':1},text_shim:null,text_dims:function(text,font){var shim=vml.text_shim||(vml.init(),vml.text_shim);shim.style.font=vml.processFont(font);shim.innerText=text;return{height:shim.offsetHeight,width:shim.offsetWidth}},_fontCache:{},_fontSubst:{'default':'Arial','sans-serif':'Arial','sansserif':'Arial','sans':'Arial','serif':'Times New Roman','dialog':'Arial','monospaced':'Courier New','dialoginput':'Courier New'},_fontWhiteListIE64Bit:{'agency fb':1,'aharoni':1,'algerian':1,'andalus':1,'angsana new':1,'angsanaupc':1,'aparajita':1,'arabic typesetting':1,'arial':1,'arial black':1,'arial narrow':1,'arial rounded mt bold':1,'arial unicode ms':1,'baskerville old face':1,'batang':1,'batangche':1,'bauhaus 93':1,'bell mt':1,'berlin sans fb':1,'berlin sans fb demi':1,'bernard mt condensed':1,'blackadder itc':1,'bodoni mt':1,'bodoni mt black':1,'bodoni mt condensed':1,'bodoni mt poster compressed':1,'book antiqua':1,'bookman old style':1,'bookshelf symbol 7':1,'bradley hand itc':1,'britannic bold':1,'broadway':1,'browallia new':1,'browalliaupc':1,'brush script mt':1,'calibri':1,'californian fb':1,'calisto mt':1,'cambria':1,'cambria math':1,'candara':1,'castellar':1,'centaur':1,'century':1,'century gothic':1,'century schoolbook':1,'chiller':1,'colonna mt':1,'comic sans ms':1,'consolas':1,'constantia':1,'cooper black':1,'copperplate gothic bold':1,'copperplate gothic light':1,'corbel':1,'cordia new':1,'cordiaupc':1,'courier new':1,'curlz mt':1,'daunpenh':1,'david':1,'dfkai-sb':1,'dilleniaupc':1,'dokchampa':1,'dotum':1,'dotumche':1,'ebrima':1,'edwardian script itc':1,'elephant':1,'engravers mt':1,'eras bold itc':1,'eras demi itc':1,'eras light itc':1,'eras medium itc':1,'estrangelo edessa':1,'eucrosiaupc':1,'euphemia':1,'fangsong':1,'felix titling':1,'footlight mt light':1,'forte':1,'franklin gothic book':1,'franklin gothic demi':1,'franklin gothic demi cond':1,'franklin gothic heavy':1,'franklin gothic medium':1,'franklin gothic medium cond':1,'frankruehl':1,'freesiaupc':1,'freestyle script':1,'french script mt':1,'gabriola':1,'garamond':1,'gautami':1,'georgia':1,'gigi':1,'gill sans mt':1,'gill sans mt condensed':1,'gill sans mt ext condensed bold':1,'gill sans ultra bold':1,'gill sans ultra bold condensed':1,'gisha':1,'gloucester mt extra condensed':1,'goudy old style':1,'goudy stout':1,'gulim':1,'gulimche':1,'gungsuh':1,'gungsuhche':1,'guttman adii':1,'guttman adii-light':1,'guttman aharoni':1,'guttman calligraphic':1,'guttman david':1,'guttman drogolin':1,'guttman frank':1,'guttman frnew':1,'guttman haim':1,'guttman haim-condensed':1,'guttman hatzvi':1,'guttman hodes':1,'guttman kav':1,'guttman kav-light':1,'guttman keren':1,'guttman logo1':1,'guttman mantova':1,'guttman mantova-decor':1,'guttman miryam':1,'guttman myamfix':1,'guttman rashi':1,'guttman stam':1,'guttman stam1':1,'guttman vilna':1,'guttman yad':1,'guttman yad-brush':1,'guttman yad-light':1,'guttman-aharoni':1,'guttman-aram':1,'guttman-courmir':1,'guttman-soncino':1,'guttman-toledo':1,'haettenschweiler':1,'harlow solid italic':1,'harrington':1,'high tower text':1,'impact':1,'imprint mt shadow':1,'informal roman':1,'irisupc':1,'iskoola pota':1,'jasmineupc':1,'jokerman':1,'juice itc':1,'kaiti':1,'kalinga':1,'kartika':1,'khmer ui':1,'kodchiangupc':1,'kokila':1,'kristen itc':1,'kunstler script':1,'lao ui':1,'latha':1,'leelawadee':1,'levenim mt':1,'lilyupc':1,'lucida bright':1,'lucida calligraphy':1,'lucida console':1,'lucida fax':1,'lucida handwriting':1,'lucida sans':1,'lucida sans typewriter':1,'lucida sans unicode':1,'magneto':1,'maiandra gd':1,'malgun gothic':1,'mangal':1,'marlett':1,'matura mt script capitals':1,'meiryo':1,'meiryo ui':1,'microsoft himalaya':1,'microsoft jhenghei':1,'microsoft new tai lue':1,'microsoft phagspa':1,'microsoft sans serif':1,'microsoft tai le':1,'microsoft uighur':1,'microsoft yahei':1,'microsoft yi baiti':1,'mingliu':1,'mingliu-extb':1,'mingliu_hkscs':1,'mingliu_hkscs-extb':1,'miriam':1,'miriam fixed':1,'mistral':1,'modern no. 20':1,'mongolian baiti':1,'monotype corsiva':1,'monotype hadassah':1,'moolboran':1,'ms gothic':1,'ms mincho':1,'ms outlook':1,'ms pgothic':1,'ms pmincho':1,'ms reference sans serif':1,'ms reference specialty':1,'ms ui gothic':1,'mt extra':1,'mv boli':1,'narkisim':1,'niagara engraved':1,'niagara solid':1,'nsimsun':1,'nyala':1,'ocr a extended':1,'old english text mt':1,'onyx':1,'palace script mt':1,'palatino linotype':1,'papyrus':1,'parchment':1,'perpetua':1,'perpetua titling mt':1,'plantagenet cherokee':1,'playbill':1,'pmingliu':1,'pmingliu-extb':1,'poor richard':1,'pristina':1,'raavi':1,'rage italic':1,'ravie':1,'rockwell':1,'rockwell condensed':1,'rockwell extra bold':1,'rod':1,'sakkal majalla':1,'script mt bold':1,'segoe print':1,'segoe script':1,'segoe ui':1,'segoe ui light':1,'segoe ui semibold':1,'segoe ui symbol':1,'shonar bangla':1,'showcard gothic':1,'shruti':1,'simhei':1,'simplified arabic':1,'simplified arabic fixed':1,'simsun':1,'simsun-extb':1,'snap itc':1,'stencil':1,'sylfaen':1,'symbol':1,'tahoma':1,'tempus sans itc':1,'times new roman':1,'toptype soncino':1,'traditional arabic':1,'trebuchet ms':1,'tunga':1,'tw cen mt':1,'tw cen mt condensed':1,'tw cen mt condensed extra bold':1,'utsaah':1,'vani':1,'verdana':1,'vijaya':1,'viner hand itc':1,'vivaldi':1,'vladimir script':1,'vrinda':1,'webdings':1,'wide latin':1,'wingdings':1,'wingdings 2':1,'wingdings 3':1},_defaultFontIE64Bit:'Arial',processFont:function(font){var processedFont=vml._fontCache[font];if(!processedFont){var shim=vml.text_shim||(vml.init(),vml.text_shim);var style=shim.style;style.font=font;var fontFamily=style.fontFamily;if(fontFamily.charAt(0)==='"'){fontFamily=fontFamily.substr(1,fontFamily.length-1)}var ffKey=fontFamily.toLowerCase();var substFF=vml._fontSubst[ffKey];if(substFF){fontFamily=substFF}else if(vml.is64Bit&&!vml._fontWhiteListIE64Bit[ffKey]){fontFamily=vml._defaultFontIE64Bit}style.fontFamily='"'+fontFamily+'"';vml._fontCache[font]=processedFont=style.font}return processedFont},d2r:Math.PI*2/360, get_dim:function(attr,target){var o=target||{};o.translate_x=0;o.translate_y=0;if(attr.transform){var t=/translate\((-?\d+(?:\.\d+)?(?:e-?\d+)?)(?:,(-?\d+(?:\.\d+)?(?:e-?\d+)?))?\)/.exec(attr.transform);if(t&&t[1]){o.translate_x=parseFloat(t[1])}if(t&&t[2]){o.translate_y=parseFloat(t[2])}var r=/rotate\((\d+\.\d+|\d+)\)/.exec(attr.transform);if(r){o.rotation=parseFloat(r[1])%360}}o.x=parseFloat(attr.x||0);o.y=parseFloat(attr.y||0);if('width'in attr){o.width=parseFloat(attr.width)}if('height'in attr){o.height=parseFloat(attr.height)}return o},solidFillStyle:{type:'solid'},elm_defaults:{"g":{rewrite:'span',attr:function(attr,style,elm,scenes,i){var d=vml.get_dim(attr);elm.style.cssText="position:absolute;zoom:1;left:"+(d.translate_x+d.x)+"px;top:"+(d.translate_y+d.y)+"px;"}},"line":{rewrite:'shape',attr:function(attr,style,elm,scenes,i){var x1=parseFloat(attr.x1||0),y1=parseFloat(attr.y1||0),x2=parseFloat(attr.x2||0),y2=parseFloat(attr.y2||0),r=vml.round;elm.coordorigin="0,0";elm.coordsize="21600,21600";vml.path(elm).v='M '+r(x1)+' '+r(y1)+' L '+r(x2)+' '+r(y2)+' E';vml.stroke(elm,attr,scenes,i)},css:"top:0px;left:0px;width:1000px;height:1000px"},"rect":{rewrite:'shape',attr:function(attr,style,elm,scenes,i){var d=vml.get_dim(attr),p=vml.path(elm),r=vml.round;elm.coordorigin="0,0";elm.coordsize="21600,21600";var x=r(d.translate_x+d.x),y=r(d.translate_y+d.y),w=r(d.width),h=r(d.height);p.v='M '+x+' '+y+' L '+(x+w)+' '+y+' L '+(x+w)+' '+(y+h)+' L '+x+' '+(y+h)+' x';vml.stroke(elm,attr,scenes,i);vml.fill(elm,attr,scenes,i)},css:"top:0px;left:0px;width:1000px;height:1000px"},"path":{rewrite:'shape',attr:function(attr,style,elm,scenes,i){var d=vml.get_dim(attr),es=elm.style;es.left=(d.translate_x+d.x)+"px";es.top=(d.translate_y+d.y)+"px";elm.coordorigin="0,0";elm.coordsize="21600,21600";elm._events=attr["pointer-events"]||'none';vml.path(elm,attr.d);vml.fill(elm,attr,scenes,i);vml.stroke(elm,attr,scenes,i)},css:"top:0px;left:0px;width:1000px;height:1000px"},"circle":{rewrite:'oval',attr:function(attr,style,elm,scenes,i){var d=vml.get_dim(attr),es=elm.style,cx=parseFloat(attr.cx||0)+0.7,cy=parseFloat(attr.cy||0)+0.7,r=parseFloat(attr.r||0)+0.5;es.top=(d.translate_y+cy-r)+"px";es.left=(d.translate_x+cx-r)+"px";es.width=(r*2)+"px";es.height=(r*2)+"px";vml.fill(elm,attr,scenes,i);vml.stroke(elm,attr,scenes,i)}},"text":{rewrite:'shape',attr:function(attr,style,elm,scenes,i){var d=vml.get_dim(attr);var es=elm.style;elm.stroked="False";elm.path="m0,0 l1,0 e";var tp=vml.textpath(elm);tp.string=attr.string;var tpStyle=tp.style;tpStyle['v-text-align']=attr.textAlign;tpStyle.font=attr.font;if(attr.textDecoration){tpStyle.textDecoration=attr.textDecoration}vml.path(elm).textpathok='True';var r=attr.rotation;if(r){r=180*r/Math.PI;r=-(~~r%360)*vml.d2r;if(r){var ct=Math.cos(r).toFixed(8),st=Math.sin(r).toFixed(8);var skew=vml.skew(elm);skew.on='true';skew.matrix=ct+","+st+","+ -st+","+ct+",0,0"}}var s=scenes[i];s.fillStyle=vml.solidFillStyle;vml.fill(elm,attr,scenes,i);s.fillStyle=null},css:"position:absolute;top:0px;left:0px;width:1px;height:1px;"},"svg":{rewrite:'span',css:'position:relative;overflow:hidden;display:inline-block;~display:block;'},"vml:path":{rewrite:'path'},"vml:stroke":{rewrite:'stroke'},"vml:fill":{rewrite:'fill'},"vml:textpath":{rewrite:'textpath'},"vml:skew":{rewrite:'skew'}},_elmcache:{'span':document.createElement('span'),'div':document.createElement('div')},createElement:function(type,reformat){var elm,cache=vml._elmcache,helper=vml.elm_defaults[type]||{};var tagName=helper.rewrite||type;if(tagName in cache){elm=cache[tagName].cloneNode(false)}else{cache[tagName]=document.createElement(vml.pre+tagName+vml.post);if(tagName in vml.block){cache[tagName].className+=' msvml_block'}elm=cache[tagName].cloneNode(false)}helper.css&&(elm.style.cssText=helper.css);return elm},_hex:pv.range(0,256).map(function(i){return pv.Format.pad("0",2,i.toString(16))}),_colorcache:{},color:function(value){var result=vml._colorcache[value];var rgb;if(!result&&(rgb=/^rgb\((\d+),(\d+),(\d+)\)$/i.exec(value))){vml._colorcache[value]=result='#'+vml._hex[rgb[1]]+vml._hex[rgb[2]]+vml._hex[rgb[3]]}return result||value},fill:function(elm,attr,scenes,i){var fill=elm.getElementsByTagName('fill')[0];if(!fill){fill=elm.appendChild(vml.createElement('vml:fill'))}var fillStyle=scenes[i].fillStyle;if(!attr.fill||!fillStyle||(fillStyle.type==='solid'&&attr.fill==='none')){fill.on='false'}else{fill.on='true';if(fillStyle.type==='solid'){fill.type='solid';fill.color=vml.color(attr.fill)}else{var isLinear=fillStyle.type==='lineargradient';fill.method='none';var stops=fillStyle.stops;var S=stops.length;if(S>0){var stopsText=[];for(var i=0;i<S;i++){var stop=stops[i];stopsText.push(stop.offset+'% '+vml.color(stop.color.color))}if(fill.colors&&typeof fill.colors==='object'){fill.colors.value=stopsText.join(',')}else{fill.colors=stopsText.join(',')}}if(isLinear){fill.type='gradient';var angle=(-pv.degrees(fillStyle.angle))%360;fill.angle=angle<0?(angle+360):angle}else{fill.type='gradientTitle';fill.focus='100%';fill.focussize='0 0';fill.focusposition='0 0';fill.angle=0}}fill.opacity=Math.min(parseFloat(attr['fill-opacity']||'1'),1)||'1'}},stroke:function(elm,attr,scenes,i){var stroke=elm.getElementsByTagName('stroke')[0];if(!stroke){stroke=elm.appendChild(vml.createElement('vml:stroke'))}if(!attr.stroke||attr.stroke==='none'){stroke.on='false';stroke.weight=0}else{var strokeWidth=attr['stroke-width'];if(strokeWidth==null||strokeWidth===''){strokeWidth=1}else{strokeWidth=+strokeWidth}if(strokeWidth<1e-10){strokeWidth=0}else if(strokeWidth<1){strokeWidth=1}if(!strokeWidth){stroke.on='false';stroke.weight=0}else{stroke.on='true';stroke.weight=strokeWidth;stroke.color=vml.color(attr.stroke)||'black';stroke.opacity=Math.min(parseFloat(attr['stroke-opacity']||'1'),1)||'1';stroke.joinstyle=vml.joins[attr['stroke-linejoin']]||'miter';stroke.miterlimit=attr['stroke-miterlimit']||8;stroke.endcap=vml.caps[attr['stroke-linecap']]||'flat';var dashArray=attr["stroke-dasharray"];if(!dashArray||dashArray==='none'){dashArray='Solid'}stroke.dashstyle=dashArray}}},path:function(elm,svgpath){var p=elm.getElementsByTagName('path')[0];if(!p){p=elm.appendChild(vml.createElement('vml:path'))}if(arguments.length>1){p.v=vml.rewritePath(svgpath)}return p},skew:function(elm){var sk=elm.getElementsByTagName('skew')[0];if(!sk)sk=elm.appendChild(vml.createElement('vml:skew'));sk.on="false";return sk},textpath:function(elm){var tp=elm.getElementsByTagName('textpath')[0];if(!tp){tp=elm.appendChild(vml.createElement('vml:textpath'))}tp.style['v-text-align']='center';tp.style['v-text-kern']='true';tp.on="true";return tp},init:function(){if(!vml.text_shim){vml.text_shim=document.getElementById('pv_vml_text_shim')||document.createElement('span');vml.text_shim.id='protovisvml_text_shim';vml.text_shim.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline-block;white-space:nowrap;";document.body.appendChild(vml.text_shim)}if(!vml.styles){vml.styles=document.getElementById('protovisvml_styles')||document.createElement("style");vml.styles.id='protovisvml_styles';document.documentElement.firstChild.appendChild(vml.styles);vml.styles.styleSheet.addRule('.msvml','behavior:url(#default#VML);');vml.styles.styleSheet.addRule('.msvml_block','position:absolute;top:0;left:0;');try{if(!document.namespaces.pvml){document.namespaces.add('pvml','urn:schemas-microsoft-com:vml')}}catch(e){vml.pre='<';vml.post=' class="msvml" xmlns="urn:schemas-microsoft.com:vml">'}}},_pathcache:{},rewritePath:function(p,deb){var x=0,y=0,round=vml.round;if(!p){return p}if(p in vml._pathcache){return vml._pathcache[p]}p=p.replace(/(\d*)((\.*\d*)(e ?-?\d*))/g,"$1");var bits=p.match(/([MLHVCSQTAZ ][^MLHVCSQTAZ ]*)/gi);var np=[],lastcurve=[];var oldOp='';for(var i=0,bl=bits.length;i<bl;i++){var itm=bits[i],op=itm.charAt(0),args=itm.substring(1).split(/[,]/);if(op==' '){op=oldOp}oldOp=op;switch(op){case'M':op='m';x=round(args[0]);y=round(args[1]);args=[x,y];break;case'm':op='m';x+=round(args[0]);y+=round(args[1]);args=[x,y];break;case"A":op='l';args=[(x=round(args[5])),(y=round(args[6]))];break;case"L":op='l';args=[(x=round(args[0])),(y=round(args[1]))];break;case"l":op='l';args=[(x=x+round(args[0])),(y=y+round(args[1]))];break;case"H":op='l';args=[(x=round(args[0])),y];break;case"h":op='l';args=[(x=x+round(args[0])),y];break;case"V":op='l';args=[x,(y=round(args[0]))];break;case"v":op='l';args=[x,(y=y+round(args[0]))];break;case"C":op='c';lastcurve=args=[round(args[0]),round(args[1]),round(args[2]),round(args[3]),(x=round(args[4])),(y=round(args[5]))];break;case"c":op='c';lastcurve=args=[x+round(args[0]),y+round(args[1]),x+round(args[2]),y+round(args[3]),(x=x+round(args[4])),(y=y+round(args[5]))];break;case"S":op='c';lastcurve=args=[lastcurve[4]+(lastcurve[4]-lastcurve[2]),lastcurve[5]+(lastcurve[5]-lastcurve[3]),round(args[0]),round(args[1]),(x=round(args[2])),(y=round(args[3]))];break;case"s":op='c';lastcurve=args=[lastcurve[4]+(lastcurve[4]-lastcurve[2]),lastcurve[5]+(lastcurve[5]-lastcurve[3]),x+round(args[0]),y+round(args[1]),(x=x+round(args[2])),(y=y+round(args[3]))];break;case"Q":op='c';var x1=round(args[0]),y1=round(args[1]),x2=round(args[2]),y2=round(args[3]);args=[~~(x+(x1-x)*2/3),~~(y+(y1-y)*2/3),~~(x1+(x2-x1)/3),~~(y1+(y2-y1)/3),(x=x2),(y=y2)];break;case"q":op='l';x+=round(args[2]);y+=round(args[3]);args=[x,y];break;case"Z":case"z":op='xe';args=[];break;default:op='';args=[]}np.push(op,args.join(','))}return(vml._pathcache[p]=(np.join('')+'e'))}};pv.Text.measure=vml.text_dims;pv.Vml=vml;pv.VmlScene={scale:1,events:["mousewheel","mousedown","mouseup","mouseover","mouseout","mousemove","click","dblclick"],implicit:{css:{}},copy_functions:function(obj){for(var name in obj){if(typeof obj[name]==='function'&&!(name in pv.VmlScene)){pv.VmlScene[name]=obj[name]}}}};pv.VmlScene.copy_functions(pv.SvgScene);pv.Scene=pv.VmlScene;pv.renderer=function(){return'vml'};(function(is64bit){pv.VmlScene.minRuleLineWidth=is64bit?1.2:1.1;pv.VmlScene.minBarWidth=is64bit?2.2:1.8;pv.VmlScene.minBarHeight=is64bit?2.2:1.8;pv.VmlScene.minBarLineWidth=is64bit?1.2:1.0}(vml.is64Bit));pv.VmlScene.expect=function(e,type,scenes,i,attr,style){style=style||{};var helper=vml.elm_defaults[type]||{},_type=helper.rewrite||type;if(e){if(e.tagName.toUpperCase()!==_type.toUpperCase()){var n=vml.createElement(type);e.parentNode.replaceChild(n,e);e=n}}else{e=vml.createElement(type)}if('attr'in helper){helper.attr(attr,style,e,scenes,i)}if(attr.cursor in vml.cursorstyles){var curs=vml.cursorstyles[attr.cursor];style.cursor=(curs===1)?attr.cursor:curs}if(style)this.setStyle(e,style);return e};pv.VmlScene.removeSiblings=function(e){while(e){var n=e.nextSibling;e.parentNode.removeChild(e);e=n}};pv.VmlScene.removeFillStyleDefinitions=function(scenes){};pv.VmlScene.addFillStyleDefinition=function(scenes,fill){};pv.VmlScene.setAttributes=function(e,attributes){};pv.VmlScene.setStyle=function(e,style){var eStyle=e.style;for(var name in style){var value=style[name];if(value==null)eStyle.removeAttribute(name);else eStyle[name]=value}};pv.VmlScene.append=function(e,scenes,index){e.$scene={scenes:scenes,index:index};e=this.title(e,scenes[index]);if(!e.parentNode||e.parentNode.nodeType===11){scenes.$g.appendChild(e)}return e.nextSibling};pv.VmlScene.title=function(e,s){e.title=s.title||"";return e};pv.VmlScene.panel=function(scenes){var g=scenes.$g,e=g&&g.firstChild;var inited=false;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;if(!scenes.parent){var canvas=s.canvas;canvas.style.display="inline-block";canvas.style.zoom=1;if(g&&(g.parentNode!==canvas)){g=canvas.firstChild;e=g&&g.firstChild}if(!g){inited=true;vml.init();g=canvas.appendChild(vml.createElement("svg"));g.unselectable='on';g.onselectstart=function(){return false};var events=this.events;var dispatch=this.dispatch;for(var j=0,L=events.length;j<L;j++){g.addEventListener?g.addEventListener(events[j],dispatch,false):g.attachEvent("on"+events[j],dispatch)}e=g.firstChild}scenes.$g=g;var w=(s.width+s.left+s.right),h=(s.height+s.top+s.bottom);g.style.width=w+'px';g.style.height=h+'px';g.style.clip="rect(0px "+w+"px "+h+"px 0px)"}e=this.fill(e,scenes,i);var k=this.scale,t=s.transform,x=s.left+t.x,y=s.top+t.y;this.scale*=t.k;this.eachChild(scenes,i,function(child){child.$g=e=this.expect(e,"g",scenes,i,{"transform":"translate("+x+","+y+")"+(t.k!=1?" scale("+t.k+")":"")});this.updateAll(child);var parentNode=e.parentNode;if(!parentNode||parentNode.nodeType===11){g.appendChild(e);var helper=vml.elm_defaults[e.svgtype];if(helper&&typeof helper.onappend==='function'){helper.onappend(e,scenes[i])}}e=e.nextSibling});this.scale=k;e=this.stroke(e,scenes,i)}if(inited){this.removeSiblings(e);e=g.appendChild(vml.createElement("oval"))}return e};pv.VmlScene.parseDasharray=function(s){var dashArray=s.strokeDasharray;if(dashArray&&dashArray!=='none'){var standardDashArray=this.translateDashStyleAlias(dashArray);if(this.isStandardDashStyle(standardDashArray)){dashArray=standardDashArray}else{dashArray=dashArray.split(/[\s,]+/).map(function(num){return(+num)/this.scale},this);if(dashArray.length%2){dashArray=dashArray.concat(dashArray)}dashArray=dashArray.join(' ')}}else{dashArray=null}return dashArray};(function(){var returnTrue=function(){return true};var returnFalse=function(){return false};var _event_props=["altKey","attrChange","attrName","bubbles","button","cancelable","charCode","clientX","clientY","ctrlKey","currentTarget","data","detail","eventPhase","fromElement","handler","keyCode","layerX","layerY","metaKey","newValue","offsetX","offsetY","pageX","pageY","prevValue","relatedNode","relatedTarget","screenX","screenY","shiftKey","srcElement","target","toElement","view","wheelDelta","which"];var _evPropCount=_event_props.length;function IEvent(src){if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=returnFalse;if(src.defaultPrevented||src.returnValue===false||src.getPreventDefault&&src.getPreventDefault()){this.isDefaultPrevented=returnTrue}this.timeStamp=src.timeStamp||Date.now()}else{this.type=src;this.timeStamp=Date.now()}}IEvent.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return}if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return}if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var SCROLL_NODE=(document.compatMode&&document.compatMode!="BackCompat")?'documentElement':'body';vml.fixEvent=function(ev){var originalEvent=ev;ev=new IEvent(originalEvent);var type=ev.type;var isKey=type==='keypress';for(var i=_evPropCount;i;){var prop=_event_props[--i];ev[prop]=originalEvent[prop]}var target=ev.target;if(!target){target=ev.srcElement||document;if(target.nodeType===3){target=target.parentNode}ev.target=target}var fromElem;if(!ev.relatedTarget&&(fromElem=ev.fromElement)){ev.relatedTarget=(fromElem===target)?ev.toElement:fromElem}if(!isKey){var clientX;if(ev.pageX==null&&(clientX=ev.clientX)!=null){var scrollNode=document[SCROLL_NODE];ev.pageX=clientX+(scrollNode.scrollLeft||0)-(scrollNode.clientLeft||0);ev.pageY=ev.clientY+(scrollNode.scrollTop||0)-(scrollNode.clientTop||0)}}if(ev.which==null){var charCode,keyCode,btn;if(!isKey){if((btn=ev.button)!==null){ev.which=(btn&1?1:(btn&2?3:(btn&4?2:0)))}}else{if((charCode=ev.charCode)!=null){ev.which=charCode}else if((keyCode=ev.keyCode)!=null){ev.which=keyCode}}}ev.metaKey=!!ev.metaKey;if(type==="mousewheel"){ev.wheel=ev.wheelDelta}return ev}})();pv.listener=function(f,target){return f.$listener||(f.$listener=function(e){try{pv.event=vml.fixEvent(e||window.event);return f.call(this,pv.event)}catch(e){pv.error(e)}finally{delete pv.event}})};pv.listen=function(target,type,listener){listener=pv.listener(listener,target);if(target===window){target=document.documentElement}target.addEventListener?target.addEventListener(type,listener,false):target.attachEvent("on"+type,listener);return listener};pv.VmlScene.dispatch=pv.listener(function(e){var t=e.target.$scene;if(t){var events=e.target._events;if(events==='none'||pv.Mark.dispatch(e.type,t.scenes,t.index,e)){e.preventDefault()}}});pv.VmlScene.image=function(scenes){var e=scenes.$g.firstChild;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;e=this.fill(e,scenes,i);if(s.image){}else{e=new Image();e.src=s.url;var st=e.style;st.position='absolute';st.top=s.top;st.left=s.left;st.width=s.width;st.height=s.height;st.cursor=s.cursor;st.msInterpolationMode='bicubic'}e=this.append(e,scenes,i);e=this.stroke(e,scenes,i)}return e};pv.VmlScene.label=function(scenes){var e=scenes.$g.firstChild,round=Math.round;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;var fill=s.textStyle;if(!fill.opacity||!s.text)continue;var txt=s.text.replace(/\s+/g,'\xA0');var font=vml.processFont(s.font);var label=vml.text_dims(txt,font);var dx=0;var dy=0;switch(s.textBaseline){case'middle':dy=(.1*label.height);break;case'top':dy=s.textMargin+.5*label.height;break;case'bottom':dy=-(s.textMargin+.5*label.height);break}switch(s.textAlign){case'left':dx=s.textMargin;break;case'right':dx=-s.textMargin;break}var a=s.textAngle;if(a){var ct=Math.cos(a);var st=Math.sin(a);var dx2=dx*ct-dy*st;var dy2=dx*st+dy*ct;dx=dx2;dy=dy2}var left=s.left+dx;var top=s.top+dy;var attr={};if(s.cursor){attr.cursor=s.cursor}attr.fill=vml.color(fill.color)||"black";if(vml.is64Bit){attr['fill-opacity']=0.7}attr.x=left;attr.y=top;attr.rotation=s.textAngle;attr.string=txt;attr.textAlign=s.textAlign;attr.font=font;attr.textDecoration=s.textDecoration;e=this.expect(e,"text",scenes,i,attr,{'display':'block','lineHeight':1,'whiteSpace':'nowrap','zoom':1,'position':'absolute','cursor':'default','top':top+'px','left':left+'px'});e=this.append(e,scenes,i)}return e};pv.VmlScene.wedge=function(scenes){var e=scenes.$g.firstChild,round=vml.round;for(var i=0;i<scenes.length;i++){var s=scenes[i];if(!s.visible)continue;var fill=s.fillStyle,stroke=s.strokeStyle;if(!fill.opacity&&!stroke.opacity)continue;e=this.expect(e,"path",scenes,i,{"pointer-events":s.events,"cursor":s.cursor,"transform":"translate("+s.left+","+s.top+")","d":'',"fill":fill.color,"fill-rule":"evenodd","fill-opacity":fill.opacity||null,"stroke":stroke.color,"stroke-opacity":stroke.opacity||null,"stroke-width":stroke.opacity?s.lineWidth/this.scale:null,"stroke-linecap":s.lineCap,"stroke-linejoin":s.lineJoin,"stroke-miterlimit":s.strokeMiterLimit,"stroke-dasharray":stroke.opacity?this.parseDasharray(s):null});var p=e.getElementsByTagName('path')[0];if(!p){p=vml.make('path');e.appendChild(p)}var r1=round(s.innerRadius),r2=round(s.outerRadius),d;if(s.angle>=2*Math.PI){if(r1){d="AE0,0 "+r2+","+r2+" 0 23592960"+"AL0,0 "+r1+","+r1+" 0 23592960"}else{d="AE0,0 "+r2+","+r2+" 0 23592960"}}else{var sa=Math.round(s.startAngle/Math.PI*11796480),a=Math.round(s.angle/Math.PI*11796480);if(r1){d="AE 0,0 "+r2+","+r2+" "+ -sa+" "+ -a+" 0,0 "+r1+","+r1+" "+ -(sa+a)+" "+a+"X"}else{d="M0,0"+"AE0,0 "+r2+","+r2+" "+ -sa+" "+ -a+"X"}}p.v=d;e=this.append(e,scenes,i)}return e}})()}
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvc.color.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){pvc.color={scale:colorScale,scales:colorScales};function colorScales(keyArgs){keyArgs||def.fail.argumentRequired('keyArgs');var type=keyArgs.type||def.fail.argumentRequired('keyArgs.type');switch(type){case'linear':return new pvc.color.LinearScalesBuild(keyArgs).buildMap();case'discrete':return new pvc.color.DiscreteScalesBuild(keyArgs).buildMap();case'normal':return new pvc.color.NormalScalesBuild(keyArgs).buildMap()}throw def.error.argumentInvalid('scaleType',"Unexistent scale type '{0}'.",[type])}function colorScale(keyArgs){keyArgs||def.fail.argumentRequired('keyArgs');var type=keyArgs.type||def.fail.argumentRequired('keyArgs.type');switch(type){case'linear':return new pvc.color.LinearScalesBuild(keyArgs).build();case'discrete':return new pvc.color.DiscreteScalesBuild(keyArgs).build();case'normal':return new pvc.color.NormalScalesBuild(keyArgs).build()}throw def.error.argumentInvalid('scaleType',"Unexistent scale type '{0}'.",[type])}def.type('pvc.color.ScalesBuild').init(function(keyArgs){this.keyArgs=keyArgs;this.data=keyArgs.data||def.fail.argumentRequired('keyArgs.data');this.domainDimName=keyArgs.colorDimension||def.fail.argumentRequired('keyArgs.colorDimension');this.domainDim=this.data.dimensions(this.domainDimName);var dimType=this.domainDim.type;if(!dimType.isComparable){this.domainComparer=null;pvc.log("Color value dimension should be comparable. Generated color scale may be invalid.")}else{this.domainComparer=function(a,b){return dimType.compare(a,b)}}this.nullRangeValue=keyArgs.colorNull?pv.color(keyArgs.colorNull):pv.Color.transparent;this.domainRangeCountDif=0}).add({build:function(){this.range=this._getRange();this.desiredDomainCount=this.range.length+this.domainRangeCountDif;var domain=this._getDomain();return this._createScale(domain)},buildMap:function(){this.range=this._getRange();this.desiredDomainCount=this.range.length+this.domainRangeCountDif;var createCategoryScale;if(this.keyArgs.normPerBaseCategory){createCategoryScale=function(leafData){var domain=this._ensureDomain(null,false,leafData);return this._createScale(domain)}}else{var domain=this._getDomain(),scale=this._createScale(domain);createCategoryScale=def.fun.constant(scale)}return this._createCategoryScalesMap(createCategoryScale)},_createScale:def.method({isAbstract:true}),_createCategoryScalesMap:function(createCategoryScale){return this.data.children().object({name:function(leafData){return leafData.absKey},value:createCategoryScale,context:this})},_getRange:function(){var keyArgs=this.keyArgs,range=keyArgs.colors||['red','yellow','green'];if(keyArgs.colorMin!=null&&keyArgs.colorMax!=null){range=[keyArgs.colorMin,keyArgs.colorMax]}else if(keyArgs.colorMin!=null){range.unshift(keyArgs.colorMin)}else if(keyArgs.colorMax!=null){range.push(keyArgs.colorMax)}return range.map(function(c){return pv.color(c)})},_getDataExtent:function(data){var extent=data.dimensions(this.domainDimName).extent({visible:true});if(!extent){return null}var min=extent.min.value,max=extent.max.value;if(max==min){if(max>=1){min=max-1}else{max=min+1}}return{min:min,max:max}},_getDomain:function(){var domain=this.keyArgs.colorDomain;if(domain!=null){if(this.domainComparer){domain.sort(this.domainComparer)}if(domain.length>this.desiredDomainCount){domain=domain.slice(0,this.desiredDomainCount)}}else{domain=[]}return this._ensureDomain(domain,true,this.data)},_ensureDomain:function(domain,doDomainPadding,data){var extent;if(domain&&doDomainPadding){var domainPointsMissing=this.desiredDomainCount-domain.length;if(domainPointsMissing>0){extent=this._getDataExtent(data);if(extent){switch(domainPointsMissing){case 1:if(this.domainComparer){def.array.insert(domain,extent.max,this.domainComparer)}else{domain.push(extent.max)}break;case 2:if(this.domainComparer){def.array.insert(domain,extent.min,this.domainComparer);def.array.insert(domain,extent.max,this.domainComparer)}else{domain.unshift(extent.min);domain.push(extent.max)}break;default:if(pvc.debug>=2){pvc.log("Ignoring option 'colorDomain' due to unsupported length."+def.format(" Should have '{0}', but instead has '{1}'.",[this.desiredDomainCount,domain.length]))}domain=null}}}}if(!domain){extent||(extent=this._getDataExtent(data));if(extent){var min=extent.min,max=extent.max;var step=(max-min)/(this.desiredDomainCount-1);domain=pv.range(min,max+step,step)}}return domain}});def.type('pvc.color.LinearScalesBuild',pvc.color.ScalesBuild).add({_createScale:function(domain){var scale=pv.Scale.linear();if(domain){scale.domain.apply(scale,domain)}scale.range.apply(scale,this.range);return scale}});def.type('pvc.color.DiscreteScalesBuild',pvc.color.ScalesBuild).init(function(keyArgs){this.base(keyArgs);this.domainRangeCountDif=1}).add({_createScale:function(domain){var Dl=domain.length-1,range=this.range,nullRangeValue=this.nullRangeValue,Rl=range.length-1;function scale(val){if(val==null){return nullRangeValue}for(var i=0;i<Dl;i++){if(val<=domain[i+1]){return range[i]}}return range[Rl]}def.copy(scale,pv.Scale.common);return scale}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvc.js
... ... @@ -1 +0,0 @@
1   -var pvc=def.globalSpace('pvc',{debug:0});(function(){(function(){if((typeof window.location)!=='undefined'){var url=window.location.href;if(url&&(/\bdebug=true\b/).test(url)){var m=/\bdebugLevel=(\d+)/.exec(url);pvc.debug=m?(+m[1]):3}}}());pvc.invisibleFill='rgba(127,127,127,0.00001)';pvc.logSeparator="------------------------------------------";var arraySlice=pvc.arraySlice=Array.prototype.slice;pvc.setDebug=function(level){level=+level;pvc.debug=isNaN(level)?0:level;installPvcLog();syncTipsyLog();return pvc.debug};pvc._installLog=function(o,pto,pfrom,prompt){if(!pfrom){pfrom=pto}var c=console;var m=c[pfrom]||c.log;var fun;if(m){var mask=prompt+": %s";if(!def.fun.is(m)){var apply=Function.prototype.apply;fun=function(){apply.call(m,c,def.array.append([mask],arguments))}}else{fun=m.bind(console,mask)}}o[pto]=fun};function installPvcLog(){if(pvc.debug&&typeof console!=="undefined"){['log','info',['trace','debug'],'error','warn','group','groupEnd'].forEach(function(ps){ps=ps instanceof Array?ps:[ps,ps];pvc._installLog(pvc,ps[0],ps[1],'[pvChart]')})}else{if(pvc.debug>1){pvc.debug=1}['log','info','trace','warn','group','groupEnd'].forEach(function(p){pvc[p]=def.noop});pvc.error=function(e){if(e&&typeof e==='object'&&e.message){e=e.message}throw new Error("[pvChart ERROR]: "+e)}}}installPvcLog();pvc.logError=pvc.error;pv.error=pvc.error;function syncTipsyLog(){var tip=pv.Behavior.tipsy;if(tip&&tip.setDebug){tip.setDebug(pvc.debug);tip.log=pvc.log}}syncTipsyLog();pvc.defaultCompatVersion=function(compatVersion){var defaults=pvc.BaseChart.prototype.defaults;if(compatVersion!=null){return defaults.compatVersion=compatVersion}return defaults.compatVersion};pvc.cloneMatrix=function(m){return m.map(function(d){return d.slice()})};pvc.stringify=function(t,keyArgs){var maxLevel=def.get(keyArgs,'maxLevel')||5;var out=[];pvc.stringifyRecursive(out,t,maxLevel,keyArgs);return out.join('')};pvc.stringifyRecursive=function(out,t,remLevels,keyArgs){if(remLevels>0){remLevels--;switch(typeof t){case'undefined':return out.push('undefined');case'object':if(!t){out.push('null');return true}if(def.fun.is(t.stringify)){return t.stringify(out,remLevels,keyArgs)}if(t instanceof Array){out.push('[');t.forEach(function(item,index){if(index){out.push(', ')}if(!pvc.stringifyRecursive(out,item,remLevels,keyArgs)){out.pop()}});out.push(']')}else{var ownOnly=def.get(keyArgs,'ownOnly',true);if(t===def.global){out.push('<window>');return true}if(def.fun.is(t.cloneNode)){out.push('<dom #'+(t.id||t.name||'?')+'>');return true}if(remLevels>1&&t.constructor!==Object){remLevels=1;ownOnly=true}out.push('{');var first=true;for(var p in t){if(!ownOnly||def.hasOwnProp.call(t,p)){if(!first){out.push(', ')}out.push(p+': ');if(!pvc.stringifyRecursive(out,t[p],remLevels,keyArgs)){out.pop();if(!first){out.pop()}}else if(first){first=false}}}if(first){var s=''+t;if(s!=='[object Object]'){out.push('{'+s+'}')}}out.push('}')}return true;case'number':out.push(''+(Math.round(100000*t)/100000)); return true;case'boolean':out.push(''+t);return true;case'string':out.push(JSON.stringify(t));return true;case'function':if(def.get(keyArgs,'funs',false)){out.push(JSON.stringify(t.toString().substr(0,13)+'...'));return true}return false}out.push("'new ???'");return true}};pvc.orientation={vertical:'vertical',horizontal:'horizontal'};pvc.extensionTag='extension';pvc.extendType=function(type,exts,names){if(exts){var exts2;var addExtension=function(ext,name){if(ext!==undefined){if(!exts2){exts2={}}exts2[name]=def.fun.to(ext)}};if(names){names.forEach(function(name){addExtension(exts[name],name)})}else{def.each(addExtension)}if(exts2){type.add(exts2)}}};pv.Mark.prototype.hasDelegateValue=function(name,tag){var p=this.$propertiesMap[name];if(p){return(!tag||p.tag===tag)}if(this.proto){return this.proto.hasDelegateValue(name,tag)}return false};pvc.defaultColorScheme=null;pvc.brighterColorTransform=function(color){return(color.rgb?color:pv.color(color)).brighter(0.6)};pvc.setDefaultColorScheme=function(colors){return pvc.defaultColorScheme=pvc.colorScheme(colors)};pvc.defaultColor=pv.Colors.category10()('?');pvc.colorScheme=function(colors){if(colors==null){return null}if(typeof colors==='function'){if(!colors.hasOwnProperty('range')){return colors}colors=colors.range()}else{colors=def.array.as(colors)}if(!colors.length){return null}return function(){var scale=pv.colors(colors);scale.domain.apply(scale,arguments);return scale}},pvc.createColorScheme=function(colors){return pvc.colorScheme(colors)||pvc.defaultColorScheme||pv.Colors.category10};pvc.toGrayScale=function(color,alpha,maxGrayLevel,minGrayLevel){color=pv.color(color);var avg=0.299*color.r+0.587*color.g+0.114*color.b;if(maxGrayLevel===undefined){maxGrayLevel=200}else if(maxGrayLevel==null){maxGrayLevel=255}if(minGrayLevel===undefined){minGrayLevel=30}else if(minGrayLevel==null){minGrayLevel=0}var delta=(maxGrayLevel-minGrayLevel);if(delta<=0){avg=maxGrayLevel}else{avg=minGrayLevel+(avg/255)*delta}if(alpha==null){alpha=color.opacity}else if(alpha<0){alpha=(-alpha)*color.opacity}avg=Math.round(avg);return pv.rgb(avg,avg,avg,alpha)};pvc.removeTipsyLegends=function(){try{$('.tipsy').remove()}catch(e){}};pvc.createDateComparer=function(parser,key){if(!key){key=pv.identity}return function(a,b){return parser.parse(key(a))-parser.parse(key(b))}};pvc.time={intervals:{'y':31536e6,'m':2592e6,'d30':2592e6,'w':6048e5,'d7':6048e5,'d':864e5,'h':36e5,'M':6e4,'s':1e3,'ms':1},withoutTime:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())},weekday:{previousOrSelf:function(t,toWd){var wd=t.getDay();var difDays=wd-toWd;if(difDays){var previousOffset=difDays<0?(7+difDays):difDays;t=new Date(t-previousOffset*pvc.time.intervals.d)}return t},nextOrSelf:function(t,toWd){var wd=t.getDay();var difDays=wd-toWd;if(difDays){var nextOffset=difDays>0?(7-difDays):-difDays;t=new Date(t+nextOffset*pvc.time.intervals.d)}return t},closestOrSelf:function(t,toWd){var wd=t.getDay();var difDays=wd-toWd;if(difDays){var D=pvc.time.intervals.d;var sign=difDays>0?1:-1;difDays=Math.abs(difDays);if(difDays>=4){t=new Date(t.getTime()+sign*(7-difDays)*D)}else{t=new Date(t.getTime()-sign*difDays*D)}}return t}}};pv.Format.createParser=function(pvFormat){function parse(value){return pvFormat.parse(value)}return parse};pv.Format.createFormatter=function(pvFormat){function format(value){return value!=null?pvFormat.format(value):""}return format};pvc.buildTitleFromName=function(name){return def.firstUpperCase(name).replace(/([a-z\d])([A-Z])/,"$1 $2")};pvc.buildIndexedId=function(prefix,index){if(index>0){return prefix+""+(index+1)}return prefix};pvc.splitIndexedId=function(indexedId){var match=/^(.*?)(\d*)$/.exec(indexedId);var index=null;if(match[2]){index=Number(match[2]);if(index<=1){index=1}else{index--}}return[match[1],index]};function unwrapExtensionOne(id,prefix){if(id){if(def.object.is(id)){return id.abs}return prefix?(prefix+def.firstUpperCase(id)):id}return prefix}var oneNullArray=[null];pvc.makeExtensionAbsId=function(id,prefix){if(!id){return prefix}return def.query(prefix||oneNullArray).selectMany(function(oneprefix){return def.query(id).select(function(oneid){return unwrapExtensionOne(oneid,oneprefix)})}).where(def.truthy).array()};pvc.parseDistinctIndexArray=function(value,max){value=def.array.as(value);if(value==null){return null}if(max==null){max=Infinity}var a=def.query(value).select(function(index){return+index}).where(function(index){return!isNaN(index)&&index>=0&&index<=max}).distinct().array();return a.length?a:null};pvc.parseLegendClickMode=function(clickMode){if(!clickMode){clickMode='none'}switch(clickMode){case'toggleSelected':case'toggleVisible':case'none':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'legendClickMode' option value: '"+clickMode+"'. Assuming 'none'.")}clickMode='none';break}return clickMode};pvc.parseShape=function(shape){if(shape){switch(shape){case'square':case'circle':case'diamond':case'triangle':case'cross':case'bar':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'shape' option value: '"+shape+"'.")}shape=null;break}}return shape};pvc.parseContinuousColorScaleType=function(scaleType){if(scaleType){switch(scaleType){case'linear':case'normal':case'discrete':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'ScaleType' option value: '"+scaleType+"'.")}scaleType=null;break}}return scaleType};pvc.parseDomainScope=function(scope,orientation){if(scope){switch(scope){case'cell':case'global':break;case'section':if(!orientation){throw def.error.argumentRequired('orientation')}scope=orientation==='y'?'row':'column';break;case'column':case'row':if(orientation&&orientation!==(scope==='row'?'y':'x')){scope='section';if(pvc.debug>=2){pvc.log("[Warning] Invalid 'DomainScope' option value: '"+scope+"' for the orientation: '"+orientation+"'.")}}break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'DomainScope' option value: '"+scope+"'.")}scope=null;break}}return scope};pvc.parseDomainRoundingMode=function(mode){if(mode){switch(mode){case'none':case'nice':case'tick':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'DomainRoundMode' value: '"+mode+"'.")}mode=null;break}}return mode};pvc.parseOverlappedLabelsMode=function(mode){if(mode){switch(mode){case'leave':case'hide':break;default:if(pvc.debug>=2){pvc.log("[Warning] Invalid 'OverlappedLabelsMode' option value: '"+mode+"'.")}mode=null;break}}return mode};pvc.castNumber=function(value){if(value!=null){value=+value;if(isNaN(value)){value=null}}return value};pvc.parseWaterDirection=function(value){if(value){switch(value){case'up':case'down':return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'WaterDirection' value: '"+value+"'.")}}};pvc.parseTrendType=function(value){if(value){if(value==='none'){return value}if(pvc.trends.has(value)){return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'TrendType' value: '"+value+"'.")}}};pvc.parseNullInterpolationMode=function(value){if(value){switch(value){case'none':case'linear':case'zero':return value}if(pvc.debug>=2){pvc.log("[Warning] Invalid 'NullInterpolationMode' value: '"+value+"'.")}}};pvc.parseAlign=function(side,align){var align2,isInvalid;if(side==='left'||side==='right'){align2=align&&pvc.BasePanel.verticalAlign[align];if(!align2){align2='middle';isInvalid=!!align}}else{align2=align&&pvc.BasePanel.horizontalAlign[align];if(!align2){align2='center';isInvalid=!!align}}if(isInvalid&&pvc.debug>=2){pvc.log(def.format("Invalid alignment value '{0}'. Assuming '{1}'.",[align,align2]))}return align2};pvc.parseAnchor=function(anchor){if(anchor){switch(anchor){case'top':case'left':case'center':case'bottom':case'right':return anchor}if(pvc.debug>=2){pvc.log(def.format("Invalid anchor value '{0}'.",[anchor]))}}};pvc.parseAnchorWedge=function(anchor){if(anchor){switch(anchor){case'outer':case'inner':case'center':case'start':case'end':return anchor}if(pvc.debug>=2){pvc.log(def.format("Invalid wedge anchor value '{0}'.",[anchor]))}}};pvc.unionExtents=function(result,range){if(!result){if(!range){return null}result={min:range.min,max:range.max}}else if(range){if(range.min<result.min){result.min=range.min}if(range.max>result.max){result.max=range.max}}return result};pvc.Sides=function(sides){if(sides!=null){this.setSides(sides)}};pvc.Sides.hnames='left right'.split(' ');pvc.Sides.vnames='top bottom'.split(' ');pvc.Sides.names='left right top bottom'.split(' ');pvc.Sides.namesSet=pv.dict(pvc.Sides.names,def.retTrue);pvc.parsePosition=function(side,defaultSide){if(side&&!def.hasOwn(pvc.Sides.namesSet,side)){if(!defaultSide){defaultSide='left'}if(pvc.debug>=2){pvc.log(def.format("Invalid position value '{0}. Assuming '{1}'.",[side,defaultSide]))}side=defaultSide}return side};pvc.Sides.as=function(v){if(v!=null&&!(v instanceof pvc.Sides)){v=new pvc.Sides().setSides(v)}return v};pvc.Sides.prototype.stringify=function(out,remLevels,keyArgs){return pvc.stringifyRecursive(out,def.copyOwn(this),remLevels,keyArgs)};pvc.Sides.prototype.setSides=function(sides){if(typeof sides==='string'){var comps=sides.split(/\s+/).map(function(comp){return pvc.PercentValue.parse(comp)});switch(comps.length){case 1:this.set('all',comps[0]);return this;case 2:this.set('top',comps[0]);this.set('left',comps[1]);this.set('right',comps[1]);this.set('bottom',comps[0]);return this;case 3:this.set('top',comps[0]);this.set('left',comps[1]);this.set('right',comps[1]);this.set('bottom',comps[2]);return this;case 4:this.set('top',comps[0]);this.set('right',comps[1]);this.set('bottom',comps[2]);this.set('left',comps[3]);return this;case 0:return this}}else if(typeof sides==='number'){this.set('all',sides);return this}else if(typeof sides==='object'){if(sides instanceof pvc.PercentValue){this.set('all',sides)}else{this.set('all',sides.all);for(var p in sides){if(p!=='all'&&pvc.Sides.namesSet.hasOwnProperty(p)){this.set(p,sides[p])}}}return this}if(pvc.debug){pvc.log("Invalid 'sides' value: "+pvc.stringify(sides))}return this};pvc.Sides.prototype.set=function(prop,value){value=pvc.PercentValue.parse(value);if(value!=null){if(prop==='all'){pvc.Sides.names.forEach(function(p){this[p]=value},this)}else if(def.hasOwn(pvc.Sides.namesSet,prop)){this[prop]=value}}};pvc.Sides.prototype.resolve=function(width,height){if(typeof width==='object'){height=width.height;width=width.width}var sides={};pvc.Sides.names.forEach(function(side){var value=0;var sideValue=this[side];if(sideValue!=null){if(typeof(sideValue)==='number'){value=sideValue}else{value=sideValue.resolve((side==='left'||side==='right')?width:height)}}sides[side]=value},this);return pvc.Sides.updateSize(sides)};pvc.Sides.updateSize=function(sides){sides.width=(sides.left||0)+(sides.right||0);sides.height=(sides.bottom||0)+(sides.top||0);return sides};pvc.Sides.resolvedMax=function(a,b){var sides={};pvc.Sides.names.forEach(function(side){sides[side]=Math.max(a[side]||0,b[side]||0)});return sides};pvc.Sides.inflate=function(sides,by){var sidesOut={};pvc.Sides.names.forEach(function(side){sidesOut[side]=(sides[side]||0)+by});return pvc.Sides.updateSize(sidesOut)};pvc.PercentValue=function(pct){this.percent=pct};pvc.PercentValue.prototype.resolve=function(total){return this.percent*total};pvc.PercentValue.parse=function(value){if(value!=null&&value!==''){switch(typeof value){case'number':return value;case'string':var match=value.match(/^(.+?)\s*(%)?$/);if(match){var n=+match[1];if(!isNaN(n)){if(match[2]){if(n>=0){return new pvc.PercentValue(n/100)}}else{return n}}}break;case'object':if(value instanceof pvc.PercentValue){return value}break}if(pvc.debug){pvc.log(def.format("Invalid margins component '{0}'",[''+value]))}}};pvc.PercentValue.resolve=function(value,total){return(value instanceof pvc.PercentValue)?value.resolve(total):value};var markRenderCore=pv.Mark.prototype.renderCore,markZOrder=pv.Mark.prototype.zOrder;pv.Mark.prototype.zOrder=function(zOrder){var borderPanel=this.borderPanel;if(borderPanel&&borderPanel!==this){return markZOrder.call(borderPanel,zOrder)}return markZOrder.call(this,zOrder)};pv.Mark.prototype.renderCore=function(){var root=this.root;root._renderId=(root._renderId||0)+1;if(pvc.debug>=25){pvc.log("BEGIN RENDER "+root._renderId)}markRenderCore.apply(this,arguments);if(pvc.debug>=25){pvc.log("END RENDER "+root._renderId)}};pv.Mark.prototype.renderId=function(){return this.root._renderId};pv.Mark.prototype.wrapper=function(wrapper){this._wrapper=wrapper;return this};pv.Mark.prototype.wrap=function(f,m){if(f&&def.fun.is(f)&&this._wrapper&&!f._cccWrapped){f=this._wrapper(f,m);f._cccWrapped=true}return f};pv.Mark.prototype.lock=function(prop,value){if(value!==undefined){this[prop](value)}(this._locked||(this._locked={}))[prop]=true;return this};pv.Mark.prototype.isIntercepted=function(prop){return this._intercepted&&this._intercepted[prop]};pv.Mark.prototype.isLocked=function(prop){return this._locked&&this._locked[prop]};pv.Mark.prototype.addMargin=function(name,margin){if(margin!==0){var staticValue=def.nullyTo(this.propertyValue(name),0),fMeasure=pv.functor(staticValue);this[name](function(){return margin+fMeasure.apply(this,arraySlice.call(arguments))})}return this};pv.Mark.prototype.addMargins=function(margins){var all=def.get(margins,'all',0);this.addMargin('left',def.get(margins,'left',all));this.addMargin('right',def.get(margins,'right',all));this.addMargin('top',def.get(margins,'top',all));this.addMargin('bottom',def.get(margins,'bottom',all));return this};pv.Mark.prototype.eachInstanceWithData=function(fun,ctx){this.eachInstance(function(scenes,index,t){if(scenes.mark.sign&&scenes[index].data){fun.call(ctx,scenes,index,t)}})};pv.Transform.prototype.transformHPosition=function(left){return this.x+(this.k*left)};pv.Transform.prototype.transformVPosition=function(top){return this.y+(this.k*top)};pv.Transform.prototype.transformLength=function(length){return this.k*length};var Size=def.type('pvc.Size').init(function(width,height){if(arguments.length===1){if(width!=null){this.setSize(width)}}else{if(width!=null){this.width=width}if(height!=null){this.height=height}}}).add({stringify:function(out,remLevels,keyArgs){return pvc.stringifyRecursive(out,def.copyOwn(this),remLevels,keyArgs)},setSize:function(size,keyArgs){if(typeof size==='string'){var comps=size.split(/\s+/).map(function(comp){return pvc.PercentValue.parse(comp)});switch(comps.length){case 1:this.set(def.get(keyArgs,'singleProp','all'),comps[0]);return this;case 2:this.set('width',comps[0]);this.set('height',comps[1]);return this;case 0:return this}}else if(typeof size==='number'){this.set(def.get(keyArgs,'singleProp','all'),size);return this}else if(typeof size==='object'){if(size instanceof pvc.PercentValue){this.set(def.get(keyArgs,'singleProp','all'),size)}else{this.set('all',size.all);for(var p in size){if(p!=='all'){this.set(p,size[p])}}}return this}if(pvc.debug){pvc.log("Invalid 'size' value: "+pvc.stringify(size))}return this},set:function(prop,value){if(value!=null&&(prop==='all'||def.hasOwn(pvc.Size.namesSet,prop))){value=pvc.PercentValue.parse(value);if(value!=null){if(prop==='all'){pvc.Size.names.forEach(function(p){this[p]=value},this)}else{this[prop]=value}}}return this},clone:function(){return new Size(this.width,this.height)},intersect:function(size){return new Size(Math.min(this.width,size.width),Math.min(this.height,size.height))},resolve:function(refSize){var size={};pvc.Size.names.forEach(function(length){var lengthValue=this[length];if(lengthValue!=null){if(typeof(lengthValue)==='number'){size[length]=lengthValue}else if(refSize){var refLength=refSize[length];if(refLength!=null){size[length]=lengthValue.resolve(refLength)}}}},this);return size}});pvc.Size.names=['width','height'];pvc.Size.namesSet=pv.dict(pvc.Size.names,def.retTrue);pvc.Size.toOrtho=function(value,anchor){if(value!=null){var a_ol;if(anchor){a_ol=pvc.BasePanel.orthogonalLength[anchor]}value=pvc.Size.to(value,{singleProp:a_ol});if(anchor){delete value[pvc.BasePanel.oppositeLength[a_ol]]}}return value};pvc.Size.to=function(v,keyArgs){if(v!=null&&!(v instanceof Size)){v=new Size().setSize(v,keyArgs)}return v};var Offset=def.type('pvc.Offset').init(function(x,y){if(arguments.length===1){if(x!=null){this.setOffset(x)}}else{if(x!=null){this.x=x}if(y!=null){this.y=y}}}).add({stringify:function(out,remLevels,keyArgs){return pvc.stringifyRecursive(out,def.copyOwn(this),remLevels,keyArgs)},setOffset:function(offset,keyArgs){if(typeof offset==='string'){var comps=offset.split(/\s+/).map(function(comp){return pvc.PercentValue.parse(comp)});switch(comps.length){case 1:this.set(def.get(keyArgs,'singleProp','all'),comps[0]);return this;case 2:this.set('x',comps[0]);this.set('y',comps[1]);return this;case 0:return this}}else if(typeof offset==='number'){this.set(def.get(keyArgs,'singleProp','all'),offset);return this}else if(typeof offset==='object'){this.set('all',offset.all);for(var p in offset){if(p!=='all'){this.set(p,offset[p])}}return this}if(pvc.debug){pvc.log("Invalid 'offset' value: "+pvc.stringify(offset))}return this},set:function(prop,value){if(value!=null&&def.hasOwn(pvc.Offset.namesSet,prop)){value=pvc.PercentValue.parse(value);if(value!=null){if(prop==='all'){pvc.Offset.names.forEach(function(p){this[p]=value},this)}else{this[prop]=value}}}},resolve:function(refSize){var offset={};pvc.Size.names.forEach(function(length){var offsetProp=pvc.Offset.namesSizeToOffset[length];var offsetValue=this[offsetProp];if(offsetValue!=null){if(typeof(offsetValue)==='number'){offset[offsetProp]=offsetValue}else if(refSize){var refLength=refSize[length];if(refLength!=null){offset[offsetProp]=offsetValue.resolve(refLength)}}}},this);return offset}});pvc.Offset.names=['x','y'];pvc.Offset.namesSet=pv.dict(pvc.Offset.names,def.retTrue);pvc.Offset.namesSizeToOffset={width:'x',height:'y'};pvc.Offset.namesSidesToOffset={left:'x',right:'x',top:'y',bottom:'y'};pvc.Offset.as=function(v){if(v!=null&&!(v instanceof Offset)){v=new Offset().setOffset(v)}return v}}());(function($){$.support.svg=$.support.svg||document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}(jQuery));
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvc.options.js
... ... @@ -1 +0,0 @@
1   -def.scope(function(){function options(specs,context){specs||def.fail.argumentRequired('specs');var _infos={};def.each(specs,function(spec,name){var info=new OptionInfo(name,option,context,spec);_infos[info.name]=info});function resolve(name){var info=def.getOwn(_infos,name)||def.fail.operationInvalid("Undefined option '{0}'",[name]);return info.resolve()}function option(name,noDefault){var info=resolve(name);return noDefault&&!info.isSpecified?undefined:info.value}function isSpecified(name){return resolve(name).isSpecified}function specified(name){return option(name,true)}function isDefined(name){return def.hasOwn(_infos,name)}function specify(opts){return set(opts,false)}function defaults(opts){return set(opts,true)}function getDefaultValue(name){return resolve(name)._defaultValue}function set(opts,isDefault){for(var name in opts){var info=def.getOwn(_infos,name);if(info){var value=opts[name];if(value!==undefined){info.set(value,isDefault)}}}return option}option.option=option;option.specified=specified;option.isSpecified=isSpecified;option.isDefined=isDefined;option.defaultValue=getDefaultValue;option.specify=specify;option.defaults=defaults;return option}function resolvers(list){return function(optionInfo){for(var i=0,L=list.length;i<L;i++){var m=list[i];if(def.string.is(m)){m=this[m]}if(m.call(this,optionInfo)===true){return true}}}}function constantResolver(value,op){return function(optionInfo){optionInfo.specify(value);return true}}function specifyResolver(fun,op){return function(optionInfo){var value=fun.call(this,optionInfo);if(value!==undefined){optionInfo.specify(value);return true}}}function defaultResolver(fun){return function(optionInfo){var value=fun.call(this,optionInfo);if(value!==undefined){optionInfo.defaultValue(value);return true}}}options.resolvers=resolvers;options.constant=constantResolver;options.specify=specifyResolver;options.defaultValue=defaultResolver;pvc.options=options;var OptionInfo=def.type().init(function(name,option,context,spec){this.name=name;this._context=context;this.option=option;this._cast=def.get(spec,'cast');var value=def.get(spec,'value');if(value!==undefined){this._defaultValue=this.value=value}this.resolveCore=def.get(spec,'resolve');if(!this.resolveCore){this.isResolved=true}var getDefault=def.get(spec,'getDefault');if(getDefault){this._getDefault=getDefault}var data=def.get(spec,'data');if(data!=null){this.data=data}this.alias=def.array.to(def.get(spec,'alias'))}).add({isSpecified:false,isResolved:false,value:undefined,_defaultValue:undefined,resolve:function(){if(!this.isResolved){this.isResolved=true;var resolve=this._getFunProp('resolveCore');resolve.call(this._context,this);if(this.value==null){var getDefault=this._getFunProp('_getDefault');if(getDefault){var value=this.cast(getDefault.call(this._context,this));if(value!=null){delete this.isSpecified;this.value=this._defaultValue=value}}}}return this},specify:function(value){return this.set(value,false)},defaultValue:function(defaultValue){if(defaultValue!==undefined){this.set(defaultValue,true)}return this._defaultValue},cast:function(value){if(value!=null){var cast=this._getFunProp('_cast');if(cast){value=cast.call(this._context,value,this)}}return value},dynDefault:function(){var dynDefault=this._getFunProp('_dynDefault');if(dynDefault){return this.cast(dynDefault.call(this._context,this))}},set:function(value,isDefault){if(value!=null){value=this.cast(value)}if(value==null){value=this.dynDefault();if(value!=null){isDefault=true}}if(!isDefault){this.isSpecified=true;this.isResolved=true;this.value=value}else{this._defaultValue=value;if(!this.isSpecified){this.value=value}}return this},_getFunProp:function(name){var fun=this[name];if(fun){var context=this._context;if(context&&def.string.is(fun)){fun=context[fun]}}return fun}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvc.text.js
... ... @@ -1 +0,0 @@
1   -pvc.text={getFitInfo:function(w,h,text,font,diagMargin){if(text===''){return{h:true,v:true,d:true}}var len=pv.Text.measure(text,font).width;return{h:len<=w,v:len<=h,d:len<=Math.sqrt(w*w+h*h)-diagMargin}},trimToWidthB:function(len,text,font,trimTerminator,before){len-=pv.Text.measure(trimTerminator,font).width;return pvc.text.trimToWidth(len,text,font,trimTerminator,before)},trimToWidth:function(len,text,font,trimTerminator,before){if(text===''){return text}var textLen=pv.Text.measure(text,font).width;if(textLen<=len){return text}if(textLen>len*1.5){return pvc.text.trimToWidthBin(len,text,font,trimTerminator,before)}while(textLen>len){text=before?text.slice(1):text.slice(0,text.length-1);textLen=pv.Text.measure(text,font).width}return before?(trimTerminator+text):(text+trimTerminator)},trimToWidthBin:function(len,text,font,trimTerminator,before){var ilen=text.length,high=ilen-2,low=0,mid,textLen;while(low<=high&&high>0){mid=Math.ceil((low+high)/2);var textMid=before?text.slice(ilen-mid):text.slice(0,mid);textLen=pv.Text.measure(textMid,font).width;if(textLen>len){high=mid-1}else if(pv.Text.measure(before?text.slice(ilen-mid-1):text.slice(0,mid+1),font).width<len){low=mid+1}else{return before?(trimTerminator+textMid):(textMid+trimTerminator)}}return before?(trimTerminator+text.slice(ilen-high)):(text.slice(0,high)+trimTerminator)},justify:function(text,lineWidth,font){var lines=[];if(lineWidth<pv.Text.measure('a',font).width){return lines}var words=(text||'').split(/\s+/);var line="";while(words.length){var word=words.shift();if(word){var nextLine=line?(line+" "+word):word;if(pv.Text.measure(nextLine,font).width>lineWidth){if(line){lines.push(line)}line=word}else{line=nextLine}}}if(line){lines.push(line)}return lines},getLabelBBox:function(textWidth,textHeight,align,baseline,angle,margin){var polygon=pv.Label.getPolygon(textWidth,textHeight,align,baseline,angle,margin);var bbox=polygon.bbox();bbox.source=polygon;bbox.sourceAngle=angle;bbox.sourceAlign=align;bbox.sourceTextWidth=textWidth;return bbox}};
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvc.trends.js
... ... @@ -1 +0,0 @@
1   -def.space('pvc.trends',function(trends){var _trends={};def.set(trends,'define',function(type,trendSpec){type||def.fail.argumentRequired('type');trendSpec||def.fail.argumentRequired('trendSpec');def.object.is(trendSpec)||def.fail.argumentInvalid('trendSpec',"Must be a trend specification object.");if(pvc.debug>=2&&def.hasOwn(_trends,type)){pvc.log(def.format("[WARNING] A trend type with the name '{0}' is already defined.",[type]))}var label=trendSpec.label||def.fail.argumentRequired('trendSpec.label');var model=trendSpec.model||def.fail.argumentRequired('trendSpec.model');def.fun.is(model)||def.fail.argumentInvalid('trendSpec.mode',"Must be a function.");var trendInfo={dataPartAtom:{v:'trend',f:label},type:type,label:label,model:model};_trends[type]=trendInfo},'get',function(type){type||def.fail.argumentRequired('type');return def.getOwn(_trends,type)||def.fail.operationInvalid("Undefined trend type '{0}'.",[type])},'has',function(type){return def.hasOwn(_trends,type)},'types',function(){return def.ownKeys(_trends)});trends.define('linear',{label:'Linear trend',model:function(options){var rows=def.get(options,'rows');var funX=def.get(options,'x');var funY=def.get(options,'y');var i=0;var N=0;var sumX=0;var sumY=0;var sumXY=0;var sumXX=0;var parseNum=function(value){return value!=null?(+value):NaN};while(rows.next()){var row=rows.item;var x=funX?parseNum(funX(row)):i;if(!isNaN(x)){var y=parseNum(funY(row));if(!isNaN(y)){N++;sumX+=x;sumY+=y;sumXY+=x*y;sumXX+=x*x}}i++}var alpha,beta;if(N>=2){var avgX=sumX/N;var avgY=sumY/N;var avgXY=sumXY/N;var avgXX=sumXX/N;var den=(avgXX-avgX*avgX);if(den===0){beta=0}else{beta=(avgXY-(avgX*avgY))/den}alpha=avgY-beta*avgX;return{alpha:alpha,beta:beta,reset:def.noop,sample:function(x){return alpha+beta*(+x)}}}}});trends.define('moving-average',{label:'Moving average',model:function(options){var W=Math.max(+(def.get(options,'periods')||3),2);var sum=0;var avgValues=[];return{reset:function(){sum=0;avgValues.length=0},sample:function(x,y,i){var L=W;if(y!=null){avgValues.unshift(y);sum+=y;L=avgValues.length;if(L>W){sum-=avgValues.pop();L=W}}return sum/L}}}});trends.define('weighted-moving-average',{label:'Weighted Moving average',model:function(options){var W=Math.max(+(def.get(options,'periods')||3),2);var sum=0;var numer=0;var avgValues=[];var L=0;var denom=0;return{reset:function(){sum=numer=denom=L=0;avgValues.length=0},sample:function(x,y){if(y!=null){if(L<W){avgValues.push(y);L++;denom+=L;numer+=L*y;sum+=y}else{numer+=(L*y)-sum;sum+=y-avgValues[0];for(var j=1;j<W;j++){avgValues[j-1]=avgValues[j]}avgValues[W-1]=y}}return numer/denom}}}})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcAbstract.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.Abstract').init(function(){this._syncLog()}).add({invisibleLineWidth:0.001,defaultLineWidth:1.5,_logInstanceId:null,_syncLog:function(){if(pvc.debug&&typeof console!=="undefined"){var logId=this._getLogInstanceId();['log','info',['trace','debug'],'error','warn','group','groupEnd'].forEach(function(ps){ps=ps instanceof Array?ps:[ps,ps];pvc._installLog(this,'_'+ps[0],ps[1],logId)},this)}},_getLogInstanceId:function(){return this._logInstanceId||(this._logInstanceId=this._processLogInstanceId(this._createLogInstanceId()))},_createLogInstanceId:function(){return''+this.constructor},_processLogInstanceId:function(logInstanceId){var L=30;var s=logInstanceId.substr(0,L);if(s.length<L){s+=def.array.create(L-s.length,' ').join('')}return"["+s+"]"}});def.scope(function(){var o=pvc.Abstract.prototype;var syncLogHook=function(){this._syncLog()};['log','info','trace','error','warn','group','groupEnd'].forEach(function(p){o['_'+p]=syncLogHook})});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcAxisPanel.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.AxisPanel',pvc.BasePanel).init(function(chart,parent,axis,options){options=def.create(options,{anchor:axis.option('Position')});var anchor=options.anchor||this.anchor;this.axis=axis;this.base(chart,parent,options);this.roleName=axis.role.name;this.isDiscrete=axis.role.isDiscrete();this._extensionPrefix=axis.extensionPrefixes;if(this.labelSpacingMin==null){this.labelSpacingMin=this.isDiscrete?0.1:1.5}if(this.showTicks==null){this.showTicks=!this.isDiscrete}if(options.font===undefined){var extFont=this._getConstantExtension('label','font');if(extFont){this.font=extFont}}if(options.tickLength===undefined){var tickLength=+this._getConstantExtension('ticks',this.anchorOrthoLength(anchor));if(!isNaN(tickLength)&&isFinite(tickLength)){this.tickLength=tickLength}}}).add({pvRule:null,pvTicks:null,pvLabel:null,pvRuleGrid:null,pvScale:null,isDiscrete:false,roleName:null,axis:null,anchor:"bottom",tickLength:6,scale:null,ruleCrossesMargin:true,font:'9px sans-serif',labelSpacingMin:null,domainRoundMode:'none',desiredTickCount:null,tickExponentMin:null,tickExponentMax:null,showMinorTicks:true,showTicks:null,hiddenLabelText:"\u00B7",_isScaleSetup:false,_createLogInstanceId:function(){return this.base()+" - "+this.axis.id},getTicks:function(){return this._layoutInfo&&this._layoutInfo.ticks},_calcLayout:function(layoutInfo){var scale=this.axis.scale;if(!this._isScaleSetup){this.pvScale=scale;this.scale=scale;this.extend(scale,"scale");this._isScaleSetup=true}if(scale.isNull){layoutInfo.axisSize=0}else{this._calcLayoutCore(layoutInfo)}return this.createAnchoredSize(layoutInfo.axisSize,layoutInfo.clientSize)},_calcLayoutCore:function(layoutInfo){var axisSize=layoutInfo.desiredClientSize[this.anchorOrthoLength()];layoutInfo.axisSize=axisSize;if(this.isDiscrete&&this.useCompositeAxis){if(layoutInfo.axisSize==null){layoutInfo.axisSize=50}}else{layoutInfo.textAngle=def.number.as(this._getExtension('label','textAngle'),0);layoutInfo.textMargin=def.number.as(this._getExtension('label','textMargin'),3);this._calcTicks();if(this.scale.type==='discrete'){this._calcDiscreteTicksHidden()}this._calcAxisSizeFromLabel();if(layoutInfo.axisSize==null){layoutInfo.axisSize=layoutInfo.requiredAxisSize}this._calcMaxTextLengthThatFits();this._calcOverflowPaddings()}},_calcAxisSizeFromLabel:function(){this._calcLabelBBox();this._calcAxisSizeFromLabelBBox()},_calcLabelBBox:function(){var layoutInfo=this._layoutInfo;var align=this._getExtension('label','textAlign');if(typeof align!=='string'){align=this.isAnchorTopOrBottom()?"center":(this.anchor=="left")?"right":"left"}var baseline=this._getExtension('label','textBaseline');if(typeof baseline!=='string'){switch(this.anchor){case"right":case"left":case"center":baseline="middle";break;case"bottom":baseline="top";break;default:baseline="bottom"}}return(layoutInfo.labelBBox=pvc.text.getLabelBBox(layoutInfo.maxTextWidth!=null?layoutInfo.maxTextWidth:layoutInfo._maxTextWidth,layoutInfo.textHeight,align,baseline,layoutInfo.textAngle,layoutInfo.textMargin))},_calcAxisSizeFromLabelBBox:function(){var layoutInfo=this._layoutInfo;var labelBBox=layoutInfo.labelBBox;var length=this._getLabelBBoxQuadrantLength(labelBBox,this.anchor);var axisSize=this.tickLength+length;var angle=labelBBox.sourceAngle;if(!(angle===0&&this.isAnchorTopOrBottom())){axisSize+=this.tickLength}layoutInfo.requiredAxisSize=axisSize},_getLabelBBoxQuadrantLength:function(labelBBox,quadrantSide){var length;switch(quadrantSide){case'left':length=-labelBBox.x;break;case'right':length=labelBBox.x2;break;case'top':length=-labelBBox.y;break;case'bottom':length=labelBBox.y2;break}return Math.max(length,0)},_calcOverflowPaddings:function(){if(!this._layoutInfo.canChange){if(pvc.debug>=2){this._log("[WARNING] Layout cannot change. Skipping calculation of overflow paddings.")}return}if(!this._layoutInfo.labelBBox){this._calcLabelBBox()}this._calcOverflowPaddingsFromLabelBBox()},_calcOverflowPaddingsFromLabelBBox:function(){var overflowPaddings=null;var layoutInfo=this._layoutInfo;var ticks=layoutInfo.ticks;var tickCount=ticks.length;if(tickCount){var paddings=layoutInfo.paddings;var labelBBox=layoutInfo.labelBBox;var isTopOrBottom=this.isAnchorTopOrBottom();var begSide=isTopOrBottom?'left':'top';var endSide=isTopOrBottom?'right':'bottom';var isDiscrete=this.scale.type==='discrete';var clientLength=layoutInfo.clientSize[this.anchorLength()];this.axis.setScaleRange(clientLength);var sideTickOffset;if(isDiscrete){var halfBand=this.scale.range().step/2; sideTickOffset=def.set({},begSide,halfBand,endSide,halfBand)}else{sideTickOffset=def.set({},begSide,this.scale(ticks[0]),endSide,clientLength-this.scale(ticks[tickCount-1]))}[begSide,endSide].forEach(function(side){var overflowPadding=this._getLabelBBoxQuadrantLength(labelBBox,side);if(overflowPadding>0){overflowPadding-=(paddings[side]||0);if(overflowPadding>0){overflowPadding-=sideTickOffset[side];if(overflowPadding>1){if(isDiscrete){overflowPadding*=1.05}if(!overflowPaddings){overflowPaddings={}}overflowPaddings[side]=overflowPadding}}}},this);if(pvc.debug>=6&&overflowPaddings){this._log("OverflowPaddings = "+pvc.stringify(overflowPaddings))}}layoutInfo.overflowPaddings=overflowPaddings},_calcMaxTextLengthThatFits:function(){var layoutInfo=this._layoutInfo;if(this.compatVersion()<=1){layoutInfo.maxTextWidth=null;return}var availableClientLength=layoutInfo.clientSize[this.anchorOrthoLength()];var efSize=Math.min(layoutInfo.axisSize,availableClientLength);if(efSize>=(layoutInfo.requiredAxisSize-this.tickLength)){layoutInfo.maxTextWidth=null}else{var labelBBox=layoutInfo.labelBBox;var maxOrthoLength=efSize-2*this.tickLength;var mostOrthoDistantPoint;var parallelDirection;switch(this.anchor){case'left':parallelDirection=pv.vector(0,1);mostOrthoDistantPoint=pv.vector(-maxOrthoLength,0);break;case'right':parallelDirection=pv.vector(0,1);mostOrthoDistantPoint=pv.vector(maxOrthoLength,0);break;case'top':parallelDirection=pv.vector(1,0);mostOrthoDistantPoint=pv.vector(0,-maxOrthoLength);break;case'bottom':parallelDirection=pv.vector(1,0);mostOrthoDistantPoint=pv.vector(0,maxOrthoLength);break}var orthoOutwardsDir=mostOrthoDistantPoint.norm();var corners=labelBBox.source.points();var botL=corners[0];var botR=corners[1];var topR=corners[2];var topL=corners[3];var topLRSideDir=topR.minus(topL);var botLRSideDir=botR.minus(botL);var intersect=pv.SvgScene.lineIntersect;var botI=intersect(mostOrthoDistantPoint,parallelDirection,botL,botLRSideDir);var topI=intersect(mostOrthoDistantPoint,parallelDirection,topL,topLRSideDir);var sideLRWidth=labelBBox.sourceTextWidth;var maxTextWidth=sideLRWidth;var botLI=botI.minus(botL);var botLILen=botLI.length();if(botLILen<=sideLRWidth&&botLI.dot(topLRSideDir)>=0){if(botL.dot(orthoOutwardsDir)<botR.dot(orthoOutwardsDir)){maxTextWidth=botLILen}else{maxTextWidth=botI.minus(botR).length()}}var topLI=topI.minus(topL);var topLILen=topLI.length();if(topLILen<=sideLRWidth&&topLI.dot(topLRSideDir)>=0){if(topL.dot(orthoOutwardsDir)<topR.dot(orthoOutwardsDir)){maxTextWidth=Math.min(maxTextWidth,topLILen)}else{maxTextWidth=Math.min(maxTextWidth,topI.minus(topR).length())}}if(labelBBox.sourceAlign==='center'){var cutWidth=sideLRWidth-maxTextWidth;maxTextWidth-=cutWidth}layoutInfo.maxTextWidth=maxTextWidth;if(pvc.debug>=3){this._log("Trimming labels' text at length "+maxTextWidth.toFixed(2)+"px maxOrthoLength="+maxOrthoLength.toFixed(2)+"px")}}},_calcTicks:function(){var layoutInfo=this._layoutInfo;layoutInfo.textHeight=pv.Text.fontHeight(this.font);layoutInfo.maxTextWidth=null;this.axis.setTicks(null);switch(this.scale.type){case'discrete':this._calcDiscreteTicks();break;case'timeSeries':this._calcTimeSeriesTicks();break;case'numeric':this._calcNumberTicks(layoutInfo);break;default:throw def.error.operationInvalid("Undefined axis scale type")}this.axis.setTicks(layoutInfo.ticks);var clientLength=layoutInfo.clientSize[this.anchorLength()];this.axis.setScaleRange(clientLength);if(layoutInfo.maxTextWidth==null){layoutInfo.maxTextWidth=def.query(layoutInfo.ticksText).select(function(text){return pv.Text.measure(text,this.font).width},this).max()}layoutInfo._maxTextWidth=layoutInfo.maxTextWidth},_calcDiscreteTicks:function(){var layoutInfo=this._layoutInfo;var role=this.chart.visualRoles(this.roleName);var data=role.flatten(this.chart.data,{visible:true});layoutInfo.data=data;layoutInfo.ticks=data._children;var format,dimType;var grouping=role.grouping;if(grouping.isSingleDimension&&(dimType=grouping.firstDimensionType())&&(dimType.valueType===Date)){var extent=data.dimensions(dimType.name).extent();if(extent&&extent.min!==extent.max){var scale=new pv.Scale.linear(extent.min.value,extent.max.value);scale.ticks();var tickFormatter=this.axis.option('TickFormatter');if(tickFormatter){scale.tickFormatter(tickFormatter)}format=function(child){return scale.tickFormat(child.value)}}}if(!format){format=function(child){return child.absLabel}}layoutInfo.ticksText=data._children.map(format)},_calcTimeSeriesTicks:function(){this._calcContinuousTicks(this._layoutInfo)},_calcNumberTicks:function(){var desiredTickCount=this.desiredTickCount;if(desiredTickCount==null){if(this.isAnchorTopOrBottom()){this._calcNumberHTicks();return}desiredTickCount=this._calcNumberVDesiredTickCount()}this._calcContinuousTicks(this._layoutInfo,desiredTickCount)},_calcContinuousTicks:function(ticksInfo,desiredTickCount){this._calcContinuousTicksValue(ticksInfo,desiredTickCount);this._calcContinuousTicksText(ticksInfo)},_calcContinuousTicksValue:function(ticksInfo,desiredTickCount){ticksInfo.ticks=this.scale.ticks(desiredTickCount,{roundInside:this.domainRoundMode!=='tick',numberExponentMin:this.tickExponentMin,numberExponentMax:this.tickExponentMax});if(pvc.debug>4){this._log("DOMAIN: "+pvc.stringify(this.scale.domain()));this._log("TICKS: "+pvc.stringify(ticksInfo.ticks))}},_calcContinuousTicksText:function(ticksInfo){ticksInfo.ticksText=def.query(ticksInfo.ticks).select(function(tick){return this.scale.tickFormat(tick)},this).array()},_calcDiscreteTicksHidden:function(){return this._tickIncludeModulo=this._calcDiscreteTicksHiddenCore()},_calcDiscreteTicksHiddenCore:function(){var mode=this.axis.option('OverlappedLabelsMode');if(mode!=='hide'){return 1}var layoutInfo=this._layoutInfo;var ticks=layoutInfo.ticks;var tickCount=ticks.length;if(tickCount<=1){return 1}var b=this.scale.range().step;var h=layoutInfo.textHeight;var w=layoutInfo.maxTextWidth;if(!(w>0&&h>0&&b>0)){return 1}var sMin=h*this.labelSpacingMin;var a=layoutInfo.textAngle;var isTopOrBottom=this.isAnchorTopOrBottom();var sinOrCos=isTopOrBottom?'sin':'cos';var cosOrSin=!isTopOrBottom?'sin':'cos';var tickIncludeModulo=1;do{var bEf=tickIncludeModulo*b;var sBase=bEf*Math.abs(Math[sinOrCos](a))-h;var sOrtho=bEf*Math.abs(Math[cosOrSin](a))-w;if(sBase>=sMin||sOrtho>=sMin){break}tickIncludeModulo++}while(Math.ceil(tickCount/tickIncludeModulo)>1);if(tickIncludeModulo>1&&pvc.debug>=3){this._log("Showing only one in every "+tickIncludeModulo+" tick labels")}return tickIncludeModulo},_calcNumberVDesiredTickCount:function(){var layoutInfo=this._layoutInfo;var lineHeight=layoutInfo.textHeight*(1+Math.max(0,this.labelSpacingMin));var clientLength=layoutInfo.clientSize[this.anchorLength()];return Math.max(1,~~(clientLength/lineHeight))},_calcNumberHTicks:function(){var layoutInfo=this._layoutInfo;var clientLength=layoutInfo.clientSize[this.anchorLength()];var spacing=layoutInfo.textHeight*Math.max(0,this.labelSpacingMin);var desiredTickCount=this._calcNumberHDesiredTickCount(spacing);var doLog=(pvc.debug>=7);var dir,prevResultTickCount;var ticksInfo,lastBelow,lastAbove;do{if(doLog){this._log("calculateNumberHTicks TickCount IN desired = "+desiredTickCount)}ticksInfo={};this._calcContinuousTicksValue(ticksInfo,desiredTickCount);var ticks=ticksInfo.ticks;var resultTickCount=ticks.length;if(ticks.exponentOverflow){if(dir==null){if(ticks.exponent===this.exponentMin){lastBelow=ticksInfo;dir=1}else{lastAbove=ticksInfo;dir=-1}}else if(dir===1){if(lastBelow){ticksInfo=lastBelow}break}else{if(lastAbove){ticksInfo=lastAbove}break}}else if(prevResultTickCount==null||resultTickCount!==prevResultTickCount){if(doLog){this._log("calculateNumberHTicks TickCount desired/resulting = "+desiredTickCount+" -> "+resultTickCount)}prevResultTickCount=resultTickCount;this._calcContinuousTicksText(ticksInfo);var length=this._calcNumberHLength(ticksInfo,spacing);var excessLength=ticksInfo.excessLength=length-clientLength;var pctError=ticksInfo.error=Math.abs(excessLength/clientLength);if(doLog){this._log("calculateNumberHTicks error="+(excessLength>=0?"+":"-")+(ticksInfo.error*100).toFixed(0)+"% count="+resultTickCount+" step="+ticks.step);this._log("calculateNumberHTicks Length client/resulting = "+clientLength+" / "+length+" spacing = "+spacing)}if(excessLength>0){if(desiredTickCount===1){if(resultTickCount===3&&pctError<=1){ticksInfo.ticks.splice(1,1);ticksInfo.ticksText.splice(1,1);ticksInfo.ticks.step*=2}else{ticksInfo.ticks.length=1;ticksInfo.ticksText.length=1}delete ticksInfo.maxTextWidth;break}if(lastBelow){ticksInfo=lastBelow;break}lastAbove=ticksInfo;dir=-1}else{if(pctError<=0.05||dir===-1){break}lastBelow=ticksInfo;dir=+1}}desiredTickCount+=dir}while(true);if(ticksInfo){layoutInfo.ticks=ticksInfo.ticks;layoutInfo.ticksText=ticksInfo.ticksText;layoutInfo.maxTextWidth=ticksInfo.maxTextWidth;if(pvc.debug>=5){this._log("calculateNumberHTicks RESULT error="+(ticksInfo.excessLength>=0?"+":"-")+(ticksInfo.error*100).toFixed(0)+"% count="+ticksInfo.ticks.length+" step="+ticksInfo.ticks.step)}}if(doLog){this._log("calculateNumberHTicks END")}},_calcNumberHDesiredTickCount:function(spacing){var layoutInfo=this._layoutInfo;var domainTextLength=this.scale.domain().map(function(tick){tick=+tick.toFixed(2);var text=this.scale.tickFormat(tick);return pv.Text.measure(text,this.font).width},this);var avgTextLength=Math.max((domainTextLength[1]+domainTextLength[0])/2,layoutInfo.textHeight);var clientLength=layoutInfo.clientSize[this.anchorLength()];return Math.max(1,~~(clientLength/(avgTextLength+spacing)))},_calcNumberHLength:function(ticksInfo,spacing){var ticksText=ticksInfo.ticksText;var maxTextWidth=def.query(ticksText).select(function(text){return pv.Text.measure(text,this.font).width},this).max();return Math.max(maxTextWidth,(ticksText.length-1)*(maxTextWidth+spacing))},_createCore:function(){if(this.scale.isNull){return}var clientSize=this._layoutInfo.clientSize;var paddings=this._layoutInfo.paddings;var begin_a=this.anchorOrtho();var end_a=this.anchorOpposite(begin_a);var size_a=this.anchorOrthoLength(begin_a);var rMin=this.ruleCrossesMargin?-paddings[begin_a]:0;var rMax=clientSize[size_a]+(this.ruleCrossesMargin?paddings[end_a]:0);var rSize=rMax-rMin;var ruleParentPanel=this.pvPanel;this._rSize=rSize;var rootScene=this._getRootScene();this.pvRule=new pvc.visual.Rule(this,this.pvPanel,{extensionId:'rule'}).lock('data',[rootScene]).override('defaultColor',def.fun.constant("#666666")).lock(this.anchorOpposite(),0).lock(begin_a,rMin).lock(size_a,rSize).pvMark.zOrder(30).strokeDasharray(null).lineCap('square');if(this.isDiscrete){if(this.useCompositeAxis){this.renderCompositeOrdinalAxis()}else{this.renderOrdinalAxis()}}else{this.renderLinearAxis()}},_getExtensionId:function(){return''},_getRootScene:function(){if(!this._rootScene){var rootScene=this._rootScene=new pvc.visual.CartesianAxisRootScene(null,{panel:this,group:this._getRootData()});var layoutInfo=this._layoutInfo;var ticksText=layoutInfo.ticksText;if(this.isDiscrete){if(this.useCompositeAxis){this._buildCompositeScene(rootScene)}else{layoutInfo.ticks.forEach(function(tickData,index){new pvc.visual.CartesianAxisTickScene(rootScene,{group:tickData,tick:tickData.value,tickRaw:tickData.rawValue,tickLabel:ticksText[index]})})}}else{layoutInfo.ticks.forEach(function(majorTick,index){new pvc.visual.CartesianAxisTickScene(rootScene,{tick:majorTick,tickRaw:majorTick,tickLabel:ticksText[index]})},this)}}return this._rootScene},_buildCompositeScene:function(rootScene){var isV1Compat=this.compatVersion()<=1;rootScene.vars.tick=new pvc.visual.ValueLabelVar('',"");recursive(rootScene);function recursive(scene){var data=scene.group;if(isV1Compat){var tickVar=scene.vars.tick;scene.nodeValue=scene.value=tickVar.rawValue;scene.nodeLabel=scene.label=tickVar.label}if(data.childCount()){data.children().each(function(childData){var childScene=new pvc.visual.CartesianAxisTickScene(scene,{group:childData,tick:childData.value,tickRaw:childData.rawValue,tickLabel:childData.label});recursive(childScene)})}}},_getRootData:function(){var chart=this.chart;var data=chart.data;if(this.isDiscrete&&this.useCompositeAxis){var orientation=this.anchor;var reverse=orientation=='bottom'||orientation=='left';data=chart.visualRoles(this.roleName).select(data,{visible:true,reverse:reverse})}return data},_getOrthoScale:function(){var orthoType=this.axis.type==='base'?'ortho':'base';return this.chart.axes[orthoType].scale},_getOrthoAxis:function(){var orthoType=this.axis.type==='base'?'ortho':'base';return this.chart.axes[orthoType]},renderOrdinalAxis:function(){var myself=this,scale=this.scale,hiddenLabelText=this.hiddenLabelText,anchorOpposite=this.anchorOpposite(),anchorLength=this.anchorLength(),anchorOrtho=this.anchorOrtho(),anchorOrthoLength=this.anchorOrthoLength(),layoutInfo=this._layoutInfo,pvRule=this.pvRule,ticks=layoutInfo.ticks,data=layoutInfo.data,itemCount=layoutInfo.ticks.length,rootScene=this._getRootScene(),includeModulo=this._tickIncludeModulo,isV1Compat=this.compatVersion()<=1;rootScene.vars.tickIncludeModulo=includeModulo;rootScene.vars.hiddenLabelText=hiddenLabelText;var wrapper;if(isV1Compat){var DataElement=function(tickVar){this.value=this.absValue=tickVar.rawValue;this.nodeName=''+(this.value||'');this.path=this.nodeName?[this.nodeName]:[];this.label=this.absLabel=tickVar.label};DataElement.prototype.toString=function(){return''+this.value};wrapper=function(v1f){return function(tickScene){var markWrapped=Object.create(this);markWrapped.index=this.parent.index;return v1f.call(markWrapped,new DataElement(tickScene.vars.tick))}}}var pvTicksPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:'ticksPanel'}).lock('data',rootScene.childNodes).localProperty('hidden').lockMark('hidden',function(){return(this.index%includeModulo)!==0}).lock(anchorOpposite,0).lockMark(anchorOrtho,function(tickScene){return scale(tickScene.vars.tick.value)}).lock('strokeDasharray',null).lock('strokeStyle',null).lock('fillStyle',null).lock('lineWidth',0).pvMark.zOrder(20);if(isV1Compat||this.showTicks){var pvTicks=this.pvTicks=new pvc.visual.Rule(this,pvTicksPanel,{extensionId:'ticks',wrapper:wrapper}).lock('data').intercept('visible',function(){return!this.pvMark.parent.hidden()&&this.delegateExtension(true)}).optional('lineWidth',1).lock(anchorOpposite,0).lock(anchorOrtho,0).lock(anchorLength,null).optional(anchorOrthoLength,this.tickLength*2/3).override('defaultColor',function(type){if(isV1Compat){return pv.Color.names.transparent}return pvRule.scene?pvRule.scene[0].strokeStyle:"#666666"}).pvMark}var baseline;var align;switch(this.anchor){case'top':align='center';baseline='bottom';break;case'bottom':align='center';baseline='top';break;case'left':align='right';baseline='middle';break;case'right':align='left';baseline='middle';break}var font=this.font;var maxTextWidth=this._layoutInfo.maxTextWidth;if(!isFinite(maxTextWidth)){maxTextWidth=0}this.pvLabel=new pvc.visual.Label(this,pvTicksPanel,{extensionId:'label',noClick:false,noDoubleClick:false,noSelect:false,noTooltip:false,noHover:false,wrapper:wrapper,tooltipArgs:{buildTooltip:function(context){return context.scene.vars.tick.label},isLazy:false,options:{gravity:this._calcTipsyGravity()}}}).intercept('visible',function(tickScene){return!this.pvMark.parent.hidden()?this.delegateExtension(true):!!tickScene.vars.hiddenLabelText}).intercept('text',function(tickScene){var text;if(this.pvMark.parent.hidden()){text=tickScene.vars.hiddenLabelText}else{text=this.delegateExtension();if(text===undefined){text=tickScene.vars.tick.label}if(maxTextWidth){text=pvc.text.trimToWidthB(maxTextWidth,text,font,"..",false)}}return text}).pvMark.zOrder(40).lock(anchorOpposite,this.tickLength).lock(anchorOrtho,0).font(font).textStyle("#666666").textAlign(align).textBaseline(baseline);this._debugTicksPanel(pvTicksPanel)},_debugTicksPanel:function(pvTicksPanel){if(pvc.debug>=16){var corners=this._layoutInfo.labelBBox.source.points();if(corners.length>1){corners=corners.concat(corners[0])}pvTicksPanel.add(pv.Panel)[this.anchorOpposite()](this.tickLength)[this.anchorOrtho()](0)[this.anchorLength()](0)[this.anchorOrthoLength()](0).fillStyle(null).strokeStyle(null).lineWidth(0).add(pv.Line).visible(function(){var gp=this.parent.parent;return!gp.hidden||!gp.hidden()}).data(corners).left(function(p){return p.x}).top(function(p){return p.y}).strokeStyle('red').lineWidth(0.5).strokeDasharray('-')}},renderLinearAxis:function(){var scale=this.scale,orthoAxis=this._getOrthoAxis(),orthoScale=orthoAxis.scale,pvRule=this.pvRule,anchorOpposite=this.anchorOpposite(),anchorLength=this.anchorLength(),anchorOrtho=this.anchorOrtho(),anchorOrthoLength=this.anchorOrthoLength(),rootScene=this._getRootScene();var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(tickScene){var markWrapped=Object.create(this);markWrapped.index=this.parent.index;return v1f.call(markWrapped,tickScene.vars.tick.rawValue)}}}var pvTicksPanel=new pvc.visual.Panel(this,this.pvPanel,{extensionId:'ticksPanel'}).lock('data',rootScene.childNodes).lock(anchorOpposite,0).lockMark(anchorOrtho,function(tickScene){return scale(tickScene.vars.tick.value)}).lock('strokeStyle',null).lock('fillStyle',null).lock('lineWidth',0).pvMark.zOrder(20);if(this.showTicks){var pvTicks=this.pvTicks=new pvc.visual.Rule(this,pvTicksPanel,{extensionId:'ticks',wrapper:wrapper}).lock('data').override('defaultColor',function(){return pvRule.scene?pvRule.scene[0].strokeStyle:"#666666"}).lock(anchorOpposite,0).lock(anchorOrtho,0).lock(anchorLength,null).optional(anchorOrthoLength,this.tickLength).pvMark;if(this.showMinorTicks){var layoutInfo=this._layoutInfo;var ticks=layoutInfo.ticks;var tickCount=ticks.length;var minorTickOffset=tickCount>1?Math.abs(scale(ticks[1])-scale(ticks[0]))/2:0;this.pvMinorTicks=new pvc.visual.Rule(this,this.pvTicks,{extensionId:'minorTicks',wrapper:wrapper}).lock('data').intercept('visible',function(){var visible=(this.index<tickCount-1)&&(!pvTicks.scene||pvTicks.scene[0].visible);return visible&&this.delegateExtension(true)}).override('defaultColor',function(){return pvTicks.scene?pvTicks.scene[0].strokeStyle:pv.Color.names.d}).lock(anchorOpposite,0).lock(anchorLength,null).optional(anchorOrthoLength,this.tickLength/2).lockMark(anchorOrtho,minorTickOffset).pvMark}}this.renderLinearAxisLabel(pvTicksPanel,wrapper);this._debugTicksPanel(pvTicksPanel)},renderLinearAxisLabel:function(pvTicksPanel,wrapper){var pvTicks=this.pvTicks;var anchorOpposite=this.anchorOpposite();var anchorOrtho=this.anchorOrtho();var scale=this.scale;var font=this.font;posFixoY="";if(this.chart.options.posFixoY){posFixoY=this.chart.options.posFixoY}var maxTextWidth=this._layoutInfo.maxTextWidth;if(!isFinite(maxTextWidth)){maxTextWidth=0}var label=this.pvLabel=new pvc.visual.Label(this,pvTicksPanel,{extensionId:'label',wrapper:wrapper}).lock('data').pvMark.lock(anchorOpposite,this.tickLength).lock(anchorOrtho,0).zOrder(40).text(function(tickScene){var text=tickScene.vars.tick.label+posFixoY;if(maxTextWidth){text=pvc.text.trimToWidthB(maxTextWidth,text,font,'..',false)}return text}).font(this.font).textStyle("#666666");var rootPanel=this.pvPanel.root;if(this.isAnchorTopOrBottom()){label.textBaseline(anchorOpposite).textAlign(function(tickScene){var absLeft;if(this.index===0){absLeft=label.toScreenTransform().transformHPosition(label.left());if(absLeft<=0){return'left'}}else if(this.index===tickScene.parent.childNodes.length-1){absLeft=label.toScreenTransform().transformHPosition(label.left());if(absLeft>=rootPanel.width()){return'right'}}return'center'})}else{label.textAlign(anchorOpposite).textBaseline(function(tickScene){var absTop;if(this.index===0){absTop=label.toScreenTransform().transformVPosition(label.top());if(absTop>=rootPanel.height()){return'bottom'}}else if(this.index===tickScene.parent.childNodes.length-1){absTop=label.toScreenTransform().transformVPosition(label.top());if(absTop<=0){return'top'}}return'middle'})}},_onV1Click:function(context,handler){if(this.isDiscrete&&this.useCompositeAxis){handler.call(context.pvMark,context.scene,context.event)}},_onV1DoubleClick:function(context,handler){if(this.isDiscrete&&this.useCompositeAxis){handler.call(context.pvMark,context.scene,context.event)}},_getSelectableMarks:function(){if(this.isDiscrete&&this.isVisible&&this.pvLabel){return[this.pvLabel]}},renderCompositeOrdinalAxis:function(){var myself=this,isTopOrBottom=this.isAnchorTopOrBottom(),axisDirection=isTopOrBottom?'h':'v',diagDepthCutoff=2,vertDepthCutoff=2,font=this.font;var diagMargin=pv.Text.fontHeight(font)/2;var layout=this._pvLayout=this.getLayoutSingleCluster();layout.node.def("fitInfo",null).height(function(tickScene,e,f){var fitInfo=pvc.text.getFitInfo(tickScene.dx,tickScene.dy,tickScene.vars.tick.label,font,diagMargin);if(!fitInfo.h){if(axisDirection==='v'&&fitInfo.v){vertDepthCutoff=Math.min(diagDepthCutoff,tickScene.depth)}else{diagDepthCutoff=Math.min(diagDepthCutoff,tickScene.depth)}}this.fitInfo(fitInfo);return tickScene.dy});layout.node.add(pv.Bar).fillStyle('rgba(127,127,127,.001)').strokeStyle(function(tickScene){if(tickScene.maxDepth===1||!tickScene.maxDepth){return null}return"rgba(127,127,127,0.3)"}).lineWidth(function(tickScene){if(tickScene.maxDepth===1||!tickScene.maxDepth){return 0}return 0.5}).text(function(tickScene){return tickScene.vars.tick.label});var H_CUTOFF_ANG=0.30,V_CUTOFF_ANG=1.27;var align=isTopOrBottom?"center":(this.anchor=="left")?"right":"left";var wrapper;if(this.compatVersion()<=1){wrapper=function(v1f){return function(tickScene){return v1f.call(this,tickScene)}}}this.pvLabel=new pvc.visual.Label(this,layout.label,{extensionId:'label',noClick:false,noDoubleClick:false,noSelect:false,noTooltip:false,noHover:false,wrapper:wrapper,tooltipArgs:{isLazy:false,buildTooltip:function(context){return context.scene.vars.tick.label},options:{gravity:this._calcTipsyGravity(),offset:diagMargin*2}}}).pvMark.def('lblDirection','h').textAngle(function(tickScene){if(tickScene.depth>=vertDepthCutoff&&tickScene.depth<diagDepthCutoff){this.lblDirection('v');return-Math.PI/2}if(tickScene.depth>=diagDepthCutoff){var tan=tickScene.dy/tickScene.dx;var angle=Math.atan(tan);if(angle>V_CUTOFF_ANG){this.lblDirection('v');return-Math.PI/2}if(angle>H_CUTOFF_ANG){this.lblDirection('d');return-angle}}this.lblDirection('h');return 0}).textMargin(1).textAlign(function(tickScene){return(axisDirection!='v'||tickScene.depth>=vertDepthCutoff||tickScene.depth>=diagDepthCutoff)?'center':align}).left(function(tickScene){return(axisDirection!='v'||tickScene.depth>=vertDepthCutoff||tickScene.depth>=diagDepthCutoff)?tickScene.x+tickScene.dx/2:((align=='right')?tickScene.x+tickScene.dx:tickScene.x)}).font(font).textStyle("#666666").text(function(tickScene){var fitInfo=this.fitInfo();var label=tickScene.vars.tick.label;switch(this.lblDirection()){case'h':if(!fitInfo.h){return pvc.text.trimToWidth(tickScene.dx,label,font,'..')}break;case'v':if(!fitInfo.v){return pvc.text.trimToWidth(tickScene.dy,label,font,'..')}break;case'd':if(!fitInfo.d){var diagonalLength=Math.sqrt(tickScene.dy*tickScene.dy+tickScene.dx*tickScene.dx);return pvc.text.trimToWidth(diagonalLength-diagMargin,label,font,'..')}break}return label})},getLayoutSingleCluster:function(){var rootScene=this._getRootScene(),orientation=this.anchor,maxDepth=rootScene.group.treeHeight,depthLength=this._layoutInfo.axisSize;maxDepth++;var baseDisplacement=depthLength/maxDepth,margin=maxDepth>2?((1/12)*depthLength):0;baseDisplacement-=margin;var scaleFactor=maxDepth/(maxDepth-1),orthoLength=pvc.BasePanel.orthogonalLength[orientation];var displacement=(orthoLength=='width')?(orientation==='left'?[-baseDisplacement,0]:[baseDisplacement,0]):(orientation==='top'?[0,-baseDisplacement]:[0,baseDisplacement]);this.pvRule.sign.override('defaultColor',def.fun.constant(null)).override('defaultStrokeWidth',def.fun.constant(0));var panel=this.pvRule.add(pv.Panel)[orthoLength](depthLength).strokeStyle(null).lineWidth(0).add(pv.Panel)[orthoLength](depthLength*scaleFactor).strokeStyle(null).lineWidth(0);panel.transform(pv.Transform.identity.translate(displacement[0],displacement[1]));return panel.add(pv.Layout.Cluster.Fill).nodes(rootScene.nodes()).orient(orientation)},_calcTipsyGravity:function(){switch(this.anchor){case'bottom':return's';case'top':return'n';case'left':return'w';case'right':return'e'}return's'}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcAxisTitlePanel.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.AxisTitlePanel',pvc.TitlePanelAbstract).init(function(chart,parent,axis,options){this.axis=axis;this.base(chart,parent,options);this._extensionPrefix=axis.extensionPrefixes.map(function(prefix){return prefix+'Title'})}).add({_calcLayout:function(layoutInfo){var scale=this.axis.scale;if(!scale||scale.isNull){return new pvc.Size(0,0)}return this.base(layoutInfo)},_createCore:function(layoutInfo){var scale=this.axis.scale;if(!scale||scale.isNull){return}return this.base(layoutInfo)}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBarAbstract.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.BarAbstract',pvc.CategoricalAbstract).init(function(options){this.base(options);var parent=this.parent;if(parent){this._valueRole=parent._valueRole}}).add({_initVisualRoles:function(){this.base();this._addVisualRole('value',{isMeasure:true,isRequired:true,isPercent:this.options.stacked,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number,defaultDimension:'value'});this._valueRole=this.visualRoles('value')},_getCategoryRoleSpec:function(){var catRoleSpec=this.base();catRoleSpec.requireIsDiscrete=true;return catRoleSpec},_initData:function(){this.base.apply(this,arguments);var data=this.data;this._valueDim=data.dimensions(this._valueRole.firstDimensionName())}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBarAbstractPanel.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.BarAbstractPanel',pvc.CategoricalAbstractPanel).add({pvBar:null,pvBarLabel:null,pvCategoryPanel:null,pvSecondLine:null,pvSecondDot:null,_creating:function(){var groupScene=this.defaultVisibleBulletGroupScene();if(groupScene&&!groupScene.hasRenderer()){var colorAxis=groupScene.colorAxis;var drawLine=colorAxis.option('LegendDrawLine');var drawMarker=!drawLine||colorAxis.option('LegendDrawMarker');if(drawMarker){var keyArgs={drawMarker:true,markerShape:colorAxis.option('LegendShape'),drawRule:drawLine,markerPvProto:new pv.Mark()};this.extend(keyArgs.markerPvProto,'',{constOnly:true});groupScene.renderer(new pvc.visual.legend.BulletItemDefaultRenderer(keyArgs))}}},_createCore:function(){this.base();var me=this,chart=me.chart,plot=me.plot,isStacked=!!me.stacked,isVertical=me.isOrientationVertical(),data=me.visibleData(),seriesData=me.visualRoles.series.flatten(data),rootScene=me._buildScene(data,seriesData),orthoAxis=me.axes.ortho,baseAxis=me.axes.base,orthoScale=orthoAxis.scale,orthoZero=orthoScale(0),sceneOrthoScale=orthoAxis.sceneScale({sceneVarName:'value',nullToZero:false}),sceneBaseScale=baseAxis.sceneScale({sceneVarName:'category'}),barSizeRatio=plot.option('BarSizeRatio'),barSizeMax=plot.option('BarSizeMax'),barStackedMargin=plot.option('BarStackedMargin'),baseRange=baseAxis.scale.range(),bandWidth=baseRange.band,barStepWidth=baseRange.step,barWidth,reverseSeries=isVertical===isStacked;if(isStacked){barWidth=bandWidth}else{var S=seriesData.childCount();barWidth=S>0?(bandWidth*barSizeRatio/S):0}if(barWidth>barSizeMax){barWidth=barSizeMax}me.barWidth=barWidth;me.barStepWidth=barStepWidth;var wrapper;if(me.compatVersion()<=1){wrapper=function(v1f){return function(scene){var markParent=Object.create(this.parent);var mark=Object.create(this);mark.parent=markParent;var serIndex=scene.parent.childIndex();var catIndex=scene.childIndex();if(isStacked){markParent.index=serIndex;mark.index=catIndex}else{markParent.index=catIndex;mark.index=serIndex}return v1f.call(mark,scene.vars.value.rawValue)}}}me.pvBarPanel=new pvc.visual.Panel(me,me.pvPanel,{panelType:pv.Layout.Band,extensionId:'panel'}).lock('layers',rootScene.childNodes).lockMark('values',function(seriesScene){return seriesScene.childNodes}).lockMark('orient',isVertical?'bottom-left':'left-bottom').lockMark('layout',isStacked?'stacked':'grouped').lockMark('verticalMode',me._barVerticalMode()).lockMark('yZero',orthoZero).pvMark.band.x(sceneBaseScale).w(bandWidth).differentialControl(me._barDifferentialControl()).item.order(reverseSeries?"reverse":null).h(function(scene){var y=sceneOrthoScale(scene);return y!=null?chart.animate(0,y-orthoZero):null}).w(barWidth).horizontalRatio(barSizeRatio).verticalMargin(barStackedMargin).end;this.pvBar=new pvc.visual.Bar(me,me.pvBarPanel.item,{extensionId:'',freePosition:true,wrapper:wrapper}).lockDimensions().pvMark.antialias(false);if(plot.option('OverflowMarkersVisible')){this._addOverflowMarkers(wrapper)}if(me.valuesVisible){me.pvBarLabel=new pvc.visual.Label(me,me.pvBar.anchor(me.valuesAnchor||'center'),{extensionId:'label',wrapper:wrapper}).pvMark.visible(function(){var length=this.scene.target[this.index][isVertical?'height':'width'];return length>=4}).font(me.valuesFont).text(function(scene){return scene.format(me.valuesMask)})}},_barVerticalMode:function(){return null},_barDifferentialControl:function(){return null},_getV1Datum:function(scene){var datum=scene.datum;if(datum){var datumEx=Object.create(datum);datumEx.percent=scene.vars.value.percent;datum=datumEx}return datum},_addOverflowMarkers:function(wrapper){var orthoAxis=this.axes.ortho;if(orthoAxis.option('FixedMax')!=null){this.pvOverflowMarker=this._addOverflowMarker(false,orthoAxis.scale,wrapper)}if(orthoAxis.option('FixedMin')!=null){this.pvUnderflowMarker=this._addOverflowMarker(true,orthoAxis.scale,wrapper)}},_addOverflowMarker:function(isMin,orthoScale,wrapper){var isVertical=this.isOrientationVertical(),a_bottom=isVertical?"bottom":"left",a_top=this.anchorOpposite(a_bottom),a_height=this.anchorOrthoLength(a_bottom),a_width=this.anchorLength(a_bottom),paddings=this._layoutInfo.paddings,rOrthoBound=isMin?(orthoScale.min-paddings[a_bottom]):(orthoScale.max+paddings[a_top]),angle;if(!isMin){angle=isVertical?Math.PI:-Math.PI/2}else{angle=isVertical?0:Math.PI/2}return new pvc.visual.Dot(this,this.pvBar.anchor('center'),{noSelect:true,noHover:true,noClick:true,noDoubleClick:true,noTooltip:true,freePosition:true,extensionId:isMin?'underflowMarker':'overflowMarker',wrapper:wrapper}).intercept('visible',function(scene){var visible=this.delegateExtension();if(visible!==undefined&&!visible){return false}var value=scene.vars.value.value;if(value==null){return false}var targetInstance=this.pvMark.scene.target[this.index];var orthoMaxPos=targetInstance[a_bottom]+(value>0?targetInstance[a_height]:0);return isMin?(orthoMaxPos<rOrthoBound):(orthoMaxPos>rOrthoBound)}).lock(a_top,null).lock('shapeSize').pvMark.shape("triangle").shapeRadius(function(){return Math.min(Math.sqrt(10),this.scene.target[this.index][a_width]/2)}).shapeAngle(angle).lineWidth(1.5).strokeStyle("red").fillStyle("white")[a_bottom](function(){return rOrthoBound+(isMin?1:-1)*(this.shapeRadius()+2)})},renderInteractive:function(){this.pvPanel.render()},_getSelectableMarks:function(){return[this.pvBar]},_buildScene:function(data,seriesData){var rootScene=new pvc.visual.Scene(null,{panel:this,group:data});var categDatas=data._children;var roles=this.visualRoles;var valueVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.value,{hasPercentSubVar:this.stacked});var colorVarHelper=new pvc.visual.RoleVarHelper(rootScene,roles.color);seriesData.children().each(createSeriesScene);return rootScene;function createSeriesScene(seriesData1){var seriesScene=new pvc.visual.Scene(rootScene,{group:seriesData1}),seriesKey=seriesData1.key;seriesScene.vars.series=pvc.visual.ValueLabelVar.fromComplex(seriesData1);colorVarHelper.onNewScene(seriesScene,false);categDatas.forEach(function(categData1){var group=data._childrenByKey[categData1.key]._childrenByKey[seriesKey],scene=new pvc.visual.Scene(seriesScene,{group:group});var categVar=scene.vars.category=pvc.visual.ValueLabelVar.fromComplex(categData1);categVar.group=categData1;valueVarHelper.onNewScene(scene,true);colorVarHelper.onNewScene(scene,true)})}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBarChart.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.BarChart',pvc.BarAbstract).add({_animatable:true,_allowV1SecondAxis:true,_initPlotsCore:function(){var options=this.options;var barPlot=new pvc.visual.BarPlot(this);var trend=barPlot.option('Trend');if(options.plot2){var plot2Plot=new pvc.visual.PointPlot(this,{name:'plot2',fixed:{DataPart:'1'},defaults:{ColorAxis:2,LinesVisible:true,DotsVisible:true}});if(!trend){trend=plot2Plot.option('Trend')}}if(trend){new pvc.visual.PointPlot(this,{name:'trend',fixed:{DataPart:'trend',TrendType:'none',ColorRole:'series',NullInterpolatioMode:'none'},defaults:{ColorAxis:2,LinesVisible:true,DotsVisible:false}})}},_hasDataPartRole:function(){return true},_createPlotPanels:function(parentPanel,baseOptions){var plots=this.plots;var barPlot=plots.bar;var barPanel=new pvc.BarPanel(this,parentPanel,barPlot,Object.create(baseOptions));this.barChartPanel=barPanel;var plot2Plot=plots.plot2;if(plot2Plot){if(pvc.debug>=3){this._log("Creating Point panel.")}var pointPanel=new pvc.PointPanel(this,parentPanel,plot2Plot,Object.create(baseOptions));barPanel.pvSecondLine=pointPanel.pvLine;barPanel.pvSecondDot=pointPanel.pvDot;pointPanel._applyV1BarSecondExtensions=true}var trendPlot=plots.trend;if(trendPlot){if(pvc.debug>=3){this._log("Creating Trends Point panel.")}new pvc.PointPanel(this,parentPanel,trendPlot,Object.create(baseOptions))}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBarPanel.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.BarPanel',pvc.BarAbstractPanel).add({});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.axes.js
... ... @@ -1 +0,0 @@
1   -pvc.BaseChart.add({colors:null,axes:null,axesList:null,axesByType:null,_axisClassByType:{'color':pvc.visual.ColorAxis,'size':pvc.visual.SizeAxis,'base':pvc.visual.CartesianAxis,'ortho':pvc.visual.CartesianAxis},_axisCreateWhere:{'color':1,'size':2,'base':3,'ortho':3},_axisCreationOrder:['color','size','base','ortho'],_axisCreateIfUnbound:{},_initAxes:function(hasMultiRole){this.axes={};this.axesList=[];this.axesByType={};delete this._rolesColorScale;var dataCellsByAxisTypeThenIndex;if(!this.parent){dataCellsByAxisTypeThenIndex={};this.plotList.forEach(function(plot){this._collectPlotAxesDataCells(plot,dataCellsByAxisTypeThenIndex)},this);this._fixTrendsLabel(dataCellsByAxisTypeThenIndex)}else{dataCellsByAxisTypeThenIndex=this.root._dataCellsByAxisTypeThenIndex}this._dataCellsByAxisTypeThenIndex=dataCellsByAxisTypeThenIndex;var here=0;if(!this.parent){here|=1}if(this.parent||!hasMultiRole){here|=2}this._axisCreateHere=here;this._axisCreationOrder.forEach(function(type){if((this._axisCreateWhere[type]&here)!==0){var AxisClass;var dataCellsByAxisIndex=dataCellsByAxisTypeThenIndex[type];if(dataCellsByAxisIndex){AxisClass=this._axisClassByType[type];if(AxisClass){dataCellsByAxisIndex.forEach(function(dataCells,axisIndex){new AxisClass(this,type,axisIndex)},this)}}else if(this._axisCreateIfUnbound[type]){AxisClass=this._axisClassByType[type];if(AxisClass){new AxisClass(this,type,0)}}}},this);if(this.parent){this.root.axesList.forEach(function(axis){if(!def.hasOwn(this.axes,axis.id)){this._addAxis(axis)}},this)}},_fixTrendsLabel:function(dataCellsByAxisTypeThenIndex){var dataPartDimName=this._getDataPartDimName();if(dataPartDimName){var firstDataCell=def.query(def.ownKeys(dataCellsByAxisTypeThenIndex)).selectMany(function(axisType){return dataCellsByAxisTypeThenIndex[axisType]}).selectMany().first(function(dataCell){return!!dataCell.trend});if(firstDataCell){var trendInfo=pvc.trends.get(firstDataCell.trend.type);var dataPartAtom=trendInfo.dataPartAtom;var trendLabel=firstDataCell.trend.label;if(trendLabel===undefined){trendLabel=dataPartAtom.f}this._firstTrendAtomProto={v:dataPartAtom.v,f:trendLabel}}else{delete this._firstTrendAtomProto}}},_addAxis:function(axis){this.axes[axis.id]=axis;if(axis.chart===this){axis.axisIndex=this.axesList.length}this.axesList.push(axis);var typeAxes=def.array.lazy(this.axesByType,axis.type);var typeIndex=typeAxes.count||0;axis.typeIndex=typeIndex;typeAxes[axis.index]=axis;if(!typeIndex){typeAxes.first=axis}typeAxes.count=typeIndex+1;if(axis.type==='color'&&axis.isBound()){this._onColorAxisScaleSet(axis)}return this},_getAxis:function(type,index){var typeAxes=this.axesByType[type];if(typeAxes&&index!=null&&(+index>=0)){return typeAxes[index]}},_bindAxes:function(){var here=this._axisCreateHere;def.eachOwn(this._dataCellsByAxisTypeThenIndex,function(dataCellsByAxisIndex,type){if((this._axisCreateWhere[type]&here)!==0){dataCellsByAxisIndex.forEach(function(dataCells,index){var axisId=pvc.buildIndexedId(type,index);var axis=this.axes[axisId];if(!axis.isBound()){axis.bind(dataCells)}},this)}},this)},_setAxesScales:function(){if(!this.parent){var colorAxes=this.axesByType.color;if(colorAxes){colorAxes.forEach(function(axis){if(axis.isBound()){axis.calculateScale();this._onColorAxisScaleSet(axis)}},this)}}},_onColorAxisScaleSet:function(axis){switch(axis.index){case 0:this.colors=axis.scheme();break;case 1:if(this._allowV1SecondAxis){this.secondAxisColor=axis.scheme()}break}},_getRoleColorScale:function(roleName){return def.lazy(def.lazy(this,'_rolesColorScale'),roleName,this._createRoleColorScale,this)},_createRoleColorScale:function(roleName){var firstScale,scale;var valueToColorMap={};this.axesByType.color.forEach(function(axis){var axisRole=axis.role;var isRoleCompatible=(axisRole.name===roleName)||(axisRole.sourceRole&&axisRole.sourceRole.name===roleName);if(isRoleCompatible&&axis.scale&&(axis.index===0||axis.option.isSpecified('Colors')||axis.option.isSpecified('Map'))){scale=axis.scale;if(!firstScale){firstScale=scale}axis.domainValues.forEach(addDomainValue)}},this);function addDomainValue(value){var key=''+value;if(!def.hasOwnProp.call(valueToColorMap,key)){valueToColorMap[key]=scale(value)}}if(!firstScale){return pvc.createColorScheme()()}scale=function(value){var key=''+value;if(def.hasOwnProp.call(valueToColorMap,key)){return valueToColorMap[key]}var color=firstScale(value);valueToColorMap[key]=color;return color};def.copy(scale,firstScale);return scale},_onLaidOut:function(){}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.data.js
... ... @@ -1 +0,0 @@
1   -pvc.BaseChart.add({dataEngine:null,data:null,_partData:null,_visibleDataCache:null,resultset:[],metadata:[],_constructData:function(options){var parent=this.parent;if(parent){this.dataEngine=this.data=options.data||def.fail.argumentRequired('options.data')}},_checkNoDataI:function(){if(!this.parent){if(!this.allowNoData&&this.resultset.length===0){throw new NoDataException()}}},_checkNoDataII:function(){if(!this.parent){if(!this.allowNoData&&(!this.data||!this.data.count())){throw new NoDataException()}}},_initData:function(keyArgs){if(!this.parent){var data=this.data;if(!data||def.get(keyArgs,'reloadData',true)){this._onLoadData()}else{data.clearVirtuals();data.disposeChildren()}}delete this._partData;delete this._visibleDataCache;if(pvc.debug>=3){this._log(this.data.getInfo())}},_onLoadData:function(){var data=this.data;var options=this.options;var dataPartDimName=this._getDataPartDimName();var complexTypeProj=this._complexTypeProj;var translOptions=this._createTranslationOptions(dataPartDimName);var translation=this._createTranslation(translOptions);if(pvc.debug>=3){translation.logSource()}if(!data){translation.configureType();if(dataPartDimName&&!complexTypeProj.isReadOrCalc(dataPartDimName)){this._addDefaultDataPartCalculation(dataPartDimName)}}this._bindVisualRolesPostI();var complexType;if(!data){complexType=new pvc.data.ComplexType();complexTypeProj.configureComplexType(complexType,translOptions)}else{complexType=data.type}this._bindVisualRolesPostII(complexType);if(pvc.debug>=10){this._log(complexType.describe())}if(pvc.debug>=3){this._logVisualRoles()}if(!data){data=this.dataEngine=this.data=new pvc.data.Data({type:complexType,labelSep:options.groupedLabelSep})}var loadKeyArgs={where:this._getLoadFilter(),isNull:this._getIsNullDatum()};var resultQuery=translation.execute(data);data.load(resultQuery,loadKeyArgs)},_createComplexTypeProject:function(){var options=this.options;var complexTypeProj=new pvc.data.ComplexTypeProject(options.dimensionGroups);var userDimsSpec=options.dimensions;for(var dimName in userDimsSpec){complexTypeProj.setDim(dimName,userDimsSpec[dimName])}var dataPartDimName=this._getDataPartDimName();if(dataPartDimName){complexTypeProj.setDim(dataPartDimName);this._addPlot2SeriesDataPartCalculation(complexTypeProj,dataPartDimName)}var calcSpecs=options.calculations;if(calcSpecs){calcSpecs.forEach(function(calcSpec){complexTypeProj.setCalc(calcSpec)})}return complexTypeProj},_getLoadFilter:function(){if(this.options.ignoreNulls){var me=this;return function(datum){var isNull=datum.isNull;if(isNull&&pvc.debug>=4){me._info("Datum excluded.")}return!isNull}}},_getIsNullDatum:function(){var measureDimNames=this.measureDimensionsNames(),M=measureDimNames.length;if(M){return function(datum){var atoms=datum.atoms;for(var i=0;i<M;i++){if(atoms[measureDimNames[i]].value!=null){return false}}return true}}},_createTranslation:function(translOptions){var TranslationClass=this._getTranslationClass(translOptions);return new TranslationClass(this,this._complexTypeProj,this.resultset,this.metadata,translOptions)},_getTranslationClass:function(translOptions){return translOptions.crosstabMode?pvc.data.CrosstabTranslationOper:pvc.data.RelationalTranslationOper},_createTranslationOptions:function(dataPartDimName){var options=this.options;var dataOptions=options.dataOptions||{};var dataSeparator=options.dataSeparator;if(dataSeparator===undefined){dataSeparator=dataOptions.separator}var dataMeasuresInColumns=options.dataMeasuresInColumns;if(dataMeasuresInColumns===undefined){dataMeasuresInColumns=dataOptions.measuresInColumns}var dataCategoriesCount=options.dataCategoriesCount;if(dataCategoriesCount===undefined){dataCategoriesCount=dataOptions.categoriesCount}var plot2=options.plot2;var valueFormat=options.valueFormat,valueFormatter;if(valueFormat&&valueFormat!==this.defaults.valueFormat){valueFormatter=function(v){return v!=null?valueFormat(v):""}}var secondAxisIdx;if(plot2&&this._allowV1SecondAxis&&(this.compatVersion()<=1)){secondAxisIdx=pvc.parseDistinctIndexArray(options.secondAxisIdx)||-1}return{compatVersion:this.compatVersion(),plot2SeriesIndexes:secondAxisIdx,seriesInRows:options.seriesInRows,crosstabMode:options.crosstabMode,isMultiValued:options.isMultiValued,dataPartDimName:dataPartDimName,dimensionGroups:options.dimensionGroups,dimensions:options.dimensions,readers:options.readers,measuresIndexes:options.measuresIndexes,multiChartIndexes:options.multiChartIndexes,separator:dataSeparator,measuresInColumns:dataMeasuresInColumns,categoriesCount:dataCategoriesCount,measuresIndex:dataOptions.measuresIndex||dataOptions.measuresIdx,measuresCount:dataOptions.measuresCount||dataOptions.numMeasures,isCategoryTimeSeries:options.timeSeries,timeSeriesFormat:options.timeSeriesFormat,valueNumberFormatter:valueFormatter}},_addPlot2SeriesDataPartCalculation:function(complexTypeProj,dataPartDimName){if(this.compatVersion()<=1){return}var options=this.options;var serRole=this._serRole;var plot2Series=(serRole!=null)&&options.plot2&&options.plot2Series&&def.array.as(options.plot2Series);if(!plot2Series||!plot2Series.length){return}var inited=false;var plot2SeriesSet=def.query(plot2Series).uniqueIndex();var dimNames,dataPartDim,part1Atom,part2Atom;complexTypeProj.setCalc({names:dataPartDimName,calculation:function(datum,atoms){if(!inited){if(serRole.isBound()){dimNames=serRole.grouping.dimensionNames();dataPartDim=datum.owner.dimensions(dataPartDimName)}inited=true}if(dataPartDim){var seriesKey=pvc.data.Complex.values(datum,dimNames).join(',');atoms[dataPartDimName]=def.hasOwnProp.call(plot2SeriesSet,seriesKey)?(part2Atom||(part2Atom=dataPartDim.intern("1"))):(part1Atom||(part1Atom=dataPartDim.intern("0")))}}})},_addDefaultDataPartCalculation:function(dataPartDimName){var dataPartDim,part1Atom;this._complexTypeProj.setCalc({names:dataPartDimName,calculation:function(datum,atoms){if(!dataPartDim){dataPartDim=datum.owner.dimensions(dataPartDimName)}atoms[dataPartDimName]=part1Atom||(part1Atom=dataPartDim.intern("0"))}})},partData:function(dataPartValues){if(!this._partData){if(!this._dataPartRole||!this._dataPartRole.grouping){return this._partData=this.data}this._partData=this.data.flattenBy(this._dataPartRole)}if(!dataPartValues||!this._dataPartRole||!this._dataPartRole.grouping){return this._partData}var dataPartDimName=this._dataPartRole.firstDimensionName();if(def.array.is(dataPartValues)){if(dataPartValues.length>1){return this._partData.where([def.set({},dataPartDimName,dataPartValues)])}dataPartValues=dataPartValues[0]}var child=this._partData._childrenByKey[dataPartValues+''];if(!child){var dataPartCell={v:dataPartValues};if(dataPartValues==='trend'){var firstTrendAtom=this._firstTrendAtomProto;if(firstTrendAtom){dataPartCell.f=firstTrendAtom.f}}child=new pvc.data.Data({parent:this._partData,atoms:def.set({},dataPartDimName,dataPartCell),dimNames:[dataPartDimName],datums:[]})}return child},visibleData:function(dataPartValue,keyArgs){var ignoreNulls=def.get(keyArgs,'ignoreNulls',true);if(ignoreNulls&&this.options.ignoreNulls){ignoreNulls=false}keyArgs=keyArgs?Object.create(keyArgs):{};keyArgs.ignoreNulls=ignoreNulls;var key=ignoreNulls+'|'+dataPartValue,data=def.getOwn(this._visibleDataCache,key);if(!data){data=this._createVisibleData(dataPartValue,keyArgs);if(data){(this._visibleDataCache||(this._visibleDataCache={}))[key]=data}}return data},_createVisibleData:function(dataPartValue,keyArgs){var partData=this.partData(dataPartValue);if(!partData){return null}var ignoreNulls=def.get(keyArgs,'ignoreNulls');return this._serRole&&this._serRole.grouping?partData.flattenBy(this._serRole,{visible:true,isNull:ignoreNulls?false:null}):partData},_generateTrends:function(){if(this._dataPartRole){def.query(def.own(this.axes)).selectMany(function(axis){return axis.dataCells}).where(function(dataCell){return!!dataCell.trend}).distinct(function(dataCell){return dataCell.role.name+'|'+(dataCell.dataPartValue||'')}).each(this._generateTrendsDataCell,this)}},_interpolate:function(){def.query(def.own(this.axes)).selectMany(function(axis){return axis.dataCells}).where(function(dataCell){var nim=dataCell.nullInterpolationMode;return!!nim&&nim!=='none'}).distinct(function(dataCell){return dataCell.role.name+'|'+(dataCell.dataPartValue||'')}).each(this._interpolateDataCell,this)},_interpolateDataCell:function(dataCell){},_generateTrendsDataCell:function(dataCell){},setData:function(data,options){this.setResultset(data.resultset);this.setMetadata(data.metadata);$.extend(this.options,options);return this},setResultset:function(resultset){!this.parent||def.fail.operationInvalid("Can only set resultset on root chart.");this.resultset=resultset;if(!resultset.length){this._log("Warning: Resultset is empty")}return this},setMetadata:function(metadata){!this.parent||def.fail.operationInvalid("Can only set resultset on root chart.");this.metadata=metadata;if(!metadata.length){this._log("Warning: Metadata is empty")}return this}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.extension.js
... ... @@ -1 +0,0 @@
1   -pvc.BaseChart.add({_processExtensionPoints:function(){var components;if(!this.parent){var points=this.options.extensionPoints;components={};if(points){for(var p in points){var id,prop;var splitIndex=p.indexOf("_");if(splitIndex>0){id=p.substring(0,splitIndex);prop=p.substr(splitIndex+1);if(id&&prop){var component=def.getOwn(components,id)||(components[id]=new def.OrderedMap());component.add(prop,points[p])}}}}}else{components=this.parent._components}this._components=components},extend:function(mark,ids,keyArgs){if(def.array.is(ids)){ids.forEach(function(id){this._extendCore(mark,id,keyArgs)},this)}else{this._extendCore(mark,ids,keyArgs)}},_extendCore:function(mark,id,keyArgs){if(mark){var component=def.getOwn(this._components,id);if(component){if(mark.borderPanel){mark=mark.borderPanel}var logOut=pvc.debug>=3?[]:null;var constOnly=def.get(keyArgs,'constOnly',false);var wrap=mark.wrap;var keyArgs2={tag:pvc.extensionTag};var isRealMark=mark instanceof pv.Mark;component.forEach(function(v,m){if(mark.isLocked&&mark.isLocked(m)){if(logOut){logOut.push(m+": locked extension point!")}}else if(mark.isIntercepted&&mark.isIntercepted(m)){if(logOut){logOut.push(m+":"+pvc.stringify(v)+" (controlled)")}}else{if(logOut){logOut.push(m+": "+pvc.stringify(v))}if(v!=null){var type=typeof v;if(type==='object'){if(m==='svg'||m==='css'){var v2=mark.propertyValue(m);if(v2){v=def.copy(v2,v)}}}else if(isRealMark&&(wrap||constOnly)&&type==='function'){if(constOnly){return}if(m!=='add'){v=wrap.call(mark,v,m)}}}if(typeof mark[m]==="function"){if(m!='add'&&mark.intercept){mark.intercept(m,v,keyArgs2)}else{mark[m](v)}}else{mark[m]=v}}});if(logOut){if(logOut.length){this._log("Applying Extension Points for: '"+id+"'\n\t* "+logOut.join("\n\t* "))}else if(pvc.debug>=5){this._log("No Extension Points for: '"+id+"'")}}}}else if(pvc.debug>=4){this._log("Applying Extension Points for: '"+id+"' (target mark does not exist)")}},_getExtension:function(id,prop){var component;if(!def.array.is(id)){component=def.getOwn(this._components,id);if(component){return component.get(prop)}}else{var i=id.length-1,value;while(i>=0){component=def.getOwn(this._components,id[i--]);if(component&&(value=component.get(prop))!==undefined){return value}}}},_getConstantExtension:function(id,prop){var value=this._getExtension(id,prop);if(!def.fun.is(value)){return value}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.BaseChart',pvc.Abstract).init(function(options){var originalOptions=options;var parent=this.parent=def.get(options,'parent')||null;if(parent){options||def.fail.argumentRequired('options')}else{options=def.mixin.copy({},this.defaults,options)}this.options=options;if(parent){this.root=parent.root;this.smallColIndex=options.smallColIndex;this.smallRowIndex=options.smallRowIndex;this._tooltipEnabled=parent._tooltipEnabled;this._tooltipOptions=parent._tooltipOptions}else{this.root=this}this.base();if(pvc.debug>=3){this._info("NEW CHART\n"+pvc.logSeparator.replace(/-/g,'=')+"\n DebugLevel: "+pvc.debug)}if(pvc.debug>=3&&!parent&&originalOptions){this._info("OPTIONS:\n",originalOptions);if(pvc.debug>=5){this._trace(pvc.stringify(options,{ownOnly:false,funs:true}))}}if(parent){parent._addChild(this)}this._constructData(options);this._constructVisualRoles(options)}).add({_disposed:false,_animatable:false,parent:null,children:null,root:null,isPreRendered:false,_createVersion:0,renderCallback:undefined,multiChartPageCount:null,multiChartPageIndex:null,left:0,top:0,width:null,height:null,margins:null,paddings:null,_allowV1SecondAxis:false,compatVersion:function(options){return(options||this.options).compatVersion},_createLogInstanceId:function(){return""+this.constructor+this._createLogChildSuffix()},_createLogChildSuffix:function(){return this.parent?(" ("+(this.smallRowIndex+1)+","+(this.smallColIndex+1)+")"):""},_addChild:function(childChart){(childChart.parent===this)||def.assert("Not a child of this chart.");this.children.push(childChart)},_preRender:function(keyArgs){this._preRenderPhase1(keyArgs);this._preRenderPhase2(keyArgs)},_preRenderPhase1:function(keyArgs){this._createVersion++;this.isPreRendered=false;if(pvc.debug>=3){this._log("Prerendering")}this.children=[];if(!this.parent){pvc.removeTipsyLegends()}this._processOptions();this._checkNoDataI();if(!this.parent&&this._createVersion===1){this._initVisualRoles();this._bindVisualRolesPreI();this._complexTypeProj=this._createComplexTypeProject();this._bindVisualRolesPreII()}this._initData(keyArgs);this._checkNoDataII();var hasMultiRole=this._isRoleAssigned('multiChart');this._initPlots(hasMultiRole);this._initAxes(hasMultiRole);this._bindAxes(hasMultiRole);if(this.parent||!hasMultiRole){this._interpolate(hasMultiRole);this._generateTrends(hasMultiRole)}this._setAxesScales(hasMultiRole)},_preRenderPhase2:function(){var hasMultiRole=this._isRoleAssigned('multiChart');this._initChartPanels(hasMultiRole);this.isPreRendered=true},_setSmallLayout:function(keyArgs){if(keyArgs){var basePanel=this.basePanel;if(this._setProp('left',keyArgs)|this._setProp('top',keyArgs)){if(basePanel){def.set(basePanel.position,'left',this.left,'top',this.top)}}if(this._setProp('width',keyArgs)|this._setProp('height',keyArgs)){if(basePanel){basePanel.size=new pvc.Size(this.width,this.height)}}if(this._setProp('margins',keyArgs)&&basePanel){basePanel.margins=new pvc.Sides(this.margins)}if(this._setProp('paddings',keyArgs)&&basePanel){basePanel.paddings=new pvc.Sides(this.paddings)}}},_setProp:function(p,keyArgs){var v=keyArgs[p];if(v!=null){this[p]=v;return true}},_processOptions:function(){var options=this.options;if(parseInt(options.width,10)+"%"==options.width){try{var viewportwidth,viewportheight,wdiv,r,scr=null,inn=null,wNoScroll=0,wScroll=0;if(typeof window.innerWidth!='undefined'){viewportwidth=window.innerWidth,viewportheight=window.innerHeight}else if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientWidth!='undefined'&&document.documentElement.clientWidth!=0){viewportwidth=document.documentElement.clientWidth,viewportheight=document.documentElement.clientHeight}else{viewportwidth=document.getElementsByTagName('body')[0].clientWidth,viewportheight=document.getElementsByTagName('body')[0].clientHeight}scr=document.createElement('div');scr.style.position='absolute';scr.style.top='-1000px';scr.style.left='-1000px';scr.style.width='100px';scr.style.height='50px';scr.style.overflow='hidden';inn=document.createElement('div');inn.style.width='100%';inn.style.height='200px';scr.appendChild(inn);document.body.appendChild(scr);wNoScroll=inn.offsetWidth;scr.style.overflow='auto';wScroll=inn.offsetWidth;document.body.removeChild(document.body.lastChild);viewportwidth=viewportwidth-wNoScroll-wScroll;r=(parseInt(options.width,10)/100)*viewportwidth;options.width=parseInt(r,10)}catch(e){options.width=parseInt(options.width,10)}}if(!this.parent){this.width=options.width;this.height=options.height;this.margins=options.margins;this.paddings=options.paddings}if(this.compatVersion()<=1){options.plot2=this._allowV1SecondAxis&&!!options.secondAxis}this._processOptionsCore(options);this._processExtensionPoints();return options},_processOptionsCore:function(options){if(!this.parent){if(!$.support.svg||pv.renderer()==='batik'){options.animate=false}this._processTooltipOptions(options)}},_tooltipDefaults:{gravity:'s',delayIn:200,delayOut:80,offset:2,opacity:0.9,html:true,fade:true,useCorners:false,arrowVisible:true,followMouse:false,format:undefined},_processTooltipOptions:function(options){var isV1Compat=this.compatVersion()<=1;var tipOptions=options.tooltip;var tipEnabled=options.tooltipEnabled;if(tipEnabled==null){if(tipOptions){tipEnabled=tipOptions.enabled}if(tipEnabled==null){if(isV1Compat){tipEnabled=options.showTooltips}if(tipEnabled==null){tipEnabled=true}}}if(tipEnabled){if(!tipOptions){tipOptions={}}if(isV1Compat){this._importV1TooltipOptions(tipOptions,options)}def.eachOwn(this._tooltipDefaults,function(dv,p){var value=options['tooltip'+def.firstUpperCase(p)];if(value!==undefined){tipOptions[p]=value}else if(tipOptions[p]===undefined){tipOptions[p]=dv}})}else{tipOptions={}}this._tooltipEnabled=tipEnabled;this._tooltipOptions=tipOptions},_importV1TooltipOptions:function(tipOptions,options){var v1TipOptions=options.tipsySettings;if(v1TipOptions){this.extend(v1TipOptions,"tooltip");for(var p in v1TipOptions){if(tipOptions[p]===undefined){tipOptions[p]=v1TipOptions[p]}}if(tipOptions.html==null){tipOptions.html=false}}},render:function(bypassAnimation,recreate,reloadData){var hasError;if(pvc.debug>1){pvc.group("CCC RENDER")}this._suspendSelectionUpdate();try{this.useTextMeasureCache(function(){try{if(!this.isPreRendered||recreate){this._preRender({reloadData:reloadData})}else if(!this.parent&&this.isPreRendered){pvc.removeTipsyLegends()}this.basePanel.render({bypassAnimation:bypassAnimation,recreate:recreate})}catch(e){if(e instanceof NoDataException){if(pvc.debug>1){this._log("No data found.")}this._addErrorPanelMessage("No data found",true)}else{hasError=true;pvc.logError(e.message);if(pvc.debug>0){this._addErrorPanelMessage("Error: "+e.message,false)}}}})}finally{if(!hasError){this._resumeSelectionUpdate()}if(pvc.debug>1){pvc.groupEnd()}}return this},_addErrorPanelMessage:function(text,isNoData){var options=this.options,pvPanel=new pv.Panel().canvas(options.canvas).width(this.width).height(this.height),pvMsg=pvPanel.anchor("center").add(pv.Label).text(text);if(isNoData){this.extend(pvMsg,"noDataMessage")}pvPanel.render()},useTextMeasureCache:function(fun,ctx){var root=this.root;var textMeasureCache=root._textMeasureCache||(root._textMeasureCache=pv.Text.createCache());return pv.Text.usingCache(textMeasureCache,fun,ctx||this)},animate:function(start,end){return this.basePanel.animate(start,end)},isAnimatingStart:function(){return this.basePanel.isAnimatingStart()},isOrientationVertical:function(orientation){return(orientation||this.options.orientation)===pvc.orientation.vertical},isOrientationHorizontal:function(orientation){return(orientation||this.options.orientation)===pvc.orientation.horizontal},dispose:function(){if(!this._disposed){this._disposed=true}},defaults:{width:400,height:300,orientation:'vertical',ignoreNulls:true,crosstabMode:true,isMultiValued:false,seriesInRows:false,groupedLabelSep:undefined,animate:true,titlePosition:"top",titleAlign:"center",legend:false,legendPosition:"bottom",v1StyleTooltipFormat:function(s,c,v,datum){return s+", "+c+": "+this.chart.options.valueFormat(v)+(datum&&datum.percent?(" ("+datum.percent.label+")"):"")},valueFormat:def.scope(function(){var pvFormat=pv.Format.number().fractionDigits(0,2);return function(d){return pvFormat.format(d)}}),percentValueFormat:def.scope(function(){var pvFormat=pv.Format.number().fractionDigits(0,1);return function(d){return pvFormat.format(d*100)+"%"}}),clickable:false,doubleClickMaxDelay:300,hoverable:false,selectable:false,selectionMode:'rubberband',ctrlSelectMode:true,clearSelectionMode:'emptySpaceClick',compatVersion:Infinity}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.panels.js
... ... @@ -1 +0,0 @@
1   -pvc.BaseChart.add({basePanel:null,titlePanel:null,legendPanel:null,_multiChartPanel:null,_initChartPanels:function(hasMultiRole){this._initBasePanel();this._initTitlePanel();var legendPanel=this._initLegendPanel();if(!this.parent&&hasMultiRole){this._initMultiChartPanel();if(legendPanel){this._initLegendScenes(legendPanel)}}else{var options=this.options;if(legendPanel){this._initLegendScenes(legendPanel)}this._preRenderContent({margins:hasMultiRole?options.smallContentMargins:options.contentMargins,paddings:hasMultiRole?options.smallContentPaddings:options.contentPaddings,clickAction:options.clickAction,doubleClickAction:options.doubleClickAction})}},_preRenderContent:function(contentOptions){},_initBasePanel:function(){var options=this.options;var basePanelParent=this.parent&&this.parent._multiChartPanel;this.basePanel=new pvc.BasePanel(this,basePanelParent,{margins:this.margins,paddings:this.paddings,size:{width:this.width,height:this.height}})},_initTitlePanel:function(){var options=this.options;if(!def.empty(options.title)){var isRoot=!this.parent;this.titlePanel=new pvc.TitlePanel(this,this.basePanel,{title:options.title,font:options.titleFont,anchor:options.titlePosition,align:options.titleAlign,alignTo:options.titleAlignTo,offset:options.titleOffset,keepInBounds:options.titleKeepInBounds,margins:options.titleMargins,paddings:options.titlePaddings,titleSize:options.titleSize,titleSizeMax:options.titleSizeMax})}},_initLegendPanel:function(){var options=this.options;if(options.legend){var legend=new pvc.visual.Legend(this,'legend',0);this.legendPanel=new pvc.LegendPanel(this,this.basePanel,{anchor:legend.option('Position'),align:legend.option('Align'),alignTo:options.legendAlignTo,offset:options.legendOffset,keepInBounds:options.legendKeepInBounds,size:legend.option('Size'),sizeMax:legend.option('SizeMax'),margins:legend.option('Margins'),paddings:legend.option('Paddings'),font:legend.option('Font'),scenes:def.getPath(options,'legend.scenes'),textMargin:options.legendTextMargin,itemPadding:options.legendItemPadding,markerSize:options.legendMarkerSize});return this.legendPanel}},_getLegendBulletRootScene:function(){return this.legendPanel&&this.legendPanel._getBulletRootScene()},_initMultiChartPanel:function(){var basePanel=this.basePanel;var options=this.options;this._multiChartPanel=new pvc.MultiChartPanel(this,basePanel,{margins:options.contentMargins,paddings:options.contentPaddings});this._multiChartPanel.createSmallCharts();basePanel._children.unshift(basePanel._children.pop())},_coordinateSmallChartsLayout:function(scopesByType){},_initLegendScenes:function(legendPanel){var rootScene,dataPartDimName;var legendIndex=0;var colorAxes=this.axesByType.color;if(colorAxes){colorAxes.forEach(processAxis,this)}function processAxis(colorAxis){if(colorAxis.option('LegendVisible')){var dataCells=colorAxis&&colorAxis.dataCells;if(dataCells){dataCells.forEach(function(dataCell){if(dataCell.role.isDiscrete()){var domainData=dataCell.data;if(!rootScene){dataPartDimName=this._getDataPartDimName();rootScene=legendPanel._getBulletRootScene()}var dataPartAtom;var locked=colorAxis.option('LegendClickMode')==='toggleVisible'&&(dataPartAtom=domainData.atoms[dataPartDimName])&&dataPartAtom.value==='trend';var groupScene=rootScene.createGroup({group:domainData,colorAxis:colorAxis,clickMode:locked?'none':undefined,extensionPrefix:pvc.buildIndexedId('',legendIndex++)});dataCell.legendBulletGroupScene=groupScene;var partColorScale=colorAxis.scale;domainData.children().each(function(itemData){var itemScene=groupScene.createItem({group:itemData});itemScene.color=partColorScale(itemData.value)})}},this)}}}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.plots.js
... ... @@ -1 +0,0 @@
1   -pvc.BaseChart.add({_initPlots:function(hasMultiRole){this.plotPanelList=null;if(!this.parent){this.plots={};this.plotList=[];this.plotsByType={};this._initPlotsCore(hasMultiRole)}else{var root=this.root;this.plots=root.plots;this.plotList=root.plotList;this.plotsByType=root.plotsByType}},_initPlotsCore:function(){},_addPlot:function(plot){var plotsByType=this.plotsByType;var plots=this.plots;var plotType=plot.type;var plotIndex=plot.index;var plotName=plot.name;var plotId=plot.id;if(plotName&&def.hasOwn(plots,plotName)){throw def.error.operationInvalid("Plot name '{0}' already taken.",[plotName])}if(def.hasOwn(plots,plotId)){throw def.error.operationInvalid("Plot id '{0}' already taken.",[plotId])}var typePlots=def.array.lazy(plotsByType,plotType);if(def.hasOwn(typePlots,plotIndex)){throw def.error.operationInvalid("Plot index '{0}' of type '{1}' already taken.",[plotIndex,plotType])}plot.globalIndex=this.plotList.length;typePlots[plotIndex]=plot;this.plotList.push(plot);plots[plotId]=plot;if(plotName){plots[plotName]=plot}},_collectPlotAxesDataCells:function(plot,dataCellsByAxisTypeThenIndex){var colorRoleName=plot.option('ColorRole');if(colorRoleName){var colorRole=this.visualRoles(colorRoleName);if(colorRole.isBound()){var colorDataCellsByAxisIndex=def.array.lazy(dataCellsByAxisTypeThenIndex,'color');def.array.lazy(colorDataCellsByAxisIndex,plot.option('ColorAxis')-1).push({plot:plot,role:colorRole,dataPartValue:plot.option('DataPart')})}}},_addPlotPanel:function(plotPanel){def.lazy(this,'plotPanels')[plotPanel.plot.id]=plotPanel;def.array.lazy(this,'plotPanelList').push(plotPanel)},_createPlotPanels:function(){throw def.error.notImplemented()}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.selection.js
... ... @@ -1 +0,0 @@
1   -pvc.BaseChart.add({_updateSelectionSuspendCount:0,_lastSelectedDatums:null,clearSelections:function(){if(this.data.owner.clearSelected()){this.updateSelections()}return this},_updatingSelections:function(method,context){this._suspendSelectionUpdate();try{method.call(context||this)}finally{this._resumeSelectionUpdate()}},_suspendSelectionUpdate:function(){if(this===this.root){this._updateSelectionSuspendCount++}else{this.root._suspendSelectionUpdate()}},_resumeSelectionUpdate:function(){if(this===this.root){if(this._updateSelectionSuspendCount>0){if(!(--this._updateSelectionSuspendCount)){this.updateSelections()}}}else{this.root._resumeSelectionUpdate()}},updateSelections:function(keyArgs){if(this===this.root){if(this._inUpdateSelections){return this}if(this._updateSelectionSuspendCount){return this}var selectedChangedDatumMap=this._calcSelectedChangedDatums();if(!selectedChangedDatumMap){return}pvc.removeTipsyLegends();this._inUpdateSelections=true;try{var action=this.options.selectionChangedAction;if(action){var selectedDatums=this.data.selectedDatums();var selectedChangedDatums=selectedChangedDatumMap.values();action.call(this.basePanel._getContext(),selectedDatums,selectedChangedDatums)}if(def.get(keyArgs,'render',true)){this.useTextMeasureCache(function(){this.basePanel.renderInteractive()},this)}}finally{this._inUpdateSelections=false}}else{this.root.updateSelections()}return this},_calcSelectedChangedDatums:function(){var selectedChangedDatums;var nowSelectedDatums=this.data.selectedDatumMap();var lastSelectedDatums=this._lastSelectedDatums;if(!lastSelectedDatums){if(!nowSelectedDatums.count){return}selectedChangedDatums=nowSelectedDatums.clone()}else{selectedChangedDatums=lastSelectedDatums.symmetricDifference(nowSelectedDatums);if(!selectedChangedDatums.count){return}}this._lastSelectedDatums=nowSelectedDatums;var datums=this._lastSelectedDatums?this._lastSelectedDatums.values():[];return selectedChangedDatums},_onUserSelection:function(datums){if(!datums||!datums.length){return datums}if(this===this.root){var action=this.options.userSelectionAction;if(action){return action.call(null,datums)||datums}return datums}return this.root._onUserSelection(datums)},_isSelectable:function(){return this.options.selectable},_canSelectWithRubberband:function(){var options=this.options;return options.selectable&&options.selectionMode==='rubberband'},_canSelectWithClick:function(){return this._canSelectWithRubberband()},_canSelectWithFocusWindow:function(){var options=this.options;return options.selectable&&options.selectionMode==='focuswindow'}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBaseChart.visualRoles.js
... ... @@ -1 +0,0 @@
1   -pvc.BaseChart.add({_visualRoles:null,_visualRoleList:null,_serRole:null,_dataPartRole:null,_measureVisualRoles:null,_constructVisualRoles:function(){var parent=this.parent;if(parent){this._visualRoles=parent._visualRoles;this._visualRoleList=parent._visualRoleList;this._measureVisualRoles=parent._measureVisualRoles;if(parent._multiChartRole){this._multiChartRole=parent._multiChartRole}if(parent._serRole){this._serRole=parent._serRole}if(parent._colorRole){this._colorRole=parent._colorRole}if(parent._dataPartRole){this._dataPartRole=parent._dataPartRole}}else{this._visualRoles={};this._visualRoleList=[];this._measureVisualRoles=[]}},_hasDataPartRole:function(){return false},_getSeriesRoleSpec:function(){return null},_getColorRoleSpec:function(){return null},_addVisualRole:function(name,keyArgs){keyArgs=def.set(keyArgs,'index',this._visualRoleList.length);var visualRole=new pvc.visual.Role(name,keyArgs);this._visualRoleList.push(visualRole);this._visualRoles[name]=visualRole;if(visualRole.isMeasure){this._measureVisualRoles.push(visualRole)}return visualRole},_initVisualRoles:function(){this._multiChartRole=this._addVisualRole('multiChart',{defaultDimension:'multiChart*',requireIsDiscrete:true});if(this._hasDataPartRole()){this._dataPartRole=this._addVisualRole('dataPart',{defaultDimension:'dataPart',requireSingleDimension:true,requireIsDiscrete:true,dimensionDefaults:{isHidden:true,comparer:def.compare}})}var serRoleSpec=this._getSeriesRoleSpec();if(serRoleSpec){this._serRole=this._addVisualRole('series',serRoleSpec)}var colorRoleSpec=this._getColorRoleSpec();if(colorRoleSpec){this._colorRole=this._addVisualRole('color',colorRoleSpec)}},_bindVisualRolesPreI:function(){def.eachOwn(this._visualRoles,function(role){role.setIsReversed(false)});var sourcedRoles=[];var options=this.options;var roleOptions=options.visualRoles;this._visualRoleList.forEach(function(visualRole){var name=visualRole.name;var roleSpec=options[name+'Role'];if(roleSpec!==undefined){if(!roleOptions){roleOptions=options.visualRoles={}}if(roleOptions[name]===undefined){roleOptions[name]=roleSpec}}});var dimsBoundToSingleRole;if(roleOptions){dimsBoundToSingleRole={};var rolesWithOptions=def.query(def.keys(roleOptions)).select(function(name){return this._visualRoles[name]||def.fail.operationInvalid("Role '{0}' is not supported by the chart type.",[name])},this).array();rolesWithOptions.sort(function(a,b){return a.index-b.index});rolesWithOptions.forEach(function(visualRole){var name=visualRole.name;var roleSpec=roleOptions[name];var groupingSpec,sourceRoleName;if(def.object.is(roleSpec)){if(def.nullyTo(roleSpec.isReversed,false)){visualRole.setIsReversed(true)}sourceRoleName=roleSpec.from;if(sourceRoleName&&(sourceRoleName!==name)){var sourceRole=this._visualRoles[sourceRoleName]||def.fail.operationInvalid("Source role '{0}' is not supported by the chart type.",[sourceRoleName]);visualRole.setSourceRole(sourceRole);sourcedRoles.push(visualRole)}else{groupingSpec=roleSpec.dimensions}}else{groupingSpec=roleSpec}if(groupingSpec!==undefined){var grouping=pvc.data.GroupingSpec.parse(groupingSpec);visualRole.preBind(grouping);grouping.dimensions().each(function(groupDimSpec){if(def.hasOwn(dimsBoundToSingleRole,groupDimSpec.name)){delete dimsBoundToSingleRole[groupDimSpec.name]}else{dimsBoundToSingleRole[groupDimSpec.name]=visualRole}})}},this)}this._sourcedRoles=sourcedRoles;this._dimsBoundToSingleRole=dimsBoundToSingleRole},_bindVisualRolesPreII:function(){var dimsBoundToSingleRole=this._dimsBoundToSingleRole;if(dimsBoundToSingleRole){delete this._dimsBoundToSingleRole;def.eachOwn(dimsBoundToSingleRole,this._setRoleBoundDimensionDefaults,this)}var sourcedRoles=this._sourcedRoles;delete this._sourcedRoles;def.query(this._visualRoleList).where(function(role){return role.defaultSourceRoleName&&!role.sourceRole&&!role.isPreBound()}).each(function(role){var sourceRole=this._visualRoles[role.defaultSourceRoleName];if(sourceRole){role.setSourceRole(sourceRole);sourcedRoles.push(role)}},this);sourcedRoles.forEach(function(role){var sourceRole=role.sourceRole;if(sourceRole.isReversed){role.setIsReversed(!role.isReversed)}if(!role.defaultDimensionName&&sourceRole.isPreBound()){role.preBind(sourceRole.preBoundGrouping())}})},_setRoleBoundDimensionDefaults:function(role,dimName){this._complexTypeProj.setDimDefaults(dimName,role.dimensionDefaults)},_bindVisualRolesPostI:function(){var complexTypeProj=this._complexTypeProj;var boundDimTypes={};var unboundSourcedRoles=[];def.query(this._visualRoleList).where(function(role){return role.isPreBound()}).each(markPreBoundRoleDims,this);def.query(this._visualRoleList).where(function(role){return!role.isPreBound()}).each(autoBindUnboundRole,this);unboundSourcedRoles.forEach(tryPreBindSourcedRole,this);def.query(def.ownKeys(boundDimTypes)).where(function(dimName){return boundDimTypes[dimName].length===1}).each(function(dimName){var singleRole=boundDimTypes[dimName][0];this._setRoleBoundDimensionDefaults(singleRole,dimName)},this);function markDimBoundTo(dimName,role){def.array.lazy(boundDimTypes,dimName).push(role)}function dimIsDefined(dimName){return complexTypeProj.hasDim(dimName)}function preBindRoleTo(role,dimNames){if(def.array.is(dimNames)){dimNames.forEach(function(dimName){markDimBoundTo(dimName,role)})}else{markDimBoundTo(dimNames,role)}role.setSourceRole(null);role.preBind(pvc.data.GroupingSpec.parse(dimNames))}function preBindRoleToGroupDims(role,groupDimNames){if(groupDimNames.length){if(role.requireSingleDimension){preBindRoleTo(role,groupDimNames[0])}else{preBindRoleTo(role,groupDimNames)}}}function preBindRoleToNewDim(role,dimName){complexTypeProj.setDim(dimName,{isHidden:true});preBindRoleTo(role,dimName)}function roleIsUnbound(role){if(role.isRequired){throw def.error.operationInvalid("Chart type requires unassigned role '{0}'.",[role.name])}role.bind(null);role.setSourceRole(null)}function markPreBoundRoleDims(role){role.preBoundGrouping().dimensionNames().forEach(markDimBoundTo)}function autoBindUnboundRole(role){var name=role.name;var dimName=role.defaultDimensionName;if(!dimName){if(role.sourceRole){unboundSourcedRoles.push(role)}else{roleIsUnbound(role)}return}var match=dimName.match(/^(.*?)(\*)?$/)||def.fail.argumentInvalid('defaultDimensionName');var defaultName=match[1];var greedy=match[2];if(greedy){var groupDimNames=complexTypeProj.groupDimensionsNames(defaultName);if(groupDimNames){preBindRoleToGroupDims(role,groupDimNames);return}}else if(dimIsDefined(defaultName)){preBindRoleTo(role,defaultName);return}if(role.autoCreateDimension){preBindRoleToNewDim(role,defaultName);return}if(role.sourceRole){unboundSourcedRoles.push(role)}else{roleIsUnbound(role)}}function tryPreBindSourcedRole(role){var sourceRole=role.sourceRole;if(sourceRole.isPreBound()){role.preBind(sourceRole.preBoundGrouping())}else{roleIsUnbound(role)}}},_bindVisualRolesPostII:function(complexType){def.query(this._visualRoleList).where(function(role){return role.isPreBound()}).each(commitRolePreBinding,this);function commitRolePreBinding(role){role.postBind(complexType)}},_logVisualRoles:function(){var out=["VISUAL ROLES MAP SUMMARY",pvc.logSeparator," VisualRole <-- Dimensions",pvc.logSeparator];def.eachOwn(this._visualRoles,function(role,name){out.push(" "+name+def.array.create(18-name.length," ").join("")+(role.grouping?(" <-- "+role.grouping):''))});this._log(out.join("\n"))},visualRoles:function(roleName,keyArgs){if(roleName==null){return def.own(this._visualRoles)}var role=def.getOwn(this._visualRoles,roleName)||null;if(!role&&def.get(keyArgs,'assertExists',true)){throw def.error.argumentInvalid('roleName',"Undefined role name '{0}'.",[roleName])}return role},measureVisualRoles:function(){return this._measureVisualRoles},measureDimensionsNames:function(){return def.query(this._measureVisualRoles).select(function(visualRole){return visualRole.firstDimensionName()}).where(def.notNully).array()},_isRoleAssigned:function(roleName){return!!this._visualRoles[roleName].grouping},_getDataPartDimName:function(){var role=this._dataPartRole;if(role){if(role.isBound()){return role.firstDimensionName()}var preGrouping=role.preBoundGrouping();if(preGrouping){return preGrouping.firstDimensionName()}return role.defaultDimensionName}}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBasePanel.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.BasePanel',pvc.Abstract).init(function(chart,parent,options){this.chart=chart;this.base();this.axes={};if(options){if(options.scenes){this._sceneTypeExtensions=options.scenes;delete options.scenes}var axes=options.axes;if(axes){def.copy(this.axes,axes);delete options.axes}}$.extend(this,options);this.chart=chart;if(!this.axes.color){this.axes.color=chart.axes.color}this.position={};var margins=options&&options.margins;if(!parent&&margins===undefined){margins=3}this.margins=new pvc.Sides(margins);this.paddings=new pvc.Sides(options&&options.paddings);this.size=new pvc.Size(options&&options.size);this.sizeMax=new pvc.Size(options&&options.sizeMax);if(!parent){this.parent=null;this.root=this;this.topRoot=this;this.isRoot=true;this.isTopRoot=true;this.data=this.chart.data}else{this.parent=parent;this.isTopRoot=false;this.isRoot=(parent.chart!==chart);this.root=this.isRoot?this:parent.root;this.topRoot=parent.topRoot;this.data=parent.data;if(this.isRoot){this.position.left=chart.left;this.position.top=chart.top}parent._addChild(this)}if(this.isRoot){this.anchor=null;this.align=null;this.alignTo=null;this.offset=null}else{this.align=pvc.parseAlign(this.anchor,this.align);var alignTo=this.alignTo;var side=this.anchor;if(alignTo!=null&&alignTo!==''&&(side==='left'||side==='right')){if(alignTo!=='page-middle'){if(!isNaN(+alignTo.charAt(0))){alignTo=pvc.PercentValue.parse(alignTo)}else{alignTo=pvc.parseAlign(side,alignTo)}}}else{alignTo=this.align}this.alignTo=alignTo;this.offset=new pvc.Offset(this.offset)}if(this.borderWidth==null){var borderWidth;var extensionId=this._getExtensionId();if(extensionId){var strokeStyle=this._getExtension(extensionId,'strokeStyle');if(strokeStyle!=null){borderWidth=+this._getConstantExtension(extensionId,'lineWidth');if(isNaN(borderWidth)||!isFinite(borderWidth)){borderWidth=null}}}this.borderWidth=borderWidth==null?0:1.5}}).add({chart:null,parent:null,_children:null,type:pv.Panel,_extensionPrefix:'',height:null,width:null,borderWidth:null,anchor:"top",pvPanel:null,margins:null,paddings:null,isRoot:false,isTopRoot:false,root:null,topRoot:null,_layoutInfo:null,_signs:null,data:null,dataPartValue:null,_isAnimating:0,_isRubberBandSelecting:false,_ignoreClicks:0,_v1DimRoleName:{'series':'series','category':'category','value':'value'},_sceneTypeExtensions:null,clickAction:null,doubleClickAction:null,compatVersion:function(options){return this.chart.compatVersion(options)},_createLogInstanceId:function(){return""+this.constructor+this.chart._createLogChildSuffix()},defaultVisibleBulletGroupScene:function(){var colorAxis=this.axes.color;if(colorAxis&&colorAxis.option('LegendVisible')){var dataPartValue=this.dataPartValue;return def.query(colorAxis.dataCells).where(function(dataCell){return dataCell.dataPartValue===dataPartValue}).select(function(dataCell){return dataCell.legendBulletGroupScene}).first(def.truthy)}return null},_getLegendBulletRootScene:function(){return this.chart._getLegendBulletRootScene()},_addChild:function(child){child.parent===this||def.assert("Child has a != parent.");(this._children||(this._children=[])).push(child)},_addSign:function(sign){(this._signs||(this._signs=[])).push(sign)},visibleData:function(){return this.chart.visibleData(this.dataPartValue)},layout:function(availableSize,keyArgs){if(!this._layoutInfo||def.get(keyArgs,'force',false)){var referenceSize=def.get(keyArgs,'referenceSize');if(!referenceSize&&availableSize){referenceSize=def.copyOwn(availableSize)}var desiredSize=this.size.resolve(referenceSize);var sizeMax=this.sizeMax.resolve(referenceSize);if(!availableSize){if(desiredSize.width==null||desiredSize.height==null){throw def.error.operationInvalid("Panel layout without width or height set.")}availableSize=def.copyOwn(desiredSize)}if(!referenceSize&&availableSize){referenceSize=def.copyOwn(availableSize)}if(sizeMax.width!=null&&availableSize.width>sizeMax.width){availableSize.width=sizeMax.width}if(sizeMax.height!=null&&availableSize.height>sizeMax.height){availableSize.height=sizeMax.height}var halfBorder=this.borderWidth/2;var realMargins=(def.get(keyArgs,'margins')||this.margins).resolve(referenceSize);var realPaddings=(def.get(keyArgs,'paddings')||this.paddings).resolve(referenceSize);var margins=pvc.Sides.inflate(realMargins,halfBorder);var paddings=pvc.Sides.inflate(realPaddings,halfBorder);var spaceWidth=margins.width+paddings.width;var spaceHeight=margins.height+paddings.height;var availableClientSize=new pvc.Size(Math.max(availableSize.width-spaceWidth,0),Math.max(availableSize.height-spaceHeight,0));var desiredClientSize=def.copyOwn(desiredSize);if(desiredClientSize.width!=null){desiredClientSize.width=Math.max(desiredClientSize.width-spaceWidth,0)}if(desiredClientSize.height!=null){desiredClientSize.height=Math.max(desiredClientSize.height-spaceHeight,0)}var prevLayoutInfo=this._layoutInfo||null;var canChange=def.get(keyArgs,'canChange',true);var layoutInfo=this._layoutInfo={canChange:canChange,referenceSize:referenceSize,realMargins:realMargins,realPaddings:realPaddings,borderWidth:this.borderWidth,margins:margins,paddings:paddings,desiredClientSize:desiredClientSize,clientSize:availableClientSize,pageClientSize:prevLayoutInfo?prevLayoutInfo.pageClientSize:availableClientSize.clone(),previous:prevLayoutInfo};if(prevLayoutInfo){delete prevLayoutInfo.previous;delete prevLayoutInfo.pageClientSize}var clientSize=this._calcLayout(layoutInfo);var size;if(!clientSize){size=availableSize;clientSize=availableClientSize}else{layoutInfo.clientSize=clientSize;size={width:clientSize.width+spaceWidth,height:clientSize.height+spaceHeight}}this.isVisible=(clientSize.width>0&&clientSize.height>0);delete layoutInfo.desiredClientSize;this.width=size.width;this.height=size.height;if(!canChange&&prevLayoutInfo){delete layoutInfo.previous}if(pvc.debug>=5){this._log("Size = "+pvc.stringify(size));this._log("Margins = "+pvc.stringify(layoutInfo.margins));this._log("Paddings = "+pvc.stringify(layoutInfo.paddings));this._log("ClientSize = "+pvc.stringify(layoutInfo.clientSize))}this._onLaidOut()}},_onLaidOut:function(){if(this.isRoot){this.chart._onLaidOut()}},_calcLayout:function(layoutInfo){var clientSize;var me=this;var margins,remSize,useLog;if(me._children){var aolMap=pvc.BasePanel.orthogonalLength;var aoMap=pvc.BasePanel.relativeAnchor;var altMap=pvc.BasePanel.leftTopAnchor;var aofMap=pvc.Offset.namesSidesToOffset;var fillChildren=[];var sideChildren=[];me._children.forEach(function(child){var a=child.anchor;if(a){if(a==='fill'){fillChildren.push(child)}else{def.hasOwn(aoMap,a)||def.fail.operationInvalid("Unknown anchor value '{0}'",[a]);sideChildren.push(child)}}});useLog=pvc.debug>=5;clientSize=def.copyOwn(layoutInfo.clientSize);var childKeyArgs={force:true,referenceSize:clientSize};if(useLog){me._group("CCC DOCK LAYOUT clientSize = "+pvc.stringify(clientSize))}try{doMaxTimes(5,layoutCycle,me)}finally{if(useLog){me._groupEnd()}}}return clientSize;function doMaxTimes(maxTimes,fun,ctx){var index=0;while(maxTimes--){if(fun.call(ctx,maxTimes,index)===false){return true}index++}return false}function layoutCycle(remTimes,iteration){if(useLog){me._group("LayoutCycle #"+(iteration+1)+" (remaining: "+remTimes+")")}try{var canResize=(remTimes>0);margins=new pvc.Sides(0);remSize=def.copyOwn(clientSize);var child;var index=0;var count=sideChildren.length;while(index<count){child=sideChildren[index];if(useLog){me._group("SIDE Child #"+(index+1)+" at "+child.anchor)}try{if(layoutChild.call(this,child,canResize)){return true}}finally{if(useLog){me._groupEnd()}}index++}index=0;count=fillChildren.length;while(index<count){child=fillChildren[index];if(useLog){me._group("FILL Child #"+(index+1))}try{if(layoutChild.call(this,child,canResize)){return true}}finally{if(useLog){me._groupEnd()}}index++}return false}finally{if(useLog){me._groupEnd()}}}function layoutChild(child,canResize){var resized=false;var paddings;childKeyArgs.canChange=canResize;doMaxTimes(3,function(remTimes,iteration){if(useLog){me._group("Attempt #"+(iteration+1))}try{childKeyArgs.paddings=paddings;childKeyArgs.canChange=remTimes>0;child.layout(new pvc.Size(remSize),childKeyArgs);if(child.isVisible){resized=checkChildResize.call(this,child,canResize);if(resized){return false}var requestPaddings=child._layoutInfo.requestPaddings;if(checkPaddingsChanged(paddings,requestPaddings)){paddings=requestPaddings;if(remTimes>0){paddings=new pvc.Sides(paddings);if(useLog){this._log("Child requested paddings change: "+pvc.stringify(paddings))}return true}if(pvc.debug>=2){this._warn("Child requests paddings change but iterations limit has been reached.")}}positionChild.call(this,child);if(child.anchor!=='fill'){updateSide.call(this,child)}}return false}finally{if(useLog){me._groupEnd()}}},this);return resized}function checkPaddingsChanged(paddings,newPaddings){if(!newPaddings){return false}return def.query(pvc.Sides.names).each(function(side){var curPad=(paddings&&paddings[side])||0;var newPad=(newPaddings&&newPaddings[side])||0;if(Math.abs(newPad-curPad)>=0.1){return false}})}function checkChildResize(child,canResize){var resized=false;var addWidth=child.width-remSize.width;if(addWidth>0){if(pvc.debug>=3){this._log("Child added width = "+addWidth)}if(!canResize){if(pvc.debug>=2){this._warn("Child wanted more width, but layout iterations limit has been reached.")}}else{resized=true;remSize.width+=addWidth;clientSize.width+=addWidth}}var addHeight=child.height-remSize.height;if(addHeight>0){if(pvc.debug>=3){this._log("Child added height ="+addHeight)}if(!canResize){if(pvc.debug>=2){this._warn("Child wanted more height, but layout iterations limit has been reached.")}}else{resized=true;remSize.height+=addHeight;clientSize.height+=addHeight}}return resized}function positionChild(child){var side=child.anchor;var align=child.align;var alignTo=child.alignTo;var sidePos;if(side==='fill'){side='left';sidePos=margins.left+remSize.width/2-(child.width/2);align=alignTo='middle'}else{sidePos=margins[side]}var sideo,sideOPosChildOffset;switch(align){case'top':case'bottom':case'left':case'right':sideo=align;sideOPosChildOffset=0;break;case'center':case'middle':sideo=altMap[aoMap[side]];sideOPosChildOffset=-child[aolMap[sideo]]/2;break}var sideOPosParentOffset;var sideOTo;switch(alignTo){case'top':case'bottom':case'left':case'right':sideOTo=alignTo;sideOPosParentOffset=(sideOTo!==sideo)?remSize[aolMap[sideo]]:0;break;case'center':case'middle':sideOTo=altMap[aoMap[side]];sideOPosParentOffset=remSize[aolMap[sideo]]/2;break;case'page-center':case'page-middle':sideOTo=altMap[aoMap[side]];var lenProp=aolMap[sideo];var pageLen=Math.min(remSize[lenProp],layoutInfo.pageClientSize[lenProp]);sideOPosParentOffset=pageLen/2;break}var sideOPos=margins[sideOTo]+sideOPosParentOffset+sideOPosChildOffset;var resolvedOffset=child.offset.resolve(remSize);if(resolvedOffset){sidePos+=resolvedOffset[aofMap[side]]||0;sideOPos+=resolvedOffset[aofMap[sideo]]||0}if(child.keepInBounds){if(sidePos<0){sidePos=0}if(sideOPos<0){sideOPos=0}}child.setPosition(def.set({},side,sidePos,sideo,sideOPos))}function updateSide(child){var side=child.anchor;var sideol=aolMap[side];var olen=child[sideol];margins[side]+=olen;remSize[sideol]-=olen}},invalidateLayout:function(){this._layoutInfo=null;if(this._children){this._children.forEach(function(child){child.invalidateLayout()})}},_create:function(force){if(!this.pvPanel||force){this.pvPanel=null;delete this._signs;this.layout();if(!this.isVisible){return}if(this.isRoot){this._creating()}var margins=this._layoutInfo.margins;var paddings=this._layoutInfo.paddings;if(this.isTopRoot){this.pvRootPanel=this.pvPanel=new pv.Panel().canvas(this.chart.options.canvas);if(margins.width>0||margins.height>0){this.pvPanel.width(this.width).height(this.height);this.pvPanel=this.pvPanel.add(pv.Panel)}}else{this.pvPanel=this.parent.pvPanel.add(this.type)}var pvBorderPanel=this.pvPanel;var width=this.width-margins.width;var height=this.height-margins.height;pvBorderPanel.width(width).height(height);if(pvc.debug>=15&&(margins.width>0||margins.height>0)){(this.isTopRoot?this.pvRootPanel:this.parent.pvPanel).add(this.type).width(this.width).height(this.height).left(this.position.left!=null?this.position.left:null).right(this.position.right!=null?this.position.right:null).top(this.position.top!=null?this.position.top:null).bottom(this.position.bottom!=null?this.position.bottom:null).strokeStyle('orange').lineWidth(1).strokeDasharray('- .')}var hasPositions={};def.eachOwn(this.position,function(v,side){pvBorderPanel[side](v+margins[side]);hasPositions[this.anchorLength(side)]=true},this);if(!hasPositions.width){if(margins.left>0){pvBorderPanel.left(margins.left)}if(margins.right>0){pvBorderPanel.right(margins.right)}}if(!hasPositions.height){if(margins.top>0){pvBorderPanel.top(margins.top)}if(margins.bottom>0){pvBorderPanel.bottom(margins.bottom)}}if(paddings.width>0||paddings.height>0){this.pvPanel=pvBorderPanel.add(pv.Panel).width(width-paddings.width).height(height-paddings.height).left(paddings.left).top(paddings.top)}pvBorderPanel.borderPanel=pvBorderPanel;pvBorderPanel.paddingPanel=this.pvPanel;this.pvPanel.paddingPanel=this.pvPanel;this.pvPanel.borderPanel=pvBorderPanel;if(pvc.debug>=15){this.pvPanel.strokeStyle('lightgreen').lineWidth(1).strokeDasharray('- ');if(this.pvPanel!==pvBorderPanel){pvBorderPanel.strokeStyle('blue').lineWidth(1).strokeDasharray('. ')}}var extensionId=this._getExtensionId();new pvc.visual.Panel(this,null,{panel:pvBorderPanel,extensionId:extensionId});this._createCore(this._layoutInfo);if(this.isTopRoot&&pv.renderer()!=='batik'&&this.chart._canSelectWithRubberband()){this._initRubberBand()}this.applyExtensions()}},_creating:function(){if(this._children){this._children.forEach(function(child){child._creating()})}},_createCore:function(){if(this._children){this._children.forEach(function(child){child._create()})}},render:function(keyArgs){if(!this.isTopRoot){return this.topRoot.render(keyArgs)}this._create(def.get(keyArgs,'recreate',false));if(!this.isVisible){return}this._onRender();var options=this.chart.options;var pvPanel=this.pvRootPanel;var animate=this.chart._animatable&&options.animate;this._isAnimating=animate&&!def.get(keyArgs,'bypassAnimation',false)?1:0;try{pvPanel.render();if(this._isAnimating){this._isAnimating=2;var me=this;pvPanel.transition().duration(2000).ease("cubic-in-out").start(function(){me._isAnimating=0;me._onRenderEnd(true)})}else{this._onRenderEnd(false)}}finally{this._isAnimating=0}},_onRender:function(){var renderCallback=this.chart.options.renderCallback;if(renderCallback){if(this.compatVersion()<=1){renderCallback.call(this.chart)}else{var context=this._getContext();renderCallback.call(context,context.scene)}}},_onRenderEnd:function(animated){if(this._children){this._children.forEach(function(child){child._onRenderEnd(animated)})}},renderInteractive:function(){if(this.isVisible){var pvMarks=this._getSelectableMarks();if(pvMarks&&pvMarks.length){pvMarks.forEach(function(pvMark){pvMark.render()})}else if(!this._children){this.pvPanel.render();return}if(this._children){this._children.forEach(function(child){child.renderInteractive()})}}},_getSelectableMarks:function(){return null},animate:function(start,end){return(this.topRoot._isAnimating===1)?start:end},isAnimatingStart:function(){return(this.topRoot._isAnimating===1)},isAnimating:function(){return(this.topRoot._isAnimating>0)},setPosition:function(position){for(var side in position){if(def.hasOwn(pvc.Sides.namesSet,side)){var s=position[side];if(s===null){delete this.position[side]}else{s=+s;if(!isNaN(s)&&isFinite(s)){this.position[side]=s}}}}},createAnchoredSize:function(anchorLength,size){if(this.isAnchorTopOrBottom()){return new pvc.Size(size.width,Math.min(size.height,anchorLength))}return new pvc.Size(Math.min(size.width,anchorLength),size.height)},applyExtensions:function(){if(this._signs){this._signs.forEach(function(sign){sign.applyExtensions()})}},extend:function(mark,id,keyArgs){this.chart.extend(mark,this._makeExtensionAbsId(id),keyArgs)},extendAbs:function(mark,absId,keyArgs){this.chart.extend(mark,absId,keyArgs)},_extendSceneType:function(typeKey,type,names){var typeExts=def.get(this._sceneTypeExtensions,typeKey);if(typeExts){pvc.extendType(type,typeExts,names)}},_absBaseExtId:{abs:'base'},_absSmallBaseExtId:{abs:'smallBase'},_getExtensionId:function(){if(this.isRoot){return!this.chart.parent?this._absBaseExtId:this._absSmallBaseExtId}},_getExtensionPrefix:function(){return this._extensionPrefix},_makeExtensionAbsId:function(id){return pvc.makeExtensionAbsId(id,this._getExtensionPrefix())},_getExtension:function(id,prop){return this.chart._getExtension(this._makeExtensionAbsId(id),prop)},_getExtensionAbs:function(absId,prop){return this.chart._getExtension(absId,prop)},_getConstantExtension:function(id,prop){return this.chart._getConstantExtension(this._makeExtensionAbsId(id),prop)},getPvPanel:function(layer){var mainPvPanel=this.pvPanel;if(!layer){return mainPvPanel}if(!this.parent){throw def.error.operationInvalid("Layers are not possible in a root panel.")}if(!mainPvPanel){throw def.error.operationInvalid("Cannot access layer panels without having created the main panel.")}var pvPanel=null;if(!this._layers){this._layers={}}else{pvPanel=this._layers[layer]}if(!pvPanel){var pvParentPanel=this.parent.pvPanel;pvPanel=pvParentPanel.borderPanel.add(this.type).extend(mainPvPanel.borderPanel);var pvBorderPanel=pvPanel;if(mainPvPanel!==mainPvPanel.borderPanel){pvPanel=pvBorderPanel.add(pv.Panel).extend(mainPvPanel)}pvBorderPanel.borderPanel=pvBorderPanel;pvBorderPanel.paddingPanel=pvPanel;pvPanel.paddingPanel=pvPanel;pvPanel.borderPanel=pvBorderPanel;this.initLayerPanel(pvPanel,layer);this._layers[layer]=pvPanel}return pvPanel},initLayerPanel:function(){},_getV1DimName:function(v1Dim){var dimNames=this._v1DimName||(this._v1DimNameCache={});var dimName=dimNames[v1Dim];if(dimName==null){var role=this.chart.visualRoles(this._v1DimRoleName[v1Dim],{assertExists:false});dimName=role?role.firstDimensionName():'';dimNames[v1Dim]=dimName}return dimName},_getV1Datum:function(scene){return scene.datum},_createContext:function(mark,ev){return new pvc.visual.Context(this,mark,ev)},_getContext:function(mark,ev){var context=this._context;if(!context||context.isPinned){this._context=this._createContext(mark,ev)}else{visualContext_update.call(context,mark,ev)}return this._context},_isTooltipEnabled:function(){return!this.isRubberBandSelecting()&&!this.isAnimating()},_ensurePropEvents:function(pvMark){var events=pvMark.propertyValue('events',true);if(!events||events==='none'){pvMark.events('all')}},_addPropHoverable:function(pvMark){var panel=this;var onEvent;var offEvent;onEvent='mouseover';offEvent='mouseout';pvMark.event(onEvent,function(scene){if(!panel.isRubberBandSelecting()&&!panel.isAnimating()){scene.setActive(true);panel.renderInteractive()}}).event(offEvent,function(scene){if(!panel.isRubberBandSelecting()&&!panel.isAnimating()){if(scene.clearActive()){panel.renderInteractive()}}});this._ensurePropEvents(pvMark)},_addPropTooltip:function(pvMark,keyArgs){var chartTipOptions=this.chart._tooltipOptions;var tipOptions;var nowTipOptions=def.get(keyArgs,'options');if(nowTipOptions){tipOptions=def.create(chartTipOptions,nowTipOptions)}else{tipOptions=Object.create(chartTipOptions)}var buildTooltip=def.get(keyArgs,'buildTooltip')||this._getTooltipBuilder(tipOptions);if(!buildTooltip){return}tipOptions.isEnabled=this._isTooltipEnabled.bind(this);var tipsyEvent=def.get(keyArgs,'tipsyEvent');if(!tipsyEvent){tipsyEvent='mouseover'}var isLazy=def.get(keyArgs,'isLazy',true);pvMark.localProperty("tooltip").tooltip(this._createTooltipProp(pvMark,buildTooltip,isLazy)).title(function(){return''}).event(tipsyEvent,pv.Behavior.tipsy(tipOptions));this._ensurePropEvents(pvMark)},_getTooltipBuilder:function(tipOptions){var options=this.chart.options;var isV1Compat=this.compatVersion()<=1;var tooltipFormat=tipOptions.format;if(!tooltipFormat){if(!isV1Compat){return this._buildDataTooltip}tooltipFormat=options.v1StyleTooltipFormat;if(!tooltipFormat){return}}if(isV1Compat){return function(context){return tooltipFormat.call(context.panel,context.getV1Series(),context.getV1Category(),context.getV1Value()||'',context.getV1Datum())}}return function(context){return tooltipFormat.call(context,context.scene)}},_createTooltipProp:function(pvMark,buildTooltip,isLazy){var myself=this;if(!isLazy){return function(){var context=myself._getContext(pvMark,null);if(context.scene.isIntermediate){return null}return buildTooltip.call(myself,context)}}return function(){var context=myself._getContext(pvMark,null);if(context.scene.isIntermediate){return null}context.pin();var tooltip;return function(){if(tooltip==null){tooltip=buildTooltip.call(myself,context);context=null}return tooltip}}},_requirePointEvent:function(radius){if(!this.isTopRoot){return this.topRoot._requirePointEvent(radius)}if(!this._attachedPointEvent){this.pvPanel.events('all').event("mousemove",pv.Behavior.point(radius||20));this._attachedPointEvent=true}},_buildDataTooltip:function(context){var scene=context.scene;if(!scene.datum){return""}var group=scene.group;var isMultiDatumGroup=group&&group.count()>1;var firstDatum=scene.datum;if(!isMultiDatumGroup&&(!firstDatum||firstDatum.isNull)){return""}var data=this.data;var visibleKeyArgs={visible:true};var tooltip=[];if(firstDatum.isInterpolated){tooltip.push('<i>Interpolation</i>: '+def.html.escape(firstDatum.interpolation)+'<br/>')}else if(firstDatum.isTrend){tooltip.push('<i>Trend</i>: '+def.html.escape(firstDatum.trendType)+'<br/>')}var complexType=data.type;var playingPercentMap=context.panel.stacked===false?null:complexType.getPlayingPercentVisualRoleDimensionMap();var percentValueFormat=playingPercentMap?this.chart.options.percentValueFormat:null;var commonAtoms=isMultiDatumGroup?group.atoms:scene.datum.atoms;var commonAtomsKeys=complexType.sortDimensionNames(def.keys(commonAtoms));function addDim(escapedDimLabel,label){tooltip.push('<b>'+escapedDimLabel+"</b>: "+(def.html.escape(label)||" - ")+'<br/>')}function calcPercent(atom,dimName){var pct;if(group){pct=group.dimensions(dimName).percentOverParent(visibleKeyArgs)}else{pct=data.dimensions(dimName).percent(atom.value)}return percentValueFormat(pct)}var anyCommonAtom=false;commonAtomsKeys.forEach(function(dimName){var atom=commonAtoms[dimName];var dimType=atom.dimension.type;if(!dimType.isHidden){if(!isMultiDatumGroup||atom.value!=null){anyCommonAtom=true;var valueLabel=atom.label;if(playingPercentMap&&playingPercentMap.has(dimName)){valueLabel+=" ("+calcPercent(atom,dimName)+")"}addDim(def.html.escape(atom.dimension.type.label),valueLabel)}}},this);if(isMultiDatumGroup){if(anyCommonAtom){tooltip.push('<hr />')}tooltip.push("<b>#</b>: "+group._datums.length+'<br/>');complexType.sortDimensionNames(group.freeDimensionNames()).forEach(function(dimName){var dim=group.dimensions(dimName);if(!dim.type.isHidden){var dimLabel=def.html.escape(dim.type.label),valueLabel;if(dim.type.valueType===Number){valueLabel=dim.format(dim.sum(visibleKeyArgs));if(playingPercentMap&&playingPercentMap.has(dimName)){valueLabel+=" ("+calcPercent(null,dimName)+")"}dimLabel="&sum; "+dimLabel}else{valueLabel=dim.atoms(visibleKeyArgs).map(function(atom){return atom.label||"- "}).join(", ")}addDim(dimLabel,valueLabel)}})}return'<div style="text-align: left;">'+tooltip.join('\n')+'</div>'},_addPropClick:function(pvMark){var myself=this;function onClick(){var ev=arguments[arguments.length-1];return myself._handleClick(this,ev)}pvMark.cursor("pointer").event("click",onClick);this._ensurePropEvents(pvMark)},_addPropDoubleClick:function(pvMark){var myself=this;function onDoubleClick(){var ev=arguments[arguments.length-1];return myself._handleDoubleClick(this,ev)}pvMark.cursor("pointer").event("dblclick",onDoubleClick);this._ensurePropEvents(pvMark)},_isDoubleClickable:function(keyArgs){var options=keyArgs||this.chart.options;return options.clickable&&!!this.doubleClickAction},_handleDoubleClick:function(pvMark,ev){if(!this._isDoubleClickable()){return}this._ignoreClicks=2;var sign=pvMark.sign;if(!sign||sign.isDoubleClickable()){var context=this._getContext(pvMark,ev);this._onDoubleClick(context)}},_onDoubleClick:function(context){var handler=this.doubleClickAction;if(handler){if(this.compatVersion()<=1){this._onV1DoubleClick(context,handler)}else{handler.call(context,context.scene)}}},_onV1DoubleClick:function(context,handler){handler.call(context.pvMark,context.getV1Series(),context.getV1Category(),context.getV1Value(),context.event,context.getV1Datum())},_isClickable:function(){return this.chart.options.clickable&&!!this.clickAction},_shouldHandleClick:function(){return this.chart._canSelectWithClick()||this._isClickable()},_handleClick:function(pvMark,ev){if(!this._shouldHandleClick()){return}var options=this.chart.options,context;if(!this.doubleClickAction){context=this._getContext(pvMark,ev);this._handleClickCore(context)}else{var myself=this;context=this._createContext(pvMark,ev);window.setTimeout(function(){myself._handleClickCore.call(myself,context)},options.doubleClickMaxDelay||300)}},_handleClickCore:function(context){if(this._ignoreClicks){this._ignoreClicks--}else{var sign=context.sign;if(!sign||sign.isClickable()){this._onClick(context)}if((sign&&sign.isSelectable())||(!sign&&this.chart.options.selectable&&context.scene.datum)){this._onSelect(context)}}},_onClick:function(context){var handler=this.clickAction;if(handler){if(this.compatVersion()<=1){this._onV1Click(context,handler)}else{handler.call(context,context.scene)}}},_onV1Click:function(context,handler){handler.call(context.pvMark,context.getV1Series(),context.getV1Category(),context.getV1Value(),context.event,context.getV1Datum())},_onSelect:function(context){var datums=context.scene.datums().array();if(datums.length){var chart=this.chart;chart._updatingSelections(function(){datums=chart._onUserSelection(datums);if(datums&&datums.length){if(chart.options.ctrlSelectMode&&!context.event.ctrlKey){chart.data.replaceSelected(datums)}else{pvc.data.Data.toggleSelected(datums)}}},this)}},isRubberBandSelecting:function(){return this.topRoot._isRubberBandSelecting},_initRubberBand:function(){var myself=this,chart=this.chart,options=chart.options,data=chart.data;var dMin2=4;this._isRubberBandSelecting=false;var rubberPvParentPanel=this.pvRootPanel||this.pvPanel.paddingPanel,toScreen,rb;var selectBar=this.selectBar=new pvc.visual.Bar(this,rubberPvParentPanel,{extensionId:'rubberBand',normalStroke:true,noHover:true,noSelect:true,noClick:true,noDoubleClick:true,noTooltip:true}).override('defaultStrokeWidth',function(){return 1.5}).override('defaultColor',function(type){return type==='stroke'?'#86fe00':'rgba(203, 239, 163, 0.6)'}).override('interactiveColor',function(color){return color}).pvMark.lock('visible',function(){return!!rb}).lock('left',function(){return rb.x}).lock('right').lock('top',function(){return rb.y}).lock('bottom').lock('width',function(){return rb.dx}).lock('height',function(){return rb.dy}).lock('cursor').lock('events','none');if(!this._getExtensionAbs('base','fillStyle')){rubberPvParentPanel.fillStyle(pvc.invisibleFill)}rubberPvParentPanel.lock('events','all');var scene=new pvc.visual.Scene(null,{panel:this});scene.x=scene.y=scene.dx=scene.dy=0;var selectionEndedDate;rubberPvParentPanel.lock('data',[scene]).event('mousedown',pv.Behavior.select().autoRender(false)).event('select',function(){if(!rb){if(myself.isAnimating()){return}if(scene.dx*scene.dx+scene.dy*scene.dy<=dMin2){return}rb=new pv.Shape.Rect(scene.x,scene.y,scene.dx,scene.dy);myself._isRubberBandSelecting=true;if(!toScreen){toScreen=rubberPvParentPanel.toScreenTransform()}myself.rubberBand=rb.apply(toScreen)}else{rb=new pv.Shape.Rect(scene.x,scene.y,scene.dx,scene.dy)}selectBar.render()}).event('selectend',function(){if(rb){var ev=arguments[arguments.length-1];if(!toScreen){toScreen=rubberPvParentPanel.toScreenTransform()}var rbs=rb.apply(toScreen);rb=null;myself._isRubberBandSelecting=false;selectBar.render();try{myself._processRubberBand(rbs,ev,{allowAdditive:true})}finally{selectionEndedDate=new Date()}}});if(options.clearSelectionMode==='emptySpaceClick'){rubberPvParentPanel.event("click",function(){if(selectionEndedDate){var timeSpan=new Date()-selectionEndedDate;if(timeSpan<300){selectionEndedDate=null;return}}if(data.owner.clearSelected()){myself.chart.updateSelections()}})}},_processRubberBand:function(rb,ev,keyArgs){this.rubberBand=rb;try{this._onRubberBandSelectionEnd(ev,keyArgs)}finally{this.rubberBand=null}},_onRubberBandSelectionEnd:function(ev,keyArgs){if(pvc.debug>=10){this._log("rubberBand "+pvc.stringify(this.rubberBand))}keyArgs=Object.create(keyArgs||{});keyArgs.toggle=false;var datums=this._getDatumsOnRubberBand(ev,keyArgs);if(datums){var allowAdditive=def.get(keyArgs,'allowAdditive',true);var chart=this.chart;chart._updatingSelections(function(){var clearBefore=!allowAdditive||(!ev.ctrlKey&&chart.options.ctrlSelectMode);if(clearBefore){chart.data.owner.clearSelected();pvc.data.Data.setSelected(datums,true)}else if(keyArgs.toggle){pvc.data.Data.toggleSelected(datums)}else{pvc.data.Data.setSelected(datums,true)}})}},_getDatumsOnRubberBand:function(ev,keyArgs){var datumMap=new def.Map();this._getDatumsOnRect(datumMap,this.rubberBand,keyArgs);var datums=datumMap.values();if(datums.length){datums=this.chart._onUserSelection(datums);if(datums&&!datums.length){datums=null}}return datums},_getDatumsOnRect:function(datumMap,rect,keyArgs){this._getOwnDatumsOnRect(datumMap,rect,keyArgs);if(this._children){this._children.forEach(function(child){child._getDatumsOnRect(datumMap,rect,keyArgs)},this)}},_getOwnDatumsOnRect:function(datumMap,rect,keyArgs){var any=false;if(this.isVisible){var pvMarks=this._getSelectableMarks();if(pvMarks&&pvMarks.length){pvMarks.forEach(function(pvMark){this._eachMarkDatumOnRect(pvMark,rect,function(datum){datumMap.set(datum.id,datum);any=true},this,def.get(keyArgs,'markSelectionMode'))},this)}}return any},_eachMarkDatumOnRect:function(pvMark,rect,fun,ctx,selectionMode){var sign=pvMark.sign;if(sign&&!sign.isSelectable()){return}if(selectionMode==null){selectionMode=def.get(pvMark,'rubberBandSelectionMode','partial')}var useCenter=(selectionMode==='center');pvMark.eachInstanceWithData(function(scenes,index,toScreen){var shape=pvMark.getShape(scenes,index);shape=(useCenter?shape.center():shape).apply(toScreen);processShape.call(this,shape,scenes[index],index)},this);function processShape(shape,instance,index){if(shape.intersectsRect(rect)){var cccScene=instance.data;if(cccScene&&cccScene.datum){var group=cccScene.group;var datums=group?group._datums:def.array.as(cccScene.datum);if(datums){datums.forEach(function(datum){if(!datum.isNull){if(pvc.debug>=20){this._log("Rubbered Datum.key="+datum.key+": "+pvc.stringify(shape)+" mark type: "+pvMark.type+" index="+index)}fun.call(ctx,datum)}},this)}}}}},isAnchorTopOrBottom:function(anchor){if(!anchor){anchor=this.anchor}return anchor==="top"||anchor==="bottom"},anchorOrtho:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.relativeAnchor[anchor]},anchorOrthoMirror:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.relativeAnchorMirror[anchor]},anchorOpposite:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.oppositeAnchor[anchor]},anchorLength:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.parallelLength[anchor]},anchorOrthoLength:function(anchor){if(!anchor){anchor=this.anchor}return pvc.BasePanel.orthogonalLength[anchor]},isOrientationVertical:function(orientation){return this.chart.isOrientationVertical(orientation)},isOrientationHorizontal:function(orientation){return this.chart.isOrientationHorizontal(orientation)}}).addStatic({relativeAnchor:{top:"left",bottom:"left",left:"bottom",right:"bottom"},leftBottomAnchor:{top:"bottom",bottom:"bottom",left:"left",right:"left"},leftTopAnchor:{top:"top",bottom:"top",left:"left",right:"left"},horizontalAlign:{top:"right",bottom:"left",middle:"center",right:"right",left:"left",center:"center"},verticalAlign:{top:"top",bottom:"bottom",middle:"middle",right:"bottom",left:"top",center:"middle"},verticalAlign2:{top:"top",bottom:"bottom",middle:"middle",right:"top",left:"bottom",center:"middle"},relativeAnchorMirror:{top:"right",bottom:"right",left:"top",right:"top"},oppositeAnchor:{top:"bottom",bottom:"top",left:"right",right:"left"},parallelLength:{top:"width",bottom:"width",right:"height",left:"height"},orthogonalLength:{top:"height",bottom:"height",right:"width",left:"width"},oppositeLength:{width:"height",height:"width"}});
2 0 \ No newline at end of file
pacotes/ccc2/compacto/pvcBoxplotChart.js
... ... @@ -1 +0,0 @@
1   -def.type('pvc.BoxplotChart',pvc.CategoricalAbstract).add({_processOptionsCore:function(options){this.base.apply(this,arguments);options.stacked=false},_initVisualRoles:function(){this.base();var roleSpecBase={isMeasure:true,requireSingleDimension:true,requireIsDiscrete:false,valueType:Number};[{name:'median',label:'Median',defaultDimension:'median',isRequired:true},{name:'lowerQuartil',label:'Lower Quartil',defaultDimension:'lowerQuartil'},{name:'upperQuartil',label:'Upper Quartil',defaultDimension:'upperQuartil'},{name:'minimum',label:'Minimum',defaultDimension:'minimum'},{name:'maximum',label:'Maximum',defaultDimension:'maximum'}].forEach(function(info){this._addVisualRole(info.name,def.create(roleSpecBase,info))},this)},_getTranslationClass:function(translOptions){return def.type(this.base(translOptions)).add(pvc.data.BoxplotChartTranslationOper)},_initPlotsCore:function(){new pvc.visual.BoxPlot(this);if(this.options.plot2){this._animatable=true;new pvc.visual.PointPlot(this,{name:'plot2',defaults:{LinesVisible:true,DotsVisible:true,OrthoRole:'median',ColorAxis:2},fixed:{OrthoAxis:1}})}},_bindAxes:function(hasMultiRole){this.base(hasMultiRole);var typeAxes=this.axesByType.ortho;if(typeAxes){typeAxes.forEach(function(axis){axis.option.defaults({Offset:0.02})})}},_createPlotPanels:function(parentPanel,baseOptions){var plots=this.plots;var boxPlot=plots.box;var boxPanel=new pvc.BoxplotPanel(this,parentPanel,boxPlot,Object.create(baseOptions));this.bpChartPanel=boxPanel;var plot2Plot=plots.plot2;if(plot2Plot){if(pvc.debug>=3){this._log("Creating Point panel.")}var pointPanel=new pvc.PointPanel(this,parentPanel,plot2Plot,Object.create(baseOptions));pointPanel._v1DimRoleName.value=plot2Plot.option('OrthoRole')}},defaults:{crosstabMode:false}}).addStatic({measureRolesNames:['median','lowerQuartil','upperQuartil','minimum','maximum']});
2 0 \ No newline at end of file