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