From 4dfdd01627f234f9b857144f37f704019db695a7 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Mon, 21 Sep 2020 16:17:10 +0300 Subject: [PATCH 01/16] Change how anchor points are initialized - The initAnchorPoints function didn't check for edges that have no anchor points. This can cause problems for applications that use this extension and import/export of graphs. PathwayMapper ran into this issue. - Update demo to set initAnchorsAutomatically option as false. Default is still the same. But the changes to how init function works breaks it. - Update version number to match latest release. --- cytoscape-edge-editing.js | 2 +- demo.html | 3 ++- package.json | 2 +- src/anchorPointUtilities.js | 8 ++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index ece8010..3e9070e 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var o=0;o0&&(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=this.syntax[n].pointPos,d=e.data(o),a=e.data(i),r=e.data(s);d.splice(t,1),a.splice(t,1),r&&r.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,d),e.data(i,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance,i=this.syntax[t].pointPos;e.data(n,[]),e.data(o,[]),e.data(i)&&e.data(i,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return w.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},w});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),d.enabled?s(d,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n,c,l,g,u,h,y,v,f,p,x,m,b,A,w,P,E,C,T=e,M="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,R="cy-edge-control-editing-cxt-add-control-point"+r,D="cy-edge-control-editing-cxt-remove-control-point"+r,F="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,O=null,K=!1,W={init:function(){a(t,s,e);var o=e,T=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');T.find("#"+W).length<1&&T.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("inconclusive"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ee=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){C&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),P=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&P"40")return;if(Te[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ce||(Pe=t.edges(":selected"),t.trigger("edgeediting.movestart",[Pe]),Ce=!0);var d=3;if(e.altKey&&e.shiftKey)return;e.altKey?d=1:e.shiftKey&&(d=10);var a=0,r=0;a+=Te[39]?d:0,a-=Te[37]?d:0,r+=Te[40]?d:0,r-=Te[38]?d:0,n={x:a,y:r},(o=Pe).forEach((function(e){var t=s.getAnchorsAsArray(e),o=[];if(null!=t){for(var i=0;i"40"||(e.preventDefault(),Te[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Pe]),Pe=void 0,Ce=!1))}),!0),T.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",c).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[T]?W[T].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===T?"undefined":o(T))&&T?($.error("No such function `"+T+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="inconclusive"!==n.type?n.type:t.getEdgeType(a);"inconclusive"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(n){var o=t.getEdgeType(n),i=t.getAnchorsAsArray(n),s=[];if(null!=i){for(var d=0;d0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,d.weights),i.data(this.syntax[s].distance,d.distances),i.addClass(this.syntax[s].class),d.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)o=s.x,i=t.y;else if(0==a)o=t.x,i=s.y;else{var c=s.y-a*s.x;i=a*(o=(t.y-d*t.x-c)/(a-d))+c}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),a=e.source().position(),d=e.target().position(),c=d.y-a.y,r=d.x-a.x,l=Math.sqrt(r*r+c*c),g={x:r/l,y:c/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,c=e.source().position("x"),r=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:c,y:r}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[c,r].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(o),d=e.data(i),c=e.data(s);a.splice(t,1),d.splice(t,1),c&&c.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,a),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance,i=this.syntax[t].pointPos;e.data(n,[]),e.data(o,[]),e.data(i)&&e.data(i,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,c,r,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=i(),c=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(i()-r);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,r=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=r);var o=f-(r-v),s=o<=0||o>f;s?(d&&(d=clearTimeout(d)),v=r,c=e.apply(l,a)):d||(d=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,c=e.apply(l,a)),!s||g||d||(a=l=void 0),c}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1},c=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?c:("get"!==e&&(a=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(d,e),c=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),c?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),a=n(4),d=n(5),c=0;e.exports=function(e,t){var n,r,l,g,u,h,y,v,f,p,x,m,b,A,w,P,C,E,T=e,M="cy-edge-bend-editing-cxt-add-bend-point"+c,I="cy-edge-bend-editing-cxt-remove-bend-point"+c,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+c,R="cy-edge-control-editing-cxt-add-control-point"+c,D="cy-edge-control-editing-cxt-remove-control-point"+c,F="cy-edge-bend-editing-cxt-remove-multiple-control-point"+c,B=null,O=null,K=!1,W={init:function(){d(t,s,e);var o=e,T=$(this),W="cy-node-edge-editing-stage"+c;c++;var k,z,j=$('
');T.find("#"+W).length<1&&T.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("inconclusive"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),a=oe(n),d=0;i&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==o){var i=s.syntax[o].weight,a=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),re=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,ae()}if(K||void 0!==ge&&(void 0!==re||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=re?ce(n,o,re,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&ce(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,d=n.source().position("x"),c=n.source().position("y"),r=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,c].concat(g).concat([r,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),P=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&P"40")return;if(Te[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(Pe=t.edges(":selected"),t.trigger("edgeediting.movestart",[Pe]),Ee=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,c=0;d+=Te[39]?a:0,d-=Te[37]?a:0,c+=Te[40]?a:0,c-=Te[38]?a:0,n={x:d,y:c},(o=Pe).forEach((function(e){var t=s.getAnchorsAsArray(e),o=[];if(null!=t){for(var i=0;i"40"||(e.preventDefault(),Te[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Pe]),Pe=void 0,Ee=!1))}),!0),T.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",r).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[T]?W[T].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===T?"undefined":o(T))&&T?($.error("No such function `"+T+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",a,a),o.action("removeReconnectedEdge",d,d)}function i(n){var o,i,s,a,d=e.getElementById(n.edge.id()),c="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[c].weight,a=t.syntax[c].distance,o=n.set?d.data(s):n.weights,i=n.set?d.data(a):n.distances):(o=[],i=[]);var r={edge:d,type:c,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[c].class,h=t.syntax[c].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),r}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(n){var o=t.getEdgeType(n),i=t.getAnchorsAsArray(n),s=[];if(null!=i){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/demo.html b/demo.html index 40bab1a..010f53f 100644 --- a/demo.html +++ b/demo.html @@ -116,7 +116,8 @@ cy.edgeEditing({ undoable: true, bendRemovalSensitivity: 16, - enableMultipleAnchorRemovalOption: true + enableMultipleAnchorRemovalOption: true, + initAnchorsAutomatically: false }); cy.style().update(); diff --git a/package.json b/package.json index 0720526..aa32519 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cytoscape-edge-editing", - "version": "3.0.1", + "version": "3.0.2", "description": "A Cytoscape.js extension that enables editing edges by adding and modifying anchor points", "main": "cytoscape-edge-editing.js", "spm": { diff --git a/src/anchorPointUtilities.js b/src/anchorPointUtilities.js index 65efdfc..a0942de 100644 --- a/src/anchorPointUtilities.js +++ b/src/anchorPointUtilities.js @@ -82,6 +82,14 @@ var anchorPointUtilities = { edge.addClass(this.syntax[type]['multiClass']); } } + else { + edge.data(this.syntax[type]['weight'], []); + edge.data(this.syntax[type]['distance'], []); + if (edge.hasClass(this.syntax[type]['class'])) + edge.removeClass(this.syntax[type]['class']); + if (edge.hasClass(this.syntax[type]['multiClass'])) + edge.removeClass(this.syntax[type]['multiClass']); + } } } }, From 6d02678299aa0ae61884bd642ad8816f2232cd6b Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Mon, 16 Nov 2020 10:59:27 +0300 Subject: [PATCH 02/16] Fix typo in imports AnchorPointUtilities -> anchorPointUtilities. Noticed the build error it causes while working on some other problems. Not sure how it was built before. --- src/UIUtilities.js | 2 +- src/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/UIUtilities.js b/src/UIUtilities.js index adcee1b..11e31f3 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -1,5 +1,5 @@ var debounce = require('./debounce'); -var anchorPointUtilities = require('./AnchorPointUtilities'); +var anchorPointUtilities = require('./anchorPointUtilities'); var reconnectionUtilities = require('./reconnectionUtilities'); var registerUndoRedoFunctions = require('./registerUndoRedoFunctions'); var stageId = 0; diff --git a/src/index.js b/src/index.js index 2b75662..c4a5ea4 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ ;(function(){ 'use strict'; - var anchorPointUtilities = require('./AnchorPointUtilities'); + var anchorPointUtilities = require('./anchorPointUtilities'); var debounce = require("./debounce"); // registers the extension on a cytoscape lib ref From 1d6345b96fd80a15ad9626a73f88c72f6e4aac82 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Mon, 23 Nov 2020 15:04:40 +0300 Subject: [PATCH 03/16] Change drag event callback Drag event unselected all edges and if the dragged node was unselected also unselected all nodes. Remove both of these functionalities. Redraw edge-editing related objects drawn on the canvas on drag event, if necessary. Addresses https://github.com/iVis-at-Bilkent/newt/issues/623. --- cytoscape-edge-editing.js | 2 +- src/UIUtilities.js | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 3e9070e..cce5164 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,d.weights),i.data(this.syntax[s].distance,d.distances),i.addClass(this.syntax[s].class),d.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)o=s.x,i=t.y;else if(0==a)o=t.x,i=s.y;else{var c=s.y-a*s.x;i=a*(o=(t.y-d*t.x-c)/(a-d))+c}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),a=e.source().position(),d=e.target().position(),c=d.y-a.y,r=d.x-a.x,l=Math.sqrt(r*r+c*c),g={x:r/l,y:c/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,c=e.source().position("x"),r=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:c,y:r}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[c,r].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(o),d=e.data(i),c=e.data(s);a.splice(t,1),d.splice(t,1),c&&c.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,a),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance,i=this.syntax[t].pointPos;e.data(n,[]),e.data(o,[]),e.data(i)&&e.data(i,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,c,r,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=i(),c=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(i()-r);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,r=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=r);var o=f-(r-v),s=o<=0||o>f;s?(d&&(d=clearTimeout(d)),v=r,c=e.apply(l,a)):d||(d=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,c=e.apply(l,a)),!s||g||d||(a=l=void 0),c}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1},c=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?c:("get"!==e&&(a=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(d,e),c=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),c?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),a=n(4),d=n(5),c=0;e.exports=function(e,t){var n,r,l,g,u,h,y,v,f,p,x,m,b,A,w,P,C,E,T=e,M="cy-edge-bend-editing-cxt-add-bend-point"+c,I="cy-edge-bend-editing-cxt-remove-bend-point"+c,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+c,R="cy-edge-control-editing-cxt-add-control-point"+c,D="cy-edge-control-editing-cxt-remove-control-point"+c,F="cy-edge-bend-editing-cxt-remove-multiple-control-point"+c,B=null,O=null,K=!1,W={init:function(){d(t,s,e);var o=e,T=$(this),W="cy-node-edge-editing-stage"+c;c++;var k,z,j=$('
');T.find("#"+W).length<1&&T.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("inconclusive"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),a=oe(n),d=0;i&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==o){var i=s.syntax[o].weight,a=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),re=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,ae()}if(K||void 0!==ge&&(void 0!==re||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=re?ce(n,o,re,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&ce(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,d=n.source().position("x"),c=n.source().position("y"),r=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,c].concat(g).concat([r,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),P=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&P"40")return;if(Te[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(Pe=t.edges(":selected"),t.trigger("edgeediting.movestart",[Pe]),Ee=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,c=0;d+=Te[39]?a:0,d-=Te[37]?a:0,c+=Te[40]?a:0,c-=Te[38]?a:0,n={x:d,y:c},(o=Pe).forEach((function(e){var t=s.getAnchorsAsArray(e),o=[];if(null!=t){for(var i=0;i"40"||(e.preventDefault(),Te[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Pe]),Pe=void 0,Ee=!1))}),!0),T.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",r).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[T]?W[T].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===T?"undefined":o(T))&&T?($.error("No such function `"+T+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",a,a),o.action("removeReconnectedEdge",d,d)}function i(n){var o,i,s,a,d=e.getElementById(n.edge.id()),c="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[c].weight,a=t.syntax[c].distance,o=n.set?d.data(s):n.weights,i=n.set?d.data(a):n.distances):(o=[],i=[]);var r={edge:d,type:c,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[c].class,h=t.syntax[c].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),r}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(n){var o=t.getEdgeType(n),i=t.getAnchorsAsArray(n),s=[];if(null!=i){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,d.weights),i.data(this.syntax[s].distance,d.distances),i.addClass(this.syntax[s].class),d.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)o=s.x,i=t.y;else if(0==a)o=t.x,i=s.y;else{var r=s.y-a*s.x;i=a*(o=(t.y-d*t.x-r)/(a-d))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),a=e.source().position(),d=e.target().position(),r=d.y-a.y,c=d.x-a.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(o),d=e.data(i),r=e.data(s);a.splice(t,1),d.splice(t,1),r&&r.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,a),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance,i=this.syntax[t].pointPos;e.data(n,[]),e.data(o,[]),e.data(i)&&e.data(i,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=i(),r=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(d&&(d=clearTimeout(d)),v=c,r=e.apply(l,a)):d||(d=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,a)),!s||g||d||(a=l=void 0),r}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(a=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(d,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),a=n(4),d=n(5),r=0;e.exports=function(e,t){var n,c,l,g,u,h,y,v,f,p,x,m,b,A,w,P,C,E,T=e,M="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,R="cy-edge-control-editing-cxt-add-control-point"+r,D="cy-edge-control-editing-cxt-remove-control-point"+r,F="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,O=null,K=!1,W={init:function(){d(t,s,e);var o=e,T=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');T.find("#"+W).length<1&&T.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("inconclusive"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),a=oe(n),d=0;i&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==o){var i=s.syntax[o].weight,a=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,ae()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=ce?re(n,o,ce,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,d=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),P=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&P"40")return;if(Te[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(Pe=t.edges(":selected"),t.trigger("edgeediting.movestart",[Pe]),Ee=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,r=0;d+=Te[39]?a:0,d-=Te[37]?a:0,r+=Te[40]?a:0,r-=Te[38]?a:0,n={x:d,y:r},(o=Pe).forEach((function(e){var t=s.getAnchorsAsArray(e),o=[];if(null!=t){for(var i=0;i"40"||(e.preventDefault(),Te[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Pe]),Pe=void 0,Ee=!1))}),!0),T.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",c).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[T]?W[T].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===T?"undefined":o(T))&&T?($.error("No such function `"+T+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",a,a),o.action("removeReconnectedEdge",d,d)}function i(n){var o,i,s,a,d=e.getElementById(n.edge.id()),r="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[r].weight,a=t.syntax[r].distance,o=n.set?d.data(s):n.weights,i=n.set?d.data(a):n.distances):(o=[],i=[]);var c={edge:d,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(n){var o=t.getEdgeType(n),i=t.getAnchorsAsArray(n),s=[];if(null!=i){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/src/UIUtilities.js b/src/UIUtilities.js index 11e31f3..e969667 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -951,12 +951,10 @@ module.exports = function (params, cy) { } }); - cy.on('drag', 'node', eDrag = function (event) { - var node = this; - cy.edges().unselect(); - if(!node.selected()){ - cy.nodes().unselect(); - } + cy.on('drag', 'node', eDrag = function () { + if (edgeToHighlight) { + refreshDraws(); + } }); cy.on('tapdrag', eTapDrag = function (event) { /** From 2a4c68a5ffefa32d20669eb20cffdb23398a5d4a Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Tue, 24 Nov 2020 13:33:26 +0300 Subject: [PATCH 04/16] Fix a problem with reconnecting edges Fix an issue where reconnecting edges would throw an error. The initAnchorPoints function wouldn't check for weight and distance data in cases where anchor position data didn't exist in edge data, but there was weight and distance data. --- cytoscape-edge-editing.js | 2 +- src/UIUtilities.js | 10 ++++++++++ src/anchorPointUtilities.js | 20 ++++++++++++++++++-- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index cce5164..6310e55 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,d.weights),i.data(this.syntax[s].distance,d.distances),i.addClass(this.syntax[s].class),d.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)o=s.x,i=t.y;else if(0==a)o=t.x,i=s.y;else{var r=s.y-a*s.x;i=a*(o=(t.y-d*t.x-r)/(a-d))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),a=e.source().position(),d=e.target().position(),r=d.y-a.y,c=d.x-a.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(o),d=e.data(i),r=e.data(s);a.splice(t,1),d.splice(t,1),r&&r.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,a),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance,i=this.syntax[t].pointPos;e.data(n,[]),e.data(o,[]),e.data(i)&&e.data(i,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=i(),r=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(d&&(d=clearTimeout(d)),v=c,r=e.apply(l,a)):d||(d=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,a)),!s||g||d||(a=l=void 0),r}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(a=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(d,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),a=n(4),d=n(5),r=0;e.exports=function(e,t){var n,c,l,g,u,h,y,v,f,p,x,m,b,A,w,P,C,E,T=e,M="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,R="cy-edge-control-editing-cxt-add-control-point"+r,D="cy-edge-control-editing-cxt-remove-control-point"+r,F="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,O=null,K=!1,W={init:function(){d(t,s,e);var o=e,T=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');T.find("#"+W).length<1&&T.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("inconclusive"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),a=oe(n),d=0;i&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==o){var i=s.syntax[o].weight,a=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,ae()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=ce?re(n,o,ce,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,d=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),P=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&P"40")return;if(Te[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(Pe=t.edges(":selected"),t.trigger("edgeediting.movestart",[Pe]),Ee=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,r=0;d+=Te[39]?a:0,d-=Te[37]?a:0,r+=Te[40]?a:0,r-=Te[38]?a:0,n={x:d,y:r},(o=Pe).forEach((function(e){var t=s.getAnchorsAsArray(e),o=[];if(null!=t){for(var i=0;i"40"||(e.preventDefault(),Te[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Pe]),Pe=void 0,Ee=!1))}),!0),T.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",c).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[T]?W[T].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===T?"undefined":o(T))&&T?($.error("No such function `"+T+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",a,a),o.action("removeReconnectedEdge",d,d)}function i(n){var o,i,s,a,d=e.getElementById(n.edge.id()),r="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[r].weight,a=t.syntax[r].distance,o=n.set?d.data(s):n.weights,i=n.set?d.data(a):n.distances):(o=[],i=[]);var c={edge:d,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(n){var o=t.getEdgeType(n),i=t.getAnchorsAsArray(n),s=[];if(null!=i){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,d.weights),i.data(this.syntax[s].distance,d.distances),i.addClass(this.syntax[s].class),d.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)o=s.x,i=t.y;else if(0==a)o=t.x,i=s.y;else{var r=s.y-a*s.x;i=a*(o=(t.y-d*t.x-r)/(a-d))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),a=e.source().position(),d=e.target().position(),r=d.y-a.y,c=d.x-a.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(o),d=e.data(i),r=e.data(s);a.splice(t,1),d.splice(t,1),r&&r.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,a),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance,i=this.syntax[t].pointPos;e.data(n,[]),e.data(o,[]),e.data(i)&&e.data(i,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=i(),r=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(d&&(d=clearTimeout(d)),v=c,r=e.apply(l,a)):d||(d=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,a)),!s||g||d||(a=l=void 0),r}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(a=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(d,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),a=n(4),d=n(5),r=0;e.exports=function(e,t){var n,c,l,g,u,h,y,v,f,p,x,m,b,A,w,P,C,E,T=e,M="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,R="cy-edge-control-editing-cxt-add-control-point"+r,D="cy-edge-control-editing-cxt-remove-control-point"+r,F="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,O=null,K=!1,W={init:function(){d(t,s,e);var o=e,T=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');T.find("#"+W).length<1&&T.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("inconclusive"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),a=oe(n),d=0;i&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==o){var i=s.syntax[o].weight,a=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,ae()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=ce?re(n,o,ce,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,d=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),P=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&P"40")return;if(Te[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(Pe=t.edges(":selected"),t.trigger("edgeediting.movestart",[Pe]),Ee=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,r=0;d+=Te[39]?a:0,d-=Te[37]?a:0,r+=Te[40]?a:0,r-=Te[38]?a:0,n={x:d,y:r},(o=Pe).forEach((function(e){var t=s.getAnchorsAsArray(e),o=[];if(null!=t){for(var i=0;i"40"||(e.preventDefault(),Te[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Pe]),Pe=void 0,Ee=!1))}),!0),T.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",c).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[T]?W[T].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===T?"undefined":o(T))&&T?($.error("No such function `"+T+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",a,a),o.action("removeReconnectedEdge",d,d)}function i(n){var o,i,s,a,d=e.getElementById(n.edge.id()),r="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[r].weight,a=t.syntax[r].distance,o=n.set?d.data(s):n.weights,i=n.set?d.data(a):n.distances):(o=[],i=[]);var c={edge:d,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(n){var o=t.getEdgeType(n),i=t.getAnchorsAsArray(n),s=[];if(null!=i){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/src/UIUtilities.js b/src/UIUtilities.js index e969667..3879f79 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -495,6 +495,16 @@ module.exports = function (params, cy) { } var sourcePos = edge.sourceEndpoint(); var targetPos = edge.targetEndpoint(); + + // This function is called inside refreshDraws which is called + // for updating Konva shapes on events, but sometimes these values + // will be NaN and Konva will show warnings in console as a result + // This is a check to eliminate those cases since if these values + // are NaN nothing will be drawn anyway. + if (!sourcePos.x || !targetPos.x) { + return; + } + edge_pts.unshift(sourcePos.y); edge_pts.unshift(sourcePos.x); edge_pts.push(targetPos.x); diff --git a/src/anchorPointUtilities.js b/src/anchorPointUtilities.js index a0942de..f7ae668 100644 --- a/src/anchorPointUtilities.js +++ b/src/anchorPointUtilities.js @@ -70,8 +70,24 @@ var anchorPointUtilities = { else if(type === 'control') anchorPositions = controlPositionsFcn.apply(this, edge); - // calculate relative anchor positions - var result = this.convertToRelativePositions(edge, anchorPositions); + var result = { + weights: [], + distances: [] + }; + + if (anchorPositions) { + result = this.convertToRelativePositions(edge, anchorPositions); + } + else { + var weights = edge.data(this.syntax[type]['weight']); + var distances = edge.data(this.syntax[type]['distance']); + if (weights && distances) { + result = { + weights: weights, + distances: distances + } + } + } // if there are anchors set weights and distances accordingly and add class to enable style changes if (result.distances.length > 0) { From 0f384cbd7cfe0845eb5011df108f8bc1cbeb2899 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Tue, 15 Dec 2020 15:50:36 +0300 Subject: [PATCH 05/16] Fix #42 Added a new extension option to use trailing dividers in context menu options. Set to false by default for backwards compatibility of menu item style. --- README.md | 4 ++++ cytoscape-edge-editing.js | 2 +- demo.html | 9 +++++---- src/UIUtilities.js | 18 ++++++++++++------ src/index.js | 4 +++- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index c233929..f789b2c 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,10 @@ cy.edgeEditing('initialized'); }, // this function is called if reconnected edge is not valid according to validateEdge function actOnUnsuccessfulReconnection: undefined, + // whether 'Remove all bend points' and 'Remove all control points' options should be presented + enableMultipleAnchorRemovalOption: false, + // specifically for edge-editing menu items, whether trailing dividers should be used + useTrailingDividersAfterContextMenuOptions: false, }; ``` diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 6310e55..7ae045a 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,d.weights),i.data(this.syntax[s].distance,d.distances),i.addClass(this.syntax[s].class),d.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)o=s.x,i=t.y;else if(0==a)o=t.x,i=s.y;else{var r=s.y-a*s.x;i=a*(o=(t.y-d*t.x-r)/(a-d))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),a=e.source().position(),d=e.target().position(),r=d.y-a.y,c=d.x-a.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(o),d=e.data(i),r=e.data(s);a.splice(t,1),d.splice(t,1),r&&r.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,a),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance,i=this.syntax[t].pointPos;e.data(n,[]),e.data(o,[]),e.data(i)&&e.data(i,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=i(),r=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(d&&(d=clearTimeout(d)),v=c,r=e.apply(l,a)):d||(d=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,a)),!s||g||d||(a=l=void 0),r}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(a=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(d,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),a=n(4),d=n(5),r=0;e.exports=function(e,t){var n,c,l,g,u,h,y,v,f,p,x,m,b,A,w,P,C,E,T=e,M="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,R="cy-edge-control-editing-cxt-add-control-point"+r,D="cy-edge-control-editing-cxt-remove-control-point"+r,F="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,O=null,K=!1,W={init:function(){d(t,s,e);var o=e,T=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');T.find("#"+W).length<1&&T.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("inconclusive"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),a=oe(n),d=0;i&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==o){var i=s.syntax[o].weight,a=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,ae()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=ce?re(n,o,ce,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,d=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),P=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&P"40")return;if(Te[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(Pe=t.edges(":selected"),t.trigger("edgeediting.movestart",[Pe]),Ee=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,r=0;d+=Te[39]?a:0,d-=Te[37]?a:0,r+=Te[40]?a:0,r-=Te[38]?a:0,n={x:d,y:r},(o=Pe).forEach((function(e){var t=s.getAnchorsAsArray(e),o=[];if(null!=t){for(var i=0;i"40"||(e.preventDefault(),Te[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Pe]),Pe=void 0,Ee=!1))}),!0),T.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",c).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[T]?W[T].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===T?"undefined":o(T))&&T?($.error("No such function `"+T+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",a,a),o.action("removeReconnectedEdge",d,d)}function i(n){var o,i,s,a,d=e.getElementById(n.edge.id()),r="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[r].weight,a=t.syntax[r].distance,o=n.set?d.data(s):n.weights,i=n.set?d.data(a):n.distances):(o=[],i=[]);var c={edge:d,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(n){var o=t.getEdgeType(n),i=t.getAnchorsAsArray(n),s=[];if(null!=i){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var i={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var i=0;i0?(o.data(this.syntax[s].weight,d.weights),o.data(this.syntax[s].distance,d.distances),o.addClass(this.syntax[s].class),d.distances.length>1&&o.addClass(this.syntax[s].multiClass)):(o.data(this.syntax[s].weight,[]),o.data(this.syntax[s].distance,[]),o.hasClass(this.syntax[s].class)&&o.removeClass(this.syntax[s].class),o.hasClass(this.syntax[s].multiClass)&&o.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),i=e.target().position("x"),o=e.target().position("y");if(t==i&&n==o||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),i=(n.position(),t.position(),t.position()),o=n.position(),s=(o.y-i.y)/(o.x-i.x);return{m1:s,m2:-1/s,srcPoint:i,tgtPoint:o}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var i,o,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)i=s.x,o=t.y;else if(0==a)i=t.x,o=s.y;else{var r=s.y-a*s.x;o=a*(i=(t.y-d*t.x-r)/(a-d))+r}return{x:i,y:o}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],i=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],o=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(i.length,o.length),a=e.source().position(),d=e.target().position(),r=d.y-a.y,c=d.x-a.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var i,o=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(o)?e.data(o):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var i=this.syntax[n].weight,o=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(i),d=e.data(o),r=e.data(s);a.splice(t,1),d.splice(t,1),r&&r.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(o,[])):(e.data(i,a),e.data(o,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,i=this.syntax[t].distance,o=this.syntax[t].pointPos;e.data(n,[]),e.data(i,[]),e.data(o)&&e.data(o,[])}},calculateDistance:function(e,t){var n=e.x-t.x,i=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(i,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,o=e-t;return Math.abs(o)<=i||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=i},function(e,t,n){"use strict";var i,o,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(i=Math.max,o=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&i(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=o(),r=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(o()-c);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,c=o(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=c);var i=f-(c-v),s=i<=0||i>f;s?(d&&(d=clearTimeout(d)),v=c,r=e.apply(l,a)):d||(d=setTimeout(A,i))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,a)),!s||g||d||(a=l=void 0),r}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var i,o,s;o=n(0),n(1),s=function(e,t,i){var s=n(3);if(e&&t&&i){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(a=function(e,t){var n={};for(var i in e)n[i]=e[i];for(var i in t)if("bendRemovalSensitivity"==i){var o=t[i];isNaN(o)||(n[i]=o>=0&&o<=20?t[i]:o<0?0:20)}else n[i]=t[i];return n}(d,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return o.getDistancesString(e,"bend")},"segment-weights":function(e){return o.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return o.getDistancesString(e,"control")},"control-point-weights":function(e){return o.getWeightsString(e,"control")},"edge-distances":"node-position"}),o.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&o.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return o.getAnchorsAsArray(e)},initAnchorPoints:function(e){o.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){o.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(i=function(){return s}.call(t,n,t,e))||(e.exports=i),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(1),s=n(0),a=n(4),d=n(5),r=0;e.exports=function(e,t){var n,c,l,g,u,h,y,v,f,p,x,m,b,A,w,C,P,T,E=e,M="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,R="cy-edge-control-editing-cxt-remove-control-point"+r,O="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,F=null,B=null,K=!1,W={init:function(){d(t,s,e);var i=e,E=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');E.find("#"+W).length<1&&E.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(i,o){t&&i===t?n=!0:(e.unbindListeners(i),i.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*ie(e),i=(e.source().position(),e.target().position(),0);t&&i=i-n/2&&e<=i+n/2&&t>=o-n/2&&t<=o+n/2}function se(e,t,n){var i=s.getEdgeType(n);if("inconclusive"===i)return-1;if(null==n.data(s.syntax[i].weight)||0==n.data(s.syntax[i].weight).length)return-1;for(var o=s.getAnchorsAsArray(n),a=ie(n),d=0;o&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var i=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==i){var o=s.syntax[i].weight,a=s.syntax[i].distance;ue={edge:n,type:i,weights:n.data(o)?[].concat(n.data(o)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Pe=!0,ae()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=ce?re(n,i,ce,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){T&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var i=L.touchedAnchorIndex;if(null!=i){var o,d=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,r].concat(g).concat([c,l]),h=i+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)o=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),C=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&C"40")return;if(Ee[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(Ce=t.edges(":selected"),t.trigger("edgeediting.movestart",[Ce]),Te=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,r=0;d+=Ee[39]?a:0,d-=Ee[37]?a:0,r+=Ee[40]?a:0,r-=Ee[38]?a:0,n={x:d,y:r},(i=Ce).forEach((function(e){var t=s.getAnchorsAsArray(e),i=[];if(null!=t){for(var o=0;o"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Ce]),Ce=void 0,Te=!1))}),!0),E.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",c).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[E]?W[E].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===E?"undefined":i(E))&&E?($.error("No such function `"+E+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,i){var o={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(o);var s="source"===i?{source:o.data.id}:{target:o.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+o.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var i={};if("source"===n)i.source=t.id();else{if("target"!==n)return;i.target=t.id()}return e.move(i)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),i=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",i),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),i=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",i),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var i=e.undoRedo({defaultActions:!1,isDebug:!0});i.action("changeAnchorPoints",o,o),i.action("moveAnchorPoints",s,s),i.action("reconnectEdge",a,a),i.action("removeReconnectedEdge",d,d)}function o(n){var i,o,s,a,d=e.getElementById(n.edge.id()),r="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[r].weight,a=t.syntax[r].distance,i=n.set?d.data(s):n.weights,o=n.set?d.data(a):n.distances):(i=[],o=[]);var c={edge:d,type:r,weights:i,distances:o,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var i=e.edges,o=e.positionDiff,s={edges:i,positionDiff:{x:-o.x,y:-o.y}};return function(e,i){i.forEach((function(n){var i=t.getEdgeType(n),o=t.getAnchorsAsArray(n),s=[];if(null!=o){for(var a=0;a0&&(n=i);var i,o=t.newEdge;return(i=e.getElementById(o.data("id")))&&i.length>0&&(o=i),n.inside()&&(n=n.remove()[0]),o.removed()&&(o=o.restore()).unselect(),{oldEdge:o,newEdge:n}}}}])})); \ No newline at end of file diff --git a/demo.html b/demo.html index 010f53f..b5a7b5d 100644 --- a/demo.html +++ b/demo.html @@ -114,10 +114,11 @@ // demo your ext cy.edgeEditing({ - undoable: true, - bendRemovalSensitivity: 16, - enableMultipleAnchorRemovalOption: true, - initAnchorsAutomatically: false + undoable: true, + bendRemovalSensitivity: 16, + enableMultipleAnchorRemovalOption: true, + initAnchorsAutomatically: false, + useTrailingDividersAfterContextMenuOptions: false, }); cy.style().update(); diff --git a/src/UIUtilities.js b/src/UIUtilities.js index 3879f79..fe0abb4 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -341,39 +341,45 @@ module.exports = function (params, cy) { id: addBendPointCxtMenuId, content: opts.addBendMenuItemTitle, selector: 'edge', - onClickFunction: cxtAddBendFcn + onClickFunction: cxtAddBendFcn, + hasTrailingDivider: opts.useTrailingDividersAfterContextMenuOptions, }, { id: removeBendPointCxtMenuId, content: opts.removeBendMenuItemTitle, selector: 'edge', - onClickFunction: cxtRemoveAnchorFcn + onClickFunction: cxtRemoveAnchorFcn, + hasTrailingDivider: opts.useTrailingDividersAfterContextMenuOptions, }, { id: removeAllBendPointCtxMenuId, content: opts.removeAllBendMenuItemTitle, selector: opts.enableMultipleAnchorRemovalOption && ':selected.edgebendediting-hasmultiplebendpoints', - onClickFunction: cxtRemoveAllAnchorsFcn + onClickFunction: cxtRemoveAllAnchorsFcn, + hasTrailingDivider: opts.useTrailingDividersAfterContextMenuOptions, }, { id: addControlPointCxtMenuId, content: opts.addControlMenuItemTitle, selector: 'edge', coreAsWell: true, - onClickFunction: cxtAddControlFcn + onClickFunction: cxtAddControlFcn, + hasTrailingDivider: opts.useTrailingDividersAfterContextMenuOptions, }, { id: removeControlPointCxtMenuId, content: opts.removeControlMenuItemTitle, selector: 'edge', coreAsWell: true, - onClickFunction: cxtRemoveAnchorFcn + onClickFunction: cxtRemoveAnchorFcn, + hasTrailingDivider: opts.useTrailingDividersAfterContextMenuOptions, }, { id: removeAllControlPointCtxMenuId, content: opts.removeAllControlMenuItemTitle, selector: opts.enableMultipleAnchorRemovalOption && ':selected.edgecontrolediting-hasmultiplecontrolpoints', - onClickFunction: cxtRemoveAllAnchorsFcn + onClickFunction: cxtRemoveAllAnchorsFcn, + hasTrailingDivider: opts.useTrailingDividersAfterContextMenuOptions, }, ]; diff --git a/src/index.js b/src/index.js index c4a5ea4..e9f774d 100644 --- a/src/index.js +++ b/src/index.js @@ -51,7 +51,9 @@ return true; }, // whether 'Remove all bend points' and 'Remove all control points' options should be presented - enableMultipleAnchorRemovalOption: false + enableMultipleAnchorRemovalOption: false, + // specifically for edge-editing menu items, whether trailing dividers should be used + useTrailingDividersAfterContextMenuOptions: false, }; var options; From 53a4fde5a943be51f48ae99abcc3bec47b4c4bd9 Mon Sep 17 00:00:00 2001 From: Muhammed Salih Altun Date: Thu, 17 Dec 2020 16:25:30 +0300 Subject: [PATCH 06/16] Update README.md Remove duplicate `enableMultipleAnchorRemovalOption`. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index f789b2c..7414fda 100644 --- a/README.md +++ b/README.md @@ -153,8 +153,6 @@ cy.edgeEditing('initialized'); }, // this function is called if reconnected edge is not valid according to validateEdge function actOnUnsuccessfulReconnection: undefined, - // whether 'Remove all bend points' and 'Remove all control points' options should be presented - enableMultipleAnchorRemovalOption: false, // specifically for edge-editing menu items, whether trailing dividers should be used useTrailingDividersAfterContextMenuOptions: false, }; From 531549e44a4ba2157ff4a8079b81c0d6a618dbb7 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Tue, 22 Dec 2020 13:46:20 +0300 Subject: [PATCH 07/16] Update extension API Address #46 by exposing getEdgeType as part of the extension API. Change word `inconclusive` to `none` for edge type. Add new options for setter functions of extension data which were previously assumed to be edge.data('bendPointPositions') and edge.data('controlPointPositions') which may not be the case. --- README.md | 14 +++++++++--- cytoscape-edge-editing.js | 2 +- src/UIUtilities.js | 33 +++++++++++++++++----------- src/anchorPointUtilities.js | 37 +++++++++++++++----------------- src/index.js | 19 +++++++++++----- src/registerUndoRedoFunctions.js | 13 +++++++---- 6 files changed, 72 insertions(+), 46 deletions(-) diff --git a/README.md b/README.md index 7414fda..19fc91d 100644 --- a/README.md +++ b/README.md @@ -79,10 +79,12 @@ An instance has a number of functions available: * of the ith anchor. (Returns undefined if the curve style is not segments nor unbundled bezier) */ instance.getAnchorsAsArray(ele); -// Initilize anchors for the given edges using 'options.bendPositionsFunction' and 'options.controlPositionsFunction' +// Initilize anchors for the given edges using 'options.bendPointPositionsGetterFunction' and 'options.controlPointPositionsGetterFunction' instance.initAnchorPoints(eles); // Removes anchor with some index from an edge instance.deleteSelectedAnchor(ele, index); +// Get type of an edge as `bend`, `control` or `none` +instance.getEdgeType(ele); ``` You can also get an existing instance: @@ -101,14 +103,20 @@ cy.edgeEditing('initialized'); var options = { // this function specifies the positions of bend points // strictly name the property 'bendPointPositions' for the edge to be detected for bend point edititng - bendPositionsFunction: function(ele) { + bendPointPositionsGetterFunction: function(ele) { return ele.data('bendPointPositions'); }, // this function specifies the poitions of control points // strictly name the property 'controlPointPositions' for the edge to be detected for control point edititng - controlPositionsFunction: function(ele) { + controlPointPositionsGetterFunction: function(ele) { return ele.data('controlPointPositions'); }, + bendPointPositionsSetterFunction: function(ele, bendPointPositions) { + ele.data('bendPointPositions', bendPointPositions); + }, + controlPointPositionsSetterFunction: function(ele, controlPointPositions) { + ele.data('controlPointPositions', controlPointPositions); + }, // whether to initilize bend and control points on creation of this extension automatically initAnchorsAutomatically: true, // the classes of those edges that should be ignored diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 7ae045a..69417b8 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var i={currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances",pointPos:"bendPointPositions"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances",pointPos:"controlPointPositions"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":e.data(this.syntax.bend.pointPos)&&e.data(this.syntax.bend.pointPos).length>0?"bend":e.data(this.syntax.control.pointPos)&&e.data(this.syntax.control.pointPos).length>0?"control":"inconclusive":"inconclusive"},initAnchorPoints:function(e,t,n){for(var i=0;i0?(o.data(this.syntax[s].weight,d.weights),o.data(this.syntax[s].distance,d.distances),o.addClass(this.syntax[s].class),d.distances.length>1&&o.addClass(this.syntax[s].multiClass)):(o.data(this.syntax[s].weight,[]),o.data(this.syntax[s].distance,[]),o.hasClass(this.syntax[s].class)&&o.removeClass(this.syntax[s].class),o.hasClass(this.syntax[s].multiClass)&&o.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),i=e.target().position("x"),o=e.target().position("y");if(t==i&&n==o||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),i=(n.position(),t.position(),t.position()),o=n.position(),s=(o.y-i.y)/(o.x-i.x);return{m1:s,m2:-1/s,srcPoint:i,tgtPoint:o}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var i,o,s=n.srcPoint,a=(n.tgtPoint,n.m1),d=n.m2;if(a==1/0||a==-1/0)i=s.x,o=t.y;else if(0==a)i=t.x,o=s.y;else{var r=s.y-a*s.x;o=a*(i=(t.y-d*t.x-r)/(a-d))+r}return{x:i,y:o}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("inconclusive"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],i=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],o=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(i.length,o.length),a=e.source().position(),d=e.target().position(),r=d.y-a.y,c=d.x-a.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var i,o=this.syntax[n].weight,s=this.syntax[n].distance,a=this.convertToRelativePosition(e,t),d=a.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(o)?e.data(o):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var i=this.syntax[n].weight,o=this.syntax[n].distance,s=this.syntax[n].pointPos,a=e.data(i),d=e.data(o),r=e.data(s);a.splice(t,1),d.splice(t,1),r&&r.splice(t,1),1==a.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==a.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(o,[])):(e.data(i,a),e.data(o,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeInconclusiveShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,i=this.syntax[t].distance,o=this.syntax[t].pointPos;e.data(n,[]),e.data(i,[]),e.data(o)&&e.data(o,[])}},calculateDistance:function(e,t){var n=e.x-t.x,i=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(i,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,o=e-t;return Math.abs(o)<=i||(n?et)},edgeTypeInconclusiveShouldntHappen:function(e,t){return"inconclusive"===e&&(console.log("In "+t+": edge type inconclusive should never happen here!!"),!0)}};e.exports=i},function(e,t,n){"use strict";var i,o,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=(i=Math.max,o=Date.now||function(){return(new Date).getTime()},function(e,t,n){var a,d,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&i(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),d=g=u=void 0,t&&(v=o(),r=e.apply(l,a),g||d||(a=l=void 0))}function b(){var e=t-(o()-c);e<=0||e>t?m(u,d):g=setTimeout(b,e)}function A(){m(p,g)}function w(){if(a=arguments,c=o(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{d||x||(v=c);var i=f-(c-v),s=i<=0||i>f;s?(d&&(d=clearTimeout(d)),v=c,r=e.apply(l,a)):d||(d=setTimeout(A,i))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,a)),!s||g||d||(a=l=void 0),r}return w.cancel=function(){g&&clearTimeout(g),d&&clearTimeout(d),v=0,d=g=u=void 0},w});e.exports=a},function(e,t,n){"use strict";var i,o,s;o=n(0),n(1),s=function(e,t,i){var s=n(3);if(e&&t&&i){var a,d={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(a=function(e,t){var n={};for(var i in e)n[i]=e[i];for(var i in t)if("bendRemovalSensitivity"==i){var o=t[i];isNaN(o)||(n[i]=o>=0&&o<=20?t[i]:o<0?0:20)}else n[i]=t[i];return n}(d,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return o.getDistancesString(e,"bend")},"segment-weights":function(e){return o.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return o.getDistancesString(e,"control")},"control-point-weights":function(e){return o.getWeightsString(e,"control")},"edge-distances":"node-position"}),o.setIgnoredClasses(a.ignoredClasses),a.initAnchorsAutomatically&&o.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,t.edges(),a.ignoredClasses),a.enabled?s(a,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return o.getAnchorsAsArray(e)},initAnchorPoints:function(e){o.initAnchorPoints(a.bendPositionsFunction,a.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){o.removeAnchor(e,t)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(i=function(){return s}.call(t,n,t,e))||(e.exports=i),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=n(1),s=n(0),a=n(4),d=n(5),r=0;e.exports=function(e,t){var n,c,l,g,u,h,y,v,f,p,x,m,b,A,w,C,P,T,E=e,M="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,R="cy-edge-control-editing-cxt-remove-control-point"+r,O="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,F=null,B=null,K=!1,W={init:function(){d(t,s,e);var i=e,E=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');E.find("#"+W).length<1&&E.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(i,o){t&&i===t?n=!0:(e.unbindListeners(i),i.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="inconclusive")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*ie(e),i=(e.source().position(),e.target().position(),0);t&&i=i-n/2&&e<=i+n/2&&t>=o-n/2&&t<=o+n/2}function se(e,t,n){var i=s.getEdgeType(n);if("inconclusive"===i)return-1;if(null==n.data(s.syntax[i].weight)||0==n.data(s.syntax[i].weight).length)return-1;for(var o=s.getAnchorsAsArray(n),a=ie(n),d=0;o&&d0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var i=s.getEdgeType(n);if(he&&!K&&"inconclusive"!==i){var o=s.syntax[i].weight,a=s.syntax[i].distance;ue={edge:n,type:i,weights:n.data(o)?[].concat(n.data(o)):[],distances:n.data(a)?[].concat(n.data(a)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Pe=!0,ae()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var d=e.position||e.cyPosition;-1!=ye&&ve?ve.position(d):null!=ce?re(n,i,ce,d):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,d)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",p=function(e){T&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var i=L.touchedAnchorIndex;if(null!=i){var o,d=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[d,r].concat(g).concat([c,l]),h=i+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)o=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},w=s.getIntersection(n,f,A),C=Math.sqrt(Math.pow(f.x-w.x,2)+Math.pow(f.y-w.y,2));"bend"===(m=s.getEdgeType(n))&&C"40")return;if(Ee[e.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(Ce=t.edges(":selected"),t.trigger("edgeediting.movestart",[Ce]),Te=!0);var a=3;if(e.altKey&&e.shiftKey)return;e.altKey?a=1:e.shiftKey&&(a=10);var d=0,r=0;d+=Ee[39]?a:0,d-=Ee[37]?a:0,r+=Ee[40]?a:0,r-=Ee[38]?a:0,n={x:d,y:r},(i=Ce).forEach((function(e){var t=s.getAnchorsAsArray(e),i=[];if(null!=t){for(var o=0;o"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Ce]),Ce=void 0,Te=!1))}),!0),E.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",c).off("add","node",l).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",n).off("select","edge",u).off("unselect","edge",h).off("tapstart",y).off("tapstart","edge",v).off("tapdrag",f).off("tapend",p).off("cxttap",x).off("drag","node",m),t.unbind("zoom pan",g)}};return W[E]?W[E].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===E?"undefined":i(E))&&E?($.error("No such function `"+E+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,i){var o={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(o);var s="source"===i?{source:o.data.id}:{target:o.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+o.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var i={};if("source"===n)i.source=t.id();else{if("target"!==n)return;i.target=t.id()}return e.move(i)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),i=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",i),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),i=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",i),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var i=e.undoRedo({defaultActions:!1,isDebug:!0});i.action("changeAnchorPoints",o,o),i.action("moveAnchorPoints",s,s),i.action("reconnectEdge",a,a),i.action("removeReconnectedEdge",d,d)}function o(n){var i,o,s,a,d=e.getElementById(n.edge.id()),r="inconclusive"!==n.type?n.type:t.getEdgeType(d);"inconclusive"!==n.type||n.set?(s=t.syntax[r].weight,a=t.syntax[r].distance,i=n.set?d.data(s):n.weights,o=n.set?d.data(a):n.distances):(i=[],o=[]);var c={edge:d,type:r,weights:i,distances:o,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?d.data(s,n.weights):d.removeData(s),l?d.data(a,n.distances):d.removeData(a);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(d.addClass(u),d.removeClass(h)):d.addClass(u+" "+h):d.removeClass(u+" "+h),d.selected()?(d.unselect(),d.select()):d.select()}return d.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var i=e.edges,o=e.positionDiff,s={edges:i,positionDiff:{x:-o.x,y:-o.y}};return function(e,i){i.forEach((function(n){var i=t.getEdgeType(n),o=t.getAnchorsAsArray(n),s=[];if(null!=o){for(var a=0;a0&&(n=i);var i,o=t.newEdge;return(i=e.getElementById(o.data("id")))&&i.length>0&&(o=i),n.inside()&&(n=n.remove()[0]),o.removed()&&(o=o.restore()).unselect(),{oldEdge:o,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPointPositionsGetterFunction(e)&&this.options.bendPointPositionsGetterFunction(e).length>0?"bend":this.options.controlPointPositionsGetterFunction(e)&&this.options.controlPointPositionsGetterFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=e.data(o),d=e.data(i),a=this.options.bendPointPositionsGetterFunction(e);s.splice(t,1),d.splice(t,1),a&&a.splice(t,1),1==s.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==s.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,s),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),this.options.bendPointPositionsGetterFunction(e)&&this.options.bendPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPointPositionsGetterFunction:function(e){return e.data("bendPointPositions")},controlPointPositionsGetterFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPointPositionsGetterFunction,d.controlPointPositionsGetterFunction,t.edges(),d.ignoredClasses),d.enabled?s(d,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPointPositionsGetterFunction,d.controlPointPositionsGetterFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,G=$('
');o.find("#"+W).length<1&&o.append(G),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===j.touchedAnchorIndex&&le&&(j.touchedAnchorIndex=se(le.x,le.y,j.edge)),void 0!==j.touchedAnchorIndex&&re(j.edge,j.edgeType,j.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||j.edge;if(void 0!==n){var o=j.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/src/UIUtilities.js b/src/UIUtilities.js index fe0abb4..f5f4e5d 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -7,6 +7,8 @@ var stageId = 0; module.exports = function (params, cy) { var fn = params; + anchorPointUtilities.options = params; + var addBendPointCxtMenuId = 'cy-edge-bend-editing-cxt-add-bend-point' + stageId; var removeBendPointCxtMenuId = 'cy-edge-bend-editing-cxt-remove-bend-point' + stageId; var removeAllBendPointCtxMenuId = 'cy-edge-bend-editing-cxt-remove-multiple-bend-point' + stageId; @@ -83,7 +85,7 @@ module.exports = function (params, cy) { var anchorManager = { edge: undefined, - edgeType: 'inconclusive', + edgeType: 'none', anchors: [], // remembers the touched anchor to avoid clearing it when dragging happens touchedAnchor: undefined, @@ -186,7 +188,7 @@ module.exports = function (params, cy) { else { this.anchors = []; this.edge = undefined; - this.edgeType = 'inconclusive'; + this.edgeType = 'none'; } }, // render the bend and control shapes of the given edge @@ -255,7 +257,7 @@ module.exports = function (params, cy) { var type = anchorPointUtilities.getEdgeType(edge); var weights, distances, weightStr, distanceStr; - if(type === 'inconclusive'){ + if(type === 'none'){ weights = []; distances = []; } @@ -290,7 +292,7 @@ module.exports = function (params, cy) { var edge = anchorManager.edge; var type = anchorPointUtilities.getEdgeType(edge); - if(anchorPointUtilities.edgeTypeInconclusiveShouldntHappen(type, "UiUtilities.js, cxtRemoveAnchorFcn")){ + if(anchorPointUtilities.edgeTypeNoneShouldntHappen(type, "UiUtilities.js, cxtRemoveAnchorFcn")){ return; } @@ -629,7 +631,7 @@ module.exports = function (params, cy) { function getContainingShapeIndex(x, y, edge) { var type = anchorPointUtilities.getEdgeType(edge); - if(type === 'inconclusive'){ + if(type === 'none'){ return -1; } @@ -731,14 +733,19 @@ module.exports = function (params, cy) { } var type = anchorPointUtilities.getEdgeType(edge); - if(anchorPointUtilities.edgeTypeInconclusiveShouldntHappen(type, "UiUtilities.js, moveAnchorPoints")){ + if(anchorPointUtilities.edgeTypeNoneShouldntHappen(type, "UiUtilities.js, moveAnchorPoints")){ return; } - edge.data(anchorPointUtilities.syntax[type]['pointPos'], nextAnchorPointsPosition); + if (type === 'bend') { + params.bendPointPositionsSetterFunction(edge, nextAnchorPointsPosition); + } + else if (type === 'control') { + params.controlPointPositionsSetterFunction(edge, nextAnchorPointsPosition); + } } }); - anchorPointUtilities.initAnchorPoints(options().bendPositionsFunction, options().controlPositionsFunction, edges); + anchorPointUtilities.initAnchorPoints(options().bendPointPositionsGetterFunction, options().controlPointPositionsGetterFunction, edges); // Listener defined in other extension // Might have compatibility issues after the unbundled bezier @@ -939,7 +946,7 @@ module.exports = function (params, cy) { var type = anchorPointUtilities.getEdgeType(edge); // to avoid errors - if(type === 'inconclusive') + if(type === 'none') type = 'bend'; var cyPosX = tapStartPos.x; @@ -989,7 +996,7 @@ module.exports = function (params, cy) { var type = anchorPointUtilities.getEdgeType(edge); - if(createAnchorOnDrag && !anchorTouched && type !== 'inconclusive') { + if(createAnchorOnDrag && !anchorTouched && type !== 'none') { // remember state before creating anchor var weightStr = anchorPointUtilities.syntax[type]['weight']; var distanceStr = anchorPointUtilities.syntax[type]['distance']; @@ -1157,8 +1164,8 @@ module.exports = function (params, cy) { if(reconnectedEdge){ reconnectionUtilities.copyEdge(edge, reconnectedEdge); - anchorPointUtilities.initAnchorPoints(options().bendPositionsFunction, - options().controlPositionsFunction, [reconnectedEdge]); + anchorPointUtilities.initAnchorPoints(options().bendPointPositionsGetterFunction, + options().controlPointPositionsGetterFunction, [reconnectedEdge]); } if(reconnectedEdge && options().undoable){ @@ -1202,7 +1209,7 @@ module.exports = function (params, cy) { var type = anchorPointUtilities.getEdgeType(edge); // to avoid errors - if(type === 'inconclusive'){ + if(type === 'none'){ type = 'bend'; } diff --git a/src/anchorPointUtilities.js b/src/anchorPointUtilities.js index f7ae668..2a68d17 100644 --- a/src/anchorPointUtilities.js +++ b/src/anchorPointUtilities.js @@ -1,4 +1,5 @@ var anchorPointUtilities = { + options: undefined, currentCtxEdge: undefined, currentCtxPos: undefined, currentAnchorIndex: undefined, @@ -15,7 +16,6 @@ var anchorPointUtilities = { distance: "cyedgebendeditingDistances", weightCss: "segment-weights", distanceCss: "segment-distances", - pointPos: "bendPointPositions", }, control: { edge: "unbundled-bezier", @@ -25,7 +25,6 @@ var anchorPointUtilities = { distance: "cyedgecontroleditingDistances", weightCss: "control-point-weights", distanceCss: "control-point-distances", - pointPos: "controlPointPositions", } }, // gets edge type as 'bend' or 'control' @@ -33,7 +32,7 @@ var anchorPointUtilities = { // example: an edge with type segment and a class 'hascontrolpoints' will be classified as unbundled bezier getEdgeType: function(edge){ if(!edge) - return 'inconclusive'; + return 'none'; else if(edge.hasClass(this.syntax['bend']['class'])) return 'bend'; else if(edge.hasClass(this.syntax['control']['class'])) @@ -42,13 +41,13 @@ var anchorPointUtilities = { return 'bend'; else if(edge.css('curve-style') === this.syntax['control']['edge']) return 'control'; - else if(edge.data(this.syntax['bend']['pointPos']) && - edge.data(this.syntax['bend']['pointPos']).length > 0) + else if(this.options.bendPointPositionsGetterFunction(edge) && + this.options.bendPointPositionsGetterFunction(edge).length > 0) return 'bend'; - else if(edge.data(this.syntax['control']['pointPos']) && - edge.data(this.syntax['control']['pointPos']).length > 0) + else if(this.options.controlPointPositionsGetterFunction(edge) && + this.options.controlPointPositionsGetterFunction(edge).length > 0) return 'control'; - return 'inconclusive'; + return 'none'; }, // initilize anchor points based on bendPositionsFcn and controlPositionFcn initAnchorPoints: function(bendPositionsFcn, controlPositionsFcn, edges) { @@ -56,7 +55,7 @@ var anchorPointUtilities = { var edge = edges[i]; var type = this.getEdgeType(edge); - if (type === 'inconclusive') { + if (type === 'none') { continue; } @@ -213,7 +212,7 @@ var anchorPointUtilities = { getAnchorsAsArray: function(edge) { var type = this.getEdgeType(edge); - if(type === 'inconclusive'){ + if(type === 'none'){ return undefined; } @@ -488,17 +487,16 @@ var anchorPointUtilities = { var type = this.getEdgeType(edge); - if(this.edgeTypeInconclusiveShouldntHappen(type, "anchorPointUtilities.js, removeAnchor")){ + if(this.edgeTypeNoneShouldntHappen(type, "anchorPointUtilities.js, removeAnchor")){ return; } var distanceStr = this.syntax[type]['weight']; var weightStr = this.syntax[type]['distance']; - var positionDataStr = this.syntax[type]['pointPos']; var distances = edge.data(distanceStr); var weights = edge.data(weightStr); - var positions = edge.data(positionDataStr); + var positions = this.options.bendPointPositionsGetterFunction(edge); distances.splice(anchorIndex, 1); weights.splice(anchorIndex, 1); @@ -528,7 +526,7 @@ var anchorPointUtilities = { } var type = this.getEdgeType(edge); - if(this.edgeTypeInconclusiveShouldntHappen(type, "anchorPointUtilities.js, removeAllAnchors")){ + if(this.edgeTypeNoneShouldntHappen(type, "anchorPointUtilities.js, removeAllAnchors")){ return; } @@ -539,13 +537,12 @@ var anchorPointUtilities = { // Remove all anchor point data from edge var distanceStr = this.syntax[type]['weight']; var weightStr = this.syntax[type]['distance']; - var positionDataStr = this.syntax[type]['pointPos']; edge.data(distanceStr, []); edge.data(weightStr, []); // position data is not given in demo so it throws error here // but it should be from the beginning - if (edge.data(positionDataStr)) { - edge.data(positionDataStr, []); + if (this.options.bendPointPositionsGetterFunction(edge)) { + this.options.bendPointPositionsSetterFunction(edge, []); } }, calculateDistance: function(pt1, pt2) { @@ -567,9 +564,9 @@ var anchorPointUtilities = { return n1 > n2; } }, - edgeTypeInconclusiveShouldntHappen: function(type, place){ - if(type === 'inconclusive') { - console.log(`In ${place}: edge type inconclusive should never happen here!!`); + edgeTypeNoneShouldntHappen: function(type, place){ + if(type === 'none') { + console.log(`In ${place}: edge type none should never happen here!!`); return true; } return false; diff --git a/src/index.js b/src/index.js index e9f774d..25a6d69 100644 --- a/src/index.js +++ b/src/index.js @@ -12,14 +12,20 @@ var defaults = { // this function specifies the poitions of bend points // strictly name the property 'bendPointPositions' for the edge to be detected for bend point edititng - bendPositionsFunction: function(ele) { + bendPointPositionsGetterFunction: function(ele) { return ele.data('bendPointPositions'); }, // this function specifies the poitions of control points // strictly name the property 'controlPointPositions' for the edge to be detected for control point edititng - controlPositionsFunction: function(ele) { + controlPointPositionsGetterFunction: function(ele) { return ele.data('controlPointPositions'); }, + bendPointPositionsSetterFunction: function(ele, bendPointPositions) { + ele.data('bendPointPositions', bendPointPositions); + }, + controlPointPositionsSetterFunction: function(ele, controlPointPositions) { + ele.data('controlPointPositions', controlPointPositions); + }, // whether to initilize bend and control points on creation of this extension automatically initAnchorsAutomatically: true, // the classes of those edges that should be ignored @@ -131,7 +137,7 @@ // init bend positions conditionally if (options.initAnchorsAutomatically) { // CHECK THIS, options.ignoredClasses UNUSED - anchorPointUtilities.initAnchorPoints(options.bendPositionsFunction, options.controlPositionsFunction, cy.edges(), options.ignoredClasses); + anchorPointUtilities.initAnchorPoints(options.bendPointPositionsGetterFunction, options.controlPointPositionsGetterFunction, cy.edges(), options.ignoredClasses); } if(options.enabled) @@ -149,12 +155,15 @@ getAnchorsAsArray: function(ele) { return anchorPointUtilities.getAnchorsAsArray(ele); }, - // Initilize points for the given edges using 'options.bendPositionsFunction' + // Initilize points for the given edges using 'options.bendPointPositionsGetterFunction' initAnchorPoints: function(eles) { - anchorPointUtilities.initAnchorPoints(options.bendPositionsFunction, options.controlPositionsFunction, eles); + anchorPointUtilities.initAnchorPoints(options.bendPointPositionsGetterFunction, options.controlPointPositionsGetterFunction, eles); }, deleteSelectedAnchor: function(ele, index) { anchorPointUtilities.removeAnchor(ele, index); + }, + getEdgeType: function(ele) { + return anchorPointUtilities.getEdgeType(ele); } } : undefined; diff --git a/src/registerUndoRedoFunctions.js b/src/registerUndoRedoFunctions.js index 6e08e4b..2d90b2b 100644 --- a/src/registerUndoRedoFunctions.js +++ b/src/registerUndoRedoFunctions.js @@ -9,11 +9,11 @@ module.exports = function (cy, anchorPointUtilities, params) { function changeAnchorPoints(param) { var edge = cy.getElementById(param.edge.id()); - var type = param.type !== 'inconclusive' ? param.type : anchorPointUtilities.getEdgeType(edge); + var type = param.type !== 'none' ? param.type : anchorPointUtilities.getEdgeType(edge); var weights, distances, weightStr, distanceStr; - if(param.type === 'inconclusive' && !param.set){ + if(param.type === 'none' && !param.set){ weights = []; distances = []; } @@ -104,11 +104,16 @@ module.exports = function (cy, anchorPointUtilities, params) { { nextAnchorsPosition.push({x: previousAnchorsPosition[i]+positionDiff.x, y: previousAnchorsPosition[i+1]+positionDiff.y}); } - edge.data(anchorPointUtilities.syntax[type]['pointPos'], nextAnchorsPosition); + if (type === 'bend') { + params.bendPointPositionsSetterFunction(edge, nextAnchorsPosition); + } + else if (type === 'control') { + params.controlPointPositionsSetterFunction(edge, nextAnchorsPosition); + } } }); - anchorPointUtilities.initAnchorPoints(params.bendPositionsFunction, params.controlPositionsFunction, edges); + anchorPointUtilities.initAnchorPoints(params.bendPointPositionsGetterFunction, params.controlPointPositionsGetterFunction, edges); } function reconnectEdge(param){ From b25e4ed4f07ef761807dd1235d11804003ef4584 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Thu, 31 Dec 2020 15:08:03 +0300 Subject: [PATCH 08/16] Changes for backward compatibility Addresses some problems with https://github.com/iVis-at-Bilkent/cytoscape.js-edge-editing/commit/531549e44a4ba2157ff4a8079b81c0d6a618dbb7 where backward compatibility was broken. Update README --- README.md | 14 +++++++------- cytoscape-edge-editing.js | 2 +- src/UIUtilities.js | 6 +++--- src/anchorPointUtilities.js | 21 +++++++++++++++------ src/index.js | 18 +++++++++--------- src/registerUndoRedoFunctions.js | 2 +- 6 files changed, 36 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 19fc91d..1ce3e9e 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ An instance has a number of functions available: * of the ith anchor. (Returns undefined if the curve style is not segments nor unbundled bezier) */ instance.getAnchorsAsArray(ele); -// Initilize anchors for the given edges using 'options.bendPointPositionsGetterFunction' and 'options.controlPointPositionsGetterFunction' +// Initilize anchors for the given edges using 'options.bendPositionsFunction' and 'options.controlPositionsFunction' instance.initAnchorPoints(eles); // Removes anchor with some index from an edge instance.deleteSelectedAnchor(ele, index); @@ -101,19 +101,19 @@ cy.edgeEditing('initialized'); ## Default Options ```js var options = { - // this function specifies the positions of bend points - // strictly name the property 'bendPointPositions' for the edge to be detected for bend point edititng - bendPointPositionsGetterFunction: function(ele) { + // A function parameter to get bend point positions, should return positions of bend points + bendPositionsFunction: function(ele) { return ele.data('bendPointPositions'); }, - // this function specifies the poitions of control points - // strictly name the property 'controlPointPositions' for the edge to be detected for control point edititng - controlPointPositionsGetterFunction: function(ele) { + // A function parameter to get control point positions, should return positions of control points + controlPositionsFunction: function(ele) { return ele.data('controlPointPositions'); }, + // A function parameter to set bend point positions bendPointPositionsSetterFunction: function(ele, bendPointPositions) { ele.data('bendPointPositions', bendPointPositions); }, + // A function parameter to set bend point positions controlPointPositionsSetterFunction: function(ele, controlPointPositions) { ele.data('controlPointPositions', controlPointPositions); }, diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 69417b8..556d00d 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPointPositionsGetterFunction(e)&&this.options.bendPointPositionsGetterFunction(e).length>0?"bend":this.options.controlPointPositionsGetterFunction(e)&&this.options.controlPointPositionsGetterFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o=this.syntax[n].weight,i=this.syntax[n].distance,s=e.data(o),d=e.data(i),a=this.options.bendPointPositionsGetterFunction(e);s.splice(t,1),d.splice(t,1),a&&a.splice(t,1),1==s.length||1==d.length?e.removeClass(this.syntax[n].multiClass):0==s.length||0==d.length?(e.removeClass(this.syntax[n].class),e.data(o,[]),e.data(i,[])):(e.data(o,s),e.data(i,d))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),this.options.bendPointPositionsGetterFunction(e)&&this.options.bendPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPointPositionsGetterFunction:function(e){return e.data("bendPointPositions")},controlPointPositionsGetterFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPointPositionsGetterFunction,d.controlPointPositionsGetterFunction,t.edges(),d.ignoredClasses),d.enabled?s(d,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPointPositionsGetterFunction,d.controlPointPositionsGetterFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,G=$('
');o.find("#"+W).length<1&&o.append(G),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===j.touchedAnchorIndex&&le&&(j.touchedAnchorIndex=se(le.x,le.y,j.edge)),void 0!==j.touchedAnchorIndex&&re(j.edge,j.edgeType,j.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||j.edge;if(void 0!==n){var o=j.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),d.enabled?s(d,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/src/UIUtilities.js b/src/UIUtilities.js index f5f4e5d..fdcc78e 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -745,7 +745,7 @@ module.exports = function (params, cy) { } } }); - anchorPointUtilities.initAnchorPoints(options().bendPointPositionsGetterFunction, options().controlPointPositionsGetterFunction, edges); + anchorPointUtilities.initAnchorPoints(options().bendPositionsFunction, options().controlPositionsFunction, edges); // Listener defined in other extension // Might have compatibility issues after the unbundled bezier @@ -1164,8 +1164,8 @@ module.exports = function (params, cy) { if(reconnectedEdge){ reconnectionUtilities.copyEdge(edge, reconnectedEdge); - anchorPointUtilities.initAnchorPoints(options().bendPointPositionsGetterFunction, - options().controlPointPositionsGetterFunction, [reconnectedEdge]); + anchorPointUtilities.initAnchorPoints(options().bendPositionsFunction, + options().controlPositionsFunction, [reconnectedEdge]); } if(reconnectedEdge && options().undoable){ diff --git a/src/anchorPointUtilities.js b/src/anchorPointUtilities.js index 2a68d17..7ff1b4d 100644 --- a/src/anchorPointUtilities.js +++ b/src/anchorPointUtilities.js @@ -41,11 +41,11 @@ var anchorPointUtilities = { return 'bend'; else if(edge.css('curve-style') === this.syntax['control']['edge']) return 'control'; - else if(this.options.bendPointPositionsGetterFunction(edge) && - this.options.bendPointPositionsGetterFunction(edge).length > 0) + else if(this.options.bendPositionsFunction(edge) && + this.options.bendPositionsFunction(edge).length > 0) return 'bend'; - else if(this.options.controlPointPositionsGetterFunction(edge) && - this.options.controlPointPositionsGetterFunction(edge).length > 0) + else if(this.options.controlPositionsFunction(edge) && + this.options.controlPositionsFunction(edge).length > 0) return 'control'; return 'none'; }, @@ -496,7 +496,13 @@ var anchorPointUtilities = { var distances = edge.data(distanceStr); var weights = edge.data(weightStr); - var positions = this.options.bendPointPositionsGetterFunction(edge); + var positions; + if (type === 'bend') { + positions = this.options.bendPositionsFunction(edge); + } + else if (type === 'control') { + positions = this.options.controlPositionsFunction(edge); + } distances.splice(anchorIndex, 1); weights.splice(anchorIndex, 1); @@ -541,9 +547,12 @@ var anchorPointUtilities = { edge.data(weightStr, []); // position data is not given in demo so it throws error here // but it should be from the beginning - if (this.options.bendPointPositionsGetterFunction(edge)) { + if (type === 'bend' && this.options.bendPositionsFunction(edge)) { this.options.bendPointPositionsSetterFunction(edge, []); } + else if (type === 'control' && this.options.controlPositionsFunction(edge)) { + this.options.controlPointPositionsSetterFunction(edge, []); + } }, calculateDistance: function(pt1, pt2) { var diffX = pt1.x - pt2.x; diff --git a/src/index.js b/src/index.js index 25a6d69..add790e 100644 --- a/src/index.js +++ b/src/index.js @@ -10,19 +10,19 @@ if( !cytoscape || !$ || !Konva){ return; } // can't register if required libraries unspecified var defaults = { - // this function specifies the poitions of bend points - // strictly name the property 'bendPointPositions' for the edge to be detected for bend point edititng - bendPointPositionsGetterFunction: function(ele) { + // A function parameter to get bend point positions, should return positions of bend points + bendPositionsFunction: function(ele) { return ele.data('bendPointPositions'); }, - // this function specifies the poitions of control points - // strictly name the property 'controlPointPositions' for the edge to be detected for control point edititng - controlPointPositionsGetterFunction: function(ele) { + // A function parameter to get control point positions, should return positions of control points + controlPositionsFunction: function(ele) { return ele.data('controlPointPositions'); }, + // A function parameter to set bend point positions bendPointPositionsSetterFunction: function(ele, bendPointPositions) { ele.data('bendPointPositions', bendPointPositions); }, + // A function parameter to set bend point positions controlPointPositionsSetterFunction: function(ele, controlPointPositions) { ele.data('controlPointPositions', controlPointPositions); }, @@ -137,7 +137,7 @@ // init bend positions conditionally if (options.initAnchorsAutomatically) { // CHECK THIS, options.ignoredClasses UNUSED - anchorPointUtilities.initAnchorPoints(options.bendPointPositionsGetterFunction, options.controlPointPositionsGetterFunction, cy.edges(), options.ignoredClasses); + anchorPointUtilities.initAnchorPoints(options.bendPositionsFunction, options.controlPositionsFunction, cy.edges(), options.ignoredClasses); } if(options.enabled) @@ -155,9 +155,9 @@ getAnchorsAsArray: function(ele) { return anchorPointUtilities.getAnchorsAsArray(ele); }, - // Initilize points for the given edges using 'options.bendPointPositionsGetterFunction' + // Initilize points for the given edges using 'options.bendPositionsFunction' initAnchorPoints: function(eles) { - anchorPointUtilities.initAnchorPoints(options.bendPointPositionsGetterFunction, options.controlPointPositionsGetterFunction, eles); + anchorPointUtilities.initAnchorPoints(options.bendPositionsFunction, options.controlPositionsFunction, eles); }, deleteSelectedAnchor: function(ele, index) { anchorPointUtilities.removeAnchor(ele, index); diff --git a/src/registerUndoRedoFunctions.js b/src/registerUndoRedoFunctions.js index 2d90b2b..79889e5 100644 --- a/src/registerUndoRedoFunctions.js +++ b/src/registerUndoRedoFunctions.js @@ -113,7 +113,7 @@ module.exports = function (cy, anchorPointUtilities, params) { } }); - anchorPointUtilities.initAnchorPoints(params.bendPointPositionsGetterFunction, params.controlPointPositionsGetterFunction, edges); + anchorPointUtilities.initAnchorPoints(params.bendPositionsFunction, params.controlPositionsFunction, edges); } function reconnectEdge(param){ From 28534e608c56c5618de0690a91a204ce5b2d53c2 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Mon, 15 Feb 2021 11:23:09 +0300 Subject: [PATCH 09/16] Fix #49 --- README.md | 2 -- cytoscape-edge-editing.js | 2 +- src/index.js | 9 ++------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1ce3e9e..6f2afa2 100644 --- a/README.md +++ b/README.md @@ -127,8 +127,6 @@ cy.edgeEditing('initialized'); anchorShapeSizeFactor: 3, // z-index value of the canvas in which bend points are drawn zIndex: 999, - // whether to start the plugin in the enabled state - enabled: true, /*An option that controls the distance (in pixels) within which a bend point is considered near the line segment between its two neighbors and will be automatically removed min value = 0 , max value = 20 , values less than 0 are set to 0 and values greater than 20 are set to 20 diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 556d00d..d40248c 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,enabled:!0,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),d.enabled?s(d,t):s("unbind",t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,this.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),this.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,this.edges(),d.ignoredClasses),s(d,this)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/src/index.js b/src/index.js index add790e..dfe749e 100644 --- a/src/index.js +++ b/src/index.js @@ -35,9 +35,7 @@ // the size of bend and control point shape is obtained by multipling width of edge with this parameter anchorShapeSizeFactor: 3, // z-index value of the canvas in which bend and control points are drawn - zIndex: 999, - // whether to start the plugin in the enabled state - enabled: true, + zIndex: 999, //An option that controls the distance within which a bend point is considered "near" the line segment between its two neighbors and will be automatically removed bendRemovalSensitivity : 8, // title of add bend point menu item (User may need to adjust width of menu items according to length of this option) @@ -140,10 +138,7 @@ anchorPointUtilities.initAnchorPoints(options.bendPositionsFunction, options.controlPositionsFunction, cy.edges(), options.ignoredClasses); } - if(options.enabled) - uiUtilities(options, cy); - else - uiUtilities("unbind", cy); + uiUtilities(options, cy); } var instance = initialized ? { From f3d54b7583585029d609259cd7040821e8bc5280 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Fri, 26 Mar 2021 15:26:50 +0300 Subject: [PATCH 10/16] Fix #50 --- cytoscape-edge-editing.js | 2 +- demo.html | 2 +- src/index.js | 6 ++++++ src/reconnectionUtilities.js | 6 +----- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index d40248c..d063892 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,this.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),this.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,this.edges(),d.ignoredClasses),s(d,this)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector(".edgeediting-reconnectiondummynode").css({width:1,height:1,visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},classes:["edgeediting-reconnectiondummynode"],renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/demo.html b/demo.html index b5a7b5d..ac75a47 100644 --- a/demo.html +++ b/demo.html @@ -50,7 +50,7 @@ style: [ { - selector: 'node', + selector: 'node[name]', style: { 'content': 'data(name)' } diff --git a/src/index.js b/src/index.js index dfe749e..d7d1600 100644 --- a/src/index.js +++ b/src/index.js @@ -130,6 +130,12 @@ 'edge-distances': 'node-position' }); + cy.style().selector('.edgeediting-reconnectiondummynode').css({ + width: 1, + height: 1, + 'visibility': 'hidden' + }); + anchorPointUtilities.setIgnoredClasses(options.ignoredClasses); // init bend positions conditionally diff --git a/src/reconnectionUtilities.js b/src/reconnectionUtilities.js index 51f4027..84cc891 100644 --- a/src/reconnectionUtilities.js +++ b/src/reconnectionUtilities.js @@ -8,11 +8,7 @@ var reconnectionUtilities = { id: 'nwt_reconnectEdge_dummy', ports: [], }, - style: { - width: 1, - height: 1, - 'visibility': 'hidden' - }, + classes: ['edgeediting-reconnectiondummynode'], renderedPosition: position }; cy.add(dummyNode); From 186e6d25f075f5482a3a4e5b9a4fc3b0de780ac7 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Tue, 30 Mar 2021 11:56:10 +0300 Subject: [PATCH 11/16] Revert "Fix #50" Address https://github.com/iVis-at-Bilkent/newt/issues/652. --- cytoscape-edge-editing.js | 2 +- demo.html | 2 +- src/index.js | 6 ------ src/reconnectionUtilities.js | 6 +++++- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index d063892..d40248c 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector(".edgeediting-reconnectiondummynode").css({width:1,height:1,visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},classes:["edgeediting-reconnectiondummynode"],renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,this.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),this.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,this.edges(),d.ignoredClasses),s(d,this)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/demo.html b/demo.html index ac75a47..b5a7b5d 100644 --- a/demo.html +++ b/demo.html @@ -50,7 +50,7 @@ style: [ { - selector: 'node[name]', + selector: 'node', style: { 'content': 'data(name)' } diff --git a/src/index.js b/src/index.js index d7d1600..dfe749e 100644 --- a/src/index.js +++ b/src/index.js @@ -130,12 +130,6 @@ 'edge-distances': 'node-position' }); - cy.style().selector('.edgeediting-reconnectiondummynode').css({ - width: 1, - height: 1, - 'visibility': 'hidden' - }); - anchorPointUtilities.setIgnoredClasses(options.ignoredClasses); // init bend positions conditionally diff --git a/src/reconnectionUtilities.js b/src/reconnectionUtilities.js index 84cc891..51f4027 100644 --- a/src/reconnectionUtilities.js +++ b/src/reconnectionUtilities.js @@ -8,7 +8,11 @@ var reconnectionUtilities = { id: 'nwt_reconnectEdge_dummy', ports: [], }, - classes: ['edgeediting-reconnectiondummynode'], + style: { + width: 1, + height: 1, + 'visibility': 'hidden' + }, renderedPosition: position }; cy.add(dummyNode); From 3bbafd7a6a29d2471e7c38891c5c8cfee7714945 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Fri, 2 Apr 2021 09:41:47 +0300 Subject: [PATCH 12/16] Fix #50 --- cytoscape-edge-editing.js | 2 +- demo.html | 2 +- src/index.js | 6 ++++++ src/reconnectionUtilities.js | 5 ----- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index d40248c..27a1612 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,this.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),this.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,this.edges(),d.ignoredClasses),s(d,this)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},style:{width:1,height:1,visibility:"hidden"},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file diff --git a/demo.html b/demo.html index b5a7b5d..ac75a47 100644 --- a/demo.html +++ b/demo.html @@ -50,7 +50,7 @@ style: [ { - selector: 'node', + selector: 'node[name]', style: { 'content': 'data(name)' } diff --git a/src/index.js b/src/index.js index dfe749e..5ddeca4 100644 --- a/src/index.js +++ b/src/index.js @@ -130,6 +130,12 @@ 'edge-distances': 'node-position' }); + cy.style().selector("#nwt_reconnectEdge_dummy").css({ + 'width' : '1', + 'height' : '1', + 'visibility' : 'hidden' + }); + anchorPointUtilities.setIgnoredClasses(options.ignoredClasses); // init bend positions conditionally diff --git a/src/reconnectionUtilities.js b/src/reconnectionUtilities.js index 51f4027..adf8f98 100644 --- a/src/reconnectionUtilities.js +++ b/src/reconnectionUtilities.js @@ -8,11 +8,6 @@ var reconnectionUtilities = { id: 'nwt_reconnectEdge_dummy', ports: [], }, - style: { - width: 1, - height: 1, - 'visibility': 'hidden' - }, renderedPosition: position }; cy.add(dummyNode); From 37f456df90bdba424188cc51e8e56c159d0b00ca Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Thu, 29 Apr 2021 10:12:50 +0300 Subject: [PATCH 13/16] Update webpack, webpack-cli Deals with y18n vulnerability https://snyk.io/vuln/npm:y18n --- cytoscape-edge-editing.js | 2 +- package-lock.json | 4015 ++++++------------------------------- package.json | 4 +- 3 files changed, 659 insertions(+), 3362 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 27a1612..97a9337 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t,n){"use strict";var o={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},u=-g.y,h=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),u=this.convertToRelativePosition(e,{x:r,y:c}).weight,h=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[u].concat(e.data(i)?e.data(i):[]).concat([h]),v=this.getAnchorsAsArray(e),f=1/0,p=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=o},function(e,t,n){"use strict";var o,i,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d=(o=Math.max,i=Date.now||function(){return(new Date).getTime()},function(e,t,n){var d,a,r,c,l,g,u,h,y,v=0,f=!1,p=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(t=t<0?0:+t||0,!0===n){var x=!0;p=!1}else y=void 0===(h=n)?"undefined":s(h),!h||"object"!=y&&"function"!=y||(x=!!n.leading,f="maxWait"in n&&o(+n.maxWait||0,t),p="trailing"in n?!!n.trailing:p);function m(t,n){n&&clearTimeout(n),a=g=u=void 0,t&&(v=i(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=t-(i()-c);e<=0||e>t?m(u,a):g=setTimeout(b,e)}function A(){m(p,g)}function P(){if(d=arguments,c=i(),l=this,u=p&&(g||!x),!1===f)var n=x&&!g;else{a||x||(v=c);var o=f-(c-v),s=o<=0||o>f;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||t===f||(g=setTimeout(b,t)),n&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=u=void 0},P});e.exports=d},function(e,t,n){"use strict";var o,i,s;i=n(0),n(1),s=function(e,t,o){var s=n(3);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},function(e,t,n){"use strict";var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(1),s=n(0),d=n(4),a=n(5),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,u,h,y,v,f,p,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,j=$('
');o.find("#"+W).length<1&&o.append(j),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(he&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;ue={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,he=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===N.touchedAnchorIndex&&le&&(N.touchedAnchorIndex=se(le.x,le.y,N.edge)),void 0!==N.touchedAnchorIndex&&re(N.edge,N.edgeType,N.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(pe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||N.edge;if(void 0!==n){var o=N.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),u=[a,r].concat(g).concat([c,l]),h=o+1,y=h-1,v=h+1,f={x:u[2*h],y:u[2*h+1]},p={x:u[2*y],y:u[2*y+1]},x={x:u[2*v],y:u[2*v+1]};if(f.x===p.x&&f.y===p.y||f.x===p.x&&f.y===p.y)i=!0;else{var m,b=(p.y-x.y)/(p.x-x.x),A={srcPoint:p,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,f,A),w=Math.sqrt(Math.pow(f.x-P.x,2)+Math.pow(f.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",h).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",f).off("tapdrag",p).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",u)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},function(e,t,n){"use strict";e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else if(e.hasClass("edgecontrolediting-hascontrolpoints")){n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights");t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints")}e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},function(e,t,n){"use strict";e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var u=t.syntax[r].class,h=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(u),a.removeClass(h)):a.addClass(u+" "+h):a.removeClass(u+" "+h),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}])})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(self,(function(){return(()=>{"use strict";var e={347:(e,t,n)=>{var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(218),s=n(259),d=n(171),a=n(961),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,h,u,y,v,p,f,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,O=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,N=$('
');o.find("#"+W).length<1&&o.append(N),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(ue&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;he={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,ue=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(fe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),h=[a,r].concat(g).concat([c,l]),u=o+1,y=u-1,v=u+1,p={x:h[2*u],y:h[2*u+1]},f={x:h[2*y],y:h[2*y+1]},x={x:h[2*v],y:h[2*v+1]};if(p.x===f.x&&p.y===f.y||p.x===f.x&&p.y===f.y)i=!0;else{var m,b=(f.y-x.y)/(f.x-x.x),A={srcPoint:f,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,p,A),w=Math.sqrt(Math.pow(p.x-P.x,2)+Math.pow(p.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",u).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",p).off("tapdrag",f).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",h)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},259:e=>{var t={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},h=-g.y,u=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),h=this.convertToRelativePosition(e,{x:r,y:c}).weight,u=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[h].concat(e.data(i)?e.data(i):[]).concat([u]),v=this.getAnchorsAsArray(e),p=1/0,f=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=t},218:e=>{var t,n,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=(t=Math.max,n=Date.now||function(){return(new Date).getTime()},function(e,i,s){var d,a,r,c,l,g,h,u,y,v=0,p=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(i=i<0?0:+i||0,!0===s){var x=!0;f=!1}else y=void 0===(u=s)?"undefined":o(u),!u||"object"!=y&&"function"!=y||(x=!!s.leading,p="maxWait"in s&&t(+s.maxWait||0,i),f="trailing"in s?!!s.trailing:f);function m(t,o){o&&clearTimeout(o),a=g=h=void 0,t&&(v=n(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=i-(n()-c);e<=0||e>i?m(h,a):g=setTimeout(b,e)}function A(){m(f,g)}function P(){if(d=arguments,c=n(),l=this,h=f&&(g||!x),!1===p)var t=x&&!g;else{a||x||(v=c);var o=p-(c-v),s=o<=0||o>p;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||i===p||(g=setTimeout(b,i)),t&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=h=void 0},P});e.exports=i},579:(e,t,n)=>{var o,i,s;i=n(259),n(218),s=function(e,t,o){var s=n(347);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},171:e=>{e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else e.hasClass("edgecontrolediting-hascontrolpoints")&&(n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights"),t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints"));e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},961:e=>{e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var h=t.syntax[r].class,u=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(h),a.removeClass(u)):a.addClass(h+" "+u):a.removeClass(h+" "+u),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}},t={};return function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(579)})()})); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6d04c84..9e345f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,184 +1,220 @@ { "name": "cytoscape-edge-editing", - "version": "3.0.1", + "version": "3.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true + }, + "@types/eslint": { + "version": "7.2.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz", + "integrity": "sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "@types/eslint-scope": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.47", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", + "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", "dev": true }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "@types/node": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.1.tgz", + "integrity": "sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==", "dev": true }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "@webassemblyjs/ast": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", + "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/helper-numbers": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0" } }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", + "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", + "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", + "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", "dev": true }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "@webassemblyjs/helper-numbers": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", + "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", + "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", + "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0" } }, "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", + "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", + "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", + "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", + "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/helper-wasm-section": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-opt": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "@webassemblyjs/wast-printer": "1.11.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", + "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", + "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", + "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" } }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "@webassemblyjs/wast-printer": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", + "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", + "@webassemblyjs/ast": "1.11.0", "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "@webpack-cli/configtest": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", + "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", + "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" + "envinfo": "^7.7.3" } }, + "@webpack-cli/serve": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", + "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", + "dev": true + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -191,10 +227,16 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, + "acorn": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", + "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", + "dev": true + }, "ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -203,18 +245,18 @@ "uri-js": "^4.2.2" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -227,111 +269,6 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "assert": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", - "integrity": "sha1-A5OaYiWCqBLMICMgoLmlbJuBWEk=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -1191,86 +1128,12 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1281,135 +1144,6 @@ "concat-map": "0.0.1" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, "browserslist": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", @@ -1426,92 +1160,6 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "camelcase": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", @@ -1537,129 +1185,28 @@ "supports-color": "^2.0.0" } }, - "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true }, "commander": { "version": "2.20.3", @@ -1667,101 +1214,18 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, "core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", "dev": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "cross-env": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", @@ -1815,51 +1279,16 @@ } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1869,75 +1298,6 @@ "ms": "2.0.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", @@ -1947,83 +1307,12 @@ "repeating": "^2.0.0" } }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", - "dev": true - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - } - } - }, "electron-to-chromium": { "version": "1.3.564", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.564.tgz", "integrity": "sha512-fNaYN3EtKQWLQsrKXui8mzcryJXuA0LbCLoizeX6oayG2emBaS5MauKjCPAvc29NEY4FpLHIUWiP+Y0Bfrs5dg==", "dev": true }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", @@ -2031,43 +1320,42 @@ "dev": true }, "enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz", + "integrity": "sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { - "prr": "~1.0.1" + "ansi-colors": "^4.1.1" } }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "es-module-lexer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", + "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2075,22 +1363,30 @@ "dev": true }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "estraverse": { @@ -2105,144 +1401,27 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, "fast-deep-equal": { @@ -2257,366 +1436,106 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "dependencies": { - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - } + "function-bind": "^1.1.1" } }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "ansi-regex": "^2.0.0" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "map-cache": "^0.2.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - }, - "dependencies": { - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } - } - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, "invariant": { @@ -2628,119 +1547,21 @@ "loose-envify": "^1.0.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "is-core-module": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "has": "^1.0.3" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, "is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", "dev": true }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -2750,16 +1571,10 @@ "isobject": "^3.0.1" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "isexe": { @@ -2774,6 +1589,28 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -2814,9 +1651,9 @@ "dev": true }, "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true }, "loader-utils": { @@ -2830,6 +1667,15 @@ "json5": "^1.0.1" } }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -2839,491 +1685,82 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "mime-db": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "mime-types": { + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "dev": true, "requires": { - "object-visit": "^1.0.0" + "mime-db": "1.47.0" } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "minimist": "^1.2.5" } }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "path-key": "^3.0.0" } }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" + "mimic-fn": "^2.1.0" } }, "os-homedir": { @@ -3339,347 +1776,101 @@ "dev": true }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "optional": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - }, - "dependencies": { - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - } + "yocto-queue": "^0.1.0" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "p-try": "^2.0.0" } } } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "find-up": "^4.0.0" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "safe-buffer": "^5.1.0" } }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", "dev": true, - "optional": true, "requires": { - "picomatch": "^2.2.1" + "resolve": "^1.9.0" } }, "regenerate": { @@ -3705,16 +1896,6 @@ "private": "^0.1.6" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -3749,25 +1930,6 @@ } } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "optional": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", @@ -3777,201 +1939,85 @@ "is-finite": "^1.0.0" } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" + "resolve-from": "^5.0.0" } }, "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "kind-of": "^6.0.2" } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "slash": { @@ -3980,137 +2026,17 @@ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "source-map-support": { "version": "0.5.19", @@ -4119,99 +2045,9 @@ "dev": true, "requires": { "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - } + "source-map": "^0.6.0" } }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -4221,6 +2057,12 @@ "ansi-regex": "^2.0.0" } }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -4228,753 +2070,208 @@ "dev": true }, "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true }, "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", + "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", "dev": true, "requires": { "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" }, "dependencies": { "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } }, "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", + "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", + "jest-worker": "^26.6.2", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "terser": "^5.5.1" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "watchpack": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", - "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", "dev": true, "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - } + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" + "webpack": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", + "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.47", + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/wasm-edit": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "acorn": "^8.2.1", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.0", + "es-module-lexer": "^0.4.0", + "eslint-scope": "^5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.1", + "watchpack": "^2.0.0", + "webpack-sources": "^2.1.1" }, "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true, - "optional": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "browserslist": { + "version": "4.16.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", + "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", "dev": true, - "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "caniuse-lite": "^1.0.30001214", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.719", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.1" - } + "caniuse-lite": { + "version": "1.0.30001219", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", + "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==", + "dev": true }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } + "electron-to-chromium": { + "version": "1.3.723", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", + "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==", + "dev": true } } }, - "webpack": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", - "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "webpack-cli": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", + "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.2", + "@webpack-cli/info": "^1.2.3", + "@webpack-cli/serve": "^1.3.1", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "enquirer": "^2.3.6", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" }, "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true } } }, - "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", "dev": true, "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } - } - } + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" } }, "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, - "which-module": { + "wildcard": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true } } diff --git a/package.json b/package.json index aa32519..6ad1740 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,8 @@ "babel-preset-env": "^1.7.0", "camelcase": "^6.0.0", "cross-env": "^7.0.2", - "webpack": "^4.44.1", - "webpack-cli": "^3.3.12" + "webpack": "^5.36.1", + "webpack-cli": "^4.6.0" }, "peerDependencies": { "cytoscape": "^3.3.0", From f6a82ed36cc2d3773a0ce96dae1401ea27e73040 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Thu, 20 May 2021 16:05:37 +0300 Subject: [PATCH 14/16] Add option to enable creating anchor on drag #56 True by default for backward compatibility --- README.md | 2 ++ cytoscape-edge-editing.js | 2 +- demo.html | 1 + src/UIUtilities.js | 2 +- src/index.js | 2 ++ 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6f2afa2..b5b4297 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,8 @@ cy.edgeEditing('initialized'); actOnUnsuccessfulReconnection: undefined, // specifically for edge-editing menu items, whether trailing dividers should be used useTrailingDividersAfterContextMenuOptions: false, + // Enable / disable drag creation of anchor points when there is at least one anchor already on the edge + enableCreateAnchorOnDrag: true }; ``` diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 97a9337..daa06bd 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(self,(function(){return(()=>{"use strict";var e={347:(e,t,n)=>{var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(218),s=n(259),d=n(171),a=n(961),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,h,u,y,v,p,f,x,m,b,A,P,w,C,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,O=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,N=$('
');o.find("#"+W).length<1&&o.append(N),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var n=ge;if(void 0===ge||!s.isIgnoredEdge(n)){var o=s.getEdgeType(n);if(ue&&!K&&"none"!==o){var i=s.syntax[o].weight,d=s.syntax[o].distance;he={edge:n,type:o,weights:n.data(i)?[].concat(n.data(i)):[],distances:n.data(d)?[].concat(n.data(d)):[]},n.unselect(),ce=s.addAnchorPoint(n,le),ge=n,ue=void 0,Ce=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var a=e.position||e.cyPosition;-1!=ye&&ve?ve.position(a):null!=ce?re(n,o,ce,a):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,a)),e.target&&e.target[0]&&e.target.isNode()&&(fe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),h=[a,r].concat(g).concat([c,l]),u=o+1,y=u-1,v=u+1,p={x:h[2*u],y:h[2*u+1]},f={x:h[2*y],y:h[2*y+1]},x={x:h[2*v],y:h[2*v+1]};if(p.x===f.x&&p.y===f.y||p.x===f.x&&p.y===f.y)i=!0;else{var m,b=(f.y-x.y)/(f.x-x.x),A={srcPoint:f,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,p,A),w=Math.sqrt(Math.pow(p.x-P.x,2)+Math.pow(p.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&w"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",u).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",p).off("tapdrag",f).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",h)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},259:e=>{var t={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},h=-g.y,u=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),h=this.convertToRelativePosition(e,{x:r,y:c}).weight,u=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[h].concat(e.data(i)?e.data(i):[]).concat([u]),v=this.getAnchorsAsArray(e),p=1/0,f=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||O.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=t},218:e=>{var t,n,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=(t=Math.max,n=Date.now||function(){return(new Date).getTime()},function(e,i,s){var d,a,r,c,l,g,h,u,y,v=0,p=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(i=i<0?0:+i||0,!0===s){var x=!0;f=!1}else y=void 0===(u=s)?"undefined":o(u),!u||"object"!=y&&"function"!=y||(x=!!s.leading,p="maxWait"in s&&t(+s.maxWait||0,i),f="trailing"in s?!!s.trailing:f);function m(t,o){o&&clearTimeout(o),a=g=h=void 0,t&&(v=n(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=i-(n()-c);e<=0||e>i?m(h,a):g=setTimeout(b,e)}function A(){m(f,g)}function P(){if(d=arguments,c=n(),l=this,h=f&&(g||!x),!1===p)var t=x&&!g;else{a||x||(v=c);var o=p-(c-v),s=o<=0||o>p;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||i===p||(g=setTimeout(b,i)),t&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=h=void 0},P});e.exports=i},579:(e,t,n)=>{var o,i,s;i=n(259),n(218),s=function(e,t,o){var s=n(347);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},171:e=>{e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else e.hasClass("edgecontrolediting-hascontrolpoints")&&(n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights"),t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints"));e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},961:e=>{e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var h=t.syntax[r].class,u=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(h),a.removeClass(u)):a.addClass(h+" "+u):a.removeClass(h+" "+u),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}},t={};return function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(579)})()})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(self,(function(){return(()=>{"use strict";var e={347:(e,t,n)=>{var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(218),s=n(259),d=n(171),a=n(961),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,h,u,y,v,p,f,x,m,b,A,P,C,w,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,N=$('
');o.find("#"+W).length<1&&o.append(N),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var o=ge;if(void 0===ge||!s.isIgnoredEdge(o)){var i=s.getEdgeType(o);if(ue&&n.enableCreateAnchorOnDrag&&!K&&"none"!==i){var d=s.syntax[i].weight,a=s.syntax[i].distance;he={edge:o,type:i,weights:o.data(d)?[].concat(o.data(d)):[],distances:o.data(a)?[].concat(o.data(a)):[]},o.unselect(),ce=s.addAnchorPoint(o,le),ge=o,ue=void 0,we=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var r=e.position||e.cyPosition;-1!=ye&&ve?ve.position(r):null!=ce?re(o,i,ce,r):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,r)),e.target&&e.target[0]&&e.target.isNode()&&(fe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),h=[a,r].concat(g).concat([c,l]),u=o+1,y=u-1,v=u+1,p={x:h[2*u],y:h[2*u+1]},f={x:h[2*y],y:h[2*y+1]},x={x:h[2*v],y:h[2*v+1]};if(p.x===f.x&&p.y===f.y||p.x===f.x&&p.y===f.y)i=!0;else{var m,b=(f.y-x.y)/(f.x-x.x),A={srcPoint:f,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,p,A),C=Math.sqrt(Math.pow(p.x-P.x,2)+Math.pow(p.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&C"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(Ce=t.edges(":selected"),t.trigger("edgeediting.movestart",[Ce]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=Ce).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Ce]),Ce=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",u).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",p).off("tapdrag",f).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",h)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},259:e=>{var t={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},h=-g.y,u=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),h=this.convertToRelativePosition(e,{x:r,y:c}).weight,u=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[h].concat(e.data(i)?e.data(i):[]).concat([u]),v=this.getAnchorsAsArray(e),p=1/0,f=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=t},218:e=>{var t,n,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=(t=Math.max,n=Date.now||function(){return(new Date).getTime()},function(e,i,s){var d,a,r,c,l,g,h,u,y,v=0,p=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(i=i<0?0:+i||0,!0===s){var x=!0;f=!1}else y=void 0===(u=s)?"undefined":o(u),!u||"object"!=y&&"function"!=y||(x=!!s.leading,p="maxWait"in s&&t(+s.maxWait||0,i),f="trailing"in s?!!s.trailing:f);function m(t,o){o&&clearTimeout(o),a=g=h=void 0,t&&(v=n(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=i-(n()-c);e<=0||e>i?m(h,a):g=setTimeout(b,e)}function A(){m(f,g)}function P(){if(d=arguments,c=n(),l=this,h=f&&(g||!x),!1===p)var t=x&&!g;else{a||x||(v=c);var o=p-(c-v),s=o<=0||o>p;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||i===p||(g=setTimeout(b,i)),t&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=h=void 0},P});e.exports=i},579:(e,t,n)=>{var o,i,s;i=n(259),n(218),s=function(e,t,o){var s=n(347);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1,enableCreateAnchorOnDrag:!0},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},171:e=>{e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else e.hasClass("edgecontrolediting-hascontrolpoints")&&(n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights"),t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints"));e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},961:e=>{e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var h=t.syntax[r].class,u=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(h),a.removeClass(u)):a.addClass(h+" "+u):a.removeClass(h+" "+u),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}},t={};return function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(579)})()})); \ No newline at end of file diff --git a/demo.html b/demo.html index ac75a47..1498d2a 100644 --- a/demo.html +++ b/demo.html @@ -119,6 +119,7 @@ enableMultipleAnchorRemovalOption: true, initAnchorsAutomatically: false, useTrailingDividersAfterContextMenuOptions: false, + enableCreateAnchorOnDrag: true }); cy.style().update(); diff --git a/src/UIUtilities.js b/src/UIUtilities.js index fdcc78e..64f100a 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -996,7 +996,7 @@ module.exports = function (params, cy) { var type = anchorPointUtilities.getEdgeType(edge); - if(createAnchorOnDrag && !anchorTouched && type !== 'none') { + if(createAnchorOnDrag && opts.enableCreateAnchorOnDrag && !anchorTouched && type !== 'none') { // remember state before creating anchor var weightStr = anchorPointUtilities.syntax[type]['weight']; var distanceStr = anchorPointUtilities.syntax[type]['distance']; diff --git a/src/index.js b/src/index.js index 5ddeca4..14d29c3 100644 --- a/src/index.js +++ b/src/index.js @@ -58,6 +58,8 @@ enableMultipleAnchorRemovalOption: false, // specifically for edge-editing menu items, whether trailing dividers should be used useTrailingDividersAfterContextMenuOptions: false, + // Enable / disable drag creation of anchor points when there is at least one anchor already on the edge + enableCreateAnchorOnDrag: true }; var options; From 22eaec38c0538d18cc0fb2fb7b6deda643bd15e7 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Wed, 16 Jun 2021 13:03:24 +0300 Subject: [PATCH 15/16] Remove data event listener on unbind --- cytoscape-edge-editing.js | 2 +- src/UIUtilities.js | 8 ++++---- src/registerUndoRedoFunctions.js | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index daa06bd..15fedf9 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(self,(function(){return(()=>{"use strict";var e={347:(e,t,n)=>{var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(218),s=n(259),d=n(171),a=n(961),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,h,u,y,v,p,f,x,m,b,A,P,C,w,T,E,M="cy-edge-bend-editing-cxt-add-bend-point"+r,S="cy-edge-bend-editing-cxt-remove-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,D="cy-edge-control-editing-cxt-add-control-point"+r,F="cy-edge-control-editing-cxt-remove-control-point"+r,R="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,O=null,B=null,K=!1,W={init:function(){a(t,s,e);var n=e,o=$(this),W="cy-node-edge-editing-stage"+r;r++;var k,z,N=$('
');o.find("#"+W).length<1&&o.append(N),(k=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*oe(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function se(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=oe(n),a=0;i&&a0&&t.autounselectify(!1);var o=ge;if(void 0===ge||!s.isIgnoredEdge(o)){var i=s.getEdgeType(o);if(ue&&n.enableCreateAnchorOnDrag&&!K&&"none"!==i){var d=s.syntax[i].weight,a=s.syntax[i].distance;he={edge:o,type:i,weights:o.data(d)?[].concat(o.data(d)):[],distances:o.data(a)?[].concat(o.data(a)):[]},o.unselect(),ce=s.addAnchorPoint(o,le),ge=o,ue=void 0,we=!0,de()}if(K||void 0!==ge&&(void 0!==ce||void 0!==ye)){var r=e.position||e.cyPosition;-1!=ye&&ve?ve.position(r):null!=ce?re(o,i,ce,r):K&&(void 0===L.touchedAnchorIndex&&le&&(L.touchedAnchorIndex=se(le.x,le.y,L.edge)),void 0!==L.touchedAnchorIndex&&re(L.edge,L.edgeType,L.touchedAnchorIndex,r)),e.target&&e.target[0]&&e.target.isNode()&&(fe=e.target)}}}),t.on("tapend",x=function(e){E&&z.getStage().fire("contentMouseup");var n=ge||L.edge;if(void 0!==n){var o=L.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),h=[a,r].concat(g).concat([c,l]),u=o+1,y=u-1,v=u+1,p={x:h[2*u],y:h[2*u+1]},f={x:h[2*y],y:h[2*y+1]},x={x:h[2*v],y:h[2*v+1]};if(p.x===f.x&&p.y===f.y||p.x===f.x&&p.y===f.y)i=!0;else{var m,b=(f.y-x.y)/(f.x-x.x),A={srcPoint:f,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,p,A),C=Math.sqrt(Math.pow(p.x-P.x,2)+Math.pow(p.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&C"40")return;if(Ee[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Te||(Ce=t.edges(":selected"),t.trigger("edgeediting.movestart",[Ce]),Te=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Ee[39]?a:0,r-=Ee[37]?a:0,c+=Ee[40]?a:0,c-=Ee[38]?a:0,o={x:r,y:c},(i=Ce).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Ee[e.keyCode]=!1,("function"==typeof ee().moveSelectedAnchorsOnKeyEvents?ee().moveSelectedAnchorsOnKeyEvents():ee().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[Ce]),Ce=void 0,Te=!1))}),!0),o.data("cyedgeediting",Z)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",u).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",p).off("tapdrag",f).off("tapend",x).off("cxttap",m).off("drag","node",b),t.unbind("zoom pan",h)}};return W[n]?W[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):W.init.apply($(t.container()),arguments)}},259:e=>{var t={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},h=-g.y,u=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),h=this.convertToRelativePosition(e,{x:r,y:c}).weight,u=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[h].concat(e.data(i)?e.data(i):[]).concat([u]),v=this.getAnchorsAsArray(e),p=1/0,f=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=t},218:e=>{var t,n,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=(t=Math.max,n=Date.now||function(){return(new Date).getTime()},function(e,i,s){var d,a,r,c,l,g,h,u,y,v=0,p=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(i=i<0?0:+i||0,!0===s){var x=!0;f=!1}else y=void 0===(u=s)?"undefined":o(u),!u||"object"!=y&&"function"!=y||(x=!!s.leading,p="maxWait"in s&&t(+s.maxWait||0,i),f="trailing"in s?!!s.trailing:f);function m(t,o){o&&clearTimeout(o),a=g=h=void 0,t&&(v=n(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=i-(n()-c);e<=0||e>i?m(h,a):g=setTimeout(b,e)}function A(){m(f,g)}function P(){if(d=arguments,c=n(),l=this,h=f&&(g||!x),!1===p)var t=x&&!g;else{a||x||(v=c);var o=p-(c-v),s=o<=0||o>p;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||i===p||(g=setTimeout(b,i)),t&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=h=void 0},P});e.exports=i},579:(e,t,n)=>{var o,i,s;i=n(259),n(218),s=function(e,t,o){var s=n(347);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1,enableCreateAnchorOnDrag:!0},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},171:e=>{e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else e.hasClass("edgecontrolediting-hascontrolpoints")&&(n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights"),t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints"));e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},961:e=>{e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var h=t.syntax[r].class,u=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(h),a.removeClass(u)):a.addClass(h+" "+u):a.removeClass(h+" "+u),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}},t={};return function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(579)})()})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(self,(function(){return(()=>{"use strict";var e={347:(e,t,n)=>{var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(218),s=n(259),d=n(171),a=n(961),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,h,u,y,v,p,f,x,m,b,A,P,C,w,T,E,M,S="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,D="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,F="cy-edge-control-editing-cxt-add-control-point"+r,R="cy-edge-control-editing-cxt-remove-control-point"+r,O="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,K=null,W=!1,k={init:function(){a(t,s,e);var n=e,o=$(this),k="cy-node-edge-editing-stage"+r;r++;var z,N,L=$('
');o.find("#"+k).length<1&&o.append(L),(z=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*ie(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function de(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=ie(n),a=0;i&&a0&&t.autounselectify(!1);var o=he;if(void 0===he||!s.isIgnoredEdge(o)){var i=s.getEdgeType(o);if(ye&&n.enableCreateAnchorOnDrag&&!W&&"none"!==i){var d=s.syntax[i].weight,a=s.syntax[i].distance;ue={edge:o,type:i,weights:o.data(d)?[].concat(o.data(d)):[],distances:o.data(a)?[].concat(o.data(a)):[]},o.unselect(),le=s.addAnchorPoint(o,ge),he=o,ye=void 0,Te=!0,ae()}if(W||void 0!==he&&(void 0!==le||void 0!==ve)){var r=e.position||e.cyPosition;-1!=ve&&pe?pe.position(r):null!=le?ce(o,i,le,r):W&&(void 0===U.touchedAnchorIndex&&ge&&(U.touchedAnchorIndex=de(ge.x,ge.y,U.edge)),void 0!==U.touchedAnchorIndex&&ce(U.edge,U.edgeType,U.touchedAnchorIndex,r)),e.target&&e.target[0]&&e.target.isNode()&&(xe=e.target)}}}),t.on("tapend",x=function(e){M&&N.getStage().fire("contentMouseup");var n=he||U.edge;if(void 0!==n){var o=U.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),h=[a,r].concat(g).concat([c,l]),u=o+1,y=u-1,v=u+1,p={x:h[2*u],y:h[2*u+1]},f={x:h[2*y],y:h[2*y+1]},x={x:h[2*v],y:h[2*v+1]};if(p.x===f.x&&p.y===f.y||p.x===f.x&&p.y===f.y)i=!0;else{var m,b=(f.y-x.y)/(f.x-x.x),A={srcPoint:f,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,p,A),C=Math.sqrt(Math.pow(p.x-P.x,2)+Math.pow(p.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&C"40")return;if(Me[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Ee=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Me[39]?a:0,r-=Me[37]?a:0,c+=Me[40]?a:0,c-=Me[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Me[e.keyCode]=!1,("function"==typeof te().moveSelectedAnchorsOnKeyEvents?te().moveSelectedAnchorsOnKeyEvents():te().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Ee=!1))}),!0),o.data("cyedgeediting",ee)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",u).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",p).off("tapdrag",f).off("tapend",x).off("cxttap",m).off("drag","node",b).off("data","edge",A),t.unbind("zoom pan",h)}};return k[n]?k[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):k.init.apply($(t.container()),arguments)}},259:e=>{var t={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},h=-g.y,u=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),h=this.convertToRelativePosition(e,{x:r,y:c}).weight,u=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[h].concat(e.data(i)?e.data(i):[]).concat([u]),v=this.getAnchorsAsArray(e),p=1/0,f=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=t},218:e=>{var t,n,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=(t=Math.max,n=Date.now||function(){return(new Date).getTime()},function(e,i,s){var d,a,r,c,l,g,h,u,y,v=0,p=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(i=i<0?0:+i||0,!0===s){var x=!0;f=!1}else y=void 0===(u=s)?"undefined":o(u),!u||"object"!=y&&"function"!=y||(x=!!s.leading,p="maxWait"in s&&t(+s.maxWait||0,i),f="trailing"in s?!!s.trailing:f);function m(t,o){o&&clearTimeout(o),a=g=h=void 0,t&&(v=n(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=i-(n()-c);e<=0||e>i?m(h,a):g=setTimeout(b,e)}function A(){m(f,g)}function P(){if(d=arguments,c=n(),l=this,h=f&&(g||!x),!1===p)var t=x&&!g;else{a||x||(v=c);var o=p-(c-v),s=o<=0||o>p;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||i===p||(g=setTimeout(b,i)),t&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=h=void 0},P});e.exports=i},579:(e,t,n)=>{var o,i,s;i=n(259),n(218),s=function(e,t,o){var s=n(347);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1,enableCreateAnchorOnDrag:!0},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},171:e=>{e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else e.hasClass("edgecontrolediting-hascontrolpoints")&&(n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights"),t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints"));e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},961:e=>{e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var h=t.syntax[r].class,u=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(h),a.removeClass(u)):a.addClass(h+" "+u):a.removeClass(h+" "+u),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}},t={};return function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(579)})()})); \ No newline at end of file diff --git a/src/UIUtilities.js b/src/UIUtilities.js index 64f100a..2283b09 100644 --- a/src/UIUtilities.js +++ b/src/UIUtilities.js @@ -15,7 +15,7 @@ module.exports = function (params, cy) { var addControlPointCxtMenuId = 'cy-edge-control-editing-cxt-add-control-point' + stageId; var removeControlPointCxtMenuId = 'cy-edge-control-editing-cxt-remove-control-point' + stageId; var removeAllControlPointCtxMenuId = 'cy-edge-bend-editing-cxt-remove-multiple-control-point' + stageId; - var eStyle, eRemove, eAdd, eZoom, eSelect, eUnselect, eTapStart, eTapStartOnEdge, eTapDrag, eTapEnd, eCxtTap, eDrag; + var eStyle, eRemove, eAdd, eZoom, eSelect, eUnselect, eTapStart, eTapStartOnEdge, eTapDrag, eTapEnd, eCxtTap, eDrag, eData; // last status of gestures var lastPanningEnabled, lastZoomingEnabled, lastBoxSelectionEnabled; var lastActiveBgOpacity; @@ -790,8 +790,7 @@ module.exports = function (params, cy) { refreshDraws(); }); - // cy.off is never called on this listener - cy.on('data', 'edge', function () { + cy.on('data', 'edge', eData = function () { if ( !edgeToHighlight ) { return; } @@ -1515,7 +1514,8 @@ module.exports = function (params, cy) { .off('tapdrag', eTapDrag) .off('tapend', eTapEnd) .off('cxttap', eCxtTap) - .off('drag', 'node',eDrag); + .off('drag', 'node',eDrag) + .off('data', 'edge', eData); cy.unbind("zoom pan", eZoom); } diff --git a/src/registerUndoRedoFunctions.js b/src/registerUndoRedoFunctions.js index 79889e5..d605175 100644 --- a/src/registerUndoRedoFunctions.js +++ b/src/registerUndoRedoFunctions.js @@ -36,6 +36,7 @@ module.exports = function (cy, anchorPointUtilities, params) { //Check if we need to set the weights and distances by the param values if (param.set) { + var hadAnchorPoint = param.weights && param.weights.length > 0; var hadMultipleAnchorPoints = hadAnchorPoint && param.weights.length > 1; @@ -60,6 +61,7 @@ module.exports = function (cy, anchorPointUtilities, params) { // Had multiple anchors. Add multiple classes with space delimeted string of class names edge.addClass(singleClassName + " " + multiClassName); } + if (!edge.selected()) edge.select(); else { From ee8579eb2637800ccd763fae094f1d9411f35133 Mon Sep 17 00:00:00 2001 From: Salih Altun Date: Wed, 16 Jun 2021 13:19:09 +0300 Subject: [PATCH 16/16] Fix #59 On undo and redo of creating anchors, if we had anchors before, remove data before classes. Otherwise remove data after classes. --- cytoscape-edge-editing.js | 2 +- src/registerUndoRedoFunctions.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/cytoscape-edge-editing.js b/cytoscape-edge-editing.js index 15fedf9..17518dc 100644 --- a/cytoscape-edge-editing.js +++ b/cytoscape-edge-editing.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(self,(function(){return(()=>{"use strict";var e={347:(e,t,n)=>{var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(218),s=n(259),d=n(171),a=n(961),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,h,u,y,v,p,f,x,m,b,A,P,C,w,T,E,M,S="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,D="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,F="cy-edge-control-editing-cxt-add-control-point"+r,R="cy-edge-control-editing-cxt-remove-control-point"+r,O="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,K=null,W=!1,k={init:function(){a(t,s,e);var n=e,o=$(this),k="cy-node-edge-editing-stage"+r;r++;var z,N,L=$('
');o.find("#"+k).length<1&&o.append(L),(z=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*ie(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function de(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=ie(n),a=0;i&&a0&&t.autounselectify(!1);var o=he;if(void 0===he||!s.isIgnoredEdge(o)){var i=s.getEdgeType(o);if(ye&&n.enableCreateAnchorOnDrag&&!W&&"none"!==i){var d=s.syntax[i].weight,a=s.syntax[i].distance;ue={edge:o,type:i,weights:o.data(d)?[].concat(o.data(d)):[],distances:o.data(a)?[].concat(o.data(a)):[]},o.unselect(),le=s.addAnchorPoint(o,ge),he=o,ye=void 0,Te=!0,ae()}if(W||void 0!==he&&(void 0!==le||void 0!==ve)){var r=e.position||e.cyPosition;-1!=ve&&pe?pe.position(r):null!=le?ce(o,i,le,r):W&&(void 0===U.touchedAnchorIndex&&ge&&(U.touchedAnchorIndex=de(ge.x,ge.y,U.edge)),void 0!==U.touchedAnchorIndex&&ce(U.edge,U.edgeType,U.touchedAnchorIndex,r)),e.target&&e.target[0]&&e.target.isNode()&&(xe=e.target)}}}),t.on("tapend",x=function(e){M&&N.getStage().fire("contentMouseup");var n=he||U.edge;if(void 0!==n){var o=U.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),h=[a,r].concat(g).concat([c,l]),u=o+1,y=u-1,v=u+1,p={x:h[2*u],y:h[2*u+1]},f={x:h[2*y],y:h[2*y+1]},x={x:h[2*v],y:h[2*v+1]};if(p.x===f.x&&p.y===f.y||p.x===f.x&&p.y===f.y)i=!0;else{var m,b=(f.y-x.y)/(f.x-x.x),A={srcPoint:f,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,p,A),C=Math.sqrt(Math.pow(p.x-P.x,2)+Math.pow(p.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&C"40")return;if(Me[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Ee=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Me[39]?a:0,r-=Me[37]?a:0,c+=Me[40]?a:0,c-=Me[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Me[e.keyCode]=!1,("function"==typeof te().moveSelectedAnchorsOnKeyEvents?te().moveSelectedAnchorsOnKeyEvents():te().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Ee=!1))}),!0),o.data("cyedgeediting",ee)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",u).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",p).off("tapdrag",f).off("tapend",x).off("cxttap",m).off("drag","node",b).off("data","edge",A),t.unbind("zoom pan",h)}};return k[n]?k[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):k.init.apply($(t.container()),arguments)}},259:e=>{var t={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},h=-g.y,u=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),h=this.convertToRelativePosition(e,{x:r,y:c}).weight,u=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[h].concat(e.data(i)?e.data(i):[]).concat([u]),v=this.getAnchorsAsArray(e),p=1/0,f=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=t},218:e=>{var t,n,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=(t=Math.max,n=Date.now||function(){return(new Date).getTime()},function(e,i,s){var d,a,r,c,l,g,h,u,y,v=0,p=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(i=i<0?0:+i||0,!0===s){var x=!0;f=!1}else y=void 0===(u=s)?"undefined":o(u),!u||"object"!=y&&"function"!=y||(x=!!s.leading,p="maxWait"in s&&t(+s.maxWait||0,i),f="trailing"in s?!!s.trailing:f);function m(t,o){o&&clearTimeout(o),a=g=h=void 0,t&&(v=n(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=i-(n()-c);e<=0||e>i?m(h,a):g=setTimeout(b,e)}function A(){m(f,g)}function P(){if(d=arguments,c=n(),l=this,h=f&&(g||!x),!1===p)var t=x&&!g;else{a||x||(v=c);var o=p-(c-v),s=o<=0||o>p;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||i===p||(g=setTimeout(b,i)),t&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=h=void 0},P});e.exports=i},579:(e,t,n)=>{var o,i,s;i=n(259),n(218),s=function(e,t,o){var s=n(347);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1,enableCreateAnchorOnDrag:!0},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},171:e=>{e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else e.hasClass("edgecontrolediting-hascontrolpoints")&&(n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights"),t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints"));e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},961:e=>{e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l?a.data(s,n.weights):a.removeData(s),l?a.data(d,n.distances):a.removeData(d);var h=t.syntax[r].class,u=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(h),a.removeClass(u)):a.addClass(h+" "+u):a.removeClass(h+" "+u),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}},t={};return function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(579)})()})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cytoscapeEdgeEditing=t():e.cytoscapeEdgeEditing=t()}(self,(function(){return(()=>{"use strict";var e={347:(e,t,n)=>{var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=n(218),s=n(259),d=n(171),a=n(961),r=0;e.exports=function(e,t){var n=e;s.options=e;var c,l,g,h,u,y,v,p,f,x,m,b,A,P,C,w,T,E,M,S="cy-edge-bend-editing-cxt-add-bend-point"+r,I="cy-edge-bend-editing-cxt-remove-bend-point"+r,D="cy-edge-bend-editing-cxt-remove-multiple-bend-point"+r,F="cy-edge-control-editing-cxt-add-control-point"+r,R="cy-edge-control-editing-cxt-remove-control-point"+r,O="cy-edge-bend-editing-cxt-remove-multiple-control-point"+r,B=null,K=null,W=!1,k={init:function(){a(t,s,e);var n=e,o=$(this),k="cy-node-edge-editing-stage"+r;r++;var z,N,L=$('
');o.find("#"+k).length<1&&o.append(L),(z=Konva.stages.length0&&void 0!==arguments[0]?arguments[0]:void 0,n=!1;this.anchors.forEach((function(o,i){t&&o===t?n=!0:(e.unbindListeners(o),o.destroy())})),n?this.anchors=[t]:(this.anchors=[],this.edge=void 0,this.edgeType="none")},renderAnchorShapes:function(e){if(this.edge=e,this.edgeType=s.getEdgeType(e),e.hasClass("edgebendediting-hasbendpoints")||e.hasClass("edgecontrolediting-hascontrolpoints")){for(var t=s.getAnchorsAsArray(e),n=.65*ie(e),o=(e.source().position(),e.target().position(),0);t&&o=o-n/2&&e<=o+n/2&&t>=i-n/2&&t<=i+n/2}function de(e,t,n){var o=s.getEdgeType(n);if("none"===o)return-1;if(null==n.data(s.syntax[o].weight)||0==n.data(s.syntax[o].weight).length)return-1;for(var i=s.getAnchorsAsArray(n),d=ie(n),a=0;i&&a0&&t.autounselectify(!1);var o=he;if(void 0===he||!s.isIgnoredEdge(o)){var i=s.getEdgeType(o);if(ye&&n.enableCreateAnchorOnDrag&&!W&&"none"!==i){var d=s.syntax[i].weight,a=s.syntax[i].distance;ue={edge:o,type:i,weights:o.data(d)?[].concat(o.data(d)):[],distances:o.data(a)?[].concat(o.data(a)):[]},o.unselect(),le=s.addAnchorPoint(o,ge),he=o,ye=void 0,Te=!0,ae()}if(W||void 0!==he&&(void 0!==le||void 0!==ve)){var r=e.position||e.cyPosition;-1!=ve&&pe?pe.position(r):null!=le?ce(o,i,le,r):W&&(void 0===U.touchedAnchorIndex&&ge&&(U.touchedAnchorIndex=de(ge.x,ge.y,U.edge)),void 0!==U.touchedAnchorIndex&&ce(U.edge,U.edgeType,U.touchedAnchorIndex,r)),e.target&&e.target[0]&&e.target.isNode()&&(xe=e.target)}}}),t.on("tapend",x=function(e){M&&N.getStage().fire("contentMouseup");var n=he||U.edge;if(void 0!==n){var o=U.touchedAnchorIndex;if(null!=o){var i,a=n.source().position("x"),r=n.source().position("y"),c=n.target().position("x"),l=n.target().position("y"),g=s.getAnchorsAsArray(n),h=[a,r].concat(g).concat([c,l]),u=o+1,y=u-1,v=u+1,p={x:h[2*u],y:h[2*u+1]},f={x:h[2*y],y:h[2*y+1]},x={x:h[2*v],y:h[2*v+1]};if(p.x===f.x&&p.y===f.y||p.x===f.x&&p.y===f.y)i=!0;else{var m,b=(f.y-x.y)/(f.x-x.x),A={srcPoint:f,tgtPoint:x,m1:b,m2:-1/b},P=s.getIntersection(n,p,A),C=Math.sqrt(Math.pow(p.x-P.x,2)+Math.pow(p.y-P.y,2));"bend"===(m=s.getEdgeType(n))&&C"40")return;if(Me[n.keyCode]=!0,t.edges(":selected").length!=t.elements(":selected").length||1!=t.edges(":selected").length)return;Ee||(we=t.edges(":selected"),t.trigger("edgeediting.movestart",[we]),Ee=!0);var a=3;if(n.altKey&&n.shiftKey)return;n.altKey?a=1:n.shiftKey&&(a=10);var r=0,c=0;r+=Me[39]?a:0,r-=Me[37]?a:0,c+=Me[40]?a:0,c-=Me[38]?a:0,o={x:r,y:c},(i=we).forEach((function(t){var n=s.getAnchorsAsArray(t),i=[];if(null!=n){for(var d=0;d"40"||(e.preventDefault(),Me[e.keyCode]=!1,("function"==typeof te().moveSelectedAnchorsOnKeyEvents?te().moveSelectedAnchorsOnKeyEvents():te().moveSelectedAnchorsOnKeyEvents)&&(t.trigger("edgeediting.moveend",[we]),we=void 0,Ee=!1))}),!0),o.data("cyedgeediting",ee)},unbind:function(){t.off("remove","node",l).off("add","node",g).off("style","edge.edgebendediting-hasbendpoints:selected, edge.edgecontrolediting-hascontrolpoints:selected",c).off("select","edge",u).off("unselect","edge",y).off("tapstart",v).off("tapstart","edge",p).off("tapdrag",f).off("tapend",x).off("cxttap",m).off("drag","node",b).off("data","edge",A),t.unbind("zoom pan",h)}};return k[n]?k[n].apply($(t.container()),Array.prototype.slice.call(arguments,1)):"object"!=(void 0===n?"undefined":o(n))&&n?($.error("No such function `"+n+"` for cytoscape.js-edge-editing"),$(this)):k.init.apply($(t.container()),arguments)}},259:e=>{var t={options:void 0,currentCtxEdge:void 0,currentCtxPos:void 0,currentAnchorIndex:void 0,ignoredClasses:void 0,setIgnoredClasses:function(e){this.ignoredClasses=e},syntax:{bend:{edge:"segments",class:"edgebendediting-hasbendpoints",multiClass:"edgebendediting-hasmultiplebendpoints",weight:"cyedgebendeditingWeights",distance:"cyedgebendeditingDistances",weightCss:"segment-weights",distanceCss:"segment-distances"},control:{edge:"unbundled-bezier",class:"edgecontrolediting-hascontrolpoints",multiClass:"edgecontrolediting-hasmultiplecontrolpoints",weight:"cyedgecontroleditingWeights",distance:"cyedgecontroleditingDistances",weightCss:"control-point-weights",distanceCss:"control-point-distances"}},getEdgeType:function(e){return e?e.hasClass(this.syntax.bend.class)?"bend":e.hasClass(this.syntax.control.class)?"control":e.css("curve-style")===this.syntax.bend.edge?"bend":e.css("curve-style")===this.syntax.control.edge?"control":this.options.bendPositionsFunction(e)&&this.options.bendPositionsFunction(e).length>0?"bend":this.options.controlPositionsFunction(e)&&this.options.controlPositionsFunction(e).length>0?"control":"none":"none"},initAnchorPoints:function(e,t,n){for(var o=0;o0?(i.data(this.syntax[s].weight,a.weights),i.data(this.syntax[s].distance,a.distances),i.addClass(this.syntax[s].class),a.distances.length>1&&i.addClass(this.syntax[s].multiClass)):(i.data(this.syntax[s].weight,[]),i.data(this.syntax[s].distance,[]),i.hasClass(this.syntax[s].class)&&i.removeClass(this.syntax[s].class),i.hasClass(this.syntax[s].multiClass)&&i.removeClass(this.syntax[s].multiClass))}}},isIgnoredEdge:function(e){var t=e.source().position("x"),n=e.source().position("y"),o=e.target().position("x"),i=e.target().position("y");if(t==o&&n==i||e.source().id()==e.target().id())return!0;for(var s=0;this.ignoredClasses&&st.x?4:e.y==t.y&&e.x>t.x?5:e.y>t.y&&e.x>t.x?6:e.y>t.y&&e.x==t.x?7:8},getSrcTgtPointsAndTangents:function(e){var t=e.source(),n=e.target(),o=(n.position(),t.position(),t.position()),i=n.position(),s=(i.y-o.y)/(i.x-o.x);return{m1:s,m2:-1/s,srcPoint:o,tgtPoint:i}},getIntersection:function(e,t,n){void 0===n&&(n=this.getSrcTgtPointsAndTangents(e));var o,i,s=n.srcPoint,d=(n.tgtPoint,n.m1),a=n.m2;if(d==1/0||d==-1/0)o=s.x,i=t.y;else if(0==d)o=t.x,i=s.y;else{var r=s.y-d*s.x;i=d*(o=(t.y-a*t.x-r)/(d-a))+r}return{x:o,y:i}},getAnchorsAsArray:function(e){var t=this.getEdgeType(e);if("none"!==t&&e.css("curve-style")===this.syntax[t].edge){for(var n=[],o=e.pstyle(this.syntax[t].weightCss)?e.pstyle(this.syntax[t].weightCss).pfValue:[],i=e.pstyle(this.syntax[t].distanceCss)?e.pstyle(this.syntax[t].distanceCss).pfValue:[],s=Math.min(o.length,i.length),d=e.source().position(),a=e.target().position(),r=a.y-d.y,c=a.x-d.x,l=Math.sqrt(c*c+r*r),g={x:c/l,y:r/l},h=-g.y,u=g.x,y=0;y2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentCtxPos),void 0===n&&(n=this.getEdgeType(e));for(var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=this.convertToRelativePosition(e,t),a=d.weight,r=e.source().position("x"),c=e.source().position("y"),l=e.target().position("x"),g=e.target().position("y"),h=this.convertToRelativePosition(e,{x:r,y:c}).weight,u=this.convertToRelativePosition(e,{x:l,y:g}).weight,y=[h].concat(e.data(i)?e.data(i):[]).concat([u]),v=this.getAnchorsAsArray(e),p=1/0,f=[r,c].concat(v||[]).concat([l,g]),x=-1,m=0;m1||B.length>1)&&e.addClass(this.syntax[n].multiClass),x},removeAnchor:function(e,t){void 0!==e&&void 0!==t||(e=this.currentCtxEdge,t=this.currentAnchorIndex);var n=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(n,"anchorPointUtilities.js, removeAnchor")){var o,i=this.syntax[n].weight,s=this.syntax[n].distance,d=e.data(i),a=e.data(s);"bend"===n?o=this.options.bendPositionsFunction(e):"control"===n&&(o=this.options.controlPositionsFunction(e)),d.splice(t,1),a.splice(t,1),o&&o.splice(t,1),1==d.length||1==a.length?e.removeClass(this.syntax[n].multiClass):0==d.length||0==a.length?(e.removeClass(this.syntax[n].class),e.data(i,[]),e.data(s,[])):(e.data(i,d),e.data(s,a))}},removeAllAnchors:function(e){void 0===e&&(e=this.currentCtxEdge);var t=this.getEdgeType(e);if(!this.edgeTypeNoneShouldntHappen(t,"anchorPointUtilities.js, removeAllAnchors")){e.removeClass(this.syntax[t].class),e.removeClass(this.syntax[t].multiClass);var n=this.syntax[t].weight,o=this.syntax[t].distance;e.data(n,[]),e.data(o,[]),"bend"===t&&this.options.bendPositionsFunction(e)?this.options.bendPointPositionsSetterFunction(e,[]):"control"===t&&this.options.controlPositionsFunction(e)&&this.options.controlPointPositionsSetterFunction(e,[])}},calculateDistance:function(e,t){var n=e.x-t.x,o=e.y-t.y;return Math.sqrt(Math.pow(n,2)+Math.pow(o,2))},compareWithPrecision:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.01,i=e-t;return Math.abs(i)<=o||(n?et)},edgeTypeNoneShouldntHappen:function(e,t){return"none"===e&&(console.log("In "+t+": edge type none should never happen here!!"),!0)}};e.exports=t},218:e=>{var t,n,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=(t=Math.max,n=Date.now||function(){return(new Date).getTime()},function(e,i,s){var d,a,r,c,l,g,h,u,y,v=0,p=!1,f=!0;if("function"!=typeof e)throw new TypeError("Expected a function");if(i=i<0?0:+i||0,!0===s){var x=!0;f=!1}else y=void 0===(u=s)?"undefined":o(u),!u||"object"!=y&&"function"!=y||(x=!!s.leading,p="maxWait"in s&&t(+s.maxWait||0,i),f="trailing"in s?!!s.trailing:f);function m(t,o){o&&clearTimeout(o),a=g=h=void 0,t&&(v=n(),r=e.apply(l,d),g||a||(d=l=void 0))}function b(){var e=i-(n()-c);e<=0||e>i?m(h,a):g=setTimeout(b,e)}function A(){m(f,g)}function P(){if(d=arguments,c=n(),l=this,h=f&&(g||!x),!1===p)var t=x&&!g;else{a||x||(v=c);var o=p-(c-v),s=o<=0||o>p;s?(a&&(a=clearTimeout(a)),v=c,r=e.apply(l,d)):a||(a=setTimeout(A,o))}return s&&g?g=clearTimeout(g):g||i===p||(g=setTimeout(b,i)),t&&(s=!0,r=e.apply(l,d)),!s||g||a||(d=l=void 0),r}return P.cancel=function(){g&&clearTimeout(g),a&&clearTimeout(a),v=0,a=g=h=void 0},P});e.exports=i},579:(e,t,n)=>{var o,i,s;i=n(259),n(218),s=function(e,t,o){var s=n(347);if(e&&t&&o){var d,a={bendPositionsFunction:function(e){return e.data("bendPointPositions")},controlPositionsFunction:function(e){return e.data("controlPointPositions")},bendPointPositionsSetterFunction:function(e,t){e.data("bendPointPositions",t)},controlPointPositionsSetterFunction:function(e,t){e.data("controlPointPositions",t)},initAnchorsAutomatically:!0,ignoredClasses:[],undoable:!1,anchorShapeSizeFactor:3,zIndex:999,bendRemovalSensitivity:8,addBendMenuItemTitle:"Add Bend Point",removeBendMenuItemTitle:"Remove Bend Point",removeAllBendMenuItemTitle:"Remove All Bend Points",addControlMenuItemTitle:"Add Control Point",removeControlMenuItemTitle:"Remove Control Point",removeAllControlMenuItemTitle:"Remove All Control Points",moveSelectedAnchorsOnKeyEvents:function(){return!0},enableMultipleAnchorRemovalOption:!1,useTrailingDividersAfterContextMenuOptions:!1,enableCreateAnchorOnDrag:!0},r=!1;e("core","edgeEditing",(function(e){var t=this;return"initialized"===e?r:("get"!==e&&(d=function(e,t){var n={};for(var o in e)n[o]=e[o];for(var o in t)if("bendRemovalSensitivity"==o){var i=t[o];isNaN(i)||(n[o]=i>=0&&i<=20?t[o]:i<0?0:20)}else n[o]=t[o];return n}(a,e),r=!0,t.style().selector(".edgebendediting-hasbendpoints").css({"curve-style":"segments","segment-distances":function(e){return i.getDistancesString(e,"bend")},"segment-weights":function(e){return i.getWeightsString(e,"bend")},"edge-distances":"node-position"}),t.style().selector(".edgecontrolediting-hascontrolpoints").css({"curve-style":"unbundled-bezier","control-point-distances":function(e){return i.getDistancesString(e,"control")},"control-point-weights":function(e){return i.getWeightsString(e,"control")},"edge-distances":"node-position"}),t.style().selector("#nwt_reconnectEdge_dummy").css({width:"1",height:"1",visibility:"hidden"}),i.setIgnoredClasses(d.ignoredClasses),d.initAnchorsAutomatically&&i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,t.edges(),d.ignoredClasses),s(d,t)),r?{getAnchorsAsArray:function(e){return i.getAnchorsAsArray(e)},initAnchorPoints:function(e){i.initAnchorPoints(d.bendPositionsFunction,d.controlPositionsFunction,e)},deleteSelectedAnchor:function(e,t){i.removeAnchor(e,t)},getEdgeType:function(e){return i.getEdgeType(e)}}:void 0)}))}},e.exports&&(e.exports=s),void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),"undefined"!=typeof cytoscape&&$&&Konva&&s(cytoscape,$,Konva)},171:e=>{e.exports={disconnectEdge:function(e,t,n,o){var i={data:{id:"nwt_reconnectEdge_dummy",ports:[]},renderedPosition:n};t.add(i);var s="source"===o?{source:i.data.id}:{target:i.data.id};return e=e.move(s)[0],{dummyNode:t.nodes("#"+i.data.id)[0],edge:e}},connectEdge:function(e,t,n){if(e.isEdge()&&t.isNode()){var o={};if("source"===n)o.source=t.id();else{if("target"!==n)return;o.target=t.id()}return e.move(o)[0]}},copyEdge:function(e,t){this.copyAnchors(e,t),this.copyStyle(e,t)},copyStyle:function(e,t){e&&t&&(t.data("line-color",e.data("line-color")),t.data("width",e.data("width")),t.data("cardinality",e.data("cardinality")))},copyAnchors:function(e,t){if(e.hasClass("edgebendediting-hasbendpoints")){var n=e.data("cyedgebendeditingDistances"),o=e.data("cyedgebendeditingWeights");t.data("cyedgebendeditingDistances",n),t.data("cyedgebendeditingWeights",o),t.addClass("edgebendediting-hasbendpoints")}else e.hasClass("edgecontrolediting-hascontrolpoints")&&(n=e.data("cyedgecontroleditingDistances"),o=e.data("cyedgecontroleditingWeights"),t.data("cyedgecontroleditingDistances",n),t.data("cyedgecontroleditingWeights",o),t.addClass("edgecontrolediting-hascontrolpoints"));e.hasClass("edgebendediting-hasmultiplebendpoints")?t.addClass("edgebendediting-hasmultiplebendpoints"):e.hasClass("edgecontrolediting-hasmultiplecontrolpoints")&&t.addClass("edgecontrolediting-hasmultiplecontrolpoints")}}},961:e=>{e.exports=function(e,t,n){if(null!=e.undoRedo){var o=e.undoRedo({defaultActions:!1,isDebug:!0});o.action("changeAnchorPoints",i,i),o.action("moveAnchorPoints",s,s),o.action("reconnectEdge",d,d),o.action("removeReconnectedEdge",a,a)}function i(n){var o,i,s,d,a=e.getElementById(n.edge.id()),r="none"!==n.type?n.type:t.getEdgeType(a);"none"!==n.type||n.set?(s=t.syntax[r].weight,d=t.syntax[r].distance,o=n.set?a.data(s):n.weights,i=n.set?a.data(d):n.distances):(o=[],i=[]);var c={edge:a,type:r,weights:o,distances:i,set:!0};if(n.set){var l=n.weights&&n.weights.length>0,g=l&&n.weights.length>1;l&&(a.data(s,n.weights),a.data(d,n.distances));var h=t.syntax[r].class,u=t.syntax[r].multiClass;l||g?l&&!g?(a.addClass(h),a.removeClass(u)):a.addClass(h+" "+u):a.removeClass(h+" "+u),l||(a.data(s,[]),a.data(d,[])),a.selected()?(a.unselect(),a.select()):a.select()}return a.trigger("cyedgeediting.changeAnchorPoints"),c}function s(e){if(e.firstTime)return delete e.firstTime,e;var o=e.edges,i=e.positionDiff,s={edges:o,positionDiff:{x:-i.x,y:-i.y}};return function(e,o){o.forEach((function(o){var i=t.getEdgeType(o),s=t.getAnchorsAsArray(o),d=[];if(null!=s){for(var a=0;a0&&(n=o);var o,i=t.newEdge;return(o=e.getElementById(i.data("id")))&&o.length>0&&(i=o),n.inside()&&(n=n.remove()[0]),i.removed()&&(i=i.restore()).unselect(),{oldEdge:i,newEdge:n}}}}},t={};return function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,n),s.exports}(579)})()})); \ No newline at end of file diff --git a/src/registerUndoRedoFunctions.js b/src/registerUndoRedoFunctions.js index d605175..d8ec259 100644 --- a/src/registerUndoRedoFunctions.js +++ b/src/registerUndoRedoFunctions.js @@ -40,8 +40,10 @@ module.exports = function (cy, anchorPointUtilities, params) { var hadAnchorPoint = param.weights && param.weights.length > 0; var hadMultipleAnchorPoints = hadAnchorPoint && param.weights.length > 1; - hadAnchorPoint ? edge.data(weightStr, param.weights) : edge.removeData(weightStr); - hadAnchorPoint ? edge.data(distanceStr, param.distances) : edge.removeData(distanceStr); + if (hadAnchorPoint) { + edge.data(weightStr, param.weights); + edge.data(distanceStr, param.distances) + } var singleClassName = anchorPointUtilities.syntax[type]['class']; var multiClassName = anchorPointUtilities.syntax[type]['multiClass']; @@ -62,6 +64,11 @@ module.exports = function (cy, anchorPointUtilities, params) { edge.addClass(singleClassName + " " + multiClassName); } + if (!hadAnchorPoint) { + edge.data(weightStr, []); + edge.data(distanceStr, []); + } + if (!edge.selected()) edge.select(); else {