-
Notifications
You must be signed in to change notification settings - Fork 3
/
jenscript-symbol.min.js
8 lines (5 loc) · 47.4 KB
/
jenscript-symbol.min.js
1
2
3
4
5
6
7
8
// JenScript - 1.3.2 2017-06-10
// http://jenscript.io - Copyright 2017 Sébastien Janaud. All Rights reserved
!function(){JenScript.SymbolFiller={createGlue:function(){try{var a=new JenScript.SymbolComponent({});return a.setName("SymbolComponent.Glue"),a.setFillerType("Glue"),a.setOpaque(!1),a.setFiller(!0),a}catch(b){console.log("error : "+b)}return void 0},createStrut:function(a){try{var b=new JenScript.SymbolComponent({});return b.setName("SymbolComponent.Strut."+b),b.setOpaque(!1),b.setThickness(a),b.setFillerType("Strut"),b.setFiller(!0),b}catch(c){console.log("error : "+c)}return void 0}},JenScript.SymbolComponent=function(a){this.init(a)},JenScript.Model.addMethods(JenScript.SymbolComponent,{init:function(a){a=a||{},this.Id="Symbol"+JenScript.sequenceId++,this.isFiller=!1,this.fillerType,this.layer,this.nature,this.opaque,this.thickness=void 0!==a.thickness?a.thickness:0,this.themeColor=void 0!==a.themeColor?a.themeColor:"gray",this.name=a.name,this.host,this.lockEnter=!1,this.visible=!0,this.opacity=void 0!==a.opacity?a.opacity:1,this.userObject=a.userObject,this.bound2D},getThemeColor:function(){return this.themeColor},setThemeColor:function(a){this.themeColor=a},toString:function(){return"SymbolComponent:"+this.Id},equals:function(a){return void 0===a?!1:void 0===a.Id?!1:a.Id===this.Id},getLayer:function(){return this.layer},setLayer:function(a){this.layer=a},getBound2D:function(){return this.bound2D},setBound2D:function(a){this.bound2D=a},setFiller:function(a){this.isFiller=a},getFillerType:function(){return this.fillerType},setFillerType:function(a){this.fillerType=a},getHost:function(){return this.host},setHost:function(a){this.host=a},getName:function(){return null==name&&(name=null!=getLayer()?getClass().getSimpleName()+"_"+getLayer().getSymbolIndex(this):getClass().getSimpleName()),name},setName:function(a){this.name=a},getThickness:function(){return this.thickness},setThickness:function(a){this.thickness=a},isOpaque:function(){return this.opaque},setOpaque:function(a){this.opaque=a},getLocationX:function(){if(void 0===this.layer)return 0;if("Horizontal"===this.nature)throw new Error("Horizontal symbol has no location x");return this.layer.getComponentXLocation(this)},getCenterX:function(){return null==this.layer?0:this.getLocationX()+this.getThickness()/2},getLocationY:function(){if(void 0===this.layer)return 0;if("Vertical"==this.nature)throw new Error("Vertical symbol has no location y");return this.layer.getComponentYLocation(this)},getCenterY:function(){return void 0===this.layer?0:this.getLocationY()+this.getThickness()/2},getNature:function(){return this.nature},setNature:function(a){this.nature=a},isLockEnter:function(){return this.lockEnter},setLockEnter:function(a){this.lockEnter=a},isVisible:function(){return this.visible},setVisible:function(a){this.visible=a},getUserObject:function(){return this.userObject},setUserObject:function(a){this.userObject=a}})}(),function(){JenScript.SymbolBar=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBar,JenScript.SymbolComponent),JenScript.Model.addMethods(JenScript.SymbolBar,{_init:function(a){a=a||{},this.value=a.value,this.base=a.base,this.setBase(this.base),this.morpheStyle=void 0!==a.morpheStyle?a.morpheStyle:"Rectangle",this.symbol=void 0!==a.symbol?a.symbol:"Unamed Bar Symbol",this.round=void 0!==a.round?a.round:5,this.direction=void 0!==a.direction?a.direction:"ascent",this.ascent=!1,this.descent=!1,"descent"===this.direction?this.setDescentValue(this.value):this.setAscentValue(this.value),this.barStroke=a.barStroke,this.barFill=void 0!==a.barFill?a.barFill:new JenScript.SymbolBarFill0({}),this.barEffect=a.barEffect,this.barLabel,this.axisLabel,this.barShape,this.part,this.inflating=!1,this.deflating=!1,this.inflate,this.deflate,JenScript.SymbolComponent.call(this,a)},getBarLabel:function(){return this.barLabel},setBarLabel:function(a){this.barLabel=a},getAxisLabel:function(){return this.axisLabel},setAxisLabel:function(a){this.axisLabel=a},getPart:function(){return this.part},setPart:function(a){this.part=a},getRound:function(){return this.round},setRound:function(a){this.round=a},getMorpheStyle:function(){return this.morpheStyle},setMorpheStyle:function(a){this.morpheStyle=a},getBarShape:function(){return this.barShape},setBarShape:function(a){this.barShape=a},getSymbol:function(){return this.symbol},setSymbol:function(a){this.symbol=a},getValue:function(){return this.value},setAscentValue:function(a){if(this.ascent=!0,this.descent=!1,0>a)throw new Error("bar value should be greater than 0");this.value=a},isInflating:function(){return this.inflating},setInflating:function(a){this.inflating=a},isDeflating:function(){return this.deflating},setDeflating:function(a){this.deflating=a},setDescentValue:function(a){if(this.ascent=!1,this.descent=!0,0>a)throw new Error("bar value should be greater than 0");this.value=a},getBase:function(){return this.base},setBase:function(a){this.baseSet=!0,this.base=a},isBaseSet:function(){return this.baseSet},isAscent:function(){return this.ascent},isDescent:function(){return this.descent},isValueSet:function(){return this.ascent||this.descent},getBarStroke:function(){return this.barStroke},setBarStroke:function(a){this.barStroke=a},getBarFill:function(){return this.barFill},setBarFill:function(a){this.barFill=a},getBarEffect:function(){return this.barEffect},setBarEffect:function(a){this.barEffect=a}})}(),function(){JenScript.SymbolStack=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolStack,JenScript.SymbolBar),JenScript.Model.addMethods(JenScript.SymbolStack,{__init:function(a){a=a||{},JenScript.SymbolBar.call(this,a),this.hostSymbol,this.stackValue=a.stackValue,this.normalizedValue},toString:function(){return"Stack [hostSymbol="+this.hostSymbol+", stackValue="+this.stackValue+", normalizedValue="+this.normalizedValue+", lockEnter="+this.lockEnter+"]"},getStackValue:function(){return this.stackValue},setStackValue:function(a){this.stackValue=a},getNormalizedValue:function(){return this.normalizedValue},setNormalizedValue:function(a){this.normalizedValue=a},getHostSymbol:function(){return this.hostSymbol},setHostSymbol:function(a){this.hostSymbol=a}}),JenScript.SymbolBarStacked=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarStacked,JenScript.SymbolBar),JenScript.Model.addMethods(JenScript.SymbolBarStacked,{__init:function(a){a=a||{},JenScript.SymbolBar.call(this,a),this.stacks=[]},getStackBase:function(a){for(var b=this.getBase(),c=0;c<this.stacks.length;c++){var d=this.stacks[c];if(a.equals(d))return b;this.isAscent()?b+=d.getNormalizedValue():this.isDescent()&&(b-=d.getNormalizedValue())}return b},addStack:function(a){if(a.getValue()<0)throw new Error("stack proportion value should be greater than 0");a.setHostSymbol(this),this.stacks[this.stacks.length]=a},normalize:function(){for(var a=Math.abs(this.getValue()),b=0,c=0;c<this.stacks.length;c++)b+=this.stacks[c].getStackValue();for(var c=0;c<this.stacks.length;c++)this.stacks[c].setNormalizedValue(this.stacks[c].getStackValue()*a/b)},getStacks:function(){return this.stacks}})}(),function(){JenScript.SymbolBarGroup=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarGroup,JenScript.SymbolBar),JenScript.Model.addMethods(JenScript.SymbolBarGroup,{__init:function(a){a=a||{},JenScript.SymbolBar.call(this,a),this.symbolComponents=[]},getThickness:function(){for(var a=0,b=0;b<this.symbolComponents.length;b++)a+=this.symbolComponents[b].getThickness();return a},getMaxValue:function(){for(var a=-1,b=!1,c=0;c<this.symbolComponents.length;c++){var d=this.symbolComponents[c];if(!d.isFiller){var e=d.getBarShape().getBounds2D();"Vertical"===this.getNature()?(b||(a=e.getMaxY(),b=!0),a=Math.max(a,e.getMaxY())):"Horizontal"===this.getNature()&&(b||(a=e.getMaxX(),b=!0),a=Math.max(a,e.getMaxX()))}}return a},getMinValue:function(){for(var a=-1,b=!1,c=0;c<this.symbolComponents.length;c++){var d=this.symbolComponents[c];if(!d.isFiller){var e=d.getBarShape().getBounds2D();"Vertical"===this.getNature()?(b||(a=e.getMinY(),b=!0),a=Math.min(a,e.getMinY())):"Horizontal"==this.getNature()&&(b||(a=e.getMinX(),b=!0),a=Math.min(a,e.getMinX()))}}return a},getCenterValue:function(){var a=this.getMaxValue(),b=this.getMinValue();return b+Math.abs(a-b)/2},getBarShape:function(){},addSymbol:function(a){if(a.isFiller&&"Glue"===a.getFillerType())throw new Error("Glue can not be add in group.");this.symbolComponents.add(a)},removeSymbolComponent:function(){},getSymbolComponents:function(){return this.symbolComponents},setSymbolComponents:function(a){this.symbolComponents=a}})}(),function(){JenScript.SymbolPoint=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolPoint,JenScript.SymbolComponent),JenScript.Model.addMethods(JenScript.SymbolPoint,{_init:function(a){a=a||{},this.value=a.value,this.deviceValue,this.devicePoint,this.pointSymbolPainters=[],this.pointSymbolPainters[0]=new JenScript.SymbolPointSquare,this.sensibleRadius=10,this.sensibleShape,JenScript.SymbolComponent.call(this,a)},getValue:function(){return this.value},setValue:function(a){this.value=a},getSensibleShape:function(){return this.sensibleShape},setSensibleShape:function(a){this.sensibleShape=a},getDeviceValue:function(){return this.deviceValue},setDeviceValue:function(a){this.deviceValue=a},getDevicePoint:function(){return this.devicePoint},setDevicePoint:function(a){this.devicePoint=a},getPointSymbolPainters:function(){return this.pointSymbolPainters},setPointSymbolPainters:function(a){this.pointSymbolPainters=a},addPointSymbolPainter:function(a){this.pointSymbolPainters[this.pointSymbolPainters]=a},getSensibleRadius:function(){return this.sensibleRadius},setSensibleRadius:function(a){this.sensibleRadius=a}})}(),function(){JenScript.SymbolPolylinePoint=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolPolylinePoint,JenScript.SymbolPoint),JenScript.Model.addMethods(JenScript.SymbolPolylinePoint,{__init:function(a){a=a||{},this.symbolComponents=[],this.polylinePainter=new JenScript.SymbolPolylinePainter,JenScript.SymbolPoint.call(this,a)},getNature:function(){return this.getHost().getNature()},getThickness:function(){return 0},getPolylinePainter:function(){return this.polylinePainter},setPolylinePainter:function(a){this.polylinePainter=a},addSymbol:function(a){a instanceof JenScript.SymbolPoint&&(this.symbolComponents[this.symbolComponents.length]=a)},removeSymbolComponent:function(a){for(var b=[],c=0;c<this.symbolComponents.length;c++)this.symbolComponents[c].equals(a)||(b[b.length]=this.symbolComponents[c]);this.symbolComponents=b},getSymbolComponents:function(){return this.symbolComponents},setSymbolComponents:function(a){this.symbolComponents=a}})}(),function(){JenScript.SymbolPainter=function(a){this.init(a)},JenScript.Model.addMethods(JenScript.SymbolPainter,{init:function(a){a=a||{}},paintSymbol:function(){}})}(),function(){JenScript.SymbolBarFill=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarFill,JenScript.SymbolPainter),JenScript.Model.addMethods(JenScript.SymbolBarFill,{_init:function(a){a=a||{},this.Id="symbolfill"+JenScript.sequenceId++,JenScript.SymbolPainter.call(this,a)},paintBarFill:function(){},paintSymbol:function(a,b){b.isVisible()&&this.paintBarFill(a,b)}}),JenScript.SymbolBarFill0=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarFill0,JenScript.SymbolBarFill),JenScript.Model.addMethods(JenScript.SymbolBarFill0,{__init:function(a){a=a||{},JenScript.SymbolBarFill.call(this,a)},paintBarFill:function(a,b){a.deleteGraphicsElement(this.Id+b.Id);var c=b.getBarShape().Id(this.Id+b.Id).fill(b.themeColor).fillOpacity(b.opacity).toSVG();a.insertSVG(c);var d=c.getBBox();b.setBound2D(new JenScript.Bound2D(d.x,d.y,d.width,d.height))}}),JenScript.SymbolBarFill1=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarFill1,JenScript.SymbolBarFill),JenScript.Model.addMethods(JenScript.SymbolBarFill1,{__init:function(a){a=a||{},JenScript.SymbolBarFill.call(this,a)},paintBarFill:function(a,b){"Vertical"===b.getNature()&&this.v(a,b),"Horizontal"===b.getNature()&&this.h(a,b)},v:function(a,b){a.deleteGraphicsElement(this.Id+b.Id);var c=b.getBarShape().Id(this.Id+b.Id).fillOpacity(b.opacity).toSVG();a.insertSVG(c);var d=c.getBBox(),e=new JenScript.Point2D(d.x,d.y+d.height/2),f=new JenScript.Point2D(d.x+d.width,d.y+d.height/2),g=b.getThemeColor(),h=JenScript.Color.brighten(g,20),i=["0%","50%","100%"],j=[h,g,h],k=(new JenScript.SVGLinearGradient).Id(this.Id+b.Id+"gradient").from(e.x,e.y).to(f.x,f.y).shade(i,j);a.deleteGraphicsElement(this.Id+b.Id+"gradient"),a.definesSVG(k.toSVG()),c.setAttribute("fill","url(#"+this.Id+b.Id+"gradient)");var d=c.getBBox();b.setBound2D(new JenScript.Bound2D(d.x,d.y,d.width,d.height))},h:function(a,b){a.deleteGraphicsElement(b.Id);var c=b.getBarShape().Id(b.Id).fillOpacity(b.opacity).toSVG();a.insertSVG(c);var d=c.getBBox(),e=new JenScript.Point2D(d.x+d.width/2,d.y),f=new JenScript.Point2D(d.x+d.width/2,d.y+d.height),g=b.getThemeColor(),h=JenScript.Color.brighten(g,20),i=["0%","50%","100%"],j=[h,g,h],k=(new JenScript.SVGLinearGradient).Id(this.Id+"gradient").from(e.x,e.y).to(f.x,f.y).shade(i,j);a.deleteGraphicsElement(this.Id+"gradient"),a.definesSVG(k.toSVG()),c.setAttribute("fill","url(#"+this.Id+"gradient)");var d=c.getBBox();b.setBound2D(new JenScript.Bound2D(d.x,d.y,d.width,d.height))}})}(),function(){JenScript.SymbolBarEffect=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarEffect,JenScript.SymbolPainter),JenScript.Model.addMethods(JenScript.SymbolBarEffect,{_init:function(a){a=a||{},this.Id="symboleffect"+JenScript.sequenceId++,JenScript.SymbolPainter.call(this,a)},paintBarEffect:function(){},paintSymbol:function(a,b){b.isVisible()&&this.paintBarEffect(a,b)}}),JenScript.SymbolBarEffect0=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarEffect0,JenScript.SymbolBarEffect),JenScript.Model.addMethods(JenScript.SymbolBarEffect0,{__init:function(a){a=a||{},this.Id="symboleffect0_"+JenScript.sequenceId++,JenScript.SymbolBarEffect.call(this,a)},paintBarEffect:function(a,b){"Vertical"===b.getNature()&&this.v(a,b),"Horizontal"===b.getNature()&&this.h(a,b)},v:function(a,b){var c=b.getHost().getProjection(),d=null;b.isAscent()&&(d=new JenScript.Point2D(0,b.getBase()+b.getValue())),b.isDescent()&&(d=new JenScript.Point2D(0,b.getBase()-b.getValue()));var e=c.userToPixel(d),f=new JenScript.Point2D(0,b.getBase()),g=c.userToPixel(f),h=b.getLocationX(),i=e.getY();b.isDescent()&&(i=g.getY());var j=b.getThickness(),k=Math.abs(g.getY()-e.getY()),l=void 0,m=2;if(h+=m,i+=m,j-=2*m,k-=2*m,"Round"===b.getMorpheStyle()){var n=b.getRound(),o=(new JenScript.SVGPath).Id(this.Id);b.isAscent()?(o.moveTo(h,i+n),o.lineTo(h,i+k),o.lineTo(h+j/2,i+k),o.lineTo(h+j/2,i),o.lineTo(h+n,i),o.quadTo(h,i,h,i+n),o.close()):b.isDescent()&&(o.moveTo(h,i),o.lineTo(h,i+k-n),o.quadTo(h,i+k,h+n,i+k),o.lineTo(h+j/2,i+k),o.lineTo(h+j/2,i),o.close()),l=o}else if("Rectangle"===b.getMorpheStyle()){var p=(new JenScript.SVGRect).Id(this.Id).origin(h,i).size(j/2,k);l=p}var q=new JenScript.Bound2D(h,i,j,k),r=null,s=null;b.isAscent()?(r=new JenScript.Point2D(q.getX(),q.getY()),s=new JenScript.Point2D(q.getX()+q.getWidth(),q.getY()+q.getHeight())):b.isDescent()&&(r=new JenScript.Point2D(q.getX(),q.getY()),s=new JenScript.Point2D(q.getX(),q.getY()+q.getHeight()));var t=["0%","100%"],u=["rgba(255, 255, 255, 0.3)","rgba(255, 255, 255, 0.5)"],v=(new JenScript.SVGLinearGradient).Id(this.Id+"gradient").from(r.x,r.y).to(s.x,s.y).shade(t,u);a.deleteGraphicsElement(this.gradientId),a.definesSVG(v.toSVG());var w=l.fillURL(this.Id+"gradient").toSVG();a.insertSVG(w)},h:function(a,b){var c=b.getHost().getProjection(),d=null;b.isAscent()&&(d=new JenScript.Point2D(b.getBase()+b.getValue(),0)),b.isDescent()&&(d=new JenScript.Point2D(b.getBase()-b.getValue(),0));var e=c.userToPixel(d),f=new JenScript.Point2D(b.getBase(),0),g=c.userToPixel(f),h=b.getLocationY(),i=g.getX();b.isDescent()&&(i=e.getX());var j=b.getThickness(),k=Math.abs(e.getX()-g.getX()),l=null,m=2;if(i+=m,h+=m,k-=2*m,j-=2*m,"Round"==b.getMorpheStyle()){var n=b.getRound(),o=(new JenScript.SVGPath).Id(this.Id);b.isAscent()?(o.moveTo(i,h),o.lineTo(i+k-n,h),o.quadTo(i+k,h,i+k,h+n),o.lineTo(i+k,h+j/2),o.lineTo(i,h+j/2),o.close()):b.isDescent()&&(o.moveTo(i+n,h),o.lineTo(i+k,h),o.lineTo(i+k,h+j/2),o.lineTo(i,h+j/2),o.quadTo(i,h,i+n,h),o.close()),l=o}else{var p=(new JenScript.SVGRect).Id(this.Id).origin(i,h).size(k,j/2);l=p}var q=new JenScript.Bound2D(i,h,k,j),r=null,s=null;b.isAscent()?(r=new JenScript.Point2D(q.getX(),q.getCenterY()),s=new JenScript.Point2D(q.getX()+q.getWidth(),q.getCenterY())):b.isDescent()&&(r=new JenScript.Point2D(q.getX()+q.getWidth(),q.getCenterY()),s=new JenScript.Point2D(q.getX(),q.getCenterY()));var t=["0%","100%"],u=["rgba(255, 255, 255, 0.3)","rgba(255, 255, 255, 0.5)"],v=(new JenScript.SVGLinearGradient).Id(this.Id+"gradient").from(r.x,r.y).to(s.x,s.y).shade(t,u);a.deleteGraphicsElement(this.gradientId),a.definesSVG(v.toSVG());var w=l.fillURL(this.Id+"gradient").toSVG();a.insertSVG(w)}}),JenScript.SymbolBarEffect1=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarEffect1,JenScript.SymbolBarEffect),JenScript.Model.addMethods(JenScript.SymbolBarEffect1,{__init:function(a){a=a||{},this.Id="symboleffect1_"+JenScript.sequenceId++,JenScript.SymbolBarEffect.call(this,a)},paintBarEffect:function(a,b){"Vertical"===b.getNature()&&this.v(a,b),"Horizontal"===b.getNature()&&this.h(a,b)},v:function(a,b){var c=b.getHost().getProjection(),d=null;b.isAscent()&&(d=new JenScript.Point2D(0,b.getBase()+b.getValue())),b.isDescent()&&(d=new JenScript.Point2D(0,b.getBase()-b.getValue()));var e=c.userToPixel(d),f=new JenScript.Point2D(0,b.getBase()),g=c.userToPixel(f),h=b.getLocationX(),i=e.getY();b.isDescent()&&(i=g.getY());var j=b.getThickness(),k=Math.abs(g.getY()-e.getY()),l=null,m=2;if(h+=m,i+=m,j-=2*m,k-=2*m,"Round"===b.getMorpheStyle()){var n=b.getRound(),o=(new JenScript.SVGPath).Id(this.Id);b.isAscent()?(o.moveTo(h,i+n),o.lineTo(h,i+k),o.lineTo(h+j,i+k),o.lineTo(h+j,i+n),o.quadTo(h+j,i,h+j-n,i),o.lineTo(h+n,i),o.quadTo(h,i,h,i+n),o.close(),l=o):b.isDescent()&&(o.moveTo(h,i),o.lineTo(h,i+k-n),o.quadTo(h,i+k,h+n,i+k),o.lineTo(h+j-n,i+k),o.quadTo(h+j,i+k,h+j,i+k-n),o.lineTo(h+j,i),o.close(),l=o)}else if("Rectangle"===b.getMorpheStyle()){var p=(new JenScript.SVGRect).Id(this.Id).origin(h,i).size(j,k);l=p}var q=new JenScript.Bound2D(h,i,j,k),r=void 0,s=void 0;b.isAscent()?(r=new JenScript.Point2D(q.getX(),q.getY()),s=new JenScript.Point2D(q.getX(),q.getY()+q.getHeight())):b.isDescent()&&(r=new JenScript.Point2D(q.getX(),q.getY()+q.getHeight()),s=new JenScript.Point2D(q.getX(),q.getY()));var t=["0%","33%","66%","100%"],u=["rgba(255, 255, 255, 0.8)","rgba(255, 255, 255, 0)","rgba(40, 40, 40, 0)","rgba(40, 40, 40, 0.4)"],v=(new JenScript.SVGLinearGradient).Id(this.Id+"gradient").from(r.x,r.y).to(s.x,s.y).shade(t,u).toSVG();a.definesSVG(v),a.insertSVG(l.fillURL(this.Id+"gradient").toSVG())},h:function(){}}),JenScript.SymbolBarEffect2=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarEffect2,JenScript.SymbolBarEffect),JenScript.Model.addMethods(JenScript.SymbolBarEffect2,{__init:function(a){a=a||{},this.Id="symboleffect2_"+JenScript.sequenceId++,JenScript.SymbolBarEffect.call(this,a)},paintBarEffect:function(a,b){"Vertical"===b.getNature()&&this.v(a,b),"Horizontal"===b.getNature()&&this.h(a,b)},v:function(a,b){var c=b.getHost().getProjection(),d=null;b.isAscent()&&(d=new JenScript.Point2D(0,b.getBase()+b.getValue())),b.isDescent()&&(d=new JenScript.Point2D(0,b.getBase()-b.getValue()));var e=c.userToPixel(d),f=new JenScript.Point2D(0,b.getBase()),g=c.userToPixel(f),h=b.getLocationX(),i=e.getY();b.isDescent()&&(i=g.getY());var j=b.getThickness(),k=Math.abs(g.getY()-e.getY()),l=null,m=2;h+=m,i+=m,j-=2*m,k-=2*m;var n=10;if("Round"===b.getMorpheStyle()){var o=b.getRound(),p=(new JenScript.SVGPath).Id(this.Id);b.isAscent()?(p.moveTo(h,i+o),p.lineTo(h,i+k/2+n),p.lineTo(h+j,i+k/2-n),p.lineTo(h+j,i+o),p.quadTo(h+j,i,h+j-o,i),p.lineTo(h+o,i),p.quadTo(h,i,h,i+o),p.close()):b.isDescent()&&(p.moveTo(h,i+k/2-n),p.lineTo(h,i+k-o),p.quadTo(h,i+k,h+o,i+k),p.lineTo(h+j-o,i+k),p.quadTo(h+j,i+k,h+j,i+k-o),p.lineTo(h+j,i+k/2+n),p.close()),l=p}else if("Rectangle"===b.getMorpheStyle()){var p=(new JenScript.SVGPath).Id(this.Id);b.isAscent()?(p.moveTo(h,i),p.lineTo(h,i+k/2+n),p.lineTo(h+j,i+k/2-n),p.lineTo(h+j,i),p.close()):b.isDescent()&&(p.moveTo(h,i+k/2-n),p.lineTo(h,i+k),p.lineTo(h+j,i+k),p.lineTo(h+j,i+k/2+n),p.close()),l=p}var q=l.toSVG();a.insertSVG(q);var r=q.getBBox(),s=new JenScript.Bound2D(r.x,r.y,r.width,r.height),t=null,u=null;b.isAscent()?(t=new JenScript.Point2D(s.getX(),s.getY()),u=new JenScript.Point2D(s.getX(),s.getY()+s.getHeight())):b.isDescent()&&(t=new JenScript.Point2D(s.getX(),s.getY()+s.getHeight()),u=new JenScript.Point2D(s.getX(),s.getY()));var v=["0%","100%"],w=["rgba(255, 255, 255, 0.7)","rgba(255, 255, 255, 0.2)"],x=(new JenScript.SVGLinearGradient).Id(this.Id+"gradient").from(t.x,t.y).to(u.x,u.y).shade(v,w).toSVG();a.deleteGraphicsElement(this.Id+"gradient"),a.definesSVG(x),q.setAttribute("fill","url(#"+this.Id+"gradient)")},h:function(){}}),JenScript.SymbolBarEffect3=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarEffect3,JenScript.SymbolBarEffect),JenScript.Model.addMethods(JenScript.SymbolBarEffect3,{__init:function(a){a=a||{},this.Id="symboleffect3_"+JenScript.sequenceId++,JenScript.SymbolBarEffect.call(this,a)},paintBarEffect:function(a,b){"Vertical"===b.getNature()&&this.v(a,b),"Horizontal"===b.getNature()&&this.h(a,b)},v:function(a,b){if(void 0!==b.getHost()&&void 0!==b.getHost().getProjection()){var c=b.getHost().getProjection(),d=null;b.isAscent()&&(d=new JenScript.Point2D(0,b.getBase()+b.getValue())),b.isDescent()&&(d=new JenScript.Point2D(0,b.getBase()-b.getValue()));var e=c.userToPixel(d),f=new JenScript.Point2D(0,b.getBase()),g=c.userToPixel(f),h=b.getLocationX(),i=e.getY();b.isDescent()&&(i=g.getY());var j=b.getThickness(),k=Math.abs(g.getY()-e.getY()),l=null,m=2;h+=m,i+=m,j-=2*m,k-=2*m;var n=(new JenScript.SVGPath).Id(this.Id);if("Round"==b.getMorpheStyle()){var o=b.getRound();b.isAscent()?(n.moveTo(h,i+o),n.quadTo(h+j/2,i+k/2,h,i+k),n.lineTo(h+j,i+k),n.quadTo(h+j/2,i+k/2,h+j,i+o),n.quadTo(h+j,i,h+j-o,i),n.lineTo(h+o,i),n.quadTo(h,i,h,i+o),n.close()):b.isDescent()&&(n.moveTo(h,i),n.quadTo(h+j/2,i+k/2,h,i+k-o),n.quadTo(h,i+k,h+o,i+k),n.lineTo(h+j-o,i+k),n.quadTo(h+j,i+k,h+j,i+k-o),n.quadTo(h+j/2,i+k/2,h+j,i),n.close())}else"Rectangle"===b.getMorpheStyle()&&(n.moveTo(h,i),n.quadTo(h+j/2,i+k/2,h,i+k),n.lineTo(h+j,i+k),n.quadTo(h+j/2,i+k/2,h+j,i),n.close());l=n;var p=l.toSVG();a.insertSVG(p);var q=p.getBBox(),r=new JenScript.Bound2D(q.x,q.y,q.width,q.height),s=null,t=null;b.isAscent()?(s=new JenScript.Point2D(r.getX(),r.getY()),t=new JenScript.Point2D(r.getX(),r.getY()+r.getHeight())):b.isDescent()&&(s=new JenScript.Point2D(r.getX(),r.getY()+r.getHeight()),t=new JenScript.Point2D(r.getX(),r.getY()));var u=["0%","33%","66%","100%"],v=["rgba(255, 255, 255, 0.55)","rgba(255, 255, 255, 0)","rgba(40, 40, 40, 0)","rgba(40, 40, 40, 0.45)"],w=(new JenScript.SVGLinearGradient).Id(this.Id+"gradient").from(s.x,s.y).to(t.x,t.y).shade(u,v).toSVG();a.deleteGraphicsElement(this.Id+"gradient"),a.definesSVG(w),p.setAttribute("fill","url(#"+this.Id+"gradient)")}},h:function(){}})}(),function(){JenScript.SymbolBarStroke=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarStroke,JenScript.SymbolPainter),JenScript.Model.addMethods(JenScript.SymbolBarStroke,{_init:function(a){a=a||{},this.Id="symbolstroke"+JenScript.sequenceId++,this.strokeColor=a.strokeColor,this.strokeWidth=void 0!==a.strokeWidth?a.strokeWidth:1,JenScript.SymbolPainter.call(this,a)},paintBarStroke:function(a,b){a.deleteGraphicsElement(this.Id);var c=void 0!==this.strokeColor?this.strokeColor:b.getThemeColor(),d=b.getBarShape().Id(this.Id).fillNone().stroke(c).strokeWidth(this.strokeWidth).toSVG();a.insertSVG(d)},paintSymbol:function(a,b){b.isVisible()&&this.paintBarStroke(a,b)}})}(),function(){JenScript.SymbolAbstractLabel=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolAbstractLabel,JenScript.AbstractLabel),JenScript.Model.addMethods(JenScript.SymbolAbstractLabel,{_init:function(a){JenScript.AbstractLabel.call(this,a)},paintSymbol:function(){throw new Error("paintSymbolLabel method should be provide by override")}}),JenScript.SymbolAxisLabel=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolAxisLabel,JenScript.SymbolAbstractLabel),JenScript.Model.addMethods(JenScript.SymbolAxisLabel,{__init:function(a){a=a||{},a.name="JenScript.SymbolAxisLabel",this.part=void 0!==a.part?a.part:"West",JenScript.SymbolAbstractLabel.call(this,a)},paintSymbol:function(a,b,c){"Vertical"===b.getNature()&&this.paintVLabel(a,b,c),"Horizontal"===b.getNature()&&this.paintHLabel(a,b,c)},paintHLabel:function(a,b,c){var d=b.getCenterY(),e=b.getHost().getWest();"West"===this.part&&"West"===c&&(this.setLocation(new JenScript.Point2D(e-5,d)),this.paintLabel(a)),"East"===this.part&&"East"===c&&(this.setLocation(new JenScript.Point2D(5,d)),this.paintLabel(a))},paintVLabel:function(a,b,c){var d=b.getCenterX(),e=b.getHost().getWest(),f=b.getHost().getNorth();"South"===this.part&&"South"===c?(this.setLocation(new JenScript.Point2D(e+d,5)),this.paintLabel(a)):"North"===this.part&&"North"===c&&(this.setLocation(new JenScript.Point2D(e+d,f-5)),this.paintLabel(a))}}),JenScript.SymbolBarLabel=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarLabel,JenScript.SymbolAbstractLabel),JenScript.Model.addMethods(JenScript.SymbolBarLabel,{__init:function(a){a=a||{},a.name="JenScript.SymbolBarLabel",this.part=void 0!==a.part?a.part:"West",this.barAnchor=void 0!==a.barAnchor?a.barAnchor:"middle",JenScript.SymbolAbstractLabel.call(this,a)},paintSymbol:function(a,b,c){"Vertical"===b.getNature()&&this.paintVLabel(a,b,c),"Horizontal"===b.getNature()&&this.paintHLabel(a,b,c)},paintHLabel:function(a,b,c){if("Device"===c){var d=b.getBound2D();"bottom"===this.barAnchor?this.setLocation(new JenScript.Point2D(d.getX(),d.getCenterY())):"top"===this.barAnchor?this.setLocation(new JenScript.Point2D(d.getX()+d.getWidth(),d.getCenterY())):"middle"===this.barAnchor&&this.setLocation(new JenScript.Point2D(d.getCenterX(),d.getCenterY())),this.paintLabel(a)}},paintVLabel:function(a,b,c){if("Device"===c){var d=b.getBound2D();"bottom"===this.barAnchor?this.setLocation(new JenScript.Point2D(d.getCenterX(),d.getY()+d.getHeight())):"top"===this.barAnchor?this.setLocation(new JenScript.Point2D(d.getCenterX(),d.getY())):"middle"===this.barAnchor&&this.setLocation(new JenScript.Point2D(d.getCenterX(),d.getCenterY())),this.paintLabel(a)}}})}(),function(){JenScript.SymbolPointPainter=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolPointPainter,JenScript.SymbolPainter),JenScript.Model.addMethods(JenScript.SymbolPointPainter,{_init:function(a){a=a||{},this.Id="symbolpainter"+JenScript.sequenceId++,JenScript.SymbolPainter.call(this,a)},paintSymbolPoint:function(){},paintSymbol:function(a,b){b.isVisible()&&this.paintSymbolPoint(a,b)}}),JenScript.SymbolPointSquare=function(a){this.__init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolPointSquare,JenScript.SymbolPointPainter),JenScript.Model.addMethods(JenScript.SymbolPointSquare,{__init:function(a){a=a||{},JenScript.SymbolPointPainter.call(this,a)},paintSymbolPoint:function(a,b){var c=(new JenScript.SVGRect).Id(this.Id).origin(b.devicePoint.x-2,b.devicePoint.y-2).size(4,4);c.fill(b.getThemeColor()),a.insertSVG(c.toSVG())}})}(),function(){JenScript.SymbolPolylinePainter=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolPolylinePainter,JenScript.SymbolPainter),JenScript.Model.addMethods(JenScript.SymbolPolylinePainter,{_init:function(a){a=a||{},this.Id="symbolpolyline"+JenScript.sequenceId++,JenScript.SymbolPainter.call(this,a)},paintSymbolPolyline:function(a,b){for(var c=b.getSymbolComponents(),d=(new JenScript.SVGPath).Id(this.Id),e=0;e<c.length;e++){var f=c[e];0==e?d.moveTo(f.devicePoint.x,f.devicePoint.y):d.lineTo(f.devicePoint.x,f.devicePoint.y)}a.insertSVG(d.stroke(b.getThemeColor()).fillNone().toSVG())},paintSymbol:function(a,b){b.isVisible()&&this.paintSymbolPolyline(a,b)}})}(),function(){JenScript.SymbolLayer=function(a){this.init(a)},JenScript.Model.addMethods(JenScript.SymbolLayer,{init:function(a){a=a||{},this.host,this.symbols=[]},getHost:function(){return this.host},setHost:function(a){this.host=a},addSymbol:function(a,b){a.setLayer(this),this.symbols[this.symbols.length]=a,b&&void 0!==this.host&&this.host.repaintPlugin()},removeSymbol:function(){},countSymbols:function(){return this.symbols.length},getSymbol:function(a){return this.symbols[a]},getSymbols:function(){return this.symbols},setSymbols:function(a){this.symbols=a},getSymbolIndex:function(a){if(void 0===a)return-1;for(var b=0;b<this.symbols.length;b++){var c=this.symbols[b];if(c.equals(a))return b}return-1},solveSymbolComponent:function(){},paintLayer:function(){},getFlattenSymbolComponents:function(){},solveGeometry:function(){for(var a=this.getSymbols(),b=0;b<a.length;b++)a[b].isFiller||this.solveSymbolComponent(a[b])},onMove:function(){},onClick:function(){},onExit:function(){},onEnter:function(){},onPress:function(){},onRelease:function(){},onDrag:function(){},getComponentXLocation:function(a){a instanceof JenScript.SymbolStack;for(var b=this.getFlattenSymbolComponents(),c=0,d=[],e=0;e<b.length;e++){var f=b[e];f.isFiller&&"Glue"===f.getFillerType()?d[d.length]=f:c+=f.getThickness()}if(this.getHost().getProjection().getView().getDevice().getWidth()>c){var g=this.getHost().getProjection().getView().getDevice().getWidth()-c,h=d.length;if(h>0)for(var e=0;e<d.length;e++){var i=d[e];i.setThickness(g/h)}}for(var j=0,e=0;e<b.length;e++){var f=b[e];if(f.equals(a))return j;j+=f.getThickness()}return j},getComponentYLocation:function(a){for(var b=this.getFlattenSymbolComponents(),c=0,d=[],e=0;e<b.length;e++){var f=b[e];f.isFiller&&"Glue"===f.getFillerType()?d[d.length]=f:c+=f.getThickness()}if(this.getHost().getProjection().getView().getDevice().getHeight()>c){var g=this.getHost().getProjection().getView().getDevice().getHeight()-c,h=d.length;if(h>0)for(var e=0;e<d.length;e++){var i=d[e];i.setThickness(g/h)}}for(var j=0,e=0;e<b.length;e++){var f=b[e];if(f.equals(a))return j;j+=f.getThickness()}return j}})}(),function(){JenScript.SymbolBarLayer=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolBarLayer,JenScript.SymbolLayer),JenScript.Model.addMethods(JenScript.SymbolBarLayer,{_init:function(a){a=a||{},JenScript.SymbolLayer.call(this,a),this.symbolListeners=[]},toString:function(){return"JenScript.SymbolBarLayer"},addSymbolListener:function(a,b,c){if(void 0===c)throw new Error("Symbol listener, listener name should be supplied.");var d={action:a,onEvent:b,name:c};this.symbolListeners[this.symbolListeners.length]=d},fireSymbolEvent:function(a,b){for(var c=0;c<this.symbolListeners.length;c++){var d=this.symbolListeners[c];a===d.action&&d.onEvent(b)}},getFlattenSymbolComponents:function(){for(var a=[],b=0;b<this.getSymbols().length;b++){var c=this.getSymbols()[b];if(c instanceof JenScript.SymbolComponent&&!(c instanceof JenScript.SymbolBarGroup))a[a.length]=c;else if(c instanceof JenScript.SymbolBarGroup)for(var d=c.getSymbolComponents(),e=0;e<d.length;e++)a[a.length]=d[e]}return a},paintLayer:function(a,b,c){this.paintSymbols(a,this.getSymbols(),b,c)},paintSymbols:function(a,b,c,d){if(this.solveGeometry(),"Device"===c)for(var e=0;e<b.length;e++){var f=b[e];f instanceof JenScript.SymbolBar&&(f instanceof JenScript.SymbolBarGroup?this.paintGroup(a,f,c,d):f instanceof JenScript.SymbolBarStacked?this.paintBarStacked(a,f,c,d):this.paintBar(a,f,c,d));
}"LabelLayer"===d&&this.paintSymbolsAxisLabel(a,b,c)},paintGroup:function(a,b,c,d){b.setHost(this.getHost()),b.setLayer(this),"LabelLayer"===d&&this.paintBar(a,b,c,d);var e=b.getSymbolComponents();this.paintSymbols(a,e,c,d)},paintSymbolsAxisLabel:function(a,b,c){for(var d=0;d<b.length;d++){var e=b[d];if(e.setHost(this.getHost()),e instanceof JenScript.SymbolBar)if(e instanceof JenScript.SymbolBarGroup){var f=e,g=f.getSymbolComponents();this.paintSymbolsAxisLabel(a,g,c),null!=f.getAxisLabel()&&f.getAxisLabel().paintSymbol(a,f,c)}else this.paintBarAxisLabel(a,e,c)}},paintBarAxisLabel:function(a,b,c){void 0!==b.getAxisLabel()&&b.getAxisLabel().paintSymbol(a,b,c)},paintBar:function(a,b,c,d){b.setHost(this.getHost()),b.setLayer(this),"SymbolLayer"===d?(void 0!==b.getBarFill()&&b.getBarFill().paintSymbol(a,b,c),void 0!==b.getBarEffect()&&b.getBarEffect().paintSymbol(a,b,c),void 0!==b.getBarStroke()&&b.getBarStroke().paintSymbol(a,b,c)):"LabelLayer"==d&&null!=b.getBarLabel()&&b.getBarLabel().paintSymbol(a,b,c)},paintBarStacked:function(a,b,c,d){b.setHost(this.getHost()),b.setLayer(this);var e=b.getStacks();if("SymbolLayer"===d){for(var f=0;f<e.length;f++)e[f].barFill=b.barFill,this.paintBar(a,e[f],c,d);void 0!==b.getBarEffect()&&b.getBarEffect().paintSymbol(a,b,c),void 0!==b.getBarStroke()&&b.getBarStroke().paintSymbol(a,b,c)}else if("LabelLayer"==d){null!=b.getBarLabel()&&b.getBarLabel().paintSymbol(a,b,c);for(var f=0;f<e.length;f++){var g=e[f];null!=g.getBarLabel()&&g.getBarLabel().paintSymbol(a,g,c)}}},solveSymbolComponent:function(a){a.isFiller||(a.setLayer(this),"Vertical"===this.getHost().getNature()&&this.solveVSymbolComponent(a),"Horizontal"===this.getHost().getNature()&&this.solveHSymbolComponent(a))},solveVSymbolComponent:function(a){a.isFiller||(a.setNature("Vertical"),a.setLayer(this),a instanceof JenScript.SymbolBarGroup?this.solveVBarGroup(a):a instanceof JenScript.SymbolBarStacked?this.solveVStackedBar(a):this.solveVBarSymbol(a))},solveVBarSymbol:function(a){if(void 0!==this.getHost()&&void 0!==this.getHost().getProjection()){a.setHost(this.getHost());var b=this.getHost().getProjection(),c=null;if(a.isAscent()&&(c=new JenScript.Point2D(0,a.getBase()+a.getValue())),a.isDescent()&&(c=new JenScript.Point2D(0,a.getBase()-a.getValue())),!a.isValueSet())throw new Error("bar symbol ascent or descent value should be supplied.");if(!a.isBaseSet())throw new Error("bar symbol base value should be supplied.");var d=b.userToPixel(c),e=new JenScript.Point2D(0,a.getBase()),f=b.userToPixel(e),g=this.getComponentXLocation(a),h=d.y;a.isAscent()&&(h=d.y),a.isDescent()&&(h=f.y);var i=a.getThickness(),j=Math.abs(f.y-d.y);if("Round"===a.getMorpheStyle()){var k=a.getRound(),l=(new JenScript.SVGPath).Id(a.Id);a.isAscent()?(l.moveTo(g,h+k),l.lineTo(g,h+j),l.lineTo(g+i,h+j),l.lineTo(g+i,h+k),l.quadTo(g+i,h,g+i-k,h),l.lineTo(g+k,h),l.quadTo(g,h,g,h+k),l.close()):a.isDescent()&&(l.moveTo(g,h),l.lineTo(g,h+j-k),l.quadTo(g,h+j,g+k,h+j),l.lineTo(g+i-k,h+j),l.quadTo(g+i,h+j,g+i,h+j-k),l.lineTo(g+i,h),l.close()),a.setBarShape(l)}else if("Rectangle"===a.getMorpheStyle()){var m=(new JenScript.SVGRect).origin(g,h).size(i,j);a.setBarShape(m)}a.setBound2D(new JenScript.Bound2D(g,h,i,j))}},solveVStackedBar:function(a){if(void 0!==this.getHost()&&void 0!==this.getHost().getProjection()){a.setHost(this.getHost()),a.normalize();var b=this.getHost().getProjection(),c=void 0;if(a.isAscent()&&(c=new JenScript.Point2D(0,a.getBase()+a.getValue())),a.isDescent()&&(c=new JenScript.Point2D(0,a.getBase()-a.getValue())),!a.isValueSet())throw new Error("stacked bar symbol ascent or descent value should be supplied.");if(!a.isBaseSet())throw new Error("stacked bar symbol base value should be supplied.");var d=b.userToPixel(c),e=new JenScript.Point2D(0,a.getBase()),f=b.userToPixel(e),g=this.getComponentXLocation(a),h=d.y;a.isAscent()&&(h=d.y),a.isDescent()&&(h=f.y);var i=a.getThickness(),j=Math.abs(f.y-d.y);if("Round"===a.getMorpheStyle()){var k=a.getRound(),l=(new JenScript.SVGPath).Id(a.Id);a.isAscent()?(l.moveTo(g,h+k),l.lineTo(g,h+j),l.lineTo(g+i,h+j),l.lineTo(g+i,h+k),l.quadTo(g+i,h,g+i-k,h),l.lineTo(g+k,h),l.quadTo(g,h,g,h+k),l.close()):a.isDescent()&&(l.moveTo(g,h),l.lineTo(g,h+j-k),l.quadTo(g,h+j,g+k,h+j),l.lineTo(g+i-k,h+j),l.quadTo(g+i,h+j,g+i,h+j-k),l.lineTo(g+i,h),l.close()),a.setBarShape(l)}else if("Rectangle"===a.getMorpheStyle()){var m=(new JenScript.SVGRect).Id(a.Id).origin(g,h).size(i,j);a.setBarShape(m)}a.setBound2D(new JenScript.Bound2D(g,h,i,j));for(var n=a.getStacks(),o=0,p=0;p<n.length;p++){var q=n[p];q.setThickness(a.getThickness()),q.setBase(a.getStackBase(q)),q.setNature(a.getNature()),q.setBarFill(a.getBarFill()),a.isAscent()?q.setAscentValue(q.getNormalizedValue()):a.isDescent()&&q.setDescentValue(q.getNormalizedValue());var r=void 0;a.isAscent()?r=new JenScript.Point2D(0,a.getStackBase(q)+q.getNormalizedValue()):a.isDescent()&&(r=new JenScript.Point2D(0,a.getStackBase(q)-q.getNormalizedValue()));var s=b.userToPixel(r),t=new JenScript.Point2D(0,a.getStackBase(q)),u=b.userToPixel(t),v=this.getComponentXLocation(a),w=s.y;a.isAscent()&&(w=s.y),a.isDescent()&&(w=u.y);var x=a.getThickness(),y=Math.abs(u.y-s.y);if("Round"===a.getMorpheStyle())if(o==n.length-1){var k=a.getRound(),l=(new JenScript.SVGPath).Id(q.Id);a.isAscent()?(l.moveTo(v,w+k),l.lineTo(v,w+y),l.lineTo(v+x,w+y),l.lineTo(v+x,w+k),l.quadTo(v+x,w,v+x-k,w),l.lineTo(v+k,w),l.quadTo(v,w,v,w+k),l.close()):a.isDescent()&&(l.moveTo(v,w),l.lineTo(v,w+y-k),l.quadTo(v,w+y,v+k,w+y),l.lineTo(v+x-k,w+y),l.quadTo(v+x,w+y,v+x,w+y-k),l.lineTo(v+x,w),l.close()),q.setBarShape(l)}else{var m=(new JenScript.SVGRect).Id(q.Id).origin(v,w).size(x,y);q.setBarShape(m)}else if("Rectangle"===a.getMorpheStyle()){var m=(new JenScript.SVGRect).Id(q.Id).origin(v,w).size(x,y);q.setBarShape(m)}q.setBound2D(new JenScript.Bound2D(v,v,x,y)),o++}}},solveHBarGroup:function(a){a.setHost(this.getHost()),a.copyToBar();for(var b=a.getSymbolComponents(),c=0;c<b.length;c++){var d=b[c];d.setLayer(this),this.solveHSymbolComponent(d)}},solveHSymbolComponent:function(a){a.isFiller||(a.setNature("Horizontal"),a instanceof JenScript.SymbolBarGroup?this.solveHBarGroup(a):a instanceof JenScript.SymbolBarStacked?this.solveHStackedBar(a):this.solveHBarSymbol(a))},solveVBarGroup:function(a){a.setHost(this.getHost()),a.copyToBar();for(var b=a.getSymbolComponents(),c=0;c<b.length;c++){var d=b[c];d.setLayer(this),d.setHost(this.getHost()),this.solveVSymbolComponent(d)}},solveHBarSymbol:function(a){if(void 0!==this.getHost()&&void 0!==this.getHost().getProjection()){a.setHost(this.getHost());var b=this.getHost().getProjection(),c=void 0;if(a.isAscent()&&(c=new JenScript.Point2D(a.getBase()+a.getValue(),0)),a.isDescent()&&(c=new JenScript.Point2D(a.getBase()-a.getValue(),0)),!a.isValueSet())throw new Error("bar symbol ascent or descent value should be supplied.");if(!a.isBaseSet())throw new error("stacked bar symbol base value should be supplied.");var d=b.userToPixel(c),e=new JenScript.Point2D(a.getBase(),0),f=b.userToPixel(e),g=this.getComponentYLocation(a),h=f.x;a.isAscent()&&(h=f.x),a.isDescent()&&(h=d.x);var i=a.getThickness(),j=Math.abs(d.x-f.x);if("Round"==a.getMorpheStyle()){var k=a.getRound(),l=(new JenScript.SVGPath).Id(this.Id);a.isAscent()?(l.moveTo(h,g),l.lineTo(h+j-k,g),l.quadTo(h+j,g,h+j,g+k),l.lineTo(h+j,g+i-k),l.quadTo(h+j,g+i,h+j-k,g+i),l.lineTo(h,g+i),l.close()):a.isDescent()&&(l.moveTo(h+k,g),l.lineTo(h+j,g),l.lineTo(h+j,g+i),l.lineTo(h+k,g+i),l.quadTo(h,g+i,h,g+i-k),l.lineTo(h,g+k),l.quadTo(h,g,h+k,g),l.close()),a.setBarShape(l)}else{var m=(new JenScript.SVGRect).Id(this.Id).origin(h,g).size(j,i);a.setBarShape(m)}a.setBound2D(new JenScript.Bound2D(h,g,j,i))}},solveHStackedBar:function(a){if(null!=this.getHost()&&null!=this.getHost().getProjection()){a.setHost(this.getHost()),a.normalize();var b=this.getHost().getProjection(),c=void 0;if(a.isAscent()&&(c=new JenScript.Point2D(a.getBase()+a.getValue(),0)),a.isDescent()&&(c=new JenScript.Point2D(a.getBase()-a.getValue(),0)),!a.isValueSet())throw new Error("stacked bar symbol ascent or descent value should be supplied.");if(!a.isBaseSet())throw new Error("stacked bar symbol base value should be supplied.");var d=b.userToPixel(c),e=new JenScript.Point2D(a.getBase(),0),f=b.userToPixel(e),g=this.getComponentYLocation(a),h=f.x;a.isAscent()&&(h=f.x),a.isDescent()&&(h=d.x);var i=a.getThickness(),j=Math.abs(d.x-f.x);if("Round"===a.getMorpheStyle()){var k=a.getRound(),l=(new JenScript.SVGPath).Id(a.Id);a.isAscent()?(l.moveTo(h,g),l.lineTo(h+j-k,g),l.quadTo(h+j,g,h+j,g+k),l.lineTo(h+j,g+i-k),l.quadTo(h+j,g+i,h+j-k,g+i),l.lineTo(h,g+i),l.close()):a.isDescent()&&(l.moveTo(h+k,g),l.lineTo(h+j,g),l.lineTo(h+j,g+i),l.lineTo(h+k,g+i),l.quadTo(h,g+i,h,g+i-k),l.lineTo(h,g+k),l.quadTo(h,g,h+k,g),l.close()),a.setBarShape(l)}else{var m=(new JenScript.SVGRect).Id(a.Id).origin(h,g).size(j,i);a.setBarShape(m)}a.setBound2D(new JenScript.Bound2D(h,g,j,i));for(var n=a.getStacks(),o=0,p=0;p<n.length;p++){var q=n[p];q.setThickness(a.getThickness()),q.setBase(a.getStackBase(q)),q.setNature(a.getNature()),q.setBarFill(a.getBarFill()),a.isAscent()?q.setAscentValue(q.getNormalizedValue()):a.isDescent()&&q.setDescentValue(q.getNormalizedValue());var r=null;a.isAscent()?r=new JenScript.Point2D(a.getStackBase(q)+q.getNormalizedValue(),0):a.isDescent()&&(r=new JenScript.Point2D(a.getStackBase(q)-q.getNormalizedValue(),0));var s=b.userToPixel(r),t=new JenScript.Point2D(a.getStackBase(q),0),u=b.userToPixel(t),v=this.getComponentYLocation(a),w=u.x;a.isAscent()&&(w=u.x),a.isDescent()&&(w=s.x);var x=a.getThickness(),y=Math.abs(s.x-u.x);if("Round"===a.getMorpheStyle())if(o==n.length-1){var k=a.getRound(),l=(new JenScript.SVGPath).Id(q.Id);a.isAscent()?(l.moveTo(w,v),l.lineTo(w+y-k,v),l.quadTo(w+y,v,w+y,v+k),l.lineTo(w+y,v+x-k),l.quadTo(w+y,v+x,w+y-k,v+x),l.lineTo(w,v+x),l.close()):a.isDescent()&&(l.moveTo(w+k,v),l.lineTo(w+y,v),l.lineTo(w+y,v+x),l.lineTo(w+k,v+x),l.quadTo(w,v+x,w,v+x-k),l.lineTo(w,v+k),l.quadTo(w,v,w+k,v),l.close()),q.setBarShape(l)}else{var m=(new JenScript.SVGRect).Id(q.Id).origin(w,v).size(y,x);q.setBarShape(m)}else{var m=(new JenScript.SVGRect).Id(q.Id).origin(w,v).size(y,x);q.setBarShape(m)}q.setBound2D(new JenScript.Bound2D(w,v,y,x)),o++}}},onRelease:function(a,b,c,d){this.barCheck("release",a,c,d)},onPress:function(a,b,c,d){this.barCheck("press",a,c,d)},onMove:function(a,b,c,d){this.barCheck("move",a,c,d)},barCheck:function(a,b,c,d){for(var e=this,f=function(b){"press"===a?e.fireSymbolEvent("press",{symbol:b,x:c,y:d,device:{x:c,y:d}}):"release"===a?e.fireSymbolEvent("release",{symbol:b,x:c,y:d,device:{x:c,y:d}}):e.barEnterExitTracker(b,c,d)},g=function(b){if(!b.isFiller){var e=void 0!==b.getBound2D()&&b.getBound2D().contains(c,d);"move"!==a&&e&&b.isLockEnter()?f(b):"move"===a&&f(b)}},h=this.getSymbols(),i=0;i<h.length;i++){var j=h[i];if(j instanceof JenScript.SymbolBarStacked){var k=j;g(k);for(var l=k.getStacks(),m=0;m<l.length;m++){var n=l[m];g(n)}}else if(j instanceof JenScript.SymbolBarGroup)for(var o=j,p=o.getSymbolComponents(),q=0;q<p.length;q++){var r=p[q];if(r instanceof JenScript.SymbolBarStacked){var k=r;void 0!==k.getBound2D()&&k.getBound2D().contains(c,d)&&g(k);for(var l=k.getStacks(),m=0;m<l.length;m++){var n=h[m];void 0!==n.getBound2D()&&n.getBound2D().contains(c,d)&&n.isLockEnter()&&g(n)}}else r instanceof JenScript.SymbolBar&&void 0!==r.getBound2D()&&r.getBound2D().contains(c,d)&&r.isLockEnter()&&g(r)}else j instanceof JenScript.SymbolBar&&g(j)}},barEnterExitTracker:function(a,b,c){void 0!==a.getBound2D()&&(a.getBound2D().contains(b,c)&&!a.isLockEnter()&&(a.setLockEnter(!0),this.fireSymbolEvent("enter",{symbol:a,x:b,y:c,device:{x:b,y:c}})),a.getBound2D().contains(b,c)&&a.isLockEnter()?this.fireSymbolEvent("move",{symbol:a,x:b,y:c,device:{x:b,y:c}}):!a.getBound2D().contains(b,c)&&a.isLockEnter()&&(a.setLockEnter(!1),this.fireSymbolEvent("exit",{symbol:a,x:b,y:c,device:{x:b,y:c}})))}})}(),function(){JenScript.SymbolPointLayer=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolPointLayer,JenScript.SymbolLayer),JenScript.Model.addMethods(JenScript.SymbolPointLayer,{_init:function(a){a=a||{},JenScript.SymbolLayer.call(this,a),this.symbolListeners=[]},addSymbolListener:function(a,b,c){if(void 0===c)throw new Error("Symbol listener, listener name should be supplied.");var d={action:a,onEvent:b,name:c};this.symbolListeners[this.symbolListeners.length]=d},fireSymbolEvent:function(a,b){for(var c=0;c<this.symbolListeners.length;c++){var d=this.symbolListeners[c];a===d.action&&d.onEvent(b)}},getFlattenSymbolComponents:function(){for(var a=[],b=0;b<this.getSymbols().length;b++){var c=this.getSymbols()[b];c instanceof JenScript.SymbolComponent&&!(c instanceof JenScript.SymbolPolylinePoint)&&(a[a.length]=c)}return a},paintLayer:function(a,b,c){if("Device"===b&&"SymbolLayer"===c)for(var d=0;d<this.getSymbols().length;d++){var e=this.getSymbols()[d];if(!e.isFiller)if(e instanceof JenScript.SymbolPoint&&!(e instanceof JenScript.SymbolPolylinePoint))for(var f=e.getPointSymbolPainters(),g=0;g<f.length;g++)f[g].paintSymbol(a,e,b);else e instanceof JenScript.SymbolPolylinePoint&&void 0!==e.getPolylinePainter()&&e.getPolylinePainter().paintSymbol(a,e,b)}},solveSymbolComponent:function(a){a.isFiller||("Vertical"===this.getHost().getNature()&&this.solveVSymbolComponent(a),"Horizontal"===this.getHost().getNature()&&this.solveHSymbolComponent(a))},solveVSymbolComponent:function(a){a.setNature("Vertical"),a instanceof JenScript.SymbolPoint&&!(a instanceof JenScript.SymbolPolylinePoint)?this.solveVPointSymbol(a):a instanceof JenScript.SymbolPolylinePoint},solveHSymbolComponent:function(a){a.setNature(SymbolNature.Horizontal),a instanceof PointSymbol&&!(a instanceof PolylinePointSymbol)?solveHPointSymbol(a):a instanceof PolylinePointSymbol},solveVPointSymbol:function(a){var b=this.getHost().getProjection();a.setHost(this.getHost());var c=new JenScript.Point2D(0,a.getValue()),d=b.userToPixel(c);a.setDeviceValue(d.getY());var e=this.getComponentXLocation(a),f=new JenScript.Point2D(e,d.getY()),g=(new JenScript.SVGRect).origin(f.getX()-a.getSensibleRadius(),f.getY()-a.getSensibleRadius()).size(2*a.getSensibleRadius(),2*a.getSensibleRadius());a.setSensibleShape(g),a.setDevicePoint(f)},solveHPointSymbol:function(a){var b=this.getHost().getProjection();a.setHost(this.getHost());var c=new JenScript.Point2D(a.getValue(),0),d=b.userToPixel(c);a.setDeviceValue(d.getX()),a.setDevicePoint(new JenScript.Point2D(d.getX(),a.getLocationY()))},onRelease:function(){},onPress:function(){},onMove:function(){},symbolEnterExitTracker:function(a,b,c){void 0!==a.getBound2D()&&(a.getBound2D().contains(b,c)&&!a.isLockEnter()?(a.setLockEnter(!0),this.fireSymbolEvent("enter",{symbol:a,x:b,y:c,device:{x:b,y:c}})):!a.getBound2D().contains(b,c)&&a.isLockEnter()&&(a.setLockEnter(!1),this.fireSymbolEvent("exit",{symbol:a,x:b,y:c,device:{x:b,y:c}})))}})}(),function(){JenScript.SymbolPlugin=function(a){this._init(a)},JenScript.Model.inheritPrototype(JenScript.SymbolPlugin,JenScript.Plugin),JenScript.Model.addMethods(JenScript.SymbolPlugin,{_init:function(a){a=a||{},a.name="SymbolPlugin",a.priority=500,JenScript.Plugin.call(this,a),this.nature=void 0!==a.nature?a.nature:"Vertical",this.layers=[]},toString:function(){return"JenScript.SymbolPlugin"},onProjectionRegister:function(){var a=this;this.getProjection().addProjectionListener("boundChanged",function(){a.repaintPlugin()},"SymbolPlugin projection bound changed")},getNature:function(){return this.nature},setNature:function(a){this.nature=a},addLayer:function(a){a.setHost(this),this.layers[this.layers.length]=a,this.repaintPlugin()},countLayers:function(){return this.layers.length},getLayer:function(a){return this.layers[a]},paintPlugin:function(a,b){this.solveLayers();for(var c=0;c<this.countLayers();c++){var d=this.getLayer(c);d.paintLayer(a,b,"SymbolLayer"),d.paintLayer(a,b,"LabelLayer")}},solveLayers:function(){for(var a=0;a<this.countLayers();a++)this.getLayer(a).solveGeometry()},onRelease:function(a,b,c,d){for(var e=0;e<this.countLayers();e++)this.getLayer(e).onRelease(a,b,c,d)},onPress:function(a,b,c,d){for(var e=0;e<this.countLayers();e++)this.getLayer(e).onPress(a,b,c,d)},onMove:function(a,b,c,d){for(var e=0;e<this.countLayers();e++)this.getLayer(e).onMove(a,b,c,d)}})}();
//# sourceMappingURL=jenscript-symbol.min.js.map