@antv/g6
Version:
graph visualization frame work
2 lines • 6.39 kB
JavaScript
!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@antv/g6")):"function"==typeof define&&define.amd?define(["@antv/g6"],t):"object"==typeof exports?exports["plugin.edge.polyline"]=t(require("@antv/g6")):n["plugin.edge.polyline"]=t(n.G6)}(window,function(n){return function(n){var t={};function e(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return n[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var i in n)e.d(r,i,function(t){return n[t]}.bind(null,i));return r},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="",e(e.s=166)}({166:function(n,t,e){var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},i=e(6),o=i.Util,u={offset:10,borderRadius:10};function a(n,t){var e=Math.min(n.minX,t.minX),r=Math.min(n.minY,t.minY),i=Math.max(n.maxX,t.maxX),o=Math.max(n.maxY,t.maxY);return{centerX:(e+i)/2,centerY:(r+o)/2,minX:e,minY:r,maxX:i,maxY:o,height:o-r,width:i-e}}function f(n,t){return 2*Math.abs(n.centerX-t.centerX)<n.width+t.width&&2*Math.abs(n.centerY-t.centerY)<n.height+t.height}function c(n){var t=n.x,e=n.y;return{centerX:t,centerY:e,minX:t,minY:e,maxX:t,maxY:e,height:0,width:0}}function x(n,t){return 0===n.width&&0===n.height?n:{centerX:n.centerX,centerY:n.centerY,minX:n.minX-t,minY:n.minY-t,maxX:n.maxX+t,maxY:n.maxY+t,height:n.height+2*t,width:n.width+2*t}}function y(n,t){return function(n,t){var e=Math.abs(n.x-t.centerX),r=Math.abs(n.y-t.centerY);return e/t.width>r/t.height}(t,n)?{x:t.x>n.centerX?n.maxX:n.minX,y:t.y}:{x:t.x,y:t.y>n.centerY?n.maxY:n.minY}}function h(n){var t=n.minX,e=n.minY,r=n.maxX,i=n.maxY;return[{x:t,y:e},{x:r,y:e},{x:r,y:i},{x:t,y:i}]}function m(n,t){var e=n.x,r=n.y;return e<t.minX||e>t.maxX||r<t.minY||r>t.maxY}function d(n,t,e,r){var i=t.x-n.x,o=t.y-n.y,u=r.x-e.x,a=r.y-e.y,f=(-o*(n.x-e.x)+i*(n.y-e.y))/(-u*o+i*a),c=(u*(n.y-e.y)-a*(n.x-e.x))/(-u*o+i*a);return f>=0&&f<=1&&c>=0&&c<=1}function p(n,t,e){if(e.width===e.height===0)return!1;var r=h(e),i=r[0],o=r[1],u=r[2],a=r[3];return d(n,t,i,o)||d(n,t,i,a)||d(n,t,o,u)||d(n,t,u,a)}function l(n){return n=function(n){for(var t=[n[0]],e=1;e<n.length;e++){var r=n[e],i=n[e+1],o=n[e-1];i&&o&&(i.x===r.x&&o.x===r.x||i.y===r.y&&o.y===r.y)||t.push(r)}return t}(n=v(n))}function s(n,t){return[n,{x:n.x,y:t.y},t]}function v(n){var t=[],e={};return n.forEach(function(n){var t=n.id=n.x+"-"+n.y;e[t]=n}),o.each(e,function(n){t.push(n)}),t}function g(n,t){return Math.abs(n.x-t.x)+Math.abs(n.y-t.y)}function b(n,t,e,r,i){return g(n,t)+g(n,e)+function(n,t){var e=0;return t.forEach(function(t){t&&(n.x===t.x&&(e+=-2),n.y===t.y&&(e+=-2))}),e}(n,[t,e,r,i])}function X(n,t,e,i,o,u,a){var f=[],c=[t],x={},y={},h={};y[t.id]=0,h[t.id]=b(t,e,t);var m={};n.forEach(function(n){m[n.id]=n});for(var d=function(){var r=void 0,d=1/0;if(c.forEach(function(n){h[n.id]<d&&(d=h[n.id],r=n)}),r===e){var l=[];return function n(t,e,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;t.unshift(e[i]),r[i]&&r[i]!==i&&o<=100&&n(t,e,r,r[i],o+1)}(l,m,x,e.id),{v:l}}!function(n,t){var e=n.indexOf(t);e>-1&&n.splice(e,1)}(c,r),f.push(r),function(n,t,e,r){var i=[];return n.forEach(function(n){n!==t&&(n.x!==t.x&&n.y!==t.y||p(n,t,e)||p(n,t,r)||i.push(n))}),v(i)}(n,r,i,o).forEach(function(n){if(-1===f.indexOf(n)){-1===c.indexOf(n)&&c.push(n);var i=h[r.id]+g(r,n);y[n.id]&&i>=y[n.id]||(x[n.id]=r.id,y[n.id]=i,h[n.id]=y[n.id]+b(n,e,t,u,a))}})};c.length;){var l=d();if("object"===(void 0===l?"undefined":r(l)))return l.v}return console.error("cannot find path: ",n,t,e),[t,e]}function Y(n,t,e,r,i){var o=e&&e.bbox?e.bbox:c(n),u=r&&r.bbox?r.bbox:c(t);if(f(o,u))return l(s(n,t));var d=x(o,i),p=x(u,i);if(f(d,p))return l(s(n,t));var g=y(d,n),b=y(p,t),Y=function(){var n=[],t=[];(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach(function(e){n.push(e.x),t.push(e.y)});var e=Math.min.apply(Math,n),r=Math.max.apply(Math,n),i=Math.min.apply(Math,t),o=Math.max.apply(Math,t);return{centerX:(e+r)/2,centerY:(i+o)/2,maxX:r,maxY:o,minX:e,minY:i,height:o-i,width:r-e}}([g,b]),M=(a(d,p),a(d,Y)),P=a(p,Y),w=[];w=(w=w.concat(h(M))).concat(h(P));var j={x:(n.x+t.x)/2,y:(n.y+t.y)/2};[Y,M,P].forEach(function(n){w=w.concat(function(n,t){return function(n,t){return t<n.minX||t>n.maxX?[]:[{x:t,y:n.minY},{x:t,y:n.maxY}]}(n,t.x).concat(function(n,t){return t<n.minY||t>n.maxY?[]:[{x:n.minX,y:t},{x:n.maxX,y:t}]}(n,t.y))}(n,j).filter(function(n){return m(n,d)&&m(n,p)}))}),[{x:g.x,y:b.y},{x:b.x,y:g.y}].forEach(function(n){m(n,d)&&m(n,p)&&w.push(n)}),w.unshift(g),w.push(b);var E=X(w=v(w),g,b,o,u,n,t);return E.unshift(n),E.push(t),l(E)}function M(n,t){var e=[],r=n[0];return e.push("M"+r.x+" "+r.y),n.forEach(function(r,i){var o=n[i+1],u=n[i+2];if(o&&u)if(function(n,t,e){return!(n.x===t.x===e.x||n.y===t.y===e.y)}(r,o,u)){var a=function(n,t,e,r){var i=g(n,t),o=g(e,t);return i<r&&(r=i),o<r&&(r=o),[{x:t.x-r/i*(t.x-n.x),y:t.y-r/i*(t.y-n.y)},{x:t.x-r/o*(t.x-e.x),y:t.y-r/o*(t.y-e.y)}]}(r,o,u,t),f=a[0],c=a[1];e.push("L"+f.x+" "+f.y),e.push("Q"+o.x+" "+o.y+" "+c.x+" "+c.y),e.push("L"+c.x+" "+c.y)}else e.push("L"+o.x+" "+o.y);else o&&e.push("L"+o.x+" "+o.y)}),e.join("")}i.registerEdge("polyline",{getPath:function(n){var t=n.getPoints(),e=n.getSource(),r=n.getTarget();return this.getPathByPoints(t,e,r)},getPathByPoints:function(n,t,e){var r=o.merge({},u).offset,i=Y(n[0],n[n.length-1],t,e,r);return o.pointsToPolygon(i)}}),i.registerEdge("polyline-round",{getPathByPoints:function(n,t,e){var r=o.merge({},u),i=r.offset,a=r.borderRadius;return M(l(Y(n[0],n[n.length-1],t,e,i)),a)}},"polyline")},6:function(t,e){t.exports=n}})});
//# sourceMappingURL=plugin.edge.polyline.js.map