@linkurious/ogma-annotations-react 1.1.22 → 1.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var vr;function Qr(){if(vr)return Vt;vr=1;var u=X,e=Symbol.for("react.element"),s=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,a=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function f(g,d,v){var y,A={},_=null,S=null;v!==void 0&&(_=""+v),d.key!==void 0&&(_=""+d.key),d.ref!==void 0&&(S=d.ref);for(y in d)n.call(d,y)&&!c.hasOwnProperty(y)&&(A[y]=d[y]);if(g&&g.defaultProps)for(y in d=g.defaultProps,d)A[y]===void 0&&(A[y]=d[y]);return{$$typeof:e,type:g,key:_,ref:S,props:A,_owner:a.current}}return Vt.Fragment=s,Vt.jsx=f,Vt.jsxs=f,Vt}var Gt={};/**
9
+ */var vr;function Qr(){if(vr)return Vt;vr=1;var u=X,e=Symbol.for("react.element"),o=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,l=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,h={key:!0,ref:!0,__self:!0,__source:!0};function d(g,f,v){var y,A={},k=null,S=null;v!==void 0&&(k=""+v),f.key!==void 0&&(k=""+f.key),f.ref!==void 0&&(S=f.ref);for(y in f)n.call(f,y)&&!h.hasOwnProperty(y)&&(A[y]=f[y]);if(g&&g.defaultProps)for(y in f=g.defaultProps,f)A[y]===void 0&&(A[y]=f[y]);return{$$typeof:e,type:g,key:k,ref:S,props:A,_owner:l.current}}return Vt.Fragment=o,Vt.jsx=d,Vt.jsxs=d,Vt}var Gt={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,31 +14,31 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var mr;function tn(){return mr||(mr=1,process.env.NODE_ENV!=="production"&&function(){var u=X,e=Symbol.for("react.element"),s=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),f=Symbol.for("react.provider"),g=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),A=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),S=Symbol.for("react.offscreen"),R=Symbol.iterator,C="@@iterator";function L(t){if(t===null||typeof t!="object")return null;var o=R&&t[R]||t[C];return typeof o=="function"?o:null}var j=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function k(t){{for(var o=arguments.length,h=new Array(o>1?o-1:0),p=1;p<o;p++)h[p-1]=arguments[p];z("error",t,h)}}function z(t,o,h){{var p=j.ReactDebugCurrentFrame,m=p.getStackAddendum();m!==""&&(o+="%s",h=h.concat([m]));var b=h.map(function(w){return String(w)});b.unshift("Warning: "+o),Function.prototype.apply.call(console[t],console,b)}}var W=!1,rt=!1,it=!1,Kt=!1,Zt=!1,ke;ke=Symbol.for("react.module.reference");function $t(t){return!!(typeof t=="string"||typeof t=="function"||t===n||t===c||Zt||t===a||t===v||t===y||Kt||t===S||W||rt||it||typeof t=="object"&&t!==null&&(t.$$typeof===_||t.$$typeof===A||t.$$typeof===f||t.$$typeof===g||t.$$typeof===d||t.$$typeof===ke||t.getModuleId!==void 0))}function zt(t,o,h){var p=t.displayName;if(p)return p;var m=o.displayName||o.name||"";return m!==""?h+"("+m+")":h}function _e(t){return t.displayName||"Context"}function at(t){if(t==null)return null;if(typeof t.tag=="number"&&k("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case n:return"Fragment";case s:return"Portal";case c:return"Profiler";case a:return"StrictMode";case v:return"Suspense";case y:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case g:var o=t;return _e(o)+".Consumer";case f:var h=t;return _e(h._context)+".Provider";case d:return zt(t,t.render,"ForwardRef");case A:var p=t.displayName||null;return p!==null?p:at(t.type)||"Memo";case _:{var m=t,b=m._payload,w=m._init;try{return at(w(b))}catch{return null}}}return null}var $=Object.assign,ht=0,J,ct,Nt,Se,Qt,Ce,Te;function Tt(){}Tt.__reactDisabledLog=!0;function Re(){{if(ht===0){J=console.log,ct=console.info,Nt=console.warn,Se=console.error,Qt=console.group,Ce=console.groupCollapsed,Te=console.groupEnd;var t={configurable:!0,enumerable:!0,value:Tt,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}ht++}}function rr(){{if(ht--,ht===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:$({},t,{value:J}),info:$({},t,{value:ct}),warn:$({},t,{value:Nt}),error:$({},t,{value:Se}),group:$({},t,{value:Qt}),groupCollapsed:$({},t,{value:Ce}),groupEnd:$({},t,{value:Te})})}ht<0&&k("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var te=j.ReactCurrentDispatcher,ee;function Ht(t,o,h){{if(ee===void 0)try{throw Error()}catch(m){var p=m.stack.trim().match(/\n( *(at )?)/);ee=p&&p[1]||""}return`
18
- `+ee+t}}var re=!1,Rt;{var nr=typeof WeakMap=="function"?WeakMap:Map;Rt=new nr}function ne(t,o){if(!t||re)return"";{var h=Rt.get(t);if(h!==void 0)return h}var p;re=!0;var m=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var b;b=te.current,te.current=null,Re();try{if(o){var w=function(){throw Error()};if(Object.defineProperty(w.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(w,[])}catch(P){p=P}Reflect.construct(t,[],w)}else{try{w.call()}catch(P){p=P}t.call(w.prototype)}}else{try{throw Error()}catch(P){p=P}t()}}catch(P){if(P&&p&&typeof P.stack=="string"){for(var E=P.stack.split(`
17
+ */var mr;function tn(){return mr||(mr=1,process.env.NODE_ENV!=="production"&&function(){var u=X,e=Symbol.for("react.element"),o=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),g=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),A=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),S=Symbol.for("react.offscreen"),R=Symbol.iterator,C="@@iterator";function L(t){if(t===null||typeof t!="object")return null;var s=R&&t[R]||t[C];return typeof s=="function"?s:null}var I=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function _(t){{for(var s=arguments.length,c=new Array(s>1?s-1:0),p=1;p<s;p++)c[p-1]=arguments[p];z("error",t,c)}}function z(t,s,c){{var p=I.ReactDebugCurrentFrame,m=p.getStackAddendum();m!==""&&(s+="%s",c=c.concat([m]));var b=c.map(function(w){return String(w)});b.unshift("Warning: "+s),Function.prototype.apply.call(console[t],console,b)}}var W=!1,rt=!1,it=!1,Kt=!1,Zt=!1,_e;_e=Symbol.for("react.module.reference");function $t(t){return!!(typeof t=="string"||typeof t=="function"||t===n||t===h||Zt||t===l||t===v||t===y||Kt||t===S||W||rt||it||typeof t=="object"&&t!==null&&(t.$$typeof===k||t.$$typeof===A||t.$$typeof===d||t.$$typeof===g||t.$$typeof===f||t.$$typeof===_e||t.getModuleId!==void 0))}function zt(t,s,c){var p=t.displayName;if(p)return p;var m=s.displayName||s.name||"";return m!==""?c+"("+m+")":c}function Se(t){return t.displayName||"Context"}function at(t){if(t==null)return null;if(typeof t.tag=="number"&&_("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case n:return"Fragment";case o:return"Portal";case h:return"Profiler";case l:return"StrictMode";case v:return"Suspense";case y:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case g:var s=t;return Se(s)+".Consumer";case d:var c=t;return Se(c._context)+".Provider";case f:return zt(t,t.render,"ForwardRef");case A:var p=t.displayName||null;return p!==null?p:at(t.type)||"Memo";case k:{var m=t,b=m._payload,w=m._init;try{return at(w(b))}catch{return null}}}return null}var $=Object.assign,ht=0,J,ct,Nt,Ce,Qt,Te,Re;function Tt(){}Tt.__reactDisabledLog=!0;function Oe(){{if(ht===0){J=console.log,ct=console.info,Nt=console.warn,Ce=console.error,Qt=console.group,Te=console.groupCollapsed,Re=console.groupEnd;var t={configurable:!0,enumerable:!0,value:Tt,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}ht++}}function rr(){{if(ht--,ht===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:$({},t,{value:J}),info:$({},t,{value:ct}),warn:$({},t,{value:Nt}),error:$({},t,{value:Ce}),group:$({},t,{value:Qt}),groupCollapsed:$({},t,{value:Te}),groupEnd:$({},t,{value:Re})})}ht<0&&_("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var te=I.ReactCurrentDispatcher,ee;function Ht(t,s,c){{if(ee===void 0)try{throw Error()}catch(m){var p=m.stack.trim().match(/\n( *(at )?)/);ee=p&&p[1]||""}return`
18
+ `+ee+t}}var re=!1,Rt;{var nr=typeof WeakMap=="function"?WeakMap:Map;Rt=new nr}function ne(t,s){if(!t||re)return"";{var c=Rt.get(t);if(c!==void 0)return c}var p;re=!0;var m=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var b;b=te.current,te.current=null,Oe();try{if(s){var w=function(){throw Error()};if(Object.defineProperty(w.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(w,[])}catch(P){p=P}Reflect.construct(t,[],w)}else{try{w.call()}catch(P){p=P}t.call(w.prototype)}}else{try{throw Error()}catch(P){p=P}t()}}catch(P){if(P&&p&&typeof P.stack=="string"){for(var E=P.stack.split(`
19
19
  `),D=p.stack.split(`
20
20
  `),T=E.length-1,O=D.length-1;T>=1&&O>=0&&E[T]!==D[O];)O--;for(;T>=1&&O>=0;T--,O--)if(E[T]!==D[O]){if(T!==1||O!==1)do if(T--,O--,O<0||E[T]!==D[O]){var F=`
21
- `+E[T].replace(" at new "," at ");return t.displayName&&F.includes("<anonymous>")&&(F=F.replace("<anonymous>",t.displayName)),typeof t=="function"&&Rt.set(t,F),F}while(T>=1&&O>=0);break}}}finally{re=!1,te.current=b,rr(),Error.prepareStackTrace=m}var U=t?t.displayName||t.name:"",M=U?Ht(U):"";return typeof t=="function"&&Rt.set(t,M),M}function ir(t,o,h){return ne(t,!1)}function sr(t){var o=t.prototype;return!!(o&&o.isReactComponent)}function Bt(t,o,h){if(t==null)return"";if(typeof t=="function")return ne(t,sr(t));if(typeof t=="string")return Ht(t);switch(t){case v:return Ht("Suspense");case y:return Ht("SuspenseList")}if(typeof t=="object")switch(t.$$typeof){case d:return ir(t.render);case A:return Bt(t.type,o,h);case _:{var p=t,m=p._payload,b=p._init;try{return Bt(b(m),o,h)}catch{}}}return""}var xt=Object.prototype.hasOwnProperty,Oe={},De=j.ReactDebugCurrentFrame;function Wt(t){if(t){var o=t._owner,h=Bt(t.type,t._source,o?o.type:null);De.setExtraStackFrame(h)}else De.setExtraStackFrame(null)}function or(t,o,h,p,m){{var b=Function.call.bind(xt);for(var w in t)if(b(t,w)){var E=void 0;try{if(typeof t[w]!="function"){var D=Error((p||"React class")+": "+h+" type `"+w+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[w]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw D.name="Invariant Violation",D}E=t[w](o,w,p,h,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(T){E=T}E&&!(E instanceof Error)&&(Wt(m),k("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",p||"React class",h,w,typeof E),Wt(null)),E instanceof Error&&!(E.message in Oe)&&(Oe[E.message]=!0,Wt(m),k("Failed %s type: %s",h,E.message),Wt(null))}}}var ar=Array.isArray;function ie(t){return ar(t)}function q(t){{var o=typeof Symbol=="function"&&Symbol.toStringTag,h=o&&t[Symbol.toStringTag]||t.constructor.name||"Object";return h}}function lr(t){try{return Pe(t),!1}catch{return!0}}function Pe(t){return""+t}function se(t){if(lr(t))return k("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",q(t)),Pe(t)}var yt=j.ReactCurrentOwner,Le={key:!0,ref:!0,__self:!0,__source:!0},qt,Ie;function ur(t){if(xt.call(t,"ref")){var o=Object.getOwnPropertyDescriptor(t,"ref").get;if(o&&o.isReactWarning)return!1}return t.ref!==void 0}function oe(t){if(xt.call(t,"key")){var o=Object.getOwnPropertyDescriptor(t,"key").get;if(o&&o.isReactWarning)return!1}return t.key!==void 0}function hr(t,o){typeof t.ref=="string"&&yt.current}function cr(t,o){{var h=function(){qt||(qt=!0,k("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",o))};h.isReactWarning=!0,Object.defineProperty(t,"key",{get:h,configurable:!0})}}function dr(t,o){{var h=function(){Ie||(Ie=!0,k("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",o))};h.isReactWarning=!0,Object.defineProperty(t,"ref",{get:h,configurable:!0})}}var ae=function(t,o,h,p,m,b,w){var E={$$typeof:e,type:t,key:o,ref:h,props:w,_owner:b};return E._store={},Object.defineProperty(E._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(E,"_self",{configurable:!1,enumerable:!1,writable:!1,value:p}),Object.defineProperty(E,"_source",{configurable:!1,enumerable:!1,writable:!1,value:m}),Object.freeze&&(Object.freeze(E.props),Object.freeze(E)),E};function je(t,o,h,p,m){{var b,w={},E=null,D=null;h!==void 0&&(se(h),E=""+h),oe(o)&&(se(o.key),E=""+o.key),ur(o)&&(D=o.ref,hr(o,m));for(b in o)xt.call(o,b)&&!Le.hasOwnProperty(b)&&(w[b]=o[b]);if(t&&t.defaultProps){var T=t.defaultProps;for(b in T)w[b]===void 0&&(w[b]=T[b])}if(E||D){var O=typeof t=="function"?t.displayName||t.name||"Unknown":t;E&&cr(w,O),D&&dr(w,O)}return ae(t,E,D,m,p,yt.current,w)}}var vt=j.ReactCurrentOwner,Fe=j.ReactDebugCurrentFrame;function Et(t){if(t){var o=t._owner,h=Bt(t.type,t._source,o?o.type:null);Fe.setExtraStackFrame(h)}else Fe.setExtraStackFrame(null)}var Ot;Ot=!1;function K(t){return typeof t=="object"&&t!==null&&t.$$typeof===e}function At(){{if(vt.current){var t=at(vt.current.type);if(t)return`
21
+ `+E[T].replace(" at new "," at ");return t.displayName&&F.includes("<anonymous>")&&(F=F.replace("<anonymous>",t.displayName)),typeof t=="function"&&Rt.set(t,F),F}while(T>=1&&O>=0);break}}}finally{re=!1,te.current=b,rr(),Error.prepareStackTrace=m}var U=t?t.displayName||t.name:"",M=U?Ht(U):"";return typeof t=="function"&&Rt.set(t,M),M}function ir(t,s,c){return ne(t,!1)}function or(t){var s=t.prototype;return!!(s&&s.isReactComponent)}function Bt(t,s,c){if(t==null)return"";if(typeof t=="function")return ne(t,or(t));if(typeof t=="string")return Ht(t);switch(t){case v:return Ht("Suspense");case y:return Ht("SuspenseList")}if(typeof t=="object")switch(t.$$typeof){case f:return ir(t.render);case A:return Bt(t.type,s,c);case k:{var p=t,m=p._payload,b=p._init;try{return Bt(b(m),s,c)}catch{}}}return""}var xt=Object.prototype.hasOwnProperty,De={},Pe=I.ReactDebugCurrentFrame;function Wt(t){if(t){var s=t._owner,c=Bt(t.type,t._source,s?s.type:null);Pe.setExtraStackFrame(c)}else Pe.setExtraStackFrame(null)}function sr(t,s,c,p,m){{var b=Function.call.bind(xt);for(var w in t)if(b(t,w)){var E=void 0;try{if(typeof t[w]!="function"){var D=Error((p||"React class")+": "+c+" type `"+w+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[w]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw D.name="Invariant Violation",D}E=t[w](s,w,p,c,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(T){E=T}E&&!(E instanceof Error)&&(Wt(m),_("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",p||"React class",c,w,typeof E),Wt(null)),E instanceof Error&&!(E.message in De)&&(De[E.message]=!0,Wt(m),_("Failed %s type: %s",c,E.message),Wt(null))}}}var ar=Array.isArray;function ie(t){return ar(t)}function q(t){{var s=typeof Symbol=="function"&&Symbol.toStringTag,c=s&&t[Symbol.toStringTag]||t.constructor.name||"Object";return c}}function lr(t){try{return Le(t),!1}catch{return!0}}function Le(t){return""+t}function oe(t){if(lr(t))return _("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",q(t)),Le(t)}var yt=I.ReactCurrentOwner,je={key:!0,ref:!0,__self:!0,__source:!0},qt,Ie;function ur(t){if(xt.call(t,"ref")){var s=Object.getOwnPropertyDescriptor(t,"ref").get;if(s&&s.isReactWarning)return!1}return t.ref!==void 0}function se(t){if(xt.call(t,"key")){var s=Object.getOwnPropertyDescriptor(t,"key").get;if(s&&s.isReactWarning)return!1}return t.key!==void 0}function hr(t,s){typeof t.ref=="string"&&yt.current}function cr(t,s){{var c=function(){qt||(qt=!0,_("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",s))};c.isReactWarning=!0,Object.defineProperty(t,"key",{get:c,configurable:!0})}}function dr(t,s){{var c=function(){Ie||(Ie=!0,_("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",s))};c.isReactWarning=!0,Object.defineProperty(t,"ref",{get:c,configurable:!0})}}var ae=function(t,s,c,p,m,b,w){var E={$$typeof:e,type:t,key:s,ref:c,props:w,_owner:b};return E._store={},Object.defineProperty(E._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(E,"_self",{configurable:!1,enumerable:!1,writable:!1,value:p}),Object.defineProperty(E,"_source",{configurable:!1,enumerable:!1,writable:!1,value:m}),Object.freeze&&(Object.freeze(E.props),Object.freeze(E)),E};function Fe(t,s,c,p,m){{var b,w={},E=null,D=null;c!==void 0&&(oe(c),E=""+c),se(s)&&(oe(s.key),E=""+s.key),ur(s)&&(D=s.ref,hr(s,m));for(b in s)xt.call(s,b)&&!je.hasOwnProperty(b)&&(w[b]=s[b]);if(t&&t.defaultProps){var T=t.defaultProps;for(b in T)w[b]===void 0&&(w[b]=T[b])}if(E||D){var O=typeof t=="function"?t.displayName||t.name||"Unknown":t;E&&cr(w,O),D&&dr(w,O)}return ae(t,E,D,m,p,yt.current,w)}}var vt=I.ReactCurrentOwner,Me=I.ReactDebugCurrentFrame;function Et(t){if(t){var s=t._owner,c=Bt(t.type,t._source,s?s.type:null);Me.setExtraStackFrame(c)}else Me.setExtraStackFrame(null)}var Ot;Ot=!1;function K(t){return typeof t=="object"&&t!==null&&t.$$typeof===e}function At(){{if(vt.current){var t=at(vt.current.type);if(t)return`
22
22
 
23
- Check the render method of \``+t+"`."}return""}}function le(t){return""}var Me={};function $e(t){{var o=At();if(!o){var h=typeof t=="string"?t:t.displayName||t.name;h&&(o=`
23
+ Check the render method of \``+t+"`."}return""}}function le(t){return""}var $e={};function ze(t){{var s=At();if(!s){var c=typeof t=="string"?t:t.displayName||t.name;c&&(s=`
24
24
 
25
- Check the top-level render call using <`+h+">.")}return o}}function ue(t,o){{if(!t._store||t._store.validated||t.key!=null)return;t._store.validated=!0;var h=$e(o);if(Me[h])return;Me[h]=!0;var p="";t&&t._owner&&t._owner!==vt.current&&(p=" It was passed a child from "+at(t._owner.type)+"."),Et(t),k('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',h,p),Et(null)}}function ze(t,o){{if(typeof t!="object")return;if(ie(t))for(var h=0;h<t.length;h++){var p=t[h];K(p)&&ue(p,o)}else if(K(t))t._store&&(t._store.validated=!0);else if(t){var m=L(t);if(typeof m=="function"&&m!==t.entries)for(var b=m.call(t),w;!(w=b.next()).done;)K(w.value)&&ue(w.value,o)}}}function he(t){{var o=t.type;if(o==null||typeof o=="string")return;var h;if(typeof o=="function")h=o.propTypes;else if(typeof o=="object"&&(o.$$typeof===d||o.$$typeof===A))h=o.propTypes;else return;if(h){var p=at(o);or(h,t.props,"prop",p,t)}else if(o.PropTypes!==void 0&&!Ot){Ot=!0;var m=at(o);k("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",m||"Unknown")}typeof o.getDefaultProps=="function"&&!o.getDefaultProps.isReactClassApproved&&k("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function fr(t){{for(var o=Object.keys(t.props),h=0;h<o.length;h++){var p=o[h];if(p!=="children"&&p!=="key"){Et(t),k("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",p),Et(null);break}}t.ref!==null&&(Et(t),k("Invalid attribute `ref` supplied to `React.Fragment`."),Et(null))}}var ce={};function de(t,o,h,p,m,b){{var w=$t(t);if(!w){var E="";(t===void 0||typeof t=="object"&&t!==null&&Object.keys(t).length===0)&&(E+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var D=le();D?E+=D:E+=At();var T;t===null?T="null":ie(t)?T="array":t!==void 0&&t.$$typeof===e?(T="<"+(at(t.type)||"Unknown")+" />",E=" Did you accidentally export a JSX literal instead of a component?"):T=typeof t,k("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",T,E)}var O=je(t,o,h,m,b);if(O==null)return O;if(w){var F=o.children;if(F!==void 0)if(p)if(ie(F)){for(var U=0;U<F.length;U++)ze(F[U],t);Object.freeze&&Object.freeze(F)}else k("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else ze(F,t)}if(xt.call(o,"key")){var M=at(t),P=Object.keys(o).filter(function(Z){return Z!=="key"}),H=P.length>0?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}";if(!ce[M+H]){var N=P.length>0?"{"+P.join(": ..., ")+": ...}":"{}";k(`A props object containing a "key" prop is being spread into JSX:
25
+ Check the top-level render call using <`+c+">.")}return s}}function ue(t,s){{if(!t._store||t._store.validated||t.key!=null)return;t._store.validated=!0;var c=ze(s);if($e[c])return;$e[c]=!0;var p="";t&&t._owner&&t._owner!==vt.current&&(p=" It was passed a child from "+at(t._owner.type)+"."),Et(t),_('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',c,p),Et(null)}}function Ne(t,s){{if(typeof t!="object")return;if(ie(t))for(var c=0;c<t.length;c++){var p=t[c];K(p)&&ue(p,s)}else if(K(t))t._store&&(t._store.validated=!0);else if(t){var m=L(t);if(typeof m=="function"&&m!==t.entries)for(var b=m.call(t),w;!(w=b.next()).done;)K(w.value)&&ue(w.value,s)}}}function he(t){{var s=t.type;if(s==null||typeof s=="string")return;var c;if(typeof s=="function")c=s.propTypes;else if(typeof s=="object"&&(s.$$typeof===f||s.$$typeof===A))c=s.propTypes;else return;if(c){var p=at(s);sr(c,t.props,"prop",p,t)}else if(s.PropTypes!==void 0&&!Ot){Ot=!0;var m=at(s);_("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",m||"Unknown")}typeof s.getDefaultProps=="function"&&!s.getDefaultProps.isReactClassApproved&&_("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function fr(t){{for(var s=Object.keys(t.props),c=0;c<s.length;c++){var p=s[c];if(p!=="children"&&p!=="key"){Et(t),_("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",p),Et(null);break}}t.ref!==null&&(Et(t),_("Invalid attribute `ref` supplied to `React.Fragment`."),Et(null))}}var ce={};function de(t,s,c,p,m,b){{var w=$t(t);if(!w){var E="";(t===void 0||typeof t=="object"&&t!==null&&Object.keys(t).length===0)&&(E+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var D=le();D?E+=D:E+=At();var T;t===null?T="null":ie(t)?T="array":t!==void 0&&t.$$typeof===e?(T="<"+(at(t.type)||"Unknown")+" />",E=" Did you accidentally export a JSX literal instead of a component?"):T=typeof t,_("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",T,E)}var O=Fe(t,s,c,m,b);if(O==null)return O;if(w){var F=s.children;if(F!==void 0)if(p)if(ie(F)){for(var U=0;U<F.length;U++)Ne(F[U],t);Object.freeze&&Object.freeze(F)}else _("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Ne(F,t)}if(xt.call(s,"key")){var M=at(t),P=Object.keys(s).filter(function(Z){return Z!=="key"}),H=P.length>0?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}";if(!ce[M+H]){var N=P.length>0?"{"+P.join(": ..., ")+": ...}":"{}";_(`A props object containing a "key" prop is being spread into JSX:
26
26
  let props = %s;
27
27
  <%s {...props} />
28
28
  React keys must be passed directly to JSX without using spread:
29
29
  let props = %s;
30
- <%s key={someKey} {...props} />`,H,M,N,M),ce[M+H]=!0}}return t===n?fr(O):he(O),O}}function gr(t,o,h){return de(t,o,h,!0)}function r(t,o,h){return de(t,o,h,!1)}var i=r,l=gr;Gt.Fragment=n,Gt.jsx=i,Gt.jsxs=l}()),Gt}var wr;function en(){return wr||(wr=1,process.env.NODE_ENV==="production"?pe.exports=Qr():pe.exports=tn()),pe.exports}var rn=en(),nn=Object.defineProperty,sn=(u,e,s)=>e in u?nn(u,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):u[e]=s,x=(u,e,s)=>sn(u,typeof e!="symbol"?e+"":e,s);let ye=(u=21)=>crypto.getRandomValues(new Uint8Array(u)).reduce((e,s)=>(s&=63,s<36?e+=s.toString(36):s<62?e+=(s-26).toString(36).toUpperCase():s>62?e+="-":e+="_",e),"");const Xt={strokeType:"plain",strokeColor:"#202020",strokeWidth:1,head:"none",tail:"none"},br={id:0,type:"Feature",properties:{type:"arrow",style:{...Xt}},geometry:{type:"LineString",coordinates:[[0,0],[100,100]]}},on=(u=0,e=0,s=0,n=0,a={...Xt})=>({id:ye(),type:"Feature",properties:{type:"arrow",style:{...Xt,...a}},geometry:{type:"LineString",coordinates:[[u,e],[s,n]]}}),an="http://www.w3.org/2000/svg";function St(u){return document.createElementNS(an,u)}function xr(u){return u.geometry.bbox||ln(u),u.geometry.bbox}function ft(u){const e=xr(u);return{width:e[2]-e[0],height:e[3]-e[1]}}function gt(u){const e=xr(u);return{x:e[0],y:e[1]}}function ln(u){const[e,s]=u.geometry.coordinates[0][0],[n,a]=u.geometry.coordinates[0][2];u.geometry.bbox=[e,s,n,a]}function un(u,e,s,n,a){u.geometry.bbox=[e,s,e+n,s+a],u.geometry.coordinates=[[[e,s],[e+n,s],[e+n,s+a],[e,s+a],[e,s]]]}function Jt(u){const[e,s]=u.geometry.coordinates[0];return{x:e,y:s}}function ve(u,e){const[s,n]=u.geometry.coordinates[e==="start"?0:1];return{x:s,y:n}}function me(u){const[e,s]=u.geometry.coordinates[1];return{x:e,y:s}}function Er(u,e,s){u.geometry.coordinates[0]=[e,s]}function Ar(u,e,s){u.geometry.coordinates[1]=[e,s]}function we(u){return{start:Jt(u),end:me(u)}}function Lt(u,e,s,n){e==="start"?Er(u,s,n):Ar(u,s,n)}const kr=u=>parseInt(u.getAttribute("data-handle-id")||"-1");function hn(u){return Array.isArray(u)&&u.length===2&&u.every(isFinite)}function cn(u,e,s,n){for(let a=0;a<u.coordinates.length;a++){const c=u.coordinates[a];if(hn(c))c[0]=s+(c[0]-s)*e,c[1]=n+(c[1]-n)*e;else for(let f=0;f<c.length;f++){const g=c[f];g[0]=s+(g[0]-s)*e,g[1]=n+(g[1]-n)*e}}return u}function be(u,e,s){const n=Math.atan2(u.y-e.y,u.x-e.x);return{x:e.x+s*Math.cos(n),y:e.y+s*Math.sin(n)}}function Be(u,e){if(!e)return{x:u.clientX,y:u.clientY};const s=e.getBoundingClientRect();return{x:u.clientX-s.left-e.clientLeft,y:u.clientY-s.top-e.clientTop}}function dn(u,e){return u.startsWith("#")?gn(u,e):u.startsWith("rgb")?pn(u,e):u}function fn(u){return u.length===4?u.split("").map(e=>e+e).join(""):u}function gn(u,e){const[s,n,a]=fn(u).match(/\w\w/g).map(c=>parseInt(c,16));return`rgba(${s}, ${n}, ${a}, ${e})`}function pn(u,e){const[s,n,a]=u.match(/\d+/g).map(c=>parseInt(c,10));return`rgba(${s}, ${n}, ${a}, ${e})`}const Ct=(u,e)=>({x:u.x-e.x,y:u.y-e.y}),It=u=>Math.sqrt(u.x*u.x+u.y*u.y),_r=u=>({x:-u.x,y:-u.y}),Sr=u=>{const e=It(u);return e===0?{x:0,y:0}:{x:u.x/e,y:u.y/e}},jt=(u,e)=>({x:u.x+e.x,y:u.y+e.y}),Cr=(u,e)=>({x:u.x*e,y:u.y*e}),xe=(u,e)=>({x:u.x*e.x,y:u.y*e.y}),ot=(u,e)=>{const s=Math.sin(e),n=Math.cos(e);return{x:u.x*n-u.y*s,y:u.x*s+u.y*n}},yn=(u,e)=>({x:u.x/e,y:u.y/e}),Tr=(u,e)=>u.x*e.x+u.y*e.y,vn=.5;function Rr(u,e=5,s=30){var n;const{start:a,end:c}=we(u),f=Ct(c,a),g=u.properties.style&&u.properties.style.strokeWidth?(n=u.properties.style)==null?void 0:n.strokeWidth:0;return Math.min(s,Math.max(3*g,It(f)*.01,e))}function Or(u,e,s,n){const a=Cr(_r(Sr(e)),n);if(!s||s!=="arrow"&&s!=="arrow-plain")return"";const c=jt(u,ot(a,Math.PI/10)),f=jt(u,ot(a,-Math.PI/10)),g=`${u.x} ${u.y}`;return`M ${c.x} ${c.y} L ${g} ${f.x} ${f.y} ${s==="arrow"?"":`${c.x} ${c.y}`}`}function mn(u,e,s,n,a){const{start:c,end:f}=we(u),{tail:g,head:d,strokeColor:v,strokeWidth:y=0}=u.properties.style||s,A=Ct(f,c),_=Rr(u,n,a),S=St("g"),R=St("path");S.setAttribute("data-annotation",`${u.id}`),S.setAttribute("data-annotation-type","arrow");const C=d==="arrow-plain"||g==="arrow",L=v||"none";R.setAttribute("stroke",L),R.setAttribute("stroke-width",`${y}`),R.setAttribute("fill",C?v||"":"none"),R.setAttribute("stroke-linecap","round"),R.setAttribute("stroke-linejoin","round");const j=Or(c,_r(A),g,_),k=Or(f,A,d,_),z=j+`M ${c.x} ${c.y} ${f.x} ${f.y}`+k;R.setAttribute("d",z),S.appendChild(R),Dr(S,c,L,g,y),Dr(S,f,L,d,y),e.appendChild(S)}function Dr(u,e,s,n,a){n==="halo-dot"&&Pr(u,e,wn(s),a*4),(n==="dot"||n==="halo-dot")&&Pr(u,e,s,a*2)}function wn(u){return u==="none"?"none":dn(u,vn)}function Pr(u,e,s,n){const a=St("circle");a.setAttribute("cx",`${e.x}`),a.setAttribute("cy",`${e.y}`),a.setAttribute("r",`${n}`),a.setAttribute("fill",s),u.appendChild(a)}const V=-1,Ee="dragging",Ae="dragstart",Ft="dragend",We="select",qe="unselect",bn="hover",xn="unhover",Ue="remove",Ye="add",En="cancelDrawing",Ve="update",An="link";function Lr(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var Ir={exports:{}},jr;function kn(){return jr||(jr=1,function(u){var e=Object.prototype.hasOwnProperty,s="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(s=!1));function a(d,v,y){this.fn=d,this.context=v,this.once=y||!1}function c(d,v,y,A,_){if(typeof y!="function")throw new TypeError("The listener must be a function");var S=new a(y,A||d,_),R=s?s+v:v;return d._events[R]?d._events[R].fn?d._events[R]=[d._events[R],S]:d._events[R].push(S):(d._events[R]=S,d._eventsCount++),d}function f(d,v){--d._eventsCount===0?d._events=new n:delete d._events[v]}function g(){this._events=new n,this._eventsCount=0}g.prototype.eventNames=function(){var d=[],v,y;if(this._eventsCount===0)return d;for(y in v=this._events)e.call(v,y)&&d.push(s?y.slice(1):y);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(v)):d},g.prototype.listeners=function(d){var v=s?s+d:d,y=this._events[v];if(!y)return[];if(y.fn)return[y.fn];for(var A=0,_=y.length,S=new Array(_);A<_;A++)S[A]=y[A].fn;return S},g.prototype.listenerCount=function(d){var v=s?s+d:d,y=this._events[v];return y?y.fn?1:y.length:0},g.prototype.emit=function(d,v,y,A,_,S){var R=s?s+d:d;if(!this._events[R])return!1;var C=this._events[R],L=arguments.length,j,k;if(C.fn){switch(C.once&&this.removeListener(d,C.fn,void 0,!0),L){case 1:return C.fn.call(C.context),!0;case 2:return C.fn.call(C.context,v),!0;case 3:return C.fn.call(C.context,v,y),!0;case 4:return C.fn.call(C.context,v,y,A),!0;case 5:return C.fn.call(C.context,v,y,A,_),!0;case 6:return C.fn.call(C.context,v,y,A,_,S),!0}for(k=1,j=new Array(L-1);k<L;k++)j[k-1]=arguments[k];C.fn.apply(C.context,j)}else{var z=C.length,W;for(k=0;k<z;k++)switch(C[k].once&&this.removeListener(d,C[k].fn,void 0,!0),L){case 1:C[k].fn.call(C[k].context);break;case 2:C[k].fn.call(C[k].context,v);break;case 3:C[k].fn.call(C[k].context,v,y);break;case 4:C[k].fn.call(C[k].context,v,y,A);break;default:if(!j)for(W=1,j=new Array(L-1);W<L;W++)j[W-1]=arguments[W];C[k].fn.apply(C[k].context,j)}}return!0},g.prototype.on=function(d,v,y){return c(this,d,v,y,!1)},g.prototype.once=function(d,v,y){return c(this,d,v,y,!0)},g.prototype.removeListener=function(d,v,y,A){var _=s?s+d:d;if(!this._events[_])return this;if(!v)return f(this,_),this;var S=this._events[_];if(S.fn)S.fn===v&&(!A||S.once)&&(!y||S.context===y)&&f(this,_);else{for(var R=0,C=[],L=S.length;R<L;R++)(S[R].fn!==v||A&&!S[R].once||y&&S[R].context!==y)&&C.push(S[R]);C.length?this._events[_]=C.length===1?C[0]:C:f(this,_)}return this},g.prototype.removeAllListeners=function(d){var v;return d?(v=s?s+d:d,this._events[v]&&f(this,v)):(this._events=new n,this._eventsCount=0),this},g.prototype.off=g.prototype.removeListener,g.prototype.addListener=g.prototype.on,g.prefixed=s,g.EventEmitter=g,u.exports=g}(Ir)),Ir.exports}var _n=kn();const Fr=Lr(_n);class Mr extends Fr{constructor(e,s){super(),x(this,"ogma"),x(this,"elements"),x(this,"layer"),x(this,"editor"),x(this,"selectedId",V),x(this,"hoveredId",V),x(this,"ogmaOptions"),x(this,"shouldDetect"),x(this,"isDragging"),x(this,"showeditorOnHover"),x(this,"_onKeyUp",n=>{n.code===27&&this.selectedId!==V?this.unselect():(n.code===46||n.code===8)&&this.selectedId!==V&&this._canRemove()&&this.remove(this.selectedId)}),x(this,"_onClickMouseMove",n=>{if(!n.domEvent||this.isDragging||!this.shouldDetect||n.domEvent.type!=="mousemove"&&n.domEvent.target&&n.domEvent.target.tagName==="a")return;const a=this.ogma.view.screenToGraphCoordinates(n),c=this.shouldDetect||!this.shouldDetect&&+this.selectedId>-1?this.detect(a,0):void 0;n.domEvent.type==="mousemove"?c?this.hover(c.id):this.hoveredId!==V&&this.unhover():c?this.select(c.id):this.selectedId!==V&&this.unselect()}),this.ogma=e,this.elements=[],this.shouldDetect=!0,this.isDragging=!1,this.showeditorOnHover=!0,this.ogmaOptions=e.getOptions(),e.events.on(["click","mousemove"],this._onClickMouseMove).on("keyup",this._onKeyUp).on("frame",()=>{this.refreshEditor(),this.refreshDrawing()}),this.layer=e.layers.addSVGLayer({draw:n=>this.draw(n)}),this.layer.moveToTop(),this.editor=e.layers.addLayer(s),this.editor.hide()}_canRemove(){return!0}add(e){const s=this.getDefaultOptions(),n=Object.assign(e,{id:e.id===void 0?ye():e.id,type:e.type,properties:{...s.properties,...e.properties||{},style:{...s.properties.style,...e.properties.style||{}}},geometry:{...s.geometry,...e.geometry}});return this.elements.push(n),this.layer.refresh(),this.emit(Ye,n),n}updateStyle(e,s){this.updateAnnotation(e,{properties:{style:s}})}updateGeometry(e,s){this.updateAnnotation(e,{geometry:s})}scale(e,s,n,a){this.updateGeometry(e,cn(e.geometry,s,n,a))}update(e,s){const n=this.getById(e);this.updateAnnotation(n,s)}updateAnnotation(e,s){if(!e)return;const n=e.id;Object.keys(s).forEach(a=>{if(a!=="id")if(a==="properties"){const c=s.properties||{style:{}};e.properties={...e.properties||{},...c||{},style:{...e.properties.style||{},...c.style||{}}}}else a==="geometry"?e.geometry={...e.geometry,...s.geometry}:e[a]=s[a]}),n===this.selectedId&&this.refreshEditor(),this.layer.refresh()}getById(e){const s=Number(e);for(let n=0;n<this.elements.length;n++){const a=this.elements[n];if(!(a.id!==e&&a.id!==s))return a}}select(e){const s=this.getById(e);s&&(this.editor.show(),this.selectedId=e,this.refreshEditor(),this.layer.refresh(),this.emit(We,s))}hover(e){const s=this.getById(e);s&&(this.showeditorOnHover&&this.editor.show(),this.hoveredId=e,this.refreshEditor(),this.layer.refresh(),this.emit(bn,s))}getSelectedFeature(){return this.selectedId===V?null:this.getById(this.selectedId)}unselect(){const e=this.getById(this.selectedId);return e&&this.emit(qe,e),this.selectedId=V,this.hoveredId===V&&this.editor.hide(),this.layer.refresh(),this}unhover(){const e=this.getById(this.hoveredId);return this.emit(xn,e),this.hoveredId=V,this.selectedId===V&&this.editor.hide(),this.layer.refresh(),this}remove(e){const s=this.getById(e);e===this.hoveredId&&this.unhover(),e===this.selectedId&&this.unselect(),this.elements=this.elements.filter(n=>n.id!==e),s&&this.emit(Ue,s),this.layer.refresh()}disableDragging(){this.ogma.setOptions({interactions:{drag:{enabled:!1},pan:{enabled:!1}},detect:{nodes:!1,edges:!1,nodeTexts:!1,edgeTexts:!1}})}restoreDragging(){this.ogma.setOptions(this.ogmaOptions)}enableDetection(){this.shouldDetect=!0}disableDetection(){this.shouldDetect=!1}refreshLayer(){this.layer.refresh()}refreshDrawing(){}getElements(){return[...this.elements]}destroy(){this.ogma.events.off(this._onClickMouseMove).off(this._onKeyUp),this.layer.destroy()}}const $r="handle-line",zr="handle-start",Nr="handle-end";class Sn extends Mr{constructor(e,s={}){super(e,`
30
+ <%s key={someKey} {...props} />`,H,M,N,M),ce[M+H]=!0}}return t===n?fr(O):he(O),O}}function gr(t,s,c){return de(t,s,c,!0)}function r(t,s,c){return de(t,s,c,!1)}var i=r,a=gr;Gt.Fragment=n,Gt.jsx=i,Gt.jsxs=a}()),Gt}var wr;function en(){return wr||(wr=1,process.env.NODE_ENV==="production"?pe.exports=Qr():pe.exports=tn()),pe.exports}var rn=en(),nn=Object.defineProperty,on=(u,e,o)=>e in u?nn(u,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):u[e]=o,x=(u,e,o)=>on(u,typeof e!="symbol"?e+"":e,o);let ye=(u=21)=>crypto.getRandomValues(new Uint8Array(u)).reduce((e,o)=>(o&=63,o<36?e+=o.toString(36):o<62?e+=(o-26).toString(36).toUpperCase():o>62?e+="-":e+="_",e),"");const Xt={strokeType:"plain",strokeColor:"#202020",strokeWidth:1,head:"none",tail:"none"},br={id:0,type:"Feature",properties:{type:"arrow",style:{...Xt}},geometry:{type:"LineString",coordinates:[[0,0],[100,100]]}},sn=(u=0,e=0,o=0,n=0,l={...Xt})=>({id:ye(),type:"Feature",properties:{type:"arrow",style:{...Xt,...l}},geometry:{type:"LineString",coordinates:[[u,e],[o,n]]}}),an="http://www.w3.org/2000/svg";function St(u){return document.createElementNS(an,u)}function xr(u){return u.geometry.bbox||ln(u),u.geometry.bbox}function ft(u){const e=xr(u);return{width:e[2]-e[0],height:e[3]-e[1]}}function gt(u){const e=xr(u);return{x:e[0],y:e[1]}}function ln(u){const[e,o]=u.geometry.coordinates[0][0],[n,l]=u.geometry.coordinates[0][2];u.geometry.bbox=[e,o,n,l]}function un(u,e,o,n,l){u.geometry.bbox=[e,o,e+n,o+l],u.geometry.coordinates=[[[e,o],[e+n,o],[e+n,o+l],[e,o+l],[e,o]]]}function Jt(u){const[e,o]=u.geometry.coordinates[0];return{x:e,y:o}}function ve(u,e){const[o,n]=u.geometry.coordinates[e==="start"?0:1];return{x:o,y:n}}function me(u){const[e,o]=u.geometry.coordinates[1];return{x:e,y:o}}function Er(u,e,o){u.geometry.coordinates[0]=[e,o]}function Ar(u,e,o){u.geometry.coordinates[1]=[e,o]}function we(u){return{start:Jt(u),end:me(u)}}function Lt(u,e,o,n){e==="start"?Er(u,o,n):Ar(u,o,n)}const kr=u=>parseInt(u.getAttribute("data-handle-id")||"-1");function hn(u){return Array.isArray(u)&&u.length===2&&u.every(isFinite)}function cn(u,e,o,n){for(let l=0;l<u.coordinates.length;l++){const h=u.coordinates[l];if(hn(h))h[0]=o+(h[0]-o)*e,h[1]=n+(h[1]-n)*e;else for(let d=0;d<h.length;d++){const g=h[d];g[0]=o+(g[0]-o)*e,g[1]=n+(g[1]-n)*e}}return u}function be(u,e,o){const n=Math.atan2(u.y-e.y,u.x-e.x);return{x:e.x+o*Math.cos(n),y:e.y+o*Math.sin(n)}}function xe(u,e){if(!e)return{x:u.clientX,y:u.clientY};const o=e.getBoundingClientRect();return{x:u.clientX-o.left-e.clientLeft,y:u.clientY-o.top-e.clientTop}}const Ct=(u,e)=>({x:u.x-e.x,y:u.y-e.y}),jt=u=>Math.sqrt(u.x*u.x+u.y*u.y),_r=u=>({x:-u.x,y:-u.y}),Sr=u=>{const e=jt(u);return e===0?{x:0,y:0}:{x:u.x/e,y:u.y/e}},It=(u,e)=>({x:u.x+e.x,y:u.y+e.y}),Cr=(u,e)=>({x:u.x*e,y:u.y*e}),Ee=(u,e)=>({x:u.x*e.x,y:u.y*e.y}),st=(u,e)=>{const o=Math.sin(e),n=Math.cos(e);return{x:u.x*n-u.y*o,y:u.x*o+u.y*n}},dn=(u,e)=>({x:u.x/e,y:u.y/e}),Tr=(u,e)=>u.x*e.x+u.y*e.y,fn=.5;function Rr(u,e=5,o=30){var n;const{start:l,end:h}=we(u),d=Ct(h,l),g=u.properties.style&&u.properties.style.strokeWidth?(n=u.properties.style)==null?void 0:n.strokeWidth:0;return Math.min(o,Math.max(3*g,jt(d)*.01,e))}function Or(u,e,o,n){const l=Cr(_r(Sr(e)),n);if(!o||o!=="arrow"&&o!=="arrow-plain")return"";const h=It(u,st(l,Math.PI/10)),d=It(u,st(l,-Math.PI/10)),g=`${u.x} ${u.y}`;return`M ${h.x} ${h.y} L ${g} ${d.x} ${d.y} ${o==="arrow"?"":`${h.x} ${h.y}`}`}function gn(u,e,o,n,l){const{start:h,end:d}=we(u),{tail:g,head:f,strokeColor:v,strokeWidth:y=0}=u.properties.style||o,A=Ct(d,h),k=Rr(u,n,l),S=St("g"),R=St("path");S.setAttribute("data-annotation",`${u.id}`),S.setAttribute("data-annotation-type","arrow");const C=f==="arrow-plain"||g==="arrow",L=v||"none";R.setAttribute("stroke",L),R.setAttribute("stroke-width",`${y}`),R.setAttribute("fill",C?v||"":"none"),R.setAttribute("stroke-linecap","round"),R.setAttribute("stroke-linejoin","round");const I=Or(h,_r(A),g,k),_=Or(d,A,f,k),z=I+`M ${h.x} ${h.y} ${d.x} ${d.y}`+_;R.setAttribute("d",z),S.appendChild(R),Dr(S,h,L,g,y),Dr(S,d,L,f,y),e.appendChild(S)}function Dr(u,e,o,n,l){n==="halo-dot"&&Pr(u,e,pn(o),fn,l*4),(n==="dot"||n==="halo-dot")&&Pr(u,e,o,1,l*2)}function pn(u){return u==="none"?"none":u}function Pr(u,e,o,n,l){const h=St("circle");h.setAttribute("cx",`${e.x}`),h.setAttribute("cy",`${e.y}`),h.setAttribute("r",`${l}`),h.setAttribute("fill-opacity",`${n}`),h.setAttribute("fill",o),u.appendChild(h)}const V=-1,Ae="dragging",ke="dragstart",Ft="dragend",We="select",qe="unselect",yn="hover",vn="unhover",Ue="remove",Ye="add",mn="cancelDrawing",Ve="update",wn="link";function Lr(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var jr={exports:{}},Ir;function bn(){return Ir||(Ir=1,function(u){var e=Object.prototype.hasOwnProperty,o="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(o=!1));function l(f,v,y){this.fn=f,this.context=v,this.once=y||!1}function h(f,v,y,A,k){if(typeof y!="function")throw new TypeError("The listener must be a function");var S=new l(y,A||f,k),R=o?o+v:v;return f._events[R]?f._events[R].fn?f._events[R]=[f._events[R],S]:f._events[R].push(S):(f._events[R]=S,f._eventsCount++),f}function d(f,v){--f._eventsCount===0?f._events=new n:delete f._events[v]}function g(){this._events=new n,this._eventsCount=0}g.prototype.eventNames=function(){var f=[],v,y;if(this._eventsCount===0)return f;for(y in v=this._events)e.call(v,y)&&f.push(o?y.slice(1):y);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(v)):f},g.prototype.listeners=function(f){var v=o?o+f:f,y=this._events[v];if(!y)return[];if(y.fn)return[y.fn];for(var A=0,k=y.length,S=new Array(k);A<k;A++)S[A]=y[A].fn;return S},g.prototype.listenerCount=function(f){var v=o?o+f:f,y=this._events[v];return y?y.fn?1:y.length:0},g.prototype.emit=function(f,v,y,A,k,S){var R=o?o+f:f;if(!this._events[R])return!1;var C=this._events[R],L=arguments.length,I,_;if(C.fn){switch(C.once&&this.removeListener(f,C.fn,void 0,!0),L){case 1:return C.fn.call(C.context),!0;case 2:return C.fn.call(C.context,v),!0;case 3:return C.fn.call(C.context,v,y),!0;case 4:return C.fn.call(C.context,v,y,A),!0;case 5:return C.fn.call(C.context,v,y,A,k),!0;case 6:return C.fn.call(C.context,v,y,A,k,S),!0}for(_=1,I=new Array(L-1);_<L;_++)I[_-1]=arguments[_];C.fn.apply(C.context,I)}else{var z=C.length,W;for(_=0;_<z;_++)switch(C[_].once&&this.removeListener(f,C[_].fn,void 0,!0),L){case 1:C[_].fn.call(C[_].context);break;case 2:C[_].fn.call(C[_].context,v);break;case 3:C[_].fn.call(C[_].context,v,y);break;case 4:C[_].fn.call(C[_].context,v,y,A);break;default:if(!I)for(W=1,I=new Array(L-1);W<L;W++)I[W-1]=arguments[W];C[_].fn.apply(C[_].context,I)}}return!0},g.prototype.on=function(f,v,y){return h(this,f,v,y,!1)},g.prototype.once=function(f,v,y){return h(this,f,v,y,!0)},g.prototype.removeListener=function(f,v,y,A){var k=o?o+f:f;if(!this._events[k])return this;if(!v)return d(this,k),this;var S=this._events[k];if(S.fn)S.fn===v&&(!A||S.once)&&(!y||S.context===y)&&d(this,k);else{for(var R=0,C=[],L=S.length;R<L;R++)(S[R].fn!==v||A&&!S[R].once||y&&S[R].context!==y)&&C.push(S[R]);C.length?this._events[k]=C.length===1?C[0]:C:d(this,k)}return this},g.prototype.removeAllListeners=function(f){var v;return f?(v=o?o+f:f,this._events[v]&&d(this,v)):(this._events=new n,this._eventsCount=0),this},g.prototype.off=g.prototype.removeListener,g.prototype.addListener=g.prototype.on,g.prefixed=o,g.EventEmitter=g,u.exports=g}(jr)),jr.exports}var xn=bn();const Fr=Lr(xn);class Mr extends Fr{constructor(e,o){super(),x(this,"ogma"),x(this,"elements"),x(this,"layer"),x(this,"editor"),x(this,"selectedId",V),x(this,"hoveredId",V),x(this,"ogmaOptions"),x(this,"shouldDetect"),x(this,"isDragging"),x(this,"showeditorOnHover"),x(this,"_onKeyUp",n=>{n.code===27&&this.selectedId!==V?this.unselect():(n.code===46||n.code===8)&&this.selectedId!==V&&this._canRemove()&&this.remove(this.selectedId)}),x(this,"_onClickMouseMove",n=>{if(!n.domEvent||this.isDragging||!this.shouldDetect||n.domEvent.type!=="mousemove"&&n.domEvent.target&&n.domEvent.target.tagName==="a")return;const l=this.ogma.view.screenToGraphCoordinates(n),h=this.shouldDetect||!this.shouldDetect&&+this.selectedId>-1?this.detect(l,0):void 0;n.domEvent.type==="mousemove"?h?this.hover(h.id):this.hoveredId!==V&&this.unhover():h?this.select(h.id):this.selectedId!==V&&this.unselect()}),this.ogma=e,this.elements=[],this.shouldDetect=!0,this.isDragging=!1,this.showeditorOnHover=!0,this.ogmaOptions=e.getOptions(),e.events.on(["click","mousemove"],this._onClickMouseMove).on("keyup",this._onKeyUp).on("frame",()=>{this.refreshEditor(),this.refreshDrawing()}),this.layer=e.layers.addSVGLayer({draw:n=>this.draw(n)}),this.layer.moveToTop(),this.editor=e.layers.addLayer(o),this.editor.hide()}_canRemove(){return!0}add(e){const o=this.getDefaultOptions(),n=Object.assign(e,{id:e.id===void 0?ye():e.id,type:e.type,properties:{...o.properties,...e.properties||{},style:{...o.properties.style,...e.properties.style||{}}},geometry:{...o.geometry,...e.geometry}});return this.elements.push(n),this.layer.refresh(),this.emit(Ye,n),n}updateStyle(e,o){this.updateAnnotation(e,{properties:{style:o}})}updateGeometry(e,o){this.updateAnnotation(e,{geometry:o})}scale(e,o,n,l){this.updateGeometry(e,cn(e.geometry,o,n,l))}update(e,o){const n=this.getById(e);this.updateAnnotation(n,o)}updateAnnotation(e,o){if(!e)return;const n=e.id;Object.keys(o).forEach(l=>{if(l!=="id")if(l==="properties"){const h=o.properties||{style:{}};e.properties={...e.properties||{},...h||{},style:{...e.properties.style||{},...h.style||{}}}}else l==="geometry"?e.geometry={...e.geometry,...o.geometry}:e[l]=o[l]}),n===this.selectedId&&this.refreshEditor(),this.layer.refresh()}getById(e){const o=Number(e);for(let n=0;n<this.elements.length;n++){const l=this.elements[n];if(!(l.id!==e&&l.id!==o))return l}}select(e){const o=this.getById(e);o&&(this.editor.show(),this.selectedId=e,this.refreshEditor(),this.layer.refresh(),this.emit(We,o))}hover(e){const o=this.getById(e);o&&(this.showeditorOnHover&&this.editor.show(),this.hoveredId=e,this.refreshEditor(),this.layer.refresh(),this.emit(yn,o))}getSelectedFeature(){return this.selectedId===V?null:this.getById(this.selectedId)}unselect(){const e=this.getById(this.selectedId);return e&&this.emit(qe,e),this.selectedId=V,this.hoveredId===V&&this.editor.hide(),this.layer.refresh(),this}unhover(){const e=this.getById(this.hoveredId);return this.emit(vn,e),this.hoveredId=V,this.selectedId===V&&this.editor.hide(),this.layer.refresh(),this}remove(e){const o=this.getById(e);e===this.hoveredId&&this.unhover(),e===this.selectedId&&this.unselect(),this.elements=this.elements.filter(n=>n.id!==e),o&&this.emit(Ue,o),this.layer.refresh()}disableDragging(){this.ogma.setOptions({interactions:{drag:{enabled:!1},pan:{enabled:!1}},detect:{nodes:!1,edges:!1,nodeTexts:!1,edgeTexts:!1}})}restoreDragging(){this.ogma.setOptions(this.ogmaOptions)}enableDetection(){this.shouldDetect=!0}disableDetection(){this.shouldDetect=!1}refreshLayer(){this.layer.refresh()}refreshDrawing(){}getElements(){return[...this.elements]}destroy(){this.ogma.events.off(this._onClickMouseMove).off(this._onKeyUp),this.layer.destroy()}}const $r="handle-line",zr="handle-start",Nr="handle-end";class En extends Mr{constructor(e,o={}){super(e,`
31
31
  <div class="arrow-handle">
32
32
  <div id="${$r}" data-handle-id="0" class="handle line"></div>
33
33
  <div id="${zr}" data-handle-id="1" class="handle point"></div>
34
34
  <div id="${Nr}" data-handle-id="2" class="handle point"></div>
35
35
  </div>
36
- `),x(this,"draggedHandle",V),x(this,"start",{x:0,y:0}),x(this,"end",{x:0,y:0}),x(this,"arrow",{...br}),x(this,"startX",0),x(this,"startY",0),x(this,"minArrowHeight",0),x(this,"maxArrowHeight",0),x(this,"handles",[]),x(this,"onHandleMouseDown",n=>{const a=this.getById(this.selectedId)||this.getById(this.hoveredId);if(!a)return;const{x:c,y:f}=Be(n,this.ogma.getContainer());this.startDragging(a,c,f),this.draggedHandle=kr(n.target)}),x(this,"onMouseUp",()=>{this.draggedHandle!==-1&&(this.restoreDragging(),this.isDragging=!1,this.draggedHandle=V,this.emit(Ft,this.arrow))}),x(this,"onMouseMove",n=>{if(!this.isDragging||this.draggedHandle===V)return;const a=this.handles[this.draggedHandle],c=this.ogma.view.getAngle(),{x:f,y:g}=ot(yn({x:n.x-this.startX,y:n.y-this.startY},this.ogma.view.getZoom()),c),d=a.id===$r,v=a.id===zr,y=a.id===Nr;(d||v)&&Er(this.arrow,this.start.x+f,this.start.y+g),(d||y)&&Ar(this.arrow,this.end.x+f,this.end.y+g),this.emit(Ee,this.arrow,d?"line":v?"start":"end"),this.refreshEditor(),this.layer.refresh()}),this.minArrowHeight=s.minArrowHeight||0,this.maxArrowHeight=s.maxArrowHeight||1e6,this.handles=Array.prototype.slice.call(this.editor.element.querySelectorAll(".arrow-handle>.handle")),this.handles.forEach(n=>n.addEventListener("mousedown",this.onHandleMouseDown)),document.addEventListener("mousemove",this.onMouseMove,!0),document.addEventListener("mouseup",this.onMouseUp)}startDrawing(e,s,n=on(e,s,e,s,Xt)){var a;this.disableDragging(),this.add(n),this.hoveredId=n.id;const c=this.ogma.view.graphToScreenCoordinates({x:e,y:s}),f=((a=this.ogma.getContainer())==null?void 0:a.getBoundingClientRect())||{left:0,top:0};this.startDragging(this.getById(n.id),c.x+(f==null?void 0:f.left),c.y+f.top),this.draggedHandle=2}cancelDrawing(){this.isDragging&&(this.remove(this.arrow.id),this.emit(Ft,this.arrow),this.restoreDragging(),this.isDragging=!1,this.draggedHandle=V)}startDragging(e,s,n){this.selectedId!==e.id&&this.select(this.hoveredId),this.arrow=e,this.startX=s,this.startY=n,this.start=Jt(this.arrow),this.end=me(this.arrow),this.disableDragging(),this.emit(Ae,this.arrow),this.isDragging=!0}detect(e,s=0){return this.elements.find(n=>{const{start:a,end:c}=we(n),f=Ct(e,{x:(a.x+c.x)/2,y:(a.y+c.y)/2}),g=Ct(c,a),d=It(g),v=Sr(g),y=Rr(n);return Math.abs(Tr(v,f))<d/2+s&&Math.abs(Tr(ot(v,Math.PI/2),f))<y/2+s})}refreshEditor(){if(+this.selectedId<0&&+this.hoveredId<0)return;const e=this.selectedId!==V?this.getById(this.selectedId):this.getById(this.hoveredId),s=we(e),n=this.ogma.view.graphToScreenCoordinates(s.start),a=this.ogma.view.graphToScreenCoordinates(s.end),[c,f,g]=Array.prototype.slice.call(this.editor.element.querySelectorAll(".handle"));f.style.transform=`translate(${n.x}px, ${n.y}px) translate(-50%, -50%)`,g.style.transform=`translate(${a.x}px, ${a.y}px) translate(-50%, -50%)`;const d={x:(a.x+n.x)/2,y:(a.y+n.y)/2},v=Ct(a,n),y=Cr(v,1/It(v)),A=Math.atan2(y.y,y.x);c.style.width=`${It(v)}px`,c.style.left=`${d.x}px`,c.style.top=`${d.y}px`,c.style.transform=`translate(-50%, -50%) rotate(${A}rad)`}getDefaultOptions(){return br}draw(e){e.innerHTML="";const s=St("g"),n=this.ogma.view.getAngle();n!==0&&s.setAttribute("transform",`rotate(${-n*(180/Math.PI)})`),this.elements.forEach(a=>mn(a,s,Xt,this.minArrowHeight,this.maxArrowHeight)),e.appendChild(s)}refreshDrawing(){const e=this.ogma.view.getAngle();this.layer.element!==null&&e!==0&&this.layer.element.children[0].setAttribute("transform",`rotate(${-e*(180/Math.PI)})`)}destroy(){super.destroy(),document.removeEventListener("mousemove",this.onMouseMove,!0),document.removeEventListener("mouseup",this.onMouseUp)}}const Mt={font:"sans-serif",fontSize:18,color:"#505050",background:"#f5f5f5",strokeWidth:0,borderRadius:8,padding:16,strokeType:"plain"},Ge={id:0,type:"Feature",properties:{type:"text",content:"",style:{...Mt}},geometry:{type:"Polygon",coordinates:[[[0,0],[100,0],[100,50],[0,50],[0,0]]]}},Hr={handleSize:3.5,placeholder:"Your text..."},Cn=(u=0,e=0,s=100,n=50,a="",c={...Mt})=>({id:ye(),type:"Feature",properties:{type:"text",content:a,style:{...Mt,...c}},geometry:{type:"Polygon",coordinates:[[[u,e],[u+s,e],[u+s,e+n],[u,e+n],[u,e]]]}});var Xe={exports:{}},Tn=Xe.exports,Br;function Rn(){return Br||(Br=1,function(u,e){(function(s,n){u.exports=n()})(Tn,()=>(()=>{var s={d:(r,i)=>{for(var l in i)s.o(i,l)&&!s.o(r,l)&&Object.defineProperty(r,l,{enumerable:!0,get:i[l]})},o:(r,i)=>Object.prototype.hasOwnProperty.call(r,i)},n={};function a(r){return a=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},a(r)}s.d(n,{default:()=>gr});var c=/^((?:[a-z\d-]+\s+)*)([\d.]+(%|em|px)|(?:x+-)?large|(?:x+-)?small|medium)(?:\s*\/\s*(normal|[\d.]+(%|px|em)?))?(\s.+)?$/,f=/\bsmall-caps\b/,g=/\b(?:italic|oblique)\b/,d=/\bbold(?:er)?\b/,v=13.3333333,y={"xx-small":9,"x-small":10,smaller:13.3333,small:13,medium:16,large:18,larger:19.2,"x-large":24,"xx-large":32};function A(r){var i="",l=this;return l.style&&l.style!=="normal"&&(i+=l.style),l.variant&&l.variant!=="normal"&&(i+=(i?" ":"")+l.variant),l.weight&&l.weight!=="normal"&&(i+=(i?" ":"")+l.weight),l.size&&(i+=(i?" ":"")+l.size+"px",l.height!==l.size&&(i+="/"+l.height+"px")),l.family&&(i+=(i?" ":"")+l.family),r&&(i+="::"+l.baseline),r&&(i+="::"+l.color),i}var _={id:"",family:"sans-serif",height:14,size:12,variant:"",style:"",weight:"",baseline:"",color:null,toString:A,valueOf:A};function S(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=c.exec(r);i.family=(l[6]||"").trim();var t=y[l[2]]||parseFloat(l[2]);l[3]==="%"?t*=.16:l[3]==="em"?t*=16:l[3]==="pt"&&(t*=v),i.size=t;var o=parseFloat(l[4]);if(o!=="normal"&&o!=="inherit"&&o?l[5]&&l[5]!=="em"?l[5]==="pt"?i.height=o*v:l[5]==="%"?i.height=.01*t:i.height=o:i.height=o*t:i.height=Math.round(t*(7/6)),f.test(l[1])&&(i.variant="small-caps"),g.test(l[1])&&(i.style="italic"),d.test(l[1]))i.weight="bold";else{var h=parseInt(/\b(\d+)\b/.exec(l[1]),10);h>=100&&h!==400&&(i.weight=h)}return i}function R(){var r,i,l,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"12px/14px sans-serif",o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=14,p=12,m=null,b=null,w="";if(t&&t.nodeType){var E=t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView),D=E.getComputedStyle(t,null);r=D.getPropertyValue("font-family")||"",p=parseFloat(D.getPropertyValue("font-size")),h=D.getPropertyValue("line-height"),m=D.getPropertyValue("font-weight"),b=D.getPropertyValue("font-style"),w=D.getPropertyValue("font-variant")||""}else if(typeof t=="string"){var T=S(t);r=T.family,p=T.size,h=T.height,w=T.variant,b=T.style,m=T.weight}else a(t)==="object"&&(r=t.family,p=t.size,h=t.height,w=t.variant,m=t.weight,b=t.style,i=t.baseline,l=t.color);o.size&&o.size<3&&(p*=o.size),h=h!=="normal"&&h?parseFloat(h):p*(7/6),o.height&&o.height<3&&(h*=o.height);var O=Object.create(_);return O.family=o.family||r||"sans-serif",O.height=h??14,O.size=p??12,O.variant=o.variant||w||"",O.style=o.style||b||"",O.weight=o.weight||m||"",O.baseline=i||0,o.baseline!=null&&(O.baseline=o.baseline),O.color=o.color||l||"",O.id=A.call(O,!0),O}const C={"\n":.28,"\r":.28," ":.28," ":.28," ":.28,"᠎":0," ":.5," ":1," ":.5," ":1," ":.33," ":.25," ":.16," ":.56," ":.28," ":.2," ":.15,"​":0," ":.16," ":.22," ":1,"\uFEFF":0};var L,j=function(r){var i=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(100,100)||r&&r.createElement("canvas");if(i&&i.getContext){var l=i.getContext("2d");if(l&&typeof l.measureText=="function")return function(t,o){return l.font=String(o),l.measureText(t).width}}}(typeof document<"u"?document:null)||(L={},function(r,i){if(!L[i]){var l=R(i);L[i]=l,/\bmonospace\b/.test(l.family)?l.size*=.6:(l.size*=.45,l.weight&&(l.size*=1.18))}return r.length*L[i].size}),k={},z={trim:!0,collapse:!0};function W(r,i,l){var t=Object.assign({},z,l),o=String(r);if(!o)return 0;if(o in C){var h=i.id+"/"+o;return h in k||(k[h]=j("_".concat(o,"_"),i)-j("__",i)),k[h]}return t.trim&&t.collapse?t.trim?o=o.trim():t.collapse&&(o=o.replace(/\s+/g," ")):o=o.replace(/\n/g," "),j(o,i)+i.size*(r.tracking||0)}function rt(r){return rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},rt(r)}function it(r,i){if(typeof i!="function"&&i!==null)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(i&&i.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),i&&Kt(r,i)}function Kt(r,i){return Kt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(l,t){return l.__proto__=t,l},Kt(r,i)}function Zt(r){var i=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var l,t=$t(r);if(i){var o=$t(this).constructor;l=Reflect.construct(t,arguments,o)}else l=t.apply(this,arguments);return ke(this,l)}}function ke(r,i){if(i&&(rt(i)==="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(l){if(l===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l}(r)}function $t(r){return $t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(i){return i.__proto__||Object.getPrototypeOf(i)},$t(r)}function zt(r,i){if(!(r instanceof i))throw new TypeError("Cannot call a class as a function")}function _e(r,i){for(var l=0;l<i.length;l++){var t=i[l];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(r,(o=function(h,p){if(rt(h)!=="object"||h===null)return h;var m=h[Symbol.toPrimitive];if(m!==void 0){var b=m.call(h,p);if(rt(b)!=="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(h)}(t.key,"string"),rt(o)==="symbol"?o:String(o)),t)}var o}function at(r,i,l){return i&&_e(r.prototype,i),Object.defineProperty(r,"prototype",{writable:!1}),r}var $=function(){function r(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";zt(this,r),this.value=i,this.weight=null,this.style=null,this.font=null,this.href=null,this.sub=!1,this.sup=!1}return at(r,[{key:"clone",value:function(){var i=new r(this.value);return i.value=this.value,i.weight=this.weight,i.style=this.style,i.font=this.font,i.href=this.href,i.sub=this.sub,i.sup=this.sup,i}},{key:"valueOf",value:function(){return this.value}},{key:"toString",value:function(){return this.value}}]),r}(),ht=function(r){it(l,r);var i=Zt(l);function l(){return zt(this,l),i.apply(this,arguments)}return at(l)}($),J=function(r){it(l,r);var i=Zt(l);function l(){return zt(this,l),i.apply(this,arguments)}return at(l)}($),ct=function(r){it(l,r);var i=Zt(l);function l(){return zt(this,l),i.apply(this,arguments)}return at(l)}($),Nt=/^[\n\r\t\x20\xA0\u2000-\u200B\u205F\u3000]/,Se=/^[^\n\r\t\u0020\u2000-\u200B\u205F\u3000]{2,}/,Qt=/^[\xA0\u2011\u202F\u2060\uFEFF]/,Ce=/^(?:[;\xAD%?…]|,(?!\d))/,Te=/^[´±°¢£¤$¥\u2212]/;function Tt(r,i){i!==!1&&(r=r.trim());for(var l,t,o=[],h=r.charAt(0),p=0,m=1,b=r.length;m<b;m++){l=r.charAt(m),t=r.charAt(m+1);var w=Nt.test(h),E=Nt.test(l),D=E||w,T=void 0;if((Te.test(l)&&!Qt.test(h)||Ce.test(h+t)&&!Qt.test(l))&&(D=!0),h!=="-"&&h!=="‐"&&h!=="–"&&h!=="—"||((T=Nt.test(r.charAt(m-2)))&&!E&&(D=!1),!T&&Se.test(l+t)&&(D=!0)),D){var O=r.slice(p,m);/\u00AD$/.test(O)?(o.push(new $(O.slice(0,-1))),o.push(new ct)):(o.push(new $(O)),o.push(new ht)),p=m}h=l}return o.push(new $(r.slice(p))),o}const Re={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"⊥",or:"⊦",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›"};var rr=/^[\n\r\x20\u2000-\u200B\u205F\u3000]/,te=/^<\/([a-zA-Z0-9]+)([^>]*)>/,ee=/^<([a-zA-Z0-9]+)((?:\s[^=\s/]+(?:\s*=\s*(?:"[^"]+"|'[^']+'|[^>\\s]+))?)+)?\s*(\/?)>(\n*)/,Ht=/^<!--(.+?)-->/,re=/&(?:#(\d\d{2,})|#x([\da-fA-F]{2,})|([a-zA-Z][a-zA-Z1-4]{1,8}));/g,Rt={b:function(r){r.weight="bold"},strong:function(r){r.weight="bold"},i:function(r){r.style="italic"},em:function(r){r.style="italic"},dfn:function(r){r.style="italic"},cite:function(r){r.style="italic"},code:function(r){r.family="monospace"},kbd:function(r){r.family="monospace"},samp:function(r){r.family="monospace"},var:function(r){r.family="monospace"},tt:function(r){r.family="monospace"},sub:function(r){r.sub=!0},sup:function(r){r.sup=!0}},nr={div:1,li:1,blockquote:2,h1:2,h2:2,h3:2,h4:2,h5:2,h6:2,ul:2,ol:2,hr:2,p:2};function ne(r){return r.replace(re,function(i,l,t,o){if(l||t){var h=l?10:16;return String.fromCharCode(parseInt(l||t,h))}return o in Re?Re[o]:i})}function ir(r){return r&&r.length>1&&(r[0]==='"'&&r[r.length-1]==='"'||r[0]==="'"&&r[r.length-1]==="'")?r.slice(1,-1):r}var sr=/^\s*([^=\s&]+)(?:\s*=\s*("[^"]+"|'[^']+'|[^>\s]+))?/;function Bt(r){var i,l={};if(r){do if(i=sr.exec(r)){var t=ne(ir(i[2]||"")).replace(/[ \r\n\t]+/g," ").trim();if(l[i[1]]=t,(r=r.slice(i[0].length)).length&&/^\S/.test(r[0]))throw new Error("Attribute error")}while(i&&r.length);if(/\S/.test(r))throw new Error("Attribute error")}return l}const xt={copyright:"©",textcopyright:"©",dag:"†",textdagger:"†",ddag:"‡",textdaggerdbl:"‡",guillemotleft:"«",guillemotright:"»",guilsinglleft:"‹",guilsinglright:"›",ldots:"…",dots:"…",textellipsis:"…",lq:"‘",P:"¶",textparagraph:"¶",pounds:"£",textsterling:"£",quotedblbase:"„",quotesinglbase:"‚",rq:"’",S:"§",sim:"~",textasciicircum:"^",textasciitilde:"˜",texttildelow:"~",textasteriskcentered:"*",textbackslash:"'",textbar:"|",textbardbl:"╎",textbigcircle:"◯",textbraceleft:"{",textbraceright:"}",textbullet:"•",textdollar:"$",textemdash:"—",textendash:"—",texteuro:"€",eurosym:"€",euro:"€",textexclamdown:"¡",textgreater:">",textless:"<",textordfeminine:"ª",textordmasculine:"º",textperiodcentered:"·",cdot:"·",textquestiondown:"¿",textquotedblleft:"“",textquotedblright:"”",textquoteleft:"‘",textquoteright:"’",textquotestraightbase:"‚",textquotestraightdblbase:"„",textregistered:"®",textthreequartersemdash:"-",texttrademark:"™",texttwelveudash:"-",textunderscore:"_",textvisiblespace:"␣",gets:"←",textleftarrow:"←",to:"→",textrightarrow:"→",textdegree:"°",infty:"∞",triangle:"△",triangledown:"▽",blacktriangle:"▲",blacktriangledown:"▼",angle:"∠",sphericalangle:"∢",aleph:"ℵ",hbar:"ħ",imath:"𝚤",jmath:"𝚥",ell:"ℓ",wp:"℘",Re:"ℜ",Im:"ℑ",mho:"℧",prime:"′",emptyset:"∅",nabla:"∇",surd:"√",partial:"∂",top:"⟙",bot:"⟂",vdash:"⟝",dashv:"⟞",forall:"∀",exists:"∃",nexists:"∄",neg:"¬",lnot:"¬",flat:"♭",natural:"♮",sharp:"♯",backslash:"\\",Box:"□",Diamond:"♢",clubsuit:"♣",diamondsuit:"♦",heartsuit:"♥",spadesuit:"♠",Join:"⨝",blacksquare:"■",bigstar:"★",diagdown:"╲",diagup:"╱",blacklozenge:"⧫",rfloor:"⌋",lfloor:"⌊",rceil:"⌉",lceil:"⌈",rangle:"⟩",langle:"⟨",sum:"∑",int:"∫",oint:"∮",prod:"∏",coprod:"∏",bigcap:"∩",bigcup:"∪",bigsqcup:"⊔",bigvee:"∨",bigwedge:"∧",bigodot:"⊙",bigotimes:"⊗",bigoplus:"⊕",biguplus:"⊎",alpha:"α",beta:"β",chi:"χ",delta:"δ",epsilon:"ε",eta:"η",gamma:"γ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",omega:"ω",phi:"φ",pi:"π",psi:"ψ",rho:"ρ",sigma:"σ",tau:"τ",theta:"θ",upsilon:"υ",xi:"ξ",zeta:"ζ",Alpha:"Α",Beta:"Β",Chi:"Χ",Delta:"Δ",Epsilon:"Ε",Eta:"Η",Gamma:"Γ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Omega:"Ω",Phi:"Φ",Pi:"Π",Psi:"Ψ",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Theta:"Θ",Upsilon:"Υ",Xi:"Ξ",Zeta:"Ζ",aa:"å",AA:"Å",ae:"æ",AE:"Æ",dh:"ð",DH:"Ð",dj:"đ",DJ:"Đ",ij:"ij",IJ:"IJ",l:"ł",L:"Ł",ng:"ŋ",NG:"Ŋ",o:"ø",O:"Ø",oe:"œ",OE:"Œ",ss:"ß",SS:"SS",th:"þ",TH:"Þ"};var Oe=/^(\^|_|\\[^#$%&~_^\\{}()\s]+)(\{)?/,De=/^%[^\n]+(?:\n|$)/,Wt=/^[^#$%&~_^\\{}]+/,or=/^\\([&{}$%#_])/,ar=/(?:\\[\\@,!:;-]|-{2,3}|[!?]`|``?|,,|''?|~|<<|>>)/g,ie={"---":"—","--":"–","!`":"¡","?`":"¿","``":"“",",,":"„","''":"”","`":"‘","'":"’","<<":"«",">>":"»","~":" ","\\-":"­","\\,":" ","\\;":" ","\\:":" ","\\!":" ","\\@":"\uFEFF","\\\\":"\\newline{}"},q={bf:function(r){r.weight="bold"},it:function(r){r.style="italic"},sl:function(r){r.style="italic"},color:function(r,i){r.color=i},href:function(r,i){r.href=i},"^":function(r){r.sup=!0},_:function(r){r.sub=!0},par:function(r){this.tokens.push(new J,new J)},newline:function(r){this.tokens.push(new J)},url:function(r,i){this.open_context().href=i,this.add_token(new $(i)),this.close_context()}};q.textsuperscript=q["^"],q.textsubscript=q._,q.textsl=q.sl,q.mathbf=q.bf,q.mathit=q.it,q.textbf=q.bf,q.textit=q.it,q.textcolor=q.color;var lr=/[\r\n\xA0]+/g;function Pe(r,i){r.sup&&(r.baseline=.45,r.size=.7),r.sub&&(r.baseline=-.3,r.size=.7);var l=i;return(r.style||r.weight||r.baseline||r.color||r.size||r.family)&&(l=R(i,r)),l}function se(r,i,l){for(var t,o,h=r.width;h+l.width>i&&r.length;)o=(t=r[r.length-1]).width,t.width>l.width?(t.value=t.value.slice(0,-1),t.width=W(t,t.font),h+=t.width):r.pop(),h-=o;r[r.length-1]instanceof ct&&r.pop(),t=r[r.length-1]||t||{},l.font=R(l.font,t.bold,t.italic,""),l.href=r.length?t.href:null,l.rel=r.length?t.rel:null,l.target=r.length?t.target:null,r.push(l)}function yt(r){return Math.round(1e6*r)/1e6}function Le(r){return function(i){if(Array.isArray(i))return qt(i)}(r)||function(i){if(typeof Symbol<"u"&&i[Symbol.iterator]!=null||i["@@iterator"]!=null)return Array.from(i)}(r)||function(i,l){if(i){if(typeof i=="string")return qt(i,l);var t=Object.prototype.toString.call(i).slice(8,-1);return t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set"?Array.from(i):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?qt(i,l):void 0}}(r)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
37
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function qt(r,i){(i==null||i>r.length)&&(i=r.length);for(var l=0,t=new Array(i);l<i;l++)t[l]=r[l];return t}var Ie={center:"middle",right:"end"},ur={middle:.5,center:.5,bottom:1,end:1},oe=function(r,i){return!r&&!i||r===i};function hr(r,i){var l=[],t=i.font(),o=t.size,h=t.family,p=i.align(),m=i.createElement();if(r.length){var b=t.height,w=i.valign(),E=i.height()(),D=i.width()(0),T=!isFinite(D)&&r.length===1,O=T?null:i.x(),F=yt(b/o),U=T?null:yt(b/(1.15*o+(b-o)/2));if(ur[w]&&isFinite(E)){var M=w==="bottom"?1:.5;U+=(E*M-b*r.length*M)/o}var P=p==="justify",H=0;p==="right"?H=D:p==="center"&&(H=D/2);for(var N=[],Z="tspan",Q=null,Y="",I=function(){if(Y){var Dt=m(Z,Q,Y);N.push(Dt)}Z="tspan",Q=null,Y=""},lt=0,st=r.length;lt<st;lt++){var mt="",kt="",dt=0,wt=r[lt];if(wt.length){N=[];for(var Ut=0,fe=0,bt=void 0,tt=0,Ne=wt.length;tt<Ne;tt++){var G=wt[tt],et=G.font;G.whitespace&&Ut++,fe+=G.width,tt&&!G.tracking&&!dt&&oe(et.id,mt)&&oe(G.class,kt)&&oe(bt,G.href)?Y+=G.value:(I(),Y=G.value,Q={fontFamily:et.family!==h?et.family:null,fontSize:et.size!==o?et.size:null,fontWeight:et.weight||null,fontStyle:et.style||null,fontVariant:et.variant!=="normal"&&et.variant||null,fill:et.color||null,baselineShift:et.baseline?100*et.baseline+"%":null,className:G.class||null},dt&&(Q.dx=yt(dt),dt=0),G.tracking&&(dt=et.size*G.tracking),G.href&&!bt?(bt=G.href,Z="a",Q.href=bt,Q.rel=G.rel,Q.target=G.target):bt=null,mt=et.id,kt=G.class)}if(I(),T)l.push.apply(l,Le(N));else{var He=null,ge=lt===st-1||wt[wt.length-1]instanceof J;P&&wt.length>1&&!ge&&(He=yt((D-fe)/Ut)),l.push(m.apply(void 0,["tspan",{wordSpacing:He,x:O(lt)+H,dy:yt(lt?F:U)+"em"}].concat(Le(N))))}}else l.push(m("tspan",{x:O(lt),dy:yt(lt?F:U)+"em"}," "))}}return m.apply(void 0,["text",{fontFamily:h,fontSize:o,textAnchor:Ie[p]||"start"}].concat(l))}var cr={middle:.5,center:.5,bottom:1,end:1};function dr(r,i,l){if(r.length){l.textBaseline="middle";var t=i.font(),o=t.height,h=t.size,p=i.valign(),m=i.height()(),b=i.width()(0),w=i.align(),E=w==="justify",D=.5*o,T=cr[p];if(T&&isFinite(m)){var O=r.length*o;D+=m*T-O*T}r.forEach(function(F,U){var M=i.x()(U),P=U*o+D,H=0,N=0;F.forEach(function(Y){Y.whitespace&&H++,N+=Y.width});var Z=0,Q=U===r.length-1||F[F.length-1]instanceof J;E&&F.length>1&&!Q&&(Z=(b-N)/H),F.forEach(function(Y){l.font=Y.font;var I=Y.font,lt=I.baseline?h*-I.baseline+.15*h:0;l.fillStyle=function(kt,dt){return kt.color?kt.color:dt.href?"#00C":"#000"}(I,Y);var st=0;if(w==="right"?st+=b-N:w==="center"?st+=b/2-N/2:w==="justify"&&(Y.whitespace||Y instanceof J)&&(M+=Z),l.fillText(Y.value,M+st,P+lt),Y.href){l.beginPath(),l.strokeStyle=l.fillStyle;var mt=Math.floor(P+.45*h)+.5;l.moveTo(M+st,mt),l.lineTo(M+st+Y.width,mt),l.stroke()}M+=Y.width})})}}function ae(r){return ae=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},ae(r)}function je(r){for(var i={},l=0;l<r.length;l++){var t=r[l];typeof t!="number"&&t!=null&&(typeof t=="string"?i.text=t:typeof t=="function"?i.fn=t:ae(t)==="object"&&t._groups?i.d3=t:t&&t.nodeType&&t.getContext?i.ctx=t.getContext("2d"):t&&t.fillText&&t.beginPath?i.ctx=t:t&&(i.text=t))}return i}function vt(r){return vt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},vt(r)}function Fe(r,i){for(var l=0;l<i.length;l++){var t=i[l];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(r,(o=function(h,p){if(vt(h)!=="object"||h===null)return h;var m=h[Symbol.toPrimitive];if(m!==void 0){var b=m.call(h,p);if(vt(b)!=="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(h)}(t.key,"string"),vt(o)==="symbol"?o:String(o)),t)}var o}var Et=R(),Ot=function(r){return typeof r=="function"?r:function(){return r}},K=function(){function r(t){if(function(h,p){if(!(h instanceof p))throw new TypeError("Cannot call a class as a function")}(this,r),this.props={overflow:"ellipsis",lineclamp:null,align:"left",wordBreak:null,valign:"top",width:function(){return 1/0},height:function(){return 1/0},x:function(){return 0},font:null,tAnchor:0,parser:r.defaultparser},t)for(var o in t)typeof this[o]=="function"&&this[o](t[o])}var i,l;return i=r,l=[{key:"linebreak",value:function(t){var o=this,h=this.props.parser(String(t)),p=this.font(),m=function(b,w,E){if(!b.length)return[];var D=w.height(),T=w.width(),O=w.overflowLine(),F=w.overflowWrap(),U=R(E,!0,!1),M=isFinite(D())?Math.floor(D()/E.height):1/0;if(!D()&&!T(0)||!M)return[];for(var P=0,H=0,N=0,Z=[],Q=[],Y=!1;P<b.length&&H<M;){var I=b[P],lt=Pe(I,E);if(I.width=W(I,lt),I.font=lt,I.line=H,I.whitespace=I.value in C,I.value&&(I.value=I.value.replace(lr," ")),!(!N&&I.whitespace||Y&&I.whitespace))if(I instanceof J)N=0,Q=[],Z.push(P+1),H++;else if(I instanceof ht||I instanceof ct)Q.push({index:P,width:N});else if(I.whitespace||N+I.width<T(H))N+=I.width;else if(Q.length){var st=void 0,mt=void 0;do{mt=!0,st=Q.pop();var kt=b[st.index],dt=void 0;kt instanceof ct&&(dt=W("-",kt.font),st.width+dt>T(H)&&(mt=!Q.length))}while(!mt);Z.push(st.index+1),N=0,H++,P=st.index,Q=[]}else if(F==="break-word"){var wt=T(H);if(N+I.width>wt){var Ut=I.clone();do I.value=I.value.slice(0,-1),I.width=W(I,I.font),N+=I.width;while(I.value&&I.width>wt);Ut.value=Ut.value.slice(I.value.length),b.splice(P+1,0,new ht,Ut)}Z.push(P+1),N=0,H++}else N+=I.width;P++,Y=I.whitespace}P!==Z[Z.length-1]&&Z.push(P);var fe=0,bt=0,tt=Z.map(function(Dt){for(var nt,Pt=fe;(nt=b[Pt])&&(nt.whitespace||!nt.value);)Pt++;for(var _t=Dt,pr=null;_t>Pt&&(nt=b[_t-1])&&(nt.whitespace||!(nt.value||nt instanceof ct));)nt instanceof J&&(pr=nt),_t--;nt instanceof ct&&(nt.value="-",nt.width=W("-",nt.font)),fe=Dt;var Yt=b.slice(Pt,_t).filter(function(yr){return yr.value});return pr&&Yt.push(pr),Yt.width=Yt.reduce(function(yr,qn){return yr+qn.width},0),Yt.width>bt&&(bt=Yt.width),Yt});if(tt.hasLineOverflow=!1,O){var Ne=O==="ellipsis"?"…":O;tt.forEach(function(Dt,nt){var Pt=T(nt);if(Dt.width>Pt){var _t=new $(Ne);_t.font=E,_t.width=W(Ne,U),se(Dt,Pt,_t),tt.hasLineOverflow=!0}})}var G=w.overflow()==="ellipsis"?"…":w.overflow();if(G&&P!==b.length){var et=T(tt.length-1),He=tt[tt.length-1],ge=new $(G);ge.font=E,ge.width=W(G,U),se(He,et,ge),tt.hasOverflow=!0}else tt.hasOverflow=!1;return tt.font=E,tt.width=bt,tt}(h,this,p);return m.height=m.length*p.height,m.render=function(b){return o.render(m,b)},m.svg=m.render,m.draw=m.render,m}},{key:"font",value:function(t){return arguments.length?(this.props.font=R(t),this):this.props.font||R(Et)}},{key:"overflow",value:function(t){return arguments.length?(this.props.overflow=String(t),this):this.props.overflow}},{key:"overflowLine",value:function(t){return arguments.length?(this.props.lineclamp=String(t),this):this.props.lineclamp}},{key:"valign",value:function(t){return arguments.length?(this.props.valign=t,this):this.props.valign}},{key:"align",value:function(t){if(!arguments.length)return this.props.align;var o=String(t).toLowerCase();return o==="left"||o==="start"?(this.props.align="left",this.props.tAnchor=0):o==="center"||o==="middle"?(this.props.align="center",this.props.tAnchor=-.5):o==="end"||o==="right"?(this.props.align="right",this.props.tAnchor=-1):o==="justify"&&(this.props.align=t,this.props.tAnchor=0),this}},{key:"overflowWrap",value:function(t){if(!arguments.length)return this.props.overflowWrap||"normal";var o=String(t).toLowerCase();return o==="break-word"?this.props.overflowWrap="break-word":o!=="normal"&&t!=null||(this.props.overflowWrap=null),this}},{key:"width",value:function(t){return arguments.length?(this.props.width=Ot(t),this):this.props.width}},{key:"height",value:function(t){return arguments.length?(this.props.height=Ot(t),this):this.props.height}},{key:"x",value:function(t){return arguments.length?(this.props.x=Ot(t),this):this.props.x}},{key:"parser",value:function(t){if(!arguments.length)return this.props.parser;if(typeof t=="string"){var o=r[t]||r[t+"parser"];typeof o=="function"&&(t=o)}if(typeof t!="function")throw new Error("Unknown parser: "+t);return this.props.parser=t,this}},{key:"createElement",value:function(t){return arguments.length?(this.props.createElement=t,this):this.props.createElement||r.createElement}},{key:"render",value:function(){var t=je(arguments);return typeof t.text=="string"&&(t.text=this.linebreak(t.text)),t.ctx?dr(t.text,this,t.ctx):hr(t.text,this)}}],l&&Fe(i.prototype,l),Object.defineProperty(i,"prototype",{writable:!1}),r}();function At(r){return At=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},At(r)}function le(r,i){(i==null||i>r.length)&&(i=r.length);for(var l=0,t=new Array(i);l<i;l++)t[l]=r[l];return t}function Me(r,i){for(var l=0;l<i.length;l++){var t=i[l];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(r,(o=function(h,p){if(At(h)!=="object"||h===null)return h;var m=h[Symbol.toPrimitive];if(m!==void 0){var b=m.call(h,p);if(At(b)!=="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(h)}(t.key,"string"),At(o)==="symbol"?o:String(o)),t)}var o}var $e=function(r){return typeof r=="function"?r:function(){return r}},ue=function(){function r(t){if(function(h,p){if(!(h instanceof p))throw new TypeError("Cannot call a class as a function")}(this,r),this.props={width:function(){return 1/0},height:function(){return 1/0},rotation:0,vAnchor:0,hAnchor:0},t)for(var o in t)typeof this[o]=="function"&&this[o](t[o]);this.render=this.render.bind(this)}var i,l;return i=r,l=[{key:"anchor",value:function(t){var o=this.props,h=o.hAnchor,p=o.vAnchor,m=o.width,b=o.height;if(!arguments.length)return[h*m(0),p*b(0)];if(typeof t=="string"){var w=this.props;t.toLowerCase().trim().split(/\s+/).forEach(function(E){E==="top"&&(w.vAnchor=-0),E==="middle"&&(w.vAnchor=-.5),E==="bottom"&&(w.vAnchor=-1),E==="left"&&(w.hAnchor=-0),E==="center"&&(w.hAnchor=-.5),E==="right"&&(w.hAnchor=-1)})}return this}},{key:"width",value:function(t){return arguments.length?(this.props.width=$e(t),this):this.props.width}},{key:"height",value:function(t){return arguments.length?(this.props.height=$e(t),this):this.props.height}},{key:"rotate",value:function(t){return arguments.length?(this.props.rotation=t,this):this.props.rotation}},{key:"createElement",value:function(t){return arguments.length?(this.props.createElement=t,this):this.props.createElement||r.createElement}},{key:"canvas",value:function(t,o){var h,p=t.getContext?t.getContext("2d"):t;return p.save(),p.rotate(this.rotate()*Math.PI/180),p.translate.apply(p,function(m){if(Array.isArray(m))return le(m)}(h=this.anchor())||function(m){if(typeof Symbol<"u"&&m[Symbol.iterator]!=null||m["@@iterator"]!=null)return Array.from(m)}(h)||function(m,b){if(m){if(typeof m=="string")return le(m,b);var w=Object.prototype.toString.call(m).slice(8,-1);return w==="Object"&&m.constructor&&(w=m.constructor.name),w==="Map"||w==="Set"?Array.from(m):w==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w)?le(m,b):void 0}}(h)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
38
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()),o(p),p.restore(),p}},{key:"render",value:function(){var t=je(arguments);if(t.d3)return t.d3.attr("transform","rotate(".concat(this.rotate(),") translate(").concat(this.anchor(),")"));if(t.ctx)return this.canvas(t.ctx,t.fn);if(t.text){var o=typeof t.text.render=="function"?t.text.render():t.text;return this.createElement()("g",{transform:"rotate(".concat(this.rotate(),") translate(").concat(this.anchor(),")")},o)}}}],l&&Me(i.prototype,l),Object.defineProperty(i,"prototype",{writable:!1}),r}(),ze=Object.prototype.hasOwnProperty,he={};function fr(r){return he[r]||(he[r]=r.replace(/([a-z])([A-Z])/g,function(i,l,t){return l+"-"+t.toLowerCase()})),he[r]}function ce(r,i){if(Array.isArray(i))return i.forEach(function(l){return ce(r,l)});typeof i=="string"&&(i=document.createTextNode(i)),r.appendChild(i)}function de(r,i){if(typeof document<"u"){var l=typeof r=="string"?document.createElementNS("http://www.w3.org/2000/svg",r):r;if(i&&l.setAttribute)for(var t in i)ze.call(i,t)&&i[t]!=null&&l.setAttribute(t==="className"?"class":fr(t),i[t]);for(var o=arguments.length,h=new Array(o>2?o-2:0),p=2;p<o;p++)h[p-2]=arguments[p];return h!=null&&h.length&&h.forEach(function(m){ce(l,m)}),l}}K.createElement=de,K.textparser=Tt,K.defaultparser=Tt,K.htmlparser=function(r){r=String(r||"").trim();for(var i,l,t={weight:null,style:null,sub:!1,sup:!1,href:null,color:null,rel:null,target:null},o=[],h=[],p=function(D){for(var T in t)t[T]&&(D[T]=t[T]);o.push(D)},m=function(D){var T=o.length,O=nr[D];if(T&&O){for(var F=T-1;o[F]&&(o[F]instanceof ht||rr.test(o[F].value));)F--;for(;O&&o[F]&&o[F]instanceof J;)F--,O--;for(;O-- >0;)o.push(new J)}};r.length;){if(i=/^[^<]+/.exec(r))Tt(ne(i[0]),!1).forEach(p);else if(!(i=Ht.exec(r)))if(i=te.exec(r))h.length&&(t=h.pop()),m(i[1]);else if(i=ee.exec(r)){var b=i[1];m(b),h.push(t),t=Object.create(t),Rt[b]&&Rt[b](t,"");var w=Bt(i[2]);b==="a"&&(w.href&&(t.href=w.href),w.rel&&(t.rel=w.rel),w.target&&(t.target=w.target)),w.class&&(t.class=t.class?t.class+" "+w.class:w.class),w.style&&(l=/(?:^|\s|;)color\s*:\s*([^;\s"']+)/.exec(w.style))&&l[1]&&(t.color=l[1]),b==="br"&&o.push(new J)}else i=[r.slice(0,1)],p(new $(i[0]));r=r.slice(i[0].length)}for(var E=o[o.length-1];E instanceof J;)o.pop(),E=o[o.length-1];return o},K.latexparser=function(r){r=String(r||"").trim();var i=[0];r=r.replace(/\\verb,(.*?),/,function(M,P){return i.push(P),"\\verb,"+(i.length-1)+","}).replace(/\\\\\n/g,function(){return"\\\\"}).replace(ar,function(M,P,H){return H.charAt(P-1)==="\\"?M:ie[M]}).replace(/\n\s+/g,function(M){return/\n/.test(M.slice(1))?"\\par ":M}).replace(/\\symbol\{(\d+)\}/,function(M,P,H,N){return N.charAt(H-1)==="\\"?M:String.fromCharCode(1*P)}).replace(/(^|[^\\])(\^|_)(\d|[^{]\S*)/g,function(M,P,H,N){return P+H+"{"+N+"}"}).replace(/\\verb,(.*?),/,function(M,P){return"\\verb,".concat(i[+P],",")});for(var l,t={weight:null,italic:null,variant:null,sub:!1,sup:!1,href:null},o=[],h=[],p=function(M){for(var P in t)t[P]&&(M[P]=t[P]);return o.push(M),M},m=function(){h.push(t),t=Object.create(t)},b=function(){if(!h.length)throw new Error("Unexpected }");t=h.pop()},w={tokens:o,open_context:m,close_context:b,add_token:p};r.length;){if(l=Wt.exec(r))Tt(l[0],!1).forEach(p);else if(l=or.exec(r))p(new $(l[1]));else if(!(l=De.exec(r))){if(l=/^\{/.exec(r))m();else if(l=/^\}/.exec(r))b();else if(!(l=/^\$/.exec(r)))if(l=/^\\verb,([^,]+),/.exec(r))p(new $(l[1]));else if(l=Oe.exec(r)){var E=l[1].slice(1)||l[1],D=!!l[2];if(/^(La)?TeX$/i.test(E)){m(),t.family="serif";var T=void 0;E==="LaTeX"&&((T=p(new $("L"))).tracking=-.25,(T=p(new $("A"))).size=.7,T.baseline=.3,T.tracking=-.1),(T=p(new $("T"))).tracking=-.17,(T=p(new $("E"))).baseline=-.22,T.tracking=-.13,T=p(new $("X")),b()}else if(E in xt)p(new $(xt[E])),D&&m();else if(E in q){var O=[],F=q[E].length-1,U=void 0;if(F){for(D=!1,r=r.slice(l[0].length-1);F--;){if(!(U=/^\{([^}]+)\}/.exec(r)))throw new Error(E+" is missing an argument");O.push(U[1]),r=r.slice(U[0].length)}l[0]=/^\{/.exec(r)?"{":"",D=!!l[0]}D&&m(),q[E].apply(w,[t].concat(O))}else console.warn("unknown latex command",E),p(new $(l[1])),D&&m()}else l=[r.slice(0,1)],p(new $(l[0]))}r=r.slice(l[0].length)}return o},K.measureText=function(r,i,l){return W(r,R(i),l)},K.Token=$,K.Break=ht,K.LineBreak=J,K.SoftHyphen=ct,K.Rotator=ue,ue.createElement=de;const gr=K;return n.default})())}(Xe)),Xe.exports}var On=Rn();const Wr=Lr(On);function Je(u){return u.replace(/…$/,"")}function Ke(u){return u.children[0].innerHTML}function Dn(u,e){const s=ft(u),{fontSize:n,font:a,padding:c=0}=u.properties.style||{};if(s.width===s.height&&s.width===0)return;const f=new Wr({font:`${n}px/${n}px ${a}`.replace(/(px)+/g,"px"),width:s.width-c*2,height:s.height-c*2,align:"left",valign:"top",x:0,overflow:"ellipsis",parser:"html",createElement:Wr.createElement});f.overflowWrap("break-word");const g=f.linebreak(u.properties.content.replaceAll(`
39
- `,"<br>")).render(),d=[...g.children];let v=0;const y=[];u.properties.content.split(`
40
- `).forEach(S=>{let R=S;for(;R.length&&v<d.length;){if(d[v].innerHTML==="&nbsp;"){R.startsWith(`
41
- `)||y.push(v),v++;break}const C=Je(Ke(d[v]));R.startsWith(C)&&(R=R.slice(C.length).trim()),v++}}),y.forEach(S=>g.removeChild(d[S]));const A=u.properties.content.match(/(https?:\/\/.*)/gm),_=A?A.map(S=>S.split(" ")[0]):[];g.setAttribute("transform",`translate(${c}, ${c})`),_.forEach(S=>{let R=S;const C=[];for(;R.length>0;){const L=d.find(k=>!!k.children[0]&&k.children[0].tagName==="tspan"&&R.startsWith(Je(Ke(k))));if(!L)break;C.push(L);const j=Je(L.children[0].innerHTML).length;if(!j)break;R=R.slice(j)}C.forEach(L=>{const j=document.createElementNS("http://www.w3.org/2000/svg","a");j.setAttribute("href",S),j.setAttribute("target","_blank"),j.innerHTML=Ke(L),L.children[0].innerHTML="",L.children[0].appendChild(j)})}),e.appendChild(g)}const qr=20;class Pn extends Mr{constructor(e,s={}){super(e,`
36
+ `),x(this,"draggedHandle",V),x(this,"start",{x:0,y:0}),x(this,"end",{x:0,y:0}),x(this,"arrow",{...br}),x(this,"startX",0),x(this,"startY",0),x(this,"minArrowHeight",0),x(this,"maxArrowHeight",0),x(this,"handles",[]),x(this,"onHandleMouseDown",n=>{const l=this.getById(this.selectedId)||this.getById(this.hoveredId);if(!l)return;const{x:h,y:d}=xe(n,this.ogma.getContainer());this.startDragging(l,h,d),this.draggedHandle=kr(n.target)}),x(this,"onMouseUp",()=>{this.draggedHandle!==-1&&(this.restoreDragging(),this.isDragging=!1,this.draggedHandle=V,this.emit(Ft,this.arrow))}),x(this,"onMouseMove",n=>{if(!this.isDragging||this.draggedHandle===V)return;const{x:l,y:h}=xe(n,this.ogma.getContainer()),d=this.handles[this.draggedHandle],g=this.ogma.view.getAngle(),{x:f,y:v}=st(dn({x:l-this.startX,y:h-this.startY},this.ogma.view.getZoom()),g),y=d.id===$r,A=d.id===zr,k=d.id===Nr;(y||A)&&Er(this.arrow,this.start.x+f,this.start.y+v),(y||k)&&Ar(this.arrow,this.end.x+f,this.end.y+v),this.emit(Ae,this.arrow,y?"line":A?"start":"end"),this.refreshEditor(),this.layer.refresh()}),this.minArrowHeight=o.minArrowHeight||0,this.maxArrowHeight=o.maxArrowHeight||1e6,this.handles=Array.prototype.slice.call(this.editor.element.querySelectorAll(".arrow-handle>.handle")),this.handles.forEach(n=>n.addEventListener("mousedown",this.onHandleMouseDown)),document.addEventListener("mousemove",this.onMouseMove,!0),document.addEventListener("mouseup",this.onMouseUp)}startDrawing(e,o,n=sn(e,o,e,o,Xt)){var l;this.disableDragging(),this.add(n),this.hoveredId=n.id;const h=this.ogma.view.graphToScreenCoordinates({x:e,y:o}),d=((l=this.ogma.getContainer())==null?void 0:l.getBoundingClientRect())||{left:0,top:0};this.startDragging(this.getById(n.id),h.x+(d==null?void 0:d.left),h.y+d.top),this.draggedHandle=2}cancelDrawing(){this.isDragging&&(this.remove(this.arrow.id),this.emit(Ft,this.arrow),this.restoreDragging(),this.isDragging=!1,this.draggedHandle=V)}startDragging(e,o,n){this.selectedId!==e.id&&this.select(this.hoveredId),this.arrow=e,this.startX=o,this.startY=n,this.start=Jt(this.arrow),this.end=me(this.arrow),this.disableDragging(),this.emit(ke,this.arrow),this.isDragging=!0}detect(e,o=0){return this.elements.find(n=>{const{start:l,end:h}=we(n),d=Ct(e,{x:(l.x+h.x)/2,y:(l.y+h.y)/2}),g=Ct(h,l),f=jt(g),v=Sr(g),y=Rr(n);return Math.abs(Tr(v,d))<f/2+o&&Math.abs(Tr(st(v,Math.PI/2),d))<y/2+o})}refreshEditor(){if(+this.selectedId<0&&+this.hoveredId<0)return;const e=this.selectedId!==V?this.getById(this.selectedId):this.getById(this.hoveredId),o=we(e),n=this.ogma.view.graphToScreenCoordinates(o.start),l=this.ogma.view.graphToScreenCoordinates(o.end),[h,d,g]=Array.prototype.slice.call(this.editor.element.querySelectorAll(".handle"));d.style.transform=`translate(${n.x}px, ${n.y}px) translate(-50%, -50%)`,g.style.transform=`translate(${l.x}px, ${l.y}px) translate(-50%, -50%)`;const f={x:(l.x+n.x)/2,y:(l.y+n.y)/2},v=Ct(l,n),y=Cr(v,1/jt(v)),A=Math.atan2(y.y,y.x);h.style.width=`${jt(v)}px`,h.style.left=`${f.x}px`,h.style.top=`${f.y}px`,h.style.transform=`translate(-50%, -50%) rotate(${A}rad)`}getDefaultOptions(){return br}draw(e){e.innerHTML="";const o=St("g"),n=this.ogma.view.getAngle();n!==0&&o.setAttribute("transform",`rotate(${-n*(180/Math.PI)})`),this.elements.forEach(l=>gn(l,o,Xt,this.minArrowHeight,this.maxArrowHeight)),e.appendChild(o)}refreshDrawing(){const e=this.ogma.view.getAngle();this.layer.element!==null&&e!==0&&this.layer.element.children[0].setAttribute("transform",`rotate(${-e*(180/Math.PI)})`)}destroy(){super.destroy(),document.removeEventListener("mousemove",this.onMouseMove,!0),document.removeEventListener("mouseup",this.onMouseUp)}}const Mt={font:"sans-serif",fontSize:18,color:"#505050",background:"#f5f5f5",strokeWidth:0,borderRadius:8,padding:16,strokeType:"plain"},Ge={id:0,type:"Feature",properties:{type:"text",content:"",style:{...Mt}},geometry:{type:"Polygon",coordinates:[[[0,0],[100,0],[100,50],[0,50],[0,0]]]}},Hr={handleSize:3.5,placeholder:"Your text..."},An=(u=0,e=0,o=100,n=50,l="",h={...Mt})=>({id:ye(),type:"Feature",properties:{type:"text",content:l,style:{...Mt,...h}},geometry:{type:"Polygon",coordinates:[[[u,e],[u+o,e],[u+o,e+n],[u,e+n],[u,e]]]}});var Xe={exports:{}},kn=Xe.exports,Br;function _n(){return Br||(Br=1,function(u,e){(function(o,n){u.exports=n()})(kn,()=>(()=>{var o={d:(r,i)=>{for(var a in i)o.o(i,a)&&!o.o(r,a)&&Object.defineProperty(r,a,{enumerable:!0,get:i[a]})},o:(r,i)=>Object.prototype.hasOwnProperty.call(r,i)},n={};function l(r){return l=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},l(r)}o.d(n,{default:()=>gr});var h=/^((?:[a-z\d-]+\s+)*)([\d.]+(%|em|px)|(?:x+-)?large|(?:x+-)?small|medium)(?:\s*\/\s*(normal|[\d.]+(%|px|em)?))?(\s.+)?$/,d=/\bsmall-caps\b/,g=/\b(?:italic|oblique)\b/,f=/\bbold(?:er)?\b/,v=13.3333333,y={"xx-small":9,"x-small":10,smaller:13.3333,small:13,medium:16,large:18,larger:19.2,"x-large":24,"xx-large":32};function A(r){var i="",a=this;return a.style&&a.style!=="normal"&&(i+=a.style),a.variant&&a.variant!=="normal"&&(i+=(i?" ":"")+a.variant),a.weight&&a.weight!=="normal"&&(i+=(i?" ":"")+a.weight),a.size&&(i+=(i?" ":"")+a.size+"px",a.height!==a.size&&(i+="/"+a.height+"px")),a.family&&(i+=(i?" ":"")+a.family),r&&(i+="::"+a.baseline),r&&(i+="::"+a.color),i}var k={id:"",family:"sans-serif",height:14,size:12,variant:"",style:"",weight:"",baseline:"",color:null,toString:A,valueOf:A};function S(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=h.exec(r);i.family=(a[6]||"").trim();var t=y[a[2]]||parseFloat(a[2]);a[3]==="%"?t*=.16:a[3]==="em"?t*=16:a[3]==="pt"&&(t*=v),i.size=t;var s=parseFloat(a[4]);if(s!=="normal"&&s!=="inherit"&&s?a[5]&&a[5]!=="em"?a[5]==="pt"?i.height=s*v:a[5]==="%"?i.height=.01*t:i.height=s:i.height=s*t:i.height=Math.round(t*(7/6)),d.test(a[1])&&(i.variant="small-caps"),g.test(a[1])&&(i.style="italic"),f.test(a[1]))i.weight="bold";else{var c=parseInt(/\b(\d+)\b/.exec(a[1]),10);c>=100&&c!==400&&(i.weight=c)}return i}function R(){var r,i,a,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"12px/14px sans-serif",s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=14,p=12,m=null,b=null,w="";if(t&&t.nodeType){var E=t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView),D=E.getComputedStyle(t,null);r=D.getPropertyValue("font-family")||"",p=parseFloat(D.getPropertyValue("font-size")),c=D.getPropertyValue("line-height"),m=D.getPropertyValue("font-weight"),b=D.getPropertyValue("font-style"),w=D.getPropertyValue("font-variant")||""}else if(typeof t=="string"){var T=S(t);r=T.family,p=T.size,c=T.height,w=T.variant,b=T.style,m=T.weight}else l(t)==="object"&&(r=t.family,p=t.size,c=t.height,w=t.variant,m=t.weight,b=t.style,i=t.baseline,a=t.color);s.size&&s.size<3&&(p*=s.size),c=c!=="normal"&&c?parseFloat(c):p*(7/6),s.height&&s.height<3&&(c*=s.height);var O=Object.create(k);return O.family=s.family||r||"sans-serif",O.height=c??14,O.size=p??12,O.variant=s.variant||w||"",O.style=s.style||b||"",O.weight=s.weight||m||"",O.baseline=i||0,s.baseline!=null&&(O.baseline=s.baseline),O.color=s.color||a||"",O.id=A.call(O,!0),O}const C={"\n":.28,"\r":.28," ":.28," ":.28," ":.28,"᠎":0," ":.5," ":1," ":.5," ":1," ":.33," ":.25," ":.16," ":.56," ":.28," ":.2," ":.15,"​":0," ":.16," ":.22," ":1,"\uFEFF":0};var L,I=function(r){var i=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(100,100)||r&&r.createElement("canvas");if(i&&i.getContext){var a=i.getContext("2d");if(a&&typeof a.measureText=="function")return function(t,s){return a.font=String(s),a.measureText(t).width}}}(typeof document<"u"?document:null)||(L={},function(r,i){if(!L[i]){var a=R(i);L[i]=a,/\bmonospace\b/.test(a.family)?a.size*=.6:(a.size*=.45,a.weight&&(a.size*=1.18))}return r.length*L[i].size}),_={},z={trim:!0,collapse:!0};function W(r,i,a){var t=Object.assign({},z,a),s=String(r);if(!s)return 0;if(s in C){var c=i.id+"/"+s;return c in _||(_[c]=I("_".concat(s,"_"),i)-I("__",i)),_[c]}return t.trim&&t.collapse?t.trim?s=s.trim():t.collapse&&(s=s.replace(/\s+/g," ")):s=s.replace(/\n/g," "),I(s,i)+i.size*(r.tracking||0)}function rt(r){return rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},rt(r)}function it(r,i){if(typeof i!="function"&&i!==null)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(i&&i.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),i&&Kt(r,i)}function Kt(r,i){return Kt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,t){return a.__proto__=t,a},Kt(r,i)}function Zt(r){var i=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}();return function(){var a,t=$t(r);if(i){var s=$t(this).constructor;a=Reflect.construct(t,arguments,s)}else a=t.apply(this,arguments);return _e(this,a)}}function _e(r,i){if(i&&(rt(i)==="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return function(a){if(a===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}(r)}function $t(r){return $t=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(i){return i.__proto__||Object.getPrototypeOf(i)},$t(r)}function zt(r,i){if(!(r instanceof i))throw new TypeError("Cannot call a class as a function")}function Se(r,i){for(var a=0;a<i.length;a++){var t=i[a];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(r,(s=function(c,p){if(rt(c)!=="object"||c===null)return c;var m=c[Symbol.toPrimitive];if(m!==void 0){var b=m.call(c,p);if(rt(b)!=="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(c)}(t.key,"string"),rt(s)==="symbol"?s:String(s)),t)}var s}function at(r,i,a){return i&&Se(r.prototype,i),Object.defineProperty(r,"prototype",{writable:!1}),r}var $=function(){function r(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";zt(this,r),this.value=i,this.weight=null,this.style=null,this.font=null,this.href=null,this.sub=!1,this.sup=!1}return at(r,[{key:"clone",value:function(){var i=new r(this.value);return i.value=this.value,i.weight=this.weight,i.style=this.style,i.font=this.font,i.href=this.href,i.sub=this.sub,i.sup=this.sup,i}},{key:"valueOf",value:function(){return this.value}},{key:"toString",value:function(){return this.value}}]),r}(),ht=function(r){it(a,r);var i=Zt(a);function a(){return zt(this,a),i.apply(this,arguments)}return at(a)}($),J=function(r){it(a,r);var i=Zt(a);function a(){return zt(this,a),i.apply(this,arguments)}return at(a)}($),ct=function(r){it(a,r);var i=Zt(a);function a(){return zt(this,a),i.apply(this,arguments)}return at(a)}($),Nt=/^[\n\r\t\x20\xA0\u2000-\u200B\u205F\u3000]/,Ce=/^[^\n\r\t\u0020\u2000-\u200B\u205F\u3000]{2,}/,Qt=/^[\xA0\u2011\u202F\u2060\uFEFF]/,Te=/^(?:[;\xAD%?…]|,(?!\d))/,Re=/^[´±°¢£¤$¥\u2212]/;function Tt(r,i){i!==!1&&(r=r.trim());for(var a,t,s=[],c=r.charAt(0),p=0,m=1,b=r.length;m<b;m++){a=r.charAt(m),t=r.charAt(m+1);var w=Nt.test(c),E=Nt.test(a),D=E||w,T=void 0;if((Re.test(a)&&!Qt.test(c)||Te.test(c+t)&&!Qt.test(a))&&(D=!0),c!=="-"&&c!=="‐"&&c!=="–"&&c!=="—"||((T=Nt.test(r.charAt(m-2)))&&!E&&(D=!1),!T&&Ce.test(a+t)&&(D=!0)),D){var O=r.slice(p,m);/\u00AD$/.test(O)?(s.push(new $(O.slice(0,-1))),s.push(new ct)):(s.push(new $(O)),s.push(new ht)),p=m}c=a}return s.push(new $(r.slice(p))),s}const Oe={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"⊥",or:"⊦",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›"};var rr=/^[\n\r\x20\u2000-\u200B\u205F\u3000]/,te=/^<\/([a-zA-Z0-9]+)([^>]*)>/,ee=/^<([a-zA-Z0-9]+)((?:\s[^=\s/]+(?:\s*=\s*(?:"[^"]+"|'[^']+'|[^>\\s]+))?)+)?\s*(\/?)>(\n*)/,Ht=/^<!--(.+?)-->/,re=/&(?:#(\d\d{2,})|#x([\da-fA-F]{2,})|([a-zA-Z][a-zA-Z1-4]{1,8}));/g,Rt={b:function(r){r.weight="bold"},strong:function(r){r.weight="bold"},i:function(r){r.style="italic"},em:function(r){r.style="italic"},dfn:function(r){r.style="italic"},cite:function(r){r.style="italic"},code:function(r){r.family="monospace"},kbd:function(r){r.family="monospace"},samp:function(r){r.family="monospace"},var:function(r){r.family="monospace"},tt:function(r){r.family="monospace"},sub:function(r){r.sub=!0},sup:function(r){r.sup=!0}},nr={div:1,li:1,blockquote:2,h1:2,h2:2,h3:2,h4:2,h5:2,h6:2,ul:2,ol:2,hr:2,p:2};function ne(r){return r.replace(re,function(i,a,t,s){if(a||t){var c=a?10:16;return String.fromCharCode(parseInt(a||t,c))}return s in Oe?Oe[s]:i})}function ir(r){return r&&r.length>1&&(r[0]==='"'&&r[r.length-1]==='"'||r[0]==="'"&&r[r.length-1]==="'")?r.slice(1,-1):r}var or=/^\s*([^=\s&]+)(?:\s*=\s*("[^"]+"|'[^']+'|[^>\s]+))?/;function Bt(r){var i,a={};if(r){do if(i=or.exec(r)){var t=ne(ir(i[2]||"")).replace(/[ \r\n\t]+/g," ").trim();if(a[i[1]]=t,(r=r.slice(i[0].length)).length&&/^\S/.test(r[0]))throw new Error("Attribute error")}while(i&&r.length);if(/\S/.test(r))throw new Error("Attribute error")}return a}const xt={copyright:"©",textcopyright:"©",dag:"†",textdagger:"†",ddag:"‡",textdaggerdbl:"‡",guillemotleft:"«",guillemotright:"»",guilsinglleft:"‹",guilsinglright:"›",ldots:"…",dots:"…",textellipsis:"…",lq:"‘",P:"¶",textparagraph:"¶",pounds:"£",textsterling:"£",quotedblbase:"„",quotesinglbase:"‚",rq:"’",S:"§",sim:"~",textasciicircum:"^",textasciitilde:"˜",texttildelow:"~",textasteriskcentered:"*",textbackslash:"'",textbar:"|",textbardbl:"╎",textbigcircle:"◯",textbraceleft:"{",textbraceright:"}",textbullet:"•",textdollar:"$",textemdash:"—",textendash:"—",texteuro:"€",eurosym:"€",euro:"€",textexclamdown:"¡",textgreater:">",textless:"<",textordfeminine:"ª",textordmasculine:"º",textperiodcentered:"·",cdot:"·",textquestiondown:"¿",textquotedblleft:"“",textquotedblright:"”",textquoteleft:"‘",textquoteright:"’",textquotestraightbase:"‚",textquotestraightdblbase:"„",textregistered:"®",textthreequartersemdash:"-",texttrademark:"™",texttwelveudash:"-",textunderscore:"_",textvisiblespace:"␣",gets:"←",textleftarrow:"←",to:"→",textrightarrow:"→",textdegree:"°",infty:"∞",triangle:"△",triangledown:"▽",blacktriangle:"▲",blacktriangledown:"▼",angle:"∠",sphericalangle:"∢",aleph:"ℵ",hbar:"ħ",imath:"𝚤",jmath:"𝚥",ell:"ℓ",wp:"℘",Re:"ℜ",Im:"ℑ",mho:"℧",prime:"′",emptyset:"∅",nabla:"∇",surd:"√",partial:"∂",top:"⟙",bot:"⟂",vdash:"⟝",dashv:"⟞",forall:"∀",exists:"∃",nexists:"∄",neg:"¬",lnot:"¬",flat:"♭",natural:"♮",sharp:"♯",backslash:"\\",Box:"□",Diamond:"♢",clubsuit:"♣",diamondsuit:"♦",heartsuit:"♥",spadesuit:"♠",Join:"⨝",blacksquare:"■",bigstar:"★",diagdown:"╲",diagup:"╱",blacklozenge:"⧫",rfloor:"⌋",lfloor:"⌊",rceil:"⌉",lceil:"⌈",rangle:"⟩",langle:"⟨",sum:"∑",int:"∫",oint:"∮",prod:"∏",coprod:"∏",bigcap:"∩",bigcup:"∪",bigsqcup:"⊔",bigvee:"∨",bigwedge:"∧",bigodot:"⊙",bigotimes:"⊗",bigoplus:"⊕",biguplus:"⊎",alpha:"α",beta:"β",chi:"χ",delta:"δ",epsilon:"ε",eta:"η",gamma:"γ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",omega:"ω",phi:"φ",pi:"π",psi:"ψ",rho:"ρ",sigma:"σ",tau:"τ",theta:"θ",upsilon:"υ",xi:"ξ",zeta:"ζ",Alpha:"Α",Beta:"Β",Chi:"Χ",Delta:"Δ",Epsilon:"Ε",Eta:"Η",Gamma:"Γ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Omega:"Ω",Phi:"Φ",Pi:"Π",Psi:"Ψ",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Theta:"Θ",Upsilon:"Υ",Xi:"Ξ",Zeta:"Ζ",aa:"å",AA:"Å",ae:"æ",AE:"Æ",dh:"ð",DH:"Ð",dj:"đ",DJ:"Đ",ij:"ij",IJ:"IJ",l:"ł",L:"Ł",ng:"ŋ",NG:"Ŋ",o:"ø",O:"Ø",oe:"œ",OE:"Œ",ss:"ß",SS:"SS",th:"þ",TH:"Þ"};var De=/^(\^|_|\\[^#$%&~_^\\{}()\s]+)(\{)?/,Pe=/^%[^\n]+(?:\n|$)/,Wt=/^[^#$%&~_^\\{}]+/,sr=/^\\([&{}$%#_])/,ar=/(?:\\[\\@,!:;-]|-{2,3}|[!?]`|``?|,,|''?|~|<<|>>)/g,ie={"---":"—","--":"–","!`":"¡","?`":"¿","``":"“",",,":"„","''":"”","`":"‘","'":"’","<<":"«",">>":"»","~":" ","\\-":"­","\\,":" ","\\;":" ","\\:":" ","\\!":" ","\\@":"\uFEFF","\\\\":"\\newline{}"},q={bf:function(r){r.weight="bold"},it:function(r){r.style="italic"},sl:function(r){r.style="italic"},color:function(r,i){r.color=i},href:function(r,i){r.href=i},"^":function(r){r.sup=!0},_:function(r){r.sub=!0},par:function(r){this.tokens.push(new J,new J)},newline:function(r){this.tokens.push(new J)},url:function(r,i){this.open_context().href=i,this.add_token(new $(i)),this.close_context()}};q.textsuperscript=q["^"],q.textsubscript=q._,q.textsl=q.sl,q.mathbf=q.bf,q.mathit=q.it,q.textbf=q.bf,q.textit=q.it,q.textcolor=q.color;var lr=/[\r\n\xA0]+/g;function Le(r,i){r.sup&&(r.baseline=.45,r.size=.7),r.sub&&(r.baseline=-.3,r.size=.7);var a=i;return(r.style||r.weight||r.baseline||r.color||r.size||r.family)&&(a=R(i,r)),a}function oe(r,i,a){for(var t,s,c=r.width;c+a.width>i&&r.length;)s=(t=r[r.length-1]).width,t.width>a.width?(t.value=t.value.slice(0,-1),t.width=W(t,t.font),c+=t.width):r.pop(),c-=s;r[r.length-1]instanceof ct&&r.pop(),t=r[r.length-1]||t||{},a.font=R(a.font,t.bold,t.italic,""),a.href=r.length?t.href:null,a.rel=r.length?t.rel:null,a.target=r.length?t.target:null,r.push(a)}function yt(r){return Math.round(1e6*r)/1e6}function je(r){return function(i){if(Array.isArray(i))return qt(i)}(r)||function(i){if(typeof Symbol<"u"&&i[Symbol.iterator]!=null||i["@@iterator"]!=null)return Array.from(i)}(r)||function(i,a){if(i){if(typeof i=="string")return qt(i,a);var t=Object.prototype.toString.call(i).slice(8,-1);return t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set"?Array.from(i):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?qt(i,a):void 0}}(r)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
37
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function qt(r,i){(i==null||i>r.length)&&(i=r.length);for(var a=0,t=new Array(i);a<i;a++)t[a]=r[a];return t}var Ie={center:"middle",right:"end"},ur={middle:.5,center:.5,bottom:1,end:1},se=function(r,i){return!r&&!i||r===i};function hr(r,i){var a=[],t=i.font(),s=t.size,c=t.family,p=i.align(),m=i.createElement();if(r.length){var b=t.height,w=i.valign(),E=i.height()(),D=i.width()(0),T=!isFinite(D)&&r.length===1,O=T?null:i.x(),F=yt(b/s),U=T?null:yt(b/(1.15*s+(b-s)/2));if(ur[w]&&isFinite(E)){var M=w==="bottom"?1:.5;U+=(E*M-b*r.length*M)/s}var P=p==="justify",H=0;p==="right"?H=D:p==="center"&&(H=D/2);for(var N=[],Z="tspan",Q=null,Y="",j=function(){if(Y){var Dt=m(Z,Q,Y);N.push(Dt)}Z="tspan",Q=null,Y=""},lt=0,ot=r.length;lt<ot;lt++){var mt="",kt="",dt=0,wt=r[lt];if(wt.length){N=[];for(var Ut=0,fe=0,bt=void 0,tt=0,He=wt.length;tt<He;tt++){var G=wt[tt],et=G.font;G.whitespace&&Ut++,fe+=G.width,tt&&!G.tracking&&!dt&&se(et.id,mt)&&se(G.class,kt)&&se(bt,G.href)?Y+=G.value:(j(),Y=G.value,Q={fontFamily:et.family!==c?et.family:null,fontSize:et.size!==s?et.size:null,fontWeight:et.weight||null,fontStyle:et.style||null,fontVariant:et.variant!=="normal"&&et.variant||null,fill:et.color||null,baselineShift:et.baseline?100*et.baseline+"%":null,className:G.class||null},dt&&(Q.dx=yt(dt),dt=0),G.tracking&&(dt=et.size*G.tracking),G.href&&!bt?(bt=G.href,Z="a",Q.href=bt,Q.rel=G.rel,Q.target=G.target):bt=null,mt=et.id,kt=G.class)}if(j(),T)a.push.apply(a,je(N));else{var Be=null,ge=lt===ot-1||wt[wt.length-1]instanceof J;P&&wt.length>1&&!ge&&(Be=yt((D-fe)/Ut)),a.push(m.apply(void 0,["tspan",{wordSpacing:Be,x:O(lt)+H,dy:yt(lt?F:U)+"em"}].concat(je(N))))}}else a.push(m("tspan",{x:O(lt),dy:yt(lt?F:U)+"em"}," "))}}return m.apply(void 0,["text",{fontFamily:c,fontSize:s,textAnchor:Ie[p]||"start"}].concat(a))}var cr={middle:.5,center:.5,bottom:1,end:1};function dr(r,i,a){if(r.length){a.textBaseline="middle";var t=i.font(),s=t.height,c=t.size,p=i.valign(),m=i.height()(),b=i.width()(0),w=i.align(),E=w==="justify",D=.5*s,T=cr[p];if(T&&isFinite(m)){var O=r.length*s;D+=m*T-O*T}r.forEach(function(F,U){var M=i.x()(U),P=U*s+D,H=0,N=0;F.forEach(function(Y){Y.whitespace&&H++,N+=Y.width});var Z=0,Q=U===r.length-1||F[F.length-1]instanceof J;E&&F.length>1&&!Q&&(Z=(b-N)/H),F.forEach(function(Y){a.font=Y.font;var j=Y.font,lt=j.baseline?c*-j.baseline+.15*c:0;a.fillStyle=function(kt,dt){return kt.color?kt.color:dt.href?"#00C":"#000"}(j,Y);var ot=0;if(w==="right"?ot+=b-N:w==="center"?ot+=b/2-N/2:w==="justify"&&(Y.whitespace||Y instanceof J)&&(M+=Z),a.fillText(Y.value,M+ot,P+lt),Y.href){a.beginPath(),a.strokeStyle=a.fillStyle;var mt=Math.floor(P+.45*c)+.5;a.moveTo(M+ot,mt),a.lineTo(M+ot+Y.width,mt),a.stroke()}M+=Y.width})})}}function ae(r){return ae=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},ae(r)}function Fe(r){for(var i={},a=0;a<r.length;a++){var t=r[a];typeof t!="number"&&t!=null&&(typeof t=="string"?i.text=t:typeof t=="function"?i.fn=t:ae(t)==="object"&&t._groups?i.d3=t:t&&t.nodeType&&t.getContext?i.ctx=t.getContext("2d"):t&&t.fillText&&t.beginPath?i.ctx=t:t&&(i.text=t))}return i}function vt(r){return vt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},vt(r)}function Me(r,i){for(var a=0;a<i.length;a++){var t=i[a];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(r,(s=function(c,p){if(vt(c)!=="object"||c===null)return c;var m=c[Symbol.toPrimitive];if(m!==void 0){var b=m.call(c,p);if(vt(b)!=="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(c)}(t.key,"string"),vt(s)==="symbol"?s:String(s)),t)}var s}var Et=R(),Ot=function(r){return typeof r=="function"?r:function(){return r}},K=function(){function r(t){if(function(c,p){if(!(c instanceof p))throw new TypeError("Cannot call a class as a function")}(this,r),this.props={overflow:"ellipsis",lineclamp:null,align:"left",wordBreak:null,valign:"top",width:function(){return 1/0},height:function(){return 1/0},x:function(){return 0},font:null,tAnchor:0,parser:r.defaultparser},t)for(var s in t)typeof this[s]=="function"&&this[s](t[s])}var i,a;return i=r,a=[{key:"linebreak",value:function(t){var s=this,c=this.props.parser(String(t)),p=this.font(),m=function(b,w,E){if(!b.length)return[];var D=w.height(),T=w.width(),O=w.overflowLine(),F=w.overflowWrap(),U=R(E,!0,!1),M=isFinite(D())?Math.floor(D()/E.height):1/0;if(!D()&&!T(0)||!M)return[];for(var P=0,H=0,N=0,Z=[],Q=[],Y=!1;P<b.length&&H<M;){var j=b[P],lt=Le(j,E);if(j.width=W(j,lt),j.font=lt,j.line=H,j.whitespace=j.value in C,j.value&&(j.value=j.value.replace(lr," ")),!(!N&&j.whitespace||Y&&j.whitespace))if(j instanceof J)N=0,Q=[],Z.push(P+1),H++;else if(j instanceof ht||j instanceof ct)Q.push({index:P,width:N});else if(j.whitespace||N+j.width<T(H))N+=j.width;else if(Q.length){var ot=void 0,mt=void 0;do{mt=!0,ot=Q.pop();var kt=b[ot.index],dt=void 0;kt instanceof ct&&(dt=W("-",kt.font),ot.width+dt>T(H)&&(mt=!Q.length))}while(!mt);Z.push(ot.index+1),N=0,H++,P=ot.index,Q=[]}else if(F==="break-word"){var wt=T(H);if(N+j.width>wt){var Ut=j.clone();do j.value=j.value.slice(0,-1),j.width=W(j,j.font),N+=j.width;while(j.value&&j.width>wt);Ut.value=Ut.value.slice(j.value.length),b.splice(P+1,0,new ht,Ut)}Z.push(P+1),N=0,H++}else N+=j.width;P++,Y=j.whitespace}P!==Z[Z.length-1]&&Z.push(P);var fe=0,bt=0,tt=Z.map(function(Dt){for(var nt,Pt=fe;(nt=b[Pt])&&(nt.whitespace||!nt.value);)Pt++;for(var _t=Dt,pr=null;_t>Pt&&(nt=b[_t-1])&&(nt.whitespace||!(nt.value||nt instanceof ct));)nt instanceof J&&(pr=nt),_t--;nt instanceof ct&&(nt.value="-",nt.width=W("-",nt.font)),fe=Dt;var Yt=b.slice(Pt,_t).filter(function(yr){return yr.value});return pr&&Yt.push(pr),Yt.width=Yt.reduce(function(yr,Nn){return yr+Nn.width},0),Yt.width>bt&&(bt=Yt.width),Yt});if(tt.hasLineOverflow=!1,O){var He=O==="ellipsis"?"…":O;tt.forEach(function(Dt,nt){var Pt=T(nt);if(Dt.width>Pt){var _t=new $(He);_t.font=E,_t.width=W(He,U),oe(Dt,Pt,_t),tt.hasLineOverflow=!0}})}var G=w.overflow()==="ellipsis"?"…":w.overflow();if(G&&P!==b.length){var et=T(tt.length-1),Be=tt[tt.length-1],ge=new $(G);ge.font=E,ge.width=W(G,U),oe(Be,et,ge),tt.hasOverflow=!0}else tt.hasOverflow=!1;return tt.font=E,tt.width=bt,tt}(c,this,p);return m.height=m.length*p.height,m.render=function(b){return s.render(m,b)},m.svg=m.render,m.draw=m.render,m}},{key:"font",value:function(t){return arguments.length?(this.props.font=R(t),this):this.props.font||R(Et)}},{key:"overflow",value:function(t){return arguments.length?(this.props.overflow=String(t),this):this.props.overflow}},{key:"overflowLine",value:function(t){return arguments.length?(this.props.lineclamp=String(t),this):this.props.lineclamp}},{key:"valign",value:function(t){return arguments.length?(this.props.valign=t,this):this.props.valign}},{key:"align",value:function(t){if(!arguments.length)return this.props.align;var s=String(t).toLowerCase();return s==="left"||s==="start"?(this.props.align="left",this.props.tAnchor=0):s==="center"||s==="middle"?(this.props.align="center",this.props.tAnchor=-.5):s==="end"||s==="right"?(this.props.align="right",this.props.tAnchor=-1):s==="justify"&&(this.props.align=t,this.props.tAnchor=0),this}},{key:"overflowWrap",value:function(t){if(!arguments.length)return this.props.overflowWrap||"normal";var s=String(t).toLowerCase();return s==="break-word"?this.props.overflowWrap="break-word":s!=="normal"&&t!=null||(this.props.overflowWrap=null),this}},{key:"width",value:function(t){return arguments.length?(this.props.width=Ot(t),this):this.props.width}},{key:"height",value:function(t){return arguments.length?(this.props.height=Ot(t),this):this.props.height}},{key:"x",value:function(t){return arguments.length?(this.props.x=Ot(t),this):this.props.x}},{key:"parser",value:function(t){if(!arguments.length)return this.props.parser;if(typeof t=="string"){var s=r[t]||r[t+"parser"];typeof s=="function"&&(t=s)}if(typeof t!="function")throw new Error("Unknown parser: "+t);return this.props.parser=t,this}},{key:"createElement",value:function(t){return arguments.length?(this.props.createElement=t,this):this.props.createElement||r.createElement}},{key:"render",value:function(){var t=Fe(arguments);return typeof t.text=="string"&&(t.text=this.linebreak(t.text)),t.ctx?dr(t.text,this,t.ctx):hr(t.text,this)}}],a&&Me(i.prototype,a),Object.defineProperty(i,"prototype",{writable:!1}),r}();function At(r){return At=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},At(r)}function le(r,i){(i==null||i>r.length)&&(i=r.length);for(var a=0,t=new Array(i);a<i;a++)t[a]=r[a];return t}function $e(r,i){for(var a=0;a<i.length;a++){var t=i[a];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(r,(s=function(c,p){if(At(c)!=="object"||c===null)return c;var m=c[Symbol.toPrimitive];if(m!==void 0){var b=m.call(c,p);if(At(b)!=="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(c)}(t.key,"string"),At(s)==="symbol"?s:String(s)),t)}var s}var ze=function(r){return typeof r=="function"?r:function(){return r}},ue=function(){function r(t){if(function(c,p){if(!(c instanceof p))throw new TypeError("Cannot call a class as a function")}(this,r),this.props={width:function(){return 1/0},height:function(){return 1/0},rotation:0,vAnchor:0,hAnchor:0},t)for(var s in t)typeof this[s]=="function"&&this[s](t[s]);this.render=this.render.bind(this)}var i,a;return i=r,a=[{key:"anchor",value:function(t){var s=this.props,c=s.hAnchor,p=s.vAnchor,m=s.width,b=s.height;if(!arguments.length)return[c*m(0),p*b(0)];if(typeof t=="string"){var w=this.props;t.toLowerCase().trim().split(/\s+/).forEach(function(E){E==="top"&&(w.vAnchor=-0),E==="middle"&&(w.vAnchor=-.5),E==="bottom"&&(w.vAnchor=-1),E==="left"&&(w.hAnchor=-0),E==="center"&&(w.hAnchor=-.5),E==="right"&&(w.hAnchor=-1)})}return this}},{key:"width",value:function(t){return arguments.length?(this.props.width=ze(t),this):this.props.width}},{key:"height",value:function(t){return arguments.length?(this.props.height=ze(t),this):this.props.height}},{key:"rotate",value:function(t){return arguments.length?(this.props.rotation=t,this):this.props.rotation}},{key:"createElement",value:function(t){return arguments.length?(this.props.createElement=t,this):this.props.createElement||r.createElement}},{key:"canvas",value:function(t,s){var c,p=t.getContext?t.getContext("2d"):t;return p.save(),p.rotate(this.rotate()*Math.PI/180),p.translate.apply(p,function(m){if(Array.isArray(m))return le(m)}(c=this.anchor())||function(m){if(typeof Symbol<"u"&&m[Symbol.iterator]!=null||m["@@iterator"]!=null)return Array.from(m)}(c)||function(m,b){if(m){if(typeof m=="string")return le(m,b);var w=Object.prototype.toString.call(m).slice(8,-1);return w==="Object"&&m.constructor&&(w=m.constructor.name),w==="Map"||w==="Set"?Array.from(m):w==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(w)?le(m,b):void 0}}(c)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
38
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()),s(p),p.restore(),p}},{key:"render",value:function(){var t=Fe(arguments);if(t.d3)return t.d3.attr("transform","rotate(".concat(this.rotate(),") translate(").concat(this.anchor(),")"));if(t.ctx)return this.canvas(t.ctx,t.fn);if(t.text){var s=typeof t.text.render=="function"?t.text.render():t.text;return this.createElement()("g",{transform:"rotate(".concat(this.rotate(),") translate(").concat(this.anchor(),")")},s)}}}],a&&$e(i.prototype,a),Object.defineProperty(i,"prototype",{writable:!1}),r}(),Ne=Object.prototype.hasOwnProperty,he={};function fr(r){return he[r]||(he[r]=r.replace(/([a-z])([A-Z])/g,function(i,a,t){return a+"-"+t.toLowerCase()})),he[r]}function ce(r,i){if(Array.isArray(i))return i.forEach(function(a){return ce(r,a)});typeof i=="string"&&(i=document.createTextNode(i)),r.appendChild(i)}function de(r,i){if(typeof document<"u"){var a=typeof r=="string"?document.createElementNS("http://www.w3.org/2000/svg",r):r;if(i&&a.setAttribute)for(var t in i)Ne.call(i,t)&&i[t]!=null&&a.setAttribute(t==="className"?"class":fr(t),i[t]);for(var s=arguments.length,c=new Array(s>2?s-2:0),p=2;p<s;p++)c[p-2]=arguments[p];return c!=null&&c.length&&c.forEach(function(m){ce(a,m)}),a}}K.createElement=de,K.textparser=Tt,K.defaultparser=Tt,K.htmlparser=function(r){r=String(r||"").trim();for(var i,a,t={weight:null,style:null,sub:!1,sup:!1,href:null,color:null,rel:null,target:null},s=[],c=[],p=function(D){for(var T in t)t[T]&&(D[T]=t[T]);s.push(D)},m=function(D){var T=s.length,O=nr[D];if(T&&O){for(var F=T-1;s[F]&&(s[F]instanceof ht||rr.test(s[F].value));)F--;for(;O&&s[F]&&s[F]instanceof J;)F--,O--;for(;O-- >0;)s.push(new J)}};r.length;){if(i=/^[^<]+/.exec(r))Tt(ne(i[0]),!1).forEach(p);else if(!(i=Ht.exec(r)))if(i=te.exec(r))c.length&&(t=c.pop()),m(i[1]);else if(i=ee.exec(r)){var b=i[1];m(b),c.push(t),t=Object.create(t),Rt[b]&&Rt[b](t,"");var w=Bt(i[2]);b==="a"&&(w.href&&(t.href=w.href),w.rel&&(t.rel=w.rel),w.target&&(t.target=w.target)),w.class&&(t.class=t.class?t.class+" "+w.class:w.class),w.style&&(a=/(?:^|\s|;)color\s*:\s*([^;\s"']+)/.exec(w.style))&&a[1]&&(t.color=a[1]),b==="br"&&s.push(new J)}else i=[r.slice(0,1)],p(new $(i[0]));r=r.slice(i[0].length)}for(var E=s[s.length-1];E instanceof J;)s.pop(),E=s[s.length-1];return s},K.latexparser=function(r){r=String(r||"").trim();var i=[0];r=r.replace(/\\verb,(.*?),/,function(M,P){return i.push(P),"\\verb,"+(i.length-1)+","}).replace(/\\\\\n/g,function(){return"\\\\"}).replace(ar,function(M,P,H){return H.charAt(P-1)==="\\"?M:ie[M]}).replace(/\n\s+/g,function(M){return/\n/.test(M.slice(1))?"\\par ":M}).replace(/\\symbol\{(\d+)\}/,function(M,P,H,N){return N.charAt(H-1)==="\\"?M:String.fromCharCode(1*P)}).replace(/(^|[^\\])(\^|_)(\d|[^{]\S*)/g,function(M,P,H,N){return P+H+"{"+N+"}"}).replace(/\\verb,(.*?),/,function(M,P){return"\\verb,".concat(i[+P],",")});for(var a,t={weight:null,italic:null,variant:null,sub:!1,sup:!1,href:null},s=[],c=[],p=function(M){for(var P in t)t[P]&&(M[P]=t[P]);return s.push(M),M},m=function(){c.push(t),t=Object.create(t)},b=function(){if(!c.length)throw new Error("Unexpected }");t=c.pop()},w={tokens:s,open_context:m,close_context:b,add_token:p};r.length;){if(a=Wt.exec(r))Tt(a[0],!1).forEach(p);else if(a=sr.exec(r))p(new $(a[1]));else if(!(a=Pe.exec(r))){if(a=/^\{/.exec(r))m();else if(a=/^\}/.exec(r))b();else if(!(a=/^\$/.exec(r)))if(a=/^\\verb,([^,]+),/.exec(r))p(new $(a[1]));else if(a=De.exec(r)){var E=a[1].slice(1)||a[1],D=!!a[2];if(/^(La)?TeX$/i.test(E)){m(),t.family="serif";var T=void 0;E==="LaTeX"&&((T=p(new $("L"))).tracking=-.25,(T=p(new $("A"))).size=.7,T.baseline=.3,T.tracking=-.1),(T=p(new $("T"))).tracking=-.17,(T=p(new $("E"))).baseline=-.22,T.tracking=-.13,T=p(new $("X")),b()}else if(E in xt)p(new $(xt[E])),D&&m();else if(E in q){var O=[],F=q[E].length-1,U=void 0;if(F){for(D=!1,r=r.slice(a[0].length-1);F--;){if(!(U=/^\{([^}]+)\}/.exec(r)))throw new Error(E+" is missing an argument");O.push(U[1]),r=r.slice(U[0].length)}a[0]=/^\{/.exec(r)?"{":"",D=!!a[0]}D&&m(),q[E].apply(w,[t].concat(O))}else console.warn("unknown latex command",E),p(new $(a[1])),D&&m()}else a=[r.slice(0,1)],p(new $(a[0]))}r=r.slice(a[0].length)}return s},K.measureText=function(r,i,a){return W(r,R(i),a)},K.Token=$,K.Break=ht,K.LineBreak=J,K.SoftHyphen=ct,K.Rotator=ue,ue.createElement=de;const gr=K;return n.default})())}(Xe)),Xe.exports}var Sn=_n();const Wr=Lr(Sn);function Je(u){return u.replace(/…$/,"")}function Ke(u){return u.children[0].innerHTML}function Cn(u,e){const o=ft(u),{fontSize:n,font:l,padding:h=0}=u.properties.style||{};if(o.width===o.height&&o.width===0)return;const d=new Wr({font:`${n}px/${n}px ${l}`.replace(/(px)+/g,"px"),width:o.width-h*2,height:o.height-h*2,align:"left",valign:"top",x:0,overflow:"ellipsis",parser:"html",createElement:Wr.createElement});d.overflowWrap("break-word");const g=d.linebreak(u.properties.content.replaceAll(`
39
+ `,"<br>")).render(),f=[...g.children];let v=0;const y=[];u.properties.content.split(`
40
+ `).forEach(S=>{let R=S;for(;R.length&&v<f.length;){if(f[v].innerHTML==="&nbsp;"){R.startsWith(`
41
+ `)||y.push(v),v++;break}const C=Je(Ke(f[v]));R.startsWith(C)&&(R=R.slice(C.length).trim()),v++}}),y.forEach(S=>g.removeChild(f[S]));const A=u.properties.content.match(/(https?:\/\/.*)/gm),k=A?A.map(S=>S.split(" ")[0]):[];g.setAttribute("transform",`translate(${h}, ${h})`),k.forEach(S=>{let R=S;const C=[];for(;R.length>0;){const L=f.find(_=>!!_.children[0]&&_.children[0].tagName==="tspan"&&R.startsWith(Je(Ke(_))));if(!L)break;C.push(L);const I=Je(L.children[0].innerHTML).length;if(!I)break;R=R.slice(I)}C.forEach(L=>{const I=document.createElementNS("http://www.w3.org/2000/svg","a");I.setAttribute("href",S),I.setAttribute("target","_blank"),I.innerHTML=Ke(L),L.children[0].innerHTML="",L.children[0].appendChild(I)})}),e.appendChild(g)}const qr=20;class Tn extends Mr{constructor(e,o={}){super(e,`
42
42
  <div class="annotation-text-handle" data-handle-id="8">
43
43
  <span class="handle line-handle top" data-handle-id="0"></span>
44
44
  <span class="handle line-handle bottom" data-handle-id="1"></span>
@@ -50,4 +50,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
50
50
  <span class="handle left bottom left-handle point-handle bottom-left" data-handle-id="7"></span>
51
51
  <textarea wrap="on"></textarea>
52
52
  </div>
53
- `),x(this,"textArea"),x(this,"handleSize"),x(this,"rect",{x:0,y:0,width:0,height:0}),x(this,"annotation",{...Ge}),x(this,"startX",0),x(this,"startY",0),x(this,"handles",[]),x(this,"draggedHandle",V),x(this,"isFocused",!1),x(this,"placeholder","Type your text here..."),x(this,"_onFocus",()=>{this.textArea.value===this.placeholder&&(this.textArea.value=""),this.isFocused=!0}),x(this,"_onBlur",()=>{this.isFocused=!1}),x(this,"startDrawing",(a,c,f=Cn(a,c,0,0,"",Mt))=>{this.add(f);const g=this.ogma.view.graphToScreenCoordinates({x:a,y:c});this.select(f.id),this.startDragging(this.getById(f.id),g.x,g.y),this.draggedHandle=6}),x(this,"cancelDrawing",()=>{this.isDragging&&(this.remove(this.annotation.id),this.annotation={...Ge},this.draggedHandle=V,this.isDragging=!1,this.emit(Ft,this.annotation))}),x(this,"startDragging",(a,c,f)=>{this.annotation=a;const g=gt(this.annotation),d=ft(this.annotation);this.rect.x=g.x,this.rect.y=g.y,this.rect.width=d.width,this.rect.height=d.height,this.startX=c,this.startY=f,this.disableDragging(),this.textArea.classList.add("noevents"),this.textArea.setAttribute("disabled","disabled"),this.emit(Ae,this.annotation),this.isDragging=!0}),x(this,"onHandleMouseDown",a=>{const c=this.getById(this.selectedId)||this.getById(this.hoveredId);if(!c)return;this.selectedId!==c.id&&this.select(this.hoveredId);const{x:f,y:g}=Be(a,this.ogma.getContainer());this.startDragging(c,f,g),this.draggedHandle=kr(a.target)}),x(this,"onMouseMove",a=>{requestAnimationFrame(()=>this._onMouseMove(a))}),x(this,"_onMouseMove",a=>{if(!this.isDragging)return;a.stopPropagation(),a.preventDefault();const c=this.handles[this.draggedHandle];let f=c.classList.contains("top");const g=c.classList.contains("left"),d=c.classList.contains("right"),v=c.classList.contains("bottom");let y=c.classList.contains("line-handle");!y&&!f&&!v&&!g&&!d&&(f=!0,y=!0);const{x:A,y:_}=Be(a,this.ogma.getContainer());let S=this.rect.x,R=this.rect.y,C=Math.max(this.rect.width,qr),L=Math.max(this.rect.height,qr);const j=this.ogma.view.getZoom(),k=(A-this.startX)/j,z=(_-this.startY)/j,W=this.ogma.view.getAngle(),rt=ot({x:k,y:z},W),it=ot({x:k,y:z},-W);y?(S=this.rect.x+rt.x,R=this.rect.y+rt.y):g&&f?(S+=rt.x,R+=rt.y,C-=k,L-=z):d&&v?(C+=k,L+=z):g&&v?(S+=it.x,C-=it.x,L+=it.y):d&&f&&(R+=it.y,C+=it.x,L-=it.y),un(this.annotation,S,R,C,L),this.emit(Ee,this.annotation,"text"),this.refreshEditor(),this.layer.refresh()}),x(this,"onMouseUp",()=>{!this.isDragging||this.draggedHandle===V||(this.restoreDragging(),this.textArea.classList.remove("noevents"),this.textArea.removeAttribute("disabled"),this.emit(Ft,this.annotation),this.isDragging=!1,this.draggedHandle=V)}),x(this,"_onMousedown",a=>{a.stopPropagation()}),x(this,"onViewChanged",()=>{const a=Math.max(2,this.handleSize/this.ogma.view.getZoom());document.documentElement.style.setProperty("--handle-scale",`${1/a}`),this.ogma.view.getAngle()===0?this.editor.element.classList.remove("rotated"):this.editor.element.classList.add("rotated")}),x(this,"_onInput",()=>{const a=this.getById(this.selectedId);a&&(this.textArea.value=this.textArea.value.replace(/ +(?= )/g,""),this.textArea.focus(),a.properties.content=this.textArea.value,this.emit(Ve,a),this.layer.refresh())}),this.showeditorOnHover=!1,this.handleSize=Hr.handleSize,this.placeholder=Hr.placeholder;const n=this.textArea=this.editor.element.querySelector("textarea");n.addEventListener("input",this._onInput),n.addEventListener("focus",this._onFocus),n.addEventListener("blur",this._onBlur),n.addEventListener("mousedown",this._onMousedown),n.spellcheck=!1,this.handles=Array.prototype.slice.call(this.editor.element.querySelectorAll(".annotation-text-handle > .handle")),this.handles.push(this.editor.element),this.handles.forEach(a=>a.addEventListener("mousedown",this.onHandleMouseDown)),document.addEventListener("mouseup",this.onMouseUp),document.addEventListener("mousemove",this.onMouseMove,!0),e.events.on(["viewChanged","zoom"],this.onViewChanged)}_canRemove(){return!this.isFocused}detect({x:e,y:s},n=0){const a={x:e,y:s},c=this.ogma.view.getAngle();return this.elements.find(f=>{const{x:g,y:d}=gt(f),{width:v,height:y}=ft(f),A={x:g,y:d},{x:_,y:S}=ot(Ct(a,A),-c);return _>-n&&_<v+n&&S>-n&&S<y+n})}draw(e){e.innerHTML="";const s="",n=this.ogma.view.getAngle();for(let c=0;c<this.elements.length;c++){const f=this.elements[c],g=`class${c}`,d=ft(f),v=gt(f);if(f.id===this.selectedId)continue;const{color:y,fontSize:A,font:_,strokeColor:S,strokeWidth:R,strokeType:C,background:L,borderRadius:j}=f.properties.style||Mt,k=St("g");k.classList.add("annotation-text"),k.setAttribute("fill",`${y}`),k.setAttribute("font-size",`${A}px`),k.setAttribute("font-family",`${_}`);const z=St("rect");j&&(z.setAttribute("rx",`${j}`),z.setAttribute("ry",`${j}`));let W=!1;C&&C!=="none"&&(W=!0,z.setAttribute("stroke",S||"black"),z.setAttribute("stroke-width",`${R}`),C==="dashed"&&z.setAttribute("stroke-dasharray","5,5")),(L&&L.length||W)&&(W=!0,z.setAttribute("fill",L||"transparent")),W&&(z.setAttribute("width",`${d.width}`),z.setAttribute("height",`${d.height}`)),k.appendChild(z),Dn(f,k);const{x:rt,y:it}=ot(v,-n);k.setAttribute("transform",`translate(${rt},${it})`),k.classList.add(g),k.setAttribute("data-annotation",`${f.id}`),k.setAttribute("data-annotation-type","text"),e.appendChild(k)}const a=St("style");a.innerHTML=s,e.firstChild&&e.insertBefore(a,e.firstChild)}refreshDrawing(){const e=this.ogma.view.getAngle(),s=this.layer.element.children;for(let n=0;n<s.length;n++){const a=s[n];if(!a.hasAttribute("data-annotation"))continue;const c=a.getAttribute("data-annotation"),f=gt(this.getById(c)),{x:g,y:d}=ot(f,-e);a.setAttribute("transform",`translate(${g},${d})`)}}getDefaultOptions(){return Ge}refreshEditor(){if(+this.selectedId<0&&+this.hoveredId<0)return;const e=this.getById(this.selectedId)||this.getById(this.hoveredId),s=ft(e),n=this.ogma.view.graphToScreenCoordinates(gt(e)),a=this.ogma.view.getZoom(),{font:c,fontSize:f,color:g,background:d,padding:v=0}=e.properties.style||Mt,y=(f||1)*a;this.textArea.value=e.properties.content;const A=this.editor.element.style;A.transform=`translate(${n.x}px, ${n.y}px)translate(-50%, -50%)translate(${s.width/2*a}px, ${s.height/2*a}px)`,A.width=`${s.width*a}px`,A.height=`${s.height*a}px`;const _=this.textArea.style;_.font=`${y} ${c}`,_.fontFamily=c||"sans-serif",_.fontSize=`${y}px`,_.padding=`${a*v}px`,_.lineHeight=`${y}px`,_.boxSizing="border-box",_.color=g||"black",_.background=d||"transparent",this.textArea.placeholder=this.placeholder,this.layer.refresh()}select(e){super.select(e),this.textArea.classList.add("noevents")}destroy(){super.destroy(),document.removeEventListener("mouseup",this.onMouseUp),document.removeEventListener("mousemove",this.onMouseMove,!0),this.ogma.events.off(this.onViewChanged)}}class Ln{constructor(){x(this,"links",{}),x(this,"linksByTargetId",{}),x(this,"linksByArrowId",{})}add(e,s,n,a,c){const f=ye(),g=e.id,d={id:f,arrow:g,target:n,targetType:a,connectionPoint:c,side:s};return this.links[f]=d,this.linksByTargetId[n]||(this.linksByTargetId[n]=[]),this.linksByTargetId[n].push(f),this.linksByArrowId[g]||(this.linksByArrowId[g]={}),this.linksByArrowId[g][s]=f,e.properties.link=e.properties.link||{},e.properties.link[s]={id:n,side:s,type:a,magnet:c},this}arrowIsLinked(e,s){var n;return!!((n=this.linksByArrowId[e])!=null&&n[s])}remove(e,s){var n,a;const c=e.id,f=(n=this.linksByArrowId[c])==null?void 0:n[s];if((a=e.properties.link)==null||delete a[s],!f)return this;const g=this.links[f];delete this.links[f];const d=this.linksByTargetId[g.target];for(let v=0;v<d.length;v++)if(d[v]===f){d.splice(v,1);break}return delete this.linksByArrowId[c][s],this}getArrowLink(e,s){var n;const a=(n=this.linksByArrowId[e])==null?void 0:n[s];return a?this.links[a]:null}getTargetLinks(e,s){var n;return((n=this.linksByTargetId[e])==null?void 0:n.map(a=>this.links[a]).filter(a=>a.targetType===s))??[]}forEach(e){Object.values(this.links).forEach(e)}}const ut=u=>u.properties.type==="arrow",pt=u=>u.properties.type==="text",Ur=u=>u.type==="FeatureCollection",In={magnetColor:"#3e8",detectMargin:20,magnetHandleRadius:5,magnetRadius:10,textPlaceholder:"Type here",arrowHandleSize:3.5,textHandleSize:3.5,minArrowHeight:20,maxArrowHeight:30},Yr=["start","end"],Vr=[{x:0,y:0},{x:.5,y:0},{x:1,y:0},{x:0,y:.5},{x:1,y:.5},{x:0,y:1},{x:.5,y:1},{x:1,y:1}];class jn extends Fr{constructor(e,s={}){super(),x(this,"arrows"),x(this,"texts"),x(this,"links",new Ln),x(this,"layer"),x(this,"annotations"),x(this,"ogma"),x(this,"options"),x(this,"selected",null),x(this,"updateTimeout",0),x(this,"hoveredNode",null),x(this,"dragged",null),x(this,"textToMagnet"),x(this,"activeLinks",[]),x(this,"_render",n=>{if(!this.dragged||this.textToMagnet===void 0)return;n.beginPath(),n.fillStyle="green";const a=this.ogma.view.getZoom();Vr.forEach(c=>{if(!this.textToMagnet)return;const f=ft(this.textToMagnet),g=gt(this.textToMagnet),d=xe(c,{x:f.width,y:f.height}),v=ot(d,this.ogma.view.getAngle()),{x:y,y:A}=jt(v,g);n.moveTo(y,A),n.arc(y,A,this.options.magnetHandleRadius/a,0,Math.PI*2)}),n.fill(),n.closePath()}),x(this,"_onFeatureDrag",(n,a)=>{const c=a;if(ut(n)&&c==="line")["start","end"].find(f=>{const g=f==="start"?Jt(n):me(n);return this._snapToText(n,c,g)||this._findAndSnapToNode(n,f,g)});else if(ut(n)&&c!=="line"){const f=c==="start"?Jt(n):me(n);this._snapToText(n,c,f)||this._findAndSnapToNode(n,c,f)}else pt(n)&&(this.activeLinks.forEach(({arrow:f,side:g,connectionPoint:d})=>{const v=this.getAnnotation(f),y=ft(n),A=gt(n),_=xe(d,{x:y.width,y:y.height}),S=ot(_,this.ogma.view.getAngle()),R=jt(S,A);v.geometry.coordinates[g==="start"?0:1]=[R.x,R.y]}),this.activeLinks.length&&this.arrows.refreshLayer());this.layer.refresh(),this.emit(Ee,n,a)}),x(this,"_onFeatureDragEnd",n=>{this.dragged!==null&&ut(n)&&Jt(this.dragged)&&Yr.forEach(a=>{this.links.getArrowLink(n.id,a)&&this.emit(An,{arrow:n,link:this.links.getArrowLink(n.id,a)})}),(pt(n)||ut(n))&&this.onUpdate(n),this.dragged=null,this.activeLinks=[],this.textToMagnet=void 0,this.annotations.forEach(a=>a.enableDetection()),this.layer.refresh(),this.emit(Ft,n)}),x(this,"_onFeatureDragStart",n=>{this.textToMagnet=void 0,ut(n)?this.dragged=n:pt(n)&&this.activeLinks.push(...this.links.getTargetLinks(n.id,"text")),this.annotations.forEach(a=>{const c=a.getSelectedFeature();c&&c!==n&&a.unhover().unselect(),a.disableDetection()}),this.emit(Ae,n)}),x(this,"_onNodesDragStart",()=>{this.arrows.unhover().unselect(),this.texts.unhover().unselect()}),x(this,"_onNodesDrag",n=>{const{dx:a,dy:c}=n;this._moveNodes(n.nodes,a,c)}),x(this,"_onLayoutEnd",n=>{n.ids.forEach((a,c)=>{this.links.getTargetLinks(a,"node").forEach(f=>{const g=this.getAnnotation(f.arrow),d=f.side,v=ve(g,d==="start"?"end":"start"),y=n.positions.current[c],A=this.ogma.getNode(a).getAttribute("radius"),_=be(v,y,+A);Lt(g,d,_.x,_.y)})}),this.arrows.refreshLayer(),this.texts.refreshLayer()}),x(this,"_onAdded",n=>{this.emit(Ye,n)}),x(this,"_onRemoved",n=>{this.emit(Ue,n)}),x(this,"_onUnselect",n=>{this.selected=null,this.emit(qe,n)}),x(this,"_onSelect",n=>{this.selected!==n&&(this.selected=n,this.emit(We,this.selected))}),x(this,"onUpdate",n=>{cancelAnimationFrame(this.updateTimeout),this.updateTimeout=requestAnimationFrame(()=>this._onUpdate(n))}),x(this,"_onUpdate",n=>{this.emit(Ve,n)}),this.options=this.setOptions({...In,...s}),this.ogma=e,this.arrows=new Sn(e,this.options),this.texts=new Pn(e,this.options),this.annotations=[this.arrows,this.texts],this.annotations.forEach(n=>{n.on(Ae,this._onFeatureDragStart).on(Ee,this._onFeatureDrag).on(Ft,this._onFeatureDragEnd).on(Ve,this.onUpdate).on(qe,this._onUnselect).on(We,this._onSelect).on(Ye,this._onAdded).on(Ue,this._onRemoved)}),this.ogma.events.on("nodesDragStart",this._onNodesDragStart).on("nodesDragProgress",this._onNodesDrag).on("layoutEnd",this._onLayoutEnd).on(["viewChanged","rotate"],()=>{this.refreshTextLinks()}),this.layer=e.layers.addCanvasLayer(this._render),this.layer.moveToBottom()}_moveNodes(e,s,n){e.forEach(a=>{const c=this.links.getTargetLinks(a.getId(),"node"),f=a.getPosition();c.forEach(g=>{const d=this.getAnnotation(g.arrow),v=g.side,y=ve(d,v==="start"?"end":"start");let A=f;const _=+a.getAttribute("radius"),S=1e-6;(g.connectionPoint.x-(f.x-s)>S||g.connectionPoint.y-(f.y-n)>S)&&(A=be(y,f,_)),Lt(d,v,A.x,A.y)})}),this.arrows.refreshLayer()}_snapToText(e,s,n){const a=this.texts.detect(n,this.options.detectMargin);if(this.links.remove(e,s),!a)return!1;this.textToMagnet=a;const c=this.findMagnetPoint(Vr,a,n);return c?(Lt(e,s,c.point.x,c.point.y),this.links.add(e,s,a.id,"text",c.magnet),!0):!1}_findAndSnapToNode(e,s,n){var a,c;const f=this.ogma.view.graphToScreenCoordinates(n),g=this.ogma.view.getElementAt(f);this.links.remove(e,s),g&&g.isNode?((a=this.hoveredNode)==null||a.setSelected(!1),this.hoveredNode=g,g.setSelected(!0),this._snapToNode(e,s,g,f)):((c=this.hoveredNode)==null||c.setSelected(!1),this.hoveredNode=null)}_snapToNode(e,s,n,a){const c=n.getPositionOnScreen(),f=+n.getAttribute("radius"),g=f*this.ogma.view.getZoom(),d=a.x-c.x,v=a.y-c.y,y=Math.sqrt(d*d+v*v),A=n.getPosition();if(y<g+this.options.detectMargin){let _=A;if(y>g/2){const S=ve(e,s==="end"?"start":"end");_=be(S,_,f)}Lt(e,s,_.x,_.y),this.links.add(e,s,n.getId(),"node",_)}}refreshTextLinks(){let e=!1;this.links.forEach(({connectionPoint:s,targetType:n,target:a,arrow:c,side:f})=>{if(n!=="text")return;e=!0;const g=this.getAnnotation(a),d=this.getAnnotation(c),v=ft(g),y=gt(g),A=xe(s,{x:v.width,y:v.height}),_=ot(A,this.ogma.view.getAngle()),S=jt(_,y);Lt(d,f,S.x,S.y)}),e&&this.arrows.refreshLayer()}getSelected(){return this.selected}findMagnetPoint(e,s,n){let a;for(const c of e){const f=ft(s),g=gt(s),d=xe(c,{x:f.width,y:f.height}),v=ot(d,this.ogma.view.getAngle()),y=jt(v,g),A=It(Ct(y,n)),_=Math.min(this.options.magnetRadius*this.ogma.view.getZoom(),f.width/2,f.height/2);if(A<Math.max(_,this.options.magnetHandleRadius)){a={point:y,magnet:c};break}}return a}setOptions(e={}){return this.options={...this.options||{},...e},this.options}select(e){const s=this.getAnnotations().features.find(n=>n.id===e);return s?(ut(s)?this.arrows.select(s.id):pt(s)&&this.texts.select(s.id),this):this}unselect(){return this.selected?(ut(this.selected)?this.arrows.unselect():pt(this.selected)&&this.texts.unselect(),this):this}add(e){if(Ur(e)){const[s,n]=e.features.reduce((a,c)=>(ut(c)?a[1].push(c):pt(c)&&a[0].push(c),a),[[],[]]);return s.forEach(a=>this.add(a)),n.forEach(a=>this.add(a)),this.arrows.refreshLayer(),this}switch(e.properties.type){case"text":this.texts.add(e);break;default:this.arrows.add(e),this.loadLink(e);break}return this}remove(e){return Ur(e)?(e.features.forEach(s=>this.remove(s)),this):(ut(e)?(this.links.remove(e,"start"),this.links.remove(e,"end"),this.arrows.remove(e.id)):this.texts.remove(e.id),this)}loadLink(e){if(e.properties.link)for(const s of Yr){const n=e.properties.link[s];if(!n)continue;const a=this.getAnnotation(n.id);if(n.type==="text"&&a)this.links.add(e,s,n.id,n.type,n.magnet);else if(n.type==="node"){const c=this.ogma.getNode(n.id);if(!c)continue;this.links.add(e,s,n.id,n.type,n.magnet);const f=c.getPosition(),g=c.getAttribute("radius")||0,d=ve(e,s==="start"?"end":"start"),v=be(d,f,+g);Lt(e,s,v.x,v.y)}}}startArrow(e,s,n){this.cancelDrawing(),this.arrows.startDrawing(e,s,n)}startText(e,s,n){this.cancelDrawing(),this.texts.startDrawing(e,s,n)}cancelDrawing(){this.annotations.forEach(e=>e.cancelDrawing()),this.emit(En)}updateStyle(e,s){const n=this.getAnnotations().features.find(a=>a.id===e);return n?(ut(n)?this.arrows.updateStyle(n,s):pt(n)&&this.texts.updateStyle(n,s),this.onUpdate(n),this):this}setScale(e,s,n,a){const c=this.getAnnotations().features.find(f=>f.id===e);return c?(ut(c)?this.arrows.scale(c,s,n,a):pt(c)&&this.texts.scale(c,s,n,a),this.onUpdate(c),this):this}getAnnotations(){const e={type:"FeatureCollection",features:[]};return this.annotations.forEach(s=>{e.features=[...e.features,...s.getElements()]}),e}getAnnotation(e){return this.getAnnotations().features.find(s=>s.id===e)}destroy(){this.annotations.forEach(e=>e.destroy()),this.layer.destroy()}}const Ze=[8,10,12,14,16,24,32,48,64,72],Qe="none",tr="#333333",Fn=["#FFFFFF","#F44E3B","#FE9200","#FCDC00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#1E88E5","#333333","#808080","#cccccc"],Mn=["Roboto","Helvetica Neue","Helvetica","Arial","sans-serif","Georgia, serif","Menlo","Monaco","Consolas","Courier New","monospace"].sort((u,e)=>u.toLocaleLowerCase().localeCompare(e.toLocaleLowerCase())),Gr={head:"arrow",strokeColor:tr,strokeWidth:5},Xr=.25,Jr={font:"Roboto",fontSize:Ze[2],padding:Ze[2]*Xr,color:tr,strokeType:Qe,background:Qe};function Kr(u){return u.reduce((e,s)=>e+s,0)/u.length}function $n(u,e=0,s=1){return e+(s-e)*u}function zn(u,e=0,s=1){return(u-e)/(s-e)}function Nn(){return X.createContext(null)}const er=X.createContext(void 0),Hn=()=>X.useContext(er),Bn=(u,e)=>{switch(e.type){case"add":return{...u,features:[...u.features,e.payload]};case"remove":return{...u,features:u.features.filter(s=>s.id!==e.payload.id)};case"update":return{...u,features:u.features.map(s=>s.id===e.payload.id?e.payload:s)};default:return u}},Wn=({children:u})=>{const e=Zr.useOgma(),[s,n]=X.useReducer(Bn,{type:"FeatureCollection",features:[]}),[a,c]=X.useState(null),[f,g]=X.useState(Gr),[d,v]=X.useState(Jr),[y,A]=X.useState(),[_,S]=X.useState(1),[R,C]=X.useState(1);return X.useEffect(()=>{if(!e)return;const L=new jn(e,{minArrowHeight:1}),j=Kr(e.getNodes().getAttribute("radius"))/5,k=_;return g({...f,strokeWidth:(f.strokeWidth||1)*k}),S(k),C(j),L.on("select",z=>{ut(z)?g({...z.properties.style||{}}):pt(z)&&v({...z.properties.style||{}}),c(z)}).on("unselect",()=>{c(null)}),A(L),()=>{y==null||y.destroy()}},[e]),X.useEffect(()=>{y&&a&&(a==null?void 0:a.properties.type)==="arrow"&&y.updateStyle(a.id,f)},[y,f,a]),X.useEffect(()=>{y&&a&&(a==null?void 0:a.properties.type)==="text"&&y.updateStyle(a.id,d)},[y,d,a]),rn.jsx(er.Provider,{value:{annotations:s,updateAnnotations:n,currentAnnotation:a,setCurrentAnnotation:c,textStyle:d,setTextStyle:v,arrowStyle:f,setArrowStyle:g,arrowWidthFactor:_,setArrowWidthFactor:S,textSizeFactor:R,setTextSizeFactor:C,editor:y,setEditor:A},children:u})};B.AnnotationsContext=er,B.AnnotationsContextProvider=Wn,B.BLACK=tr,B.RELATIVE_PADDING=Xr,B.TRANSPARENT=Qe,B.createAnnotationsContext=Nn,B.defaultArrowStyle=Gr,B.defaultColors=Fn,B.defaultTextStyle=Jr,B.fontSizes=Ze,B.fonts=Mn,B.interpolate=$n,B.mean=Kr,B.normalize=zn,B.useAnnotationsContext=Hn,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})});
53
+ `),x(this,"textArea"),x(this,"handleSize"),x(this,"rect",{x:0,y:0,width:0,height:0}),x(this,"annotation",{...Ge}),x(this,"startX",0),x(this,"startY",0),x(this,"handles",[]),x(this,"draggedHandle",V),x(this,"isFocused",!1),x(this,"placeholder","Type your text here..."),x(this,"_onFocus",()=>{this.textArea.value===this.placeholder&&(this.textArea.value=""),this.isFocused=!0}),x(this,"_onBlur",()=>{this.isFocused=!1}),x(this,"startDrawing",(l,h,d=An(l,h,0,0,"",Mt))=>{this.add(d);const g=this.ogma.view.graphToScreenCoordinates({x:l,y:h});this.select(d.id),this.startDragging(this.getById(d.id),g.x,g.y),this.draggedHandle=6}),x(this,"cancelDrawing",()=>{this.isDragging&&(this.remove(this.annotation.id),this.annotation={...Ge},this.draggedHandle=V,this.isDragging=!1,this.emit(Ft,this.annotation))}),x(this,"startDragging",(l,h,d)=>{this.annotation=l;const g=gt(this.annotation),f=ft(this.annotation);this.rect.x=g.x,this.rect.y=g.y,this.rect.width=f.width,this.rect.height=f.height,this.startX=h,this.startY=d,this.disableDragging(),this.textArea.classList.add("noevents"),this.textArea.setAttribute("disabled","disabled"),this.emit(ke,this.annotation),this.isDragging=!0}),x(this,"onHandleMouseDown",l=>{const h=this.getById(this.selectedId)||this.getById(this.hoveredId);if(!h)return;this.selectedId!==h.id&&this.select(this.hoveredId);const{x:d,y:g}=xe(l,this.ogma.getContainer());this.startDragging(h,d,g),this.draggedHandle=kr(l.target)}),x(this,"onMouseMove",l=>{requestAnimationFrame(()=>this._onMouseMove(l))}),x(this,"_onMouseMove",l=>{if(!this.isDragging)return;l.stopPropagation(),l.preventDefault();const h=this.handles[this.draggedHandle];let d=h.classList.contains("top");const g=h.classList.contains("left"),f=h.classList.contains("right"),v=h.classList.contains("bottom");let y=h.classList.contains("line-handle");!y&&!d&&!v&&!g&&!f&&(d=!0,y=!0);const{x:A,y:k}=xe(l,this.ogma.getContainer());let S=this.rect.x,R=this.rect.y,C=Math.max(this.rect.width,qr),L=Math.max(this.rect.height,qr);const I=this.ogma.view.getZoom(),_=(A-this.startX)/I,z=(k-this.startY)/I,W=this.ogma.view.getAngle(),rt=st({x:_,y:z},W),it=st({x:_,y:z},-W);y?(S=this.rect.x+rt.x,R=this.rect.y+rt.y):g&&d?(S+=rt.x,R+=rt.y,C-=_,L-=z):f&&v?(C+=_,L+=z):g&&v?(S+=it.x,C-=it.x,L+=it.y):f&&d&&(R+=it.y,C+=it.x,L-=it.y),un(this.annotation,S,R,C,L),this.emit(Ae,this.annotation,"text"),this.refreshEditor(),this.layer.refresh()}),x(this,"onMouseUp",()=>{!this.isDragging||this.draggedHandle===V||(this.restoreDragging(),this.textArea.classList.remove("noevents"),this.textArea.removeAttribute("disabled"),this.emit(Ft,this.annotation),this.isDragging=!1,this.draggedHandle=V)}),x(this,"_onMousedown",l=>{l.stopPropagation()}),x(this,"onViewChanged",()=>{const l=Math.max(2,this.handleSize/this.ogma.view.getZoom());document.documentElement.style.setProperty("--handle-scale",`${1/l}`),this.ogma.view.getAngle()===0?this.editor.element.classList.remove("rotated"):this.editor.element.classList.add("rotated")}),x(this,"_onInput",()=>{const l=this.getById(this.selectedId);l&&(this.textArea.value=this.textArea.value.replace(/ +(?= )/g,""),this.textArea.focus(),l.properties.content=this.textArea.value,this.emit(Ve,l),this.layer.refresh())}),this.showeditorOnHover=!1,this.handleSize=Hr.handleSize,this.placeholder=Hr.placeholder;const n=this.textArea=this.editor.element.querySelector("textarea");n.addEventListener("input",this._onInput),n.addEventListener("focus",this._onFocus),n.addEventListener("blur",this._onBlur),n.addEventListener("mousedown",this._onMousedown),n.spellcheck=!1,this.handles=Array.prototype.slice.call(this.editor.element.querySelectorAll(".annotation-text-handle > .handle")),this.handles.push(this.editor.element),this.handles.forEach(l=>l.addEventListener("mousedown",this.onHandleMouseDown)),document.addEventListener("mouseup",this.onMouseUp),document.addEventListener("mousemove",this.onMouseMove,!0),e.events.on(["viewChanged","zoom"],this.onViewChanged)}_canRemove(){return!this.isFocused}detect({x:e,y:o},n=0){const l={x:e,y:o},h=this.ogma.view.getAngle();return this.elements.find(d=>{const{x:g,y:f}=gt(d),{width:v,height:y}=ft(d),A={x:g,y:f},{x:k,y:S}=st(Ct(l,A),-h);return k>-n&&k<v+n&&S>-n&&S<y+n})}draw(e){e.innerHTML="";const o="",n=this.ogma.view.getAngle();for(let h=0;h<this.elements.length;h++){const d=this.elements[h],g=`class${h}`,f=ft(d),v=gt(d);if(d.id===this.selectedId)continue;const{color:y,fontSize:A,font:k,strokeColor:S,strokeWidth:R,strokeType:C,background:L,borderRadius:I}=d.properties.style||Mt,_=St("g");_.classList.add("annotation-text"),_.setAttribute("fill",`${y}`),_.setAttribute("font-size",`${A}px`),_.setAttribute("font-family",`${k}`);const z=St("rect");I&&(z.setAttribute("rx",`${I}`),z.setAttribute("ry",`${I}`));let W=!1;C&&C!=="none"&&(W=!0,z.setAttribute("stroke",S||"black"),z.setAttribute("stroke-width",`${R}`),C==="dashed"&&z.setAttribute("stroke-dasharray","5,5")),(L&&L.length||W)&&(W=!0,z.setAttribute("fill",L||"transparent")),W&&(z.setAttribute("width",`${f.width}`),z.setAttribute("height",`${f.height}`)),_.appendChild(z),Cn(d,_);const{x:rt,y:it}=st(v,-n);_.setAttribute("transform",`translate(${rt},${it})`),_.classList.add(g),_.setAttribute("data-annotation",`${d.id}`),_.setAttribute("data-annotation-type","text"),e.appendChild(_)}const l=St("style");l.innerHTML=o,e.firstChild&&e.insertBefore(l,e.firstChild)}refreshDrawing(){const e=this.ogma.view.getAngle(),o=this.layer.element.children;for(let n=0;n<o.length;n++){const l=o[n];if(!l.hasAttribute("data-annotation"))continue;const h=l.getAttribute("data-annotation"),d=gt(this.getById(h)),{x:g,y:f}=st(d,-e);l.setAttribute("transform",`translate(${g},${f})`)}}getDefaultOptions(){return Ge}refreshEditor(){if(+this.selectedId<0&&+this.hoveredId<0)return;const e=this.getById(this.selectedId)||this.getById(this.hoveredId),o=ft(e),n=this.ogma.view.graphToScreenCoordinates(gt(e)),l=this.ogma.view.getZoom(),{font:h,fontSize:d,color:g,background:f,padding:v=0}=e.properties.style||Mt,y=(d||1)*l;this.textArea.value=e.properties.content;const A=this.editor.element.style;A.transform=`translate(${n.x}px, ${n.y}px)translate(-50%, -50%)translate(${o.width/2*l}px, ${o.height/2*l}px)`,A.width=`${o.width*l}px`,A.height=`${o.height*l}px`;const k=this.textArea.style;k.font=`${y} ${h}`,k.fontFamily=h||"sans-serif",k.fontSize=`${y}px`,k.padding=`${l*v}px`,k.lineHeight=`${y}px`,k.boxSizing="border-box",k.color=g||"black",k.background=f||"transparent",this.textArea.placeholder=this.placeholder,this.layer.refresh()}select(e){super.select(e),this.textArea.classList.add("noevents")}destroy(){super.destroy(),document.removeEventListener("mouseup",this.onMouseUp),document.removeEventListener("mousemove",this.onMouseMove,!0),this.ogma.events.off(this.onViewChanged)}}class Rn{constructor(){x(this,"links",{}),x(this,"linksByTargetId",{}),x(this,"linksByArrowId",{})}add(e,o,n,l,h){const d=ye(),g=e.id,f={id:d,arrow:g,target:n,targetType:l,connectionPoint:h,side:o};return this.links[d]=f,this.linksByTargetId[n]||(this.linksByTargetId[n]=[]),this.linksByTargetId[n].push(d),this.linksByArrowId[g]||(this.linksByArrowId[g]={}),this.linksByArrowId[g][o]=d,e.properties.link=e.properties.link||{},e.properties.link[o]={id:n,side:o,type:l,magnet:h},this}arrowIsLinked(e,o){var n;return!!((n=this.linksByArrowId[e])!=null&&n[o])}remove(e,o){var n,l;const h=e.id,d=(n=this.linksByArrowId[h])==null?void 0:n[o];if((l=e.properties.link)==null||delete l[o],!d)return this;const g=this.links[d];delete this.links[d];const f=this.linksByTargetId[g.target];for(let v=0;v<f.length;v++)if(f[v]===d){f.splice(v,1);break}return delete this.linksByArrowId[h][o],this}getArrowLink(e,o){var n;const l=(n=this.linksByArrowId[e])==null?void 0:n[o];return l?this.links[l]:null}getTargetLinks(e,o){var n;return((n=this.linksByTargetId[e])==null?void 0:n.map(l=>this.links[l]).filter(l=>l.targetType===o))??[]}forEach(e){Object.values(this.links).forEach(e)}}const ut=u=>u.properties.type==="arrow",pt=u=>u.properties.type==="text",Ur=u=>u.type==="FeatureCollection",On={magnetColor:"#3e8",detectMargin:20,magnetHandleRadius:5,magnetRadius:10,textPlaceholder:"Type here",arrowHandleSize:3.5,textHandleSize:3.5,minArrowHeight:20,maxArrowHeight:30},Yr=["start","end"],Vr=[{x:0,y:0},{x:.5,y:0},{x:1,y:0},{x:0,y:.5},{x:1,y:.5},{x:0,y:1},{x:.5,y:1},{x:1,y:1}];class Dn extends Fr{constructor(e,o={}){super(),x(this,"arrows"),x(this,"texts"),x(this,"links",new Rn),x(this,"layer"),x(this,"annotations"),x(this,"ogma"),x(this,"options"),x(this,"selected",null),x(this,"updateTimeout",0),x(this,"hoveredNode",null),x(this,"dragged",null),x(this,"textToMagnet"),x(this,"activeLinks",[]),x(this,"_render",n=>{if(!this.dragged||this.textToMagnet===void 0)return;n.beginPath(),n.fillStyle="green";const l=this.ogma.view.getZoom();Vr.forEach(h=>{if(!this.textToMagnet)return;const d=ft(this.textToMagnet),g=gt(this.textToMagnet),f=Ee(h,{x:d.width,y:d.height}),v=st(f,this.ogma.view.getAngle()),{x:y,y:A}=It(v,g);n.moveTo(y,A),n.arc(y,A,this.options.magnetHandleRadius/l,0,Math.PI*2)}),n.fill(),n.closePath()}),x(this,"_onFeatureDrag",(n,l)=>{const h=l;if(ut(n)&&h==="line")["start","end"].find(d=>{const g=d==="start"?Jt(n):me(n);return this._snapToText(n,h,g)||this._findAndSnapToNode(n,d,g)});else if(ut(n)&&h!=="line"){const d=h==="start"?Jt(n):me(n);this._snapToText(n,h,d)||this._findAndSnapToNode(n,h,d)}else pt(n)&&(this.activeLinks.forEach(({arrow:d,side:g,connectionPoint:f})=>{const v=this.getAnnotation(d),y=ft(n),A=gt(n),k=Ee(f,{x:y.width,y:y.height}),S=st(k,this.ogma.view.getAngle()),R=It(S,A);v.geometry.coordinates[g==="start"?0:1]=[R.x,R.y]}),this.activeLinks.length&&this.arrows.refreshLayer());this.layer.refresh(),this.emit(Ae,n,l)}),x(this,"_onFeatureDragEnd",n=>{this.dragged!==null&&ut(n)&&Jt(this.dragged)&&Yr.forEach(l=>{this.links.getArrowLink(n.id,l)&&this.emit(wn,{arrow:n,link:this.links.getArrowLink(n.id,l)})}),(pt(n)||ut(n))&&this.onUpdate(n),this.dragged=null,this.activeLinks=[],this.textToMagnet=void 0,this.annotations.forEach(l=>l.enableDetection()),this.layer.refresh(),this.emit(Ft,n)}),x(this,"_onFeatureDragStart",n=>{this.textToMagnet=void 0,ut(n)?this.dragged=n:pt(n)&&this.activeLinks.push(...this.links.getTargetLinks(n.id,"text")),this.annotations.forEach(l=>{const h=l.getSelectedFeature();h&&h!==n&&l.unhover().unselect(),l.disableDetection()}),this.emit(ke,n)}),x(this,"_onNodesDragStart",()=>{this.arrows.unhover().unselect(),this.texts.unhover().unselect()}),x(this,"_onNodesDrag",n=>{const{dx:l,dy:h}=n;this._moveNodes(n.nodes,l,h)}),x(this,"_onLayoutEnd",n=>{n.ids.forEach((l,h)=>{this.links.getTargetLinks(l,"node").forEach(d=>{const g=this.getAnnotation(d.arrow),f=d.side,v=ve(g,f==="start"?"end":"start"),y=n.positions.current[h],A=this.ogma.getNode(l).getAttribute("radius"),k=be(v,y,+A);Lt(g,f,k.x,k.y)})}),this.arrows.refreshLayer(),this.texts.refreshLayer()}),x(this,"_onAdded",n=>{this.emit(Ye,n)}),x(this,"_onRemoved",n=>{this.emit(Ue,n)}),x(this,"_onUnselect",n=>{this.selected=null,this.emit(qe,n)}),x(this,"_onSelect",n=>{this.selected!==n&&(this.selected=n,this.emit(We,this.selected))}),x(this,"onUpdate",n=>{cancelAnimationFrame(this.updateTimeout),this.updateTimeout=requestAnimationFrame(()=>this._onUpdate(n))}),x(this,"_onUpdate",n=>{this.emit(Ve,n)}),this.options=this.setOptions({...On,...o}),this.ogma=e,this.arrows=new En(e,this.options),this.texts=new Tn(e,this.options),this.annotations=[this.arrows,this.texts],this.annotations.forEach(n=>{n.on(ke,this._onFeatureDragStart).on(Ae,this._onFeatureDrag).on(Ft,this._onFeatureDragEnd).on(Ve,this.onUpdate).on(qe,this._onUnselect).on(We,this._onSelect).on(Ye,this._onAdded).on(Ue,this._onRemoved)}),this.ogma.events.on("nodesDragStart",this._onNodesDragStart).on("nodesDragProgress",this._onNodesDrag).on("layoutEnd",this._onLayoutEnd).on(["viewChanged","rotate"],()=>{this.refreshTextLinks()}),this.layer=e.layers.addCanvasLayer(this._render),this.layer.moveToBottom()}_moveNodes(e,o,n){e.forEach(l=>{const h=this.links.getTargetLinks(l.getId(),"node"),d=l.getPosition();h.forEach(g=>{const f=this.getAnnotation(g.arrow),v=g.side,y=ve(f,v==="start"?"end":"start");let A=d;const k=+l.getAttribute("radius"),S=1e-6;(g.connectionPoint.x-(d.x-o)>S||g.connectionPoint.y-(d.y-n)>S)&&(A=be(y,d,k)),Lt(f,v,A.x,A.y)})}),this.arrows.refreshLayer()}_snapToText(e,o,n){const l=this.texts.detect(n,this.options.detectMargin);if(this.links.remove(e,o),!l)return!1;this.textToMagnet=l;const h=this.findMagnetPoint(Vr,l,n);return h?(Lt(e,o,h.point.x,h.point.y),this.links.add(e,o,l.id,"text",h.magnet),!0):!1}_findAndSnapToNode(e,o,n){var l,h;const d=this.ogma.view.graphToScreenCoordinates(n),g=this.ogma.view.getElementAt(d);this.links.remove(e,o),g&&g.isNode?((l=this.hoveredNode)==null||l.setSelected(!1),this.hoveredNode=g,g.setSelected(!0),this._snapToNode(e,o,g,d)):((h=this.hoveredNode)==null||h.setSelected(!1),this.hoveredNode=null)}_snapToNode(e,o,n,l){const h=n.getPositionOnScreen(),d=+n.getAttribute("radius"),g=d*this.ogma.view.getZoom(),f=l.x-h.x,v=l.y-h.y,y=Math.sqrt(f*f+v*v),A=n.getPosition();if(y<g+this.options.detectMargin){let k=A;if(y>g/2){const S=ve(e,o==="end"?"start":"end");k=be(S,k,d)}Lt(e,o,k.x,k.y),this.links.add(e,o,n.getId(),"node",k)}}refreshTextLinks(){let e=!1;this.links.forEach(({connectionPoint:o,targetType:n,target:l,arrow:h,side:d})=>{if(n!=="text")return;e=!0;const g=this.getAnnotation(l),f=this.getAnnotation(h),v=ft(g),y=gt(g),A=Ee(o,{x:v.width,y:v.height}),k=st(A,this.ogma.view.getAngle()),S=It(k,y);Lt(f,d,S.x,S.y)}),e&&this.arrows.refreshLayer()}getSelected(){return this.selected}findMagnetPoint(e,o,n){let l;for(const h of e){const d=ft(o),g=gt(o),f=Ee(h,{x:d.width,y:d.height}),v=st(f,this.ogma.view.getAngle()),y=It(v,g),A=jt(Ct(y,n)),k=Math.min(this.options.magnetRadius*this.ogma.view.getZoom(),d.width/2,d.height/2);if(A<Math.max(k,this.options.magnetHandleRadius)){l={point:y,magnet:h};break}}return l}setOptions(e={}){return this.options={...this.options||{},...e},this.options}select(e){const o=this.getAnnotations().features.find(n=>n.id===e);return o?(ut(o)?this.arrows.select(o.id):pt(o)&&this.texts.select(o.id),this):this}unselect(){return this.selected?(ut(this.selected)?this.arrows.unselect():pt(this.selected)&&this.texts.unselect(),this):this}add(e){if(Ur(e)){const[o,n]=e.features.reduce((l,h)=>(ut(h)?l[1].push(h):pt(h)&&l[0].push(h),l),[[],[]]);return o.forEach(l=>this.add(l)),n.forEach(l=>this.add(l)),this.arrows.refreshLayer(),this}switch(e.properties.type){case"text":this.texts.add(e);break;default:this.arrows.add(e),this.loadLink(e);break}return this}remove(e){return Ur(e)?(e.features.forEach(o=>this.remove(o)),this):(ut(e)?(this.links.remove(e,"start"),this.links.remove(e,"end"),this.arrows.remove(e.id)):this.texts.remove(e.id),this)}loadLink(e){if(e.properties.link)for(const o of Yr){const n=e.properties.link[o];if(!n)continue;const l=this.getAnnotation(n.id);if(n.type==="text"&&l)this.links.add(e,o,n.id,n.type,n.magnet);else if(n.type==="node"){const h=this.ogma.getNode(n.id);if(!h)continue;this.links.add(e,o,n.id,n.type,n.magnet);const d=h.getPosition(),g=h.getAttribute("radius")||0,f=ve(e,o==="start"?"end":"start"),v=be(f,d,+g);Lt(e,o,v.x,v.y)}}}startArrow(e,o,n){this.cancelDrawing(),this.arrows.startDrawing(e,o,n)}startText(e,o,n){this.cancelDrawing(),this.texts.startDrawing(e,o,n)}cancelDrawing(){this.annotations.forEach(e=>e.cancelDrawing()),this.emit(mn)}updateStyle(e,o){const n=this.getAnnotations().features.find(l=>l.id===e);return n?(ut(n)?this.arrows.updateStyle(n,o):pt(n)&&this.texts.updateStyle(n,o),this.onUpdate(n),this):this}setScale(e,o,n,l){const h=this.getAnnotations().features.find(d=>d.id===e);return h?(ut(h)?this.arrows.scale(h,o,n,l):pt(h)&&this.texts.scale(h,o,n,l),this.onUpdate(h),this):this}getAnnotations(){const e={type:"FeatureCollection",features:[]};return this.annotations.forEach(o=>{e.features=[...e.features,...o.getElements()]}),e}getAnnotation(e){return this.getAnnotations().features.find(o=>o.id===e)}destroy(){this.annotations.forEach(e=>e.destroy()),this.layer.destroy()}}const Ze=[8,10,12,14,16,24,32,48,64,72],Qe="none",tr="#333333",Pn=["#FFFFFF","#F44E3B","#FE9200","#FCDC00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#1E88E5","#333333","#808080","#cccccc"],Ln=["Roboto","Helvetica Neue","Helvetica","Arial","sans-serif","Georgia, serif","Menlo","Monaco","Consolas","Courier New","monospace"].sort((u,e)=>u.toLocaleLowerCase().localeCompare(e.toLocaleLowerCase())),Gr={head:"arrow",strokeColor:tr,strokeWidth:5},Xr=.25,Jr={font:"Roboto",fontSize:Ze[2],padding:Ze[2]*Xr,color:tr,strokeType:Qe,background:Qe};function Kr(u){return u.reduce((e,o)=>e+o,0)/u.length}function jn(u,e=0,o=1){return e+(o-e)*u}function In(u,e=0,o=1){return(u-e)/(o-e)}function Fn(){return X.createContext(null)}const er=X.createContext(void 0),Mn=()=>X.useContext(er),$n=(u,e)=>{switch(e.type){case"add":return{...u,features:[...u.features,e.payload]};case"remove":return{...u,features:u.features.filter(o=>o.id!==e.payload.id)};case"update":return{...u,features:u.features.map(o=>o.id===e.payload.id?e.payload:o)};default:return u}},zn=({children:u})=>{const e=Zr.useOgma(),[o,n]=X.useReducer($n,{type:"FeatureCollection",features:[]}),[l,h]=X.useState(null),[d,g]=X.useState(Gr),[f,v]=X.useState(Jr),[y,A]=X.useState(),[k,S]=X.useState(1),[R,C]=X.useState(1);return X.useEffect(()=>{if(!e)return;const L=new Dn(e,{minArrowHeight:1}),I=Kr(e.getNodes().getAttribute("radius"))/5,_=k;return g({...d,strokeWidth:(d.strokeWidth||1)*_}),S(_),C(I),L.on("select",z=>{ut(z)?g({...z.properties.style||{}}):pt(z)&&v({...z.properties.style||{}}),h(z)}).on("unselect",()=>{h(null)}),A(L),()=>{L.destroy()}},[e]),X.useEffect(()=>{y&&l&&(l==null?void 0:l.properties.type)==="arrow"&&y.updateStyle(l.id,d)},[y,d,l]),X.useEffect(()=>{y&&l&&(l==null?void 0:l.properties.type)==="text"&&y.updateStyle(l.id,f)},[y,f,l]),rn.jsx(er.Provider,{value:{annotations:o,updateAnnotations:n,currentAnnotation:l,setCurrentAnnotation:h,textStyle:f,setTextStyle:v,arrowStyle:d,setArrowStyle:g,arrowWidthFactor:k,setArrowWidthFactor:S,textSizeFactor:R,setTextSizeFactor:C,editor:y,setEditor:A},children:u})};B.AnnotationsContext=er,B.AnnotationsContextProvider=zn,B.BLACK=tr,B.RELATIVE_PADDING=Xr,B.TRANSPARENT=Qe,B.createAnnotationsContext=Fn,B.defaultArrowStyle=Gr,B.defaultColors=Pn,B.defaultTextStyle=Jr,B.fontSizes=Ze,B.fonts=Ln,B.interpolate=jn,B.mean=Kr,B.normalize=In,B.useAnnotationsContext=Mn,Object.defineProperty(B,Symbol.toStringTag,{value:"Module"})});