!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).DiagramJSMinimap=e()}(this,(function(){"use strict";function t(t,e){return e.forEach((function(e){e&&"string"!=typeof e&&!Array.isArray(e)&&Object.keys(e).forEach((function(n){if("default"!==n&&!(n in t)){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}}))})),Object.freeze(t)}function e(t,e,n){return 2==arguments.length?t.getAttribute(e):null===n?t.removeAttribute(e):(t.setAttribute(e,n),t)}const n=Object.prototype.toString;function i(t){return new r(t)}function r(t){if(!t||!t.nodeType)throw new Error("A DOM element reference is required");this.el=t,this.list=t.classList}r.prototype.add=function(t){return this.list.add(t),this},r.prototype.remove=function(t){return"[object RegExp]"==n.call(t)?this.removeMatching(t):(this.list.remove(t),this)},r.prototype.removeMatching=function(t){const e=this.array();for(let n=0;n
a',u.getElementsByTagName("link").length,u=void 0);var d=2,v={"alignment-baseline":1,"baseline-shift":1,clip:1,"clip-path":1,"clip-rule":1,color:1,"color-interpolation":1,"color-interpolation-filters":1,"color-profile":1,"color-rendering":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"enable-background":1,fill:1,"fill-opacity":1,"fill-rule":1,filter:1,"flood-color":1,"flood-opacity":1,font:1,"font-family":1,"font-size":d,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"glyph-orientation-horizontal":1,"glyph-orientation-vertical":1,"image-rendering":1,kerning:1,"letter-spacing":1,"lighting-color":1,marker:1,"marker-end":1,"marker-mid":1,"marker-start":1,mask:1,opacity:1,overflow:1,"pointer-events":1,"shape-rendering":1,"stop-color":1,"stop-opacity":1,stroke:1,"stroke-dasharray":1,"stroke-dashoffset":1,"stroke-linecap":1,"stroke-linejoin":1,"stroke-miterlimit":1,"stroke-opacity":1,"stroke-width":d,"text-anchor":1,"text-decoration":1,"text-rendering":1,"unicode-bidi":1,visibility:1,"word-spacing":1,"writing-mode":1};function g(t,e,n){var i=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),r=v[i];r?(r===d&&"number"==typeof n&&(n=String(n)+"px"),t.style[i]=n):t.setAttributeNS(null,e,n)}function m(t,e,n){if("string"==typeof e){if(void 0===n)return function(t,e){return v[e]?t.style[e]:t.getAttributeNS(null,e)}(t,e);g(t,e,n)}else!function(t,e){var n,i,r=Object.keys(e);for(n=0;i=r[n];n++)g(t,i,e[i])}(t,e);return t}const y=Object.prototype.toString;function _(t){if(!t||!t.nodeType)throw new Error("A DOM element reference is required");this.el=t,this.list=t.classList}function w(t){var e=t.parentNode;return e&&e.removeChild(t),t}_.prototype.add=function(t){return this.list.add(t),this},_.prototype.remove=function(t){return"[object RegExp]"==y.call(t)?this.removeMatching(t):(this.list.remove(t),this)},_.prototype.removeMatching=function(t){const e=this.array();for(let n=0;n"+t+"",e=!0);var n=function(t){var e;return(e=new DOMParser).async=!1,e.parseFromString(t,"text/xml")}(t);if(!e)return n;for(var i=document.createDocumentFragment(),r=n.firstChild;r.firstChild;)i.appendChild(r.firstChild);return i}function b(t,e){var n;return"<"===t.charAt(0)?(n=x(t).firstChild,n=document.importNode(n,!0)):n=document.createElementNS(T.svg,t),e&&m(n,e),n}const C=Object.prototype.toString,R=Object.prototype.hasOwnProperty;function D(t,e){return R.call(t,e)}function M(t,e){let n,i;if(void 0===t)return;const r=function(t){return"[object Array]"===C.call(t)}(t)?O:P;for(let o in t)if(D(t,o)&&(n=t[o],i=e(n,r(o)),!1===i))return n}function A(t,e){return!!function(t,e,n){return M(t,(function(t,i){n=e(n,t,i)})),n}(t,(function(t,n,i){return t&&e(n,i)}),!0)}function P(t){return t}function O(t){return Number(t)}function I(t,...e){return Object.assign(t,...e)}var S={};
/*! Hammer.JS - v2.0.7 - 2016-04-22
* http://hammerjs.github.io/
*
* Copyright (c) 2016 Jorik Tangelder;
* Licensed under the MIT license */
!function(t){!function(e,n,i,r){var o,s=["","webkit","Moz","MS","ms","o"],a=n.createElement("div"),h="function",c=Math.round,u=Math.abs,l=Date.now;function p(t,e,n){return setTimeout(_(t,n),e)}function f(t,e,n){return!!Array.isArray(t)&&(d(t,n[e],n),!0)}function d(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==r)for(i=0;i\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=e.console&&(e.console.warn||e.console.log);return o&&o.call(e.console,r,i),t.apply(this,arguments)}}o="function"!=typeof Object.assign?function(t){if(t===r||null===t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n-1}function R(t){return t.trim().split(/\s+/g)}function D(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;in[e]})):i.sort()),i}function P(t,e){for(var n,i,o=e[0].toUpperCase()+e.slice(1),a=0;a1&&!n.firstMultiple?n.firstMultiple=et(e):1===o&&(n.firstMultiple=!1);var s=n.firstInput,a=n.firstMultiple,h=a?a.center:s.center,c=e.center=nt(i);e.timeStamp=l(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=st(h,c),e.distance=ot(h,c),function(t,e){var n=e.center,i=t.offsetDelta||{},r=t.prevDelta||{},o=t.prevInput||{};e.eventType!==X&&o.eventType!==F||(r=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y});e.deltaX=r.x+(n.x-i.x),e.deltaY=r.y+(n.y-i.y)}(n,e),e.offsetDirection=rt(e.deltaX,e.deltaY);var p=it(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=p.x,e.overallVelocityY=p.y,e.overallVelocity=u(p.x)>u(p.y)?p.x:p.y,e.scale=a?(f=a.pointers,d=i,ot(d[0],d[1],K)/ot(f[0],f[1],K)):1,e.rotation=a?function(t,e){return st(e[1],e[0],K)+st(t[1],t[0],K)}(a.pointers,i):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,function(t,e){var n,i,o,s,a=t.lastInterval||e,h=e.timeStamp-a.timeStamp;if(e.eventType!=L&&(h>Y||a.velocity===r)){var c=e.deltaX-a.deltaX,l=e.deltaY-a.deltaY,p=it(h,c,l);i=p.x,o=p.y,n=u(p.x)>u(p.y)?p.x:p.y,s=rt(c,l),t.lastInterval=e}else n=a.velocity,i=a.velocityX,o=a.velocityY,s=a.direction;e.velocity=n,e.velocityX=i,e.velocityY=o,e.direction=s}(n,e);var f,d;var v=t.element;b(e.srcEvent.target,v)&&(v=e.srcEvent.target);e.target=v}(t,n),t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function et(t){for(var e=[],n=0;n=u(e)?t<0?q:W:e<0?H:G}function ot(t,e,n){n||(n=J);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return Math.sqrt(i*i+r*r)}function st(t,e,n){n||(n=J);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return 180*Math.atan2(r,i)/Math.PI}Q.prototype={handler:function(){},init:function(){this.evEl&&E(this.element,this.evEl,this.domHandler),this.evTarget&&E(this.target,this.evTarget,this.domHandler),this.evWin&&E(I(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&x(this.element,this.evEl,this.domHandler),this.evTarget&&x(this.target,this.evTarget,this.domHandler),this.evWin&&x(I(this.element),this.evWin,this.domHandler)}};var at={mousedown:X,mousemove:V,mouseup:F},ht="mousedown",ct="mousemove mouseup";function ut(){this.evEl=ht,this.evWin=ct,this.pressed=!1,Q.apply(this,arguments)}y(ut,Q,{handler:function(t){var e=at[t.type];e&X&&0===t.button&&(this.pressed=!0),e&V&&1!==t.which&&(e=F),this.pressed&&(e&F&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:k,srcEvent:t}))}});var lt={pointerdown:X,pointermove:V,pointerup:F,pointercancel:L,pointerout:L},pt={2:j,3:"pen",4:k,5:"kinect"},ft="pointerdown",dt="pointermove pointerup pointercancel";function vt(){this.evEl=ft,this.evWin=dt,Q.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}e.MSPointerEvent&&!e.PointerEvent&&(ft="MSPointerDown",dt="MSPointerMove MSPointerUp MSPointerCancel"),y(vt,Q,{handler:function(t){var e=this.store,n=!1,i=t.type.toLowerCase().replace("ms",""),r=lt[i],o=pt[t.pointerType]||t.pointerType,s=o==j,a=D(e,t.pointerId,"pointerId");r&X&&(0===t.button||s)?a<0&&(e.push(t),a=e.length-1):r&(F|L)&&(n=!0),a<0||(e[a]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:o,srcEvent:t}),n&&e.splice(a,1))}});var gt={touchstart:X,touchmove:V,touchend:F,touchcancel:L},mt="touchstart",yt="touchstart touchmove touchend touchcancel";function _t(){this.evTarget=mt,this.evWin=yt,this.started=!1,Q.apply(this,arguments)}function wt(t,e){var n=M(t.touches),i=M(t.changedTouches);return e&(F|L)&&(n=A(n.concat(i),"identifier",!0)),[n,i]}y(_t,Q,{handler:function(t){var e=gt[t.type];if(e===X&&(this.started=!0),this.started){var n=wt.call(this,t,e);e&(F|L)&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:j,srcEvent:t})}}});var Tt={touchstart:X,touchmove:V,touchend:F,touchcancel:L},Et="touchstart touchmove touchend touchcancel";function xt(){this.evTarget=Et,this.targetIds={},Q.apply(this,arguments)}function bt(t,e){var n=M(t.touches),i=this.targetIds;if(e&(X|V)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,o,s=M(t.changedTouches),a=[],h=this.target;if(o=n.filter((function(t){return b(t.target,h)})),e===X)for(r=0;r-1&&i.splice(t,1)}),Ct)}}function Pt(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function i(n){e.manager.emit(n,t)}n=qt&&i(e.options.event+Zt(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=Gt},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return Kt.prototype.attrTest.call(this,t)&&(this.state&Lt||!(this.state&Lt)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=$t(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),y(te,Kt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[jt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&Lt)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),y(ee,Ut,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[Nt]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distancee.time;if(this._input=t,!i||!n||t.eventType&(F|L)&&!r)this.reset();else if(t.eventType&X)this.reset(),this._timer=p((function(){this.state=Wt,this.tryEmit()}),e.time,this);else if(t.eventType&F)return Wt;return Gt},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===Wt&&(t&&t.eventType&F?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=l(),this.manager.emit(this.options.event,this._input)))}}),y(ne,Kt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[jt]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&Lt)}}),y(ie,Kt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:U|Z,pointers:1},getTouchAction:function(){return Qt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(U|Z)?e=t.overallVelocity:n&U?e=t.overallVelocityX:n&Z&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&u(e)>this.options.velocity&&t.eventType&F},emit:function(t){var e=$t(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),y(re,Ut,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[zt]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distancen.left&&e.xn.top&&e.yY){var l=u>0?1:-1,p=Math.log(i.zoom())/Math.log(10),f=(r=j,s=2*k,a=Math.log(r.min)/Math.log(10),h=Math.log(r.max)/Math.log(10),(Math.abs(a)+Math.abs(h))/s),d=Math.round(p/f)*f;d+=f*l;var v=Math.pow(10,d);i.zoom(function(t,e){return Math.max(t.min,Math.min(t.max,e))}(j,v),g),o._state.zoomDelta=0;var g=F({x:t.clientX-o._state._svgClientRect.left,y:t.clientY-o._state._svgClientRect.top},o._svg,o._lastViewbox);L(g,o._canvas),o._update()}}})),l.bind(this._toggle,"click",(function(t){t.preventDefault(),t.stopPropagation(),o.toggle()})),n.on(["shape.added","connection.added"],(function(t){var e=t.element;o._addElement(e),o._update()})),n.on(["shape.removed","connection.removed"],(function(t){var e=t.element;o._removeElement(e),o._update()})),n.on("elements.changed",X,(function(t){t.elements.forEach((function(t){o._updateElement(t)})),o._update()})),n.on("element.updateId",(function(t){var e=t.element,n=t.newId;o._updateElementId(e,n)})),n.on("canvas.viewbox.changed",(function(){o._state.isDragging||o._update()})),n.on("canvas.resized",(function(){document.body.contains(o._parent)&&(o._state.isDragging||o._update(),o._state._svgClientRect=o._svg.getBoundingClientRect())})),n.on(["root.set","plane.set"],(function(t){o._clear(),(t.element||t.plane.rootElement).children.forEach((function(t){o._addElement(t)})),o._update()}))}function F(t,e,n){var i=e.getBoundingClientRect(),r=function(t,e){var n=t.width/t.height,i=I({},{x:t.x,y:t.y,width:t.width,height:t.height});if(n>e){var r=i.width*(1/e);I(i,{y:i.y-(r-i.height)/2,height:r})}else if(na?q(o,s,a):q(o,s,s.childNodes.length-1):this._elementsGroup.appendChild(o),!function(t){return t.waypoints}(t)?(i=t.x,r=t.y,s&&(i-=(n=t.parent).x,r-=n.y),m(o,{transform:"translate("+i+" "+r+")"})):(i=0,r=0,void 0!==(n=t.parent).x&&void 0!==n.y&&(i=-n.x,r=-n.y),m(o,{transform:"translate("+i+" "+r+")"})),t.children&&t.children.length&&t.children.forEach((function(t){e._addElement(t)})),o}}},V.prototype._removeElement=function(t){var e=this._svg.getElementById(t.id);e&&w(e)},V.prototype._createElement=function(t){var e,n=this._elementRegistry.getGraphics(t);if(n&&(e=function(t){return t.childNodes[0]}(n),e)){var i=function(t){return t.cloneNode(!0)}(e);return m(i,{id:t.id}),i}},V.prototype._clear=function(){!function(t){for(var e;e=t.firstChild;)w(e)}(this._elementsGroup)};var H=Math.sign||function(t){return t>=0?1:-1};function G(t,e){return"polygon("+[U(e.left,e.top),U(e.left+e.width,e.top),U(e.left+e.width,e.top+e.height),U(e.left,e.top+e.height),U(e.left,t.height),U(t.width,t.height),U(t.width,0),U(0,0),U(0,t.height),U(e.left,t.height)].join(", ")+")"}function U(t,e){return t+"px "+e+"px"}function Z(t){return A(t,(function(t){return e=t,"[object Object]"===C.call(e)?Z(t):function(t){return"[object Number]"===C.call(t)}(t)&&isFinite(t);var e}))}function $(t){return t.center?t.center:{x:t.clientX,y:t.clientY}}return{__init__:["minimap"],minimap:["type",V]}}));