svgedit/dist/editor/system/extensions/ext-connector/ext-connector.js

10 lines
56 KiB
JavaScript
Raw Normal View History

System.register([],(function(t){"use strict";return{execute:function(){var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function createCommonjsModule(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&r.path)}},r.exports),r.exports}var check=function(t){return t&&t.Math==Math&&t},r=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof e&&e)||Function("return this")(),fails=function(t){try{return!!t()}catch(t){return!0}},n=!fails((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),o={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,a={f:i&&!o.call({1:2},1)?function propertyIsEnumerable(t){var e=i(this,t);return!!e&&e.enumerable}:o},createPropertyDescriptor=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},c={}.toString,classofRaw=function(t){return c.call(t).slice(8,-1)},u="".split,s=fails((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==classofRaw(t)?u.call(t,""):Object(t)}:Object,requireObjectCoercible=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},toIndexedObject=function(t){return s(requireObjectCoercible(t))},isObject=function(t){return"object"==typeof t?null!==t:"function"==typeof t},toPrimitive=function(t,e){if(!isObject(t))return t;var r,n;if(e&&"function"==typeof(r=t.toString)&&!isObject(n=r.call(t)))return n;if("function"==typeof(r=t.valueOf)&&!isObject(n=r.call(t)))return n;if(!e&&"function"==typeof(r=t.toString)&&!isObject(n=r.call(t)))return n;throw TypeError("Can't convert object to primitive value")},f={}.hasOwnProperty,has=function(t,e){return f.call(t,e)},l=r.document,p=isObject(l)&&isObject(l.createElement),documentCreateElement=function(t){return p?l.createElement(t):{}},h=!n&&!fails((function(){return 7!=Object.defineProperty(documentCreateElement("div"),"a",{get:function(){return 7}}).a})),d=Object.getOwnPropertyDescriptor,v={f:n?d:function getOwnPropertyDescriptor(t,e){if(t=toIndexedObject(t),e=toPrimitive(e,!0),h)try{return d(t,e)}catch(t){}if(has(t,e))return createPropertyDescriptor(!a.f.call(t,e),t[e])}},anObject=function(t){if(!isObject(t))throw TypeError(String(t)+" is not an object");return t},y=Object.defineProperty,g={f:n?y:function defineProperty(t,e,r){if(anObject(t),e=toPrimitive(e,!0),anObject(r),h)try{return y(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},m=n?function(t,e,r){return g.f(t,e,createPropertyDescriptor(1,r))}:function(t,e,r){return t[e]=r,t},setGlobal=function(t,e){try{m(r,t,e)}catch(n){r[t]=e}return e},b="__core-js_shared__",S=r[b]||setGlobal(b,{}),w=Function.toString;"function"!=typeof S.inspectSource&&(S.inspectSource=function(t){return w.call(t)});var x,_,E,O=S.inspectSource,j=r.WeakMap,A="function"==typeof j&&/native code/.test(O(j)),I=createCommonjsModule((function(t){(t.exports=function(t,e){return S[t]||(S[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})})),P=0,k=Math.random(),uid=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++P+k).toString(36)},T=I("keys"),sharedKey=function(t){return T[t]||(T[t]=uid(t))},L={},N=r.WeakMap;if(A){var C=new N,R=C.get,M=C.has,G=C.set;x=function(t,e){return G.call(C,t,e),e},_=function(t){return R.call(C,t)||{}},E=function(t){return M.call(C,t)}}else{var D=sharedKey("state");L[D]=!0,x=function(t,e){return m(t,D,e),e},_=function(t){return has(t,D)?t[D]:{}},E=function(t){return has(t,D)}}var B,U,V={set:x,get:_,has:E,enforce:function(t){return E(t)?_(t):x(t,{})},getterFor:function(t){return function(e){var r;if(!isObject(e)||(r=_(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return r}}},W=
2020-09-06 06:32:10 +00:00
/**
2020-09-08 23:35:47 +00:00
* @file ext-connector.js
*
* @license MIT
*
* @copyright 2010 Alexis Deveria
*
*/t("default",{name:"connector",init:function init(t){var e=this;return function _asyncToGenerator(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var i=t.apply(e,r);function _next(t){asyncGeneratorStep(i,n,o,_next,_throw,"next",t)}function _throw(t){asyncGeneratorStep(i,n,o,_next,_throw,"throw",t)}_next(void 0)}))}}(regeneratorRuntime.mark((function _callee(){var r,n,o,i,a,c,u,s,f,l,p,h,d,v,y,g,m,b,S,w,x,_,E,O,j,A,I,P,k,T;return regeneratorRuntime.wrap((function _callee$(L){for(;;)switch(L.prev=L.next){case 0:return I=function _init(){i(g).find("*").each((function(){var t=this.getAttributeNS(y,"connector");if(t){this.setAttribute("class",s.substr(1));var e=t.split(" "),r=n.getStrokedBBox([o(e[0])]),a=n.getStrokedBBox([o(e[1])]);i(this).data("c_start",e[0]).data("c_end",e[1]).data("start_bb",r).data("end_bb",a),n.getEditorNS(!0)}}))},A=function _updateConnectors(t){if(j(t),b.length)for(var e=b.length;e--;){var r=b[e],o=r.connector,i=r.elem,a=r.is_start?"start":"end",c=n.getStrokedBBox([i]);c.x=r.start_x,c.y=r.start_y,f(o,a+"_bb",c),f(o,a+"_off");var u=r.is_start?"end":"start",s=f(o,u+"_bb"),l=s.x+s.width/2,p=s.y+s.height/2,h=w(l,p,c,x(a,o));E(o,r.is_start?0:"end",h.x,h.y,!0);var d=w(h.x,h.y,f(o,u+"_bb"),x(u,o));if(E(o,r.is_start?"end":0,d.x,d.y,!0),navigator.userAgent.includes("AppleWebKit")){for(var v=o.points,y=v.numberOfItems,g=[],m=0;m<y;m++)h=v.getItem(m),g[m]=h.x+","+h.y;o.setAttribute("points",g.join(" "))}}},j=function _findConnectors(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:S,e=i(g).find(s);b=[],e.each((function(){var e;function add(){t.includes(this)&&(e=!0)}var r=[];["start","end"].forEach((function(t,e){var o=f(this,"c_"+t);null==o?(o=document.getElementById(this.attributes["se:connector"].value.split(" ")[e]),f(this,"c_"+t,o.id),f(this,t+"_bb",n.getStrokedBBox([o]))):o=document.getElementById(o),r.push(o)}),this);for(var o=0;o<2;o++){var a=r[o];if(e=!1,i(a).parents().each(add),a&&a.parentNode){if(t.includes(a)||e){var c=n.getStrokedBBox([a]);b.push({elem:a,connector:this,is_start:0===o,start_x:c.x,start_y:c.y})}}else i(this).remove()}}))},O=function _updateLine(t,e){for(var r=b.length;r--;){var n=b[r],o=n.connector,i=n.is_start?"start":"end",a=f(o,i+"_bb");a.x=n.start_x+t,a.y=n.start_y+e,f(o,i+"_bb",a);var c=n.is_start?"end":"start",u=f(o,c+"_bb"),s=u.x+u.width/2,l=u.y+u.height/2,p=w(s,l,a,x(i,o));E(o,n.is_start?0:"end",p.x,p.y,!0);var h=w(p.x,p.y,f(o,c+"_bb"),x(c,o));E(o,n.is_start?"end":0,h.x,h.y,!0)}},E=function _setPoint(t,e,r,n,o){var i=t.points,c=a.createSVGPoint();c.x=r,c.y=n,"end"===e&&(e=i.numberOfItems-1);try{i.replaceItem(c,e)}catch(o){for(var u=t.getAttribute("points").split(" "),s=0;s<u.length;s++)s===e&&(u[s]=r+","+n);t.setAttribute("points",u.join(" "))}if(o){var f=i.getItem(0),l=i.getItem(i.numberOfItems-1);E(t,1,(l.x+f.x)/2,(l.y+f.y)/2)}},_=function _showPanel(t){var e=i("#connector_rules");e.length||(e=i('<style id="connector_rules"></style>').appendTo("head")),e.text(t?"#tool_clone, #tool_topath, #tool_angle, #xy_panel { display: none !important; }":""),i("#connector_panel").toggle(t)},x=function _getOffset(t,e){var r=e.getAttribute("marker-"+t),n=5*e.getAttribute("stroke-width");return r?n:0},w=function _getBBintersect(t,e,r,n){n&&(n-=0,(r=i.extend({},r)).width+=n,r.height+=n,r.x-=n/2,r.y-=n/2);var o,a=r.x+r.width/2,c=r.y+r.height/2,u=t-a,s=e-c;return{x:a+u*(o=Math.abs(s/u)<r.height/r.width?r.width/2/Math.abs(u):s?r.height/2/Math.abs(s):0),y:c+s*o}},n=(r=e).canvas,o=n.getElem,i=t.$,a=t.svgroot,c=n.addSVGElementFromJson,u=t.selectorManager,s=".se_connector",f=i.data,g=t.svgcontent,m=!1,b=[],S=[],function(){var t=n.groupSelectedElements;n.groupSelectedElements=function(){n.removeFromSelection(i(s).toArray());for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return t.apply(this,r)};var e=n.moveSelectedElements;n.moveSelectedElements=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var o=e.apply(this,r);return A(),o},y=n.getEditorNS()}(),P=[{id:"mode_connect",type:"mode",icon:r.cur