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