realchart
Version:
Wooritech charting library
8 lines (6 loc) • 20.7 kB
JavaScript
/**
* RealChart Pictogram v1.4.12
* Copyright (C) 2023-2026 WooriTech Inc.
* All Rights Reserved.
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("realchart")):"function"==typeof define&&define.amd?define(["exports","realchart"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).RealChartPictogram={},e.RealChart)}(this,(function(e,t){"use strict";function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var s=i(t);class r extends t.BasedSeries{_createLegendMarker(e,i){return t.RectElement.create(e,t.Series.LEGEND_MARKER,0,0,i,i,2)}}r.type=t.PictogramSeriesType,r.defaults=t.extend(t.BasedSeries.defaults,{iconGap:2,integral:!1,integralThreshold:.5});class o extends t.RcElement{constructor(e){super(e,t.SeriesView.POINT_CLASS),this.add(this._back=new t.RectElement(e)),this._back.setTransparent(!0)}preppareIcons(e,t,i,s){}layout(e,t,i){const s=this.wPoint,r=this.hPoint;t-=s/2,r<0&&(e=e.map((e=>-e))),this._back.setBounds(t,i-r,s,r)}}class n extends t.BasedSeriesView{constructor(e){super(e,"rct-pictogram-series"),this._bars=new t.ElementPool(this._pointContainer,o)}_getPointPool(){return this._bars}_preparePoints(e,t,i){}_layoutPoint(e,t,i,s,r,o){}}class a extends t.BarSeriesPoint{_readObject(e,i){super._readObject(e,i),this.figure=t.pickProp(e._figureFielder(i),i.figure)}_readArray(e,t){super._readArray(e,t);const i=+e.options.figureField;isNaN(i)||(this.figure=t[i])}}class h extends t.BarSeriesBase{getMode(){return this._mode}getFigure(){return this._figurePath}getImage(e){let t=e.figure;return"number"==typeof t&&(t=this._imageUrls[t]),!t&&this._op.figureByPoint&&(t=this._imageUrls[e.vindex%this._imageUrls.length]),this._imageRoot+(t||this._imageUrls[0])}getFigureWidth(e){return t.calcPercent(this._widthDim,e,e)}getFigureGap(){return this._figureGap}_createPoint(e){return new a(e)}_createLegendMarker(e,i){return t.RectElement.create(e,t.Series.LEGEND_MARKER,0,0,i,i,2)}_doApply(e){super._doApply(e),this._figureFielder=this._createFielder(e.figureField||"figure"),this._figurePath=t.isArray(e.figurePath)?e.figurePath.join(" "):e.figurePath;const i=e.figureImage;t.isArray(i)?this._imageUrls=i.slice(0):t.isString(i)?this._imageUrls=[i]:this._imageUrls=[],this._imageRoot=t.isString(e.figureImageRoot)?e.figureImageRoot:"",this._mode="both"===e.mode||"figure"===e.mode?e.mode:e.figurePath?"both":"figure",this._figureGap=t.pickNum(e.figureGap,0),this._widthDim=t.parsePercentSize(e.figureWidth,!0)}}h.type=t.PictorialBarSeriesType,h.defaults=t.extend(t.BarSeriesBase.defaults,{mode:"auto",figureWidth:"100%"});class l extends t.WidgetSeriesPoint{}class c extends l{constructor(e,t){super(e),this.points=t}}class d extends t.WidgetSeriesLabel{getDistance(){return isNaN(this._op.distance)?"far"===this._op.align?d.ENDED_DIST:d.OUTSIDE_DIST:this._op.distance||0}}d.OUTSIDE_DIST=25,d.ENDED_DIST=10;class u extends t.WidgetSeries{get paths(){return this._paths}getPictorialSize(e,i,s){const r=t.calcPercent(this._sizeDim,1),o=t.minv(i*r/e.width,s*r/e.height);return{width:t.pickNum(t.calcPercent(this._widthDim,i),e.width*o),height:t.pickNum(t.calcPercent(this._heightDim,s),e.height*o)}}get pointLabel(){return this._pointLabel}_createLabel(e){return new d(e)}_createPoint(e){return new l(e)}_createOthersPoint(e,t){return e.y=t.map((e=>e.y)).reduce(((e,t)=>e+t)),new c(e,t)}needClip(e){return!1}getTotal(){const e=super.getSum();return Math.max(e,t.calcPercent(this._totalDim,e))}getSum(){const e=super.getSum(),i=t.calcPercent(this._totalDim,e);return Math.max(e,t.pickNum(i,e))}_doApply(e){super._doApply(e),this._paths=t.isArray(e.figure)?e.figure:[e.figure||""],this._setDims(e,"total","width","height"),this._sizeDim=t.parsePercentSize(e.size||"80%",!1)}_createLegendMarker(e,i){return t.RectElement.create(e,t.Series.LEGEND_MARKER,0,0,i,i,2)}}u.type=t.PictorialSeriesType,u.defaults=t.extend(t.WidgetSeries.defaults,{size:"90%",reversed:!1});class _ extends t.BoxPointElementEx{constructor(e){super(e),this.add(this._figureLayer=new t.RcElement(e,"")),this._figureLayer.add(this._figureView=new t.PathElement(e,"")),this.add(this._imageLayer=new t.RcElement(e,"")),this._imageLayer.add(this._imageView=new t.ImageElement(e,!1,"")),this._imageView.setAttr("preserveAspectRatio","none"),this.add(this._boxView=new t.PathElement(e,"")),this._figureView.setAttr("vector-effect","non-scaling-stroke")}renderSvg(e,t,i,s,r){const o=this._figureView;let n;this._imageLayer.setVis(!1),this._figureLayer.setVis(!0),o.scale(1),o.setPath(s),n=o.getBounds(),e.both?o.scale(r/(e.inverted?n.height:n.width)):e.inverted?o.scale(r/n.height,(e.reversed?-1:1)*this.hPoint/n.width):o.scale(r/n.width,(e.reversed?-1:1)*this.hPoint/n.height),this.$_layoutFigure(e,this._figureLayer,this._figureView,t,i)}renderImage(e,t,i,s,r){const o=this._imageView;this._figureLayer.setVis(!1),this._imageLayer.setVis(!0),o.url=s,o.width=r,o.height=e.both?void 0:Math.abs(this.hPoint),this.$_layoutFigure(e,this._imageLayer,o,t,i)}$_layoutFigure(e,i,s,r,o){const n=s.getBounds(),a=!e.upperClip;let h=this.hPoint,l=!1;e.inverted?e.reversed?a?(s.trans(r+n.height/2,o-h),this._dir="left"):h<0?(s.trans(r+n.height/2,-e.yBase-h),this._dir="left"):(s.trans(r-n.height/2,-e.yBase-h),this._dir="right"):a?(s.trans(r-n.height/2,-h),this._dir="right"):h<0?(s.trans(r+n.height/2,-e.yBase-h),this._dir="left"):(s.trans(r-n.height/2,-e.yBase-h),this._dir="right"):e.reversed?a?(s.trans(r+n.width/2,-h),this._dir="bottom"):h<0?(s.trans(r+n.width/2,e.yLen-e.yBase-h),this._dir="bottom"):(s.trans(r-n.width/2,e.yLen-e.yBase-h),this._dir="top"):a?(s.trans(r-n.width/2,o-h),this._dir="top"):h<0?(s.trans(r+n.width/2,e.yLen-e.yBase-h),this._dir="bottom"):(s.trans(r-n.width/2,e.yLen-e.yBase-h),this._dir="top"),a?(s.rotate(e.reversed?180:0),i.removeAttr("clip-path")):(l=this.point.yValue<e.base,e.reversed&&(l=!l),t.Dom.setClipPath(i.dom,l?e.lowerClip:e.upperClip),s.rotate(l?180:0)),this._boxView.setVis(e.both)&&(l||(l=a&&e.reversed),h-=(l?-1:1)*((e.inverted?n.width:n.height)+e.gap),this.$_layoutBox(e,l,r,o,h))}$_layoutBox(e,i,s,r,o){this._boxView.setVis(i?o<0:o>0)&&this._boxView.setPath(t.SvgShapes.bar(s-this.wPoint/2,r,this.wPoint,-o,e.rTop,e.rBottom))}}class g extends t.BarSeriesViewBase{constructor(e){super(e,"rct-pictorialbar-series")}_createBarPool(e,i){return new t.ElementPool(e,_)}_prepareLayoutPoints(e,i){const s=this.model,r=this._yBase,o=this._baseVal>s._yAxisObj.axisMin();if(this._info={inverted:this._inverted,reversed:this._yReversed,base:this._baseVal,yBase:r,both:"both"===s.getMode(),gap:s.getFigureGap(),yLen:this._yLen,rTop:+s.options.topRadius||0,rBottom:+s.options.bottomRadius||0,upperClip:"",lowerClip:""},o){if(!this._upperClip){const e=this.doc,i=this.dom.querySelector("defs")||e.createElementNS(t.SVGNS,"defs"),s=t.Utils.uniqueKey()+"-";this.insertDom(i,this._pointContainer.dom),i.appendChild(this._upperClip=t.Dom.createClipRect(e,s+"upper")),i.appendChild(this._lowerClip=t.Dom.createClipRect(e,s+"lower"))}const s=this._upperClip.firstElementChild,o=this._lowerClip.firstElementChild;this._inverted?(t.Dom.setBounds(s,0,-e,i,e-r),t.Dom.setBounds(o,0,-r,i,e)):(t.Dom.setBounds(s,0,0,e,i-r),t.Dom.setBounds(o,0,i-r,e,r)),this._info.upperClip=this._upperClip.id,this._info.lowerClip=this._lowerClip.id}}_layoutPoint(e,i,s,r,o,n){const a=e.point,h=this.model.getFigure();this._needMask=h&&this._info.both,e.wPoint=o*t.pickNum(a.width,1),e.hPoint=n,e.x=s,h?e.renderSvg(this._info,s,r,h,this._model.getFigureWidth(o)):e.renderImage(this._info,s,r,this._model.getImage(a),this._model.getFigureWidth(o))}setHoverStyle(e){if(super.setHoverStyle(e),this._needMask){const i=getComputedStyle(e.dom),s="none"!==i.stroke?parseFloat(i.strokeWidth):0;if(this._hoverFigureView.parent.setVis(s>0&&this._info.gap<s)){t.Dom.setImportantStyle(e.dom.style,"stroke-width",t.pixel(s+s/2|0));let i=0,r=0;switch(e._dir){case"top":case"right":r=-s/2;break;case"bottom":case"left":r=s/2}this._hoverBoxView.setAttribute("transform",`translate(${i}, ${r})`)}}}focusPointView(e,t){t&&this._needMask?this.$_showHoverView(this._hoverPoint=e).setVis(!0):this._hoverFigureView&&(this._hoverFigureView.parent.setVis(!1),this._hoverPoint=null)}_renderSeries(e,t){super._renderSeries(e,t),this._hoverPoint&&this._hoverFigureView&&this._hoverFigureView.parent.visible&&this.$_showHoverView(this._hoverPoint)}$_showHoverView(e){let i=this._hoverFigureView;if(!i){const e=this.doc;let s;this.add(new t.RcElement(e,"")).add(i=this._hoverFigureView=new t.RcElement(e,"")),i.parent.dom.style.pointerEvents="none",i.appendDom(s=e.createElementNS(t.SVGNS,"path")),s.style.stroke="none",i.parent.appendDom(s=this._hoverBoxView=e.createElementNS(t.SVGNS,"path")),s.style.stroke="none"}const s=i.dom.firstElementChild,r=this._hoverBoxView;return i.parent.setAttr("clip-path",this._pointContainer.getAttr("clip-path")),i.setAttr("clip-path",e._figureLayer.getAttr("clip-path")),s.setAttribute("d",e._figureView.getAttr("d")),s.style.fill=getComputedStyle(e._figureView.dom).fill,s.setAttribute("transform",e._figureView.getTransform()),t.Dom.setVisible(r,e._boxView.visible)&&(r.setAttribute("d",e._boxView.getAttr("d")),r.style.fill=getComputedStyle(e._boxView.dom).fill),this._inverted&&i.parent.setAttr("transform",`rotate(90) translate(${this.height},0) scale(-1, 1)`),i}}class p extends t.PointElement{getTooltipPos(){return{x:this.point.xPos+this.parent.parent.tx,y:this.point.yPos+this.parent.parent.ty}}}class m extends t.WidgetSeriesView{constructor(e){super(e,"rct-pictorial-series");const i=t.Utils.uniqueKey()+"-",s=i+"figure",r=i+"clip",o=i+"hover";this._figurelView=e.createElementNS(t.SVGNS,"use"),this._figurelView.setAttribute("href",`#${s}`),this._figurelView.setAttribute("class","rct-pictorial-series-figure"),this.insertDom(this._figurelView,this._pointContainer.dom);const n=e.createElementNS(t.SVGNS,"defs");this.insertDom(n,this._figurelView),this._sourceView=new t.PathElement(e),this._sourceView.setAttr("vector-effect","non-scaling-stroke"),this._sourceView.dom.id=s,n.appendChild(this._sourceView.dom);const a=e.createElementNS(t.SVGNS,"use"),h=e.createElementNS(t.SVGNS,"clipPath"),l=e.createElementNS(t.SVGNS,"clipPath");a.setAttribute("href",`#${s}`),h.appendChild(a),h.id=r,n.appendChild(h),l.appendChild(this._hoverRect=e.createElementNS(t.SVGNS,"path")),l.id=o,n.appendChild(l),this._hoverView=e.createElementNS(t.SVGNS,"use"),this._hoverView.setAttribute("href",`#${s}`),this._hoverView.setAttribute("clip-path",`url(#${o}`),this._hoverView.style.stroke="none",this._hoverView.style.fill="none",this.appendDom(this._hoverView),this._pointContainer.add(this._sliceLayer=new t.LayerElement(e,null)),this._pointContainer.setAttr("clip-path",`url(#${r})`),this._slices=new t.ElementPool(this._sliceLayer,p),this.add(this._lineContainer=new t.PointLabelLineContainer(e))}_getPointPool(){return this._slices}getClipContainer(){return null}_prepareSeries(e,t){super._prepareSeries(e,t),this.$_prepareSlices(e,t,this._visPoints),this._lineContainer.prepare(t)}_renderSeries(e,i){this.$_renderFigure(this._sourceView,this._model,e,i);const s=this._visPoints,r=this.model.getCenter(e,i),o=this._figurelView.getBoundingClientRect(),n=r.x-o.width/2,a=r.y-o.height/2,h=`translate(${n},${a})`;t.Dom.hasFill(this._figurelView)||(this._figurelView.style.fill="transparent"),this._figurelView.setAttribute("transform",h),this._hoverView.setAttribute("transform",h),o.x=n,o.y=a,this.$_layoutSlices(s,o,e,i),this._pointContainer.trans(n,a),this._labelContainer.trans(n,a),this._lineContainer.trans(n,a),this.resize(o.width,o.height),this._rSave=o,this._wSave=e,this._hSave=i}_runShowEffect(e){const i=this.model.options.reversed;e&&t.SeriesAnimation.reveal(this,{from:"column"===this.model.options.direction?i?"right":"left":i?"top":"bottom",view:this._sliceLayer})}_refreshZombie(){this.$_layoutSlices(this._visPoints,this._rSave,this._wSave,this._hSave),this._hoverPoint&&!t.Dom.isHidden(this._hoverView)&&this.$_showHoverView(this._hoverPoint)}_animationStarted(e){super._animationStarted(e),this._lineContainer.setVis(this._labelContainer.visible)}setHoverStyle(e){super.setHoverStyle(e);const i=getComputedStyle(e.dom),s="none"!==i.stroke&&parseFloat(i.strokeWidth)>0;t.Dom.setVisible(this._hoverView,s)&&Object.assign(this._hoverView.style,{stroke:i.stroke,strokeWidth:i.strokeWidth,strokeDasharray:i.strokeDasharray})}focusPointView(e,t){this._hoverView.style.display=t?"":"none",t&&this.$_showHoverView(e),this._hoverPoint=t?e:null}$_showHoverView(e){this._hoverRect.setAttribute("d",e.getAttr("d"))}$_prepareSlices(e,t,i){this._slices.prepare(i.length,((s,r)=>{const o=s.point=i[r];this._preparePoint(e,t,o,s)}))}$_renderFigure(e,i,s,r){let o,n;e.setPath(i.paths),o=e.getBBox(),n=i.getPictorialSize(o,s,r),e.scale(n.width/o.width,n.height/o.height),t.isIE&&this.$_prepareOutline(this._sourceView.dom,s,r,n.width/o.width,n.height/o.height)}$_layoutSlices(e,t,i,s){const r=this._model,o=r.pointLabel,n=r.options.reversed;this.$_calcRates(e),this._lineContainer.setStyleOrClass(o.connector.options.style),"column"===r.options.direction?this.$_renderHorz(n,t,s):this.$_renderVert(n,t,i)}$_calcRates(e){const i=this._zombie,s=this._zombieRate,r=e.length;let o=this.model.getTotal();isNaN(o)&&(o=e.filter((e=>(e.visible||e===i)&&!e.isNull)).map((e=>e.yValue*(e===i?s:e._isDeleted()?e._vr:1))).reduce(((e,t)=>e+t),0)),r>1||r>0&&!i?1==r&&e[0]._isDeleted()||1===r&&e[0]._vr<1?e[0].yRate=1:e.forEach((e=>{const r=t.fixnum(e.yValue*(e===i?s:e._isDeleted()?e._vr:1)/o)||0;e.yRate=r})):1==r&&(e[0].yRate=t.fixnum(s))}$_createLabelInfo(e){const{a:t,d:i}=e.getCTM(),{width:s,height:r}=e.getBBox();return{dom:e,sx:t,sy:i,wFigure:s,hFigure:r}}$_renderVert(e,i,s){const r=this.model,o=i.width,n=i.height,a=this._labelViews(),h=r.pointLabel,l="inside"===r.getLabelPos(h),c=h.getOffset(),d=h.getDistance(),u=h.getAlign(),_=null==a?void 0:a.textAlign(),g=[],p=h.options.opposite,m=this._lineContainer.setVis(h.connector.visible)?this._lineContainer:null,f=new t.PathBuilder,y=r.getCenter(s,n).x-i.x,w=o/2;let P=e?0:n;const V=a?a.getWidth(0):0,S=g&&!l&&this.$_createLabelInfo(this._sourceView.dom);let b,v;this._slices.forEach((r=>{const h=r.point;if(r.setVis(!h.isNull)){const x=n*h.yRate;if(e?(r.setPath(t.SvgShapes.rectangle(0,P,o,x)),h.yPos=P+x/2,P+=x):(h.yPos=P-x/2,P-=x,r.setPath(t.SvgShapes.rectangle(0,P,o,x))),h.xPos=w,v=null==m?void 0:m.get(h),a&&(b=a.get(h,0))&&b.visible){if(l){const e=b.isDomAnimating(),t=b.getBBox();!e&&b.layout(_||"center"),null==v||v.setVis(!1),b.trans(h.xPos-t.width/2,h.yPos-t.height/2)}else-1===u?this.$_layoutLabelNearVert(S,r,b,_,p,v,f,o,y,c,d):1==u?this.$_layoutLabelFarVert(S,r,b,_,p,v,f,c,d,V,i,s):this.$_layoutLabelOutVert(S,r,b,_,p,v,f,c,d);b.setContrast(l&&r.dom),g.push(b),b.setPosY(b.ty)}else v&&v.setVis(!1)}}))}$_renderHorz(e,i,s){const r=this.model,o=i.width,n=i.height,a=this._labelViews(),h=r.pointLabel,l="inside"===r.getLabelPos(h),c=h.getOffset(),d=h.getDistance(),u=h.getAlign(),_=null==a?void 0:a.textAlign(),g=[],p=h.options.opposite,m=this._lineContainer.setVis(h.connector.visible)?this._lineContainer:null,f=new t.PathBuilder,y=r.getCenter(o,s).y-i.y,w=n/2,P=a?a.getWidth(0):0,V=g&&!l&&this.$_createLabelInfo(this._sourceView.dom);let S,b,v=e?o:0;this._slices.forEach((r=>{const h=r.point;if(r.setVis(!h.isNull)){const x=o*h.yRate;if(e?(h.xPos=v-x/2,v-=x,r.setPath(t.SvgShapes.rectangle(v,0,x,n))):(h.xPos=v+x/2,r.setPath(t.SvgShapes.rectangle(v,0,x,n)),v+=x),h.yPos=w,b=null==m?void 0:m.get(h),a&&(S=a.get(h,0))&&S.visible){if(l){const e=S.isDomAnimating(),t=S.getBBox();!e&&S.layout(_||"center"),S.trans(h.xPos-t.width/2,h.yPos-t.height/2),null==b||b.setVis(!1)}else-1===u?this.$_layoutLabelNearHorz(V,r,S,_,p,b,f,n,y,c,d):1==u?this.$_layoutLabelFarHorz(V,r,S,_,p,b,f,c,d,P,i,s):this.$_layoutLabelOutHorz(V,r,S,_,p,b,f,c,d);S.setContrast(l&&r.dom),g.push(S),S.setPosY(S.ty)}else b&&b.setVis(!1)}}))}$_prepareOutline(e,i,s,r,o){const n=+new Date,a=this.control.canvasCtx(),h=e.getTotalLength(),l=t.maxv(1,Math.round(h/500));let c;a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,i,s),a.scale(r,o),a.fillStyle="red",a.beginPath(),c=e.getPointAtLength(0),a.moveTo(c.x,c.y);for(let t=0;t<h;t+=l)c=e.getPointAtLength(t),a.lineTo(c.x,c.y);a.closePath(),a.fill(),console.log("canvas",+new Date-n,"ms.")}$_calcLabelPosVert(e,t,i){const s=e.dom,r=s.ownerSVGElement.createSVGPoint(),{wFigure:o,sx:n}=e,a=2*(e.sx<0?1:1/e.sx);let h=i?0:e.wFigure;if(r.y=t.point.yPos/e.sy,i){for(;h<o;h+=a)if(r.x=h,s.isPointInFill(r))return h>0&&(r.x-=a/2,s.isPointInFill(r)&&(h=r.x)),h*n}else for(;h>=0;h-=a)if(r.x=h,s.isPointInFill(r))return h<o&&(r.x+=a/2,s.isPointInFill(r)&&(h=r.x)),h*n;return e.wFigure*e.sx/2}$_calcLabelPosVertIE(e,t,i){const s=this.control.canvasCtx(),r={x:0,y:0},{wFigure:o,sx:n}=e,a=2*(n<0?1:1/n);let h=r.y=t.point.yPos,l=i?0:o*n;if(i){for(const e=o*n;l<e;l+=a)if(r.x=l,s.isPointInPath(r.x,h))return l>0&&(r.x-=a/2,s.isPointInPath(r.x,h)&&(l=r.x)),l}else for(;l>=0;l-=a)if(r.x=l,s.isPointInPath(l,h))return l<o*n&&(r.x+=a/2,s.isPointInPath(r.x,h)&&(l=r.x)),l;return o/2}$_layoutLabelOutVert(e,i,s,r,o,n,a,h,l){const c=i.point,d=s.isDomAnimating(),u=s.getBBox(),_=c.yPos;!d&&s.layout(r||(o?"right":"left"));let g=t.isIE?this.$_calcLabelPosVertIE(e,i,o):this.$_calcLabelPosVert(e,i,o);n&&(o?n.setLine(a.reset(0,0).line(-l,0).end()):n.setLine(a.reset(0,0).line(l,0).end()),n.trans(g,_)),o?g-=l+h+u.width:g+=l+h,s.trans(g,_-u.height/2)}$_layoutLabelNearVert(e,i,s,r,o,n,a,h,l,c,d){const u=i.point,_=s.isDomAnimating(),g=s.getBBox(),p=u.yPos;!_&&s.layout(r||(o?"right":"left"));const m=t.isIE?this.$_calcLabelPosVertIE(e,i,o):this.$_calcLabelPosVert(e,i,o);let f=l;o?f-=h/2:f+=h/2,n&&(o?n.setLine(a.reset(0,0).line(f-m-d,0).end()):n.setLine(a.reset(0,0).line(f+d-m,0).end()),n.trans(m,p)),o?f-=c+d+g.width:f+=d+c,s.trans(f,p-g.height/2)}$_layoutLabelFarVert(e,i,s,r,o,n,a,h,l,c,d,u){const _=i.point,g=s.isDomAnimating(),p=s.getBBox(),m=_.yPos;!g&&s.layout(r||(o?"right":"left"));const f=t.isIE?this.$_calcLabelPosVertIE(e,i,o):this.$_calcLabelPosVert(e,i,o);let y;y=o?l+h+c-d.x:u-d.x-l-c-h,n&&(o?n.setLine(a.reset(0,0).line(y-f-l,0).end()):n.setLine(a.reset(0,0).line(y+l-f,0).end()),n.trans(f,m)),o?y-=h+l+p.width:y+=l+h,s.trans(y,m-p.height/2)}$_calcLabelPosHorz(e,t,i){const s=e.dom,r=s.ownerSVGElement.createSVGPoint(),{hFigure:o,sy:n}=e,a=2*(e.sy<0?1:1/e.sy);let h=i?e.hFigure:0;if(r.x=t.point.xPos/e.sx,i){for(;h>=0;h-=a)if(r.y=h,s.isPointInFill(r))return h<e.hFigure&&(r.y+=a/2,s.isPointInFill(r)&&(h=r.y)),h*n}else for(;h<o;h+=a)if(r.y=h,s.isPointInFill(r))return h>0&&(r.y-=a/2,s.isPointInFill(r)&&(h=r.y)),h*n;return e.hFigure*e.sy/2}$_calcLabelPosHorzIE(e,t,i){const s=this.control.canvasCtx(),r={x:0,y:0},{hFigure:o,sy:n}=e,a=2*(e.sy<0?1:1/e.sy);let h=r.x=t.point.xPos,l=i?o*n:0;if(i){for(;l>=0;l-=a)if(r.y=l,s.isPointInPath(h,r.y))return l<o*n&&(r.y+=a/2,s.isPointInPath(h,r.y)&&(l=r.y)),l}else for(;l<o;l+=a)if(r.y=l,s.isPointInPath(h,r.y))return l>0&&(r.y-=a/2,s.isPointInPath(h,r.y)&&(l=r.y)),l;return e.hFigure*e.sy/2}$_layoutLabelOutHorz(e,i,s,r,o,n,a,h,l){const c=i.point,d=s.isDomAnimating(),u=s.getBBox(),_=c.xPos;!d&&s.layout(r);let g=t.isIE?this.$_calcLabelPosHorzIE(e,i,o):this.$_calcLabelPosHorz(e,i,o);n&&(o?n.setLine(a.reset(0,0).line(0,l).end()):n.setLine(a.reset(0,0).line(0,-l).end()),n.trans(_,g)),o?g+=l+h:g-=l+h,s.trans(_-u.width/2,o?g:g-u.height)}$_layoutLabelNearHorz(e,i,s,r,o,n,a,h,l,c,d){const u=i.point,_=s.isDomAnimating(),g=s.getBBox(),p=u.xPos;!_&&s.layout(r||(o?"right":"left"));let m=t.isIE?this.$_calcLabelPosHorzIE(e,i,o):this.$_calcLabelPosHorz(e,i,o),f=l;o?f+=h/2:f-=h/2,n&&(o?n.setLine(a.reset(0,0).line(0,f+d-m).end()):n.setLine(a.reset(0,0).line(0,f-m-d).end()),n.trans(p,m)),o?f+=d+c:f-=c+d+g.height,s.trans(p-g.width/2,f)}$_layoutLabelFarHorz(e,i,s,r,o,n,a,h,l,c,d,u){const _=i.point,g=s.isDomAnimating(),p=s.getBBox(),m=_.xPos;!g&&s.layout(r||(o?"right":"left"));const f=t.isIE?this.$_calcLabelPosHorzIE(e,i,o):this.$_calcLabelPosHorz(e,i,o);let y;y=o?u-d.y-l-c-h:l+h+c-d.y,n&&(o?n.setLine(a.reset(0,0).line(0,y+l-f).end()):n.setLine(a.reset(0,0).line(0,y-f-l).end()),n.trans(m,f)),o?y+=l+h:y-=h+l+p.height,s.trans(m-p.width/2,y)}}function f(e){(function(e){return e.Series&&e.SeriesView})(e)&&(e.Series.register(r),e.Series.register(h),e.Series.register(u),e.SeriesView.register([r,n]),e.SeriesView.register([h,g]),e.SeriesView.register([u,m]))}f(s),e.PictogramSeries=r,e.PictorialBarSeries=h,e.PictorialSeries=u,e.default=f,Object.defineProperty(e,"__esModule",{value:!0})}));