UNPKG

@leafer-in/arrow

Version:
3 lines (2 loc) 6.03 kB
this.LeaferIN=this.LeaferIN||{},this.LeaferIN.arrow=function(e,t){"use strict";function r(e,t,r,a){var o,n=arguments.length,s=n<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,r):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,a);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(s=(n<3?o(s):n>3?o(t,r,s):o(t,r))||s);return n>3&&s&&Object.defineProperty(t,r,s),s}"function"==typeof SuppressedError&&SuppressedError;class a extends t.LineData{}function o(e){return t.decorateLeafAttr(e,e=>t.attr({set(r){if(this.__setAttr(e,r)){const e=this.__,r="none"!==e.startArrow||"none"!==e.endArrow;e.__useArrow!==r&&t.doBoundsType(this),e.__useArrow=r,t.doStrokeType(this)}}}))}e.Arrow=class extends t.Line{get __tag(){return"Arrow"}constructor(e){super(e),this.__.__useArrow=!0}static registerArrow(e,r){t.PathArrow.register(e,r)}},r([t.dataProcessor(a)],e.Arrow.prototype,"__",void 0),r([o("angle")],e.Arrow.prototype,"endArrow",void 0),e.Arrow=r([t.registerUI()],e.Arrow);const{M:n,L:s,C:c,Q:i,O:l}=t.PathCommandMap,{rotate:h,copyFrom:p,scale:d}=t.PointHelper,f={},_={layout(e,t,r,a,o,h,p){let d,f,_=0,w=e.length;for(;_<w;)switch(d=e[_],d){case n:case s:u(e,_+1,t,r,a,o,h,p),_+=3;break;case c:for(f=1;f<6;f+=2)u(e,_+f,t,r,a,o,h,p);_+=7;break;case i:for(f=1;f<4;f+=2)u(e,_+f,t,r,a,o,h,p);_+=5;break;case l:e[_+1]+=t,e[_+2]+=r,a&&(e[_+3]*=a),h&&(e[_+4]+=h,e[_+5]+=h),_+=7}},rotate(e,t,r){_.layout(e,0,0,1,1,t,r)}};function u(e,t,r,a,o,n,s,c){p(f,e[t],e[t+1]),s&&h(f,s,c),o&&d(f,o,n),e[t]=r+f.x,e[t+1]=a+f.y}const{layout:w,rotate:y}=_,{getAngle:A}=t.PointHelper,P={x:0},b={x:-.5},x={connect:P,offset:{x:-.71,bevelJoin:.36,roundJoin:.22},path:[1,-3,-3,2,0,0,2,-3,3]},k={connect:b,offset:{x:-1.207,bevelJoin:.854,roundJoin:.707},path:[1,-3,-3,2,0,0,2,-1,0]},g=[1,-3,0,2,-3,-2,2,0,0,2,-3,2,2,-3,0],D={connect:P,offset:{x:-.9,bevelJoin:.624,roundJoin:.4},path:[...g]},J=t.DataHelper.clone(D);J.path=[...g,1,-2.05,1.1,2,-2.05,-1.1],J.dashPath=[1,-2,0,2,-.5,0];const m={connect:P,offset:b,path:[...D.path]},v={connect:P,offset:b,path:[...J.path],dashPath:[1,-2.5,0,2,-1,0]};y(m.path,180,{x:-1.5,y:0}),y(v.path,180,{x:-1.5,y:0});const H=[1,-3,0,2,-3.5,-1.8,2,0,0,2,-3.5,1.8,2,-3,0],L={connect:P,offset:{x:-1.1,bevelJoin:.872,roundJoin:.6},path:[...H]},O=t.DataHelper.clone(L);O.path=[...H,1,-2.25,.95,2,-2.25,-.95],O.dashPath=[1,-3,0,2,-.5,0];const S={connect:{x:-1.8},path:[1,1.8,-.1,2,1.8,0,26,0,0,1.8,0,359,0]},C={connect:{x:.5},path:[...S.path]},I=t.DataHelper.clone(C);I.path=[...S.path,1,0,0,26,0,0,1,0,360,0],I.dashPath=[1,-.5,0,2,.5,0];const R={connect:{x:-1.4},path:[1,-1.4,0,2,-1.4,-1.4,2,1.4,-1.4,2,1.4,1.4,2,-1.4,1.4,2,-1.4,0]},j={path:[...R.path]},F={path:[...R.path,2,-1.4,-.49,2,1,-.49,1,-1.4,.49,2,1,.49]},M=t.DataHelper.clone(R);M.connect.x=-1.9;const U=t.DataHelper.clone(j),N=t.DataHelper.clone(F);y(M.path,45),y(U.path,45),y(N.path,45);const W={angle:x,"angle-side":k,arrow:O,triangle:J,"triangle-flip":v,circle:I,"circle-line":S,square:F,"square-line":R,diamond:N,"diamond-line":M,mark:{offset:b,path:[1,0,-2,2,0,2]}},q={triangle:D,"triangle-flip":m,arrow:L,circle:C,square:j,diamond:U};function B(e,r,a,o,n,s,c){let i,l,h=1,p=0;const{strokeCap:d,strokeJoin:f}=e.__;if(t.isObject(r))if(r.type){if(h=r.scale||1,p=r.rotation||0,i=W[r.type],h>1){const e=q[r.type];e&&(i=e,l=!0)}}else i=r;else i=W[r];l||(l=i.fill);const{offset:_,connect:u,path:y,dashPath:P}=i;let b=u?u.x*h:0,x=_?_.x:0;const k=[...y];c&&P&&k.push(...P),"none"!==d&&(b-=.5),_&&("round"===f&&_.roundJoin?x+=_.roundJoin:"bevel"===f&&_.bevelJoin&&(x+=_.bevelJoin)),1!==h&&w(k,0,0,h,h),x&&w(k,x,0),w(k,o.x,o.y,n,n,A(a,o)+p),s.x=(b+x)*n;const g={data:k};return l&&(g.fill=l),g}const{M:T,L:E,C:Q,Q:G,Z:X,N:Z,D:z,X:K,G:V,F:Y,O:$,P:ee,U:te}=t.PathCommandMap,{copy:re,copyFrom:ae,getDistancePoint:oe,isSame:ne}=t.PointHelper,{stintSet:se}=t.DataHelper,ce={},ie={},le={},he={},pe={},de={},fe={list:W,fillList:q,addArrows(e,t){const r=e.__,{startArrow:a,endArrow:o,__strokeWidth:n,dashPattern:s,__pathForRender:c,cornerRadius:i}=r,l=!i;let h,p,d,f;t||(r.__strokeWidthCache=n);let _,u=0,w=c.length,y=0,A=a&&"none"!==a;for(;u<w;){switch(_=c[u],_){case T:case E:(y<2||u+6>=w)&&(re(he,de),ae(de,c[u+1],c[u+2]),!y&&A&&re(ie,de)),u+=3;break;case Q:(1===y||u+7>=w-3)&&(_e(c,pe,de,u+3),he.x=c[u+1],he.y=c[u+2]),u+=7;break;case G:(1===y||u+5>=w-3)&&(_e(c,pe,de,u+1),re(he,pe)),u+=5;break;case X:return;case Z:u+=5;break;case z:u+=9;break;case K:u+=6;break;case V:u+=9;break;case Y:u+=5;break;case $:u+=7;break;case ee:u+=4;break;case te:(1===y||u+6>=w-3)&&(_e(c,pe,de,u+1),re(he,pe),u+6!==w&&(de.x-=(de.x-pe.x)/10,de.y-=(de.y-pe.y)/10)),u+=6}if(y++,1===y&&_!==T)return;if(2===y&&A&&re(le,_===E?de:ne(he,ie)?pe:he),u===w){const t=r.__pathForRender=l?[...c]:c;if(A&&(h=B(e,a,le,ie,n,ce,!!s),p=h.fill||s,p||t.push(...h.data),ce.x&&(oe(ie,le,-ce.x,!0),t[1]=le.x,t[2]=le.y)),o&&"none"!==o&&(ne(pe,de)&&re(pe,he),d=B(e,o,pe,de,n,ce,!!s),f=d.fill||s,f||t.push(...d.data),ce.x)){let e;switch(oe(de,pe,-ce.x,!0),_){case E:e=u-3+1;break;case Q:e=u-7+5;break;case G:e=u-5+3;break;case te:e=u-6+3}e&&ue(t,pe,e)}}else re(pe,de);se(r,"__startArrowPath",p&&h),se(r,"__endArrowPath",f&&d)}},updateArrow(e){const t=e.__;t.strokeScaleFixed&&t.__strokeWidthCache!==t.__strokeWidth&&e.__updateRenderPath(!0)},register(e,t,r){this.list[e]=t,r&&(this.fillList[e]=t)},get(e){return this.list[e]}};function _e(e,t,r,a){ae(t,e[a],e[a+1]),ae(r,e[a+2],e[a+3])}function ue(e,t,r){e[r]=t.x,e[r+1]=t.y}return t.Plugin.add("arrow"),t.UI.addAttr("startArrow","none",o),t.UI.addAttr("endArrow","none",o),Object.assign(t.PathArrow,fe),Object.assign(t.Paint,{strokeArrow(e,t,r,a){const{__startArrowPath:o,__endArrowPath:n,dashPattern:s}=t.__;s&&(r.dashPattern=null),o&&(r.beginPath(),t.__drawPathByData(r,o.data),r.stroke(),o.fill&&(r.fillStyle=e,r.fill())),n&&(r.beginPath(),t.__drawPathByData(r,n.data),r.stroke(),n.fill&&(r.fillStyle=e,r.fill()))}}),e.ArrowData=a,e.PathArrowModule=fe,e.PathMatrixHelper=_,e.arrowType=o,e}({},LeaferUI); //# sourceMappingURL=arrow.min.js.map