UNPKG

@leafer-in/arrow

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