graphwise-reactodia 0.0.1-TR13 → 0.0.1-TR15
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/cjs/graphwise-reactodia.cjs.entry.js +72 -42
- package/dist/collection/components/graphwise-reactodia/graphwise-reactodia.css +44 -1
- package/dist/collection/components/graphwise-reactodia/graphwise-reactodia.js +21 -7
- package/dist/collection/components/graphwise-reactodia/reactodia-app.js +24 -10
- package/dist/collection/components/graphwise-reactodia/services/diagram/diagram.service.js +4 -1
- package/dist/collection/components/graphwise-reactodia/styles/type-style.resolver.js +25 -26
- package/dist/collection/pages/graphwise-reactodia/main.js +38 -0
- package/dist/esm/graphwise-reactodia.entry.js +72 -42
- package/dist/graphwise-reactodia/graphwise-reactodia.esm.js +1 -1
- package/dist/graphwise-reactodia/p-a2c710e4.entry.js +1 -0
- package/dist/types/components/graphwise-reactodia/graphwise-reactodia.d.ts +11 -5
- package/dist/types/components/graphwise-reactodia/models/reactodia-app-props.d.ts +4 -0
- package/dist/types/components.d.ts +4 -4
- package/package.json +1 -1
- package/dist/graphwise-reactodia/p-420b9dce.entry.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,h as t,H as n,g as r}from"./p-Cypw7ydc.js";import{CLEAR_DIAGRAM_STORAGE_EVENT as i}from"./index.esm.js";var o,a,s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},l={exports:{}},c={};function d(){if(o)return c;o=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),s=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.iterator,p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,v={};function m(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}function b(){}function w(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||p}m.prototype.isReactComponent={},m.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},m.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=m.prototype;var y=w.prototype=new b;y.constructor=w,g(y,m.prototype),y.isPureReactComponent=!0;var _=Array.isArray,k=Object.prototype.hasOwnProperty,x={current:null},S={key:!0,ref:!0,__self:!0,__source:!0};function C(t,n,r){var i,o={},a=null,s=null;if(null!=n)for(i in void 0!==n.ref&&(s=n.ref),void 0!==n.key&&(a=""+n.key),n)k.call(n,i)&&!S.hasOwnProperty(i)&&(o[i]=n[i]);var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];o.children=c}if(t&&t.defaultProps)for(i in l=t.defaultProps)void 0===o[i]&&(o[i]=l[i]);return{$$typeof:e,type:t,key:a,ref:s,props:o,_owner:x.current}}function L(t){return"object"==typeof t&&null!==t&&t.$$typeof===e}var M=/\/+/g;function E(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function z(n,r,i,o,a){var s=typeof n;"undefined"!==s&&"boolean"!==s||(n=null);var l=!1;if(null===n)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(n.$$typeof){case e:case t:l=!0}}if(l)return a=a(l=n),n=""===o?"."+E(l,0):o,_(a)?(i="",null!=n&&(i=n.replace(M,"$&/")+"/"),z(a,r,i,"",(function(e){return e}))):null!=a&&(L(a)&&(a=function(t,n){return{$$typeof:e,type:t.type,key:n,ref:t.ref,props:t.props,_owner:t._owner}}(a,i+(!a.key||l&&l.key===a.key?"":(""+a.key).replace(M,"$&/")+"/")+n)),r.push(a)),1;if(l=0,o=""===o?".":o+":",_(n))for(var c=0;c<n.length;c++){var d=o+E(s=n[c],c);l+=z(s,r,i,d,a)}else if(d=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(n),"function"==typeof d)for(n=d.call(n),c=0;!(s=n.next()).done;)l+=z(s=s.value,r,i,d=o+E(s,c++),a);else if("object"===s)throw r=String(n),Error("Objects are not valid as a React child (found: "+("[object Object]"===r?"object with keys {"+Object.keys(n).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.");return l}function $(e,t,n){if(null==e)return e;var r=[],i=0;return z(e,r,"","",(function(e){return t.call(n,e,i++)})),r}function T(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N={current:null},A={transition:null},I={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:A,ReactCurrentOwner:x};function P(){throw Error("act(...) is not supported in production builds of React.")}return c.Children={map:$,forEach:function(e,t,n){$(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return $(e,(function(){t++})),t},toArray:function(e){return $(e,(function(e){return e}))||[]},only:function(e){if(!L(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},c.Component=m,c.Fragment=n,c.Profiler=i,c.PureComponent=w,c.StrictMode=r,c.Suspense=d,c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,c.act=P,c.cloneElement=function(t,n,r){if(null==t)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var i=g({},t.props),o=t.key,a=t.ref,s=t._owner;if(null!=n){if(void 0!==n.ref&&(a=n.ref,s=x.current),void 0!==n.key&&(o=""+n.key),t.type&&t.type.defaultProps)var l=t.type.defaultProps;for(c in n)k.call(n,c)&&!S.hasOwnProperty(c)&&(i[c]=void 0===n[c]&&void 0!==l?l[c]:n[c])}var c=arguments.length-2;if(1===c)i.children=r;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];i.children=l}return{$$typeof:e,type:t.type,key:o,ref:a,props:i,_owner:s}},c.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:a,_context:e},e.Consumer=e},c.createElement=C,c.createFactory=function(e){var t=C.bind(null,e);return t.type=e,t},c.createRef=function(){return{current:null}},c.forwardRef=function(e){return{$$typeof:l,render:e}},c.isValidElement=L,c.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:T}},c.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},c.startTransition=function(e){var t=A.transition;A.transition={};try{e()}finally{A.transition=t}},c.unstable_act=P,c.useCallback=function(e,t){return N.current.useCallback(e,t)},c.useContext=function(e){return N.current.useContext(e)},c.useDebugValue=function(){},c.useDeferredValue=function(e){return N.current.useDeferredValue(e)},c.useEffect=function(e,t){return N.current.useEffect(e,t)},c.useId=function(){return N.current.useId()},c.useImperativeHandle=function(e,t,n){return N.current.useImperativeHandle(e,t,n)},c.useInsertionEffect=function(e,t){return N.current.useInsertionEffect(e,t)},c.useLayoutEffect=function(e,t){return N.current.useLayoutEffect(e,t)},c.useMemo=function(e,t){return N.current.useMemo(e,t)},c.useReducer=function(e,t,n){return N.current.useReducer(e,t,n)},c.useRef=function(e){return N.current.useRef(e)},c.useState=function(e){return N.current.useState(e)},c.useSyncExternalStore=function(e,t,n){return N.current.useSyncExternalStore(e,t,n)},c.useTransition=function(){return N.current.useTransition()},c.version="18.3.1",c}function u(){return a||(a=1,l.exports=d()),l.exports}var h,f,p,g,v,m=u(),b={},w={exports:{}},y={},_={exports:{}},k={};function x(){if(p)return y;p=1;var e=u(),t=(f||(f=1,_.exports=(h||(h=1,function(e){function t(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<i(o,t)))break e;e[r]=t,e[n]=o,n=r}}function n(e){return 0===e.length?null:e[0]}function r(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,a=o>>>1;r<a;){var s=2*(r+1)-1,l=e[s],c=s+1,d=e[c];if(0>i(l,n))c<o&&0>i(d,l)?(e[r]=d,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<o&&0>i(d,n)))break e;e[r]=d,e[c]=n,r=c}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var l=[],c=[],d=1,u=null,h=3,f=!1,p=!1,g=!1,v="function"==typeof setTimeout?setTimeout:null,m="function"==typeof clearTimeout?clearTimeout:null,b="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var i=n(c);null!==i;){if(null===i.callback)r(c);else{if(!(i.startTime<=e))break;r(c),i.sortIndex=i.expirationTime,t(l,i)}i=n(c)}}function y(e){if(g=!1,w(e),!p)if(null!==n(l))p=!0,N(_);else{var t=n(c);null!==t&&A(y,t.startTime-e)}}function _(t,i){p=!1,g&&(g=!1,m(C),C=-1),f=!0;var o=h;try{for(w(i),u=n(l);null!==u&&(!(u.expirationTime>i)||t&&!E());){var a=u.callback;if("function"==typeof a){u.callback=null,h=u.priorityLevel;var s=a(u.expirationTime<=i);i=e.unstable_now(),"function"==typeof s?u.callback=s:u===n(l)&&r(l),w(i)}else r(l);u=n(l)}if(null!==u)var d=!0;else{var v=n(c);null!==v&&A(y,v.startTime-i),d=!1}return d}finally{u=null,h=o,f=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var k,x=!1,S=null,C=-1,L=5,M=-1;function E(){return!(e.unstable_now()-M<L)}function z(){if(null!==S){var t=e.unstable_now();M=t;var n=!0;try{n=S(!0,t)}finally{n?k():(x=!1,S=null)}}else x=!1}if("function"==typeof b)k=function(){b(z)};else if("undefined"!=typeof MessageChannel){var $=new MessageChannel,T=$.port2;$.port1.onmessage=z,k=function(){T.postMessage(null)}}else k=function(){v(z,0)};function N(e){S=e,x||(x=!0,k())}function A(t,n){C=v((function(){t(e.unstable_now())}),n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){p||f||(p=!0,N(_))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):L=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(l)},e.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h}var n=h;h=t;try{return e()}finally{h=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=h;h=e;try{return t()}finally{h=n}},e.unstable_scheduleCallback=function(r,i,o){var a=e.unstable_now();switch(o="object"==typeof o&&null!==o&&"number"==typeof(o=o.delay)&&0<o?a+o:a,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return r={id:d++,callback:i,priorityLevel:r,startTime:o,expirationTime:s=o+s,sortIndex:-1},o>a?(r.sortIndex=o,t(c,r),null===n(l)&&r===n(c)&&(g?(m(C),C=-1):g=!0,A(y,o-a))):(r.sortIndex=s,t(l,r),p||f||(p=!0,N(_))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n}}}}(k)),k)),_.exports);function n(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var r=new Set,i={};function o(e,t){a(e,t),a(e+"Capture",t)}function a(e,t){for(i[e]=t,e=0;e<t.length;e++)r.add(t[e])}var s=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),l=Object.prototype.hasOwnProperty,c=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,d={},g={};function v(e,t,n,r,i,o,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var m={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){m[e]=new v(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];m[t]=new v(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){m[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){m[e]=new v(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){m[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){m[e]=new v(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){m[e]=new v(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){m[e]=new v(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){m[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function w(e){return e[1].toUpperCase()}function x(e,t,n,r){var i=m.hasOwnProperty(t)?m[t]:null;(null!==i?0!==i.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,i,r)&&(n=null),r||null===i?function(e){return!!l.call(g,e)||!l.call(d,e)&&(c.test(e)?g[e]=!0:(d[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=null===n?3!==i.type&&"":n:(t=i.attributeName,r=i.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(i=i.type)||4===i&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,w);m[t]=new v(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,w);m[t]=new v(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,w);m[t]=new v(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)})),m.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){m[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)}));var S=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,C=Symbol.for("react.element"),L=Symbol.for("react.portal"),M=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),z=Symbol.for("react.profiler"),$=Symbol.for("react.provider"),T=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),I=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),H=Symbol.for("react.offscreen"),R=Symbol.iterator;function O(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=R&&e[R]||e["@@iterator"])?e:null}var D,B=Object.assign;function j(e){if(void 0===D)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var F=!1;function U(e,t){if(!e||F)return"";F=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&"string"==typeof t.stack){for(var i=t.stack.split("\n"),o=r.stack.split("\n"),a=i.length-1,s=o.length-1;1<=a&&0<=s&&i[a]!==o[s];)s--;for(;1<=a&&0<=s;a--,s--)if(i[a]!==o[s]){if(1!==a||1!==s)do{if(a--,0>--s||i[a]!==o[s]){var l="\n"+i[a].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=a&&0<=s);break}}}finally{F=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?j(e):""}function q(e){switch(e.tag){case 5:return j(e.type);case 16:return j("Lazy");case 13:return j("Suspense");case 19:return j("SuspenseList");case 0:case 2:case 15:return U(e.type,!1);case 11:return U(e.type.render,!1);case 1:return U(e.type,!0);default:return""}}function W(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case M:return"Fragment";case L:return"Portal";case z:return"Profiler";case E:return"StrictMode";case A:return"Suspense";case I:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case $:return(e._context.displayName||"Context")+".Provider";case N:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:W(e.type)||"Memo";case V:t=e._payload,e=e._init;try{return W(e(t))}catch(e){}}return null}function G(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return W(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function K(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function X(e){e._valueTracker||(e._valueTracker=function(e){var t=K(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=K(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function Y(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return B({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&x(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ie(e,t.type,n):t.hasOwnProperty("defaultValue")&&ie(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(("submit"===r||"reset"===r)&&null==t.value)return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ie(e,t,n){"number"===t&&Y(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var oe=Array.isArray;function ae(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t["$"+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty("$"+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Z(n),t=null,i=0;i<e.length;i++){if(e[i].value===n)return e[i].selected=!0,void(r&&(e[i].defaultSelected=!0));null!==t||e[i].disabled||(t=e[i])}null!==t&&(t.selected=!0)}}function se(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(n(91));return B({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function le(e,t){var r=t.value;if(null==r){if(r=t.children,t=t.defaultValue,null!=r){if(null!=t)throw Error(n(92));if(oe(r)){if(1<r.length)throw Error(n(93));r=r[0]}t=r}null==t&&(t=""),r=t}e._wrapperState={initialValue:Z(r)}}function ce(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function de(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function ue(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function he(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?ue(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var fe,pe,ge=(pe=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((fe=fe||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=fe.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t){MSApp.execUnsafeLocalFunction((function(){return pe(e,t)}))}:pe);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var me={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},be=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||me.hasOwnProperty(e)&&me[e]?(""+t).trim():t+"px"}function ye(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),i=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}Object.keys(me).forEach((function(e){be.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),me[t]=me[e]}))}));var _e=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ke(e,t){if(t){if(_e[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(n(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(n(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(n(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(n(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Se=null;function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Le=null,Me=null,Ee=null;function ze(e){if(e=xi(e)){if("function"!=typeof Le)throw Error(n(280));var t=e.stateNode;t&&(t=Ci(t),Le(e.stateNode,e.type,t))}}function $e(e){Me?Ee?Ee.push(e):Ee=[e]:Me=e}function Te(){if(Me){var e=Me,t=Ee;if(Ee=Me=null,ze(e),t)for(e=0;e<t.length;e++)ze(t[e])}}function Ne(e,t){return e(t)}function Ae(){}var Ie=!1;function Pe(e,t,n){if(Ie)return e(t,n);Ie=!0;try{return Ne(e,t,n)}finally{Ie=!1,(null!==Me||null!==Ee)&&(Ae(),Te())}}function Ve(e,t){var r=e.stateNode;if(null===r)return null;var i=Ci(r);if(null===i)return null;r=i[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(i=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!i;break e;default:e=!1}if(e)return null;if(r&&"function"!=typeof r)throw Error(n(231,t,typeof r));return r}var He=!1;if(s)try{var Re={};Object.defineProperty(Re,"passive",{get:function(){He=!0}}),window.addEventListener("test",Re,Re),window.removeEventListener("test",Re,Re)}catch(pe){He=!1}function Oe(e,t,n,r,i,o,a,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(e){this.onError(e)}}var De=!1,Be=null,je=!1,Fe=null,Ue={onError:function(e){De=!0,Be=e}};function qe(e,t,n,r,i,o,a,s,l){De=!1,Be=null,Oe.apply(Ue,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ge(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Ze(e){if(We(e)!==e)throw Error(n(188))}function Ke(e){return e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(n(188));return t!==e?null:e}for(var r=e,i=t;;){var o=r.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(i=o.return)){r=i;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===r)return Ze(o),e;if(a===i)return Ze(o),t;a=a.sibling}throw Error(n(188))}if(r.return!==i.return)r=o,i=a;else{for(var s=!1,l=o.child;l;){if(l===r){s=!0,r=o,i=a;break}if(l===i){s=!0,i=o,r=a;break}l=l.sibling}if(!s){for(l=a.child;l;){if(l===r){s=!0,r=a,i=o;break}if(l===i){s=!0,i=a,r=o;break}l=l.sibling}if(!s)throw Error(n(189))}}if(r.alternate!==i)throw Error(n(190))}if(3!==r.tag)throw Error(n(188));return r.stateNode.current===r?e:t}(e),null!==e?Xe(e):null}function Xe(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Xe(e);if(null!==t)return t;e=e.sibling}return null}var Qe=t.unstable_scheduleCallback,Ye=t.unstable_cancelCallback,Je=t.unstable_shouldYield,et=t.unstable_requestPaint,tt=t.unstable_now,nt=t.unstable_getCurrentPriorityLevel,rt=t.unstable_ImmediatePriority,it=t.unstable_UserBlockingPriority,ot=t.unstable_NormalPriority,at=t.unstable_LowPriority,st=t.unstable_IdlePriority,lt=null,ct=null,dt=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(ut(e)/ht|0)|0},ut=Math.log,ht=Math.LN2,ft=64,pt=4194304;function gt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function vt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,i=e.suspendedLanes,o=e.pingedLanes,a=268435455&n;if(0!==a){var s=a&~i;0!==s?r=gt(s):0!=(o&=a)&&(r=gt(o))}else 0!=(a=n&~i)?r=gt(a):0!==o&&(r=gt(o));if(0===r)return 0;if(0!==t&&t!==r&&!(t&i)&&((i=r&-r)>=(o=t&-t)||16===i&&4194240&o))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)r|=e[n=31-dt(t)],t&=~(i=1<<n);return r}function mt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function bt(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function wt(){var e=ft;return!(4194240&(ft<<=1))&&(ft=64),e}function yt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function _t(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-dt(t)]=n}function kt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-dt(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}var xt=0;function St(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var Ct,Lt,Mt,Et,zt,$t=!1,Tt=[],Nt=null,At=null,It=null,Pt=new Map,Vt=new Map,Ht=[],Rt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Ot(e,t){switch(e){case"focusin":case"focusout":Nt=null;break;case"dragenter":case"dragleave":At=null;break;case"mouseover":case"mouseout":It=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Vt.delete(t.pointerId)}}function Dt(e,t,n,r,i,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[i]},null!==t&&null!==(t=xi(t))&&Lt(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==i&&-1===t.indexOf(i)&&t.push(i),e)}function Bt(e){var t=ki(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ge(n)))return e.blockedOn=t,void zt(e.priority,(function(){Mt(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function jt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=xi(n))&&Lt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);Se=r,n.target.dispatchEvent(r),Se=null,t.shift()}return!0}function Ft(e,t,n){jt(e)&&n.delete(t)}function Ut(){$t=!1,null!==Nt&&jt(Nt)&&(Nt=null),null!==At&&jt(At)&&(At=null),null!==It&&jt(It)&&(It=null),Pt.forEach(Ft),Vt.forEach(Ft)}function qt(e,n){e.blockedOn===n&&(e.blockedOn=null,$t||($t=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Ut)))}function Wt(e){function t(t){return qt(t,e)}if(0<Tt.length){qt(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Nt&&qt(Nt,e),null!==At&&qt(At,e),null!==It&&qt(It,e),Pt.forEach(t),Vt.forEach(t),n=0;n<Ht.length;n++)(r=Ht[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Ht.length&&null===(n=Ht[0]).blockedOn;)Bt(n),null===n.blockedOn&&Ht.shift()}var Gt=S.ReactCurrentBatchConfig,Zt=!0;function Kt(e,t,n,r){var i=xt,o=Gt.transition;Gt.transition=null;try{xt=1,Qt(e,t,n,r)}finally{xt=i,Gt.transition=o}}function Xt(e,t,n,r){var i=xt,o=Gt.transition;Gt.transition=null;try{xt=4,Qt(e,t,n,r)}finally{xt=i,Gt.transition=o}}function Qt(e,t,n,r){if(Zt){var i=Jt(e,t,n,r);if(null===i)Zr(e,t,r,Yt,n),Ot(e,r);else if(function(e,t,n,r,i){switch(t){case"focusin":return Nt=Dt(Nt,e,t,n,r,i),!0;case"dragenter":return At=Dt(At,e,t,n,r,i),!0;case"mouseover":return It=Dt(It,e,t,n,r,i),!0;case"pointerover":var o=i.pointerId;return Pt.set(o,Dt(Pt.get(o)||null,e,t,n,r,i)),!0;case"gotpointercapture":return Vt.set(o=i.pointerId,Dt(Vt.get(o)||null,e,t,n,r,i)),!0}return!1}(i,e,t,n,r))r.stopPropagation();else if(Ot(e,r),4&t&&-1<Rt.indexOf(e)){for(;null!==i;){var o=xi(i);if(null!==o&&Ct(o),null===(o=Jt(e,t,n,r))&&Zr(e,t,r,Yt,n),o===i)break;i=o}null!==i&&r.stopPropagation()}else Zr(e,t,r,null,n)}}var Yt=null;function Jt(e,t,n,r){if(Yt=null,null!==(e=ki(e=Ce(r))))if(null===(t=We(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Ge(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yt=e,null}function en(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(nt()){case rt:return 1;case it:return 4;case ot:case at:return 16;case st:return 536870912;default:return 16}default:return 16}}var tn=null,nn=null,rn=null;function on(){if(rn)return rn;var e,t,n=nn,r=n.length,i="value"in tn?tn.value:tn.textContent,o=i.length;for(e=0;e<r&&n[e]===i[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===i[o-t];t++);return rn=i.slice(e,1<t?1-t:void 0)}function an(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function sn(){return!0}function ln(){return!1}function cn(e){function t(t,n,r,i,o){for(var a in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(a)&&(this[a]=(t=e[a])?t(i):i[a]);return this.isDefaultPrevented=(null!=i.defaultPrevented?i.defaultPrevented:!1===i.returnValue)?sn:ln,this.isPropagationStopped=ln,this}return B(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=sn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=sn)},persist:function(){},isPersistent:sn}),t}var dn,un,hn,fn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pn=cn(fn),gn=B({},fn,{view:0,detail:0}),vn=cn(gn),mn=B({},gn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==hn&&(hn&&"mousemove"===e.type?(dn=e.screenX-hn.screenX,un=e.screenY-hn.screenY):un=dn=0,hn=e),dn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),bn=cn(mn),wn=cn(B({},mn,{dataTransfer:0})),yn=cn(B({},gn,{relatedTarget:0})),_n=cn(B({},fn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=B({},fn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),xn=cn(kn),Sn=cn(B({},fn,{data:0})),Cn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Ln={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Mn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Mn[e])&&!!t[e]}function zn(){return En}var $n=B({},gn,{key:function(e){if(e.key){var t=Cn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=an(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Ln[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zn,charCode:function(e){return"keypress"===e.type?an(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?an(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=cn($n),Nn=cn(B({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),An=cn(B({},gn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zn})),In=cn(B({},fn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=B({},mn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Vn=cn(Pn),Hn=[9,13,27,32],Rn=s&&"CompositionEvent"in window,On=null;s&&"documentMode"in document&&(On=document.documentMode);var Dn=s&&"TextEvent"in window&&!On,Bn=s&&(!Rn||On&&8<On&&11>=On),jn=String.fromCharCode(32),Fn=!1;function Un(e,t){switch(e){case"keyup":return-1!==Hn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Wn=!1,Gn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Gn[e.type]:"textarea"===t}function Kn(e,t,n,r){$e(r),0<(t=Xr(t,"onChange")).length&&(n=new pn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Xn=null,Qn=null;function Yn(e){jr(e,0)}function Jn(e){if(Q(Si(e)))return e}function er(e,t){if("change"===e)return t}var tr=!1;if(s){var nr;if(s){var rr="oninput"in document;if(!rr){var ir=document.createElement("div");ir.setAttribute("oninput","return;"),rr="function"==typeof ir.oninput}nr=rr}else nr=!1;tr=nr&&(!document.documentMode||9<document.documentMode)}function or(){Xn&&(Xn.detachEvent("onpropertychange",ar),Qn=Xn=null)}function ar(e){if("value"===e.propertyName&&Jn(Qn)){var t=[];Kn(t,Qn,e,Ce(e)),Pe(Yn,t)}}function sr(e,t,n){"focusin"===e?(or(),Qn=n,(Xn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&or()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Jn(Qn)}function cr(e,t){if("click"===e)return Jn(t)}function dr(e,t){if("input"===e||"change"===e)return Jn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function hr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!l.call(t,i)||!ur(e[i],t[i]))return!1}return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function gr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?gr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function vr(){for(var e=window,t=Y();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Y((e=t.contentWindow).document)}return t}function mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function br(e){var t=vr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&gr(n.ownerDocument.documentElement,n)){if(null!==r&&mr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var i=n.textContent.length,o=Math.min(r.start,i);r=void 0===r.end?o:Math.min(r.end,i),!e.extend&&o>r&&(i=r,r=o,o=i),i=pr(n,o);var a=pr(n,r);i&&a&&(1!==e.rangeCount||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&((t=t.createRange()).setStart(i.node,i.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var wr=s&&"documentMode"in document&&11>=document.documentMode,yr=null,_r=null,kr=null,xr=!1;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;xr||null==yr||yr!==Y(r)||(r="selectionStart"in(r=yr)&&mr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&hr(kr,r)||(kr=r,0<(r=Xr(_r,"onSelect")).length&&(t=new pn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}function Cr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Lr={animationend:Cr("Animation","AnimationEnd"),animationiteration:Cr("Animation","AnimationIteration"),animationstart:Cr("Animation","AnimationStart"),transitionend:Cr("Transition","TransitionEnd")},Mr={},Er={};function zr(e){if(Mr[e])return Mr[e];if(!Lr[e])return e;var t,n=Lr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Mr[e]=n[t];return e}s&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete Lr.animationend.animation,delete Lr.animationiteration.animation,delete Lr.animationstart.animation),"TransitionEvent"in window||delete Lr.transitionend.transition);var $r=zr("animationend"),Tr=zr("animationiteration"),Nr=zr("animationstart"),Ar=zr("transitionend"),Ir=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Vr(e,t){Ir.set(e,t),o(t,[e])}for(var Hr=0;Hr<Pr.length;Hr++){var Rr=Pr[Hr];Vr(Rr.toLowerCase(),"on"+(Rr[0].toUpperCase()+Rr.slice(1)))}Vr($r,"onAnimationEnd"),Vr(Tr,"onAnimationIteration"),Vr(Nr,"onAnimationStart"),Vr("dblclick","onDoubleClick"),Vr("focusin","onFocus"),Vr("focusout","onBlur"),Vr(Ar,"onTransitionEnd"),a("onMouseEnter",["mouseout","mouseover"]),a("onMouseLeave",["mouseout","mouseover"]),a("onPointerEnter",["pointerout","pointerover"]),a("onPointerLeave",["pointerout","pointerover"]),o("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),o("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),o("onBeforeInput",["compositionend","keypress","textInput","paste"]),o("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),o("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),o("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Or="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Or));function Br(e,t,r){var i=e.type||"unknown-event";e.currentTarget=r,function(e,t,r,i,o,a,s,l,c){if(qe.apply(this,arguments),De){if(!De)throw Error(n(198));var d=Be;De=!1,Be=null,je||(je=!0,Fe=d)}}(i,t,void 0,e),e.currentTarget=null}function jr(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var a=r.length-1;0<=a;a--){var s=r[a],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==o&&i.isPropagationStopped())break e;Br(i,s,c),o=l}else for(a=0;a<r.length;a++){if(l=(s=r[a]).instance,c=s.currentTarget,s=s.listener,l!==o&&i.isPropagationStopped())break e;Br(i,s,c),o=l}}}if(je)throw e=Fe,je=!1,Fe=null,e}function Fr(e,t){var n=t[wi];void 0===n&&(n=t[wi]=new Set);var r=e+"__bubble";n.has(r)||(Gr(t,e,2,!1),n.add(r))}function Ur(e,t,n){var r=0;t&&(r|=4),Gr(n,e,r,t)}var qr="_reactListening"+Math.random().toString(36).slice(2);function Wr(e){if(!e[qr]){e[qr]=!0,r.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||Ur(t,!1,e),Ur(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[qr]||(t[qr]=!0,Ur("selectionchange",!1,t))}}function Gr(e,t,n,r){switch(en(t)){case 1:var i=Kt;break;case 4:i=Xt;break;default:i=Qt}n=i.bind(null,t,n,e),i=void 0,!He||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(i=!0),e.addEventListener(t,n,r?void 0===i||{capture:!0,passive:i}:void 0!==i&&{passive:i})}function Zr(e,t,n,r,i){var o=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var a=r.tag;if(3===a||4===a){var s=r.stateNode.containerInfo;if(s===i||8===s.nodeType&&s.parentNode===i)break;if(4===a)for(a=r.return;null!==a;){var l=a.tag;if((3===l||4===l)&&((l=a.stateNode.containerInfo)===i||8===l.nodeType&&l.parentNode===i))return;a=a.return}for(;null!==s;){if(null===(a=ki(s)))return;if(5===(l=a.tag)||6===l){r=o=a;continue e}s=s.parentNode}}r=r.return}Pe((function(){var r=o,i=Ce(n),a=[];e:{var s=Ir.get(e);if(void 0!==s){var l=pn,c=e;switch(e){case"keypress":if(0===an(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=yn;break;case"focusout":c="blur",l=yn;break;case"beforeblur":case"afterblur":l=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=bn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=wn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=An;break;case $r:case Tr:case Nr:l=_n;break;case Ar:l=In;break;case"scroll":l=vn;break;case"wheel":l=Vn;break;case"copy":case"cut":case"paste":l=xn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Nn}var d=!!(4&t),u=!d&&"scroll"===e,h=d?null!==s?s+"Capture":null:s;d=[];for(var f,p=r;null!==p;){var g=(f=p).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==h&&null!=(g=Ve(p,h))&&d.push(Kr(p,g,f))),u)break;p=p.return}0<d.length&&(s=new l(s,c,null,n,i),a.push({event:s,listeners:d}))}}if(!(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===Se||!(c=n.relatedTarget||n.fromElement)||!ki(c)&&!c[bi])&&(l||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?ki(c):null)&&(c!==(u=We(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(d=bn,g="onMouseLeave",h="onMouseEnter",p="mouse","pointerout"!==e&&"pointerover"!==e||(d=Nn,g="onPointerLeave",h="onPointerEnter",p="pointer"),u=null==l?s:Si(l),f=null==c?s:Si(c),(s=new d(g,p+"leave",l,n,i)).target=u,s.relatedTarget=f,g=null,ki(i)===r&&((d=new d(h,p+"enter",c,n,i)).target=f,d.relatedTarget=u,g=d),u=g,l&&c)e:{for(h=c,p=0,f=d=l;f;f=Qr(f))p++;for(f=0,g=h;g;g=Qr(g))f++;for(;0<p-f;)d=Qr(d),p--;for(;0<f-p;)h=Qr(h),f--;for(;p--;){if(d===h||null!==h&&d===h.alternate)break e;d=Qr(d),h=Qr(h)}d=null}else d=null;null!==l&&Yr(a,s,l,d,!1),null!==c&&null!==u&&Yr(a,u,c,d,!0)}if("select"===(l=(s=r?Si(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var v=er;else if(Zn(s))if(tr)v=dr;else{v=lr;var m=sr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(v=cr);switch(v&&(v=v(e,r))?Kn(a,v,n,i):(m&&m(e,s,r),"focusout"===e&&(m=s._wrapperState)&&m.controlled&&"number"===s.type&&ie(s,"number",s.value)),m=r?Si(r):window,e){case"focusin":(Zn(m)||"true"===m.contentEditable)&&(yr=m,_r=r,kr=null);break;case"focusout":kr=_r=yr=null;break;case"mousedown":xr=!0;break;case"contextmenu":case"mouseup":case"dragend":xr=!1,Sr(a,n,i);break;case"selectionchange":if(wr)break;case"keydown":case"keyup":Sr(a,n,i)}var b;if(Rn)e:{switch(e){case"compositionstart":var w="onCompositionStart";break e;case"compositionend":w="onCompositionEnd";break e;case"compositionupdate":w="onCompositionUpdate";break e}w=void 0}else Wn?Un(e,n)&&(w="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(w="onCompositionStart");w&&(Bn&&"ko"!==n.locale&&(Wn||"onCompositionStart"!==w?"onCompositionEnd"===w&&Wn&&(b=on()):(nn="value"in(tn=i)?tn.value:tn.textContent,Wn=!0)),0<(m=Xr(r,w)).length&&(w=new Sn(w,e,null,n,i),a.push({event:w,listeners:m}),(b||null!==(b=qn(n)))&&(w.data=b))),(b=Dn?function(e,t){switch(e){case"compositionend":return qn(t);case"keypress":return 32!==t.which?null:(Fn=!0,jn);case"textInput":return(e=t.data)===jn&&Fn?null:e;default:return null}}(e,n):function(e,t){if(Wn)return"compositionend"===e||!Rn&&Un(e,t)?(e=on(),rn=nn=tn=null,Wn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(r=Xr(r,"onBeforeInput")).length&&(i=new Sn("onBeforeInput","beforeinput",null,n,i),a.push({event:i,listeners:r}),i.data=b)}jr(a,t)}))}function Kr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Xr(e,t){for(var n=t+"Capture",r=[];null!==e;){var i=e,o=i.stateNode;5===i.tag&&null!==o&&(i=o,null!=(o=Ve(e,n))&&r.unshift(Kr(e,o,i)),null!=(o=Ve(e,t))&&r.push(Kr(e,o,i))),e=e.return}return r}function Qr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Yr(e,t,n,r,i){for(var o=t._reactName,a=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,i?null!=(l=Ve(n,o))&&a.unshift(Kr(n,l,s)):i||null!=(l=Ve(n,o))&&a.push(Kr(n,l,s))),n=n.return}0!==a.length&&e.push({event:t,listeners:a})}var Jr=/\r\n?/g,ei=/\u0000|\uFFFD/g;function ti(e){return("string"==typeof e?e:""+e).replace(Jr,"\n").replace(ei,"")}function ni(e,t,r){if(t=ti(t),ti(e)!==t&&r)throw Error(n(425))}function ri(){}var ii=null,oi=null;function ai(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var si="function"==typeof setTimeout?setTimeout:void 0,li="function"==typeof clearTimeout?clearTimeout:void 0,ci="function"==typeof Promise?Promise:void 0,di="function"==typeof queueMicrotask?queueMicrotask:void 0!==ci?function(e){return ci.resolve(null).then(e).catch(ui)}:si;function ui(e){setTimeout((function(){throw e}))}function hi(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&8===i.nodeType)if("/$"===(n=i.data)){if(0===r)return e.removeChild(i),void Wt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=i}while(n);Wt(t)}function fi(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function pi(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var gi=Math.random().toString(36).slice(2),vi="__reactFiber$"+gi,mi="__reactProps$"+gi,bi="__reactContainer$"+gi,wi="__reactEvents$"+gi,yi="__reactListeners$"+gi,_i="__reactHandles$"+gi;function ki(e){var t=e[vi];if(t)return t;for(var n=e.parentNode;n;){if(t=n[bi]||n[vi]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=pi(e);null!==e;){if(n=e[vi])return n;e=pi(e)}return t}n=(e=n).parentNode}return null}function xi(e){return!(e=e[vi]||e[bi])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function Si(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(n(33))}function Ci(e){return e[mi]||null}var Li=[],Mi=-1;function Ei(e){return{current:e}}function zi(e){0>Mi||(e.current=Li[Mi],Li[Mi]=null,Mi--)}function $i(e,t){Mi++,Li[Mi]=e.current,e.current=t}var Ti={},Ni=Ei(Ti),Ai=Ei(!1),Ii=Ti;function Pi(e,t){var n=e.type.contextTypes;if(!n)return Ti;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Vi(e){return null!=e.childContextTypes}function Hi(){zi(Ai),zi(Ni)}function Ri(e,t,r){if(Ni.current!==Ti)throw Error(n(168));$i(Ni,t),$i(Ai,r)}function Oi(e,t,r){var i=e.stateNode;if(t=t.childContextTypes,"function"!=typeof i.getChildContext)return r;for(var o in i=i.getChildContext())if(!(o in t))throw Error(n(108,G(e)||"Unknown",o));return B({},r,i)}function Di(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ti,Ii=Ni.current,$i(Ni,e),$i(Ai,Ai.current),!0}function Bi(e,t,r){var i=e.stateNode;if(!i)throw Error(n(169));r?(e=Oi(e,t,Ii),i.__reactInternalMemoizedMergedChildContext=e,zi(Ai),zi(Ni),$i(Ni,e)):zi(Ai),$i(Ai,r)}var ji=null,Fi=!1,Ui=!1;function qi(e){null===ji?ji=[e]:ji.push(e)}function Wi(){if(!Ui&&null!==ji){Ui=!0;var e=0,t=xt;try{var n=ji;for(xt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}ji=null,Fi=!1}catch(t){throw null!==ji&&(ji=ji.slice(e+1)),Qe(rt,Wi),t}finally{xt=t,Ui=!1}}return null}var Gi=[],Zi=0,Ki=null,Xi=0,Qi=[],Yi=0,Ji=null,eo=1,to="";function no(e,t){Gi[Zi++]=Xi,Gi[Zi++]=Ki,Ki=e,Xi=t}function ro(e,t,n){Qi[Yi++]=eo,Qi[Yi++]=to,Qi[Yi++]=Ji,Ji=e;var r=eo;e=to;var i=32-dt(r)-1;r&=~(1<<i),n+=1;var o=32-dt(t)+i;if(30<o){var a=i-i%5;o=(r&(1<<a)-1).toString(32),r>>=a,i-=a,eo=1<<32-dt(t)+i|n<<i|r,to=o+e}else eo=1<<o|n<<i|r,to=e}function io(e){null!==e.return&&(no(e,1),ro(e,1,0))}function oo(e){for(;e===Ki;)Ki=Gi[--Zi],Gi[Zi]=null,Xi=Gi[--Zi],Gi[Zi]=null;for(;e===Ji;)Ji=Qi[--Yi],Qi[Yi]=null,to=Qi[--Yi],Qi[Yi]=null,eo=Qi[--Yi],Qi[Yi]=null}var ao=null,so=null,lo=!1,co=null;function uo(e,t){var n=Pc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function ho(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ao=e,so=fi(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ao=e,so=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(e.memoizedState={dehydrated:t,treeContext:n=null!==Ji?{id:eo,overflow:to}:null,retryLane:1073741824},(n=Pc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ao=e,so=null,!0);default:return!1}}function fo(e){return!(!(1&e.mode)||128&e.flags)}function po(e){if(lo){var t=so;if(t){var r=t;if(!ho(e,t)){if(fo(e))throw Error(n(418));t=fi(r.nextSibling);var i=ao;t&&ho(e,t)?uo(i,r):(e.flags=-4097&e.flags|2,lo=!1,ao=e)}}else{if(fo(e))throw Error(n(418));e.flags=-4097&e.flags|2,lo=!1,ao=e}}}function go(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ao=e}function vo(e){if(e!==ao)return!1;if(!lo)return go(e),lo=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!ai(e.type,e.memoizedProps)),t&&(t=so)){if(fo(e))throw mo(),Error(n(418));for(;t;)uo(e,t),t=fi(t.nextSibling)}if(go(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(n(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var r=e.data;if("/$"===r){if(0===t){so=fi(e.nextSibling);break e}t--}else"$"!==r&&"$!"!==r&&"$?"!==r||t++}e=e.nextSibling}so=null}}else so=ao?fi(e.stateNode.nextSibling):null;return!0}function mo(){for(var e=so;e;)e=fi(e.nextSibling)}function bo(){so=ao=null,lo=!1}function wo(e){null===co?co=[e]:co.push(e)}var yo=S.ReactCurrentBatchConfig;function _o(e,t,r){if(null!==(e=r.ref)&&"function"!=typeof e&&"object"!=typeof e){if(r._owner){if(r=r._owner){if(1!==r.tag)throw Error(n(309));var i=r.stateNode}if(!i)throw Error(n(147,e));var o=i,a=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=o.refs;null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!=typeof e)throw Error(n(284));if(!r._owner)throw Error(n(290,e))}return e}function ko(e,t){throw e=Object.prototype.toString.call(t),Error(n(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function xo(e){return(0,e._init)(e._payload)}function So(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function r(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function i(e,t){for(e=new Map;null!==t;)e.set(null!==t.key?t.key:t.index,t),t=t.sibling;return e}function o(e,t){return(e=Hc(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Bc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){var i=n.type;return i===M?u(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===i||"object"==typeof i&&null!==i&&i.$$typeof===V&&xo(i)===t.type)?((r=o(t,n.props)).ref=_o(e,t,n),r.return=e,r):((r=Rc(n.type,n.key,n.props,null,e.mode,r)).ref=_o(e,t,n),r.return=e,r)}function d(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=jc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function u(e,t,n,r,i){return null===t||7!==t.tag?((t=Oc(n,e.mode,r,i)).return=e,t):((t=o(t,n)).return=e,t)}function h(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Bc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case C:return(n=Rc(t.type,t.key,t.props,null,e.mode,n)).ref=_o(e,null,t),n.return=e,n;case L:return(t=jc(t,e.mode,n)).return=e,t;case V:return h(e,(0,t._init)(t._payload),n)}if(oe(t)||O(t))return(t=Oc(t,e.mode,n,null)).return=e,t;ko(e,t)}return null}function f(e,t,n,r){var i=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==i?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case C:return n.key===i?c(e,t,n,r):null;case L:return n.key===i?d(e,t,n,r):null;case V:return f(e,t,(i=n._init)(n._payload),r)}if(oe(n)||O(n))return null!==i?null:u(e,t,n,r,null);ko(e,n)}return null}function p(e,t,n,r,i){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,i);if("object"==typeof r&&null!==r){switch(r.$$typeof){case C:return c(t,e=e.get(null===r.key?n:r.key)||null,r,i);case L:return d(t,e=e.get(null===r.key?n:r.key)||null,r,i);case V:return p(e,t,n,(0,r._init)(r._payload),i)}if(oe(r)||O(r))return u(t,e=e.get(n)||null,r,i,null);ko(t,r)}return null}function g(n,o,s,l){for(var c=null,d=null,u=o,g=o=0,v=null;null!==u&&g<s.length;g++){u.index>g?(v=u,u=null):v=u.sibling;var m=f(n,u,s[g],l);if(null===m){null===u&&(u=v);break}e&&u&&null===m.alternate&&t(n,u),o=a(m,o,g),null===d?c=m:d.sibling=m,d=m,u=v}if(g===s.length)return r(n,u),lo&&no(n,g),c;if(null===u){for(;g<s.length;g++)null!==(u=h(n,s[g],l))&&(o=a(u,o,g),null===d?c=u:d.sibling=u,d=u);return lo&&no(n,g),c}for(u=i(n,u);g<s.length;g++)null!==(v=p(u,n,g,s[g],l))&&(e&&null!==v.alternate&&u.delete(null===v.key?g:v.key),o=a(v,o,g),null===d?c=v:d.sibling=v,d=v);return e&&u.forEach((function(e){return t(n,e)})),lo&&no(n,g),c}function v(o,s,l,c){var d=O(l);if("function"!=typeof d)throw Error(n(150));if(null==(l=d.call(l)))throw Error(n(151));for(var u=d=null,g=s,v=s=0,m=null,b=l.next();null!==g&&!b.done;v++,b=l.next()){g.index>v?(m=g,g=null):m=g.sibling;var w=f(o,g,b.value,c);if(null===w){null===g&&(g=m);break}e&&g&&null===w.alternate&&t(o,g),s=a(w,s,v),null===u?d=w:u.sibling=w,u=w,g=m}if(b.done)return r(o,g),lo&&no(o,v),d;if(null===g){for(;!b.done;v++,b=l.next())null!==(b=h(o,b.value,c))&&(s=a(b,s,v),null===u?d=b:u.sibling=b,u=b);return lo&&no(o,v),d}for(g=i(o,g);!b.done;v++,b=l.next())null!==(b=p(g,o,v,b.value,c))&&(e&&null!==b.alternate&&g.delete(null===b.key?v:b.key),s=a(b,s,v),null===u?d=b:u.sibling=b,u=b);return e&&g.forEach((function(e){return t(o,e)})),lo&&no(o,v),d}return function e(n,i,a,l){if("object"==typeof a&&null!==a&&a.type===M&&null===a.key&&(a=a.props.children),"object"==typeof a&&null!==a){switch(a.$$typeof){case C:e:{for(var c=a.key,d=i;null!==d;){if(d.key===c){if((c=a.type)===M){if(7===d.tag){r(n,d.sibling),(i=o(d,a.props.children)).return=n,n=i;break e}}else if(d.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===V&&xo(c)===d.type){r(n,d.sibling),(i=o(d,a.props)).ref=_o(n,d,a),i.return=n,n=i;break e}r(n,d);break}t(n,d),d=d.sibling}a.type===M?((i=Oc(a.props.children,n.mode,l,a.key)).return=n,n=i):((l=Rc(a.type,a.key,a.props,null,n.mode,l)).ref=_o(n,i,a),l.return=n,n=l)}return s(n);case L:e:{for(d=a.key;null!==i;){if(i.key===d){if(4===i.tag&&i.stateNode.containerInfo===a.containerInfo&&i.stateNode.implementation===a.implementation){r(n,i.sibling),(i=o(i,a.children||[])).return=n,n=i;break e}r(n,i);break}t(n,i),i=i.sibling}(i=jc(a,n.mode,l)).return=n,n=i}return s(n);case V:return e(n,i,(d=a._init)(a._payload),l)}if(oe(a))return g(n,i,a,l);if(O(a))return v(n,i,a,l);ko(n,a)}return"string"==typeof a&&""!==a||"number"==typeof a?(a=""+a,null!==i&&6===i.tag?(r(n,i.sibling),(i=o(i,a)).return=n,n=i):(r(n,i),(i=Bc(a,n.mode,l)).return=n,n=i),s(n)):r(n,i)}}var Co=So(!0),Lo=So(!1),Mo=Ei(null),Eo=null,zo=null,$o=null;function To(){$o=zo=Eo=null}function No(e){var t=Mo.current;zi(Mo),e._currentValue=t}function Ao(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Io(e,t){Eo=e,$o=zo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(xs=!0),e.firstContext=null)}function Po(e){var t=e._currentValue;if($o!==e)if(e={context:e,memoizedValue:t,next:null},null===zo){if(null===Eo)throw Error(n(308));zo=e,Eo.dependencies={lanes:0,firstContext:e}}else zo=zo.next=e;return t}var Vo=null;function Ho(e){null===Vo?Vo=[e]:Vo.push(e)}function Ro(e,t,n,r){var i=t.interleaved;return null===i?(n.next=n,Ho(t)):(n.next=i.next,i.next=n),t.interleaved=n,Oo(e,r)}function Oo(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Do=!1;function Bo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function jo(e,t){t.updateQueue===(e=e.updateQueue)&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Fo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Uo(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Nl){var i=r.pending;return null===i?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Oo(e,n)}return null===(i=r.interleaved)?(t.next=t,Ho(r)):(t.next=i.next,i.next=t),r.interleaved=t,Oo(e,n)}function qo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;t.lanes=n|=r&=e.pendingLanes,kt(e,n)}}function Wo(e,t){var n=e.updateQueue,r=e.alternate;if(null===r||n!==(r=r.updateQueue))null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t;else{var i=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?i=o=a:o=o.next=a,n=n.next}while(null!==n);null===o?i=o=t:o=o.next=t}else i=o=t;e.updateQueue=n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:r.shared,effects:r.effects}}}function Go(e,t,n,r){var i=e.updateQueue;Do=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(null!==s){i.shared.pending=null;var l=s,c=l.next;l.next=null,null===a?o=c:a.next=c,a=l;var d=e.alternate;null!==d&&(s=(d=d.updateQueue).lastBaseUpdate)!==a&&(null===s?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l)}if(null!==o){var u=i.baseState;for(a=0,d=c=l=null,s=o;;){var h=s.lane,f=s.eventTime;if((r&h)===h){null!==d&&(d=d.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var p=e,g=s;switch(h=t,f=n,g.tag){case 1:if("function"==typeof(p=g.payload)){u=p.call(f,u,h);break e}u=p;break e;case 3:p.flags=-65537&p.flags|128;case 0:if(null==(h="function"==typeof(p=g.payload)?p.call(f,u,h):p))break e;u=B({},u,h);break e;case 2:Do=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(h=i.effects)?i.effects=[s]:h.push(s))}else f={eventTime:f,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===d?(c=d=f,l=u):d=d.next=f,a|=h;if(null===(s=s.next)){if(null===(s=i.shared.pending))break;s=(h=s).next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}if(null===d&&(l=u),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=d,null!==(t=i.shared.interleaved)){i=t;do{a|=i.lane,i=i.next}while(i!==t)}else null===o&&(i.shared.lanes=0);Dl|=a,e.lanes=a,e.memoizedState=u}}function Zo(e,t,r){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var i=e[t],o=i.callback;if(null!==o){if(i.callback=null,i=r,"function"!=typeof o)throw Error(n(191,o));o.call(i)}}}var Ko={},Xo=Ei(Ko),Qo=Ei(Ko),Yo=Ei(Ko);function Jo(e){if(e===Ko)throw Error(n(174));return e}function ea(e,t){switch($i(Yo,t),$i(Qo,e),$i(Xo,Ko),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:he(null,"");break;default:t=he(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}zi(Xo),$i(Xo,t)}function ta(){zi(Xo),zi(Qo),zi(Yo)}function na(e){Jo(Yo.current);var t=Jo(Xo.current),n=he(t,e.type);t!==n&&($i(Qo,e),$i(Xo,n))}function ra(e){Qo.current===e&&(zi(Xo),zi(Qo))}var ia=Ei(0);function oa(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var aa=[];function sa(){for(var e=0;e<aa.length;e++)aa[e]._workInProgressVersionPrimary=null;aa.length=0}var la=S.ReactCurrentDispatcher,ca=S.ReactCurrentBatchConfig,da=0,ua=null,ha=null,fa=null,pa=!1,ga=!1,va=0,ma=0;function ba(){throw Error(n(321))}function wa(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ya(e,t,r,i,o,a){if(da=a,ua=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,la.current=null===e||null===e.memoizedState?rs:is,e=r(i,o),ga){a=0;do{if(ga=!1,va=0,25<=a)throw Error(n(301));a+=1,fa=ha=null,t.updateQueue=null,la.current=os,e=r(i,o)}while(ga)}if(la.current=ns,t=null!==ha&&null!==ha.next,da=0,fa=ha=ua=null,pa=!1,t)throw Error(n(300));return e}function _a(){var e=0!==va;return va=0,e}function ka(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===fa?ua.memoizedState=fa=e:fa=fa.next=e,fa}function xa(){if(null===ha){var e=ua.alternate;e=null!==e?e.memoizedState:null}else e=ha.next;var t=null===fa?ua.memoizedState:fa.next;if(null!==t)fa=t,ha=e;else{if(null===e)throw Error(n(310));e={memoizedState:(ha=e).memoizedState,baseState:ha.baseState,baseQueue:ha.baseQueue,queue:ha.queue,next:null},null===fa?ua.memoizedState=fa=e:fa=fa.next=e}return fa}function Sa(e,t){return"function"==typeof t?t(e):t}function Ca(e){var t=xa(),r=t.queue;if(null===r)throw Error(n(311));r.lastRenderedReducer=e;var i=ha,o=i.baseQueue,a=r.pending;if(null!==a){if(null!==o){var s=o.next;o.next=a.next,a.next=s}i.baseQueue=o=a,r.pending=null}if(null!==o){i=i.baseState;var l=s=null,c=null,d=a=o.next;do{var u=d.lane;if((da&u)===u)null!==c&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),i=d.hasEagerState?d.eagerState:e(i,d.action);else{var h={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};null===c?(l=c=h,s=i):c=c.next=h,ua.lanes|=u,Dl|=u}d=d.next}while(null!==d&&d!==a);null===c?s=i:c.next=l,ur(i,t.memoizedState)||(xs=!0),t.memoizedState=i,t.baseState=s,t.baseQueue=c,r.lastRenderedState=i}if(null!==(e=r.interleaved)){o=e;do{ua.lanes|=a=o.lane,Dl|=a,o=o.next}while(o!==e)}else null===o&&(r.lanes=0);return[t.memoizedState,r.dispatch]}function La(e){var t=xa(),r=t.queue;if(null===r)throw Error(n(311));r.lastRenderedReducer=e;var i=r.dispatch,o=r.pending,a=t.memoizedState;if(null!==o){r.pending=null;var s=o=o.next;do{a=e(a,s.action),s=s.next}while(s!==o);ur(a,t.memoizedState)||(xs=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),r.lastRenderedState=a}return[a,i]}function Ma(){}function Ea(e,t){var r=ua,i=xa(),o=t(),a=!ur(i.memoizedState,o);if(a&&(i.memoizedState=o,xs=!0),Da(Ta.bind(null,r,i=i.queue,e),[e]),i.getSnapshot!==t||a||null!==fa&&1&fa.memoizedState.tag){if(r.flags|=2048,Pa(9,$a.bind(null,r,i,o,t),void 0,null),null===Al)throw Error(n(349));30&da||za(r,t,o)}return o}function za(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=ua.updateQueue)?(ua.updateQueue=t={lastEffect:null,stores:null},t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function $a(e,t,n,r){t.value=n,t.getSnapshot=r,Na(t)&&Aa(e)}function Ta(e,t,n){return n((function(){Na(t)&&Aa(e)}))}function Na(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!ur(e,n)}catch(e){return!0}}function Aa(e){var t=Oo(e,1);null!==t&&ac(t,e,1,-1)}function Ia(e){var t=ka();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,t.queue=e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Sa,lastRenderedState:e},e=e.dispatch=Ya.bind(null,ua,e),[t.memoizedState,e]}function Pa(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ua.updateQueue)?(ua.updateQueue=t={lastEffect:null,stores:null},t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Va(){return xa().memoizedState}function Ha(e,t,n,r){var i=ka();ua.flags|=e,i.memoizedState=Pa(1|t,n,void 0,void 0===r?null:r)}function Ra(e,t,n,r){var i=xa();r=void 0===r?null:r;var o=void 0;if(null!==ha){var a=ha.memoizedState;if(o=a.destroy,null!==r&&wa(r,a.deps))return void(i.memoizedState=Pa(t,n,o,r))}ua.flags|=e,i.memoizedState=Pa(1|t,n,o,r)}function Oa(e,t){return Ha(8390656,8,e,t)}function Da(e,t){return Ra(2048,8,e,t)}function Ba(e,t){return Ra(4,2,e,t)}function ja(e,t){return Ra(4,4,e,t)}function Fa(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ua(e,t,n){return n=null!=n?n.concat([e]):null,Ra(4,4,Fa.bind(null,t,e),n)}function qa(){}function Wa(e,t){var n=xa();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&wa(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ga(e,t){var n=xa();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&wa(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Za(e,t,n){return 21&da?(ur(n,t)||(n=wt(),ua.lanes|=n,Dl|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,xs=!0),e.memoizedState=n)}function Ka(e,t){var n=xt;xt=0!==n&&4>n?n:4,e(!0);var r=ca.transition;ca.transition={};try{e(!1),t()}finally{xt=n,ca.transition=r}}function Xa(){return xa().memoizedState}function Qa(e,t,n){var r=oc(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ja(e)?es(t,n):null!==(n=Ro(e,t,n,r))&&(ac(n,e,r,ic()),ts(n,t,r))}function Ya(e,t,n){var r=oc(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ja(e))es(t,i);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var a=t.lastRenderedState,s=o(a,n);if(i.hasEagerState=!0,i.eagerState=s,ur(s,a)){var l=t.interleaved;return null===l?(i.next=i,Ho(t)):(i.next=l.next,l.next=i),void(t.interleaved=i)}}catch(e){}null!==(n=Ro(e,t,i,r))&&(ac(n,e,r,i=ic()),ts(n,t,r))}}function Ja(e){var t=e.alternate;return e===ua||null!==t&&t===ua}function es(e,t){ga=pa=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ts(e,t,n){if(4194240&n){var r=t.lanes;t.lanes=n|=r&=e.pendingLanes,kt(e,n)}}var ns={readContext:Po,useCallback:ba,useContext:ba,useEffect:ba,useImperativeHandle:ba,useInsertionEffect:ba,useLayoutEffect:ba,useMemo:ba,useReducer:ba,useRef:ba,useState:ba,useDebugValue:ba,useDeferredValue:ba,useTransition:ba,useMutableSource:ba,useSyncExternalStore:ba,useId:ba,unstable_isNewReconciler:!1},rs={readContext:Po,useCallback:function(e,t){return ka().memoizedState=[e,void 0===t?null:t],e},useContext:Po,useEffect:Oa,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ha(4194308,4,Fa.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ha(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ha(4,2,e,t)},useMemo:function(e,t){var n=ka();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ka();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,r.queue=e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},e=e.dispatch=Qa.bind(null,ua,e),[r.memoizedState,e]},useRef:function(e){return ka().memoizedState={current:e}},useState:Ia,useDebugValue:qa,useDeferredValue:function(e){return ka().memoizedState=e},useTransition:function(){var e=Ia(!1),t=e[0];return e=Ka.bind(null,e[1]),ka().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var i=ua,o=ka();if(lo){if(void 0===r)throw Error(n(407));r=r()}else{if(r=t(),null===Al)throw Error(n(349));30&da||za(i,t,r)}o.memoizedState=r;var a={value:r,getSnapshot:t};return o.queue=a,Oa(Ta.bind(null,i,a,e),[e]),i.flags|=2048,Pa(9,$a.bind(null,i,a,r,t),void 0,null),r},useId:function(){var e=ka(),t=Al.identifierPrefix;if(lo){var n=to;t=":"+t+"R"+(n=(eo&~(1<<32-dt(eo)-1)).toString(32)+n),0<(n=va++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ma++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},is={readContext:Po,useCallback:Wa,useContext:Po,useEffect:Da,useImperativeHandle:Ua,useInsertionEffect:Ba,useLayoutEffect:ja,useMemo:Ga,useReducer:Ca,useRef:Va,useState:function(){return Ca(Sa)},useDebugValue:qa,useDeferredValue:function(e){return Za(xa(),ha.memoizedState,e)},useTransition:function(){return[Ca(Sa)[0],xa().memoizedState]},useMutableSource:Ma,useSyncExternalStore:Ea,useId:Xa,unstable_isNewReconciler:!1},os={readContext:Po,useCallback:Wa,useContext:Po,useEffect:Da,useImperativeHandle:Ua,useInsertionEffect:Ba,useLayoutEffect:ja,useMemo:Ga,useReducer:La,useRef:Va,useState:function(){return La(Sa)},useDebugValue:qa,useDeferredValue:function(e){var t=xa();return null===ha?t.memoizedState=e:Za(t,ha.memoizedState,e)},useTransition:function(){return[La(Sa)[0],xa().memoizedState]},useMutableSource:Ma,useSyncExternalStore:Ea,useId:Xa,unstable_isNewReconciler:!1};function as(e,t){if(e&&e.defaultProps){for(var n in t=B({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function ss(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:B({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ls={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ic(),i=oc(e),o=Fo(r,i);o.payload=t,null!=n&&(o.callback=n),null!==(t=Uo(e,o,i))&&(ac(t,e,i,r),qo(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ic(),i=oc(e),o=Fo(r,i);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Uo(e,o,i))&&(ac(t,e,i,r),qo(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ic(),r=oc(e),i=Fo(n,r);i.tag=2,null!=t&&(i.callback=t),null!==(t=Uo(e,i,r))&&(ac(t,e,r,n),qo(t,e,r))}};function cs(e,t,n,r,i,o,a){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,a):!(t.prototype&&t.prototype.isPureReactComponent&&hr(n,r)&&hr(i,o))}function ds(e,t,n){var r=!1,i=Ti,o=t.contextType;return"object"==typeof o&&null!==o?o=Po(o):(i=Vi(t)?Ii:Ni.current,o=(r=null!=(r=t.contextTypes))?Pi(e,i):Ti),t=new t(n,o),e.memoizedState=null!=t.state?t.state:null,t.updater=ls,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=o),t}function us(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ls.enqueueReplaceState(t,t.state,null)}function hs(e,t,n,r){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs={},Bo(e);var o=t.contextType;"object"==typeof o&&null!==o?i.context=Po(o):(o=Vi(t)?Ii:Ni.current,i.context=Pi(e,o)),i.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(ss(e,t,o,n),i.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof i.getSnapshotBeforeUpdate||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||(t=i.state,"function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount(),t!==i.state&&ls.enqueueReplaceState(i,i.state,null),Go(e,n,i,r),i.state=e.memoizedState),"function"==typeof i.componentDidMount&&(e.flags|=4194308)}function fs(e,t){try{var n="",r=t;do{n+=q(r),r=r.return}while(r);var i=n}catch(e){i="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:i,digest:null}}function ps(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function gs(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var vs="function"==typeof WeakMap?WeakMap:Map;function ms(e,t,n){(n=Fo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Zl||(Zl=!0,Kl=r),gs(0,t)},n}function bs(e,t,n){(n=Fo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){gs(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){gs(0,t),"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function ws(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new vs;var i=new Set;r.set(t,i)}else void 0===(i=r.get(t))&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=zc.bind(null,e,t,n),t.then(e,e))}function ys(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function _s(e,t,n,r,i){return 1&e.mode?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Fo(-1,1)).tag=2,Uo(n,t,1))),n.lanes|=1),e)}var ks=S.ReactCurrentOwner,xs=!1;function Ss(e,t,n,r){t.child=null===e?Lo(t,null,n,r):Co(t,e.child,n,r)}function Cs(e,t,n,r,i){n=n.render;var o=t.ref;return Io(t,i),r=ya(e,t,n,r,o,i),n=_a(),null===e||xs?(lo&&n&&io(t),t.flags|=1,Ss(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Zs(e,t,i))}function Ls(e,t,n,r,i){if(null===e){var o=n.type;return"function"!=typeof o||Vc(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Rc(n.type,null,r,t,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Ms(e,t,o,r,i))}return o=e.child,e.lanes&i||!(n=null!==(n=n.compare)?n:hr)(o.memoizedProps,r)||e.ref!==t.ref?(t.flags|=1,(e=Hc(o,r)).ref=t.ref,e.return=t,t.child=e):Zs(e,t,i)}function Ms(e,t,n,r,i){if(null!==e){var o=e.memoizedProps;if(hr(o,r)&&e.ref===t.ref){if(xs=!1,t.pendingProps=r=o,!(e.lanes&i))return t.lanes=e.lanes,Zs(e,t,i);131072&e.flags&&(xs=!0)}}return $s(e,t,n,r,i)}function Es(e,t,n){var r=t.pendingProps,i=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,$i(Hl,Vl),Vl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,$i(Hl,Vl),Vl|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},$i(Hl,Vl),Vl|=n;else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,$i(Hl,Vl),Vl|=r;return Ss(e,t,i,n),t.child}function zs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function $s(e,t,n,r,i){var o=Vi(n)?Ii:Ni.current;return o=Pi(t,o),Io(t,i),n=ya(e,t,n,r,o,i),r=_a(),null===e||xs?(lo&&r&&io(t),t.flags|=1,Ss(e,t,n,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Zs(e,t,i))}function Ts(e,t,n,r,i){if(Vi(n)){var o=!0;Di(t)}else o=!1;if(Io(t,i),null===t.stateNode)Gs(e,t),ds(t,n,r),hs(t,n,r,i),r=!0;else if(null===e){var a=t.stateNode,s=t.memoizedProps;a.props=s;var l=a.context,c=n.contextType;c="object"==typeof c&&null!==c?Po(c):Pi(t,c=Vi(n)?Ii:Ni.current);var d=n.getDerivedStateFromProps,u="function"==typeof d||"function"==typeof a.getSnapshotBeforeUpdate;u||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(s!==r||l!==c)&&us(t,a,r,c),Do=!1;var h=t.memoizedState;a.state=h,Go(t,r,a,i),l=t.memoizedState,s!==r||h!==l||Ai.current||Do?("function"==typeof d&&(ss(t,n,d,r),l=t.memoizedState),(s=Do||cs(t,n,s,r,h,l,c))?(u||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||("function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"==typeof a.componentDidMount&&(t.flags|=4194308)):("function"==typeof a.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=c,r=s):("function"==typeof a.componentDidMount&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,jo(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:as(t.type,s),a.props=c,u=t.pendingProps,h=a.context,l="object"==typeof(l=n.contextType)&&null!==l?Po(l):Pi(t,l=Vi(n)?Ii:Ni.current);var f=n.getDerivedStateFromProps;(d="function"==typeof f||"function"==typeof a.getSnapshotBeforeUpdate)||"function"!=typeof a.UNSAFE_componentWillReceiveProps&&"function"!=typeof a.componentWillReceiveProps||(s!==u||h!==l)&&us(t,a,r,l),Do=!1,a.state=h=t.memoizedState,Go(t,r,a,i);var p=t.memoizedState;s!==u||h!==p||Ai.current||Do?("function"==typeof f&&(ss(t,n,f,r),p=t.memoizedState),(c=Do||cs(t,n,c,r,h,p,l)||!1)?(d||"function"!=typeof a.UNSAFE_componentWillUpdate&&"function"!=typeof a.componentWillUpdate||("function"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,l),"function"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,l)),"function"==typeof a.componentDidUpdate&&(t.flags|=4),"function"==typeof a.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof a.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=l,r=c):("function"!=typeof a.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof a.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return Ns(e,t,n,r,o,i)}function Ns(e,t,n,r,i,o){zs(e,t);var a=!!(128&t.flags);if(!r&&!a)return i&&Bi(t,n,!1),Zs(e,t,o);r=t.stateNode,ks.current=t;var s=a&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&a?(t.child=Co(t,e.child,null,o),t.child=Co(t,null,s,o)):Ss(e,t,s,o),t.memoizedState=r.state,i&&Bi(t,n,!0),t.child}function As(e){var t=e.stateNode;t.pendingContext?Ri(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ri(0,t.context,!1),ea(e,t.containerInfo)}function Is(e,t,n,r,i){return bo(),wo(i),t.flags|=256,Ss(e,t,n,r),t.child}var Ps,Vs,Hs,Rs,Os={dehydrated:null,treeContext:null,retryLane:0};function Ds(e){return{baseLanes:e,cachePool:null,transitions:null}}function Bs(e,t,r){var i,o=t.pendingProps,a=ia.current,s=!1,l=!!(128&t.flags);if((i=l)||(i=(null===e||null!==e.memoizedState)&&!!(2&a)),i?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),$i(ia,1&a),null===e)return po(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(t.lanes=1&t.mode?"$!"===e.data?8:1073741824:1,null):(l=o.children,e=o.fallback,s?(s=t.child,l={mode:"hidden",children:l},1&(o=t.mode)||null===s?s=Dc(l,o,0,null):(s.childLanes=0,s.pendingProps=l),e=Oc(e,o,r,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ds(r),t.memoizedState=Os,e):js(t,l));if(null!==(a=e.memoizedState)&&null!==(i=a.dehydrated))return function(e,t,r,i,o,a,s){if(r)return 256&t.flags?(t.flags&=-257,Fs(e,t,s,i=ps(Error(n(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(a=i.fallback,i=Dc({mode:"visible",children:i.children},o=t.mode,0,null),(a=Oc(a,o,s,null)).flags|=2,i.return=t,a.return=t,i.sibling=a,t.child=i,1&t.mode&&Co(t,e.child,null,s),t.child.memoizedState=Ds(s),t.memoizedState=Os,a);if(!(1&t.mode))return Fs(e,t,s,null);if("$!"===o.data){if(i=o.nextSibling&&o.nextSibling.dataset)var l=i.dgst;return i=l,Fs(e,t,s,i=ps(a=Error(n(419)),i,void 0))}if(l=!!(s&e.childLanes),xs||l){if(null!==(i=Al)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=o&(i.suspendedLanes|s)?0:o)&&o!==a.retryLane&&(a.retryLane=o,Oo(e,o),ac(i,e,o,-1))}return wc(),Fs(e,t,s,i=ps(Error(n(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Tc.bind(null,e),o._reactRetry=t,null):(e=a.treeContext,so=fi(o.nextSibling),ao=t,lo=!0,co=null,null!==e&&(Qi[Yi++]=eo,Qi[Yi++]=to,Qi[Yi++]=Ji,eo=e.id,to=e.overflow,Ji=t),(t=js(t,i.children)).flags|=4096,t)}(e,t,l,o,i,a,r);if(s){s=o.fallback,i=(a=e.child).sibling;var c={mode:"hidden",children:o.children};return 1&(l=t.mode)||t.child===a?(o=Hc(a,c)).subtreeFlags=14680064&a.subtreeFlags:((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null),null!==i?s=Hc(i,s):(s=Oc(s,l,r,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,l=null===(l=e.child.memoizedState)?Ds(r):{baseLanes:l.baseLanes|r,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~r,t.memoizedState=Os,o}return e=(s=e.child).sibling,o=Hc(s,{mode:"visible",children:o.children}),!(1&t.mode)&&(o.lanes=r),o.return=t,o.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=o,t.memoizedState=null,o}function js(e,t){return(t=Dc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Fs(e,t,n,r){return null!==r&&wo(r),Co(t,e.child,null,n),(e=js(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Us(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ao(e.return,t,n)}function qs(e,t,n,r,i){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i)}function Ws(e,t,n){var r=t.pendingProps,i=r.revealOrder,o=r.tail;if(Ss(e,t,r.children,n),2&(r=ia.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Us(e,n,t);else if(19===e.tag)Us(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if($i(ia,r),1&t.mode)switch(i){case"forwards":for(n=t.child,i=null;null!==n;)null!==(e=n.alternate)&&null===oa(e)&&(i=n),n=n.sibling;null===(n=i)?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),qs(t,!1,i,n,o);break;case"backwards":for(n=null,i=t.child,t.child=null;null!==i;){if(null!==(e=i.alternate)&&null===oa(e)){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}qs(t,!0,n,null,o);break;case"together":qs(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function Gs(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Zs(e,t,r){if(null!==e&&(t.dependencies=e.dependencies),Dl|=t.lanes,!(r&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(n(153));if(null!==t.child){for(r=Hc(e=t.child,e.pendingProps),t.child=r,r.return=t;null!==e.sibling;)(r=r.sibling=Hc(e=e.sibling,e.pendingProps)).return=t;r.sibling=null}return t.child}function Ks(e,t){if(!lo)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Xs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=14680064&i.subtreeFlags,r|=14680064&i.flags,i.return=e,i=i.sibling;else for(i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Qs(e,t,r){var o=t.pendingProps;switch(oo(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Xs(t),null;case 1:case 17:return Vi(t.type)&&Hi(),Xs(t),null;case 3:return o=t.stateNode,ta(),zi(Ai),zi(Ni),sa(),o.pendingContext&&(o.context=o.pendingContext,o.pendingContext=null),null!==e&&null!==e.child||(vo(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==co&&(dc(co),co=null))),Vs(e,t),Xs(t),null;case 5:ra(t);var a=Jo(Yo.current);if(r=t.type,null!==e&&null!=t.stateNode)Hs(e,t,r,o,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!o){if(null===t.stateNode)throw Error(n(166));return Xs(t),null}if(e=Jo(Xo.current),vo(t)){r=t.type;var s=t.memoizedProps;switch((o=t.stateNode)[vi]=t,o[mi]=s,e=!!(1&t.mode),r){case"dialog":Fr("cancel",o),Fr("close",o);break;case"iframe":case"object":case"embed":Fr("load",o);break;case"video":case"audio":for(a=0;a<Or.length;a++)Fr(Or[a],o);break;case"source":Fr("error",o);break;case"img":case"image":case"link":Fr("error",o),Fr("load",o);break;case"details":Fr("toggle",o);break;case"input":ee(o,s),Fr("invalid",o);break;case"select":o._wrapperState={wasMultiple:!!s.multiple},Fr("invalid",o);break;case"textarea":le(o,s),Fr("invalid",o)}for(var l in ke(r,s),a=null,s)if(s.hasOwnProperty(l)){var c=s[l];"children"===l?"string"==typeof c?o.textContent!==c&&(!0!==s.suppressHydrationWarning&&ni(o.textContent,c,e),a=["children",c]):"number"==typeof c&&o.textContent!==""+c&&(!0!==s.suppressHydrationWarning&&ni(o.textContent,c,e),a=["children",""+c]):i.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Fr("scroll",o)}switch(r){case"input":X(o),re(o,s,!0);break;case"textarea":X(o),de(o);break;case"select":case"option":break;default:"function"==typeof s.onClick&&(o.onclick=ri)}t.updateQueue=o=a,null!==o&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=ue(r)),"http://www.w3.org/1999/xhtml"===e?"script"===r?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof o.is?e=l.createElement(r,{is:o.is}):(e=l.createElement(r),"select"===r&&(l=e,o.multiple?l.multiple=!0:o.size&&(l.size=o.size))):e=l.createElementNS(e,r),e[vi]=t,e[mi]=o,Ps(e,t,!1,!1),t.stateNode=e;e:{switch(l=xe(r,o),r){case"dialog":Fr("cancel",e),Fr("close",e),a=o;break;case"iframe":case"object":case"embed":Fr("load",e),a=o;break;case"video":case"audio":for(a=0;a<Or.length;a++)Fr(Or[a],e);a=o;break;case"source":Fr("error",e),a=o;break;case"img":case"image":case"link":Fr("error",e),Fr("load",e),a=o;break;case"details":Fr("toggle",e),a=o;break;case"input":ee(e,o),a=J(e,o),Fr("invalid",e);break;case"option":default:a=o;break;case"select":e._wrapperState={wasMultiple:!!o.multiple},a=B({},o,{value:void 0}),Fr("invalid",e);break;case"textarea":le(e,o),a=se(e,o),Fr("invalid",e)}for(s in ke(r,a),c=a)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?ye(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===s?"string"==typeof d?("textarea"!==r||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(i.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Fr("scroll",e):null!=d&&x(e,s,d,l))}switch(r){case"input":X(e),re(e,o,!1);break;case"textarea":X(e),de(e);break;case"option":null!=o.value&&e.setAttribute("value",""+Z(o.value));break;case"select":e.multiple=!!o.multiple,null!=(s=o.value)?ae(e,!!o.multiple,s,!1):null!=o.defaultValue&&ae(e,!!o.multiple,o.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=ri)}switch(r){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}}o&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Xs(t),null;case 6:if(e&&null!=t.stateNode)Rs(e,t,e.memoizedProps,o);else{if("string"!=typeof o&&null===t.stateNode)throw Error(n(166));if(r=Jo(Yo.current),Jo(Xo.current),vo(t)){if(r=t.memoizedProps,(o=t.stateNode)[vi]=t,(s=o.nodeValue!==r)&&null!==(e=ao))switch(e.tag){case 3:ni(o.nodeValue,r,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&ni(o.nodeValue,r,!!(1&e.mode))}s&&(t.flags|=4)}else(o=(9===r.nodeType?r:r.ownerDocument).createTextNode(o))[vi]=t,t.stateNode=o}return Xs(t),null;case 13:if(zi(ia),o=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(lo&&null!==so&&1&t.mode&&!(128&t.flags))mo(),bo(),t.flags|=98560,s=!1;else if(s=vo(t),null!==o&&null!==o.dehydrated){if(null===e){if(!s)throw Error(n(318));if(!(s=null!==(s=t.memoizedState)?s.dehydrated:null))throw Error(n(317));s[vi]=t}else bo(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Xs(t),s=!1}else null!==co&&(dc(co),co=null),s=!0;if(!s)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=r,t):((o=null!==o)!=(null!==e&&null!==e.memoizedState)&&o&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ia.current?0===Rl&&(Rl=3):wc())),null!==t.updateQueue&&(t.flags|=4),Xs(t),null);case 4:return ta(),Vs(e,t),null===e&&Wr(t.stateNode.containerInfo),Xs(t),null;case 10:return No(t.type._context),Xs(t),null;case 19:if(zi(ia),null===(s=t.memoizedState))return Xs(t),null;if(o=!!(128&t.flags),null===(l=s.rendering))if(o)Ks(s,!1);else{if(0!==Rl||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(l=oa(e))){for(t.flags|=128,Ks(s,!1),null!==(o=l.updateQueue)&&(t.updateQueue=o,t.flags|=4),t.subtreeFlags=0,o=r,r=t.child;null!==r;)e=o,(s=r).flags&=14680066,null===(l=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=l.childLanes,s.lanes=l.lanes,s.child=l.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=l.memoizedProps,s.memoizedState=l.memoizedState,s.updateQueue=l.updateQueue,s.type=l.type,s.dependencies=null===(e=l.dependencies)?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return $i(ia,1&ia.current|2),t.child}e=e.sibling}null!==s.tail&&tt()>Wl&&(t.flags|=128,o=!0,Ks(s,!1),t.lanes=4194304)}else{if(!o)if(null!==(e=oa(l))){if(t.flags|=128,o=!0,null!==(r=e.updateQueue)&&(t.updateQueue=r,t.flags|=4),Ks(s,!0),null===s.tail&&"hidden"===s.tailMode&&!l.alternate&&!lo)return Xs(t),null}else 2*tt()-s.renderingStartTime>Wl&&1073741824!==r&&(t.flags|=128,o=!0,Ks(s,!1),t.lanes=4194304);s.isBackwards?(l.sibling=t.child,t.child=l):(null!==(r=s.last)?r.sibling=l:t.child=l,s.last=l)}return null!==s.tail?(s.rendering=t=s.tail,s.tail=t.sibling,s.renderingStartTime=tt(),t.sibling=null,r=ia.current,$i(ia,o?1&r|2:1&r),t):(Xs(t),null);case 22:case 23:return gc(),o=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==o&&(t.flags|=8192),o&&1&t.mode?!!(1073741824&Vl)&&(Xs(t),6&t.subtreeFlags&&(t.flags|=8192)):Xs(t),null;case 24:case 25:return null}throw Error(n(156,t.tag))}function Ys(e,t){switch(oo(t),t.tag){case 1:return Vi(t.type)&&Hi(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ta(),zi(Ai),zi(Ni),sa(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return ra(t),null;case 13:if(zi(ia),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(n(340));bo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return zi(ia),null;case 4:return ta(),null;case 10:return No(t.type._context),null;case 22:case 23:return gc(),null;default:return null}}Ps=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Vs=function(){},Hs=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Jo(Xo.current);var a,s=null;switch(n){case"input":o=J(e,o),r=J(e,r),s=[];break;case"select":o=B({},o,{value:void 0}),r=B({},r,{value:void 0}),s=[];break;case"textarea":o=se(e,o),r=se(e,r),s=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=ri)}for(d in ke(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var l=o[d];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(i.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var c=r[d];if(l=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==l&&(null!=c||null!=l))if("style"===d)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(s||(s=[]),s.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(l=l?l.__html:void 0,null!=(c=c?c.__html:void 0)&&l!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(i.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Fr("scroll",e),s||l===c||(s=[])):(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}},Rs=function(e,t,n,r){n!==r&&(t.flags|=4)};var Js=!1,el=!1,tl="function"==typeof WeakSet?WeakSet:Set,nl=null;function rl(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(n){Ec(e,t,n)}else n.current=null}function il(e,t,n){try{n()}catch(n){Ec(e,t,n)}}var ol=!1;function al(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var i=r=r.next;do{if((i.tag&e)===e){var o=i.destroy;i.destroy=void 0,void 0!==o&&il(t,n,o)}i=i.next}while(i!==r)}}function sl(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{(n.tag&e)===e&&(n.destroy=(0,n.create)()),n=n.next}while(n!==t)}}function ll(e){var t=e.ref;null!==t&&(e=e.stateNode,"function"==typeof t?t(e):t.current=e)}function cl(e){var t=e.alternate;null!==t&&(e.alternate=null,cl(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&null!==(t=e.stateNode)&&(delete t[vi],delete t[mi],delete t[wi],delete t[yi],delete t[_i]),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function dl(e){return 5===e.tag||3===e.tag||4===e.tag}function ul(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||dl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function hl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=ri));else if(4!==r&&null!==(e=e.child))for(hl(e,t,n),e=e.sibling;null!==e;)hl(e,t,n),e=e.sibling}function fl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(fl(e,t,n),e=e.sibling;null!==e;)fl(e,t,n),e=e.sibling}var pl=null,gl=!1;function vl(e,t,n){for(n=n.child;null!==n;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(ct&&"function"==typeof ct.onCommitFiberUnmount)try{ct.onCommitFiberUnmount(lt,n)}catch(e){}switch(n.tag){case 5:el||rl(n,t);case 6:var r=pl,i=gl;pl=null,vl(e,t,n),gl=i,null!==(pl=r)&&(gl?(n=n.stateNode,8===(e=pl).nodeType?e.parentNode.removeChild(n):e.removeChild(n)):pl.removeChild(n.stateNode));break;case 18:null!==pl&&(gl?(n=n.stateNode,8===(e=pl).nodeType?hi(e.parentNode,n):1===e.nodeType&&hi(e,n),Wt(e)):hi(pl,n.stateNode));break;case 4:r=pl,i=gl,pl=n.stateNode.containerInfo,gl=!0,vl(e,t,n),pl=r,gl=i;break;case 0:case 11:case 14:case 15:if(!el&&null!==(r=n.updateQueue)&&null!==(r=r.lastEffect)){i=r=r.next;do{var o=i,a=o.destroy;o=o.tag,void 0!==a&&(2&o||4&o)&&il(n,t,a),i=i.next}while(i!==r)}vl(e,t,n);break;case 1:if(!el&&(rl(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){Ec(n,t,e)}vl(e,t,n);break;case 21:vl(e,t,n);break;case 22:1&n.mode?(el=(r=el)||null!==n.memoizedState,vl(e,t,n),el=r):vl(e,t,n);break;default:vl(e,t,n)}}function bl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new tl),t.forEach((function(t){var r=Nc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function wl(e,t){var r=t.deletions;if(null!==r)for(var i=0;i<r.length;i++){var o=r[i];try{var a=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:pl=l.stateNode,gl=!1;break e;case 3:case 4:pl=l.stateNode.containerInfo,gl=!0;break e}l=l.return}if(null===pl)throw Error(n(160));ml(a,s,o),pl=null,gl=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(e){Ec(o,t,e)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)yl(t,e),t=t.sibling}function yl(e,t){var r=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(wl(t,e),_l(e),4&i){try{al(3,e,e.return),sl(3,e)}catch(t){Ec(e,e.return,t)}try{al(5,e,e.return)}catch(t){Ec(e,e.return,t)}}break;case 1:wl(t,e),_l(e),512&i&&null!==r&&rl(r,r.return);break;case 5:if(wl(t,e),_l(e),512&i&&null!==r&&rl(r,r.return),32&e.flags){var o=e.stateNode;try{ve(o,"")}catch(t){Ec(e,e.return,t)}}if(4&i&&null!=(o=e.stateNode)){var a=e.memoizedProps,s=null!==r?r.memoizedProps:a,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===a.type&&null!=a.name&&te(o,a),xe(l,s);var d=xe(l,a);for(s=0;s<c.length;s+=2){var u=c[s],h=c[s+1];"style"===u?ye(o,h):"dangerouslySetInnerHTML"===u?ge(o,h):"children"===u?ve(o,h):x(o,u,h,d)}switch(l){case"input":ne(o,a);break;case"textarea":ce(o,a);break;case"select":var f=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!a.multiple;var p=a.value;null!=p?ae(o,!!a.multiple,p,!1):f!==!!a.multiple&&(null!=a.defaultValue?ae(o,!!a.multiple,a.defaultValue,!0):ae(o,!!a.multiple,a.multiple?[]:"",!1))}o[mi]=a}catch(t){Ec(e,e.return,t)}}break;case 6:if(wl(t,e),_l(e),4&i){if(null===e.stateNode)throw Error(n(162));o=e.stateNode,a=e.memoizedProps;try{o.nodeValue=a}catch(t){Ec(e,e.return,t)}}break;case 3:if(wl(t,e),_l(e),4&i&&null!==r&&r.memoizedState.isDehydrated)try{Wt(t.containerInfo)}catch(t){Ec(e,e.return,t)}break;case 4:default:wl(t,e),_l(e);break;case 13:wl(t,e),_l(e),8192&(o=e.child).flags&&(o.stateNode.isHidden=a=null!==o.memoizedState,!a||null!==o.alternate&&null!==o.alternate.memoizedState||(ql=tt())),4&i&&bl(e);break;case 22:if(u=null!==r&&null!==r.memoizedState,1&e.mode?(el=(d=el)||u,wl(t,e),el=d):wl(t,e),_l(e),8192&i){if((e.stateNode.isHidden=d=null!==e.memoizedState)&&!u&&1&e.mode)for(nl=e,u=e.child;null!==u;){for(h=nl=u;null!==nl;){switch(p=(f=nl).child,f.tag){case 0:case 11:case 14:case 15:al(4,f,f.return);break;case 1:rl(f,f.return);var g=f.stateNode;if("function"==typeof g.componentWillUnmount){i=f,r=f.return;try{g.props=(t=i).memoizedProps,g.state=t.memoizedState,g.componentWillUnmount()}catch(e){Ec(i,r,e)}}break;case 5:rl(f,f.return);break;case 22:if(null!==f.memoizedState){Cl(h);continue}}null!==p?(p.return=f,nl=p):Cl(h)}u=u.sibling}e:for(u=null,h=e;;){if(5===h.tag){if(null===u){u=h;try{o=h.stateNode,d?"function"==typeof(a=o.style).setProperty?a.setProperty("display","none","important"):a.display="none":(l=h.stateNode,s=null!=(c=h.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=we("display",s))}catch(t){Ec(e,e.return,t)}}}else if(6===h.tag){if(null===u)try{h.stateNode.nodeValue=d?"":h.memoizedProps}catch(t){Ec(e,e.return,t)}}else if((22!==h.tag&&23!==h.tag||null===h.memoizedState||h===e)&&null!==h.child){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;null===h.sibling;){if(null===h.return||h.return===e)break e;u===h&&(u=null),h=h.return}u===h&&(u=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:wl(t,e),_l(e),4&i&&bl(e);case 21:}}function _l(e){var t=e.flags;if(2&t){try{e:{for(var r=e.return;null!==r;){if(dl(r)){var i=r;break e}r=r.return}throw Error(n(160))}switch(i.tag){case 5:var o=i.stateNode;32&i.flags&&(ve(o,""),i.flags&=-33),fl(e,ul(e),o);break;case 3:case 4:var a=i.stateNode.containerInfo;hl(e,ul(e),a);break;default:throw Error(n(161))}}catch(t){Ec(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function kl(e){nl=e,xl(e)}function xl(e){for(var t=!!(1&e.mode);null!==nl;){var n=nl,r=n.child;if(22===n.tag&&t){var i=null!==n.memoizedState||Js;if(!i){var o=n.alternate,a=null!==o&&null!==o.memoizedState||el;o=Js;var s=el;if(Js=i,(el=a)&&!s)for(nl=n;null!==nl;)a=(i=nl).child,22===i.tag&&null!==i.memoizedState?Ll(n):null!==a?(a.return=i,nl=a):Ll(n);for(;null!==r;)nl=r,xl(r),r=r.sibling;nl=n,Js=o,el=s}Sl(e)}else 8772&n.subtreeFlags&&null!==r?(r.return=n,nl=r):Sl(e)}}function Sl(e){for(;null!==nl;){var t=nl;if(8772&t.flags){var r=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:el||sl(5,t);break;case 1:var i=t.stateNode;if(4&t.flags&&!el)if(null===r)i.componentDidMount();else{var o=t.elementType===t.type?r.memoizedProps:as(t.type,r.memoizedProps);i.componentDidUpdate(o,r.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}var a=t.updateQueue;null!==a&&Zo(t,a,i);break;case 3:var s=t.updateQueue;if(null!==s){if(r=null,null!==t.child)switch(t.child.tag){case 5:case 1:r=t.child.stateNode}Zo(t,s,r)}break;case 5:if(null===r&&4&t.flags){r=t.stateNode;var l=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&r.focus();break;case"img":l.src&&(r.src=l.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var u=d.dehydrated;null!==u&&Wt(u)}}}break;default:throw Error(n(163))}el||512&t.flags&&ll(t)}catch(e){Ec(t,t.return,e)}}if(t===e){nl=null;break}if(null!==(r=t.sibling)){r.return=t.return,nl=r;break}nl=t.return}}function Cl(e){for(;null!==nl;){var t=nl;if(t===e){nl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,nl=n;break}nl=t.return}}function Ll(e){for(;null!==nl;){var t=nl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{sl(4,t)}catch(e){Ec(t,n,e)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var i=t.return;try{r.componentDidMount()}catch(e){Ec(t,i,e)}}var o=t.return;try{ll(t)}catch(e){Ec(t,o,e)}break;case 5:var a=t.return;try{ll(t)}catch(e){Ec(t,a,e)}}}catch(e){Ec(t,t.return,e)}if(t===e){nl=null;break}var s=t.sibling;if(null!==s){s.return=t.return,nl=s;break}nl=t.return}}var Ml,El=Math.ceil,zl=S.ReactCurrentDispatcher,$l=S.ReactCurrentOwner,Tl=S.ReactCurrentBatchConfig,Nl=0,Al=null,Il=null,Pl=0,Vl=0,Hl=Ei(0),Rl=0,Ol=null,Dl=0,Bl=0,jl=0,Fl=null,Ul=null,ql=0,Wl=1/0,Gl=null,Zl=!1,Kl=null,Xl=null,Ql=!1,Yl=null,Jl=0,ec=0,tc=null,nc=-1,rc=0;function ic(){return 6&Nl?tt():-1!==nc?nc:nc=tt()}function oc(e){return 1&e.mode?2&Nl&&0!==Pl?Pl&-Pl:null!==yo.transition?(0===rc&&(rc=wt()),rc):0!==(e=xt)?e:e=void 0===(e=window.event)?16:en(e.type):1}function ac(e,t,r,i){if(50<ec)throw ec=0,tc=null,Error(n(185));_t(e,r,i),2&Nl&&e===Al||(e===Al&&(!(2&Nl)&&(Bl|=r),4===Rl&&uc(e,Pl)),sc(e,i),1===r&&0===Nl&&!(1&t.mode)&&(Wl=tt()+500,Fi&&Wi()))}function sc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,o=e.pendingLanes;0<o;){var a=31-dt(o),s=1<<a,l=i[a];-1===l?s&n&&!(s&r)||(i[a]=mt(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}(e,t);var r=vt(e,e===Al?Pl:0);if(0===r)null!==n&&Ye(n),e.callbackNode=null,e.callbackPriority=0;else if(e.callbackPriority!==(t=r&-r)){if(null!=n&&Ye(n),1===t)0===e.tag?function(e){Fi=!0,qi(e)}(hc.bind(null,e)):qi(hc.bind(null,e)),di((function(){!(6&Nl)&&Wi()})),n=null;else{switch(St(r)){case 1:n=rt;break;case 4:n=it;break;case 16:default:n=ot;break;case 536870912:n=st}n=Ac(n,lc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function lc(e,t){if(nc=-1,rc=0,6&Nl)throw Error(n(327));var r=e.callbackNode;if(Lc()&&e.callbackNode!==r)return null;var i=vt(e,e===Al?Pl:0);if(0===i)return null;if(30&i||i&e.expiredLanes||t)t=yc(e,i);else{t=i;var o=Nl;Nl|=2;var a=bc();for(Al===e&&Pl===t||(Gl=null,Wl=tt()+500,vc(e,t));;)try{kc();break}catch(t){mc(e,t)}To(),zl.current=a,Nl=o,null!==Il?t=0:(Al=null,Pl=0,t=Rl)}if(0!==t){if(2===t&&0!==(o=bt(e))&&(i=o,t=cc(e,o)),1===t)throw r=Ol,vc(e,0),uc(e,i),sc(e,tt()),r;if(6===t)uc(e,i);else{if(o=e.current.alternate,!(30&i||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var i=n[r],o=i.getSnapshot;i=i.value;try{if(!ur(o(),i))return!1}catch(e){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)||(t=yc(e,i),2===t&&(a=bt(e),0!==a&&(i=a,t=cc(e,a))),1!==t)))throw r=Ol,vc(e,0),uc(e,i),sc(e,tt()),r;switch(e.finishedWork=o,e.finishedLanes=i,t){case 0:case 1:throw Error(n(345));case 2:case 5:Cc(e,Ul,Gl);break;case 3:if(uc(e,i),(130023424&i)===i&&10<(t=ql+500-tt())){if(0!==vt(e,0))break;if(((o=e.suspendedLanes)&i)!==i){ic(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=si(Cc.bind(null,e,Ul,Gl),t);break}Cc(e,Ul,Gl);break;case 4:if(uc(e,i),(4194240&i)===i)break;for(t=e.eventTimes,o=-1;0<i;){var s=31-dt(i);a=1<<s,(s=t[s])>o&&(o=s),i&=~a}if(i=o,10<(i=(120>(i=tt()-i)?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*El(i/1960))-i)){e.timeoutHandle=si(Cc.bind(null,e,Ul,Gl),i);break}Cc(e,Ul,Gl);break;default:throw Error(n(329))}}}return sc(e,tt()),e.callbackNode===r?lc.bind(null,e):null}function cc(e,t){var n=Fl;return e.current.memoizedState.isDehydrated&&(vc(e,t).flags|=256),2!==(e=yc(e,t))&&(t=Ul,Ul=n,null!==t&&dc(t)),e}function dc(e){null===Ul?Ul=e:Ul.push.apply(Ul,e)}function uc(e,t){for(t&=~jl,e.suspendedLanes|=t&=~Bl,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-dt(t),r=1<<n;e[n]=-1,t&=~r}}function hc(e){if(6&Nl)throw Error(n(327));Lc();var t=vt(e,0);if(!(1&t))return sc(e,tt()),null;var r=yc(e,t);if(0!==e.tag&&2===r){var i=bt(e);0!==i&&(t=i,r=cc(e,i))}if(1===r)throw r=Ol,vc(e,0),uc(e,t),sc(e,tt()),r;if(6===r)throw Error(n(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Cc(e,Ul,Gl),sc(e,tt()),null}function fc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(Wl=tt()+500,Fi&&Wi())}}function pc(e){null!==Yl&&0===Yl.tag&&!(6&Nl)&&Lc();var t=Nl;Nl|=1;var n=Tl.transition,r=xt;try{if(Tl.transition=null,xt=1,e)return e()}finally{xt=r,Tl.transition=n,!(6&(Nl=t))&&Wi()}}function gc(){Vl=Hl.current,zi(Hl)}function vc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,li(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(oo(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Hi();break;case 3:ta(),zi(Ai),zi(Ni),sa();break;case 5:ra(r);break;case 4:ta();break;case 13:case 19:zi(ia);break;case 10:No(r.type._context);break;case 22:case 23:gc()}n=n.return}if(Al=e,Il=e=Hc(e.current,null),Pl=Vl=t,Rl=0,Ol=null,jl=Bl=Dl=0,Ul=Fl=null,null!==Vo){for(t=0;t<Vo.length;t++)if(null!==(r=(n=Vo[t]).interleaved)){n.interleaved=null;var i=n.pending;if(null!==i){var o=i.next;i.next=r.next,r.next=o}n.pending=r}Vo=null}return e}function mc(e,t){for(;;){var r=Il;try{if(To(),la.current=ns,pa){for(var i=ua.memoizedState;null!==i;){var o=i.queue;null!==o&&(o.pending=null),i=i.next}pa=!1}if(da=0,fa=ha=ua=null,ga=!1,va=0,$l.current=null,null===r||null===r.return){Rl=1,Ol=t,Il=null;break}e:{var a=e,s=r.return,l=r,c=t;if(t=Pl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var d=c,u=l,h=u.tag;if(!(1&u.mode||0!==h&&11!==h&&15!==h)){var f=u.alternate;f?(u.updateQueue=f.updateQueue,u.memoizedState=f.memoizedState,u.lanes=f.lanes):(u.updateQueue=null,u.memoizedState=null)}var p=ys(s);if(null!==p){p.flags&=-257,_s(p,s,l,0,t),1&p.mode&&ws(a,d,t),c=d;var g=(t=p).updateQueue;if(null===g){var v=new Set;v.add(c),t.updateQueue=v}else g.add(c);break e}if(!(1&t)){ws(a,d,t),wc();break e}c=Error(n(426))}else if(lo&&1&l.mode){var m=ys(s);if(null!==m){!(65536&m.flags)&&(m.flags|=256),_s(m,s,l,0,t),wo(fs(c,l));break e}}a=c=fs(c,l),4!==Rl&&(Rl=2),null===Fl?Fl=[a]:Fl.push(a),a=s;do{switch(a.tag){case 3:a.flags|=65536,a.lanes|=t&=-t,Wo(a,ms(0,c,t));break e;case 1:l=c;var b=a.stateNode;if(!(128&a.flags||"function"!=typeof a.type.getDerivedStateFromError&&(null===b||"function"!=typeof b.componentDidCatch||null!==Xl&&Xl.has(b)))){a.flags|=65536,a.lanes|=t&=-t,Wo(a,bs(a,l,t));break e}}a=a.return}while(null!==a)}Sc(r)}catch(e){t=e,Il===r&&null!==r&&(Il=r=r.return);continue}break}}function bc(){var e=zl.current;return zl.current=ns,null===e?ns:e}function wc(){0!==Rl&&3!==Rl&&2!==Rl||(Rl=4),null===Al||!(268435455&Dl)&&!(268435455&Bl)||uc(Al,Pl)}function yc(e,t){var r=Nl;Nl|=2;var i=bc();for(Al===e&&Pl===t||(Gl=null,vc(e,t));;)try{_c();break}catch(t){mc(e,t)}if(To(),Nl=r,zl.current=i,null!==Il)throw Error(n(261));return Al=null,Pl=0,Rl}function _c(){for(;null!==Il;)xc(Il)}function kc(){for(;null!==Il&&!Je();)xc(Il)}function xc(e){var t=Ml(e.alternate,e,Vl);e.memoizedProps=e.pendingProps,null===t?Sc(e):Il=t,$l.current=null}function Sc(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ys(n,t)))return n.flags&=32767,void(Il=n);if(null===e)return Rl=6,void(Il=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Qs(n,t,Vl)))return void(Il=n);if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===Rl&&(Rl=5)}function Cc(e,t,r){var i=xt,o=Tl.transition;try{Tl.transition=null,xt=1,function(e,t,r,i){do{Lc()}while(null!==Yl);if(6&Nl)throw Error(n(327));var o=e.finishedLanes;if(null===(r=e.finishedWork))return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(n(177));e.callbackNode=null,e.callbackPriority=0;var a=r.lanes|r.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var i=31-dt(n),o=1<<i;t[i]=0,r[i]=-1,e[i]=-1,n&=~o}}(e,a),e===Al&&(Il=Al=null,Pl=0),!(2064&r.subtreeFlags)&&!(2064&r.flags)||Ql||(Ql=!0,Ac(ot,(function(){return Lc(),null}))),a=!!(15990&r.flags),15990&r.subtreeFlags||a){a=Tl.transition,Tl.transition=null;var s=xt;xt=1;var l=Nl;Nl|=4,$l.current=null,function(e,t){if(ii=Zt,mr(e=vr())){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else{var i=(r=(r=e.ownerDocument)&&r.defaultView||window).getSelection&&r.getSelection();if(i&&0!==i.rangeCount){r=i.anchorNode;var o=i.anchorOffset,a=i.focusNode;i=i.focusOffset;var s=0,l=-1,c=-1,d=0,u=0,h=e,f=null;e:for(;;){for(var p;h!==r||0!==o&&3!==h.nodeType||(l=s+o),h!==a||0!==i&&3!==h.nodeType||(c=s+i),3===h.nodeType&&(s+=h.nodeValue.length),null!==(p=h.firstChild);)f=h,h=p;for(;;){if(h===e)break e;if(f===r&&++d===o&&(l=s),f===a&&++u===i&&(c=s),null!==(p=h.nextSibling))break;f=(h=f).parentNode}h=p}r=-1===l||-1===c?null:{start:l,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(oi={focusedElem:e,selectionRange:r},Zt=!1,nl=t;null!==nl;)if(e=(t=nl).child,1028&t.subtreeFlags&&null!==e)e.return=t,nl=e;else for(;null!==nl;){t=nl;try{var g=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==g){var v=g.memoizedProps,m=g.memoizedState,b=t.stateNode,w=b.getSnapshotBeforeUpdate(t.elementType===t.type?v:as(t.type,v),m);b.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var y=t.stateNode.containerInfo;1===y.nodeType?y.textContent="":9===y.nodeType&&y.documentElement&&y.removeChild(y.documentElement);break;default:throw Error(n(163))}}catch(e){Ec(t,t.return,e)}if(null!==(e=t.sibling)){e.return=t.return,nl=e;break}nl=t.return}g=ol,ol=!1}(e,r),yl(r,e),br(oi),Zt=!!ii,oi=ii=null,e.current=r,kl(r),et(),Nl=l,xt=s,Tl.transition=a}else e.current=r;if(Ql&&(Ql=!1,Yl=e,Jl=o),0===(a=e.pendingLanes)&&(Xl=null),function(e){if(ct&&"function"==typeof ct.onCommitFiberRoot)try{ct.onCommitFiberRoot(lt,e,void 0,!(128&~e.current.flags))}catch(e){}}(r.stateNode),sc(e,tt()),null!==t)for(i=e.onRecoverableError,r=0;r<t.length;r++)i((o=t[r]).value,{componentStack:o.stack,digest:o.digest});if(Zl)throw Zl=!1,e=Kl,Kl=null,e;!!(1&Jl)&&0!==e.tag&&Lc(),1&(a=e.pendingLanes)?e===tc?ec++:(ec=0,tc=e):ec=0,Wi()}(e,t,r,i)}finally{Tl.transition=o,xt=i}return null}function Lc(){if(null!==Yl){var e=St(Jl),t=Tl.transition,r=xt;try{if(Tl.transition=null,xt=16>e?16:e,null===Yl)var i=!1;else{if(e=Yl,Yl=null,Jl=0,6&Nl)throw Error(n(331));var o=Nl;for(Nl|=4,nl=e.current;null!==nl;){var a=nl,s=a.child;if(16&nl.flags){var l=a.deletions;if(null!==l){for(var c=0;c<l.length;c++){var d=l[c];for(nl=d;null!==nl;){var u=nl;switch(u.tag){case 0:case 11:case 15:al(8,u,a)}var h=u.child;if(null!==h)h.return=u,nl=h;else for(;null!==nl;){var f=(u=nl).sibling,p=u.return;if(cl(u),u===d){nl=null;break}if(null!==f){f.return=p,nl=f;break}nl=p}}}var g=a.alternate;if(null!==g){var v=g.child;if(null!==v){g.child=null;do{var m=v.sibling;v.sibling=null,v=m}while(null!==v)}}nl=a}}if(2064&a.subtreeFlags&&null!==s)s.return=a,nl=s;else e:for(;null!==nl;){if(2048&(a=nl).flags)switch(a.tag){case 0:case 11:case 15:al(9,a,a.return)}var b=a.sibling;if(null!==b){b.return=a.return,nl=b;break e}nl=a.return}}var w=e.current;for(nl=w;null!==nl;){var y=(s=nl).child;if(2064&s.subtreeFlags&&null!==y)y.return=s,nl=y;else e:for(s=w;null!==nl;){if(2048&(l=nl).flags)try{switch(l.tag){case 0:case 11:case 15:sl(9,l)}}catch(e){Ec(l,l.return,e)}if(l===s){nl=null;break e}var _=l.sibling;if(null!==_){_.return=l.return,nl=_;break e}nl=l.return}}if(Nl=o,Wi(),ct&&"function"==typeof ct.onPostCommitFiberRoot)try{ct.onPostCommitFiberRoot(lt,e)}catch(e){}i=!0}return i}finally{xt=r,Tl.transition=t}}return!1}function Mc(e,t,n){e=Uo(e,t=ms(0,t=fs(n,t),1),1),t=ic(),null!==e&&(_t(e,1,t),sc(e,t))}function Ec(e,t,n){if(3===e.tag)Mc(e,e,n);else for(;null!==t;){if(3===t.tag){Mc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){t=Uo(t,e=bs(t,e=fs(n,e),1),1),e=ic(),null!==t&&(_t(t,1,e),sc(t,e));break}}t=t.return}}function zc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ic(),e.pingedLanes|=e.suspendedLanes&n,Al===e&&(Pl&n)===n&&(4===Rl||3===Rl&&(130023424&Pl)===Pl&&500>tt()-ql?vc(e,0):jl|=n),sc(e,t)}function $c(e,t){0===t&&(1&e.mode?(t=pt,!(130023424&(pt<<=1))&&(pt=4194304)):t=1);var n=ic();null!==(e=Oo(e,t))&&(_t(e,t,n),sc(e,n))}function Tc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),$c(e,n)}function Nc(e,t){var r=0;switch(e.tag){case 13:var i=e.stateNode,o=e.memoizedState;null!==o&&(r=o.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(n(314))}null!==i&&i.delete(t),$c(e,r)}function Ac(e,t){return Qe(e,t)}function Ic(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pc(e,t,n,r){return new Ic(e,t,n,r)}function Vc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Hc(e,t){var n=e.alternate;return null===n?((n=Pc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.dependencies=null===(t=e.dependencies)?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Rc(e,t,r,i,o,a){var s=2;if(i=e,"function"==typeof e)Vc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case M:return Oc(r.children,o,a,t);case E:s=8,o|=8;break;case z:return(e=Pc(12,r,t,2|o)).elementType=z,e.lanes=a,e;case A:return(e=Pc(13,r,t,o)).elementType=A,e.lanes=a,e;case I:return(e=Pc(19,r,t,o)).elementType=I,e.lanes=a,e;case H:return Dc(r,o,a,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case $:s=10;break e;case T:s=9;break e;case N:s=11;break e;case P:s=14;break e;case V:s=16,i=null;break e}throw Error(n(130,null==e?e:typeof e,""))}return(t=Pc(s,r,t,o)).elementType=e,t.type=i,t.lanes=a,t}function Oc(e,t,n,r){return(e=Pc(7,e,r,t)).lanes=n,e}function Dc(e,t,n,r){return(e=Pc(22,e,r,t)).elementType=H,e.lanes=n,e.stateNode={isHidden:!1},e}function Bc(e,t,n){return(e=Pc(6,e,null,t)).lanes=n,e}function jc(e,t,n){return(t=Pc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Fc(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=yt(0),this.expirationTimes=yt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yt(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Uc(e,t,n,r,i,o,a,s,l){return e=new Fc(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Pc(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Bo(o),e}function qc(e){if(!e)return Ti;e:{if(We(e=e._reactInternals)!==e||1!==e.tag)throw Error(n(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Vi(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(n(171))}if(1===e.tag){var r=e.type;if(Vi(r))return Oi(e,r,t)}return t}function Wc(e,t,n,r,i,o,a,s,l){return(e=Uc(n,r,!0,e,0,o,0,s,l)).context=qc(null),n=e.current,(o=Fo(r=ic(),i=oc(n))).callback=null!=t?t:null,Uo(n,o,i),e.current.lanes=i,_t(e,i,r),sc(e,r),e}function Gc(e,t,n,r){var i=t.current,o=ic(),a=oc(i);return n=qc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Fo(o,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Uo(i,t,a))&&(ac(e,i,a,o),qo(e,i,a)),a}function Zc(e){return(e=e.current).child?e.child.stateNode:null}function Kc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Xc(e,t){Kc(e,t),(e=e.alternate)&&Kc(e,t)}Ml=function(e,t,r){if(null!==e)if(e.memoizedProps!==t.pendingProps||Ai.current)xs=!0;else{if(!(e.lanes&r||128&t.flags))return xs=!1,function(e,t,n){switch(t.tag){case 3:As(t),bo();break;case 5:na(t);break;case 1:Vi(t.type)&&Di(t);break;case 4:ea(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;$i(Mo,r._currentValue),r._currentValue=i;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?($i(ia,1&ia.current),t.flags|=128,null):n&t.child.childLanes?Bs(e,t,n):($i(ia,1&ia.current),null!==(e=Zs(e,t,n))?e.sibling:null);$i(ia,1&ia.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return Ws(e,t,n);t.flags|=128}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null,i.lastEffect=null),$i(ia,ia.current),r)break;return null;case 22:case 23:return t.lanes=0,Es(e,t,n)}return Zs(e,t,n)}(e,t,r);xs=!!(131072&e.flags)}else xs=!1,lo&&1048576&t.flags&&ro(t,Xi,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;Gs(e,t),e=t.pendingProps;var o=Pi(t,Ni.current);Io(t,r),o=ya(null,t,i,e,o,r);var a=_a();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Vi(i)?(a=!0,Di(t)):a=!1,t.memoizedState=null!=o.state?o.state:null,Bo(t),o.updater=ls,t.stateNode=o,o._reactInternals=t,hs(t,i,e,r),t=Ns(null,t,i,!0,a,r)):(t.tag=0,lo&&a&&io(t),Ss(null,t,o,r),t=t.child),t;case 16:i=t.elementType;e:{switch(Gs(e,t),e=t.pendingProps,i=(o=i._init)(i._payload),t.type=i,o=t.tag=function(e){if("function"==typeof e)return Vc(e)?1:0;if(null!=e){if((e=e.$$typeof)===N)return 11;if(e===P)return 14}return 2}(i),e=as(i,e),o){case 0:t=$s(null,t,i,e,r);break e;case 1:t=Ts(null,t,i,e,r);break e;case 11:t=Cs(null,t,i,e,r);break e;case 14:t=Ls(null,t,i,as(i.type,e),r);break e}throw Error(n(306,i,""))}return t;case 0:return o=t.pendingProps,$s(e,t,i=t.type,o=t.elementType===i?o:as(i,o),r);case 1:return o=t.pendingProps,Ts(e,t,i=t.type,o=t.elementType===i?o:as(i,o),r);case 3:e:{if(As(t),null===e)throw Error(n(387));i=t.pendingProps,o=(a=t.memoizedState).element,jo(e,t),Go(t,i,null,r);var s=t.memoizedState;if(i=s.element,a.isDehydrated){if(t.updateQueue.baseState=a={element:i,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.memoizedState=a,256&t.flags){t=Is(e,t,i,r,o=fs(Error(n(423)),t));break e}if(i!==o){t=Is(e,t,i,r,o=fs(Error(n(424)),t));break e}for(so=fi(t.stateNode.containerInfo.firstChild),ao=t,lo=!0,co=null,r=Lo(t,null,i,r),t.child=r;r;)r.flags=-3&r.flags|4096,r=r.sibling}else{if(bo(),i===o){t=Zs(e,t,r);break e}Ss(e,t,i,r)}t=t.child}return t;case 5:return na(t),null===e&&po(t),a=null!==e?e.memoizedProps:null,s=(o=t.pendingProps).children,ai(i=t.type,o)?s=null:null!==a&&ai(i,a)&&(t.flags|=32),zs(e,t),Ss(e,t,s,r),t.child;case 6:return null===e&&po(t),null;case 13:return Bs(e,t,r);case 4:return ea(t,t.stateNode.containerInfo),i=t.pendingProps,null===e?t.child=Co(t,null,i,r):Ss(e,t,i,r),t.child;case 11:return o=t.pendingProps,Cs(e,t,i=t.type,o=t.elementType===i?o:as(i,o),r);case 7:return Ss(e,t,t.pendingProps,r),t.child;case 8:case 12:return Ss(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(a=t.memoizedProps,s=(o=t.pendingProps).value,$i(Mo,(i=t.type._context)._currentValue),i._currentValue=s,null!==a)if(ur(a.value,s)){if(a.children===o.children&&!Ai.current){t=Zs(e,t,r);break e}}else for(null!==(a=t.child)&&(a.return=t);null!==a;){var l=a.dependencies;if(null!==l){s=a.child;for(var c=l.firstContext;null!==c;){if(c.context===i){if(1===a.tag){(c=Fo(-1,r&-r)).tag=2;var d=a.updateQueue;if(null!==d){var u=(d=d.shared).pending;null===u?c.next=c:(c.next=u.next,u.next=c),d.pending=c}}a.lanes|=r,null!==(c=a.alternate)&&(c.lanes|=r),Ao(a.return,r,t),l.lanes|=r;break}c=c.next}}else if(10===a.tag)s=a.type===t.type?null:a.child;else if(18===a.tag){if(null===(s=a.return))throw Error(n(341));s.lanes|=r,null!==(l=s.alternate)&&(l.lanes|=r),Ao(s,r,t),s=a.sibling}else s=a.child;if(null!==s)s.return=a;else for(s=a;null!==s;){if(s===t){s=null;break}if(null!==(a=s.sibling)){a.return=s.return,s=a;break}s=s.return}a=s}Ss(e,t,o.children,r),t=t.child}return t;case 9:return o=t.type,i=t.pendingProps.children,Io(t,r),i=i(o=Po(o)),t.flags|=1,Ss(e,t,i,r),t.child;case 14:return o=as(i=t.type,t.pendingProps),Ls(e,t,i,o=as(i.type,o),r);case 15:return Ms(e,t,t.type,t.pendingProps,r);case 17:return o=t.pendingProps,o=t.elementType===(i=t.type)?o:as(i,o),Gs(e,t),t.tag=1,Vi(i)?(e=!0,Di(t)):e=!1,Io(t,r),ds(t,i,o),hs(t,i,o,r),Ns(null,t,i,!0,e,r);case 19:return Ws(e,t,r);case 22:return Es(e,t,r)}throw Error(n(156,t.tag))};var Qc="function"==typeof reportError?reportError:function(e){console.error(e)};function Yc(e){this._internalRoot=e}function Jc(e){this._internalRoot=e}function ed(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function td(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function nd(){}function rd(e,t,n,r,i){var o=n._reactRootContainer;if(o){var a=o;if("function"==typeof i){var s=i;i=function(){var e=Zc(a);s.call(e)}}Gc(t,a,e,i)}else a=function(e,t,n,r,i){if(i){if("function"==typeof r){var o=r;r=function(){var e=Zc(a);o.call(e)}}var a=Wc(t,r,e,0,null,!1,0,"",nd);return e._reactRootContainer=a,e[bi]=a.current,Wr(8===e.nodeType?e.parentNode:e),pc(),a}for(;i=e.lastChild;)e.removeChild(i);if("function"==typeof r){var s=r;r=function(){var e=Zc(l);s.call(e)}}var l=Uc(e,0,!1,null,0,!1,0,"",nd);return e._reactRootContainer=l,e[bi]=l.current,Wr(8===e.nodeType?e.parentNode:e),pc((function(){Gc(t,l,n,r)})),l}(n,t,e,i,r);return Zc(a)}Jc.prototype.render=Yc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(n(409));Gc(e,t,null,null)},Jc.prototype.unmount=Yc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;pc((function(){Gc(null,e,null,null)})),t[bi]=null}},Jc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ht.length&&0!==t&&t<Ht[n].priority;n++);Ht.splice(n,0,e),0===n&&Bt(e)}},Ct=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=gt(t.pendingLanes);0!==n&&(kt(t,1|n),sc(t,tt()),!(6&Nl)&&(Wl=tt()+500,Wi()))}break;case 13:pc((function(){var t=Oo(e,1);if(null!==t){var n=ic();ac(t,e,1,n)}})),Xc(e,1)}},Lt=function(e){if(13===e.tag){var t=Oo(e,134217728);null!==t&&ac(t,e,134217728,ic()),Xc(e,134217728)}},Mt=function(e){if(13===e.tag){var t=oc(e),n=Oo(e,t);null!==n&&ac(n,e,t,ic()),Xc(e,t)}},Et=function(){return xt},zt=function(e,t){var n=xt;try{return xt=e,t()}finally{xt=n}},Le=function(e,t,r){switch(t){case"input":if(ne(e,r),t=r.name,"radio"===r.type&&null!=t){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<r.length;t++){var i=r[t];if(i!==e&&i.form===e.form){var o=Ci(i);if(!o)throw Error(n(90));Q(i),ne(i,o)}}}break;case"textarea":ce(e,r);break;case"select":null!=(t=r.value)&&ae(e,!!r.multiple,t,!1)}},Ne=fc,Ae=pc;var id={usingClientEntryPoint:!1,Events:[xi,Si,Ci,$e,Te,fc]},od={findFiberByHostInstance:ki,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},ad={bundleType:od.bundleType,version:od.version,rendererPackageName:od.rendererPackageName,rendererConfig:od.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:S.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ke(e))?null:e.stateNode},findFiberByHostInstance:od.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var sd=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!sd.isDisabled&&sd.supportsFiber)try{lt=sd.inject(ad),ct=sd}catch(pe){}}return y.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=id,y.createPortal=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ed(t))throw Error(n(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:L,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,r)},y.createRoot=function(e,t){if(!ed(e))throw Error(n(299));var r=!1,i="",o=Qc;return null!=t&&(!0===t.unstable_strictMode&&(r=!0),void 0!==t.identifierPrefix&&(i=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=Uc(e,1,!1,null,0,r,0,i,o),e[bi]=t.current,Wr(8===e.nodeType?e.parentNode:e),new Yc(t)},y.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(n(188));throw e=Object.keys(e).join(","),Error(n(268,e))}return null===(e=Ke(t))?null:e.stateNode},y.flushSync=function(e){return pc(e)},y.hydrate=function(e,t,r){if(!td(t))throw Error(n(200));return rd(null,e,t,!0,r)},y.hydrateRoot=function(e,t,r){if(!ed(e))throw Error(n(405));var i=null!=r&&r.hydratedSources||null,o=!1,a="",s=Qc;if(null!=r&&(!0===r.unstable_strictMode&&(o=!0),void 0!==r.identifierPrefix&&(a=r.identifierPrefix),void 0!==r.onRecoverableError&&(s=r.onRecoverableError)),t=Wc(t,null,e,1,null!=r?r:null,o,0,a,s),e[bi]=t.current,Wr(e),i)for(e=0;e<i.length;e++)o=(o=(r=i[e])._getVersion)(r._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[r,o]:t.mutableSourceEagerHydrationData.push(r,o);return new Jc(t)},y.render=function(e,t,r){if(!td(t))throw Error(n(200));return rd(null,e,t,!1,r)},y.unmountComponentAtNode=function(e){if(!td(e))throw Error(n(40));return!!e._reactRootContainer&&(pc((function(){rd(null,null,e,!1,(function(){e._reactRootContainer=null,e[bi]=null}))})),!0)},y.unstable_batchedUpdates=fc,y.unstable_renderSubtreeIntoContainer=function(e,t,r,i){if(!td(r))throw Error(n(200));if(null==e||void 0===e._reactInternals)throw Error(n(38));return rd(e,t,r,!1,i)},y.version="18.3.1-next-f1338f8080-20240426",y}function S(){return g||(g=1,function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),w.exports=x()),w.exports}var C,L,M=function(){if(v)return b;v=1;var e=S();return b.createRoot=e.createRoot,b.hydrateRoot=e.hydrateRoot,b}(),E=Object.create,z=Object.defineProperty,$=Object.getOwnPropertyDescriptor,T=Object.getOwnPropertyNames,N=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty,I=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),P=(e,t,n)=>(n=null!=e?E(N(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var i,o=T(t),a=0,s=o.length;a<s;a++)A.call(e,i=o[a])||undefined===i||z(e,i,{get:(e=>t[e]).bind(null,i),enumerable:!(r=$(t,i))||r.enumerable});return e})(z(n,"default",{value:e,enumerable:!0}),e)),V={exports:{}},H={},R=(L||(L=1,V.exports=function(){if(C)return H;C=1;var e=u(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function a(e,n,a){var s,l={},c=null,d=null;for(s in void 0!==a&&(c=""+a),void 0!==n.key&&(c=""+n.key),void 0!==n.ref&&(d=n.ref),n)r.call(n,s)&&!o.hasOwnProperty(s)&&(l[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps)void 0===l[s]&&(l[s]=n[s]);return{$$typeof:t,type:e,key:c,ref:d,props:l,_owner:i.current}}return H.Fragment=n,H.jsx=a,H.jsxs=a,H}()),V.exports);function O(e,t){return Math.imul(e,31)+t|0}function D(e){return e>>>1&1073741824|3221225471&e}function B(e,t){return function(e,t=2166136261){let n,r,i=2147483647&t;for(n=0,r=e.length;n<r;n++)i^=e.charCodeAt(n),i+=(i<<1)+(i<<4)+(i<<7)+(i<<8)+(i<<24);return i>>>0}(e,t)}const j=new ArrayBuffer(8),F=new Uint32Array(j),U=new Float64Array(j);class q{constructor(e,t,n){if(this._hashKey=e,this._equalKeys=t,this._keys=new Map,this._map=new Map,n)for(const[e,t]of n)this.set(e,t)}get size(){return this._map.size}has(e){const{_hashKey:t,_equalKeys:n}=this,r=this._keys.get(t(e));if(r)for(const t of r)if(n(t,e))return!0;return!1}get(e){const{_hashKey:t,_equalKeys:n}=this,r=this._keys.get(t(e));if(r)for(const t of r)if(n(t,e))return this._map.get(t)}set(e,t){const{_hashKey:n,_equalKeys:r}=this,i=n(e);let o=this._keys.get(i);if(o){let n=-1;for(let t=0;t<o.length;t++)if(r(o[t],e)){n=t;break}n>=0?this._map.set(o[n],t):(o.push(e),this._map.set(e,t))}else o=[e],this._keys.set(i,o),this._map.set(e,t);return this}delete(e){const{_hashKey:t,_equalKeys:n}=this,r=t(e),i=this._keys.get(r);if(i)for(let t=0;t<i.length;t++)if(n(i[t],e)){const[e]=i.splice(t,1);return this._map.delete(e),0===i.length&&this._keys.delete(r),!0}return!1}clear(){this._keys.clear(),this._map.clear()}clone(){return new q(this._hashKey,this._equalKeys,this)}forEach(e){for(const[t,n]of this)e(n,t,this)}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}[Symbol.iterator](){return this.entries()}}class W{constructor(e,t,n){if(this._hashCode=e,this._equals=t,this._map=new q(e,t),n)for(const e of n)this.add(e)}get size(){return this._map.size}has(e){return this._map.has(e)}add(e){return this._map.set(e,!0),this}delete(e){return this._map.delete(e)}clear(){this._map.clear()}clone(){const e=new W(this._hashCode,this._equals);return this.forEach((t=>e.add(t))),e}forEach(e){this._map.forEach(((t,n)=>e(n,n,this)))}keys(){return this._map.keys()}values(){return this._map.keys()}*entries(){for(const e of this.keys())yield[e,e]}[Symbol.iterator](){return this._map.keys()}}var G="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Z=[],K=[],X="undefined"!=typeof Uint8Array?Uint8Array:Array,Q=!1;function Y(){Q=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)Z[t]=e[t],K[e.charCodeAt(t)]=t;K["-".charCodeAt(0)]=62,K["_".charCodeAt(0)]=63}function J(e,t,n){for(var r,i=[],o=t;o<n;o+=3)i.push(Z[(r=(e[o]<<16)+(e[o+1]<<8)+e[o+2])>>18&63]+Z[r>>12&63]+Z[r>>6&63]+Z[63&r]);return i.join("")}function ee(e,t,n,r,i){var o,a,s=8*i-r-1,l=(1<<s)-1,c=l>>1,d=-7,u=n?i-1:0,h=n?-1:1,f=e[t+u];for(u+=h,o=f&(1<<-d)-1,f>>=-d,d+=s;d>0;o=256*o+e[t+u],u+=h,d-=8);for(a=o&(1<<-d)-1,o>>=-d,d+=r;d>0;a=256*a+e[t+u],u+=h,d-=8);if(0===o)o=1-c;else{if(o===l)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,r),o-=c}return(f?-1:1)*a*Math.pow(2,o-r)}function te(e,t,n,r,i,o){var a,s,l,c=8*o-i-1,d=(1<<c)-1,u=d>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=d):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+u>=1?h/l:h*Math.pow(2,1-u))*l>=2&&(a++,l/=2),a+u>=d?(s=0,a=d):a+u>=1?(s=(t*l-1)*Math.pow(2,i),a+=u):(s=t*Math.pow(2,u-1)*Math.pow(2,i),a=0));i>=8;e[n+f]=255&s,f+=p,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;e[n+f]=255&a,f+=p,a/=256,c-=8);e[n+f-p]|=128*g}var ne={}.toString,re=Array.isArray||function(e){return"[object Array]"==ne.call(e)};function ie(){return ae.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function oe(e,t){if(ie()<t)throw new RangeError("Invalid typed array length");return ae.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=ae.prototype:(null===e&&(e=new ae(t)),e.length=t),e}function ae(e,t,n){if(!(ae.TYPED_ARRAY_SUPPORT||this instanceof ae))return new ae(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return ce(this,e)}return se(this,e,t,n)}function se(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),ae.TYPED_ARRAY_SUPPORT?(e=t).__proto__=ae.prototype:e=de(e,t),e}(e,t,n,r):"string"==typeof t?function(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!ae.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|fe(t,n),i=(e=oe(e,r)).write(t,n);return i!==r&&(e=e.slice(0,i)),e}(e,t,n):function(e,t){if(he(t)){var n=0|ue(t.length);return 0===(e=oe(e,n)).length||t.copy(e,0,0,n),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?oe(e,0):de(e,t);if("Buffer"===t.type&&re(t.data))return de(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function le(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function ce(e,t){if(le(t),e=oe(e,t<0?0:0|ue(t)),!ae.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function de(e,t){var n=t.length<0?0:0|ue(t.length);e=oe(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function ue(e){if(e>=ie())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ie().toString(16)+" bytes");return 0|e}function he(e){return!(null==e||!e._isBuffer)}function fe(e,t){if(he(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return Oe(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return De(e).length;default:if(r)return Oe(e).length;t=(""+t).toLowerCase(),r=!0}}function pe(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return ze(this,t,n);case"utf8":case"utf-8":return Ce(this,t,n);case"ascii":return Me(this,t,n);case"latin1":case"binary":return Ee(this,t,n);case"base64":return Se(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $e(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function ge(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function ve(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=ae.from(t,r)),he(t))return 0===t.length?-1:me(e,t,n,r,i);if("number"==typeof t)return t&=255,ae.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):me(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function me(e,t,n,r,i){var o,a=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var d=-1;for(o=n;o<s;o++)if(c(e,o)===c(t,-1===d?0:o-d)){if(-1===d&&(d=o),o-d+1===l)return d*a}else-1!==d&&(o-=o-d),d=-1}else for(n+l>s&&(n=s-l),o=n;o>=0;o--){for(var u=!0,h=0;h<l;h++)if(c(e,o+h)!==c(t,h)){u=!1;break}if(u)return o}return-1}function be(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function we(e,t,n,r){return Be(Oe(t,e.length-n),e,n,r)}function ye(e,t,n,r){return Be(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function _e(e,t,n,r){return ye(e,t,n,r)}function ke(e,t,n,r){return Be(De(t),e,n,r)}function xe(e,t,n,r){return Be(function(e,t){for(var n,r,i=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i.push(n%256),i.push(r);return i}(t,e.length-n),e,n,r)}function Se(e,t,n){return function(e){var t;Q||Y();for(var n=e.length,r=n%3,i="",o=[],a=16383,s=0,l=n-r;s<l;s+=a)o.push(J(e,s,s+a>l?l:s+a));return 1===r?(i+=Z[(t=e[n-1])>>2],i+=Z[t<<4&63],i+="=="):2===r&&(i+=Z[(t=(e[n-2]<<8)+e[n-1])>>10],i+=Z[t>>4&63],i+=Z[t<<2&63],i+="="),o.push(i),o.join("")}(0===t&&n===e.length?e:e.slice(t,n))}function Ce(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var o,a,s,l,c=e[i],d=null,u=c>239?4:c>223?3:c>191?2:1;if(i+u<=n)switch(u){case 1:c<128&&(d=c);break;case 2:128==(192&(o=e[i+1]))&&(l=(31&c)<<6|63&o)>127&&(d=l);break;case 3:a=e[i+2],128==(192&(o=e[i+1]))&&128==(192&a)&&(l=(15&c)<<12|(63&o)<<6|63&a)>2047&&(l<55296||l>57343)&&(d=l);break;case 4:a=e[i+2],s=e[i+3],128==(192&(o=e[i+1]))&&128==(192&a)&&128==(192&s)&&(l=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&l<1114112&&(d=l)}null===d?(d=65533,u=1):d>65535&&(r.push((d-=65536)>>>10&1023|55296),d=56320|1023&d),r.push(d),i+=u}return function(e){var t=e.length;if(t<=Le)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=Le));return n}(r)}ae.TYPED_ARRAY_SUPPORT=void 0===G.TYPED_ARRAY_SUPPORT||G.TYPED_ARRAY_SUPPORT,ae.poolSize=8192,ae._augment=function(e){return e.__proto__=ae.prototype,e},ae.from=function(e,t,n){return se(null,e,t,n)},ae.TYPED_ARRAY_SUPPORT&&(ae.prototype.__proto__=Uint8Array.prototype,ae.__proto__=Uint8Array),ae.alloc=function(e,t,n){return function(e,t,n,r){return le(t),t<=0?oe(e,t):void 0!==n?"string"==typeof r?oe(e,t).fill(n,r):oe(e,t).fill(n):oe(e,t)}(null,e,t,n)},ae.allocUnsafe=function(e){return ce(null,e)},ae.allocUnsafeSlow=function(e){return ce(null,e)},ae.isBuffer=function(e){return null!=e&&(!!e._isBuffer||je(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&je(e.slice(0,0))}(e))},ae.compare=function(e,t){if(!he(e)||!he(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},ae.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},ae.concat=function(e,t){if(!re(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return ae.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=ae.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!he(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},ae.byteLength=fe,ae.prototype._isBuffer=!0,ae.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)ge(this,t,t+1);return this},ae.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)ge(this,t,t+3),ge(this,t+1,t+2);return this},ae.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)ge(this,t,t+7),ge(this,t+1,t+6),ge(this,t+2,t+5),ge(this,t+3,t+4);return this},ae.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?Ce(this,0,e):pe.apply(this,arguments)},ae.prototype.equals=function(e){if(!he(e))throw new TypeError("Argument must be a Buffer");return this===e||0===ae.compare(this,e)},ae.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},ae.prototype.compare=function(e,t,n,r,i){if(!he(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(o,a),l=this.slice(r,i),c=e.slice(t,n),d=0;d<s;++d)if(l[d]!==c[d]){o=l[d],a=c[d];break}return o<a?-1:a<o?1:0},ae.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},ae.prototype.indexOf=function(e,t,n){return ve(this,e,t,n,!0)},ae.prototype.lastIndexOf=function(e,t,n){return ve(this,e,t,n,!1)},ae.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return be(this,e,t,n);case"utf8":case"utf-8":return we(this,e,t,n);case"ascii":return ye(this,e,t,n);case"latin1":case"binary":return _e(this,e,t,n);case"base64":return ke(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return xe(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},ae.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Le=4096;function Me(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function Ee(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function ze(e,t,n){var r,i=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>i)&&(n=i);for(var o="",a=t;a<n;++a)o+=(r=e[a])<16?"0"+r.toString(16):r.toString(16);return o}function $e(e,t,n){for(var r=e.slice(t,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function Te(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function Ne(e,t,n,r,i,o){if(!he(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function Ae(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i<o;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function Ie(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i<o;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function Pe(e,t,n,r){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function Ve(e,t,n,r,i){return i||Pe(e,0,n,4),te(e,t,n,r,23,4),n+4}function He(e,t,n,r,i){return i||Pe(e,0,n,8),te(e,t,n,r,52,8),n+8}ae.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),ae.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=ae.prototype;else{var i=t-e;n=new ae(i,void 0);for(var o=0;o<i;++o)n[o]=this[o+e]}return n},ae.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||Te(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r},ae.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||Te(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},ae.prototype.readUInt8=function(e,t){return t||Te(e,1,this.length),this[e]},ae.prototype.readUInt16LE=function(e,t){return t||Te(e,2,this.length),this[e]|this[e+1]<<8},ae.prototype.readUInt16BE=function(e,t){return t||Te(e,2,this.length),this[e]<<8|this[e+1]},ae.prototype.readUInt32LE=function(e,t){return t||Te(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},ae.prototype.readUInt32BE=function(e,t){return t||Te(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},ae.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||Te(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},ae.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||Te(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},ae.prototype.readInt8=function(e,t){return t||Te(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},ae.prototype.readInt16LE=function(e,t){t||Te(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},ae.prototype.readInt16BE=function(e,t){t||Te(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},ae.prototype.readInt32LE=function(e,t){return t||Te(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},ae.prototype.readInt32BE=function(e,t){return t||Te(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},ae.prototype.readFloatLE=function(e,t){return t||Te(e,4,this.length),ee(this,e,!0,23,4)},ae.prototype.readFloatBE=function(e,t){return t||Te(e,4,this.length),ee(this,e,!1,23,4)},ae.prototype.readDoubleLE=function(e,t){return t||Te(e,8,this.length),ee(this,e,!0,52,8)},ae.prototype.readDoubleBE=function(e,t){return t||Te(e,8,this.length),ee(this,e,!1,52,8)},ae.prototype.writeUIntLE=function(e,t,n,r){e=+e,t|=0,n|=0,r||Ne(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o<n&&(i*=256);)this[t+o]=e/i&255;return t+n},ae.prototype.writeUIntBE=function(e,t,n,r){e=+e,t|=0,n|=0,r||Ne(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},ae.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,1,255,0),ae.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},ae.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,2,65535,0),ae.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Ae(this,e,t,!0),t+2},ae.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,2,65535,0),ae.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Ae(this,e,t,!1),t+2},ae.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,4,4294967295,0),ae.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Ie(this,e,t,!0),t+4},ae.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,4,4294967295,0),ae.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Ie(this,e,t,!1),t+4},ae.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);Ne(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o<n&&(a*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a|0)-s&255;return t+n},ae.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);Ne(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a|0)-s&255;return t+n},ae.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,1,127,-128),ae.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},ae.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,2,32767,-32768),ae.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Ae(this,e,t,!0),t+2},ae.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,2,32767,-32768),ae.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Ae(this,e,t,!1),t+2},ae.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,4,2147483647,-2147483648),ae.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Ie(this,e,t,!0),t+4},ae.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||Ne(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),ae.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Ie(this,e,t,!1),t+4},ae.prototype.writeFloatLE=function(e,t,n){return Ve(this,e,t,!0,n)},ae.prototype.writeFloatBE=function(e,t,n){return Ve(this,e,t,!1,n)},ae.prototype.writeDoubleLE=function(e,t,n){return He(this,e,t,!0,n)},ae.prototype.writeDoubleBE=function(e,t,n){return He(this,e,t,!1,n)},ae.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,o=r-n;if(this===e&&n<t&&t<r)for(i=o-1;i>=0;--i)e[i+t]=this[i+n];else if(o<1e3||!ae.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+o),t);return o},ae.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!ae.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var o;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o<n;++o)this[o]=e;else{var a=he(e)?e:Oe(new ae(e,r).toString()),s=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%s]}return this};var Re=/[^+\/0-9A-Za-z-_]/g;function Oe(e,t){var n;t=t||1/0;for(var r=e.length,i=null,o=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function De(e){return function(e){var t,n,r,i,o,a;Q||Y();var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a=new X(3*s/4-(o="="===e[s-2]?2:"="===e[s-1]?1:0)),r=o>0?s-4:s;var l=0;for(t=0,n=0;t<r;t+=4,n+=3)i=K[e.charCodeAt(t)]<<18|K[e.charCodeAt(t+1)]<<12|K[e.charCodeAt(t+2)]<<6|K[e.charCodeAt(t+3)],a[l++]=i>>16&255,a[l++]=i>>8&255,a[l++]=255&i;return 2===o?(i=K[e.charCodeAt(t)]<<2|K[e.charCodeAt(t+1)]>>4,a[l++]=255&i):1===o&&(i=K[e.charCodeAt(t)]<<10|K[e.charCodeAt(t+1)]<<4|K[e.charCodeAt(t+2)]>>2,a[l++]=i>>8&255,a[l++]=255&i),a}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Re,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Be(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function je(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}const Fe="http://www.w3.org/1999/02/22-rdf-syntax-ns#",Ue="http://www.w3.org/2001/XMLSchema#",qe="http://www.w3.org/2000/10/swap/";var We={xsd:{decimal:`${Ue}decimal`,boolean:`${Ue}boolean`,double:`${Ue}double`,integer:`${Ue}integer`,string:`${Ue}string`},rdf:{type:`${Fe}type`,nil:`${Fe}nil`,first:`${Fe}first`,rest:`${Fe}rest`,langString:`${Fe}langString`},owl:{sameAs:"http://www.w3.org/2002/07/owl#sameAs"},r:{forSome:`${qe}reify#forSome`,forAll:`${qe}reify#forAll`},log:{implies:`${qe}log#implies`,isImpliedBy:`${qe}log#isImpliedBy`}};const{xsd:Ge}=We,Ze=/\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{8})|\\([^])/g,Ke={"\\":"\\","'":"'",'"':'"',n:"\n",r:"\r",t:"\t",f:"\f",b:"\b",_:"_","~":"~",".":".","-":"-","!":"!",$:"$","&":"&","(":"(",")":")","*":"*","+":"+",",":",",";":";","=":"=","/":"/","?":"?","#":"#","@":"@","%":"%"},Xe=/[\x00-\x20<>\\"\{\}\|\^\`]/,Qe={_iri:!0,_unescapedIri:!0,_simpleQuotedString:!0,_langcode:!0,_blank:!0,_newline:!0,_comment:!0,_whitespace:!0,_endOfFile:!0},Ye=/$0^/;class Je{constructor(e){if(this._iri=/^<((?:[^ <>{}\\]|\\[uU])+)>[ \t]*/,this._unescapedIri=/^<([^\x00-\x20<>\\"\{\}\|\^\`]*)>[ \t]*/,this._simpleQuotedString=/^"([^"\\\r\n]*)"(?=[^"])/,this._simpleApostropheString=/^'([^'\\\r\n]*)'(?=[^'])/,this._langcode=/^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\-])/i,this._prefix=/^((?:[A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)?:(?=[#\s<])/,this._prefixed=/^((?:[A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)?:((?:(?:[0-:A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~])(?:(?:[\.\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~])*(?:[\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff]|%[0-9a-fA-F]{2}|\\[!#-\/;=?\-@_~]))?)?)(?:[ \t]+|(?=\.?[,;!\^\s#()\[\]\{\}"'<>]))/,this._variable=/^\?(?:(?:[A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:[\-0-:A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)(?=[.,;!\^\s#()\[\]\{\}"'<>])/,this._blank=/^_:((?:[0-9A-Z_a-z\xc0-\xd6\xd8-\xf6\xf8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])(?:\.?[\-0-9A-Z_a-z\xb7\xc0-\xd6\xd8-\xf6\xf8-\u037d\u037f-\u1fff\u200c\u200d\u203f\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]|[\ud800-\udb7f][\udc00-\udfff])*)(?:[ \t]+|(?=\.?[,;:\s#()\[\]\{\}"'<>]))/,this._number=/^[\-+]?(?:(\d+\.\d*|\.?\d+)[eE][\-+]?|\d*(\.)?)\d+(?=\.?[,;:\s#()\[\]\{\}"'<>])/,this._boolean=/^(?:true|false)(?=[.,;\s#()\[\]\{\}"'<>])/,this._keyword=/^@[a-z]+(?=[\s#<:])/i,this._sparqlKeyword=/^(?:PREFIX|BASE|GRAPH)(?=[\s#<])/i,this._shortPredicates=/^a(?=[\s#()\[\]\{\}"'<>])/,this._newline=/^[ \t]*(?:#[^\n\r]*)?(?:\r\n|\n|\r)[ \t]*/,this._comment=/#([^\n\r]*)/,this._whitespace=/^[ \t]+/,this._endOfFile=/^(?:#[^\n\r]*)?$/,this._isImpliedBy=(e=e||{}).isImpliedBy,this._lineMode=!!e.lineMode){this._n3Mode=!1;for(const e in this)!(e in Qe)&&this[e]instanceof RegExp&&(this[e]=Ye)}else this._n3Mode=!1!==e.n3;this.comments=!!e.comments,this._literalClosingPos=0}_tokenizeToEnd(e,t){let n=this._input,r=n.length;for(;;){let e,a;for(;e=this._newline.exec(n);)this.comments&&(a=this._comment.exec(e[0]))&&i("comment",a[1],"",this._line,e[0].length),n=n.substr(e[0].length,n.length),r=n.length,this._line++;if(!e&&(e=this._whitespace.exec(n))&&(n=n.substr(e[0].length,n.length)),this._endOfFile.test(n))return t&&(this.comments&&(a=this._comment.exec(n))&&i("comment",a[1],"",this._line,n.length),n=null,i("eof","","",this._line,0)),this._input=n;const s=this._line,l=n[0];let c="",d="",u="",h=null,f=0,p=!1;switch(l){case"^":if(n.length<3)break;if("^"!==n[1]){this._n3Mode&&(f=1,c="^");break}if(this._previousMarker="^^",n=n.substr(2),"<"!==n[0]){p=!0;break}case"<":if(h=this._unescapedIri.exec(n))c="IRI",d=h[1];else if(h=this._iri.exec(n)){if(d=this._unescape(h[1]),null===d||Xe.test(d))return o(this);c="IRI"}else n.length>1&&"<"===n[1]?(c="<<",f=2):this._n3Mode&&n.length>1&&"="===n[1]&&(f=2,this._isImpliedBy?(c="abbreviation",d="<"):(c="inverse",d=">"));break;case">":n.length>1&&">"===n[1]&&(c=">>",f=2);break;case"_":((h=this._blank.exec(n))||t&&(h=this._blank.exec(`${n} `)))&&(c="blank",u="_",d=h[1]);break;case'"':if(h=this._simpleQuotedString.exec(n))d=h[1];else if(({value:d,matchLength:f}=this._parseLiteral(n)),null===d)return o(this);null===h&&0===f||(c="literal",this._literalClosingPos=0);break;case"'":if(!this._lineMode){if(h=this._simpleApostropheString.exec(n))d=h[1];else if(({value:d,matchLength:f}=this._parseLiteral(n)),null===d)return o(this);null===h&&0===f||(c="literal",this._literalClosingPos=0)}break;case"?":this._n3Mode&&(h=this._variable.exec(n))&&(c="var",d=h[0]);break;case"@":"literal"===this._previousMarker&&(h=this._langcode.exec(n))?(c="langcode",d=h[1]):(h=this._keyword.exec(n))&&(c=h[0]);break;case".":if(1===n.length?t:n[1]<"0"||n[1]>"9"){c=".",f=1;break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"+":case"-":(h=this._number.exec(n)||t&&(h=this._number.exec(`${n} `)))&&(c="literal",d=h[0],u="string"==typeof h[1]?Ge.double:"string"==typeof h[2]?Ge.decimal:Ge.integer);break;case"B":case"b":case"p":case"P":case"G":case"g":(h=this._sparqlKeyword.exec(n))?c=h[0].toUpperCase():p=!0;break;case"f":case"t":(h=this._boolean.exec(n))?(c="literal",d=h[0],u=Ge.boolean):p=!0;break;case"a":(h=this._shortPredicates.exec(n))?(c="abbreviation",d="a"):p=!0;break;case"=":this._n3Mode&&n.length>1&&(c="abbreviation",">"!==n[1]?(f=1,d="="):(f=2,d=">"));break;case"!":if(!this._n3Mode)break;case",":case";":case"[":case"]":case"(":case")":case"}":this._lineMode||(f=1,c=l);break;case"{":!this._lineMode&&n.length>=2&&("|"===n[1]?(c="{|",f=2):(c=l,f=1));break;case"|":n.length>=2&&"}"===n[1]&&(c="|}",f=2);break;default:p=!0}if(p&&("@prefix"!==this._previousMarker&&"PREFIX"!==this._previousMarker||!(h=this._prefix.exec(n))?((h=this._prefixed.exec(n))||t&&(h=this._prefixed.exec(`${n} `)))&&(c="prefixed",u=h[1]||"",d=this._unescape(h[2])):(c="prefix",d=h[1]||"")),"^^"===this._previousMarker)switch(c){case"prefixed":c="type";break;case"IRI":c="typeIRI";break;default:c=""}if(!c)return t||!/^'''|^"""/.test(n)&&/\n|\r/.test(n)?o(this):this._input=n;const g=f||h[0].length,v=i(c,d,u,s,g);this.previousToken=v,this._previousMarker=c,n=n.substr(g,n.length)}function i(t,i,o,a,s){const l=n?r-n.length:r,c={type:t,value:i,prefix:o,line:a,start:l,end:l+s};return e(null,c),c}function o(t){e(t._syntaxError(/^\S*/.exec(n)[0]))}}_unescape(e){let t=!1;const n=e.replace(Ze,((e,n,r,i)=>{if("string"==typeof n)return String.fromCharCode(Number.parseInt(n,16));if("string"==typeof r){let e=Number.parseInt(r,16);return e<=65535?String.fromCharCode(Number.parseInt(r,16)):String.fromCharCode(55296+((e-=65536)>>10),56320+(1023&e))}return i in Ke?Ke[i]:(t=!0,"")}));return t?null:n}_parseLiteral(e){if(e.length>=3){const t=e.match(/^(?:"""|"|'''|'|)/)[0],n=t.length;let r=Math.max(this._literalClosingPos,n);for(;(r=e.indexOf(t,r))>0;){let t=0;for(;"\\"===e[r-t-1];)t++;if(t%2==0){const t=e.substring(n,r),i=t.split(/\r\n|\r|\n/).length-1,o=r+n;if(1===n&&0!==i||3===n&&this._lineMode)break;return this._line+=i,{value:this._unescape(t),matchLength:o}}r++}this._literalClosingPos=e.length-n+1}return{value:"",matchLength:0}}_syntaxError(e){this._input=null;const t=new Error(`Unexpected "${e}" on line ${this._line}.`);return t.context={token:void 0,line:this._line,previousToken:this.previousToken},t}_readStartingBom(e){return e.startsWith("\ufeff")?e.substr(1):e}tokenize(e,t){if(this._line=1,"string"==typeof e){if(this._input=this._readStartingBom(e),"function"!=typeof t){const e=[];let t;if(this._tokenizeToEnd(((n,r)=>n?t=n:e.push(r)),!0),t)throw t;return e}queueMicrotask((()=>this._tokenizeToEnd(t,!0)))}else this._pendingBuffer=null,"function"==typeof e.setEncoding&&e.setEncoding("utf8"),e.on("data",(e=>{null!==this._input&&0!==e.length&&(this._pendingBuffer&&(e=ae.concat([this._pendingBuffer,e]),this._pendingBuffer=null),128&e[e.length-1]?this._pendingBuffer=e:(void 0===this._input?this._input=this._readStartingBom("string"==typeof e?e:e.toString()):this._input+=e,this._tokenizeToEnd(t,!1)))})),e.on("end",(()=>{"string"==typeof this._input&&this._tokenizeToEnd(t,!0)})),e.on("error",t)}}const{rdf:et,xsd:tt}=We;let nt,rt=0;const it={namedNode:ut,blankNode:ht,variable:pt,literal:ft,defaultGraph:function(){return nt},quad:gt,triple:gt,fromTerm:vt,fromQuad:mt};class ot{constructor(e){this.id=e}get value(){return this.id}equals(e){return e instanceof ot?this.id===e.id:!!e&&this.termType===e.termType&&this.value===e.value}hashCode(){return 0}toJSON(){return{termType:this.termType,value:this.value}}}class at extends ot{get termType(){return"NamedNode"}}class st extends ot{get termType(){return"Literal"}get value(){return this.id.substring(1,this.id.lastIndexOf('"'))}get language(){const e=this.id;let t=e.lastIndexOf('"')+1;return t<e.length&&"@"===e[t++]?e.substr(t).toLowerCase():""}get datatype(){return new at(this.datatypeString)}get datatypeString(){const e=this.id,t=e.lastIndexOf('"')+1,n=t<e.length?e[t]:"";return"^"===n?e.substr(t+2):"@"!==n?tt.string:et.langString}equals(e){return e instanceof st?this.id===e.id:!!e&&!!e.datatype&&this.termType===e.termType&&this.value===e.value&&this.language===e.language&&this.datatype.value===e.datatype.value}toJSON(){return{termType:this.termType,value:this.value,language:this.language,datatype:{termType:"NamedNode",value:this.datatypeString}}}}class lt extends ot{constructor(e){super(`_:${e}`)}get termType(){return"BlankNode"}get value(){return this.id.substr(2)}}class ct extends ot{constructor(e){super(`?${e}`)}get termType(){return"Variable"}get value(){return this.id.substr(1)}}nt=new class extends ot{constructor(){return super(""),nt||this}get termType(){return"DefaultGraph"}equals(e){return this===e||!!e&&this.termType===e.termType}};class dt extends ot{constructor(e,t,n,r){super(""),this._subject=e,this._predicate=t,this._object=n,this._graph=r||nt}get termType(){return"Quad"}get subject(){return this._subject}get predicate(){return this._predicate}get object(){return this._object}get graph(){return this._graph}toJSON(){return{termType:this.termType,subject:this._subject.toJSON(),predicate:this._predicate.toJSON(),object:this._object.toJSON(),graph:this._graph.toJSON()}}equals(e){return!!e&&this._subject.equals(e.subject)&&this._predicate.equals(e.predicate)&&this._object.equals(e.object)&&this._graph.equals(e.graph)}}function ut(e){return new at(e)}function ht(e){return new lt(e||"n3-"+rt++)}function ft(e,t){if("string"==typeof t)return new st(`"${e}"@${t.toLowerCase()}`);let n=t?t.value:"";return""===n&&("boolean"==typeof e?n=tt.boolean:"number"==typeof e&&(Number.isFinite(e)?n=Number.isInteger(e)?tt.integer:tt.double:(n=tt.double,Number.isNaN(e)||(e=e>0?"INF":"-INF")))),new st(""===n||n===tt.string?`"${e}"`:`"${e}"^^${n}`)}function pt(e){return new ct(e)}function gt(e,t,n,r){return new dt(e,t,n,r)}function vt(e){if(e instanceof ot)return e;switch(e.termType){case"NamedNode":return ut(e.value);case"BlankNode":return ht(e.value);case"Variable":return pt(e.value);case"DefaultGraph":return nt;case"Literal":return ft(e.value,e.language||e.datatype);case"Quad":return mt(e);default:throw new Error(`Unexpected termType: ${e.termType}`)}}function mt(e){if(e instanceof dt)return e;if("Quad"!==e.termType)throw new Error(`Unexpected termType: ${e.termType}`);return gt(vt(e.subject),vt(e.predicate),vt(e.object),vt(e.graph))}let bt=0;class wt{constructor(e){this._contextStack=[],this._graph=null,this._setBase((e=e||{}).baseIRI),e.factory&&_t(this,e.factory);const t="string"==typeof e.format?e.format.match(/\w*$/)[0].toLowerCase():"",n=/turtle/.test(t),r=/trig/.test(t),i=/triple/.test(t),o=/quad/.test(t),a=this._n3Mode=/n3/.test(t),s=i||o;(this._supportsNamedGraphs=!(n||a))||(this._readPredicateOrNamedGraph=this._readPredicate),this._supportsQuads=!(n||r||i||a),this._isImpliedBy=e.isImpliedBy,this._supportsRDFStar=""===t||/star|\*$/.test(t),s&&(this._resolveRelativeIRI=()=>null),this._blankNodePrefix="string"!=typeof e.blankNodePrefix?"":e.blankNodePrefix.replace(/^(?!_:)/,"_:"),this._lexer=e.lexer||new Je({lineMode:s,n3:a,isImpliedBy:this._isImpliedBy}),this._explicitQuantifiers=!!e.explicitQuantifiers}static _resetBlankNodePrefix(){bt=0}_setBase(e){if(e){const t=e.indexOf("#");t>=0&&(e=e.substr(0,t)),this._base=e,this._basePath=e.indexOf("/")<0?e:e.replace(/[^\/?]*(?:\?.*)?$/,""),e=e.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\/\/[^\/]*)?/i),this._baseRoot=e[0],this._baseScheme=e[1]}else this._base="",this._basePath=""}_saveContext(e,t,n,r,i){const o=this._n3Mode;this._contextStack.push({type:e,subject:n,predicate:r,object:i,graph:t,inverse:!!o&&this._inversePredicate,blankPrefix:o?this._prefixes._:"",quantified:o?this._quantified:null}),o&&(this._inversePredicate=!1,this._prefixes._=this._graph?`${this._graph.value}.`:".",this._quantified=Object.create(this._quantified))}_restoreContext(e,t){const n=this._contextStack.pop();if(!n||n.type!==e)return this._error(`Unexpected ${t.type}`,t);this._subject=n.subject,this._predicate=n.predicate,this._object=n.object,this._graph=n.graph,this._n3Mode&&(this._inversePredicate=n.inverse,this._prefixes._=n.blankPrefix,this._quantified=n.quantified)}_readInTopContext(e){switch(e.type){case"eof":return null!==this._graph?this._error("Unclosed graph",e):(delete this._prefixes._,this._callback(null,null,this._prefixes));case"PREFIX":this._sparqlStyle=!0;case"@prefix":return this._readPrefix;case"BASE":this._sparqlStyle=!0;case"@base":return this._readBaseIRI;case"{":if(this._supportsNamedGraphs)return this._graph="",this._subject=null,this._readSubject;case"GRAPH":if(this._supportsNamedGraphs)return this._readNamedGraphLabel;default:return this._readSubject(e)}}_readEntity(e,t){let n;switch(e.type){case"IRI":case"typeIRI":const t=this._resolveIRI(e.value);if(null===t)return this._error("Invalid IRI",e);n=this._factory.namedNode(t);break;case"type":case"prefixed":const r=this._prefixes[e.prefix];if(void 0===r)return this._error(`Undefined prefix "${e.prefix}:"`,e);n=this._factory.namedNode(r+e.value);break;case"blank":n=this._factory.blankNode(this._prefixes[e.prefix]+e.value);break;case"var":n=this._factory.variable(e.value.substr(1));break;default:return this._error(`Expected entity but got ${e.type}`,e)}return!t&&this._n3Mode&&n.id in this._quantified&&(n=this._quantified[n.id]),n}_readSubject(e){switch(this._predicate=null,e.type){case"[":return this._saveContext("blank",this._graph,this._subject=this._factory.blankNode(),null,null),this._readBlankNodeHead;case"(":return this._saveContext("list",this._graph,this.RDF_NIL,null,null),this._subject=null,this._readListItem;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._graph=this._factory.blankNode(),null,null),this._readSubject):this._error("Unexpected graph",e);case"}":return this._readPunctuation(e);case"@forSome":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORSOME,this._quantifier="blankNode",this._readQuantifierList):this._error('Unexpected "@forSome"',e);case"@forAll":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORALL,this._quantifier="variable",this._readQuantifierList):this._error('Unexpected "@forAll"',e);case"literal":if(!this._n3Mode)return this._error("Unexpected literal",e);if(0===e.prefix.length)return this._literalValue=e.value,this._completeSubjectLiteral;this._subject=this._factory.literal(e.value,this._factory.namedNode(e.prefix));break;case"<<":return this._supportsRDFStar?(this._saveContext("<<",this._graph,null,null,null),this._graph=null,this._readSubject):this._error("Unexpected RDF-star syntax",e);default:if(void 0===(this._subject=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._readPredicateOrNamedGraph)}return this._readPredicateOrNamedGraph}_readPredicate(e){const t=e.type;switch(t){case"inverse":this._inversePredicate=!0;case"abbreviation":this._predicate=this.ABBREVIATIONS[e.value];break;case".":case"]":case"}":return null===this._predicate?this._error(`Unexpected ${t}`,e):(this._subject=null,"]"===t?this._readBlankNodeTail(e):this._readPunctuation(e));case";":return null!==this._predicate?this._readPredicate:this._error("Expected predicate but got ;",e);case"[":if(this._n3Mode)return this._saveContext("blank",this._graph,this._subject,this._subject=this._factory.blankNode(),null),this._readBlankNodeHead;case"blank":if(!this._n3Mode)return this._error("Disallowed blank node as predicate",e);default:if(void 0===(this._predicate=this._readEntity(e)))return}return this._readObject}_readObject(e){switch(e.type){case"literal":if(0===e.prefix.length)return this._literalValue=e.value,this._readDataTypeOrLang;this._object=this._factory.literal(e.value,this._factory.namedNode(e.prefix));break;case"[":return this._saveContext("blank",this._graph,this._subject,this._predicate,this._subject=this._factory.blankNode()),this._readBlankNodeHead;case"(":return this._saveContext("list",this._graph,this._subject,this._predicate,this.RDF_NIL),this._subject=null,this._readListItem;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._subject,this._predicate,this._graph=this._factory.blankNode()),this._readSubject):this._error("Unexpected graph",e);case"<<":return this._supportsRDFStar?(this._saveContext("<<",this._graph,this._subject,this._predicate,null),this._graph=null,this._readSubject):this._error("Unexpected RDF-star syntax",e);default:if(void 0===(this._object=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._getContextEndReader())}return this._getContextEndReader()}_readPredicateOrNamedGraph(e){return"{"===e.type?this._readGraph(e):this._readPredicate(e)}_readGraph(e){return"{"!==e.type?this._error(`Expected graph but got ${e.type}`,e):(this._graph=this._subject,this._subject=null,this._readSubject)}_readBlankNodeHead(e){return"]"===e.type?(this._subject=null,this._readBlankNodeTail(e)):(this._predicate=null,this._readPredicate(e))}_readBlankNodeTail(e){if("]"!==e.type)return this._readBlankNodePunctuation(e);null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph);const t=null===this._predicate;return this._restoreContext("blank",e),null!==this._object?this._getContextEndReader():null!==this._predicate?this._readObject:t?this._readPredicateOrNamedGraph:this._readPredicateAfterBlank}_readPredicateAfterBlank(e){switch(e.type){case".":case"}":return this._subject=null,this._readPunctuation(e);default:return this._readPredicate(e)}}_readListItem(e){let t=null,n=null,r=this._readListItem;const i=this._subject,o=this._contextStack,a=o[o.length-1];switch(e.type){case"[":this._saveContext("blank",this._graph,n=this._factory.blankNode(),this.RDF_FIRST,this._subject=t=this._factory.blankNode()),r=this._readBlankNodeHead;break;case"(":this._saveContext("list",this._graph,n=this._factory.blankNode(),this.RDF_FIRST,this.RDF_NIL),this._subject=null;break;case")":if(this._restoreContext("list",e),0!==o.length&&"list"===o[o.length-1].type&&this._emit(this._subject,this._predicate,this._object,this._graph),null===this._predicate){if(r=this._readPredicate,this._subject===this.RDF_NIL)return r}else if(r=this._getContextEndReader(),this._object===this.RDF_NIL)return r;n=this.RDF_NIL;break;case"literal":0===e.prefix.length?(this._literalValue=e.value,r=this._readListItemDataTypeOrLang):(t=this._factory.literal(e.value,this._factory.namedNode(e.prefix)),r=this._getContextEndReader());break;case"{":return this._n3Mode?(this._saveContext("formula",this._graph,this._subject,this._predicate,this._graph=this._factory.blankNode()),this._readSubject):this._error("Unexpected graph",e);default:if(void 0===(t=this._readEntity(e)))return}if(null===n&&(this._subject=n=this._factory.blankNode()),null===i?null===a.predicate?a.subject=n:a.object=n:this._emit(i,this.RDF_REST,n,this._graph),null!==t){if(this._n3Mode&&("IRI"===e.type||"prefixed"===e.type))return this._saveContext("item",this._graph,n,this.RDF_FIRST,t),this._subject=t,this._predicate=null,this._getPathReader(this._readListItem);this._emit(n,this.RDF_FIRST,t,this._graph)}return r}_readDataTypeOrLang(e){return this._completeObjectLiteral(e,!1)}_readListItemDataTypeOrLang(e){return this._completeObjectLiteral(e,!0)}_completeLiteral(e){let t=this._factory.literal(this._literalValue);switch(e.type){case"type":case"typeIRI":const n=this._readEntity(e);if(void 0===n)return;t=this._factory.literal(this._literalValue,n),e=null;break;case"langcode":t=this._factory.literal(this._literalValue,e.value),e=null}return{token:e,literal:t}}_completeSubjectLiteral(e){return this._subject=this._completeLiteral(e).literal,this._readPredicateOrNamedGraph}_completeObjectLiteral(e,t){const n=this._completeLiteral(e);if(n)return this._object=n.literal,t&&this._emit(this._subject,this.RDF_FIRST,this._object,this._graph),null===n.token?this._getContextEndReader():(this._readCallback=this._getContextEndReader(),this._readCallback(n.token))}_readFormulaTail(e){return"}"!==e.type?this._readPunctuation(e):(null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph),this._restoreContext("formula",e),null===this._object?this._readPredicate:this._getContextEndReader())}_readPunctuation(e){let t,n=this._graph;const r=this._subject,i=this._inversePredicate;switch(e.type){case"}":if(null===this._graph)return this._error("Unexpected graph closing",e);if(this._n3Mode)return this._readFormulaTail(e);this._graph=null;case".":this._subject=null,t=this._contextStack.length?this._readSubject:this._readInTopContext,i&&(this._inversePredicate=!1);break;case";":t=this._readPredicate;break;case",":t=this._readObject;break;case"{|":if(!this._supportsRDFStar)return this._error("Unexpected RDF-star syntax",e);this._subject=this._factory.quad(r,this._predicate,this._object,this.DEFAULTGRAPH),t=this._readPredicate;break;case"|}":if("Quad"!==this._subject.termType)return this._error("Unexpected asserted triple closing",e);this._subject=null,t=this._readPunctuation;break;default:if(this._supportsQuads&&null===this._graph&&void 0!==(n=this._readEntity(e))){t=this._readQuadPunctuation;break}return this._error(`Expected punctuation to follow "${this._object.id}"`,e)}if(null!==r){const e=this._predicate,t=this._object;i?this._emit(t,e,r,n):this._emit(r,e,t,n)}return t}_readBlankNodePunctuation(e){let t;switch(e.type){case";":t=this._readPredicate;break;case",":t=this._readObject;break;default:return this._error(`Expected punctuation to follow "${this._object.id}"`,e)}return this._emit(this._subject,this._predicate,this._object,this._graph),t}_readQuadPunctuation(e){return"."!==e.type?this._error("Expected dot to follow quad",e):this._readInTopContext}_readPrefix(e){return"prefix"!==e.type?this._error("Expected prefix to follow @prefix",e):(this._prefix=e.value,this._readPrefixIRI)}_readPrefixIRI(e){if("IRI"!==e.type)return this._error(`Expected IRI to follow prefix "${this._prefix}:"`,e);const t=this._readEntity(e);return this._prefixes[this._prefix]=t.value,this._prefixCallback(this._prefix,t),this._readDeclarationPunctuation}_readBaseIRI(e){const t="IRI"===e.type&&this._resolveIRI(e.value);return t?(this._setBase(t),this._readDeclarationPunctuation):this._error("Expected valid IRI to follow base declaration",e)}_readNamedGraphLabel(e){switch(e.type){case"IRI":case"blank":case"prefixed":return this._readSubject(e),this._readGraph;case"[":return this._readNamedGraphBlankLabel;default:return this._error("Invalid graph label",e)}}_readNamedGraphBlankLabel(e){return"]"!==e.type?this._error("Invalid graph label",e):(this._subject=this._factory.blankNode(),this._readGraph)}_readDeclarationPunctuation(e){return this._sparqlStyle?(this._sparqlStyle=!1,this._readInTopContext(e)):"."!==e.type?this._error("Expected declaration to end with a dot",e):this._readInTopContext}_readQuantifierList(e){let t;switch(e.type){case"IRI":case"prefixed":if(void 0!==(t=this._readEntity(e,!0)))break;default:return this._error(`Unexpected ${e.type}`,e)}return this._explicitQuantifiers?(null===this._subject?this._emit(this._graph||this.DEFAULTGRAPH,this._predicate,this._subject=this._factory.blankNode(),this.QUANTIFIERS_GRAPH):this._emit(this._subject,this.RDF_REST,this._subject=this._factory.blankNode(),this.QUANTIFIERS_GRAPH),this._emit(this._subject,this.RDF_FIRST,t,this.QUANTIFIERS_GRAPH)):this._quantified[t.id]=this._factory[this._quantifier](this._factory.blankNode().value),this._readQuantifierPunctuation}_readQuantifierPunctuation(e){return","===e.type?this._readQuantifierList:(this._explicitQuantifiers&&(this._emit(this._subject,this.RDF_REST,this.RDF_NIL,this.QUANTIFIERS_GRAPH),this._subject=null),this._readCallback=this._getContextEndReader(),this._readCallback(e))}_getPathReader(e){return this._afterPath=e,this._readPath}_readPath(e){switch(e.type){case"!":return this._readForwardPath;case"^":return this._readBackwardPath;default:const t=this._contextStack,n=t.length&&t[t.length-1];if(n&&"item"===n.type){const t=this._subject;this._restoreContext("item",e),this._emit(this._subject,this.RDF_FIRST,t,this._graph)}return this._afterPath(e)}}_readForwardPath(e){let t,n;const r=this._factory.blankNode();if(void 0!==(n=this._readEntity(e)))return null===this._predicate?(t=this._subject,this._subject=r):(t=this._object,this._object=r),this._emit(t,n,r,this._graph),this._readPath}_readBackwardPath(e){const t=this._factory.blankNode();let n,r;if(void 0!==(n=this._readEntity(e)))return null===this._predicate?(r=this._subject,this._subject=t):(r=this._object,this._object=t),this._emit(t,n,r,this._graph),this._readPath}_readRDFStarTailOrGraph(e){return">>"!==e.type?this._supportsQuads&&null===this._graph&&void 0!==(this._graph=this._readEntity(e))?this._readRDFStarTail:this._error(`Expected >> to follow "${this._object.id}"`,e):this._readRDFStarTail(e)}_readRDFStarTail(e){if(">>"!==e.type)return this._error(`Expected >> but got ${e.type}`,e);const t=this._factory.quad(this._subject,this._predicate,this._object,this._graph||this.DEFAULTGRAPH);return this._restoreContext("<<",e),null===this._subject?(this._subject=t,this._readPredicate):(this._object=t,this._getContextEndReader())}_getContextEndReader(){const e=this._contextStack;if(!e.length)return this._readPunctuation;switch(e[e.length-1].type){case"blank":return this._readBlankNodeTail;case"list":return this._readListItem;case"formula":return this._readFormulaTail;case"<<":return this._readRDFStarTailOrGraph}}_emit(e,t,n,r){this._callback(null,this._factory.quad(e,t,n,r||this.DEFAULTGRAPH))}_error(e,t){const n=new Error(`${e} on line ${t.line}.`);n.context={token:t,line:t.line,previousToken:this._lexer.previousToken},this._callback(n),this._callback=yt}_resolveIRI(e){return/^[a-z][a-z0-9+.-]*:/i.test(e)?e:this._resolveRelativeIRI(e)}_resolveRelativeIRI(e){if(!e.length)return this._base;switch(e[0]){case"#":return this._base+e;case"?":return this._base.replace(/(?:\?.*)?$/,e);case"/":return("/"===e[1]?this._baseScheme:this._baseRoot)+this._removeDotSegments(e);default:return/^[^/:]*:/.test(e)?null:this._removeDotSegments(this._basePath+e)}}_removeDotSegments(e){if(!/(^|\/)\.\.?($|[/#?])/.test(e))return e;const t=e.length;let n="",r=-1,i=-1,o=0,a="/";for(;r<t;){switch(a){case":":if(i<0&&"/"===e[++r]&&"/"===e[++r])for(;(i=r+1)<t&&"/"!==e[i];)r=i;break;case"?":case"#":r=t;break;case"/":if("."===e[r+1])switch(a=e[1+ ++r],a){case"/":n+=e.substring(o,r-1),o=r+1;break;case void 0:case"?":case"#":return n+e.substring(o,r)+e.substr(r+1);case".":if(a=e[1+ ++r],void 0===a||"/"===a||"?"===a||"#"===a){if(n+=e.substring(o,r-2),(o=n.lastIndexOf("/"))>=i&&(n=n.substr(0,o)),"/"!==a)return`${n}/${e.substr(r+1)}`;o=r+1}}}a=e[++r]}return n+e.substring(o)}parse(e,t,n){let r,i,o;if(t&&(t.onQuad||t.onPrefix||t.onComment)?(r=t.onQuad,i=t.onPrefix,o=t.onComment):(r=t,i=n),this._readCallback=this._readInTopContext,this._sparqlStyle=!1,this._prefixes=Object.create(null),this._prefixes._=this._blankNodePrefix?this._blankNodePrefix.substr(2):`b${bt++}_`,this._prefixCallback=i||yt,this._inversePredicate=!1,this._quantified=Object.create(null),!r){const t=[];let n;if(this._callback=(e,r)=>{e?n=e:r&&t.push(r)},this._lexer.tokenize(e).every((e=>this._readCallback=this._readCallback(e))),n)throw n;return t}let a=(e,t)=>{null!==e?(this._callback(e),this._callback=yt):this._readCallback&&(this._readCallback=this._readCallback(t))};o&&(this._lexer.comments=!0,a=(e,t)=>{null!==e?(this._callback(e),this._callback=yt):this._readCallback&&("comment"===t.type?o(t.value):this._readCallback=this._readCallback(t))}),this._callback=r,this._lexer.tokenize(e,a)}}function yt(){}function _t(e,t){e._factory=t,e.DEFAULTGRAPH=t.defaultGraph(),e.RDF_FIRST=t.namedNode(We.rdf.first),e.RDF_REST=t.namedNode(We.rdf.rest),e.RDF_NIL=t.namedNode(We.rdf.nil),e.N3_FORALL=t.namedNode(We.r.forAll),e.N3_FORSOME=t.namedNode(We.r.forSome),e.ABBREVIATIONS={a:t.namedNode(We.rdf.type),"=":t.namedNode(We.owl.sameAs),">":t.namedNode(We.log.implies),"<":t.namedNode(We.log.isImpliedBy)},e.QUANTIFIERS_GRAPH=t.namedNode("urn:n3:quantifiers")}function kt(e,t,n){let r=e.get(t);r||(r=[],e.set(t,r)),r.push(n)}function xt(e,t,n){let r=e.get(t);r||(r=new Set,e.set(t,r)),r.add(n)}function St(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}_t(wt.prototype,it);var Ct=class{mapping=new Map;ordered=[];reorder(e){this.ordered.sort(e)}get items(){return this.ordered}get(e){return this.mapping.get(e)}push(e,t){if(this.mapping.has(e)){const n=this.mapping.get(e);if(n===t)return;const r=this.ordered.indexOf(n);this.ordered.splice(r,1)}this.mapping.set(e,t),this.ordered.push(t)}delete(e){if(!this.mapping.has(e))return;const t=this.mapping.get(e),n=this.ordered.indexOf(t);return this.ordered.splice(n,1),this.mapping.delete(e),t}};function Lt(e,t,n,r){return Tt(zt(e,t,r),n)}var Mt=()=>{},Et=()=>Mt;function zt(e,t,n){return m.useCallback((n=>e?(e.on(t,n),()=>e.off(t,n)):Mt),n?[e,t,...n]:[e,t])}function $t(e){return m.useCallback((t=>{let n;const r=()=>{n=void 0,t()},i=e((()=>{void 0===n&&(n=requestAnimationFrame(r))}));return()=>{void 0!==n&&cancelAnimationFrame(n),i()}}),[e])}function Tt(e,t){return m.useSyncExternalStore(e,t)}function Nt(e,t,n){const r=m.useRef(void 0);return m.useSyncExternalStore(e,(()=>{const e=t();if(r.current){const[t]=r.current;if(n(t,e))return t}return r.current=[e],e}))}function At(e){const{input:t,load:n}=e,r=It(n),[i,o]=m.useState({data:void 0,status:"loading"});return m.useEffect((()=>{const e=new AbortController,n=e.signal,i=r.current(t,{signal:n});return i?(o((e=>({...e,status:"loading",error:void 0}))),i.then((e=>{n.aborted||o({data:e,status:"completed",error:void 0})}),(e=>{n.aborted||o((t=>({...t,status:"error",error:e})))}))):o({data:void 0,status:"completed",error:void 0}),()=>e.abort()}),t),i}function It(e){const t=m.useRef(e);return m.useEffect((()=>{t.current=e})),t}var Pt=m.createContext(null);function Vt(e){const{translation:t,children:n}=e;return R.jsx(Pt.Provider,{value:t,children:n})}function Ht(){const e=m.useContext(Pt);if(!e)throw new Error("Reactodia: missing <TranslationProvider> context");return e}var Rt=class e{key;placeholders;constructor(e,t){this.key=e,this.placeholders=t}static text(t,n){return new e(t,n)}resolve(e){return e.text(this.key,this.placeholders)}},Ot=class{subscribe;observedKeys=new Map;constructor(e){this.subscribe=e}setSubscribe(e){this.subscribe=e}observe(e){if(0===e.length&&0===this.observedKeys.size)return;const t=new Map;for(const n of e){if(t.has(n))continue;let e=this.observedKeys.get(n);e||(e=this.subscribe(n)),e&&t.set(n,e)}this.observedKeys.forEach(((e,n)=>{t.has(n)||e()})),this.observedKeys=t}stopListening(){this.observe([])}};function Dt(e,t,n){const[,r]=m.useState(0),i=m.useRef(void 0);let o=i.current;if(!o){const t=()=>r((e=>e+1));o={observer:new Ot((r=>e(r,n,t))),forceUpdate:t,lastStore:e},i.current=o}if(o.lastStore!==e){const{observer:t,forceUpdate:r}=o;t.setSubscribe((t=>e(t,n,r))),o.lastStore=e}o.observer.observe(t),m.useEffect((()=>()=>i.current?.observer.stopListening()),[])}var Bt=it;function jt(e){let t=0;switch(e.termType){case"NamedNode":case"BlankNode":case"Variable":t=B(e.value);break;case"Literal":t=B(e.value),e.datatype&&(t=O(t,B(e.datatype.value))),e.language&&(t=O(t,B(e.language)));break;case"Quad":t=O(t,jt(e.subject)),t=O(t,jt(e.predicate)),t=O(t,jt(e.object)),t=O(t,jt(e.graph))}return D(t)}function Ft(e,t){if(e.termType!==t.termType)return!1;switch(e.termType){case"NamedNode":case"BlankNode":case"Variable":case"DefaultGraph":{const{value:n}=t;return e.value===n}case"Literal":{const{value:n,language:r,datatype:i}=t;return e.value===n&&e.datatype.value===i.value&&e.language===r}case"Quad":{const{subject:n,predicate:r,object:i,graph:o}=t;return Ft(e.subject,n)&&Ft(e.predicate,r)&&Ft(e.object,i)&&Ft(e.graph,o)}}}function Ut(e){let t=e.indexOf("#");if(t<0&&(t=e.lastIndexOf("/")),t<0&&(t=e.lastIndexOf(":")),!(t<0))return e.substring(t+1)}function qt(e){return e.startsWith("urn:reactodia:blank:")}function Wt(e){const[t,n]=e;let r=B(t);return r=O(r,B(n)),D(r)}function Gt(e,t){const[n,r]=e,[i,o]=t;return n===i&&r===o}function Zt(e,t){return e.linkTypeId===t.linkTypeId&&e.sourceId===t.sourceId&&e.targetId===t.targetId}function Kt(e){const{linkTypeId:t,sourceId:n,targetId:r}=e;let i=B(t);return i=O(i,B(n)),i=O(i,B(r)),i}var Xt={label:"http://www.w3.org/2000/01/rdf-schema#label"},Qt={thumbnailUrl:"http://schema.org/thumbnailUrl"},Yt="reactodia-spinner";function Jt(e){const{position:t={x:0,y:0},size:n=50,statusText:r,errorOccurred:i}=e;return R.jsxs("g",{className:Yt,"data-error":i,transform:`translate(${t.x},${t.y})`,children:[R.jsx("g",{className:`${Yt}__arrow`,children:R.jsx("path",{d:"m3.47,-19.7 a20,20 0 1,1 -6.95,0 m0,0 l-6,5 m6,-5 l-8,-0"+(i?"M-8,-8L8,8M-8,8L8,-8":""),transform:`scale(0.02)scale(${n})`,fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})}),R.jsx("text",{className:`${Yt}__text`,style:{dominantBaseline:"middle"},fill:"currentColor",x:n/2+5,children:r})]})}function en(e){const{width:t,height:n,errorOccurred:r}=e;return R.jsx("svg",{width:t,height:n,children:R.jsx(Jt,{size:Math.min(t,n),position:{x:t/2,y:n/2},errorOccurred:r})})}var tn=class{model;translation;labelProperties;imageProperties;EMPTY_LABELS=[];constructor(e){const{model:t,translation:n,labelProperties:r=[Xt.label],imageProperties:i=[Qt.thumbnailUrl]}=e;this.model=t,this.translation=n,this.labelProperties=r,this.imageProperties=i}selectEntityLabel(e){for(const t of this.labelProperties)if(Object.prototype.hasOwnProperty.call(e.properties,t)){const n=e.properties[t],r=n?nn(n):this.EMPTY_LABELS;if(r.length>0)return r}return this.EMPTY_LABELS}selectEntityImageUrl(e){for(const t of this.imageProperties)if(Object.prototype.hasOwnProperty.call(e.properties,t)){const n=e.properties[t];if(n&&n.length>0)return n[0].value}}formatIri(e){return qt(e)?this.translation.text("default_data_locale.iri_blank",{value:e}):this.translation.text("default_data_locale.iri",{value:e})}formatEntityLabel(e,t){const n=this.selectEntityLabel(e);return this.translation.formatLabel(n,e.id,t)}formatEntityTypeList(e,t){const n=e.types.map((e=>{const n=this.model.getElementType(e)?.data?.label;return this.translation.formatLabel(n,e,t)}));return n.sort(),n.join(", ")}prepareAnchor(e){return{href:e,target:"_blank",rel:"noreferrer"}}resolveAssetUrl(e,t){return Promise.resolve(e)}};function nn(e){for(const t of e)if("Literal"!==t.termType)return e.filter((e=>"Literal"===e.termType));return e}var rn=(e,t,n)=>{const r=t.createElementType(e);return r.events.on("changeData",n),()=>r.events.off("changeData",n)},on=(e,t,n)=>{const r=t.createPropertyType(e);return r.events.on("changeData",n),()=>r.events.off("changeData",n)},an=(e,t,n)=>{const r=t.createLinkType(e);return r.events.on("changeData",n),()=>r.events.off("changeData",n)},sn=function(e){return e.searchUpdateCriteria="search:updateCriteria",e.searchQueryItem="search:queryItems",e.connectionsLoadLinks="connections:loadLinks",e.connectionsExpandLink="connections:expandLink",e.connectionsLoadElements="connections:loadElements",e.editorChangeSelection="editor:changeSelection",e.editorToggleDialog="editor:toggleDialog",e.editorAddElements="editor:addElements",e}({}),ln=m.createContext(null);function cn(){const e=m.useContext(ln);if(!e)throw new Error("Reactodia: missing workspace context");return e}function dn(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=dn(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function un(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=dn(e))&&(r&&(r+=" "),r+=t);return r}var hn=S();function fn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function pn(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function gn(){}var vn=.7,mn=1/vn,bn="\\s*([+-]?\\d+)\\s*",wn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",yn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",_n=/^#([0-9a-f]{3,8})$/,kn=new RegExp(`^rgb\\(${bn},${bn},${bn}\\)$`),xn=new RegExp(`^rgb\\(${yn},${yn},${yn}\\)$`),Sn=new RegExp(`^rgba\\(${bn},${bn},${bn},${wn}\\)$`),Cn=new RegExp(`^rgba\\(${yn},${yn},${yn},${wn}\\)$`),Ln=new RegExp(`^hsl\\(${wn},${yn},${yn}\\)$`),Mn=new RegExp(`^hsla\\(${wn},${yn},${yn},${wn}\\)$`),En={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function zn(){return this.rgb().formatHex()}function $n(){return this.rgb().formatRgb()}function Tn(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=_n.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Nn(t):3===n?new Pn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?An(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?An(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=kn.exec(e))?new Pn(t[1],t[2],t[3],1):(t=xn.exec(e))?new Pn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Sn.exec(e))?An(t[1],t[2],t[3],t[4]):(t=Cn.exec(e))?An(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Ln.exec(e))?Bn(t[1],t[2]/100,t[3]/100,1):(t=Mn.exec(e))?Bn(t[1],t[2]/100,t[3]/100,t[4]):En.hasOwnProperty(e)?Nn(En[e]):"transparent"===e?new Pn(NaN,NaN,NaN,0):null}function Nn(e){return new Pn(e>>16&255,e>>8&255,255&e,1)}function An(e,t,n,r){return r<=0&&(e=t=n=NaN),new Pn(e,t,n,r)}function In(e){return e instanceof gn||(e=Tn(e)),e?new Pn((e=e.rgb()).r,e.g,e.b,e.opacity):new Pn}function Pn(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Vn(){return`#${Dn(this.r)}${Dn(this.g)}${Dn(this.b)}`}function Hn(){const e=Rn(this.opacity);return`${1===e?"rgb(":"rgba("}${On(this.r)}, ${On(this.g)}, ${On(this.b)}${1===e?")":`, ${e})`}`}function Rn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function On(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Dn(e){return((e=On(e))<16?"0":"")+e.toString(16)}function Bn(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Fn(e,t,n,r)}function jn(e){if(e instanceof Fn)return new Fn(e.h,e.s,e.l,e.opacity);if(e instanceof gn||(e=Tn(e)),!e)return new Fn;if(e instanceof Fn)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(a=t===o?(n-r)/s+6*(n<r):n===o?(r-t)/s+2:(t-n)/s+4,s/=l<.5?o+i:2-o-i,a*=60):s=l>0&&l<1?0:a,new Fn(a,s,l,e.opacity)}function Fn(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Un(e){return(e=(e||0)%360)<0?e+360:e}function qn(e){return Math.max(0,Math.min(1,e||0))}function Wn(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}fn(gn,Tn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:zn,formatHex:zn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return jn(this).formatHsl()},formatRgb:$n,toString:$n}),fn(Pn,(function(e,t,n,r){return 1===arguments.length?In(e):new Pn(e,t,n,null==r?1:r)}),pn(gn,{brighter(e){return e=null==e?mn:Math.pow(mn,e),new Pn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?vn:Math.pow(vn,e),new Pn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Pn(On(this.r),On(this.g),On(this.b),Rn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Vn,formatHex:Vn,formatHex8:function(){return`#${Dn(this.r)}${Dn(this.g)}${Dn(this.b)}${Dn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Hn,toString:Hn})),fn(Fn,(function(e,t,n,r){return 1===arguments.length?jn(e):new Fn(e,t,n,null==r?1:r)}),pn(gn,{brighter(e){return e=null==e?mn:Math.pow(mn,e),new Fn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?vn:Math.pow(vn,e),new Fn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new Pn(Wn(e>=240?e-240:e+120,i,r),Wn(e,i,r),Wn(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Fn(Un(this.h),qn(this.s),qn(this.l),Rn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Rn(this.opacity);return`${1===e?"hsl(":"hsla("}${Un(this.h)}, ${100*qn(this.s)}%, ${100*qn(this.l)}%${1===e?")":`, ${e})`}`}}));const Gn=Math.PI/180,Zn=180/Math.PI,Kn=.96422,Xn=.82521,Qn=4/29,Yn=6/29,Jn=3*Yn*Yn,er=Yn*Yn*Yn;function tr(e){if(e instanceof nr)return new nr(e.l,e.a,e.b,e.opacity);if(e instanceof lr)return cr(e);e instanceof Pn||(e=In(e));var t,n,r=ar(e.r),i=ar(e.g),o=ar(e.b),a=rr((.2225045*r+.7168786*i+.0606169*o)/1);return r===i&&i===o?t=n=a:(t=rr((.4360747*r+.3850649*i+.1430804*o)/Kn),n=rr((.0139322*r+.0971045*i+.7141733*o)/Xn)),new nr(116*a-16,500*(t-a),200*(a-n),e.opacity)}function nr(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}function rr(e){return e>er?Math.pow(e,1/3):e/Jn+Qn}function ir(e){return e>Yn?e*e*e:Jn*(e-Qn)}function or(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function ar(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function sr(e,t,n,r){return 1===arguments.length?function(e){if(e instanceof lr)return new lr(e.h,e.c,e.l,e.opacity);if(e instanceof nr||(e=tr(e)),0===e.a&&0===e.b)return new lr(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*Zn;return new lr(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}(e):new lr(e,t,n,null==r?1:r)}function lr(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function cr(e){if(isNaN(e.h))return new nr(e.l,0,0,e.opacity);var t=e.h*Gn;return new nr(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}fn(nr,(function(e,t,n,r){return 1===arguments.length?tr(e):new nr(e,t,n,null==r?1:r)}),pn(gn,{brighter(e){return new nr(this.l+18*(null==e?1:e),this.a,this.b,this.opacity)},darker(e){return new nr(this.l-18*(null==e?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return new Pn(or(3.1338561*(t=Kn*ir(t))-1.6168667*(e=1*ir(e))-.4906146*(n=Xn*ir(n))),or(-.9787684*t+1.9161415*e+.033454*n),or(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}})),fn(lr,sr,pn(gn,{brighter(e){return new lr(this.h,this.c,this.l+18*(null==e?1:e),this.opacity)},darker(e){return new lr(this.h,this.c,this.l-18*(null==e?1:e),this.opacity)},rgb(){return cr(this).rgb()}}));var dr,ur,hr={exports:{}},fr=(dr||(dr=1,ur=hr,function(){function e(e,t,n){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){o(r.response,t,n)},r.onerror=function(){console.error("could not download file")},r.send()}function t(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&299>=t.status}function n(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(n){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var r="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof s&&s.global===s?s:void 0,i=r.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),o=r.saveAs||("object"!=typeof window||window!==r?function(){}:"download"in HTMLAnchorElement.prototype&&!i?function(i,o,a){var s=r.URL||r.webkitURL,l=document.createElement("a");l.download=o=o||i.name||"download",l.rel="noopener","string"==typeof i?(l.href=i,l.origin===location.origin?n(l):t(l.href)?e(i,o,a):n(l,l.target="_blank")):(l.href=s.createObjectURL(i),setTimeout((function(){s.revokeObjectURL(l.href)}),4e4),setTimeout((function(){n(l)}),0))}:"msSaveOrOpenBlob"in navigator?function(r,i,o){if(i=i||r.name||"download","string"!=typeof r)navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=typeof t&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\ufeff",e],{type:e.type}):e}(r,o),i);else if(t(r))e(r,i,o);else{var a=document.createElement("a");a.href=r,a.target="_blank",setTimeout((function(){n(a)}))}}:function(t,n,o,a){if((a=a||open("","_blank"))&&(a.document.title=a.document.body.innerText="downloading..."),"string"==typeof t)return e(t,n,o);var s="application/octet-stream"===t.type,l=/constructor/i.test(r.HTMLElement)||r.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||s&&l||i)&&"undefined"!=typeof FileReader){var d=new FileReader;d.onloadend=function(){var e=d.result;e=c?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),a?a.location.href=e:location=e,a=null},d.readAsDataURL(t)}else{var u=r.URL||r.webkitURL,h=u.createObjectURL(t);a?a.location=h:location.href=h,a=null,setTimeout((function(){u.revokeObjectURL(h)}),4e4)}});r.saveAs=o.saveAs=o,ur.exports=o}()),hr.exports);function pr(e,t){return e.then((e=>t&&t.aborted?null:e),(e=>t&&t.aborted?null:Promise.reject(e)))}function gr(e){return new Promise((t=>{setTimeout((()=>{t()}),e)}))}!function(){try{if("undefined"!=typeof document){var e=document.createElement("style");e.appendChild(document.createTextNode(".reactodia-badge{color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;display:inline-block}.reactodia-btn{font-size:14px;font-weight:400;line-height:var(--reactodia-line-height-base);text-transform:none;text-align:center;vertical-align:middle;white-space:nowrap;border:var(--reactodia-button-border-width) solid transparent;border-radius:var(--reactodia-button-border-radius);transition:background-color var(--reactodia-transition-duration);touch-action:manipulation;-webkit-user-select:none;user-select:none;cursor:pointer;background-image:none;margin-bottom:0;padding:6px 12px;display:inline-block}.reactodia-btn[disabled]{cursor:not-allowed;opacity:.65}.reactodia-btn-default{color:var(--reactodia-button-default-color);background-color:var(--reactodia-button-default-background-color);border-color:var(--reactodia-button-default-border-color)}.reactodia-btn-default:hover{color:var(--reactodia-button-default-color-focus);background-color:var(--reactodia-button-default-background-color-focus)}.reactodia-btn-default:active,.reactodia-btn-default.active{color:var(--reactodia-button-default-color-focus);background-color:var(--reactodia-button-default-background-color-active)}.reactodia-btn-default[disabled],.reactodia-btn-default[disabled]:hover,.reactodia-btn-default[disabled]:focus,.reactodia-btn-default[disabled]:active,.reactodia-btn-default[disabled].active{color:var(--reactodia-button-default-color);background-color:var(--reactodia-input-background-color-disabled)}.reactodia-btn-primary{color:var(--reactodia-color-emphasis-0);background-color:var(--reactodia-color-primary);border-color:var(--reactodia-color-primary-darker)}.reactodia-btn-primary:hover{border-color:var(--reactodia-color-primary-darkest);background-color:var(--reactodia-color-primary-dark)}.reactodia-btn-primary:active,.reactodia-btn-primary.active{border-color:var(--reactodia-color-primary-darker);background-color:var(--reactodia-color-primary-darkest)}.reactodia-btn-primary[disabled],.reactodia-btn-primary[disabled]:hover,.reactodia-btn-primary[disabled]:focus,.reactodia-btn-primary[disabled]:active,.reactodia-btn-primary[disabled].active{background-color:var(--reactodia-color-primary-dark)}.reactodia-btn-secondary{color:var(--reactodia-color-gray-900);background-color:var(--reactodia-color-secondary);border-color:var(--reactodia-color-secondary-darker)}.reactodia-btn-secondary:hover{border-color:var(--reactodia-color-secondary-darkest);background-color:var(--reactodia-color-secondary-dark)}.reactodia-btn-secondary:active,.reactodia-btn-secondary.active{border-color:var(--reactodia-color-secondary-darker);background-color:var(--reactodia-color-secondary-darkest)}.reactodia-btn-secondary[disabled],.reactodia-btn-secondary[disabled]:hover,.reactodia-btn-secondary[disabled]:focus,.reactodia-btn-secondary[disabled]:active,.reactodia-btn-secondary[disabled].active{background-color:var(--reactodia-color-secondary-dark)}.reactodia-btn-success{color:var(--reactodia-color-emphasis-0);background-color:var(--reactodia-color-success);border-color:var(--reactodia-color-success-darker)}.reactodia-btn-success:hover{border-color:var(--reactodia-color-success-darkest);background-color:var(--reactodia-color-success-dark)}.reactodia-btn-success:active,.reactodia-btn-success.active{border-color:var(--reactodia-color-success-darker);background-color:var(--reactodia-color-success-darkest)}.reactodia-btn-success[disabled],.reactodia-btn-success[disabled]:hover,.reactodia-btn-success[disabled]:focus,.reactodia-btn-success[disabled]:active,.reactodia-btn-success[disabled].active{background-color:var(--reactodia-color-success-dark)}.reactodia-btn-info{color:var(--reactodia-color-emphasis-0);background-color:var(--reactodia-color-info);border-color:var(--reactodia-color-info-darker)}.reactodia-btn-info:hover{border-color:var(--reactodia-color-info-darkest);background-color:var(--reactodia-color-info-dark)}.reactodia-btn-info:active,.reactodia-btn-info.active{border-color:var(--reactodia-color-info-darker);background-color:var(--reactodia-color-info-darkest)}.reactodia-btn-info[disabled],.reactodia-btn-info[disabled]:hover,.reactodia-btn-info[disabled]:focus,.reactodia-btn-info[disabled]:active,.reactodia-btn-info[disabled].active{background-color:var(--reactodia-color-info-dark)}.reactodia-btn-warning{color:var(--reactodia-color-emphasis-0);background-color:var(--reactodia-color-warning);border-color:var(--reactodia-color-warning-darker)}.reactodia-btn-warning:hover{border-color:var(--reactodia-color-warning-darkest);background-color:var(--reactodia-color-warning-dark)}.reactodia-btn-warning:active,.reactodia-btn-warning.active{border-color:var(--reactodia-color-warning-darker);background-color:var(--reactodia-color-warning-darkest)}.reactodia-btn-warning[disabled],.reactodia-btn-warning[disabled]:hover,.reactodia-btn-warning[disabled]:focus,.reactodia-btn-warning[disabled]:active,.reactodia-btn-warning[disabled].active{background-color:var(--reactodia-color-warning-dark)}.reactodia-btn-danger{color:var(--reactodia-color-emphasis-0);background-color:var(--reactodia-color-danger);border-color:var(--reactodia-color-danger-darker)}.reactodia-btn-danger:hover{border-color:var(--reactodia-color-danger-darkest);background-color:var(--reactodia-color-danger-dark)}.reactodia-btn-danger:active,.reactodia-btn-danger.active{border-color:var(--reactodia-color-danger-darker);background-color:var(--reactodia-color-danger-darkest)}.reactodia-btn-danger[disabled],.reactodia-btn-danger[disabled]:hover,.reactodia-btn-danger[disabled]:focus,.reactodia-btn-danger[disabled]:active,.reactodia-btn-danger[disabled].active{background-color:var(--reactodia-color-danger-dark)}.reactodia-btn-group{vertical-align:middle;display:inline-block;position:relative}.reactodia-btn-group>.reactodia-btn,.reactodia-btn-group>.reactodia-btn-group{float:left;position:relative}.reactodia-btn-group>.reactodia-btn:hover,.reactodia-btn-group>.reactodia-btn:focus,.reactodia-btn-group>.reactodia-btn.active,.reactodia-btn-group>.reactodia-btn.active:hover{z-index:2}.reactodia-btn-group .reactodia-btn+.reactodia-btn,.reactodia-btn-group .reactodia-btn+.reactodia-btn-group,.reactodia-btn-group .reactodia-btn-group+.reactodia-btn,.reactodia-btn-group .reactodia-btn-group+.reactodia-btn-group{margin-left:calc(-1 * var(--reactodia-button-border-width))}.reactodia-btn-group>.reactodia-btn{border-radius:unset}.reactodia-btn-group>.reactodia-btn:first-of-type{border-top-left-radius:var(--reactodia-button-border-radius);border-bottom-left-radius:var(--reactodia-button-border-radius);margin-left:0}.reactodia-btn-group>.reactodia-btn:last-of-type{border-top-right-radius:var(--reactodia-button-border-radius);border-bottom-right-radius:var(--reactodia-button-border-radius)}.reactodia-btn-group-sm>.reactodia-btn{padding:5px 10px;font-size:12px;line-height:1.5}.reactodia-btn-group-xs>.reactodia-btn{padding:1px 5px;font-size:12px;line-height:1.5}.reactodia-form{flex-direction:column;flex:auto;display:flex}.reactodia-form__body{flex-direction:column;flex:auto;padding:8px;display:flex;position:relative}.reactodia-form__controls{border-top:1px solid var(--reactodia-border-color-base);text-align:right;flex:none;padding:8px}.reactodia-form__controls button+button{margin-left:var(--reactodia-spacing-horizontal)}.reactodia-form__row{margin-bottom:8px;display:block}.reactodia-form__progress{position:absolute;bottom:0;left:0;right:0}.reactodia-form__control-row{padding-bottom:18px;position:relative}.reactodia-form__control-error{color:var(--reactodia-color-danger);position:absolute;bottom:0;left:0}.reactodia-form-control{width:100%;height:34px;font-family:var(--reactodia-font-family-base);line-height:var(--reactodia-line-height-base);color:var(--reactodia-input-color);background-color:var(--reactodia-input-background-color);border:var(--reactodia-input-border-width) solid var(--reactodia-input-border-color);border-radius:var(--reactodia-input-border-radius);margin:0;padding:6px 12px;font-size:14px;transition:border-color .15s ease-in-out;display:block}.reactodia-form-control:focus{border-color:var(--reactodia-input-border-color-focus);outline:0}.reactodia-form-control:disabled{background-color:var(--reactodia-input-background-color-disabled);cursor:not-allowed;opacity:.6}.reactodia-canvas-area{--reactodia-paper-panning-overlay-z-index:calc(var(--reactodia-z-index-base) + 70);background-color:var(--reactodia-canvas-background-color);flex:auto;width:0}.reactodia-canvas-area__widgets{position:absolute;top:0;left:0}.reactodia-canvas-area__watermark{cursor:pointer;opacity:.3;width:8%;min-width:50px;max-width:130px;transition:opacity var(--reactodia-transition-duration);background-size:cover;position:absolute;top:15px;right:25px}.reactodia-canvas-area__watermark:hover{opacity:.5}.reactodia-canvas-area--animated .reactodia-overlaid-element,.reactodia-canvas-area--animated .reactodia-element-decorations{transition:transform var(--reactodia-canvas-animation-duration) ease-in-out}.reactodia-canvas-area--animated .reactodia-link-layer,.reactodia-canvas-area--animated .reactodia-label-layer,.reactodia-canvas-area--animated .reactodia-canvas-area__widgets{opacity:0;transition:none}.reactodia-exported-watermark{opacity:.3;transition:opacity var(--reactodia-transition-duration)}.reactodia-exported-canvas{box-sizing:border-box;white-space:initial;color:var(--reactodia-font-color-base);font-family:var(--reactodia-font-family-base);font-size:var(--reactodia-font-size-base);line-height:var(--reactodia-line-height-base)}.reactodia-exported-canvas *,.reactodia-exported-canvas :before,.reactodia-exported-canvas :after{box-sizing:inherit}.reactodia-exported-layer{position:absolute}.reactodia-overlaid-element{cursor:move;outline:none}.reactodia-overlaid-element img{vertical-align:middle}.reactodia-overlaid-element--blurred{filter:grayscale();opacity:.5}.reactodia-overlaid-element--only-selected{touch-action:none}.reactodia-element-decorations{pointer-events:none}.reactodia-element-decorations>div>*{pointer-events:initial}.reactodia-link--blurred{opacity:.5}.reactodia-link--only-selected{touch-action:none}.reactodia-link-path__wrap{stroke-width:12px;stroke-linejoin:round;stroke-linecap:round;stroke:#0000;fill:none}.reactodia-link:hover .reactodia-link-path__wrap{stroke:var(--reactodia-color-emphasis-400);opacity:.44}.reactodia-link-vertices__vertex{cursor:all-scroll}.reactodia-link-vertices__vertex:not([fill]){fill:var(--reactodia-link-stroke-color)}.reactodia-link:not(:hover):not(.reactodia-link--only-selected) .reactodia-link-vertices__vertex{fill:#0000}.reactodia-link-vertices__handle{opacity:0;transition:opacity var(--reactodia-transition-duration);cursor:pointer}.reactodia-link-vertices__handle>circle{fill:var(--reactodia-color-emphasis-500)}.reactodia-link-vertices__handle>path{stroke:var(--reactodia-color-emphasis-200)}.reactodia-link-vertices__handle:hover>circle{fill:var(--reactodia-color-emphasis-900)}.reactodia-link:hover .reactodia-link-vertices__handle,.reactodia-link--only-selected .reactodia-link-vertices__handle{opacity:.8}.reactodia-link-marker__path:not([fill]){fill:var(--reactodia-link-stroke-color)}.reactodia-link-label{margin-top:calc(1.5em * var(--reactodia-link-label-line,0));border-radius:var(--reactodia-border-radius-s);color:var(--reactodia-font-color-base);background-color:var(--reactodia-canvas-background-color);white-space:nowrap;padding:0 2px}.reactodia-spinner__arrow{animation-name:reactodia-spinner-rotation;animation-duration:1.5s;animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-iteration-count:infinite}.reactodia-spinner__text{color:var(--reactodia-font-color-base)}.reactodia-spinner[data-error=true] .reactodia-spinner__arrow{color:var(--reactodia-color-danger);animation-iteration-count:1}@keyframes reactodia-spinner-rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.reactodia-authoring-state__element-outlines{pointer-events:none;position:absolute;overflow:visible}.reactodia-authoring-state__outline-overlay{fill:var(--reactodia-color-emphasis-0);fill-opacity:.3}.reactodia-authoring-state__outline-stripe-line{stroke:var(--reactodia-color-emphasis-300);stroke-width:10px;stroke-opacity:.2}.reactodia-authoring-state__outline-cross-line{stroke:var(--reactodia-color-danger)}.reactodia-authoring-state__link-temporary,.reactodia-authoring-state__link-added,.reactodia-authoring-state__link-changed,.reactodia-authoring-state__link-deleted,.reactodia-authoring-state__link-uncertain{stroke-width:5px;stroke-opacity:.5;fill:none}.reactodia-authoring-state__link-temporary{stroke:var(--reactodia-color-gray-600);stroke-dasharray:8 8}.reactodia-authoring-state__link-added{stroke:var(--reactodia-color-success)}.reactodia-authoring-state__link-changed{stroke:var(--reactodia-color-primary)}.reactodia-authoring-state__link-deleted{stroke:var(--reactodia-color-danger)}.reactodia-authoring-state__link-uncertain{stroke:var(--reactodia-color-primary)}.reactodia-authoring-state__item-validation{cursor:help;align-self:flex-end;align-items:center;display:flex}.reactodia-authoring-state__item-validation-icon{width:17px;height:15px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.reactodia-authoring-state--severity-info .reactodia-authoring-state__item-validation-icon{background:var(--reactodia-color-info);-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.568%201.031A6.8%206.8%200%200%201%2012.76%203.05a7.06%207.06%200%200%201%20.46%209.39%206.85%206.85%200%200%201-8.58%201.74%207%207%200%200%201-3.12-3.5%207.12%207.12%200%200%201-.23-4.71%207%207%200%200%201%202.77-3.79%206.8%206.8%200%200%201%204.508-1.149zM9.04%2013.88a5.89%205.89%200%200%200%203.41-2.07%206.07%206.07%200%200%200-.4-8.06%205.82%205.82%200%200%200-7.43-.74%206.06%206.06%200%200%200%20.5%2010.29%205.81%205.81%200%200%200%203.92.58zM7.375%206h1.25V5h-1.25v1zm1.25%201v4h-1.25V7h1.25z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.568%201.031A6.8%206.8%200%200%201%2012.76%203.05a7.06%207.06%200%200%201%20.46%209.39%206.85%206.85%200%200%201-8.58%201.74%207%207%200%200%201-3.12-3.5%207.12%207.12%200%200%201-.23-4.71%207%207%200%200%201%202.77-3.79%206.8%206.8%200%200%201%204.508-1.149zM9.04%2013.88a5.89%205.89%200%200%200%203.41-2.07%206.07%206.07%200%200%200-.4-8.06%205.82%205.82%200%200%200-7.43-.74%206.06%206.06%200%200%200%20.5%2010.29%205.81%205.81%200%200%200%203.92.58zM7.375%206h1.25V5h-1.25v1zm1.25%201v4h-1.25V7h1.25z'/%3e%3c/svg%3e\")}.reactodia-authoring-state--severity-warning .reactodia-authoring-state__item-validation-icon{background:var(--reactodia-color-warning);-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\")}.reactodia-authoring-state--severity-error .reactodia-authoring-state__item-validation-icon{background:var(--reactodia-color-danger);-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\")}.reactodia-authoring-state__state-label{font-weight:700}.reactodia-authoring-state__state-indicator{position:relative}.reactodia-authoring-state__state-indicator-body{white-space:nowrap;align-items:center;gap:var(--reactodia-spacing-horizontal);background:var(--reactodia-canvas-underlay-color);border-radius:var(--reactodia-border-radius-s);height:22px;padding:1px;display:flex;position:absolute;bottom:0}.reactodia-authoring-state__actions{gap:var(--reactodia-spacing-horizontal);display:flex}.reactodia-authoring-state__action{cursor:pointer;opacity:.5;transition:opacity var(--reactodia-transition-duration);background:0 0;border:0;padding:0}.reactodia-authoring-state__action:hover{opacity:1}.reactodia-authoring-state__action[disabled]{cursor:not-allowed;opacity:.2}.reactodia-authoring-state__action-edit{align-items:center;display:flex}.reactodia-authoring-state__action-edit:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.23%201h-1.46L3.52%209.25l-.16.22L1%2013.59%202.41%2015l4.12-2.36.22-.16L15%204.23V2.77L13.23%201zM2.41%2013.59l1.51-3%201.45%201.45-2.96%201.55zm3.83-2.06L4.47%209.76l8-8%201.77%201.77-8%208z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.23%201h-1.46L3.52%209.25l-.16.22L1%2013.59%202.41%2015l4.12-2.36.22-.16L15%204.23V2.77L13.23%201zM2.41%2013.59l1.51-3%201.45%201.45-2.96%201.55zm3.83-2.06L4.47%209.76l8-8%201.77%201.77-8%208z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-authoring-state__action-edit:not(:empty):before{margin-right:3px}.reactodia-authoring-state__action-delete{align-items:center;display:flex}.reactodia-authoring-state__action-delete:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-authoring-state__action-delete:not(:empty):before{margin-right:3px}.reactodia-authoring-state__action-discard{align-items:center;display:flex}.reactodia-authoring-state__action-discard:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.5%202v3.5L4%206h3.5V5H4.979l.941-.941a3.552%203.552%200%201%201%205.023%205.023L5.746%2014.28l.72.72%205.198-5.198A4.57%204.57%200%200%200%205.2%203.339l-.7.7V2h-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.5%202v3.5L4%206h3.5V5H4.979l.941-.941a3.552%203.552%200%201%201%205.023%205.023L5.746%2014.28l.72.72%205.198-5.198A4.57%204.57%200%200%200%205.2%203.339l-.7.7V2h-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-authoring-state__action-discard:not(:empty):before{margin-right:3px}.reactodia-authoring-state__decorator .reactodia-authoring-state__state-indicator{transition:opacity var(--reactodia-transition-duration)}.reactodia-authoring-state__decorator--optional .reactodia-authoring-state__state-indicator{opacity:0}.reactodia-overlaid-element:hover+.reactodia-element-decorations .reactodia-authoring-state__state-indicator,.reactodia-authoring-state__decorator--selected .reactodia-authoring-state__state-indicator,.reactodia-authoring-state__decorator:hover .reactodia-authoring-state__state-indicator{opacity:1}.reactodia-edit-entity-form--loading{justify-content:center;align-items:center}.reactodia-edit-entity-form label .reactodia-form-control+.reactodia-form-control{margin-top:var(--reactodia-spacing-vertical)}.reactodia-edit-relation-form--loading{justify-content:center;align-items:center}.reactodia-element-selector{flex-direction:column;display:flex}.reactodia-element-selector--search-existing{flex:auto}.reactodia-element-selector__search{flex-shrink:0;position:relative}.reactodia-element-selector__search-icon{content:\"\";opacity:.6;background-color:currentColor;width:16px;height:16px;margin-top:-7px;display:block;position:absolute;top:50%;left:10px;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-element-selector__search-input{padding-left:33px}.reactodia-element-selector__existing-elements-list{flex:1 1 0;margin-top:7px;padding-right:10px;overflow-y:scroll}.reactodia-element-selector__results-spinner{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.reactodia-element-selector__separator{text-align:center;margin:7px 0;overflow:hidden}.reactodia-element-selector__separator-text{color:var(--reactodia-border-color-base);font-size:13px;display:inline-block;position:relative}.reactodia-element-selector__separator-text:before,.reactodia-element-selector__separator-text:after{content:\"\";border-top:1px solid;width:500px;margin:0 10px;position:absolute;top:50%}.reactodia-element-selector__separator-text:before{left:100%}.reactodia-element-selector__separator-text:after{right:100%}.reactodia-loading-widget{color:var(--reactodia-color-emphasis-1000);background-color:var(--reactodia-canvas-overlay-color);z-index:calc(var(--reactodia-z-index-base) + 30);justify-content:center;align-items:center;margin:auto;display:flex;position:absolute;inset:0}.reactodia-fetch-status--loading{animation:2s linear infinite reactodia-loading-pulse}.reactodia-fetch-status--error:before{content:\"⚠ \";color:#ff000080}@keyframes reactodia-loading-pulse{0%{opacity:1;stroke-opacity:1}50%{opacity:.3;stroke-opacity:.3}to{opacity:1;stroke-opacity:1}}.reactodia-inline-diagnostic__icon{vertical-align:middle;width:16px;height:16px;margin-right:2px;display:inline-block}.reactodia-inline-diagnostic[data-reactodia-severity=info]{color:var(--reactodia-color-info)}.reactodia-inline-diagnostic[data-reactodia-severity=info] .reactodia-inline-diagnostic__icon{background:var(--reactodia-color-info);-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.568%201.031A6.8%206.8%200%200%201%2012.76%203.05a7.06%207.06%200%200%201%20.46%209.39%206.85%206.85%200%200%201-8.58%201.74%207%207%200%200%201-3.12-3.5%207.12%207.12%200%200%201-.23-4.71%207%207%200%200%201%202.77-3.79%206.8%206.8%200%200%201%204.508-1.149zM9.04%2013.88a5.89%205.89%200%200%200%203.41-2.07%206.07%206.07%200%200%200-.4-8.06%205.82%205.82%200%200%200-7.43-.74%206.06%206.06%200%200%200%20.5%2010.29%205.81%205.81%200%200%200%203.92.58zM7.375%206h1.25V5h-1.25v1zm1.25%201v4h-1.25V7h1.25z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.568%201.031A6.8%206.8%200%200%201%2012.76%203.05a7.06%207.06%200%200%201%20.46%209.39%206.85%206.85%200%200%201-8.58%201.74%207%207%200%200%201-3.12-3.5%207.12%207.12%200%200%201-.23-4.71%207%207%200%200%201%202.77-3.79%206.8%206.8%200%200%201%204.508-1.149zM9.04%2013.88a5.89%205.89%200%200%200%203.41-2.07%206.07%206.07%200%200%200-.4-8.06%205.82%205.82%200%200%200-7.43-.74%206.06%206.06%200%200%200%20.5%2010.29%205.81%205.81%200%200%200%203.92.58zM7.375%206h1.25V5h-1.25v1zm1.25%201v4h-1.25V7h1.25z'/%3e%3c/svg%3e\")}.reactodia-inline-diagnostic[data-reactodia-severity=warning]{color:var(--reactodia-color-warning)}.reactodia-inline-diagnostic[data-reactodia-severity=warning] .reactodia-inline-diagnostic__icon{background:var(--reactodia-color-warning);-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\")}.reactodia-inline-diagnostic[data-reactodia-severity=error]{color:var(--reactodia-color-danger)}.reactodia-inline-diagnostic[data-reactodia-severity=error] .reactodia-inline-diagnostic__icon{background:var(--reactodia-color-danger);-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.56%201h.88l6.54%2012.26-.44.74H1.44L1%2013.26%207.56%201zM8%202.28L2.28%2013H13.7L8%202.28zM8.625%2012v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3e%3c/svg%3e\")}.reactodia-property-input-file{border:2px dashed var(--reactodia-border-color-base);flex-direction:column;gap:4px;padding:6px;display:flex}.reactodia-property-input-file[data-reactodia-drag-state=accept]{background-color:var(--reactodia-color-success-contrast-background);border-color:var(--reactodia-color-success)}.reactodia-property-input-file[data-reactodia-drag-state=reject]{background-color:var(--reactodia-color-danger-contrast-background);border-color:var(--reactodia-color-danger)}.reactodia-property-input-file__input{display:none}.reactodia-property-input-file__spinner{flex:auto;justify-content:center;display:grid}.reactodia-property-input-file__placeholder{text-align:center;flex:auto}.reactodia-property-input-file__hint{color:var(--reactodia-color-emphasis-600);margin-bottom:4px}.reactodia-property-input-file__item{border:var(--reactodia-border-width-base) solid var(--reactodia-border-color-base);border-radius:var(--reactodia-border-radius-s);color:var(--reactodia-color-primary-contrast-foreground);gap:4px;padding:2px;display:flex}.reactodia-property-input-file__item-file{content:\"\";background-color:currentColor;flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:grid;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.71%204.29l-3-3L10%201H4L3%202v12l1%201h9l1-1V5l-.29-.71zM13%2014H4V2h5v4h4v8zm-3-9V2l3%203h-3z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.71%204.29l-3-3L10%201H4L3%202v12l1%201h9l1-1V5l-.29-.71zM13%2014H4V2h5v4h4v8zm-3-9V2l3%203h-3z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-property-input-file__item-image,.reactodia-property-input-file__item-file{background-color:var(--reactodia-color-primary-contrast-background);width:60px;height:60px}.reactodia-property-input-file__item-properties{white-space:nowrap;flex-direction:column;flex:auto;justify-content:center;display:flex;overflow:hidden}.reactodia-property-input-file__item-label{font-weight:700}.reactodia-property-input-file__item-label,.reactodia-property-input-file__item-property{text-overflow:ellipsis;overflow:hidden}.reactodia-property-input-file__item-remove[class]{align-items:center;display:flex}.reactodia-property-input-file__item-remove[class]:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-property-input-file__item-remove[class]:not(:empty):before{margin-right:3px}.reactodia-property-input-file__item-remove[class]{border:none;align-self:stretch;padding:6px 4px}.reactodia-property-input-list__row{gap:var(--reactodia-spacing-horizontal);display:flex}.reactodia-property-input-list__row+.reactodia-property-input-list__row{margin-top:var(--reactodia-spacing-vertical)}.reactodia-property-input-list__value-remove{align-items:center;display:flex}.reactodia-property-input-list__value-remove:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-property-input-list__value-remove:not(:empty):before{margin-right:3px}.reactodia-property-input-list__value-remove{border:none;align-self:flex-start;height:34px;padding:6px 4px}.reactodia-property-input-list__value-add{align-items:center;display:flex}.reactodia-property-input-list__value-add:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M14%207v1H8v6H7V8H1V7h6V1h1v6h6z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M14%207v1H8v6H7V8H1V7h6V1h1v6h6z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-property-input-list__value-add:not(:empty):before{margin-right:3px}.reactodia-property-input-list__value-add{padding:6px}.reactodia-property-input-text__language{width:unset;padding:0 2px}textarea.reactodia-property-input-text{resize:vertical;height:4em}.reactodia-paper{cursor:default;display:flex;position:relative}.reactodia-paper__pane{touch-action:none;will-change:scroll-position;flex:auto;overflow:scroll}.reactodia-paper--pan-on-touch .reactodia-paper__pane{touch-action:pan-x pan-y}.reactodia-paper--hide-scrollbars .reactodia-paper__pane{scrollbar-width:none}.reactodia-paper--hide-scrollbars .reactodia-paper__pane::-webkit-scrollbar{display:none}.reactodia-paper__layers{position:relative}.reactodia-paper--panning{cursor:grabbing}.reactodia-paper--panning:before{content:\" \";width:100%;height:100%;z-index:var(--reactodia-paper-panning-overlay-z-index,1);display:block;position:fixed}.reactodia-workspace-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--reactodia-color-gray-0:#fff;--reactodia-color-gray-100:#f5f6f7;--reactodia-color-gray-200:#ebedf0;--reactodia-color-gray-300:#dadde1;--reactodia-color-gray-400:#ccd0d5;--reactodia-color-gray-500:#bec3c9;--reactodia-color-gray-600:#8d949e;--reactodia-color-gray-700:#606770;--reactodia-color-gray-800:#444950;--reactodia-color-gray-900:#1c1e21;--reactodia-color-gray-1000:#000;--reactodia-color-primary:#337ab7;--reactodia-color-primary-dark:#306cce;--reactodia-color-primary-darker:#2d66c3;--reactodia-color-primary-darkest:#2554a0;--reactodia-color-primary-light:#538ce9;--reactodia-color-primary-lighter:#72a1ed;--reactodia-color-primary-lightest:#9abcf2;--reactodia-color-secondary:#ebedf0;--reactodia-color-secondary-dark:#d4d5d8;--reactodia-color-secondary-darker:#c8c9cc;--reactodia-color-secondary-darkest:#a4a6a8;--reactodia-color-secondary-light:#eef0f2;--reactodia-color-secondary-lighter:#f1f2f5;--reactodia-color-secondary-lightest:#f5f6f8;--reactodia-color-success:#5cb85c;--reactodia-color-success-dark:#009400;--reactodia-color-success-darker:#008b00;--reactodia-color-success-darkest:#007300;--reactodia-color-success-light:#26b226;--reactodia-color-success-lighter:#4dbf4d;--reactodia-color-success-lightest:#80d280;--reactodia-color-info:#54c7ec;--reactodia-color-info-dark:#4cb3d4;--reactodia-color-info-darker:#47a9c9;--reactodia-color-info-darkest:#3b8ba5;--reactodia-color-info-light:#6ecfef;--reactodia-color-info-lighter:#87d8f2;--reactodia-color-info-lightest:#aae3f6;--reactodia-color-warning:#ffba00;--reactodia-color-warning-dark:#e6a700;--reactodia-color-warning-darker:#d99e00;--reactodia-color-warning-darkest:#b38200;--reactodia-color-warning-light:#ffc426;--reactodia-color-warning-lighter:#ffcf4d;--reactodia-color-warning-lightest:#ffdd80;--reactodia-color-danger:#c9302c;--reactodia-color-danger-dark:#e13238;--reactodia-color-danger-darker:#d53035;--reactodia-color-danger-darkest:#af272b;--reactodia-color-danger-light:#fb565b;--reactodia-color-danger-lighter:#fb7478;--reactodia-color-danger-lightest:#fd9c9f;--reactodia-font-family-base:\"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif;--reactodia-font-family-monospace:\"Menlo\", \"Monaco\", \"Consolas\", \"Liberation Mono\", \"Courier New\", monospace;--reactodia-font-size-base:87.5%;--reactodia-line-height-base:1.42857;--reactodia-font-color-base:var(--reactodia-color-content);--reactodia-font-color-base-inverse:var(--reactodia-color-content-inverse);--reactodia-spacing-base:5px;--reactodia-spacing-vertical:var(--reactodia-spacing-base);--reactodia-spacing-horizontal:var(--reactodia-spacing-base);--reactodia-z-index-base:0;--reactodia-border-radius-base:4px;--reactodia-border-radius-s:2px;--reactodia-border-width-base:1px;--reactodia-transition-duration:.3s;--reactodia-input-border-color:var(--reactodia-border-color-base);--reactodia-input-border-color-focus:var(--reactodia-color-primary-lighter);--reactodia-input-border-radius:var(--reactodia-border-radius-base);--reactodia-input-border-width:var(--reactodia-border-width-base);--reactodia-button-border-radius:var(--reactodia-border-radius-base);--reactodia-button-border-width:var(--reactodia-border-width-base);--reactodia-button-default-border-color:var(--reactodia-border-color-base);--reactodia-draggable-handle-corner-width:10px;--reactodia-draggable-handle-side-width:5px;--reactodia-tree-background-color-active:#65a6ff4d;--reactodia-tree-background-color-focus:#bdd9ff4d;--reactodia-tree-border-color-active:#73d3ff80;--reactodia-tree-border-color-focus:#73d3ff4d;--reactodia-dialog-border-color:var(--reactodia-border-color-base);--reactodia-dialog-border-radius:var(--reactodia-border-radius-base);--reactodia-dialog-border-width:var(--reactodia-border-width-base);--reactodia-dialog-viewport-breakpoint-s:600px;--reactodia-canvas-background-color:var(--reactodia-background-color);--reactodia-viewport-dock-margin:10px;--reactodia-selection-link-color:#d8956d;--reactodia-selection-single-box-margin:5px;--reactodia-selection-single-box-color:#d8956d;--reactodia-selection-single-box-shadow:0 0 5px 0 var(--reactodia-selection-single-box-color) inset;--reactodia-navigator-scrollable-pane-fill:var(--reactodia-navigator-background-fill);--reactodia-navigator-viewport-fill:var(--reactodia-canvas-background-color);--reactodia-navigator-viewport-stroke-width:2;--reactodia-navigator-overflow-stroke-color:var(--reactodia-navigator-viewport-stroke-color);--reactodia-navigator-overflow-stroke-width:2;--reactodia-navigator-overflow-stroke-dash:5 5;--reactodia-toolbar-height:30px;--reactodia-item-min-width:150px;--reactodia-accordion-transition-duration:var(--reactodia-transition-duration);--reactodia-color-emphasis-0:var(--reactodia-color-gray-1000);--reactodia-color-emphasis-100:var(--reactodia-color-gray-900);--reactodia-color-emphasis-200:var(--reactodia-color-gray-800);--reactodia-color-emphasis-300:var(--reactodia-color-gray-700);--reactodia-color-emphasis-400:var(--reactodia-color-gray-600);--reactodia-color-emphasis-500:var(--reactodia-color-gray-500);--reactodia-color-emphasis-600:var(--reactodia-color-gray-400);--reactodia-color-emphasis-700:var(--reactodia-color-gray-300);--reactodia-color-emphasis-800:var(--reactodia-color-gray-200);--reactodia-color-emphasis-900:var(--reactodia-color-gray-100);--reactodia-color-emphasis-1000:var(--reactodia-color-gray-0);--reactodia-color-primary-contrast-background:#102445;--reactodia-color-primary-contrast-foreground:#ebf2fc;--reactodia-color-secondary-contrast-background:#474748;--reactodia-color-secondary-contrast-foreground:#fdfdfe;--reactodia-color-success-contrast-background:#003100;--reactodia-color-success-contrast-foreground:#e6f6e6;--reactodia-color-info-contrast-background:#193c47;--reactodia-color-info-contrast-foreground:#eef9fd;--reactodia-color-warning-contrast-background:#4d3800;--reactodia-color-warning-contrast-foreground:#fff8e6;--reactodia-color-danger-contrast-background:#4b1113;--reactodia-color-danger-contrast-foreground:#ffebec;--reactodia-color-content:#e3e3e3;--reactodia-color-content-inverse:var(--reactodia-color-gray-0);--reactodia-color-content-contrast:var(--reactodia-color-gray-900);--reactodia-background-color:#1b1b1d;--reactodia-background-color-surface:#242526;--reactodia-border-color-base:#555;--reactodia-input-color:#ddd;--reactodia-input-color-placeholder:#878787;--reactodia-input-background-color:#393c3e;--reactodia-input-background-color-disabled:#2f2f2f;--reactodia-button-default-background-color:var(--reactodia-background-color-surface);--reactodia-button-default-background-color-active:#a4a6a8;--reactodia-button-default-background-color-focus:var(--reactodia-button-default-color);--reactodia-button-default-color:#ebedf0;--reactodia-button-default-color-focus:var(--reactodia-background-color-surface);--reactodia-draggable-handle-corner-color:#ffffff61;--reactodia-draggable-handle-corner-color-focus:#ffffff80;--reactodia-draggable-handle-side-color:#fff;--reactodia-canvas-box-shadow:0 4px 15px 7px #aaaaaa0d;--reactodia-canvas-overlay-color:#000000b3;--reactodia-canvas-underlay-color:#1c1c1c99;--reactodia-element-background-color:#242526;--reactodia-link-stroke-color:var(--reactodia-color-emphasis-1000);--reactodia-monochrome-icon-filter:invert(1);--reactodia-selection-icon-filter:invert(1);--reactodia-selection-multiple-box-shadow:0 0 7px 7px #aaaaaa21;--reactodia-navigator-background-fill:var(--reactodia-color-gray-900);--reactodia-navigator-viewport-stroke-color:var(--reactodia-color-gray-800)}.reactodia-workspace-light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--reactodia-color-gray-0:#fff;--reactodia-color-gray-100:#f5f6f7;--reactodia-color-gray-200:#ebedf0;--reactodia-color-gray-300:#dadde1;--reactodia-color-gray-400:#ccd0d5;--reactodia-color-gray-500:#bec3c9;--reactodia-color-gray-600:#8d949e;--reactodia-color-gray-700:#606770;--reactodia-color-gray-800:#444950;--reactodia-color-gray-900:#1c1e21;--reactodia-color-gray-1000:#000;--reactodia-color-primary:#337ab7;--reactodia-color-primary-dark:#306cce;--reactodia-color-primary-darker:#2d66c3;--reactodia-color-primary-darkest:#2554a0;--reactodia-color-primary-light:#538ce9;--reactodia-color-primary-lighter:#72a1ed;--reactodia-color-primary-lightest:#9abcf2;--reactodia-color-secondary:#ebedf0;--reactodia-color-secondary-dark:#d4d5d8;--reactodia-color-secondary-darker:#c8c9cc;--reactodia-color-secondary-darkest:#a4a6a8;--reactodia-color-secondary-light:#eef0f2;--reactodia-color-secondary-lighter:#f1f2f5;--reactodia-color-secondary-lightest:#f5f6f8;--reactodia-color-success:#5cb85c;--reactodia-color-success-dark:#009400;--reactodia-color-success-darker:#008b00;--reactodia-color-success-darkest:#007300;--reactodia-color-success-light:#26b226;--reactodia-color-success-lighter:#4dbf4d;--reactodia-color-success-lightest:#80d280;--reactodia-color-info:#54c7ec;--reactodia-color-info-dark:#4cb3d4;--reactodia-color-info-darker:#47a9c9;--reactodia-color-info-darkest:#3b8ba5;--reactodia-color-info-light:#6ecfef;--reactodia-color-info-lighter:#87d8f2;--reactodia-color-info-lightest:#aae3f6;--reactodia-color-warning:#ffba00;--reactodia-color-warning-dark:#e6a700;--reactodia-color-warning-darker:#d99e00;--reactodia-color-warning-darkest:#b38200;--reactodia-color-warning-light:#ffc426;--reactodia-color-warning-lighter:#ffcf4d;--reactodia-color-warning-lightest:#ffdd80;--reactodia-color-danger:#c9302c;--reactodia-color-danger-dark:#e13238;--reactodia-color-danger-darker:#d53035;--reactodia-color-danger-darkest:#af272b;--reactodia-color-danger-light:#fb565b;--reactodia-color-danger-lighter:#fb7478;--reactodia-color-danger-lightest:#fd9c9f;--reactodia-font-family-base:\"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif;--reactodia-font-family-monospace:\"Menlo\", \"Monaco\", \"Consolas\", \"Liberation Mono\", \"Courier New\", monospace;--reactodia-font-size-base:87.5%;--reactodia-line-height-base:1.42857;--reactodia-font-color-base:var(--reactodia-color-content);--reactodia-font-color-base-inverse:var(--reactodia-color-content-inverse);--reactodia-spacing-base:5px;--reactodia-spacing-vertical:var(--reactodia-spacing-base);--reactodia-spacing-horizontal:var(--reactodia-spacing-base);--reactodia-z-index-base:0;--reactodia-border-radius-base:4px;--reactodia-border-radius-s:2px;--reactodia-border-width-base:1px;--reactodia-transition-duration:.3s;--reactodia-input-border-color:var(--reactodia-border-color-base);--reactodia-input-border-color-focus:var(--reactodia-color-primary-lighter);--reactodia-input-border-radius:var(--reactodia-border-radius-base);--reactodia-input-border-width:var(--reactodia-border-width-base);--reactodia-button-border-radius:var(--reactodia-border-radius-base);--reactodia-button-border-width:var(--reactodia-border-width-base);--reactodia-button-default-border-color:var(--reactodia-border-color-base);--reactodia-draggable-handle-corner-width:10px;--reactodia-draggable-handle-side-width:5px;--reactodia-tree-background-color-active:#65a6ff4d;--reactodia-tree-background-color-focus:#bdd9ff4d;--reactodia-tree-border-color-active:#73d3ff80;--reactodia-tree-border-color-focus:#73d3ff4d;--reactodia-dialog-border-color:var(--reactodia-border-color-base);--reactodia-dialog-border-radius:var(--reactodia-border-radius-base);--reactodia-dialog-border-width:var(--reactodia-border-width-base);--reactodia-dialog-viewport-breakpoint-s:600px;--reactodia-canvas-background-color:var(--reactodia-background-color);--reactodia-viewport-dock-margin:10px;--reactodia-selection-link-color:#d8956d;--reactodia-selection-single-box-margin:5px;--reactodia-selection-single-box-color:#d8956d;--reactodia-selection-single-box-shadow:0 0 5px 0 var(--reactodia-selection-single-box-color) inset;--reactodia-navigator-scrollable-pane-fill:var(--reactodia-navigator-background-fill);--reactodia-navigator-viewport-fill:var(--reactodia-canvas-background-color);--reactodia-navigator-viewport-stroke-width:2;--reactodia-navigator-overflow-stroke-color:var(--reactodia-navigator-viewport-stroke-color);--reactodia-navigator-overflow-stroke-width:2;--reactodia-navigator-overflow-stroke-dash:5 5;--reactodia-toolbar-height:30px;--reactodia-item-min-width:150px;--reactodia-accordion-transition-duration:var(--reactodia-transition-duration);--reactodia-color-emphasis-0:var(--reactodia-color-gray-0);--reactodia-color-emphasis-100:var(--reactodia-color-gray-100);--reactodia-color-emphasis-200:var(--reactodia-color-gray-200);--reactodia-color-emphasis-300:var(--reactodia-color-gray-300);--reactodia-color-emphasis-400:var(--reactodia-color-gray-400);--reactodia-color-emphasis-500:var(--reactodia-color-gray-500);--reactodia-color-emphasis-600:var(--reactodia-color-gray-600);--reactodia-color-emphasis-700:var(--reactodia-color-gray-700);--reactodia-color-emphasis-800:var(--reactodia-color-gray-800);--reactodia-color-emphasis-900:var(--reactodia-color-gray-900);--reactodia-color-emphasis-1000:var(--reactodia-color-gray-1000);--reactodia-color-primary-contrast-background:#ebf2fc;--reactodia-color-primary-contrast-foreground:#102445;--reactodia-color-secondary-contrast-background:#fdfdfe;--reactodia-color-secondary-contrast-foreground:#474748;--reactodia-color-success-contrast-background:#e6f6e6;--reactodia-color-success-contrast-foreground:#003100;--reactodia-color-info-contrast-background:#eef9fd;--reactodia-color-info-contrast-foreground:#193c47;--reactodia-color-warning-contrast-background:#fff8e6;--reactodia-color-warning-contrast-foreground:#4d3800;--reactodia-color-danger-contrast-background:#ffebec;--reactodia-color-danger-contrast-foreground:#4b1113;--reactodia-color-content:var(--reactodia-color-emphasis-900);--reactodia-color-content-inverse:var(--reactodia-color-emphasis-0);--reactodia-color-content-contrast:var(--reactodia-color-content);--reactodia-background-color:var(--reactodia-color-emphasis-0);--reactodia-background-color-surface:var(--reactodia-color-content-inverse);--reactodia-border-color-base:#ccc;--reactodia-input-color:#555;--reactodia-input-color-placeholder:var(--reactodia-color-emphasis-600);--reactodia-input-background-color:var(--reactodia-background-color-surface);--reactodia-input-background-color-disabled:var(--reactodia-color-emphasis-400);--reactodia-button-default-background-color:var(--reactodia-background-color-surface);--reactodia-button-default-background-color-active:#e0e0e0;--reactodia-button-default-background-color-focus:#d4d4d4;--reactodia-button-default-color:#333;--reactodia-button-default-color-focus:var(--reactodia-button-default-color);--reactodia-draggable-handle-corner-color:#00000061;--reactodia-draggable-handle-corner-color-focus:#00000080;--reactodia-draggable-handle-side-color:#000;--reactodia-canvas-box-shadow:0 4px 15px 7px #3333330d;--reactodia-canvas-overlay-color:#ffffffb3;--reactodia-canvas-underlay-color:#ffffffb3;--reactodia-element-background-color:#fafaf9;--reactodia-link-stroke-color:var(--reactodia-color-emphasis-1000);--reactodia-monochrome-icon-filter:;--reactodia-selection-icon-filter:;--reactodia-selection-multiple-box-shadow:0 0 7px 7px #33333321;--reactodia-navigator-background-fill:var(--reactodia-color-gray-100);--reactodia-navigator-viewport-stroke-color:var(--reactodia-color-gray-200)}.reactodia-draggable-handle--dock-n,.reactodia-draggable-handle--dock-s{background-color:var(--reactodia-draggable-handle-side-color);position:absolute}.reactodia-draggable-handle--dock-n:empty,.reactodia-draggable-handle--dock-s:empty{opacity:0}.reactodia-draggable-handle--dock-n:empty:hover,.reactodia-draggable-handle--dock-s:empty:hover{opacity:.1}.reactodia-draggable-handle--dock-n,.reactodia-draggable-handle--dock-s{cursor:ns-resize;width:100%}.reactodia-draggable-handle--dock-n:empty,.reactodia-draggable-handle--dock-s:empty{height:var(--reactodia-draggable-handle-side-width)}.reactodia-draggable-handle--dock-n{top:0}.reactodia-draggable-handle--dock-s{bottom:0}.reactodia-draggable-handle--dock-w,.reactodia-draggable-handle--dock-e{background-color:var(--reactodia-draggable-handle-side-color);position:absolute}.reactodia-draggable-handle--dock-w:empty,.reactodia-draggable-handle--dock-e:empty{opacity:0}.reactodia-draggable-handle--dock-w:empty:hover,.reactodia-draggable-handle--dock-e:empty:hover{opacity:.1}.reactodia-draggable-handle--dock-w,.reactodia-draggable-handle--dock-e{cursor:ew-resize;height:100%;top:0}.reactodia-draggable-handle--dock-w:empty,.reactodia-draggable-handle--dock-e:empty{width:var(--reactodia-draggable-handle-side-width)}.reactodia-draggable-handle--dock-w{left:0}.reactodia-draggable-handle--dock-e{right:0}.reactodia-draggable-handle--dock-nw,.reactodia-draggable-handle--dock-ne,.reactodia-draggable-handle--dock-sw,.reactodia-draggable-handle--dock-se{width:0;height:0;position:absolute}.reactodia-draggable-handle--dock-nw:empty,.reactodia-draggable-handle--dock-ne:empty,.reactodia-draggable-handle--dock-sw:empty,.reactodia-draggable-handle--dock-se:empty{border-radius:var(--reactodia-border-radius-base);border-style:solid}.reactodia-draggable-handle--dock-nw:empty:before,.reactodia-draggable-handle--dock-ne:empty:before,.reactodia-draggable-handle--dock-sw:empty:before,.reactodia-draggable-handle--dock-se:empty:before{content:\"\";border-radius:var(--reactodia-border-radius-base);border-style:solid;width:0;height:0;position:absolute}.reactodia-draggable-handle--dock-nw,.reactodia-draggable-handle--dock-ne{border-color:var(--reactodia-draggable-handle-corner-color) transparent transparent transparent}.reactodia-draggable-handle--dock-nw:before,.reactodia-draggable-handle--dock-ne:before{top:calc(-1 * var(--reactodia-draggable-handle-corner-width));border-color:var(--reactodia-draggable-handle-corner-color) transparent transparent transparent}.reactodia-draggable-handle--dock-nw:hover,.reactodia-draggable-handle--dock-ne:hover{border-color:var(--reactodia-draggable-handle-corner-color-focus) transparent transparent transparent}.reactodia-draggable-handle--dock-nw{border-width:var(--reactodia-draggable-handle-corner-width) var(--reactodia-draggable-handle-corner-width) 0 0;cursor:nwse-resize;top:0;left:0}.reactodia-draggable-handle--dock-nw:before{border-width:calc(var(--reactodia-draggable-handle-corner-width) / 2) calc(var(--reactodia-draggable-handle-corner-width) / 2) 0 0;left:0}.reactodia-draggable-handle--dock-ne{border-width:var(--reactodia-draggable-handle-corner-width) 0 0 var(--reactodia-draggable-handle-corner-width);cursor:nesw-resize;top:0;right:0}.reactodia-draggable-handle--dock-ne:before{border-width:calc(var(--reactodia-draggable-handle-corner-width) / 2) 0 0 calc(var(--reactodia-draggable-handle-corner-width) / 2);right:0}.reactodia-draggable-handle--dock-sw,.reactodia-draggable-handle--dock-se{border-color:transparent transparent var(--reactodia-draggable-handle-corner-color) transparent}.reactodia-draggable-handle--dock-sw:before,.reactodia-draggable-handle--dock-se:before{bottom:calc(-1 * var(--reactodia-draggable-handle-corner-width));border-color:transparent transparent var(--reactodia-draggable-handle-corner-color) transparent}.reactodia-draggable-handle--dock-sw:hover,.reactodia-draggable-handle--dock-se:hover{border-color:transparent transparent var(--reactodia-draggable-handle-corner-color-focus) transparent}.reactodia-draggable-handle--dock-sw{border-width:0 var(--reactodia-draggable-handle-corner-width) var(--reactodia-draggable-handle-corner-width) 0;cursor:nesw-resize;bottom:0;left:0}.reactodia-draggable-handle--dock-sw:before{border-width:0 calc(var(--reactodia-draggable-handle-corner-width) / 2) calc(var(--reactodia-draggable-handle-corner-width) / 2) 0;left:0}.reactodia-draggable-handle--dock-se{border-width:0 0 var(--reactodia-draggable-handle-corner-width) var(--reactodia-draggable-handle-corner-width);cursor:nwse-resize;bottom:0;right:0}.reactodia-draggable-handle--dock-se:before{border-width:0 0 calc(var(--reactodia-draggable-handle-corner-width) / 2) calc(var(--reactodia-draggable-handle-corner-width) / 2);right:0}.reactodia-drag-link-mover{overflow:visible}.reactodia-drag-link-mover__highlight-overlay{fill:var(--reactodia-color-emphasis-0);fill-opacity:.3}.reactodia-drag-link-mover__highlight-allow,.reactodia-drag-link-mover__highlight-deny{stroke-width:3px;fill:#0000}.reactodia-drag-link-mover__highlight-allow{stroke:var(--reactodia-color-success)}.reactodia-drag-link-mover__highlight-deny{stroke:var(--reactodia-color-danger)}.reactodia-drag-link-mover__drop-underlay{fill:var(--reactodia-color-emphasis-1000);fill-opacity:.1}.reactodia-drag-link-mover__drop-allow{stroke:var(--reactodia-color-success)}.reactodia-drag-link-mover__drop-deny>*{stroke:var(--reactodia-color-danger)}.reactodia-dropdown{float:left;z-index:calc(var(--reactodia-z-index-base) + 40);position:relative}.reactodia-dropdown__content{opacity:1;flex-direction:column;transition:opacity .1s ease-in-out;display:flex;position:absolute}.reactodia-dropdown--up .reactodia-dropdown__content{bottom:100%}.reactodia-dropdown--expanded .reactodia-dropdown__content{box-shadow:var(--reactodia-canvas-box-shadow)}.reactodia-dropdown--collapsed .reactodia-dropdown__content{opacity:0;pointer-events:none;height:0;transition:none}.reactodia-dropdown--down.reactodia-dropdown--expanded .reactodia-dropdown-menu__toggle{border-bottom-left-radius:unset;border-bottom-right-radius:unset;border-bottom:none}.reactodia-dropdown--up.reactodia-dropdown--expanded .reactodia-dropdown-menu__toggle{border-top-left-radius:unset;border-top-right-radius:unset;border-top:none}.reactodia-dropdown-menu__toggle:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M16%205H0V4h16v1zm0%208H0v-1h16v1zm0-4.008H0V8h16v.992z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M16%205H0V4h16v1zm0%208H0v-1h16v1zm0-4.008H0V8h16v.992z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-dropdown-menu__items{background-color:var(--reactodia-background-color-surface);display:flex}.reactodia-dropdown--down .reactodia-dropdown-menu__items{flex-direction:column}.reactodia-dropdown--up .reactodia-dropdown-menu__items{flex-direction:column-reverse}.reactodia-dropdown-menu-item{border-radius:unset;outline-offset:-2px;display:flex}.reactodia-dropdown--down .reactodia-dropdown-menu-item:first-child{border-top-right-radius:var(--reactodia-button-border-radius)}.reactodia-dropdown--down .reactodia-dropdown-menu-item:last-child{border-bottom-left-radius:var(--reactodia-button-border-radius);border-bottom-right-radius:var(--reactodia-button-border-radius)}.reactodia-dropdown--down .reactodia-dropdown-menu-item~.reactodia-dropdown-menu-item{margin-top:calc(-1 * var(--reactodia-button-border-width));border-top-color:var(--reactodia-button-default-border-color)}.reactodia-dropdown--up .reactodia-dropdown-menu-item:first-child{border-bottom-right-radius:var(--reactodia-button-border-radius)}.reactodia-dropdown--up .reactodia-dropdown-menu-item:last-child{border-top-left-radius:var(--reactodia-button-border-radius);border-top-right-radius:var(--reactodia-button-border-radius)}.reactodia-dropdown--up .reactodia-dropdown-menu-item~.reactodia-dropdown-menu-item{margin-bottom:calc(-1 * var(--reactodia-button-border-width));border-bottom-color:var(--reactodia-button-default-border-color)}.reactodia-inline-entity{border:1px solid var(--reactodia-inline-entity-color);background:var(--reactodia-inline-entity-color);word-wrap:break-word;padding-left:5px;line-height:1.3}.reactodia-inline-entity__label{background:var(--reactodia-element-background-color);padding:0 2px}.reactodia-list-element-view{background:var(--reactodia-element-style-color);border-radius:var(--reactodia-border-radius-s);opacity:1;cursor:move;-webkit-user-select:none;user-select:none;margin:0 0 2px;padding:1px 1px 1px 10px;display:block;position:relative}.reactodia-list-element-view--disabled{opacity:.4;cursor:default}.reactodia-list-element-view__label{background:var(--reactodia-element-background-color);border-radius:0 var(--reactodia-border-radius-s) var(--reactodia-border-radius-s) 0;font-family:var(--reactodia-font-family-base);overflow-wrap:break-word;min-height:1.3em;padding-left:7px;padding-right:5px;font-size:15px}.reactodia-list-element-view--selected .reactodia-list-element-view__label{color:var(--reactodia-color-content-contrast)}.reactodia-text-highlight{font-weight:700}.reactodia-no-search-results{text-align:center;color:var(--reactodia-input-color-placeholder);font-style:italic}@keyframes reactodia-progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}.reactodia-progress-bar{background-color:var(--reactodia-color-emphasis-200);flex-shrink:0;width:100%;overflow:hidden;box-shadow:inset 0 1px 2px #0000001a}.reactodia-progress-bar__bar{float:left;background-color:var(--reactodia-color-primary);background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-repeat:repeat-x;background-size:40px 40px;height:100%;transition:width .6s;animation:2s linear infinite reactodia-progress-bar-stripes}.reactodia-progress-bar--error .reactodia-progress-bar__bar{background-color:var(--reactodia-color-danger)}.reactodia-progress-bar--loading,.reactodia-progress-bar--error{transition:height var(--reactodia-transition-duration) .3s}.reactodia-progress-bar--completed{transition:height var(--reactodia-transition-duration) 0s}.reactodia-resizable-box{border:var(--reactodia-resizable-box-border-width) solid var(--reactodia-resizable-box-color)}.reactodia-resizable-box__handle{background-color:unset;touch-action:none}.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-n,.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-s,.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-w,.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-e{justify-content:center;align-items:center;display:flex}.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-n{margin-top:calc(-.5 * var(--reactodia-resizable-box-border-width))}.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-s{margin-bottom:calc(-.5 * var(--reactodia-resizable-box-border-width))}.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-w{margin-left:calc(-.5 * var(--reactodia-resizable-box-border-width))}.reactodia-resizable-box__handle.reactodia-draggable-handle--dock-e{margin-right:calc(-.5 * var(--reactodia-resizable-box-border-width))}.reactodia-resizable-box__handle rect{stroke-width:2px}.reactodia-resizable-box__handle circle,.reactodia-resizable-box__handle rect{stroke:var(--reactodia-resizable-box-color);fill:var(--reactodia-canvas-background-color)}.reactodia-resizable-box__handle:hover circle,.reactodia-resizable-box__handle:hover rect{fill:var(--reactodia-resizable-box-color)}.reactodia-resizable-box__corner{width:20px;height:20px;position:absolute;top:-10px;left:-10px}.reactodia-resizable-box__vertical{width:30px;height:10px;position:absolute}.reactodia-resizable-box__horizontal{width:10px;height:30px;position:absolute}.reactodia-search-input{display:flex}.reactodia-search-input__input::placeholder{color:var(--reactodia-input-color-placeholder)}.reactodia-search-input--has-submit .reactodia-search-input__input{border-top-right-radius:unset;border-bottom-right-radius:unset}.reactodia-search-input__clear-container{align-items:center;width:0;display:flex;overflow:visible}.reactodia-search-input__clear{cursor:pointer;color:var(--reactodia-button-default-color);border-top-right-radius:var(--reactodia-input-border-radius);border-bottom-right-radius:var(--reactodia-input-border-radius);transition:background-color var(--reactodia-transition-duration);background:0 0;border:0;padding:8px;position:relative;left:-33px}.reactodia-search-input__clear:hover{color:var(--reactodia-button-default-color-focus);background-color:var(--reactodia-button-default-background-color-focus)}.reactodia-search-input__clear:after{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-search-input--has-submit .reactodia-search-input__clear{border-top-right-radius:unset;border-bottom-right-radius:unset}.reactodia-search-input__submit{border-top-left-radius:unset;border-bottom-left-radius:unset;margin-left:-1px}.reactodia-search-input__submit:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-search-results__root{margin:0;padding:0}.reactodia-search-results__item{list-style:none;display:contents}.reactodia-viewport-dock--row-n,.reactodia-viewport-dock--row-s,.reactodia-viewport-dock--column-w,.reactodia-viewport-dock--column-e{pointer-events:none}.reactodia-viewport-dock--row-n>*,.reactodia-viewport-dock--row-s>*,.reactodia-viewport-dock--column-w>*,.reactodia-viewport-dock--column-e>*{pointer-events:auto}.reactodia-viewport-dock--row-n,.reactodia-viewport-dock--row-s{justify-content:center;display:flex;position:absolute;left:0;right:0}.reactodia-viewport-dock--row-n{top:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-y,0px))}.reactodia-viewport-dock--row-s{bottom:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-y,0px))}.reactodia-viewport-dock--column-w,.reactodia-viewport-dock--column-e{flex-direction:column;justify-content:center;display:flex;position:absolute;top:0;bottom:0}.reactodia-viewport-dock--column-w{left:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-x,0px))}.reactodia-viewport-dock--column-e{right:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-x,0px))}.reactodia-viewport-dock--corner{display:contents}.reactodia-viewport-dock--dock-nw{left:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-x,0px));top:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-y,0px));position:absolute}.reactodia-viewport-dock--dock-ne{right:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-x,0px));top:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-y,0px));position:absolute}.reactodia-viewport-dock--dock-se{right:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-x,0px));bottom:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-y,0px));position:absolute}.reactodia-viewport-dock--dock-sw{left:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-x,0px));bottom:calc(var(--reactodia-viewport-dock-margin) + var(--reactodia-viewport-dock-offset-y,0px));position:absolute}.reactodia-canvas{flex:1 1 0;width:100%;display:flex;overflow:hidden}.reactodia-class-tree{flex-direction:column;flex:auto;display:flex}.reactodia-class-tree__filter{flex-shrink:0;margin:10px 0}.reactodia-class-tree--controlled .reactodia-class-tree__filter{margin-top:0}.reactodia-class-tree__filter-group{margin-left:10px;margin-right:10px}.reactodia-class-tree__only-creatable{margin-top:5px;display:block}.reactodia-class-tree__tree{border-top:1px solid var(--reactodia-border-color-base)}.reactodia-class-tree__no-results{margin-top:10px}.reactodia-class-tree__spinner{align-self:center;margin:auto}.reactodia-class-tree-item{margin:1px 0;list-style:none}.reactodia-class-tree-item__row{white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;display:flex}.reactodia-class-tree-item__row>*{flex-shrink:0}.reactodia-class-tree-item__body{border-radius:var(--reactodia-border-radius-s);border:1px solid #0000;align-items:center;padding:1px;font-size:15px;text-decoration:none;display:flex}.reactodia-class-tree-item__body:hover{background:var(--reactodia-tree-background-color-focus);border-color:var(--reactodia-tree-border-color-focus);cursor:pointer}.reactodia-class-tree-item__body--selected{background-color:var(--reactodia-tree-background-color-active);border-color:var(--reactodia-tree-border-color-active)}.reactodia-class-tree-item__icon-container{height:20px}.reactodia-class-tree-item__icon{height:100%;display:block}.reactodia-class-tree-item__icon--monochrome{filter:var(--reactodia-monochrome-icon-filter)}.reactodia-class-tree-item__default-icon-leaf,.reactodia-class-tree-item__default-icon-parent{content:\"\";width:20px;height:20px;color:var(--reactodia-element-style-color);background-color:currentColor;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.51%204l-5-3h-1l-5%203-.49.86v6l.49.85%205%203h1l5-3%20.49-.85v-6L13.51%204zm-6%209.56l-4.5-2.7V5.7l4.5%202.45v5.41zM3.27%204.7l4.74-2.84%204.74%202.84-4.74%202.59L3.27%204.7zm9.74%206.16l-4.5%202.7V8.15l4.5-2.45v5.16z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.51%204l-5-3h-1l-5%203-.49.86v6l.49.85%205%203h1l5-3%20.49-.85v-6L13.51%204zm-6%209.56l-4.5-2.7V5.7l4.5%202.45v5.41zM3.27%204.7l4.74-2.84%204.74%202.84-4.74%202.59L3.27%204.7zm9.74%206.16l-4.5%202.7V8.15l4.5-2.45v5.16z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-class-tree-item__label{color:var(--reactodia-font-color-base);margin-left:5px}.reactodia-class-tree-item__highlighted-term{font-weight:700}.reactodia-class-tree-item__count{margin-left:5px}.reactodia-class-tree-item__root{margin:0;padding:0}.reactodia-class-tree-item__children{margin:0 0 0 20px;padding:0}.reactodia-class-tree-item__toggle,.reactodia-class-tree-item__toggle-expanded,.reactodia-class-tree-item__toggle-collapsed{margin:2px}.reactodia-class-tree-item__toggle-expanded,.reactodia-class-tree-item__toggle-collapsed{opacity:.5}.reactodia-class-tree-item__toggle-expanded:hover,.reactodia-class-tree-item__toggle-collapsed:hover{cursor:pointer;opacity:1;transition:opacity var(--reactodia-transition-duration)}.reactodia-class-tree-item__toggle:before{content:\"\";width:16px;height:16px;display:block}.reactodia-class-tree-item__toggle-expanded:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M2%205.56L2.413%205h11.194l.393.54L8.373%2011h-.827L2%205.56z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M2%205.56L2.413%205h11.194l.393.54L8.373%2011h-.827L2%205.56z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-class-tree-item__toggle-collapsed:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M5.56%2014L5%2013.587V2.393L5.54%202%2011%207.627v.827L5.56%2014z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M5.56%2014L5%2013.587V2.393L5.54%202%2011%207.627v.827L5.56%2014z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-class-tree-item__create-button{cursor:move;margin-left:5px;padding:5px 4px 5px 5px}.reactodia-class-tree-item__create-button:before{content:\"\";background-color:currentColor;width:12px;height:12px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M14%207v1H8v6H7V8H1V7h6V1h1v6h6z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M14%207v1H8v6H7V8H1V7h6V1h1v6h6z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-connections-menu{flex-direction:column;flex:auto;display:flex}.reactodia-connections-menu__breadcrumbs{text-overflow:ellipsis;flex-grow:0;height:30px;min-height:30px;padding:10px 10px 0;overflow:hidden}.reactodia-connections-menu__breadcrumbs-link{color:var(--reactodia-color-primary);cursor:pointer;font-family:unset;font-size:unset;font-weight:unset;background:0 0;border:none;padding:0;text-decoration:none}.reactodia-connections-menu__breadcrumbs-link:hover{text-decoration:underline}.reactodia-connections-menu__search{flex:none;align-items:center;padding:10px}.reactodia-connections-menu__sort-switches{flex:0 0 20px;margin-left:10px}.reactodia-connections-menu__sort-switch{display:none}.reactodia-connections-menu__sort-switch:checked+.reactodia-connections-menu__sort-switch-label{color:var(--reactodia-color-primary-light);opacity:1}.reactodia-connections-menu__sort-switch-label{cursor:pointer;opacity:.4;text-align:center;margin:0;display:block}.reactodia-connections-menu__sort-switch-label:hover{opacity:1}.reactodia-connections-menu__sort-label-alpha:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.223%2010.933c.326.192.699.29%201.077.282a2.159%202.159%200%200%200%201.754-.842%203.291%203.291%200%200%200%20.654-2.113%202.886%202.886%200%200%200-.576-1.877%201.99%201.99%200%200%200-1.634-.733%202.294%202.294%200%200%200-1.523.567V3.475h-.991V11.1h.995v-.344c.076.066.158.125.244.177zM7.85%206.7c.186-.079.388-.113.59-.1a1.08%201.08%200%200%201%20.896.428c.257.363.382.802.357%201.245a2.485%202.485%200%200%201-.4%201.484%201.133%201.133%200%200%201-.96.508%201.224%201.224%200%200%201-.976-.417A1.522%201.522%200%200%201%206.975%208.8v-.6a1.722%201.722%200%200%201%20.393-1.145c.13-.154.296-.276.482-.355zM3.289%205.675a3.03%203.03%200%200%200-.937.162%202.59%202.59%200%200%200-.8.4l-.1.077v1.2l.423-.359a2.1%202.1%200%200%201%201.366-.572.758.758%200%200%201%20.661.282c.15.232.23.503.231.779L2.9%207.825a2.6%202.6%200%200%200-1.378.575%201.65%201.65%200%200%200-.022%202.336%201.737%201.737%200%200%200%201.253.454%201.96%201.96%200%200%200%201.107-.332c.102-.068.197-.145.286-.229v.444h.941V7.715a2.193%202.193%200%200%200-.469-1.5%201.687%201.687%200%200%200-1.329-.54zm.857%203.041c.02.418-.12.829-.391%201.148a1.221%201.221%200%200%201-.955.422.832.832%200%200%201-.608-.2.833.833%200%200%201%200-1.091c.281-.174.6-.277.93-.3l1.02-.148.004.169zm8.313%202.317c.307.13.64.193.973.182.495.012.983-.114%201.41-.365l.123-.075.013-.007V9.615l-.446.32c-.316.224-.696.34-1.084.329A1.3%201.3%200%200%201%2012.4%209.8a1.975%201.975%200%200%201-.4-1.312%202.01%202.01%200%200%201%20.453-1.381A1.432%201.432%200%200%201%2013.6%206.6a1.8%201.8%200%200%201%20.971.279l.43.265V5.97l-.17-.073a2.9%202.9%200%200%200-1.17-.247%202.52%202.52%200%200%200-1.929.817%202.9%202.9%200%200%200-.747%202.049c-.028.707.21%201.4.67%201.939.222.249.497.446.804.578z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.223%2010.933c.326.192.699.29%201.077.282a2.159%202.159%200%200%200%201.754-.842%203.291%203.291%200%200%200%20.654-2.113%202.886%202.886%200%200%200-.576-1.877%201.99%201.99%200%200%200-1.634-.733%202.294%202.294%200%200%200-1.523.567V3.475h-.991V11.1h.995v-.344c.076.066.158.125.244.177zM7.85%206.7c.186-.079.388-.113.59-.1a1.08%201.08%200%200%201%20.896.428c.257.363.382.802.357%201.245a2.485%202.485%200%200%201-.4%201.484%201.133%201.133%200%200%201-.96.508%201.224%201.224%200%200%201-.976-.417A1.522%201.522%200%200%201%206.975%208.8v-.6a1.722%201.722%200%200%201%20.393-1.145c.13-.154.296-.276.482-.355zM3.289%205.675a3.03%203.03%200%200%200-.937.162%202.59%202.59%200%200%200-.8.4l-.1.077v1.2l.423-.359a2.1%202.1%200%200%201%201.366-.572.758.758%200%200%201%20.661.282c.15.232.23.503.231.779L2.9%207.825a2.6%202.6%200%200%200-1.378.575%201.65%201.65%200%200%200-.022%202.336%201.737%201.737%200%200%200%201.253.454%201.96%201.96%200%200%200%201.107-.332c.102-.068.197-.145.286-.229v.444h.941V7.715a2.193%202.193%200%200%200-.469-1.5%201.687%201.687%200%200%200-1.329-.54zm.857%203.041c.02.418-.12.829-.391%201.148a1.221%201.221%200%200%201-.955.422.832.832%200%200%201-.608-.2.833.833%200%200%201%200-1.091c.281-.174.6-.277.93-.3l1.02-.148.004.169zm8.313%202.317c.307.13.64.193.973.182.495.012.983-.114%201.41-.365l.123-.075.013-.007V9.615l-.446.32c-.316.224-.696.34-1.084.329A1.3%201.3%200%200%201%2012.4%209.8a1.975%201.975%200%200%201-.4-1.312%202.01%202.01%200%200%201%20.453-1.381A1.432%201.432%200%200%201%2013.6%206.6a1.8%201.8%200%200%201%20.971.279l.43.265V5.97l-.17-.073a2.9%202.9%200%200%200-1.17-.247%202.52%202.52%200%200%200-1.929.817%202.9%202.9%200%200%200-.747%202.049c-.028.707.21%201.4.67%201.939.222.249.497.446.804.578z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-connections-menu__sort-label-smart:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M11.67%208.658a3.661%203.661%200%200%200-.781%201.114%203.28%203.28%200%200%200-.268%201.329v1.6a1.304%201.304%200%200%201-.794%201.197%201.282%201.282%200%200%201-.509.102H7.712a1.285%201.285%200%200%201-.922-.379%201.303%201.303%200%200%201-.38-.92v-1.6c0-.479-.092-.921-.274-1.329a3.556%203.556%200%200%200-.776-1.114%204.689%204.689%200%200%201-1.006-1.437A4.187%204.187%200%200%201%204%205.5a4.432%204.432%200%200%201%20.616-2.27c.197-.336.432-.64.705-.914a4.6%204.6%200%200%201%20.911-.702c.338-.196.7-.348%201.084-.454a4.45%204.45%200%200%201%201.2-.16%204.476%204.476%200%200%201%202.276.614%204.475%204.475%200%200%201%201.622%201.616%204.438%204.438%200%200%201%20.616%202.27c0%20.617-.117%201.191-.353%201.721a4.69%204.69%200%200%201-1.006%201.437zM9.623%2010.5H7.409v2.201c0%20.081.028.15.09.212a.29.29%200%200%200%20.213.09h1.606a.289.289%200%200%200%20.213-.09.286.286%200%200%200%20.09-.212V10.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M11.67%208.658a3.661%203.661%200%200%200-.781%201.114%203.28%203.28%200%200%200-.268%201.329v1.6a1.304%201.304%200%200%201-.794%201.197%201.282%201.282%200%200%201-.509.102H7.712a1.285%201.285%200%200%201-.922-.379%201.303%201.303%200%200%201-.38-.92v-1.6c0-.479-.092-.921-.274-1.329a3.556%203.556%200%200%200-.776-1.114%204.689%204.689%200%200%201-1.006-1.437A4.187%204.187%200%200%201%204%205.5a4.432%204.432%200%200%201%20.616-2.27c.197-.336.432-.64.705-.914a4.6%204.6%200%200%201%20.911-.702c.338-.196.7-.348%201.084-.454a4.45%204.45%200%200%201%201.2-.16%204.476%204.476%200%200%201%202.276.614%204.475%204.475%200%200%201%201.622%201.616%204.438%204.438%200%200%201%20.616%202.27c0%20.617-.117%201.191-.353%201.721a4.69%204.69%200%200%201-1.006%201.437zM9.623%2010.5H7.409v2.201c0%20.081.028.15.09.212a.29.29%200%200%200%20.213.09h1.606a.289.289%200%200%200%20.213-.09.286.286%200%200%200%20.09-.212V10.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-connections-menu__spinner{align-self:center;margin:auto}.reactodia-connections-menu__links-list{border-top:1px solid var(--reactodia-border-color-base);flex-grow:1;padding:5px;overflow:hidden auto}.reactodia-connections-menu__links-list-empty{align-items:center;display:flex}.reactodia-connections-menu__links-root{margin:0;padding:0;list-style-type:none}.reactodia-connections-menu__links-item{display:contents}.reactodia-connections-menu__links-no-results{width:100%;color:var(--reactodia-color-emphasis-400);text-align:center;font-size:x-large;font-weight:700}.reactodia-connections-menu__links-probably-label{margin:5px 0;font-weight:700}.reactodia-connections-menu__links-list-hr{border:0;border-top:1px solid var(--reactodia-border-color-base);height:0;margin-top:6px;margin-bottom:6px}.reactodia-connections-menu__link{background:var(--reactodia-color-emphasis-200);border-radius:var(--reactodia-border-radius-s);margin-bottom:4px;display:flex;position:relative}.reactodia-connections-menu__link:hover{background-color:var(--reactodia-color-emphasis-400)}.reactodia-connections-menu__link-button{border:unset;font-family:unset;font-size:unset;text-align:start;background:0 0;flex:auto;align-items:center;height:30px;padding:0 5px 0 0;display:flex;overflow:hidden}.reactodia-connections-menu__link-direction{flex-shrink:0;align-items:center;min-height:30px;padding:5px 0 5px 10px;display:flex}.reactodia-connections-menu__link:not(:hover) .reactodia-connections-menu__link-direction{background:var(--reactodia-color-emphasis-300)}.reactodia-connections-menu__link-direction-in,.reactodia-connections-menu__link-direction-out{opacity:.5;background-color:currentColor;flex-shrink:0;width:20px;height:20px;-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.reactodia-connections-menu__link-direction-in{margin:0 14px 0 0;-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%205.9,6%20h%20-1%20V%203%20h%2010%20v%2010%20h%20-10%20v%20-3%20h%201%20v%202%20h%208%20V%204%20h%20-8%20z'%20/%3e%3cpath%20d='M%201.5,7.5%20H%207.771919%20L%206.44298,6%207.10745,5.25%209.4,7.8376461%20V%208.1623539%20L%207.10745,10.75%206.44298,10%207.771919,8.5%20H%201.5%20Z'%20/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%205.9,6%20h%20-1%20V%203%20h%2010%20v%2010%20h%20-10%20v%20-3%20h%201%20v%202%20h%208%20V%204%20h%20-8%20z'%20/%3e%3cpath%20d='M%201.5,7.5%20H%207.771919%20L%206.44298,6%207.10745,5.25%209.4,7.8376461%20V%208.1623539%20L%207.10745,10.75%206.44298,10%207.771919,8.5%20H%201.5%20Z'%20/%3e%3c/svg%3e\")}.reactodia-connections-menu__link-direction-out{margin:0 8px 0 6px;-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2010.5,6%20h%201%20V%203%20h%20-10%20v%2010%20h%2010%20v%20-3%20h%20-1%20v%202%20h%20-8%20V%204%20h%208%20z'%20/%3e%3cpath%20d='m%207,7.5%20h%206.271919%20L%2011.94298,6%2012.60745,5.25%2014.9,7.8376461%20V%208.1623539%20L%2012.60745,10.75%2011.94298,10%2013.271919,8.5%20H%207%20Z'%20/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2010.5,6%20h%201%20V%203%20h%20-10%20v%2010%20h%2010%20v%20-3%20h%20-1%20v%202%20h%20-8%20V%204%20h%208%20z'%20/%3e%3cpath%20d='m%207,7.5%20h%206.271919%20L%2011.94298,6%2012.60745,5.25%2014.9,7.8376461%20V%208.1623539%20L%2012.60745,10.75%2011.94298,10%2013.271919,8.5%20H%207%20Z'%20/%3e%3c/svg%3e\")}.reactodia-connections-menu__link-title{text-overflow:ellipsis;white-space:nowrap;flex-grow:1;margin:5px 0 5px 5px;overflow:hidden}.reactodia-connections-menu__link-count{flex-shrink:0;margin-left:10px}.reactodia-connections-menu__link-navigate-button{float:right;opacity:.5;background-color:currentColor;flex-shrink:0;width:20px;min-width:16px;height:20px;margin-left:10px;-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\");-webkit-mask-size:cover;mask-size:cover}.reactodia-connections-menu__link-navigate-button:hover{opacity:1}.reactodia-connections-menu__link-filter-spacer{flex-shrink:0;width:20px;height:20px;margin-left:10px}.reactodia-connections-menu__link-filter-button{background:0 0;border:none;width:20px;height:20px;padding:0;position:absolute;top:calc(50% - 10px);right:35px}.reactodia-connections-menu__link-filter-button:before{content:\"\";opacity:.4;background-color:currentColor;width:100%;height:100%;display:block;-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2014.5,3.5%20-1,-1%20m%200,0%20H%202.5%20V%203.0652324%20L%206.9861526,8%207.5,8.5652322%20V%2012.5103%20l%201,-0.733333%20V%208.5489178%20l%205,-5.4999998%20z%20m%200,0.548918%20V%204.6%20m%200,0%20-4,4.4%20v%203.3%20l%20-3,2.2%20V%209%20l%20-5,-5.5%20v%20-2%20h%2013%20v%202'%20/%3e%3cpath%20d='M%203.0187424,8%20H%204%20v%201.5%20h%201.5%20v%201%20L%204,10.467287%20V%2012%20H%203%20V%2010.5%20H%201.5%20v%20-1%20H%203%20Z'%20/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2014.5,3.5%20-1,-1%20m%200,0%20H%202.5%20V%203.0652324%20L%206.9861526,8%207.5,8.5652322%20V%2012.5103%20l%201,-0.733333%20V%208.5489178%20l%205,-5.4999998%20z%20m%200,0.548918%20V%204.6%20m%200,0%20-4,4.4%20v%203.3%20l%20-3,2.2%20V%209%20l%20-5,-5.5%20v%20-2%20h%2013%20v%202'%20/%3e%3cpath%20d='M%203.0187424,8%20H%204%20v%201.5%20h%201.5%20v%201%20L%204,10.467287%20V%2012%20H%203%20V%2010.5%20H%201.5%20v%20-1%20H%203%20Z'%20/%3e%3c/svg%3e\");-webkit-mask-size:20px 20px;mask-size:20px 20px}.reactodia-connections-menu__link-filter-button:hover:before{opacity:1}.reactodia-connections-menu__move-to-filter{cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px 10px;display:flex}.reactodia-connections-menu__move-to-filter:hover{color:var(--reactodia-button-default-color-focus);background-color:var(--reactodia-button-default-background-color-focus)}.reactodia-connections-menu__objects{flex-direction:column;flex-grow:1;padding:0 10px 10px;display:flex;position:relative}.reactodia-connections-menu__objects-select-all{white-space:nowrap;margin-bottom:5px;display:flex}.reactodia-connections-menu__objects-select-all input{margin-right:5px}.reactodia-connections-menu__objects-select-all input:disabled{opacity:.3}.reactodia-connections-menu__objects-loading,.reactodia-connections-menu__objects-no-results{border:1px solid var(--reactodia-color-emphasis-400);flex-grow:1;justify-content:center;align-items:center;margin-bottom:5px;display:flex}.reactodia-connections-menu__objects-no-results{color:var(--reactodia-color-emphasis-400);font-size:x-large;font-weight:700;position:relative}.reactodia-connections-menu__objects-list{border:var(--reactodia-border-width-base) solid var(--reactodia-border-color-base);border-radius:var(--reactodia-border-radius-base);flex-grow:1;height:0;margin-bottom:5px;padding:5px;overflow:hidden scroll}.reactodia-connections-menu__objects-statusbar{white-space:nowrap;justify-content:flex-end;height:25px;display:flex}.reactodia-connections-menu__objects-extra{color:var(--reactodia-color-emphasis-600);cursor:help}.reactodia-connections-menu__objects-spacer{flex:auto}.reactodia-connections-menu__objects-add-button{height:25px;padding-top:1px;padding-bottom:2px}.reactodia-connections-menu__objects-add-button:not(:last-child){margin-right:var(--reactodia-spacing-horizontal)}.reactodia-dialog{background:var(--reactodia-background-color-surface);border:var(--reactodia-dialog-border-width) solid var(--reactodia-dialog-border-color);border-radius:var(--reactodia-dialog-border-radius);box-shadow:var(--reactodia-canvas-box-shadow);flex-direction:column;display:flex;position:absolute}.reactodia-dialog__header{display:flex}.reactodia-dialog__caption{text-overflow:ellipsis;white-space:nowrap;flex:auto;margin:8px 0 0 8px;font-weight:700;overflow:hidden}.reactodia-dialog__close-button{color:var(--reactodia-button-default-color);border-top-left-radius:unset;border-bottom-right-radius:unset;transition:background-color var(--reactodia-transition-duration);background:0 0;border:none;padding:6px}.reactodia-dialog__close-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-dialog__close-button:hover{color:var(--reactodia-button-default-color-focus);background-color:var(--reactodia-button-default-background-color-focus)}.reactodia-viewport-dialog-overlay{z-index:calc(var(--reactodia-z-index-base) + 60);background-color:var(--reactodia-canvas-overlay-color);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.reactodia-halo{left:calc(var(--reactodia-halo-left) - var(--reactodia-selection-single-box-margin));top:calc(var(--reactodia-halo-top) - var(--reactodia-selection-single-box-margin));width:calc(var(--reactodia-halo-width) + 2 * var(--reactodia-selection-single-box-margin));height:calc(var(--reactodia-halo-height) + 2 * var(--reactodia-selection-single-box-margin));pointer-events:none;border:1.5px dashed var(--reactodia-selection-single-box-color);border-radius:var(--reactodia-border-radius-s);box-shadow:var(--reactodia-selection-single-box-shadow);position:absolute}.reactodia-halo--resizable{border:unset;box-shadow:unset}.reactodia-halo__resizer{--reactodia-resizable-box-border-width:3px;--reactodia-resizable-box-color:var(--reactodia-color-primary-lighter);left:var(--reactodia-selection-single-box-margin);top:var(--reactodia-selection-single-box-margin);right:var(--reactodia-selection-single-box-margin);bottom:var(--reactodia-selection-single-box-margin);position:absolute}.reactodia-halo__resizer>*{pointer-events:all}.reactodia-halo-link__label-highlight{pointer-events:none;border-bottom:2px solid var(--reactodia-selection-link-color);position:absolute}.reactodia-halo-link__path-highlight{fill:none;stroke:var(--reactodia-selection-link-color);stroke-width:4px;opacity:.3}.reactodia-instances-search{flex-direction:column;flex:auto;display:flex;overflow:hidden}.reactodia-instances-search__criteria{flex-shrink:0;margin:10px 0}.reactodia-instances-search--controlled .reactodia-instances-search__criteria{margin-top:0;margin-bottom:0}.reactodia-instances-search__criterions{margin-bottom:10px;padding-left:15px}.reactodia-instances-search__criterions:empty{margin-bottom:0}.reactodia-instances-search__criterion{width:100%;display:block;position:relative}.reactodia-instances-search__criterion-class,.reactodia-instances-search__criterion-element,.reactodia-instances-search__criterion-link-type{border:var(--reactodia-color-primary) 1px dashed;color:var(--reactodia-color-primary-contrast-foreground);background-color:var(--reactodia-color-primary-contrast-background);word-wrap:break-word;padding:0 .5em}.reactodia-instances-search__link-direction-in,.reactodia-instances-search__link-direction-out{opacity:.5;vertical-align:middle;background-color:currentColor;width:1em;height:1em;display:inline-block;-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.reactodia-instances-search__link-direction-in{-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%205.9,6%20h%20-1%20V%203%20h%2010%20v%2010%20h%20-10%20v%20-3%20h%201%20v%202%20h%208%20V%204%20h%20-8%20z'%20/%3e%3cpath%20d='M%201.5,7.5%20H%207.771919%20L%206.44298,6%207.10745,5.25%209.4,7.8376461%20V%208.1623539%20L%207.10745,10.75%206.44298,10%207.771919,8.5%20H%201.5%20Z'%20/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%205.9,6%20h%20-1%20V%203%20h%2010%20v%2010%20h%20-10%20v%20-3%20h%201%20v%202%20h%208%20V%204%20h%20-8%20z'%20/%3e%3cpath%20d='M%201.5,7.5%20H%207.771919%20L%206.44298,6%207.10745,5.25%209.4,7.8376461%20V%208.1623539%20L%207.10745,10.75%206.44298,10%207.771919,8.5%20H%201.5%20Z'%20/%3e%3c/svg%3e\")}.reactodia-instances-search__link-direction-out{-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2010.5,6%20h%201%20V%203%20h%20-10%20v%2010%20h%2010%20v%20-3%20h%20-1%20v%202%20h%20-8%20V%204%20h%208%20z'%20/%3e%3cpath%20d='m%207,7.5%20h%206.271919%20L%2011.94298,6%2012.60745,5.25%2014.9,7.8376461%20V%208.1623539%20L%2012.60745,10.75%2011.94298,10%2013.271919,8.5%20H%207%20Z'%20/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2010.5,6%20h%201%20V%203%20h%20-10%20v%2010%20h%2010%20v%20-3%20h%20-1%20v%202%20h%20-8%20V%204%20h%208%20z'%20/%3e%3cpath%20d='m%207,7.5%20h%206.271919%20L%2011.94298,6%2012.60745,5.25%2014.9,7.8376461%20V%208.1623539%20L%2012.60745,10.75%2011.94298,10%2013.271919,8.5%20H%207%20Z'%20/%3e%3c/svg%3e\")}.reactodia-instances-search__criterion-remove{float:right;margin:0 10px 4px 4px}.reactodia-instances-search__criterion-remove-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-instances-search__text-criteria{margin:0 10px}.reactodia-instances-search__search-button{height:34px}.reactodia-instances-search__search-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-instances-search__rest{border-top:1px solid var(--reactodia-border-color-base);padding:10px 10px 0}.reactodia-instances-search__results{outline:none;margin:0 10px;padding-top:10px;padding-left:0}.reactodia-instances-search__rest-end{margin:5px 0 10px}.reactodia-instances-search__load-more{justify-content:center;align-items:center;width:100%;display:flex}.reactodia-instances-search__load-more:before{content:\"\";background-color:currentColor;width:16px;height:16px;margin-right:5px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.976%2010.072l4.357-4.357.62.618L8.284%2011h-.618L3%206.333l.619-.618%204.357%204.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.976%2010.072l4.357-4.357.62.618L8.284%2011h-.618L3%206.333l.619-.618%204.357%204.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-instances-search__actions{justify-content:flex-end;gap:var(--reactodia-spacing-horizontal);border-top:1px solid var(--reactodia-border-color-base);height:40px;transition:height .2s;display:flex}.reactodia-instances-search__actions-hidden{visibility:hidden;height:0;padding:0}.reactodia-instances-search__action{margin-top:6px;margin-bottom:6px;margin-left:6px;padding-top:1px;padding-bottom:2px}.reactodia-instances-search__action:last-child{margin-right:6px}.reactodia-link-action{cursor:pointer;opacity:.8;transition:opacity var(--reactodia-transition-duration);border:0;outline:none;padding:0;position:absolute}.reactodia-link-action:hover{opacity:1}.reactodia-link-action[disabled]{cursor:not-allowed;opacity:.5}.reactodia-link-action__spinner{position:absolute}.reactodia-link-action__button{background-color:var(--reactodia-color-gray-400);border-radius:calc(var(--reactodia-link-button-size) * .5);height:var(--reactodia-link-button-size);width:var(--reactodia-link-button-size);background-position:50%;background-repeat:no-repeat;background-size:65%}.reactodia-link-action__endpoint{touch-action:none;color:var(--reactodia-color-primary);background:0 0}.reactodia-link-action__edit{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.23%201h-1.46L3.52%209.25l-.16.22L1%2013.59%202.41%2015l4.12-2.36.22-.16L15%204.23V2.77L13.23%201zM2.41%2013.59l1.51-3%201.45%201.45-2.96%201.55zm3.83-2.06L4.47%209.76l8-8%201.77%201.77-8%208z'/%3e%3c/svg%3e\")}.reactodia-link-action__delete{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\")}.reactodia-link-action__rename{filter:invert(100%) var(--reactodia-selection-icon-filter);border-radius:var(--reactodia-border-radius-s);cursor:pointer;opacity:.5;transition:opacity var(--reactodia-transition-duration);background:#fff url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.23%201h-1.46L3.52%209.25l-.16.22L1%2013.59%202.41%2015l4.12-2.36.22-.16L15%204.23V2.77L13.23%201zM2.41%2013.59l1.51-3%201.45%201.45-2.96%201.55zm3.83-2.06L4.47%209.76l8-8%201.77%201.77-8%208z'/%3e%3c/svg%3e\") 50%/80% no-repeat;border:0;outline:none;margin-left:5px;padding:0;position:absolute}.reactodia-link-action__rename:hover{opacity:1}.reactodia-links-toolbox{flex-direction:column;flex:auto;margin-bottom:0;display:flex}.reactodia-links-toolbox__heading{padding:10px}.reactodia-links-toolbox__filter{margin-bottom:5px}.reactodia-links-toolbox__rest{border-top:1px solid var(--reactodia-border-color-base);flex-direction:column;flex:auto;display:flex}.reactodia-links-toolbox__toggle-invisible:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M1.47978%201.4797C1.30227%201.65721%201.28614%201.93498%201.43137%202.13072L1.47978%202.1868L4.1695%204.87652C2.88817%205.77616%201.93052%207.11985%201.53259%208.70952C1.46554%208.97738%201.62834%209.24892%201.89621%209.31598C2.16409%209.38298%202.4356%209.22025%202.50266%208.95232C2.85564%207.54225%203.72742%206.35956%204.88944%205.59626L6.09586%206.80278C5.62419%207.28378%205.33334%207.94278%205.33334%208.66965C5.33334%2010.1424%206.52724%2011.3363%208%2011.3363C8.72694%2011.3363%209.38587%2011.0454%209.86694%2010.5738L13.8131%2014.5201C14.0084%2014.7154%2014.3249%2014.7154%2014.5202%2014.5201C14.6977%2014.3426%2014.7139%2014.0649%2014.5686%2013.8691L14.5202%2013.813L10.4445%209.73692L10.4453%209.73592L9.64527%208.93732L7.732%207.02445L7.73334%207.02392L5.81252%205.10513L5.81334%205.10392L5.05782%204.35024L2.18689%201.4797C1.99163%201.28444%201.67504%201.28444%201.47978%201.4797ZM6.80274%207.51025L9.15947%209.86698C8.85947%2010.1575%208.4506%2010.3363%208%2010.3363C7.07954%2010.3363%206.33334%209.59012%206.33334%208.66965C6.33334%208.21905%206.51216%207.81018%206.80274%207.51025ZM8%203.66658C7.33314%203.66658%206.68607%203.7653%206.07406%203.94992L6.89874%204.77404C7.25594%204.70346%207.62427%204.66658%208%204.66658C10.6154%204.66658%2012.8733%206.45342%2013.4981%208.95538C13.565%209.22325%2013.8364%209.38618%2014.1043%209.31932C14.3723%209.25238%2014.5352%208.98098%2014.4683%208.71305C13.7329%205.7684%2011.077%203.66658%208%203.66658ZM8.1298%206.0061L10.664%208.53992C10.5961%207.16865%209.49814%206.07168%208.1298%206.0061Z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M1.47978%201.4797C1.30227%201.65721%201.28614%201.93498%201.43137%202.13072L1.47978%202.1868L4.1695%204.87652C2.88817%205.77616%201.93052%207.11985%201.53259%208.70952C1.46554%208.97738%201.62834%209.24892%201.89621%209.31598C2.16409%209.38298%202.4356%209.22025%202.50266%208.95232C2.85564%207.54225%203.72742%206.35956%204.88944%205.59626L6.09586%206.80278C5.62419%207.28378%205.33334%207.94278%205.33334%208.66965C5.33334%2010.1424%206.52724%2011.3363%208%2011.3363C8.72694%2011.3363%209.38587%2011.0454%209.86694%2010.5738L13.8131%2014.5201C14.0084%2014.7154%2014.3249%2014.7154%2014.5202%2014.5201C14.6977%2014.3426%2014.7139%2014.0649%2014.5686%2013.8691L14.5202%2013.813L10.4445%209.73692L10.4453%209.73592L9.64527%208.93732L7.732%207.02445L7.73334%207.02392L5.81252%205.10513L5.81334%205.10392L5.05782%204.35024L2.18689%201.4797C1.99163%201.28444%201.67504%201.28444%201.47978%201.4797ZM6.80274%207.51025L9.15947%209.86698C8.85947%2010.1575%208.4506%2010.3363%208%2010.3363C7.07954%2010.3363%206.33334%209.59012%206.33334%208.66965C6.33334%208.21905%206.51216%207.81018%206.80274%207.51025ZM8%203.66658C7.33314%203.66658%206.68607%203.7653%206.07406%203.94992L6.89874%204.77404C7.25594%204.70346%207.62427%204.66658%208%204.66658C10.6154%204.66658%2012.8733%206.45342%2013.4981%208.95538C13.565%209.22325%2013.8364%209.38618%2014.1043%209.31932C14.3723%209.25238%2014.5352%208.98098%2014.4683%208.71305C13.7329%205.7684%2011.077%203.66658%208%203.66658ZM8.1298%206.0061L10.664%208.53992C10.5961%207.16865%209.49814%206.07168%208.1298%206.0061Z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-links-toolbox__toggle-lines-only:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3%209l2.146%202.146-.707.708-3-3v-.708l3-3%20.707.708L3%208h10l-2.146-2.146.707-.708%203%203v.708l-3%203-.707-.707L13%209H3z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3%209l2.146%202.146-.707.708-3-3v-.708l3-3%20.707.708L3%208h10l-2.146-2.146.707-.708%203%203v.708l-3%203-.707-.707L13%209H3z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-links-toolbox__toggle-visible:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M7.99993%206.00316C9.47266%206.00316%2010.6666%207.19708%2010.6666%208.66981C10.6666%2010.1426%209.47266%2011.3365%207.99993%2011.3365C6.52715%2011.3365%205.33324%2010.1426%205.33324%208.66981C5.33324%207.19708%206.52715%206.00316%207.99993%206.00316ZM7.99993%207.00315C7.07946%207.00315%206.33324%207.74935%206.33324%208.66981C6.33324%209.59028%207.07946%2010.3365%207.99993%2010.3365C8.9204%2010.3365%209.6666%209.59028%209.6666%208.66981C9.6666%207.74935%208.9204%207.00315%207.99993%207.00315ZM7.99993%203.66675C11.0756%203.66675%2013.7307%205.76675%2014.4673%208.70968C14.5344%208.97755%2014.3716%209.24908%2014.1037%209.31615C13.8358%209.38315%2013.5643%209.22041%2013.4973%208.95248C12.8713%206.45205%2010.6141%204.66675%207.99993%204.66675C5.38454%204.66675%203.12664%206.45359%202.50182%208.95555C2.43491%209.22341%202.16348%209.38635%201.89557%209.31948C1.62766%209.25255%201.46471%208.98115%201.53162%208.71321C2.26701%205.76856%204.9229%203.66675%207.99993%203.66675Z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M7.99993%206.00316C9.47266%206.00316%2010.6666%207.19708%2010.6666%208.66981C10.6666%2010.1426%209.47266%2011.3365%207.99993%2011.3365C6.52715%2011.3365%205.33324%2010.1426%205.33324%208.66981C5.33324%207.19708%206.52715%206.00316%207.99993%206.00316ZM7.99993%207.00315C7.07946%207.00315%206.33324%207.74935%206.33324%208.66981C6.33324%209.59028%207.07946%2010.3365%207.99993%2010.3365C8.9204%2010.3365%209.6666%209.59028%209.6666%208.66981C9.6666%207.74935%208.9204%207.00315%207.99993%207.00315ZM7.99993%203.66675C11.0756%203.66675%2013.7307%205.76675%2014.4673%208.70968C14.5344%208.97755%2014.3716%209.24908%2014.1037%209.31615C13.8358%209.38315%2013.5643%209.22041%2013.4973%208.95248C12.8713%206.45205%2010.6141%204.66675%207.99993%204.66675C5.38454%204.66675%203.12664%206.45359%202.50182%208.95555C2.43491%209.22341%202.16348%209.38635%201.89557%209.31948C1.62766%209.25255%201.46471%208.98115%201.53162%208.71321C2.26701%205.76856%204.9229%203.66675%207.99993%203.66675Z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-links-toolbox__links-heading{margin:4px 6px;font-size:14px;font-weight:700}.reactodia-links-toolbox__links-heading>*{font-weight:400}.reactodia-links-toolbox__links{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.reactodia-links-toolbox__link-item{word-break:break-word;padding:0 0 0 5px}.reactodia-links-toolbox__link-item:last-child{margin-bottom:0}.reactodia-links-toolbox__link-item>div{display:inline}.reactodia-links-toolbox__link-title{font-size:16px;display:inline}.reactodia-links-toolbox__link-buttons{float:left;margin-top:2px;margin-bottom:2px;margin-right:6px}.reactodia-links-toolbox__filter-button{float:right;cursor:pointer;opacity:.4;width:20px;height:20px;transition:opacity var(--reactodia-transition-duration);background-color:currentColor;margin:3px;display:none;-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2014.5,3.5%20-1,-1%20m%200,0%20H%202.5%20V%203.0652324%20L%206.9861526,8%207.5,8.5652322%20V%2012.5103%20l%201,-0.733333%20V%208.5489178%20l%205,-5.4999998%20z%20m%200,0.548918%20V%204.6%20m%200,0%20-4,4.4%20v%203.3%20l%20-3,2.2%20V%209%20l%20-5,-5.5%20v%20-2%20h%2013%20v%202'%20/%3e%3cpath%20d='M%203.0187424,8%20H%204%20v%201.5%20h%201.5%20v%201%20L%204,10.467287%20V%2012%20H%203%20V%2010.5%20H%201.5%20v%20-1%20H%203%20Z'%20/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2014.5,3.5%20-1,-1%20m%200,0%20H%202.5%20V%203.0652324%20L%206.9861526,8%207.5,8.5652322%20V%2012.5103%20l%201,-0.733333%20V%208.5489178%20l%205,-5.4999998%20z%20m%200,0.548918%20V%204.6%20m%200,0%20-4,4.4%20v%203.3%20l%20-3,2.2%20V%209%20l%20-5,-5.5%20v%20-2%20h%2013%20v%202'%20/%3e%3cpath%20d='M%203.0187424,8%20H%204%20v%201.5%20h%201.5%20v%201%20L%204,10.467287%20V%2012%20H%203%20V%2010.5%20H%201.5%20v%20-1%20H%203%20Z'%20/%3e%3c/svg%3e\");-webkit-mask-size:20px 20px;mask-size:20px 20px}.reactodia-links-toolbox__link-item:hover .reactodia-links-toolbox__filter-button{opacity:1}.reactodia-links-toolbox__no-results{margin-top:10px}.reactodia-navigator{background:var(--reactodia-navigator-background-fill);border:var(--reactodia-border-width-base) solid var(--reactodia-border-color-base);border-radius:var(--reactodia-border-radius-s);box-shadow:var(--reactodia-canvas-box-shadow);display:block;overflow:hidden}.reactodia-navigator--animated{transition:width var(--reactodia-transition-duration), height var(--reactodia-transition-duration)}.reactodia-navigator--collapsed{width:24px;height:24px}.reactodia-navigator>canvas{transition:opacity var(--reactodia-transition-duration)}.reactodia-navigator--expanded>canvas{opacity:1}.reactodia-navigator--collapsed>canvas{opacity:0}.reactodia-navigator__toggle{outline-offset:-5px;opacity:.5;transition:opacity var(--reactodia-transition-duration);background:0 0;border:none;padding:4px;position:absolute}.reactodia-navigator__toggle:not(:disabled):hover{opacity:1}.reactodia-navigator__toggle:disabled{opacity:.2}.reactodia-navigator--expanded .reactodia-navigator__toggle{top:5px;left:5px}.reactodia-navigator--collapsed .reactodia-navigator__toggle{top:0;left:0}.reactodia-navigator__toggle-icon{width:18px;height:18px;-webkit-mask-size:18px 18px;mask-size:18px 18px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.reactodia-navigator--expanded .reactodia-navigator__toggle-icon{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M10%207v1H5V7h5z'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1.5%201h12l.5.5v12l-.5.5h-12l-.5-.5v-12l.5-.5zM2%2013h11V2H2v11z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M10%207v1H5V7h5z'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1.5%201h12l.5.5v12l-.5.5h-12l-.5-.5v-12l.5-.5zM2%2013h11V2H2v11z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-navigator--collapsed .reactodia-navigator__toggle-icon{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1.5%201h12l.5.5v12l-.5.5h-12l-.5-.5v-12l.5-.5zM2%2013h11V2H2v11z'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%204H7v3H4v1h3v3h1V8h3V7H8V4z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1.5%201h12l.5.5v12l-.5.5h-12l-.5-.5v-12l.5-.5zM2%2013h11V2H2v11z'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%204H7v3H4v1h3v3h1V8h3V7H8V4z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-selection{--reactodia-dock-margin-x:2px;--reactodia-dock-margin-y:2px;position:absolute}.reactodia-selection__selectedBox{touch-action:none;border-radius:var(--reactodia-border-radius-s);box-shadow:var(--reactodia-selection-multiple-box-shadow);cursor:move;-webkit-user-select:none;user-select:none;background-color:#ffa6000f;border:1px solid orange;position:absolute}.reactodia-selection__selectedActions{position:absolute}.reactodia-selection__selectedItem{background-color:#ffa60029;border:1px dashed orange;position:absolute}.reactodia-selection__highlightedBox{border-radius:var(--reactodia-border-radius-s);background-color:#00dbff21;border:2px dashed #00b3d1;position:absolute}.reactodia-selection__highlightedItem{background:#00bc7e54;border:1px dashed #00bc7e;position:absolute}.reactodia-selection-action{cursor:pointer;pointer-events:auto;width:20px;height:20px;filter:var(--reactodia-selection-icon-filter);opacity:.5;transition:opacity var(--reactodia-transition-duration);background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain;border:0;outline:none;padding:0;position:absolute}.reactodia-selection-action:hover{opacity:1}.reactodia-selection-action[disabled]{cursor:not-allowed;opacity:.2}.reactodia-selection-action--dock-nw{left:calc(-22px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);top:calc(-22px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px)}.reactodia-selection-action--dock-n{margin-left:calc(-11px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);left:50%;top:calc(-11px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px)}.reactodia-selection-action--dock-ne{right:calc(-22px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);top:calc(-22px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px)}.reactodia-selection-action--dock-e{right:calc(-22px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);margin-top:calc(-11px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px);top:50%}.reactodia-selection-action--dock-se{right:calc(-22px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);bottom:calc(-22px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px)}.reactodia-selection-action--dock-s{margin-left:calc(-11px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);left:50%;bottom:calc(-22px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px)}.reactodia-selection-action--dock-sw{left:calc(-22px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);bottom:calc(-22px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px)}.reactodia-selection-action--dock-w{left:calc(-22px - var(--reactodia-dock-margin-x,0px) + var(--reactodia-dock-x) * 22px);margin-top:calc(-11px - var(--reactodia-dock-margin-y,0px) + var(--reactodia-dock-y) * 22px);top:50%}.reactodia-selection-action__spinner{width:20px;height:20px;position:absolute}.reactodia-selection-action__remove{background-image:url(\"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3csvg%20xmlns:svg='http://www.w3.org/2000/svg'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20110%20110'%20version='1.1'%20width='500'%20height='500'%3e%3cpath%20d='M%2082.182422,8.0521107%20C%2056.44775,-6.9018137%2023.463185,1.8377258%208.5092706,27.57238%20-6.4446434,53.307034%202.2948357,86.291616%2028.029508,101.24554%2053.76418,116.19946%2086.748746,107.45993%20101.70266,81.725271%20116.65657,55.990616%20107.91709,23.006035%2082.182422,8.0521107%20Z%20M%2071.75602,28.578553%2082.28685,38.846984%2065.453479,56.373296%2083.064738,73.314301%2072.796937,83.844485%2055.169736,66.657039%2039.010998,83.228711%2028.480167,72.96028%2044.639378,56.389069%2028.415211,40.568631%2038.683013,30.038446%2054.938893,45.85871%20Z'%20style='fill:%23000000;stroke-width:1.06812763'%20/%3e%3c/svg%3e\")}.reactodia-selection-action__delete{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\")}.reactodia-selection-action__zoomToFit{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M%201.5,6%20V%201.5%20H%206%20v%201%20H%202.5%20V%206%20Z'%20/%3e%3cpath%20d='m%2010,2.5%20v%20-1%20h%204.5%20V%206%20h%20-1%20V%202.5%20Z'%20/%3e%3cpath%20d='m%201.5,10%20v%204.5%20H%206%20v%20-1%20H%202.5%20V%2010%20Z'%20/%3e%3cpath%20d='m%2010,13.5%20v%201%20h%204.5%20V%2010%20h%20-1%20v%203.5%20z'%20/%3e%3c/svg%3e\")}.reactodia-selection-action__layout{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.5%2011h-1.729L8.438%206H9.5l.5-.5v-4L9.5%201h-4l-.5.5v4l.5.5h1.062l-3.333%205H1.5l-.5.5v3l.5.5h3l.5-.5v-3l-.5-.5h-.068L7.5%206.4l3.068%204.6H10.5l-.5.5v3l.5.5h3l.5-.5v-3l-.5-.5zM6%205V2h3v3H6zm-2%207v2H2v-2h2zm9%202h-2v-2h2v2z'/%3e%3c/svg%3e\")}.reactodia-selection-action__expand{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.976%2010.072l4.357-4.357.62.618L8.284%2011h-.618L3%206.333l.619-.618%204.357%204.357z'/%3e%3c/svg%3e\")}.reactodia-selection-action__collapse{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.024%205.928l-4.357%204.357-.62-.618L7.716%205h.618L13%209.667l-.619.618-4.357-4.357z'/%3e%3c/svg%3e\")}.reactodia-selection-action__link{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M4.4%203h3.085a3.4%203.4%200%200%201%203.4%203.4v.205A3.4%203.4%200%200%201%207.485%2010H7V9h.485A2.4%202.4%200%200%200%209.88%206.61V6.4A2.4%202.4%200%200%200%207.49%204H4.4A2.4%202.4%200%200%200%202%206.4v.205A2.394%202.394%200%200%200%204%208.96v1a3.4%203.4%200%200%201-3-3.35V6.4A3.405%203.405%200%200%201%204.4%203zM12%207.04v-1a3.4%203.4%200%200%201%203%203.36v.205A3.405%203.405%200%200%201%2011.605%2013h-3.09A3.4%203.4%200%200%201%205.12%209.61V9.4A3.4%203.4%200%200%201%208.515%206H9v1h-.485A2.4%202.4%200%200%200%206.12%209.4v.205A2.4%202.4%200%200%200%208.515%2012h3.09A2.4%202.4%200%200%200%2014%209.61V9.4a2.394%202.394%200%200%200-2-2.36z'/%3e%3c/svg%3e\")}.reactodia-selection-action__navigate-open{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M9.00885%206.99103L11.0333%2011.0332L6.99114%209.00874L4.96666%204.96655L9.00885%206.99103ZM9.43541%209.4353L8.48072%207.51916L6.56458%206.56447L7.51926%208.48062L9.43541%209.4353Z'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.9795%208.5C13.739%2011.4149%2011.4149%2013.739%208.49999%2013.9795V13H7.49999V13.9795C4.57233%2013.7379%202.24067%2011.3945%202.0175%208.46167H3V7.46167H2.02382C2.28141%204.56475%204.59788%202.25996%207.49999%202.02054V3H8.49999V2.02054C11.4149%202.26101%2013.739%204.5851%2013.9795%207.5H13V8.5H13.9795ZM8%2015C11.866%2015%2015%2011.866%2015%208C15%204.13401%2011.866%201%208%201C4.13401%201%201%204.13401%201%208C1%2011.866%204.13401%2015%208%2015Z'/%3e%3c/svg%3e\")}.reactodia-selection-action__navigate-close{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.6%201c1.6.1%203.1.9%204.2%202%201.3%201.4%202%203.1%202%205.1%200%201.6-.6%203.1-1.6%204.4-1%201.2-2.4%202.1-4%202.4-1.6.3-3.2.1-4.6-.7-1.4-.8-2.5-2-3.1-3.5C.9%209.2.8%207.5%201.3%206c.5-1.6%201.4-2.9%202.8-3.8C5.4%201.3%207%20.9%208.6%201zm.5%2012.9c1.3-.3%202.5-1%203.4-2.1.8-1.1%201.3-2.4%201.2-3.8%200-1.6-.6-3.2-1.7-4.3-1-1-2.2-1.6-3.6-1.7-1.3-.1-2.7.2-3.8%201-1.1.8-1.9%201.9-2.3%203.3-.4%201.3-.4%202.7.2%204%20.6%201.3%201.5%202.3%202.7%203%201.2.7%202.6.9%203.9.6zM7.9%207.5L10.3%205l.7.7-2.4%202.5%202.4%202.5-.7.7-2.4-2.5-2.4%202.5-.7-.7%202.4-2.5-2.4-2.5.7-.7%202.4%202.5z'/%3e%3c/svg%3e\")}.reactodia-selection-action__add-to-filter{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='m%2014.5,3.5%20-1,-1%20m%200,0%20H%202.5%20V%203.0652324%20L%206.9861526,8%207.5,8.5652322%20V%2012.5103%20l%201,-0.733333%20V%208.5489178%20l%205,-5.4999998%20z%20m%200,0.548918%20V%204.6%20m%200,0%20-4,4.4%20v%203.3%20l%20-3,2.2%20V%209%20l%20-5,-5.5%20v%20-2%20h%2013%20v%202'%20/%3e%3cpath%20d='M%203.0187424,8%20H%204%20v%201.5%20h%201.5%20v%201%20L%204,10.467287%20V%2012%20H%203%20V%2010.5%20H%201.5%20v%20-1%20H%203%20Z'%20/%3e%3c/svg%3e\")}.reactodia-selection-action__group{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1.5%201h2v1H2v12h1.5v1h-2l-.5-.5v-13l.5-.5zm6%206h-2L5%206.5v-2l.5-.5h2l.5.5v2l-.5.5zM6%206h1V5H6v1zm7.5%201h-3l-.5-.5v-3l.5-.5h3l.5.5v3l-.5.5zM11%206h2V4h-2v2zm-3.5%206h-2l-.5-.5v-2l.5-.5h2l.5.5v2l-.5.5zM6%2011h1v-1H6v1zm7.5%202h-3l-.5-.5v-3l.5-.5h3l.5.5v3l-.5.5zM11%2012h2v-2h-2v2zm-1-2H8v1h2v-1zm0-5H8v1h2V5z'/%3e%3c/svg%3e\")}.reactodia-selection-action__ungroup{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.9%201L5%203.1l-.8.7L3%202.6V7H2V2.5L.8%203.8l-.7-.7L2.2%201h.7zM3%2013.4V9H2v4.4L.8%2012.2l-.7.7L2.2%2015h.7L5%2012.9l-.7-.7L3%2013.4zM8.5%207h-2L6%206.5v-2l.5-.5h2l.5.5v2l-.5.5zM7%206h1V5H7v1zm7.5%201h-3l-.5-.5v-3l.5-.5h3l.5.5v3l-.5.5zM12%206h2V4h-2v2zm-3.5%206h-2l-.5-.5v-2l.5-.5h2l.5.5v2l-.5.5zM7%2011h1v-1H7v1zm7.5%202h-3l-.5-.5v-3l.5-.5h3l.5.5v3l-.5.5zM12%2012h2v-2h-2v2zm-1-2H9v1h2v-1zm0-5H9v1h2V5z'/%3e%3c/svg%3e\")}.reactodia-selection-action__establish-link{touch-action:none;background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7%201H6v3H4.5l-.5.5V8a4%204%200%200%200%203.5%203.969V15h1v-3.031A4%204%200%200%200%2012%208V4.5l-.5-.5H10V1H9v3H7V1zm3.121%209.121A3%203%200%200%201%205%208V5h6v3a3%203%200%200%201-.879%202.121z'/%3e%3c/svg%3e\")}.reactodia-selection-action__annotate{background-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1.5%202h13l.5.5v10l-.5.5h-13l-.5-.5v-10l.5-.5zM2%203v9h12V3H2zm2%202h8v1H4V5zm6%202H4v1h6V7zM4%209h4v1H4V9z'/%3e%3c/svg%3e\")}.reactodia-toolbar{white-space:nowrap;pointer-events:none;display:flex}.reactodia-toolbar>*{pointer-events:auto;white-space:normal}.reactodia-toolbar--drop-up{align-items:flex-end}.reactodia-toolbar__menu{z-index:calc(var(--reactodia-z-index-base) + 50);margin-right:5px}.reactodia-toolbar-action__spacer{flex:auto;min-width:8px}.reactodia-toolbar-action__hotkey{color:var(--reactodia-color-secondary-darkest)}.reactodia-toolbar-action__open{align-items:center;display:flex}.reactodia-toolbar-action__open:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M1.5%2014h11l.48-.37%202.63-7-.48-.63H14V3.5l-.5-.5H7.71l-.86-.85L6.5%202h-5l-.5.5v11l.5.5zM2%203h4.29l.86.85.35.15H13v2H8.5l-.35.15-.86.85H3.5l-.47.34-1%203.08L2%203zm10.13%2010H2.19l1.67-5H7.5l.35-.15.86-.85h5.79l-2.37%206z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M1.5%2014h11l.48-.37%202.63-7-.48-.63H14V3.5l-.5-.5H7.71l-.86-.85L6.5%202h-5l-.5.5v11l.5.5zM2%203h4.29l.86.85.35.15H13v2H8.5l-.35.15-.86.85H3.5l-.47.34-1%203.08L2%203zm10.13%2010H2.19l1.67-5H7.5l.35-.15.86-.85h5.79l-2.37%206z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__open:not(:empty):before{margin-right:3px}.reactodia-toolbar-action__open-input{display:none}.reactodia-toolbar-action__save{align-items:center;display:flex}.reactodia-toolbar-action__save:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.353%201.146l1.5%201.5L15%203v11.5l-.5.5h-13l-.5-.5v-13l.5-.5H13l.353.146zM2%202v12h12V3.208L12.793%202H11v4H4V2H2zm6%200v3h2V2H8z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.353%201.146l1.5%201.5L15%203v11.5l-.5.5h-13l-.5-.5v-13l.5-.5H13l.353.146zM2%202v12h12V3.208L12.793%202H11v4H4V2H2zm6%200v3h2V2H8z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__save:not(:empty):before{margin-right:3px}.reactodia-toolbar-action__clear-all{align-items:center;display:flex}.reactodia-toolbar-action__clear-all:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__clear-all:not(:empty):before{margin-right:3px}.reactodia-toolbar-action__export-image{align-items:center;display:flex}.reactodia-toolbar-action__export-image:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2%202h6v3.5l.5.5H12v1h1V4.8l-.15-.36-3.28-3.3L9.22%201H1.5l-.5.5v13l.5.5H5v-1H2V2zm7%200l3%203H9V2zm5.5%206h-8l-.5.5v6l.5.5h8l.5-.5v-6l-.5-.5zM14%209v4l-1.63-1.6h-.71l-1.16%201.17-2.13-2.13h-.71L7%2011.1V9h7zm-2.8%204.27l.81-.81L13.55%2014h-1.62l-.73-.73zM7%2014v-1.49l1-1L10.52%2014H7zm5.5-3.5a.5.5%200%201%200%200-1%20.5.5%200%200%200%200%201z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2%202h6v3.5l.5.5H12v1h1V4.8l-.15-.36-3.28-3.3L9.22%201H1.5l-.5.5v13l.5.5H5v-1H2V2zm7%200l3%203H9V2zm5.5%206h-8l-.5.5v6l.5.5h8l.5-.5v-6l-.5-.5zM14%209v4l-1.63-1.6h-.71l-1.16%201.17-2.13-2.13h-.71L7%2011.1V9h7zm-2.8%204.27l.81-.81L13.55%2014h-1.62l-.73-.73zM7%2014v-1.49l1-1L10.52%2014H7zm5.5-3.5a.5.5%200%201%200%200-1%20.5.5%200%200%200%200%201z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__export-image:not(:empty):before{margin-right:3px}.reactodia-toolbar-action__print{align-items:center;display:flex}.reactodia-toolbar-action__print:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.85%204.44l-3.28-3.3-.35-.14H2.5l-.5.5V7h1V2h6v3.5l.5.5H13v1h1V4.8l-.15-.36zM10%205V2l3%203h-3zM2.5%208l-.5.5v6l.5.5h11l.5-.5v-6l-.5-.5h-11zM13%2013v1H3V9h10v4zm-8-1h-.32v1H4v-3h1.06c.75%200%201.13.36%201.13%201a.94.94%200%200%201-.32.72A1.33%201.33%200%200%201%205%2012zm-.06-1.45h-.26v.93h.26c.36%200%20.54-.16.54-.47%200-.31-.18-.46-.54-.46zM9%2012.58a1.48%201.48%200%200%200%20.44-1.12c0-1-.53-1.46-1.6-1.46H6.78v3h1.06A1.6%201.6%200%200%200%209%2012.58zm-1.55-.13v-1.9h.33a.94.94%200%200%201%20.7.25.91.91%200%200%201%20.25.67%201%201%200%200%201-.25.72.94.94%200%200%201-.69.26h-.34zm4.45-.61h-.97V13h-.68v-3h1.74v.55h-1.06v.74h.97v.55z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.85%204.44l-3.28-3.3-.35-.14H2.5l-.5.5V7h1V2h6v3.5l.5.5H13v1h1V4.8l-.15-.36zM10%205V2l3%203h-3zM2.5%208l-.5.5v6l.5.5h11l.5-.5v-6l-.5-.5h-11zM13%2013v1H3V9h10v4zm-8-1h-.32v1H4v-3h1.06c.75%200%201.13.36%201.13%201a.94.94%200%200%201-.32.72A1.33%201.33%200%200%201%205%2012zm-.06-1.45h-.26v.93h.26c.36%200%20.54-.16.54-.47%200-.31-.18-.46-.54-.46zM9%2012.58a1.48%201.48%200%200%200%20.44-1.12c0-1-.53-1.46-1.6-1.46H6.78v3h1.06A1.6%201.6%200%200%200%209%2012.58zm-1.55-.13v-1.9h.33a.94.94%200%200%201%20.7.25.91.91%200%200%201%20.25.67%201%201%200%200%201-.25.72.94.94%200%200%201-.69.26h-.34zm4.45-.61h-.97V13h-.68v-3h1.74v.55h-1.06v.74h.97v.55z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__print:not(:empty):before{margin-right:3px}.reactodia-toolbar-action__undo:empty:before{content:\"\";background-color:currentColor;width:18px;height:18px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.5%202v3.5L4%206h3.5V5H4.979l.941-.941a3.552%203.552%200%201%201%205.023%205.023L5.746%2014.28l.72.72%205.198-5.198A4.57%204.57%200%200%200%205.2%203.339l-.7.7V2h-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.5%202v3.5L4%206h3.5V5H4.979l.941-.941a3.552%203.552%200%201%201%205.023%205.023L5.746%2014.28l.72.72%205.198-5.198A4.57%204.57%200%200%200%205.2%203.339l-.7.7V2h-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__undo:not(:empty){align-items:center;display:flex}.reactodia-toolbar-action__undo:not(:empty):before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.5%202v3.5L4%206h3.5V5H4.979l.941-.941a3.552%203.552%200%201%201%205.023%205.023L5.746%2014.28l.72.72%205.198-5.198A4.57%204.57%200%200%200%205.2%203.339l-.7.7V2h-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M3.5%202v3.5L4%206h3.5V5H4.979l.941-.941a3.552%203.552%200%201%201%205.023%205.023L5.746%2014.28l.72.72%205.198-5.198A4.57%204.57%200%200%200%205.2%203.339l-.7.7V2h-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__undo:not(:empty):not(:empty):before{margin-right:3px}.reactodia-toolbar-action__redo:empty:before{content:\"\";background-color:currentColor;width:18px;height:18px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.5%202v3.5L12%206H8.5V5h2.521l-.941-.941a3.552%203.552%200%201%200-5.023%205.023l5.197%205.198-.72.72-5.198-5.198A4.57%204.57%200%200%201%2010.8%203.339l.7.7V2h1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.5%202v3.5L12%206H8.5V5h2.521l-.941-.941a3.552%203.552%200%201%200-5.023%205.023l5.197%205.198-.72.72-5.198-5.198A4.57%204.57%200%200%201%2010.8%203.339l.7.7V2h1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__redo:not(:empty){align-items:center;display:flex}.reactodia-toolbar-action__redo:not(:empty):before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.5%202v3.5L12%206H8.5V5h2.521l-.941-.941a3.552%203.552%200%201%200-5.023%205.023l5.197%205.198-.72.72-5.198-5.198A4.57%204.57%200%200%201%2010.8%203.339l.7.7V2h1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.5%202v3.5L12%206H8.5V5h2.521l-.941-.941a3.552%203.552%200%201%200-5.023%205.023l5.197%205.198-.72.72-5.198-5.198A4.57%204.57%200%200%201%2010.8%203.339l.7.7V2h1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__redo:not(:empty):not(:empty):before{margin-right:3px}.reactodia-toolbar-action__layout{align-items:center;display:flex}.reactodia-toolbar-action__layout:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.5%2011h-1.729L8.438%206H9.5l.5-.5v-4L9.5%201h-4l-.5.5v4l.5.5h1.062l-3.333%205H1.5l-.5.5v3l.5.5h3l.5-.5v-3l-.5-.5h-.068L7.5%206.4l3.068%204.6H10.5l-.5.5v3l.5.5h3l.5-.5v-3l-.5-.5zM6%205V2h3v3H6zm-2%207v2H2v-2h2zm9%202h-2v-2h2v2z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.5%2011h-1.729L8.438%206H9.5l.5-.5v-4L9.5%201h-4l-.5.5v4l.5.5h1.062l-3.333%205H1.5l-.5.5v3l.5.5h3l.5-.5v-3l-.5-.5h-.068L7.5%206.4l3.068%204.6H10.5l-.5.5v3l.5.5h3l.5-.5v-3l-.5-.5zM6%205V2h3v3H6zm-2%207v2H2v-2h2zm9%202h-2v-2h2v2z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-toolbar-action__layout:not(:empty):before{margin-right:3px}.reactodia-toolbar-action__language-selector{float:left;height:var(--reactodia-toolbar-height);background:var(--reactodia-button-default-background-color);border:var(--reactodia-button-border-width) solid var(--reactodia-button-default-border-color);border-radius:var(--reactodia-button-border-radius);align-items:center;padding:0 5px;display:flex;position:relative}.reactodia-toolbar-action__language-selector:focus-within{border-color:var(--reactodia-input-border-color-focus)}.reactodia-toolbar-action__language-selector select{height:var(--reactodia-toolbar-height);background-color:var(--reactodia-button-default-background-color);color:inherit;font:inherit;line-height:inherit;height:calc(var(--reactodia-toolbar-height) - 4px);border:none;outline:none;margin:0}.reactodia-toolbar-action__language-selector label{margin-right:5px;display:inline-block}.reactodia-toolbar-action__language-selector label:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.5%201a6.5%206.5%200%201%201%200%2013%206.5%206.5%200%200%201%200-13zm4.894%204a5.527%205.527%200%200%200-3.053-2.676c.444.84.765%201.74.953%202.676h2.1zm.582%202.995A5.11%205.11%200%200%200%2014%207.5a5.464%205.464%200%200%200-.213-1.5h-2.342c.032.331.055.664.055%201a10.114%2010.114%200%200%201-.206%202h2.493c.095-.329.158-.665.19-1.005zm-3.535%200l.006-.051A9.04%209.04%200%200%200%2010.5%207a8.994%208.994%200%200%200-.076-1H6.576A8.82%208.82%200%200%200%206.5%207a8.98%208.98%200%200%200%20.233%202h3.534c.077-.332.135-.667.174-1.005zM10.249%205a8.974%208.974%200%200%200-1.255-2.97C8.83%202.016%208.666%202%208.5%202a3.62%203.62%200%200%200-.312.015l-.182.015L8%202.04A8.97%208.97%200%200%200%206.751%205h3.498zM5.706%205a9.959%209.959%200%200%201%20.966-2.681A5.527%205.527%200%200%200%203.606%205h2.1zM3.213%206A5.48%205.48%200%200%200%203%207.5%205.48%205.48%200%200%200%203.213%209h2.493A10.016%2010.016%200%200%201%205.5%207c0-.336.023-.669.055-1H3.213zm2.754%204h-2.36a5.515%205.515%200%200%200%203.819%202.893A10.023%2010.023%200%200%201%205.967%2010zM8.5%2012.644A8.942%208.942%200%200%200%209.978%2010H7.022A8.943%208.943%200%200%200%208.5%2012.644zM11.033%2010a10.024%2010.024%200%200%201-1.459%202.893A5.517%205.517%200%200%200%2013.393%2010h-2.36z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.5%201a6.5%206.5%200%201%201%200%2013%206.5%206.5%200%200%201%200-13zm4.894%204a5.527%205.527%200%200%200-3.053-2.676c.444.84.765%201.74.953%202.676h2.1zm.582%202.995A5.11%205.11%200%200%200%2014%207.5a5.464%205.464%200%200%200-.213-1.5h-2.342c.032.331.055.664.055%201a10.114%2010.114%200%200%201-.206%202h2.493c.095-.329.158-.665.19-1.005zm-3.535%200l.006-.051A9.04%209.04%200%200%200%2010.5%207a8.994%208.994%200%200%200-.076-1H6.576A8.82%208.82%200%200%200%206.5%207a8.98%208.98%200%200%200%20.233%202h3.534c.077-.332.135-.667.174-1.005zM10.249%205a8.974%208.974%200%200%200-1.255-2.97C8.83%202.016%208.666%202%208.5%202a3.62%203.62%200%200%200-.312.015l-.182.015L8%202.04A8.97%208.97%200%200%200%206.751%205h3.498zM5.706%205a9.959%209.959%200%200%201%20.966-2.681A5.527%205.527%200%200%200%203.606%205h2.1zM3.213%206A5.48%205.48%200%200%200%203%207.5%205.48%205.48%200%200%200%203.213%209h2.493A10.016%2010.016%200%200%201%205.5%207c0-.336.023-.669.055-1H3.213zm2.754%204h-2.36a5.515%205.515%200%200%200%203.819%202.893A10.023%2010.023%200%200%201%205.967%2010zM8.5%2012.644A8.942%208.942%200%200%200%209.978%2010H7.022A8.943%208.943%200%200%200%208.5%2012.644zM11.033%2010a10.024%2010.024%200%200%201-1.459%202.893A5.517%205.517%200%200%200%2013.393%2010h-2.36z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-btn+.reactodia-toolbar-action__language-selector{margin-left:5px}.reactodia-unified-search{border:var(--reactodia-input-border-width) solid var(--reactodia-input-border-color);border-radius:var(--reactodia-input-border-radius);background-color:var(--reactodia-background-color-surface);transition:border-color .15s ease-in-out}.reactodia-unified-search:focus-within{border-color:var(--reactodia-input-border-color-focus)}.reactodia-unified-search.reactodia-dropdown--expanded{box-shadow:var(--reactodia-canvas-box-shadow)}.reactodia-unified-search__toggle{border:var(--reactodia-input-border-width) solid transparent;border-radius:var(--reactodia-input-border-radius);align-items:stretch;height:28px;display:flex}.reactodia-unified-search .reactodia-dropdown__content{border-bottom-left-radius:var(--reactodia-input-border-radius);border-bottom-right-radius:var(--reactodia-input-border-radius)}.reactodia-unified-search__search-input{min-width:0;color:var(--reactodia-input-color);background-color:var(--reactodia-background-color-surface);border:none;flex:auto;margin:0;padding:6px 44px 6px 12px;display:block}.reactodia-unified-search__search-input::placeholder{color:var(--reactodia-input-color-placeholder)}.reactodia-unified-search__search-input:focus{outline:0}.reactodia-unified-search__search-icon{cursor:text;background:0 0;border:none;align-self:center;padding:0 8px;position:absolute;right:0}.reactodia-unified-search__search-icon:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M15.25%200a8.25%208.25%200%200%200-6.18%2013.72L1%2022.88l1.12%201%208.05-9.12A8.251%208.251%200%201%200%2015.25.01V0zm0%2015a6.75%206.75%200%201%201%200-13.5%206.75%206.75%200%200%201%200%2013.5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-unified-search__collapse-button,.reactodia-unified-search__clear-button{color:var(--reactodia-button-default-color);border-radius:var(--reactodia-input-border-radius);transition:background-color var(--reactodia-transition-duration);background:0 0;border:0;align-self:center;padding:6px;position:absolute;right:0}.reactodia-unified-search__collapse-button:hover,.reactodia-unified-search__clear-button:hover{color:var(--reactodia-button-default-color-focus);background-color:var(--reactodia-button-default-background-color-focus)}.reactodia-dropdown--down .reactodia-unified-search__collapse-button,.reactodia-dropdown--down .reactodia-unified-search__clear-button{border-top-left-radius:unset}.reactodia-dropdown--down.reactodia-dropdown--expanded .reactodia-unified-search__collapse-button,.reactodia-dropdown--down.reactodia-dropdown--expanded .reactodia-unified-search__clear-button{border-bottom-right-radius:unset}.reactodia-dropdown--up .reactodia-unified-search__collapse-button,.reactodia-dropdown--up .reactodia-unified-search__clear-button{border-bottom-left-radius:unset}.reactodia-dropdown--up.reactodia-dropdown--expanded .reactodia-unified-search__collapse-button,.reactodia-dropdown--up.reactodia-dropdown--expanded .reactodia-unified-search__clear-button{border-top-right-radius:unset}.reactodia-dropdown--down .reactodia-unified-search__collapse-button:after{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.024%205.928l-4.357%204.357-.62-.618L7.716%205h.618L13%209.667l-.619.618-4.357-4.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8.024%205.928l-4.357%204.357-.62-.618L7.716%205h.618L13%209.667l-.619.618-4.357-4.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-dropdown--up .reactodia-unified-search__collapse-button:after{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.976%2010.072l4.357-4.357.62.618L8.284%2011h-.618L3%206.333l.619-.618%204.357%204.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.976%2010.072l4.357-4.357.62.618L8.284%2011h-.618L3%206.333l.619-.618%204.357%204.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-unified-search__clear-button:after{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%208.707l3.646%203.647.708-.707L8.707%208l3.647-3.646-.707-.708L8%207.293%204.354%203.646l-.707.708L7.293%208l-3.646%203.646.707.708L8%208.707z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-unified-search .reactodia-dropdown__content{position:unset;box-shadow:unset}.reactodia-unified-search__panel{flex-direction:column;display:flex}.reactodia-unified-search__section-tabs{flex-wrap:wrap;gap:6px;margin:8px 10px;display:flex}.reactodia-unified-search__section-tab{text-align:center;white-space:nowrap;vertical-align:middle;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;border-width:var(--reactodia-button-border-width);transition:background-color var(--reactodia-transition-duration);border-style:solid;padding:4px;font-size:13px}.reactodia-unified-search__section{flex-direction:column;flex:auto;display:flex}.reactodia-unified-search__section:not(.reactodia-unified-search__section--active){display:none}.reactodia-zoom-control{box-shadow:var(--reactodia-canvas-box-shadow);flex-direction:column;display:flex}.reactodia-zoom-control .reactodia-btn{border-radius:unset;padding:3px}.reactodia-zoom-control .reactodia-btn+.reactodia-btn{margin-top:calc(-1 * var(--reactodia-button-border-width))}.reactodia-zoom-control>.reactodia-btn:first-child{border-top-left-radius:var(--reactodia-button-border-radius);border-top-right-radius:var(--reactodia-button-border-radius)}.reactodia-zoom-control>.reactodia-btn:last-child{border-bottom-left-radius:var(--reactodia-button-border-radius);border-bottom-right-radius:var(--reactodia-button-border-radius)}.reactodia-zoom-control__zoom-in-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.027%206.149a5.52%205.52%200%200%201-1.27%203.908l4.26%204.26-.7.71-4.26-4.27a5.52%205.52%200%201%201%201.97-4.608zm-5.45%204.888a4.51%204.51%200%200%200%203.18-1.32l-.04.02a4.51%204.51%200%200%200%201.36-3.2%204.5%204.5%200%201%200-4.5%204.5zm2.44-4v-1h-2v-2h-1v2h-2v1h2v2h1v-2h2z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.027%206.149a5.52%205.52%200%200%201-1.27%203.908l4.26%204.26-.7.71-4.26-4.27a5.52%205.52%200%201%201%201.97-4.608zm-5.45%204.888a4.51%204.51%200%200%200%203.18-1.32l-.04.02a4.51%204.51%200%200%200%201.36-3.2%204.5%204.5%200%201%200-4.5%204.5zm2.44-4v-1h-2v-2h-1v2h-2v1h2v2h1v-2h2z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-zoom-control__zoom-out-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.027%206.149a5.52%205.52%200%200%201-1.27%203.908l4.26%204.26-.7.71-4.26-4.27a5.52%205.52%200%201%201%201.97-4.608zm-5.45%204.888a4.51%204.51%200%200%200%203.18-1.32l-.04.02a4.51%204.51%200%200%200%201.36-3.2%204.5%204.5%200%201%200-4.5%204.5zm-2.54-4.98h5v1h-5v-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M12.027%206.149a5.52%205.52%200%200%201-1.27%203.908l4.26%204.26-.7.71-4.26-4.27a5.52%205.52%200%201%201%201.97-4.608zm-5.45%204.888a4.51%204.51%200%200%200%203.18-1.32l-.04.02a4.51%204.51%200%200%200%201.36-3.2%204.5%204.5%200%201%200-4.5%204.5zm-2.54-4.98h5v1h-5v-1z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-zoom-control__zoom-fit-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M%201.5,6%20V%201.5%20H%206%20v%201%20H%202.5%20V%206%20Z'%20/%3e%3cpath%20d='m%2010,2.5%20v%20-1%20h%204.5%20V%206%20h%20-1%20V%202.5%20Z'%20/%3e%3cpath%20d='m%201.5,10%20v%204.5%20H%206%20v%20-1%20H%202.5%20V%2010%20Z'%20/%3e%3cpath%20d='m%2010,13.5%20v%201%20h%204.5%20V%2010%20h%20-1%20v%203.5%20z'%20/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M%201.5,6%20V%201.5%20H%206%20v%201%20H%202.5%20V%206%20Z'%20/%3e%3cpath%20d='m%2010,2.5%20v%20-1%20h%204.5%20V%206%20h%20-1%20V%202.5%20Z'%20/%3e%3cpath%20d='m%201.5,10%20v%204.5%20H%206%20v%20-1%20H%202.5%20V%2010%20Z'%20/%3e%3cpath%20d='m%2010,13.5%20v%201%20h%204.5%20V%2010%20h%20-1%20v%203.5%20z'%20/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-zoom-control__selection-mode-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1%203l1-1h12l1%201v6h-1V3H2v8h5v1H2l-1-1V3zm14.707%209.707L9%206v9.414l2.707-2.707h4zM10%2013V8.414l3.293%203.293h-2L10%2013z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M1%203l1-1h12l1%201v6h-1V3H2v8h5v1H2l-1-1V3zm14.707%209.707L9%206v9.414l2.707-2.707h4zM10%2013V8.414l3.293%203.293h-2L10%2013z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-accordion{flex:auto;width:100%;height:100%;display:flex}.reactodia-accordion--vertical{flex-direction:column}.reactodia-accordion--vertical:not(.reactodia-accordion--resizing):not(:has(.reactodia-accordion-item__handle:focus))>.reactodia-accordion-item{transition:height var(--reactodia-accordion-transition-duration) ease-in-out}.reactodia-accordion--horizontal:not(.reactodia-accordion--resizing):not(:has(.reactodia-accordion-item__handle:focus))>.reactodia-accordion-item{transition:width var(--reactodia-accordion-transition-duration) ease-in-out}.reactodia-accordion-item{flex:auto;display:flex;position:relative}.reactodia-accordion-item--resizing>.reactodia-accordion-item__handle,.reactodia-accordion-item__handle:hover{background:#0000001a}.reactodia-accordion-item--vertical{border-top:var(--reactodia-border-width-base) solid var(--reactodia-border-color-base)}.reactodia-accordion-item--vertical:first-child{border-top-width:0}.reactodia-accordion-item--horizontal{border-right:var(--reactodia-border-width-base) solid var(--reactodia-border-color-base)}.reactodia-accordion-item--horizontal:last-child{border-right-width:0}.reactodia-accordion-item__handle{z-index:calc(var(--reactodia-z-index-base) + 10);position:absolute}.reactodia-accordion-item__handle-vertical{cursor:ns-resize;width:100%;height:5px;bottom:-2.5px;left:0}.reactodia-accordion-item__handle-horizontal{cursor:ew-resize;width:5px;height:100%;top:0;right:-2.5px}.reactodia-accordion-item__handle-btn{background-color:var(--reactodia-button-default-background-color);border:2px solid var(--reactodia-color-primary);cursor:pointer;width:20px;height:20px;z-index:calc(var(--reactodia-z-index-base) + 20);transition:var(--reactodia-accordion-transition-duration);border-radius:10px;justify-content:center;align-items:center;margin-top:-10px;padding:0;display:flex;position:absolute;top:50%;box-shadow:0 0 0 1px #091e4214,0 2px 4px 1px #091e4214}.reactodia-accordion-item__handle-btn:before{content:\"\";width:16px;height:16px;transition:opacity filter var(--reactodia-accordion-transition-duration);color:var(--reactodia-color-emphasis-700);background-color:currentColor;-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.reactodia-accordion-item__handle-btn:hover{background-color:var(--reactodia-color-primary)}.reactodia-accordion-item__handle-btn:hover:before{opacity:1;color:var(--reactodia-color-gray-0)}.reactodia-accordion-item__handle-btn-left{margin-left:-10px;left:100%}.reactodia-accordion-item__handle-btn-left:before{-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M5.928%207.976l4.357%204.357-.618.62L5%208.284v-.618L9.667%203l.618.619-4.357%204.357z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M5.928%207.976l4.357%204.357-.618.62L5%208.284v-.618L9.667%203l.618.619-4.357%204.357z'/%3e%3c/svg%3e\")}.reactodia-accordion-item--collapsed .reactodia-accordion-item__handle-btn-left{margin-left:calc(-1 * min(10px, var(--reactodia-accordion-item-size,0px) - 4px))}.reactodia-accordion-item__handle-btn-right{margin-right:-10px;right:100%}.reactodia-accordion-item__handle-btn-right:before{-webkit-mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\")}.reactodia-accordion-item--collapsed .reactodia-accordion-item__handle-btn-right{margin-right:calc(-1 * min(10px, var(--reactodia-accordion-item-size,0px) - 4px))}.reactodia-accordion-item--collapsed .reactodia-accordion-item__handle-btn:before{transform:rotate(180deg)}.reactodia-accordion-item__inner{flex-direction:column;flex:auto;display:flex;overflow:hidden}.reactodia-accordion-item__body{background-color:var(--reactodia-background-color);min-width:var(--reactodia-item-min-width);flex-direction:column;flex:1 1 0;display:flex}.reactodia-accordion-item__header{text-align:unset;background-color:var(--reactodia-color-emphasis-200);cursor:default;outline-offset:-2px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border:none;flex-shrink:0;padding:0 0 0 20px;font-size:16px;position:relative}.reactodia-accordion-item__header:before{border-top:6px solid var(--reactodia-color-emphasis-700);content:\"\";border-left:3.5px solid #0000;border-right:3.5px solid #0000;margin-top:-3px;transition:all .1s;position:absolute;top:50%;left:7px}.reactodia-accordion-item--collapsed .reactodia-accordion-item__inner{background-color:var(--reactodia-background-color-surface)}.reactodia-accordion-item--collapsed .reactodia-accordion-item__header:before{transform:rotate(-90deg)}.reactodia-accordion-item--collapsed .reactodia-accordion-item__body{display:none}.reactodia-workspace{box-sizing:border-box;height:100%;white-space:initial;color:var(--reactodia-font-color-base);font-family:var(--reactodia-font-family-base);font-size:var(--reactodia-font-size-base);line-height:var(--reactodia-line-height-base);flex-direction:column;display:flex}.reactodia-workspace *,.reactodia-workspace :before,.reactodia-workspace :after{box-sizing:inherit}.reactodia-scrollable{flex:1 1 0;overflow-y:scroll}.reactodia-scrollable>*{position:relative}.reactodia-classic-template{float:left;border-style:solid;border-width:1px;border-radius:12px;max-width:450px}.reactodia-classic-template__thumbnail{text-align:center}.reactodia-classic-template__thumbnail-image{max-width:200px}.reactodia-classic-template--expanded .reactodia-classic-template__thumbnail-image{max-width:350px}.reactodia-classic-template__type-line{color:#fff;align-items:baseline;height:18px;margin-top:-3px;margin-bottom:2px;padding:0 7px;display:flex;overflow:hidden}.reactodia-classic-template__type-line-icon{margin-right:4px;position:inherit!important}.reactodia-classic-template__type-line-text-container{text-overflow:ellipsis;flex-grow:1;width:0;overflow:hidden}.reactodia-classic-template__type-line-text{white-space:nowrap;font-size:12px;display:inline}.reactodia-classic-template__body{background:var(--reactodia-element-background-color);border-top-style:solid;border-top-width:1px;border-bottom-right-radius:12px;border-bottom-left-radius:12px;flex-direction:column;padding:7px 10px 8px;display:flex;overflow:hidden}.reactodia-classic-template__label{text-overflow:ellipsis;white-space:nowrap;word-wrap:break-word;margin-bottom:0;font-size:19px;font-weight:100;overflow:hidden}.reactodia-classic-template__expander{width:100%;display:flex;overflow:hidden}.reactodia-classic-template__iri-heading{color:var(--reactodia-color-emphasis-500);margin-right:15px;font-size:12px;font-weight:100}.reactodia-classic-template__iri-container{white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:12px;overflow:hidden}.reactodia-classic-template__iri{color:var(--reactodia-color-emphasis-500)}.reactodia-classic-template__divider{border:0;border-top:1px solid var(--reactodia-border-color-base);height:0;margin:5px 0}.reactodia-classic-template__property-table{max-height:200px;margin-bottom:5px;font-size:15px;font-weight:100;overflow:hidden scroll}.reactodia-classic-template__property-row{white-space:nowrap}.reactodia-classic-template__property-label{text-overflow:ellipsis;vertical-align:top;width:50%;display:inline-block;overflow:hidden}.reactodia-classic-template__property-values{text-overflow:ellipsis;width:50%;display:inline-block;overflow:hidden}.reactodia-classic-template__property-value{text-overflow:ellipsis;width:100%;white-space:initial;padding-right:10px;overflow:hidden}.reactodia-group-paginator{height:22px;display:flex}.reactodia-group-paginator__previous,.reactodia-group-paginator__next{padding:0 5px}.reactodia-group-paginator__previous{align-items:center;display:flex}.reactodia-group-paginator__previous:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M5.928%207.976l4.357%204.357-.618.62L5%208.284v-.618L9.667%203l.618.619-4.357%204.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M5.928%207.976l4.357%204.357-.618.62L5%208.284v-.618L9.667%203l.618.619-4.357%204.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-group-paginator__previous:not(:empty):before{margin-right:3px}.reactodia-group-paginator__previous{border-top-right-radius:unset;border-bottom-right-radius:unset}.reactodia-group-paginator__next{align-items:center;display:flex}.reactodia-group-paginator__next:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-group-paginator__next:not(:empty):before{margin-right:3px}.reactodia-group-paginator__next{border-top-left-radius:unset;border-bottom-left-radius:unset}.reactodia-group-paginator__status{text-align:center;border-top:var(--reactodia-button-border-width) solid var(--reactodia-button-default-border-color);border-bottom:var(--reactodia-button-border-width) solid var(--reactodia-button-default-border-color);flex:0 0 60px;line-height:22px}.reactodia-group-paginator__page-size{margin-left:4px}.reactodia-note-annotation{border:2px solid var(--reactodia-color-gray-500);border-radius:var(--reactodia-border-radius-s);align-content:center;width:200px;height:120px;display:grid}.reactodia-note-annotation--variant-default{color:var(--reactodia-font-color-base);background-color:var(--reactodia-element-background-color);border-color:var(--reactodia-color-gray-500)}.reactodia-note-annotation--variant-primary{color:var(--reactodia-color-primary-contrast-foreground);background-color:var(--reactodia-color-primary-contrast-background);border-color:var(--reactodia-color-primary)}.reactodia-note-annotation--variant-success{color:var(--reactodia-color-success-contrast-foreground);background-color:var(--reactodia-color-success-contrast-background);border-color:var(--reactodia-color-success)}.reactodia-note-annotation--variant-info{color:var(--reactodia-color-info-contrast-foreground);background-color:var(--reactodia-color-info-contrast-background);border-color:var(--reactodia-color-info)}.reactodia-note-annotation--variant-warning{color:var(--reactodia-color-warning-contrast-foreground);background-color:var(--reactodia-color-warning-contrast-background);border-color:var(--reactodia-color-warning)}.reactodia-note-annotation--variant-danger{color:var(--reactodia-color-danger-contrast-foreground);background-color:var(--reactodia-color-danger-contrast-background);border-color:var(--reactodia-color-danger)}.reactodia-note-annotation--editing{align-content:unset}.reactodia-note-annotation__editor{overflow-wrap:break-word;pointer-events:none;text-align:center;outline:none;margin:0;padding:10px;font-size:18px}.reactodia-note-annotation--editing .reactodia-note-annotation__editor{cursor:text;pointer-events:all}.reactodia-note-annotation__controls{gap:var(--reactodia-spacing-base);flex-direction:column;width:max-content;display:flex;position:absolute;top:10px;right:-10px;transform:translate(100%)}.reactodia-note-annotation__style-bold{align-items:center;display:flex}.reactodia-note-annotation__style-bold:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext-bold%3c/title%3e%3cpath%20d='M18.25,25H9V7h8.5a5.25,5.25,0,0,1,4,8.65A5.25,5.25,0,0,1,18.25,25ZM12,22h6.23a2.25,2.25,0,1,0,0-4.5H12Zm0-7.5h5.5a2.25,2.25,0,1,0,0-4.5H12Z'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext-bold%3c/title%3e%3cpath%20d='M18.25,25H9V7h8.5a5.25,5.25,0,0,1,4,8.65A5.25,5.25,0,0,1,18.25,25ZM12,22h6.23a2.25,2.25,0,1,0,0-4.5H12Zm0-7.5h5.5a2.25,2.25,0,1,0,0-4.5H12Z'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-note-annotation__style-bold:not(:empty):before{margin-right:3px}.reactodia-note-annotation__style-italic{align-items:center;display:flex}.reactodia-note-annotation__style-italic:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext-italic%3c/title%3e%3cpolygon%20points='25%209%2025%207%2012%207%2012%209%2017.14%209%2012.77%2023%207%2023%207%2025%2020%2025%2020%2023%2014.86%2023%2019.23%209%2025%209'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext-italic%3c/title%3e%3cpolygon%20points='25%209%2025%207%2012%207%2012%209%2017.14%209%2012.77%2023%207%2023%207%2025%2020%2025%2020%2023%2014.86%2023%2019.23%209%2025%209'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-note-annotation__style-italic:not(:empty):before{margin-right:3px}.reactodia-note-annotation__style-underline{align-items:center;display:flex}.reactodia-note-annotation__style-underline:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext-underline%3c/title%3e%3crect%20x='4'%20y='26'%20width='24'%20height='2'/%3e%3cpath%20d='M16,23a7,7,0,0,1-7-7V5h2V16a5,5,0,0,0,10,0V5h2V16A7,7,0,0,1,16,23Z'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext-underline%3c/title%3e%3crect%20x='4'%20y='26'%20width='24'%20height='2'/%3e%3cpath%20d='M16,23a7,7,0,0,1-7-7V5h2V16a5,5,0,0,0,10,0V5h2V16A7,7,0,0,1,16,23Z'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-note-annotation__style-underline:not(:empty):before{margin-right:3px}.reactodia-note-annotation__style-strikethrough{align-items:center;display:flex}.reactodia-note-annotation__style-strikethrough:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext--strikethrough%3c/title%3e%3cpath%20d='M28,15H17.9563c-.4522-.1237-.9037-.2324-1.3381-.3352-2.8077-.6641-4.396-1.1506-4.396-3.4231a2.8684,2.8684,0,0,1,.7866-2.145,4.7888,4.7888,0,0,1,3.0137-1.09c2.8291-.07,4.1347.8894,5.2011,2.35l1.6153-1.1792a7.4727,7.4727,0,0,0-6.83-3.1706,6.7726,6.7726,0,0,0-4.4,1.6611,4.8274,4.8274,0,0,0-1.3862,3.5735A4.3723,4.3723,0,0,0,11.9573,15H4v2H17.6519c1.9668.57,3.1432,1.3123,3.1733,3.3579a3.119,3.119,0,0,1-.8623,2.3931A5.8241,5.8241,0,0,1,16.2432,24a6.6344,6.6344,0,0,1-5.1451-2.6912L9.5649,22.593A8.5262,8.5262,0,0,0,16.2119,26c.0088-.0012.042,0,.1,0A7.67,7.67,0,0,0,21.36,24.1812a5.0779,5.0779,0,0,0,1.4648-3.8531A4.952,4.952,0,0,0,21.6753,17H28Z'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3etext--strikethrough%3c/title%3e%3cpath%20d='M28,15H17.9563c-.4522-.1237-.9037-.2324-1.3381-.3352-2.8077-.6641-4.396-1.1506-4.396-3.4231a2.8684,2.8684,0,0,1,.7866-2.145,4.7888,4.7888,0,0,1,3.0137-1.09c2.8291-.07,4.1347.8894,5.2011,2.35l1.6153-1.1792a7.4727,7.4727,0,0,0-6.83-3.1706,6.7726,6.7726,0,0,0-4.4,1.6611,4.8274,4.8274,0,0,0-1.3862,3.5735A4.3723,4.3723,0,0,0,11.9573,15H4v2H17.6519c1.9668.57,3.1432,1.3123,3.1733,3.3579a3.119,3.119,0,0,1-.8623,2.3931A5.8241,5.8241,0,0,1,16.2432,24a6.6344,6.6344,0,0,1-5.1451-2.6912L9.5649,22.593A8.5262,8.5262,0,0,0,16.2119,26c.0088-.0012.042,0,.1,0A7.67,7.67,0,0,0,21.36,24.1812a5.0779,5.0779,0,0,0,1.4648-3.8531A4.952,4.952,0,0,0,21.6753,17H28Z'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-note-annotation__style-strikethrough:not(:empty):before{margin-right:3px}.reactodia-note-annotation__align-left{align-items:center;display:flex}.reactodia-note-annotation__align-left:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3ealign--left%3c/title%3e%3crect%20x='12'%20y='6'%20width='14'%20height='2'/%3e%3crect%20x='12'%20y='12'%20width='10'%20height='2'/%3e%3crect%20x='12'%20y='18'%20width='14'%20height='2'/%3e%3crect%20x='12'%20y='24'%20width='10'%20height='2'/%3e%3crect%20x='6'%20y='4'%20width='2'%20height='24'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3ealign--left%3c/title%3e%3crect%20x='12'%20y='6'%20width='14'%20height='2'/%3e%3crect%20x='12'%20y='12'%20width='10'%20height='2'/%3e%3crect%20x='12'%20y='18'%20width='14'%20height='2'/%3e%3crect%20x='12'%20y='24'%20width='10'%20height='2'/%3e%3crect%20x='6'%20y='4'%20width='2'%20height='24'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-note-annotation__align-left:not(:empty):before{margin-right:3px}.reactodia-note-annotation__align-center{align-items:center;display:flex}.reactodia-note-annotation__align-center:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3ealign--center%3c/title%3e%3crect%20x='6'%20y='6'%20width='20'%20height='2'/%3e%3crect%20x='10'%20y='12'%20width='12'%20height='2'/%3e%3crect%20x='6'%20y='18'%20width='20'%20height='2'/%3e%3crect%20x='10'%20y='24'%20width='12'%20height='2'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3ealign--center%3c/title%3e%3crect%20x='6'%20y='6'%20width='20'%20height='2'/%3e%3crect%20x='10'%20y='12'%20width='12'%20height='2'/%3e%3crect%20x='6'%20y='18'%20width='20'%20height='2'/%3e%3crect%20x='10'%20y='24'%20width='12'%20height='2'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-note-annotation__align-center:not(:empty):before{margin-right:3px}.reactodia-note-annotation__align-right{align-items:center;display:flex}.reactodia-note-annotation__align-right:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3ealign--right%3c/title%3e%3crect%20x='6'%20y='6'%20width='14'%20height='2'/%3e%3crect%20x='10'%20y='12'%20width='10'%20height='2'/%3e%3crect%20x='6'%20y='18'%20width='14'%20height='2'/%3e%3crect%20x='10'%20y='24'%20width='10'%20height='2'/%3e%3crect%20x='24'%20y='4'%20width='2'%20height='24'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20id='icon'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:none;}%3c/style%3e%3c/defs%3e%3ctitle%3ealign--right%3c/title%3e%3crect%20x='6'%20y='6'%20width='14'%20height='2'/%3e%3crect%20x='10'%20y='12'%20width='10'%20height='2'/%3e%3crect%20x='6'%20y='18'%20width='14'%20height='2'/%3e%3crect%20x='10'%20y='24'%20width='10'%20height='2'/%3e%3crect%20x='24'%20y='4'%20width='2'%20height='24'/%3e%3crect%20id='_Transparent_Rectangle_'%20data-name='<Transparent%20Rectangle>'%20class='cls-1'%20width='32'%20height='32'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-note-annotation__align-right:not(:empty):before{margin-right:3px}.reactodia-note-annotation__variant{border-radius:var(--reactodia-border-radius-s);border-top-style:solid;border-top-width:16px;width:16px;height:16px}.reactodia-note-link__path:not([stroke]){stroke:var(--reactodia-color-gray-500)}.reactodia-note-link__path:not([stroke-width]){stroke-width:2px}.reactodia-note-link__label{color:var(--reactodia-color-emphasis-600);font-weight:700}.reactodia-round-entity{background-color:var(--reactodia-element-background-color);border:4px solid var(--reactodia-element-style-color);text-align:center;border-radius:50%;grid-template-rows:1fr 1fr 1fr;align-items:center;width:120px;height:120px;display:grid}.reactodia-round-entity__types{white-space:nowrap;text-overflow:ellipsis;color:#999;place-self:end center;width:65%;font-size:11px;font-style:italic;overflow:hidden}.reactodia-round-entity__label{white-space:nowrap;text-overflow:ellipsis;margin:0 10px;font-size:18px;overflow:hidden}.reactodia-standard-element{float:left;min-width:180px;max-width:400px}.reactodia-standard-element--group{border-radius:var(--reactodia-border-radius-s);border:1px solid;border-color:var(--reactodia-standard-group-color);background:var(--reactodia-element-background-color);padding:4px}.reactodia-standard-element__main{border-radius:var(--reactodia-border-radius-s);border:1px solid;border-color:var(--reactodia-element-style-color);background-color:var(--reactodia-element-style-color)}.reactodia-standard-element__body{border-radius:0 var(--reactodia-border-radius-s) var(--reactodia-border-radius-s) 0;border-left:1px solid;border-left-color:var(--reactodia-element-style-color);background:var(--reactodia-element-background-color);margin-left:8px;padding:3px 0}.reactodia-standard-element--new .reactodia-standard-element__main{background-color:var(--reactodia-element-background-color)}.reactodia-standard-element__body-horizontal{justify-content:space-between;align-items:center;display:flex;overflow:hidden}.reactodia-standard-element__body-content{flex-grow:1;min-width:0;margin-right:12px}.reactodia-standard-element__item{border-radius:var(--reactodia-border-radius-s);border:0;display:flex}.reactodia-standard-element__item-filler{padding:3px;font-size:15px}.reactodia-standard-element__item:not(:first-child),.reactodia-standard-element__item-filler:not(:first-child){margin-top:4px}.reactodia-standard-element__item-stripe{background:var(--reactodia-element-style-color);width:6px}.reactodia-standard-element--new .reactodia-standard-element__item-stripe{background:var(--reactodia-element-background-color);border:1px solid var(--reactodia-element-style-color)}.reactodia-standard-element__item-body{text-overflow:ellipsis;background:var(--reactodia-element-background-color);flex:auto;padding:3px;display:flex;overflow:hidden}.reactodia-standard-element__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.reactodia-standard-element--standalone .reactodia-standard-element__label{font-size:19px}.reactodia-standard-element--group .reactodia-standard-element__label{flex:auto;font-size:15px}.reactodia-standard-element--group .reactodia-standard-element--changed .reactodia-standard-element__label{color:#09f;font-style:italic}.reactodia-standard-element--group .reactodia-standard-element--deleted .reactodia-standard-element__label{color:#ff3b3b;text-decoration:line-through}.reactodia-standard-element__thumbnail{width:50px;height:50px;color:var(--reactodia-element-style-color);flex-shrink:0;justify-content:center;align-items:center;margin:5px 10px;font-size:26px;display:flex}.reactodia-standard-element__thumbnail-image{max-width:100%;max-height:100%}.reactodia-standard-element__thumbnail-icon{object-fit:contain;width:26px;height:26px}.reactodia-standard-element__thumbnail-icon--monochrome{filter:var(--reactodia-monochrome-icon-filter)}.reactodia-standard-element__photo{border-bottom:1px solid;border-color:var(--reactodia-element-style-color)}.reactodia-standard-element__photo-image{border-radius:var(--reactodia-border-radius-s) var(--reactodia-border-radius-s) 0 0;width:100%}.reactodia-standard-element__type{white-space:nowrap;text-overflow:ellipsis;color:#999;font-size:11px;font-style:italic;display:flex;overflow:hidden}.reactodia-standard-element__type-value{text-overflow:ellipsis;flex-grow:1;width:0;overflow:hidden}.reactodia-standard-element__iri{width:100%;display:flex;overflow:hidden}.reactodia-standard-element__iri-key{color:var(--reactodia-color-emphasis-500);margin-right:4px;font-size:12px}.reactodia-standard-element__iri-value{white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:12px;overflow:hidden}.reactodia-standard-element__iri-value a{color:var(--reactodia-color-emphasis-500)}.reactodia-standard-element__hr{border:0;border-top:1px solid var(--reactodia-border-color-base);height:0;margin:5px 0}.reactodia-standard-element__properties{max-height:200px;font-size:15px;overflow:hidden scroll}.reactodia-standard-element__properties-row{white-space:nowrap;grid-template-columns:1fr 1fr;display:grid}.reactodia-standard-element__properties-key{text-overflow:ellipsis;vertical-align:top;display:inline-block;overflow:hidden}.reactodia-standard-element__properties-values{text-overflow:ellipsis;display:inline-block;overflow:hidden}.reactodia-standard-element__properties-value{text-overflow:ellipsis;width:100%;white-space:initial;padding-right:10px;overflow:hidden}.reactodia-standard-element__pinned-props{border-top:1px solid;border-color:var(--reactodia-element-style-color);margin:0 5px}.reactodia-standard-element__dropdown{border:1px solid;border-color:var(--reactodia-element-style-color);border-radius:var(--reactodia-border-radius-s);background-color:var(--reactodia-element-background-color);margin-top:5px}.reactodia-standard-element__dropdown-content{width:100%;padding:9px}.reactodia-standard-element__actions{justify-content:space-between;display:flex}.reactodia-standard-element__delete-button,.reactodia-standard-element__edit-button{align-items:center;min-width:60px;padding:5px;display:flex}.reactodia-standard-element__delete-button{align-items:center;display:flex}.reactodia-standard-element__delete-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%203h3v1h-1v9l-1%201H4l-1-1V4H2V3h3V2a1%201%200%200%201%201-1h3a1%201%200%200%201%201%201v1zM9%202H6v1h3V2zM4%2013h7V4H4v9zm2-8H5v7h1V5zm1%200h1v7H7V5zm2%200h1v7H9V5z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-standard-element__delete-button:not(:empty):before{margin-right:3px}.reactodia-standard-element__edit-button{align-items:center;display:flex}.reactodia-standard-element__edit-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.23%201h-1.46L3.52%209.25l-.16.22L1%2013.59%202.41%2015l4.12-2.36.22-.16L15%204.23V2.77L13.23%201zM2.41%2013.59l1.51-3%201.45%201.45-2.96%201.55zm3.83-2.06L4.47%209.76l8-8%201.77%201.77-8%208z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20d='M13.23%201h-1.46L3.52%209.25l-.16.22L1%2013.59%202.41%2015l4.12-2.36.22-.16L15%204.23V2.77L13.23%201zM2.41%2013.59l1.51-3%201.45%201.45-2.96%201.55zm3.83-2.06L4.47%209.76l8-8%201.77%201.77-8%208z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-standard-element__edit-button:not(:empty):before{margin-right:3px}.reactodia-standard-element__ungroup-one-button{align-items:center;display:flex}.reactodia-standard-element__ungroup-one-button:before{content:\"\";background-color:currentColor;width:16px;height:16px;display:block;-webkit-mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat;mask:url(\"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20xmlns='http://www.w3.org/2000/svg'%20fill='currentColor'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.072%208.024L5.715%203.667l.618-.62L11%207.716v.618L6.333%2013l-.618-.619%204.357-4.357z'/%3e%3c/svg%3e\") 0 0/contain no-repeat}.reactodia-standard-element__ungroup-one-button:not(:empty):before{margin-right:3px}.reactodia-standard-element__ungroup-one-button{opacity:0;align-self:center;width:18px;height:18px;margin-left:2px;padding:0;transition:opacity .2s;display:block}.reactodia-standard-element:hover .reactodia-standard-element__ungroup-one-button,.reactodia-standard-element:focus .reactodia-standard-element__ungroup-one-button,.reactodia-overlaid-element--only-selected .reactodia-standard-element__ungroup-one-button{opacity:1}.reactodia-standard-element--group .reactodia-group-paginator{opacity:.4;margin-top:4px;transition:opacity .2s}.reactodia-standard-element--group .reactodia-group-paginator:hover{opacity:1}.reactodia-standard-link--group .reactodia-link-path{stroke-width:2px}.reactodia-standard-link__path:not([stroke]){stroke:var(--reactodia-link-stroke-color)}.reactodia-standard-link__label{font-weight:700}.reactodia-standard-link__label--renamed{font-style:italic;font-weight:400}.reactodia-standard-link__property{text-overflow:ellipsis;max-width:150px;font-size:90%;font-style:normal;font-weight:400;overflow:hidden}.reactodia-standard-link__source-count,.reactodia-standard-link__target-count{color:var(--reactodia-color-emphasis-600);opacity:.8;font-size:12px;font-weight:700}\n/*$vite$:1*/")),document.head.appendChild(e)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}}();var vr,mr,br=m.createContext(null),wr=m.createContext({defined:!1,actInColorScheme:()=>{}}),yr=class{listeners=new Map;anyListeners;on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}onAny(e){let t=this.anyListeners;t||(t=new Set,this.anyListeners=t),t.add(e)}off(e,t){const n=this.listeners.get(e);n&&n.delete(t)}offAny(e){const t=this.anyListeners;t&&t.delete(e)}trigger(e,t){const n=this.listeners.get(e);if(n)for(const e of n)e(t);if(this.anyListeners)for(const n of this.anyListeners)n({[e]:t})}},_r=class{onDispose=new Set;listen(e,t,n){e.on(t,n),this.onDispose.add((()=>e.off(t,n)))}listenAny(e,t){e.onAny(t),this.onDispose.add((()=>e.offAny(t)))}listenOnce(e,t,n){let r;const i=o=>{e.off(t,i),this.onDispose.delete(r),n(o)};r=()=>{e.off(t,i),this.onDispose.delete(r)},e.on(t,i),this.onDispose.add(r)}stopListening(){for(const e of this.onDispose)e();this.onDispose.clear()}},kr=class{scheduled;_timeout;callback;constructor(e="frame"){this._timeout=e,this.runSynchronously=this.runSynchronously.bind(this)}get timeout(){return this._timeout}setTimeout(e){this._timeout=e}call(e){this.callback=e,this.schedule()}schedule(){void 0===this.scheduled&&(this.scheduled="frame"===this.timeout?requestAnimationFrame(this.runSynchronously):setTimeout(this.runSynchronously,this.timeout))}run(){const e=this.callback;e?.()}runSynchronously=()=>{this.cancelScheduledTimeout()&&this.run()};dispose(){this.cancelScheduledTimeout()}cancelScheduledTimeout(){return void 0!==this.scheduled&&("frame"===this.timeout?cancelAnimationFrame(this.scheduled):clearTimeout(this.scheduled),this.scheduled=void 0,!0)}},xr=class{onFetch;debouncer;queuedItems=new Set;constructor(e,t=200){this.onFetch=e,this.debouncer=new kr(t)}has(e){return this.queuedItems.has(e)}push(e){this.queuedItems.add(e),this.debouncer.call(this.run)}clear(){this.queuedItems.clear()}run=()=>{const{queuedItems:e,onFetch:t}=this,n=Array.from(e);e.clear(),t(n)}},Sr="urn:reactodia:isPlaceholder",Cr="urn:reactodia:newElement",Lr="urn:reactodia:newLink",Mr=class e{value;static empty=new e(void 0);constructor(e){this.value=e}static property(e){return{of:()=>e}}get(e){return this.value?.[e]}set(t,n){const r=this.value;if(void 0!==n){if(r?.[t]!==n)return new e({...r,[t]:n})}else if(void 0!==r?.[t]){const{[t]:n,...i}=r;return new e(i)}return this}static fromJSON(t){return void 0===t?e.empty:new e(t)}toJSON(){return this.value?{...this.value}:void 0}};(mr=vr||(vr={})).Expanded=Mr.property("urn:reactodia:expanded").of(),mr.ElementSize=Mr.property("urn:reactodia:elementSize").of(),mr.PinnedProperties=Mr.property("urn:reactodia:pinnedProperties").of(),mr.CustomLabel=Mr.property("urn:reactodia:customLabel").of(),mr.LayoutOnly=Mr.property("urn:reactodia:layoutOnly").of(),mr.GroupPageIndex=Mr.property("urn:reactodia:groupPageIndex").of(),mr.GroupPageSize=Mr.property("urn:reactodia:groupPageSize").of(),mr.AnnotationContent=Mr.property("urn:reactodia:annotationContent").of(),mr.ColorVariant=Mr.property("urn:reactodia:colorVariant").of();var Er,zr,$r=["default","primary","success","info","warning","danger"],Tr=class{get factory(){return Bt}knownElementTypes(e){return Promise.resolve({elementTypes:[],subtypeOf:[]})}knownLinkTypes(e){return Promise.resolve([])}elementTypes(e){return Promise.resolve(new Map)}propertyTypes(e){return Promise.resolve(new Map)}linkTypes(e){return Promise.resolve(new Map)}elements(e){return Promise.resolve(new Map)}links(e){return Promise.resolve([])}connectedLinkStats(e){return Promise.resolve([])}lookup(e){return Promise.resolve([])}};function Nr(){function e(){return Math.floor(4294967296*(1+Math.random())).toString(16).substring(1)}return e()+e()+e()+e()}function Ar(e){const t=new RegExp(function(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}(e),"i");return e=>t.test(e)}function Ir(e){return Boolean(e&&"NamedNode"===e.termType)}function Pr(e){return Boolean(e&&"BlankNode"===e.termType)}function Vr(e){return Boolean(e&&"Literal"===e.termType)}function Hr(e){return void 0!==e.blankTrgProp||void 0!==e.blankTrg||void 0!==e.blankSrcProp||void 0!==e.blankSrc}(zr=Er||(Er={})).hashCode=function(e){return D(Math.imul(jt(e.source),31)+jt(e.predicate)|0)},zr.equals=function(e,t){return Ft(e.source,t.source)&&Ft(e.predicate,t.predicate)};var Rr="urn:reactodia:blank:sparql:";function Or(e){return e.startsWith(Rr)}function Dr(e){switch(e.termType){case"NamedNode":return["i",e.value];case"BlankNode":return["b",e.value];case"Literal":return e.language?["l",e.value,e.language]:e.datatype&&"http://www.w3.org/2001/XMLSchema#string"!==e.datatype.value?["d",e.value,e.datatype.value]:["l",e.value]}}function Br(e,t){switch(e[0]){case"i":return t.namedNode(e[1]);case"b":return t.blankNode(e[1]);case"l":return t.literal(e[1],e[2]);case"d":return t.literal(e[1],t.namedNode(e[2]));default:throw new Error(`Unexpected encoded blank node term: ${JSON.stringify(e)}`)}}function jr(e,t){const n=new Map;for(const t of e){const e={t:t.blankType.value,p:Dr(t.blankTrgProp),o:Dr(t.blankTrg),s:t.blankSrc?Dr(t.blankSrc):void 0,sp:t.blankSrcProp?Dr(t.blankSrcProp):void 0,c:t.class?Dr(t.class):void 0};n.set(JSON.stringify(e),e)}const r=Array.from(n.keys()).sort(),i=("number"==typeof t?r.slice(0,Math.max(t,0)):r).map((e=>n.get(e)));return Rr+function(e){const t=(new TextEncoder).encode(e);let n="";for(const e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}(JSON.stringify(i))}function Fr(e,t){if(!Or(e))return;let n;try{const t=e.substring(27);if(n=JSON.parse(function(e){const t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return(new TextDecoder).decode(n)}(t)),!Array.isArray(n))return}catch{return}try{const r=t.namedNode(e);return n.map((e=>{const n={inst:r,blankType:t.literal(e.t),blankTrgProp:Br(e.p,t),blankTrg:Br(e.o,t),blankSrc:e.s?Br(e.s,t):void 0,blankSrcProp:e.sp?Br(e.sp,t):void 0,class:e.c?Br(e.c,t):void 0};return n.label=Ur(n,t),n}))}catch{return}}function Ur(e,t){if("listHead"===e.blankType.value)return t.literal("RDFList");const{class:n}=e;return t.literal(n?Ut(n.value)??n.value:"anonymous")}var qr=class{queryFunction;running=new Map;constructor(e){this.queryFunction=e}executeQuery(e){const t=this.running.get(e);if(t)return t;const n=this.queryFunction(e).then((t=>(this.running.delete(e),t)),(t=>{throw this.running.delete(e),t}));return this.running.set(e,n),n}};async function Wr(e,t,n,r){const i=[],o=[];for(const t of e.results.bindings)Hr(t)?o.push(t):i.push(t);if(0===o.length)return e;const a=await async function(e,t,n,r){const i=new Map;for(const t of e){let e=i.get(t.inst.value);e||(e=[],i.set(t.inst.value,e)),e.push(t)}const o=[];for(const t of e)Pr(t.blankTrg)&&o.push([t]);const a=await Kr(o,new qr(t),n,r),{blankNodeStatementLimit:s}=n,l=Gr(a,r,s);for(const e of i.values()){for(const t of e){const e=l.get(t.blankTrg.value);void 0!==e&&(t.blankTrg=r.namedNode(e)),t.label||(t.label=Ur(t,r))}Zr(e,jr(e,s),r)}return e.slice()}(o,t,n,r);return{...e,results:{...e.results,bindings:i.concat(a)}}}function Gr(e,t,n){const r=new Map;for(const[i,o]of e){const e=jr(o,n);r.set(i,e),Zr(o,e,t)}return r}function Zr(e,t,n){const r=n.namedNode(t);for(const t of e)t.inst=r}async function Kr(e,t,n,r,i=1){const o=new Map;if(i>3||0===e.length)return o;const a=await Promise.all(e.map((async e=>({chain:e,response:await t.executeQuery(Xr(e,n))}))));return await Promise.all(a.map((async({chain:e,response:a})=>{const s=a.results.bindings;if(0===s.length)return;const l=[];for(const t of s)Pr(t.blankTrg)&&l.push(e.concat([t]));const c=Gr(await Kr(l,t,n,r,i+1),r,n.blankNodeStatementLimit);for(const e of s){const t=c.get(e.blankTrg.value);void 0!==t&&(e.blankTrg=r.namedNode(t)),e.label=Ur(e,r);let n=o.get(e.inst.value);n||(n=[],o.set(e.inst.value,n)),n.push(e)}}))),o}function Xr(e,t){const n=e.map(((t,n)=>function(e,t,n){const r=0===t||"listHead"!==e.blankType.value,i=t>0?"?inst"+(t-1):Qr(e.blankSrc,`?blankAnySrc${t}`),o=r?t>0?"?blankTrgProp"+(t-1):Qr(e.blankSrcProp,`?blankAnySrcProp${t}`):`?anyType${t}`,a=t===n?"":t.toString(),s=r?Qr(e.blankTrgProp,`?blankAnyTrgProp${t}`):`?anyType0${t}`;return`\n # ======================\n ${i} ${o} ?blankSrc${t}.\n ${0===t&&"listHead"===e.blankType.value?`?blankSrc${t} rdf:rest*/rdf:first ?inst${a}.`:`?blankSrc${t} ${s} ?inst${a}.`}\n BIND (${Qr(e.blankTrgProp,`?blankAnyBind${t}`)} as ?blankSrcProp${t}).\n FILTER (ISBLANK(?inst${a})).\n {\n ?inst${a} ?blankTrgProp${a} ?blankTrg${a}.\n BIND("blankNode" as ?blankType${a}).\n FILTER NOT EXISTS { ?inst${a} rdf:first _:smth1${t} }.\n } UNION {\n ?inst${a} rdf:rest*/rdf:first ?blankTrg${a}.\n ?blankSrc${t} ?blankSrcProp${t} ?inst${a}.\n _:smth2${t} rdf:first ?blankTrg${a}.\n BIND(?blankSrcProp${t} as ?blankTrgProp${a})\n BIND("listHead" as ?blankType${a})\n FILTER NOT EXISTS { _:smth3${t} rdf:rest ?inst${a} }.\n }\n OPTIONAL {\n ?inst${a} rdf:type ?class${a}.\n }\n `}(t,n,e.length-1))).join("\n");return`${t.defaultPrefix}\n SELECT ?inst ?class ?label ?blankTrgProp ?blankTrg ?blankType\n WHERE {\n ${n}\n }\n `}function Qr(e,t){return Ir(e)?`<${e.value}>`:t}function Yr(e,t){const n=new Set(e),r=[];for(const i of e){const e=Fr(i,t);if(e)for(const t of e){const{inst:e,blankSrc:i,blankSrcProp:o,blankTrg:a,blankTrgProp:s}=t;i&&o&&n.has(i.value)&&r.push({source:i,type:o,target:e}),!Vr(a)&&n.has(a.value)&&r.push({source:e,type:s,target:a})}}return r}function Jr(e,t,n,r,i){const o={link:n,direction:i.literal(r)},a=Ir(t)?Fr(t.value,i):void 0;if(a)for(const t of a)e.push({...t,...o});else e.push({inst:t,...o})}function*ei(e,t,n,r,i){const o=Math.ceil(r/2),a=new Set,s=[];let l=0,c=0;function d(){const e={sources:[...a],targets:[...s]};return s.length=0,c=0,e}for(let u=0;u<e.length;u++){const h=e[u];if(a.add(h),l+=n(h),l>=o||u===e.length-1){for(const e of t){if(i&&i.has(e))continue;const t=n(e);c>0&&l+c+t>r&&(yield d()),s.push(e),c+=t}c>0&&(yield d()),a.clear(),l=0}}}var ti="urn:reactodia:sparql:label",ni=new Map,ri=new Set;function ii(e,t){for(const n of e.results.bindings){const e=n.link.value,r=t.get(e);r?hi(r.label,n.label):t.set(e,vi(n))}}function oi(e,t,n,r){const i={};for(const o in e.properties){if(!Object.hasOwnProperty.call(e.properties,o))continue;const a=n.get(o);if(a&&a.length>0)for(const n of a)di(n,t)&&(i[n.id]=e.properties[o]);else r&&(i[o]=e.properties[o])}return i}function ai(e,t,n){if(!t)return!0;const r=si(e,t,n,!1);for(const e of r)return!0;return!1}function*si(e,t,n,r){for(const i of t){const t=n.get(i);if(t)for(const n of t)di(n,e)&&(yield n.id);else r&&(yield i)}}function li(e){return!/[?$][a-zA-Z]+\b/.test(e.path)}function ci(e){return!/[?$][a-zA-Z]+\b/.test(e.path)}function di(e,t){if(e.domain&&0!==e.domain.length){if(t){for(const n of e.domain)if(t.has(n))return!0;return!1}return!1}return!0}function ui(e,t,n){e&&(t.label&&fi(e.properties,n,t.label),Ir(t.class)&&e.types.indexOf(t.class.value)<0&&e.types.push(t.class.value),t.propType&&t.propValue&&t.propType.value!==ti&&fi(e.properties,t.propType.value,t.propValue))}function hi(e,t){if(t){for(const n of e)if(Ft(n,t))return;e.push(t)}}function fi(e,t,n){let r=Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;if(r){for(const e of r)if(Ft(e,n))return}else r=[],e[t]=r;r.push(n)}function pi(e){const t=+e.value;return Number.isFinite(t)?t:0}function gi(e){return{id:e,types:[],properties:{}}}function vi(e){return{id:e.link.value,label:e.label?[e.label]:[],count:e.instcount?pi(e.instcount):void 0}}var mi={linkConfigurations:[],openWorldLinks:!1,propertyConfigurations:[],openWorldProperties:!1,linksInfoQuery:"SELECT ?source ?type ?target\n WHERE {\n ${linkConfigurations}\n VALUES (?source) {${sourceIris}}\n VALUES (?target) {${targetIris}}\n }",defaultPrefix:"",schemaLabelProperty:"rdfs:label",dataLabelProperty:"rdfs:label",fullTextSearch:{prefix:"",queryPattern:""},classTreeQuery:"",classInfoQuery:'SELECT ?class ?label ?instcount WHERE {\n VALUES(?class) {${ids}}\n OPTIONAL {\n ?class ${schemaLabelProperty} ?label\n ${labelLanguageFilter}\n }\n BIND("" as ?instcount)\n}',linkTypesQuery:"SELECT DISTINCT ?link ?instcount ?label WHERE {\n ${linkTypesPattern}\n OPTIONAL {\n ?link ${schemaLabelProperty} ?label\n ${labelLanguageFilter}\n }\n}",linkTypesPattern:"",linkTypesInfoQuery:"SELECT ?link ?label WHERE {\n VALUES(?link) {${ids}}\n OPTIONAL {\n ?link ${schemaLabelProperty} ?label\n ${labelLanguageFilter}\n }\n}",propertyInfoQuery:"SELECT ?property ?label WHERE {\n VALUES(?property) {${ids}}\n OPTIONAL {\n ?property ${schemaLabelProperty} ?label\n ${labelLanguageFilter}\n }\n}",elementInfoQuery:"",imageQueryPattern:"",linkTypesOfQuery:"",linkTypesStatisticsQuery:"",lookupQuery:"SELECT ${outerProjection} WHERE {\n ${filterInnerPrelude}\n {\n SELECT DISTINCT ${innerProjection} WHERE {\n ${filterByType}\n ${filterByRefElementLink}\n ${filterByText}\n ${filterAdditionalRestriction}\n } ${orderBy} ${limit}\n }\n ${queryTypes}\n ${queryElementInfo}\n} ${orderBy}",filterRefElementLinkPattern:"",filterTypePattern:"",filterAdditionalRestriction:"",filterElementInfoPattern:"",defaultPrefix:"PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n PREFIX owl: <http://www.w3.org/2002/07/owl#>\n",schemaLabelProperty:"rdfs:label",dataLabelProperty:"rdfs:label",fullTextSearch:{prefix:"",queryPattern:'?inst ${dataLabelProperty} ?search1\n FILTER regex(COALESCE(str(?search1)), "${text}", "i")\n BIND(0 as ?score)\n',extractLabel:!0},classTreeQuery:"\n SELECT ?class ?label ?parent\n WHERE {\n {\n ?class a rdfs:Class\n } UNION {\n ?class a owl:Class\n }\n FILTER ISIRI(?class)\n OPTIONAL {\n ?class rdfs:label ?label\n ${labelLanguageFilter}\n }\n OPTIONAL {?class rdfs:subClassOf ?parent. FILTER ISIRI(?parent)}\n }\n ",linkTypesPattern:"\n { ?link a rdf:Property }\n UNION\n { ?link a owl:ObjectProperty }\n BIND('' as ?instcount)\n ",elementInfoQuery:"\n CONSTRUCT {\n ?inst <urn:reactodia:sparql:type> ?class .\n ?inst <urn:reactodia:sparql:label> ?label .\n ?inst ?propType ?propValue.\n } WHERE {\n VALUES (?inst) {${ids}}\n OPTIONAL { ?inst a ?class }\n OPTIONAL {\n ?inst ${dataLabelProperty} ?label\n ${labelLanguageFilter}\n }\n OPTIONAL {\n ${propertyConfigurations}\n FILTER (isLiteral(?propValue))\n ${valueLanguageFilter}\n }\n }\n ",imageQueryPattern:"{ ?inst ?linkType ?image } UNION { [] ?linkType ?inst. BIND(?inst as ?image) }",linkTypesOfQuery:"\n SELECT DISTINCT ?link ?direction\n WHERE {\n ${linkConfigurations}\n }\n ",linkTypesStatisticsQuery:"\n SELECT ?link ?outCount ?inCount\n WHERE {\n {\n SELECT (${linkId} as ?link) (count(?outObject) as ?outCount) WHERE {\n ${linkConfigurationOut}\n ${navigateElementFilterOut}\n } LIMIT 101\n } {\n SELECT (${linkId} as ?link) (count(?inObject) as ?inCount) WHERE {\n ${linkConfigurationIn}\n ${navigateElementFilterIn}\n } LIMIT 101\n }\n }\n ",filterRefElementLinkPattern:"",filterTypePattern:"?inst a ?instType. ?instType rdfs:subClassOf* ?class",filterElementInfoPattern:"\n OPTIONAL {?inst rdf:type ?foundClass}\n BIND (coalesce(?foundClass, owl:Thing) as ?class)\n OPTIONAL {\n ?inst ${dataLabelProperty} ?label\n ${labelLanguageFilter}\n }\n ",filterAdditionalRestriction:"",classTreeQuery:"\n SELECT ?class ?instcount ?label ?parent\n WHERE {\n {SELECT ?class (count(?inst) as ?instcount)\n WHERE {\n ?inst rdf:type ?class.\n FILTER ISIRI(?class)\n } GROUP BY ?class } UNION\n {\n ?class rdf:type rdfs:Class\n } UNION {\n ?class rdf:type owl:Class\n }\n OPTIONAL {\n ?class rdfs:label ?label\n ${labelLanguageFilter}\n }\n OPTIONAL {?class rdfs:subClassOf ?parent. FILTER ISIRI(?parent)}\n }\n "},bi=class{factory;options;settings;queryFunction;acceptBlankNodes;chunkMeasure;linkByPredicate=new Map;linkById=new Map;openWorldLinks;propertyByPredicate=new Map;openWorldProperties;labelPredicate;imagePredicate;constructor(e,t=mi){const{factory:n=Bt,queryFunction:r=Si}=e;this.factory=n,this.options=e,this.settings=t,this.queryFunction=r,this.acceptBlankNodes=Boolean(t.acceptBlankNodes);const{chunk:i,queryMethod:o="GET",prepareLabelPredicate:a,prepareImagePredicate:s}=this.options;if(i&&!Number.isSafeInteger(i.maxSize))throw new Error("SparqlDataProviderOptions.chunk.maxSize should be a non-negative number");this.chunkMeasure=i?{maxSize:i.maxSize,measure:wi(i.unit)}:void 0===i&&"GET"===o?{maxSize:2500,measure:wi("totalLength")}:{maxSize:1/0,measure:wi("itemCount")};for(const e of t.linkConfigurations){this.linkById.set(e.id,e);const t=li(e)?e.path:e.id;kt(this.linkByPredicate,t,e)}this.openWorldLinks=0===t.linkConfigurations.length||Boolean(t.openWorldLinks);for(const e of t.propertyConfigurations){const t=ci(e)?e.path:e.id;kt(this.propertyByPredicate,t,e)}this.openWorldProperties=0===t.propertyConfigurations.length||Boolean(t.openWorldProperties),this.labelPredicate=a??Xt.label,this.imagePredicate=s??Qt.thumbnailUrl}async queryChunked(e,t){const{maxSize:n,measure:r}=this.chunkMeasure,i=[];for(const o of function*(e,t,n){if(!Number.isFinite(n))return void(yield e);const r=[];let i=0;for(const o of e){const e=t(o);i>0&&i+e>n&&(yield[...r],r.length=0,i=0),r.push(o),i+=e}i>0&&(yield r)}(e,r,n))i.push(t(o));await Promise.all(i)}async knownElementTypes(e){const{signal:t}=e,{defaultPrefix:n,schemaLabelProperty:r,filterOnlyLanguages:i,classTreeQuery:o}=this.settings;if(!o)return{elementTypes:[],subtypeOf:[]};const a=n+ki(o,{schemaLabelProperty:r,labelLanguageFilter:Ci("?label",i)}),s=function(e){const t=new Map,n=new W(Wt,Gt);for(const i of e.results.bindings){if(!Ir(i.class))continue;const e=i.class.value;let o=t.get(e);o||(o=r(e),t.set(e,o)),hi(o.label,i.label),i.parent&&n.add([e,i.parent.value]),i.instcount&&(o.count=pi(i.instcount))}for(const n of e.results.bindings)if(n.parent){const e=n.parent.value;t.has(e)||t.set(e,r(e))}function r(e){return{id:e,label:[],count:void 0}}return{elementTypes:Array.from(t.values()),subtypeOf:Array.from(n.values())}}(await this.executeSparqlSelect(a,{signal:t}));return this.options.prepareLabels&&await yi(s.elementTypes,this.options.prepareLabels,t),s}async propertyTypes(e){const{propertyIds:t,signal:n}=e,{defaultPrefix:r,schemaLabelProperty:i,filterOnlyLanguages:o,propertyInfoQuery:a}=this.settings,s=new Map;if(a)await this.queryChunked(t,(async e=>{const t=r+ki(a,{ids:e.map(Mi).map((e=>` ( ${e} )`)).join(" "),schemaLabelProperty:i,labelLanguageFilter:Ci("?label",o)});!function(e,t){for(const n of e.results.bindings){const e=n.property.value,r=t.get(e);r?hi(r.label,n.label):t.set(e,{id:n.property.value,label:n.label?[n.label]:[]})}}(await this.executeSparqlSelect(t,{signal:n}),s)}));else for(const e of t)s.set(e,{id:e,label:[]});return this.options.prepareLabels&&await yi(Array.from(s.values()),this.options.prepareLabels,n),s}async elementTypes(e){const{classIds:t,signal:n}=e,{defaultPrefix:r,schemaLabelProperty:i,filterOnlyLanguages:o,classInfoQuery:a}=this.settings,s=new Map;if(a)await this.queryChunked(t,(async e=>{const t=r+ki(a,{ids:e.map(Mi).map((e=>` ( ${e} )`)).join(" "),schemaLabelProperty:i,labelLanguageFilter:Ci("?label",o)});!function(e,t){for(const n of e.results.bindings){if(!n.class)continue;const e=n.class.value,r=t.get(e);if(r){if(hi(r.label,n.label),n.instcount){const e=pi(n.instcount);void 0!==e&&(r.count=void 0===r.count?e:Math.max(r.count,e))}}else t.set(e,{id:e,label:n.label?[n.label]:[],count:n.instcount?pi(n.instcount):void 0})}}(await this.executeSparqlSelect(t,{signal:n}),s)}));else for(const e of t)s.set(e,{id:e,label:[]});return this.options.prepareLabels&&await yi(Array.from(s.values()),this.options.prepareLabels,n),s}async linkTypes(e){const{linkTypeIds:t,signal:n}=e,{defaultPrefix:r,schemaLabelProperty:i,filterOnlyLanguages:o,linkTypesInfoQuery:a}=this.settings,s=new Map;if(a)await this.queryChunked(t,(async e=>{const t=r+ki(a,{ids:e.map(Mi).map((e=>` ( ${e} )`)).join(" "),schemaLabelProperty:i,labelLanguageFilter:Ci("?label",o)});ii(await this.executeSparqlSelect(t,{signal:n}),s)}));else for(const e of t)s.set(e,{id:e,label:[]});return this.options.prepareLabels&&await yi(Array.from(s.values()),this.options.prepareLabels,n),s}async knownLinkTypes(e){const{signal:t}=e,{defaultPrefix:n,schemaLabelProperty:r,filterOnlyLanguages:i,linkTypesQuery:o,linkTypesPattern:a}=this.settings;if(!o)return[];const s=n+ki(o,{linkTypesPattern:a,schemaLabelProperty:r,labelLanguageFilter:Ci("?label",i)}),l=function(e){const t=new Map;return ii(e,t),t}(await this.executeSparqlSelect(s,{signal:t}));return this.options.prepareLabels&&await yi(Array.from(l.values()),this.options.prepareLabels,t),Array.from(l.values())}async elements(e){const{elementIds:t,signal:n}=e,r=this.acceptBlankNodes?t.filter((e=>!Or(e))):t,i=[];r.length>0&&await this.queryChunked(r,(async e=>{const t=e.map(Mi).map((e=>` (${e})`)).join(" "),{defaultPrefix:n,dataLabelProperty:r,filterOnlyLanguages:o,elementInfoQuery:a}=this.settings,s=n+ki(a,{ids:t,dataLabelProperty:r,labelLanguageFilter:Ci("?label",o),valueLanguageFilter:Ci("?propValue",o),propertyConfigurations:this.formatPropertyInfo()}),l=await this.executeSparqlConstruct(s);for(const e of l)i.push(e)}));const o=this.queryManyElementTypes(this.settings.propertyConfigurations.length>0?t:[],n),a=function(e){const t=new Map,n={head:{vars:["inst","class","label","blankType","propType","propValue"]},results:{bindings:[]}};for(const n of e){if(!Ir(n.subject))continue;const e=n.subject.value;t.has(e)||t.set(e,r(n)),n.predicate.value===ti&&Vr(n.object)?(t.get(e).label&&t.set(e,r(n)),t.get(e).label=n.object):"urn:reactodia:sparql:type"===n.predicate.value&&Ir(n.object)&&Ir(n.predicate)?(t.get(e).class&&t.set(e,r(n)),t.get(e).class=n.object):(Ir(n.object)||Vr(n.object))&&Ir(n.predicate)&&(t.get(e).propType&&t.set(e,r(n)),t.get(e).propType=n.predicate,t.get(e).propValue=n.object)}function r(e){const t={inst:e.subject};return n.results.bindings.push(t),t}return n}(i);this.acceptBlankNodes&&a.results.bindings.push(...function(e,t){const n=[];for(const r of e){const e=Fr(r,t);if(e)for(const t of e)Vr(t.blankTrg)?n.push({...t,propType:t.blankTrgProp,propValue:t.blankTrg}):n.push(t)}return n}(t,this.factory));const s=function(e,t=ni,n=ni,r,i){const o=new Map;for(const t of e.results.bindings){if(!Ir(t.inst))continue;const e=t.inst.value;let n=o.get(e);n||(n=gi(e),o.set(e,n)),ui(n,t,r)}if(!i||n.size>0)for(const e of o.values())e.properties=oi(e,t.get(e.id),n,i);for(const e of o.values())e.types.sort();return o}(a,await o,this.propertyByPredicate,this.labelPredicate,this.openWorldProperties);return this.options.prepareLabels&&await _i(Array.from(s.values()),this.options.prepareLabels,this.labelPredicate,this.acceptBlankNodes,n),this.options.prepareImages?await function(e,t,n,r,i,o){return t(i?Array.from(e.values()).filter((e=>!qt(e.id))):e.values(),o).then((t=>{for(const[i,o]of t){const t=e.get(i);t&&fi(t.properties,n,r.namedNode(o))}}))}(s,this.options.prepareImages,this.imagePredicate,this.factory,this.acceptBlankNodes,n):this.options.imagePropertyUris&&this.options.imagePropertyUris.length&&await this.attachImages(s,this.options.imagePropertyUris,n),s}async attachImages(e,t,n){const r=t.map(Mi).map((e=>` ( ${e} )`)).join(" "),i=Array.from(e.keys()).filter((e=>!(this.acceptBlankNodes&&Or(e))));await this.queryChunked(i,(async t=>{const i=t.map((e=>` ( ${Mi(e)} )`)).join(" "),o=this.settings.defaultPrefix+`\n SELECT ?inst ?linkType ?image\n WHERE {\n VALUES (?inst) {${i}}\n VALUES (?linkType) {${r}}\n ${this.settings.imageQueryPattern}\n }\n `;try{!function(e,t,n){for(const r of e.results.bindings){if(!Ir(r.inst))continue;const e=t.get(r.inst.value);e&&fi(e.properties,n,r.image)}}(await this.executeSparqlSelect(o,{signal:n}),e,this.imagePredicate)}catch(e){console.warn("Failed to load entity image URLs",e)}}))}async links(e){const{primary:t,secondary:n,linkTypeIds:r,signal:i}=e,{filterOnlyLanguages:o,linksInfoQuery:a}=this.settings,s=Ci("?propValue",o),l=this.formatLinkLinks(),c=this.acceptBlankNodes?t.filter((e=>!Or(e))):t,d=this.acceptBlankNodes?n.filter((e=>!Or(e))):n;let u,h;if(u=c.length>0&&d.length>0?a.includes("${ids}")?this.queryUndirectedLinks(c,d,{propLanguageFilter:s,linkConfigurations:l},i):this.queryDirectedLinks(c,d,{propLanguageFilter:s,linkConfigurations:l},i):Promise.resolve([]),this.linkByPredicate.size>0){h=new Set(t);for(const e of n)h.add(e)}const f=this.queryManyElementTypes(h?Array.from(h):[],i);let p=await u;if(this.acceptBlankNodes){const e=new Set(t);for(const t of n)e.add(t);p=[...p,...Yr(Array.from(e),this.factory)]}let g=function(e,t=ni,n=ni,r=!0){const i=new q(Kt,Zt);for(const o of e){const e={sourceId:o.source.value,linkTypeId:o.type.value,targetId:o.target.value,properties:{}},a=i.get(e);if(a)o.propType&&o.propValue&&fi(a.properties,o.propType.value,o.propValue);else{o.propType&&o.propValue&&fi(e.properties,o.propType.value,o.propValue);const a=n.get(e.linkTypeId);if(a&&a.length>0){for(const n of a)if(di(n,t.get(e.sourceId))){const t=li(n)?{...e,linkTypeId:n.id}:e;i.set(t,t)}}else r&&i.set(e,e)}}return Array.from(i.values())}(p,await f,this.linkByPredicate,this.openWorldLinks);if(r){const e=new Set(r);g=g.filter((t=>e.has(t.linkTypeId)))}return g}async queryUndirectedLinks(e,t,n,r){const{propLanguageFilter:i,linkConfigurations:o}=n,{defaultPrefix:a,linksInfoQuery:s}=this.settings,l=new Set(e);for(const e of t)l.add(e);const c=a+ki(s,{ids:Li(l),propLanguageFilter:i,linkConfigurations:o});return(await this.executeSparqlSelect(c,{signal:r})).results.bindings}async queryDirectedLinks(e,t,n,r){const{propLanguageFilter:i,linkConfigurations:o}=n,{defaultPrefix:a,linksInfoQuery:s}=this.settings,{maxSize:l,measure:c}=this.chunkMeasure,d=[],u=Array.from(function*(e,t,n,r){e.length<t.length&&([e,t]=[t,e]);const i=new Set(t),o=new Set;for(const t of e)i.has(t)&&o.add(t);yield*ei(e,t,n,r),yield*ei(t,e,n,r,i.size===o.size?o:void 0)}(e,t,c,l),(async e=>{const t=a+ki(s,{sourceIris:Li(e.sources),targetIris:Li(e.targets),propLanguageFilter:i,linkConfigurations:o}),n=await this.executeSparqlSelect(t,{signal:r});for(const e of n.results.bindings)d.push(e)}));return await Promise.all(u),d}async connectedLinkStats(e){const{elementId:t,inexactCount:n,signal:r}=e;if(this.acceptBlankNodes&&Or(t))return function(e,t){const n=Fr(e,t);if(!n)return[];const r=new Map;function i(e){let t=r.get(e);return t||(t={id:e,inCount:0,outCount:0},r.set(e,t)),t}for(const e of n){const{blankSrc:t,blankSrcProp:n,blankTrg:r,blankTrgProp:o}=e;Vr(r)||(t&&n&&(i(n.value).inCount+=1),i(o.value).outCount+=1)}return Array.from(r.values())}(t,this.factory);const{defaultPrefix:i,linkTypesOfQuery:o,linkTypesStatisticsQuery:a,filterTypePattern:s}=this.settings,l=/\?direction\b/.test(o),c=Mi(t),d=this.formatLinkUnion(t,void 0,void 0,"?outObject","?inObject",l);d.usePredicatePart&&(d.unionParts.push(`{ ${c} ?link ?outObject ${l?'BIND("out" AS ?direction)':""} }`),d.unionParts.push(`{ ?inObject ?link ${c} ${l?'BIND("in" AS ?direction)':""} }`));const u=i+ki(o,{elementIri:c,linkConfigurations:d.unionParts.join("\nUNION\n")}),h=await this.executeSparqlSelect(u,{signal:r}),f=h.head.vars.includes("direction"),p=function(e,t=ni,n=!0){const r=new Map,i=(e,t)=>{let n=r.get(e);n||(n={linkType:e},r.set(e,n)),Vr(t)&&("in"===t.value?n.hasInLink=!0:"out"===t.value&&(n.hasOutLink=!0))};for(const r of e.results.bindings){if(!Ir(r.link))continue;const e=t.get(r.link.value);if(e&&e.length>0)for(const t of e)i(li(t)?t.id:r.link.value,r.direction);else n&&i(r.link.value,r.direction)}return Array.from(r.values())}(h,this.linkByPredicate,this.openWorldLinks),g=this.acceptBlankNodes?"FILTER (IsIri(?outObject) || IsBlank(?outObject))":"FILTER IsIri(?outObject)",v=this.acceptBlankNodes?"FILTER (IsIri(?inObject) || IsBlank(?inObject))":"FILTER IsIri(?inObject)",m=[];return await Promise.all(p.map((async({linkType:e,hasInLink:t,hasOutLink:o})=>{const l=this.linkById.get(e);let d,u;if(!l||li(l)){const t=Mi(l&&li(l)?l.path:e);d=`${c} ${t} ?outObject`,u=`?inObject ${t} ${c}`}else d=this.formatLinkPath(l.path,c,"?outObject"),u=this.formatLinkPath(l.path,"?inObject",c);if(l&&l.domain&&l.domain.length>0){const e=l.domain.map(Mi).join(", ");d+=` { ${s.replace(/[?$]inst\b/g,c)} FILTER(?class IN (${e})) }`,u+=` { ${s.replace(/[?$]inst\b/g,"?inObject")} FILTER(?class IN (${e})) }`}if(!a||n&&f)m.push({id:e,inCount:t?1:0,outCount:o?1:0,inexact:!0});else{const t=i+ki(a,{linkId:Mi(e),elementIri:c,linkConfigurationOut:d,linkConfigurationIn:u,navigateElementFilterOut:g,navigateElementFilterIn:v}),n=function(e){for(const n of e.results.bindings)if(Ir(n.link))return{id:(t=n).link.value,inCount:pi(t.inCount),outCount:pi(t.outCount)};var t}(await this.executeSparqlSelect(t,{signal:r}));n&&m.push(n)}}))),m}async lookup(e){const{signal:t}=e,n={...e,limit:void 0===e.limit?100:e.limit},r=this.querySingleElementTypes(n.refElementId&&this.settings.linkConfigurations.length>0?n.refElementId:void 0,t);let i,o=!1;if(this.acceptBlankNodes){const e=function(e,t){let n;if(!e.elementTypeId){if(e.refElementId&&e.refElementLinkId)n=function(e,t,n,r){const i=Fr(e,r);if(!i)return[];const o=r.namedNode(t),a=[];for(const e of i){const{blankSrc:i,blankSrcProp:s,blankTrg:l,blankTrgProp:c}=e;"out"!==n&&i&&s&&s.value===t&&Jr(a,i,o,"in",r),"in"===n||c.value!==t||Vr(l)||Jr(a,l,o,"out",r)}return a}(e.refElementId,e.refElementLinkId,e.linkDirection,t);else{if(!e.refElementId)return;n=function(e,t){const n=Fr(e,t);if(!n)return[];const r=[];for(const e of n){const{blankSrc:n,blankSrcProp:i,blankTrg:o,blankTrgProp:a}=e;n&&i&&Jr(r,n,i,"in",t),Vr(o)||Jr(r,o,a,"out",t)}return r}(e.refElementId,t)}if(0!==n.length){if(e.text){const t=e.text.toLowerCase();n=n.filter((e=>e.inst.value.toLowerCase().includes(t)))}return{head:{vars:[]},results:{bindings:n}}}}}(n,this.factory);e?(i=e,o=!0):i=await Wr(await this.executeSparqlSelect(this.createFilterQuery(n),{signal:t}),(e=>this.executeSparqlSelect(e,{signal:t})),this.settings,this.factory)}else{const e=this.createFilterQuery(n);i=await this.executeSparqlSelect(e,{signal:t})}const a=function(e,t,n,r,i){const o=n??ni,a=new Map,s=new Map,l=new Map,c=new Map;for(const t of e.results.bindings){if(!Ir(t.inst)&&!Pr(t.inst))continue;const e=t.inst.value;let n=a.get(e);if(n||(n=gi(e),a.set(e,n)),ui(n,t,r),Ir(t.classAll)&&xt(s,e,t.classAll.value),!i&&t.link&&t.direction){const e="in"===t.direction.value?c:"out"===t.direction.value?l:void 0;e&&xt(e,n.id,t.link.value)}}const d=[];for(const e of a.values()){const n=s.get(e.id);if(i||ai(t,l.get(e.id),o)&&ai(n,c.get(e.id),o)){e.types.sort();const r=new Set(si(t,l.get(e.id)??ri,o,i)),a=new Set(si(n,c.get(e.id)??ri,o,i));d.push({element:e,outLinks:r,inLinks:a})}}return d}(i,await r,this.linkByPredicate,this.labelPredicate,this.openWorldLinks);return o?this.attachNeighborInfo(a,t):(this.options.prepareLabels&&await _i(a.map((e=>e.element)),this.options.prepareLabels,this.labelPredicate,this.acceptBlankNodes,t),a)}async attachNeighborInfo(e,t){if(0===e.length)return[];const n=await this.elements({elementIds:e.map((e=>e.element.id)),signal:t});return e.map((e=>{const t=n.get(e.element.id);return t?{...e,element:t}:e}))}createFilterQuery(e){if(!e.refElementId&&e.refElementLinkId)throw new Error("Cannot execute refElementLink filter without refElement");let t="?inst ?class ?label",n="?inst",r="",i="";e.refElementId&&(t+=" ?link ?direction",n+=" ?link ?direction",r=this.createRefQueryPart({elementId:e.refElementId,linkId:e.refElementLinkId,direction:e.linkDirection}),this.settings.linkConfigurations.length>0&&(t+=" ?classAll",i=this.settings.filterTypePattern.replace(/[?$]class\b/g,"?classAll")));let o="";if(e.elementTypeId){const t=Mi(e.elementTypeId);o=this.settings.filterTypePattern.replace(/[?$]class\b/g,t)}const{defaultPrefix:a,dataLabelProperty:s,lookupQuery:l,filterOnlyLanguages:c,filterElementInfoPattern:d,fullTextSearch:u}=this.settings;let h=ki(d,{dataLabelProperty:s,labelLanguageFilter:Ci("?label",c)});this.acceptBlankNodes&&(t+=" ?blankType ?blankTrgProp ?blankTrg ?blankSrc ?blankSrcProp",h+='\n OPTIONAL {\n FILTER (ISBLANK(?inst)).\n {\n ?inst ?blankTrgProp ?blankTrg.\n ?blankSrc ?blankSrcProp ?inst.\n FILTER NOT EXISTS { ?inst rdf:first _:smth1 }.\n BIND("blankNode" as ?blankType)\n } UNION {\n ?inst rdf:rest*/rdf:first ?blankTrg.\n ?blankSrc ?blankSrcProp ?inst.\n _:smth2 rdf:first ?blankTrg.\n BIND(?blankSrcProp as ?blankTrgProp)\n BIND("listHead" as ?blankType)\n FILTER NOT EXISTS { _:smth3 rdf:rest ?inst }.\n } UNION {\n ?listHead rdf:rest* ?inst.\n FILTER NOT EXISTS { _:smth4 rdf:rest ?listHead }.\n\n ?listHead rdf:rest*/rdf:first ?blankTrg.\n ?blankSrc ?blankSrcProp ?listHead.\n _:smth5 rdf:first ?blankTrg.\n BIND(?blankSrcProp as ?blankTrgProp)\n BIND("listHead" as ?blankType)\n }\n }\n');let f="",p="";e.text&&(n+=" ?score",this.settings.fullTextSearch.extractLabel&&(f+='\n BIND ( str( ?inst ) as ?uriStr)\n BIND ( strafter(?uriStr, "#") as ?label3)\n BIND ( strafter(strafter(?uriStr, "//"), "/") as ?label6)\n BIND ( strafter(?label6, "/") as ?label5)\n BIND ( strafter(?label5, "/") as ?label4)\n BIND (if (?label3 != "", ?label3,\n if (?label4 != "", ?label4,\n if (?label5 != "", ?label5, ?label6))) as ?extractedLabel)\n '),f=ki(u.queryPattern,{text:e.text,dataLabelProperty:s}),f&&(p="ORDER BY DESC(?score)"));let g="";return"number"==typeof e.limit&&(g=`LIMIT ${e.limit}`),a+"\n"+u.prefix+"\n"+ki(l,{innerProjection:n,outerProjection:t,filterInnerPrelude:this.settings.filterInnerPrelude,filterByType:o,filterByRefElementLink:r,filterByText:f,filterAdditionalRestriction:this.settings.filterAdditionalRestriction,orderBy:p,limit:g,queryTypes:i,queryElementInfo:h})}executeSparqlSelect(e,t){const n=this.options.queryMethod??"GET",{signal:r}=t??{};return async function(e,t,n,r,i,o){let a;a=r("GET"===n?{url:xi(e,{query:t}),headers:{Accept:"application/sparql-results+json"},method:"GET",signal:o}:{url:e,body:t,headers:{Accept:"application/sparql-results+json","Content-Type":"application/sparql-query; charset=UTF-8"},method:"POST",signal:o});const s=await a;if(s.ok)return function(e,t){return{...e,results:{...e.results,bindings:e.results.bindings.map((function(e){const n={};for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)){const i=e[r];switch(i.type){case"uri":n[r]=t.namedNode(i.value);break;case"bnode":n[r]=t.blankNode(i.value);break;case"literal":case"typed-literal":n[r]=t.literal(i.value,i["xml:lang"]?i["xml:lang"]:i.datatype?t.namedNode(i.datatype):void 0);break;default:throw new Error(`Unexpected SPARQL term type: "${i.type}"`)}}return n}))}}}(await s.json(),i);{const e=new Error(s.statusText);throw e.response=s,e}}(this.options.endpointUrl,e,n,this.queryFunction,this.factory,r)}executeSparqlConstruct(e,t){const n=this.options.queryMethod??"GET",{signal:r}=t??{};return async function(e,t,n,r,i){let o;o=r("GET"===n?{url:xi(e,{query:t}),headers:{Accept:"text/turtle"},method:"GET",signal:i}:{url:e,body:t,headers:{Accept:"text/turtle","Content-Type":"application/sparql-query; charset=UTF-8"},method:"POST",signal:i});const a=await o;if(a.ok){const e=await a.text();return(new wt).parse(e)}{const e=new Error(a.statusText);throw e.response=a,e}}(this.options.endpointUrl,e,n,this.queryFunction,r)}createRefQueryPart(e){const{elementId:t,linkId:n,direction:r}=e,{unionParts:i,usePredicatePart:o}=this.formatLinkUnion(t,n,r,"?inst","?inst",!0);if(o){const t=Mi(e.elementId);let o;if(n){const e=this.linkById.get(n);o=e&&li(e)?Mi(e.path):Mi(n)}const a=o||"?link",s=o?`BIND(${o} as ?link)`:"",l=this.acceptBlankNodes?"FILTER(isIri(?inst) || isBlank(?inst))":"FILTER(isIri(?inst))";r&&"out"!==r||i.push(`{ ${t} ${a} ?inst BIND("out" as ?direction) ${s} ${l} }`),r&&"in"!==r||i.push(`{ ?inst ${a} ${t} BIND("in" as ?direction) ${s} ${l} }`)}let a=0===i.length?"FILTER(false)":i.join("\nUNION\n");return!n&&this.settings.filterRefElementLinkPattern.length>0&&(a+=`\n${this.settings.filterRefElementLinkPattern}`),a}formatLinkUnion(e,t,n,r,i,o){const{linkConfigurations:a}=this.settings,s=Mi(e),l=[];let c=!1;for(const e of a)if(!t||e.id===t)if(li(e))c=!0;else{const t=Mi(e.id);if(!n||"out"===n){const n=this.formatLinkPath(e.path,s,r);l.push(`{ ${n} BIND(${t} as ?link) ${o?'BIND("out" as ?direction) ':""}}`)}if(!n||"in"===n){const n=this.formatLinkPath(e.path,i,s);l.push(`{ ${n} BIND(${t} as ?link) ${o?'BIND("in" as ?direction) ':""}}`)}}return{unionParts:l,usePredicatePart:this.openWorldLinks||c}}formatLinkLinks(){const e=[];let t=!1;for(const n of this.settings.linkConfigurations)if(li(n))t=!0;else{const t=Mi(n.id);e.push(`${this.formatLinkPath(n.path,"?source","?target")} BIND(${t} as ?type)`)}return(this.openWorldLinks||t)&&e.push("?source ?type ?target"),0===e.length?"":1===e.length?e[0]:"{ "+e.join(" }\nUNION\n{ ")+" }"}formatLinkPath(e,t,n){return e.replace(/[?$]source\b/g,t).replace(/[?$]target\b/g,n)}formatPropertyInfo(){const e=[];let t=!1;for(const n of this.settings.propertyConfigurations)if(ci(n))t=!0;else{const t=Mi(n.id),r=this.formatPropertyPath(n.path,"?inst","?propValue");e.push(`{ ${r} BIND(${t} as ?propType) }`)}return(this.openWorldProperties||t)&&e.push("{ ?inst ?propType ?propValue }"),e.join("\nUNION\n")}formatPropertyPath(e,t,n){return e.replace(/[?$]inst\b/g,t).replace(/[?$]value\b/g,n)}async querySingleElementTypes(e,t){if(e)return(await this.queryManyElementTypes([e],t)).get(e)}async queryManyElementTypes(e,t){if(0===e.length)return new Map;const{filterTypePattern:n}=this.settings,r=new Map;let i=e;return this.acceptBlankNodes&&(i=e.filter((e=>!Or(e))),function(e,t,n){for(const r of e){const e=Fr(r,t);if(e)for(const t of e)if(t.class){let e=n.get(r);e||(e=new Set,n.set(r,e)),e.add(t.class.value)}}}(e,this.factory,r)),await this.queryChunked(i,(async e=>{const i=ki("SELECT ?inst ?class { VALUES(?inst) { ${ids} } ${filterTypePattern} }",{ids:e.map((e=>`(${Mi(e)})`)).join(" "),filterTypePattern:n});!function(e,t){for(const n of e.results.bindings)Ir(n.inst)&&Ir(n.class)&&xt(t,n.inst.value,n.class.value)}(await this.executeSparqlSelect(i,{signal:t}),r)})),r}};function wi(e){return"totalLength"===e?e=>Mi(e).length+3:()=>1}async function yi(e,t,n){const r=await t(new Set(e.map((e=>e.id))),n);for(const t of e){const e=r.get(t.id);e&&(t.label=e)}}async function _i(e,t,n,r,i){const o=r?e.filter((e=>!qt(e.id))):e,a=await t(new Set(o.map((e=>e.id))),i);for(const e of o){const t=a.get(e.id);t&&(e.properties[n]=t)}}function ki(e,t){let n=e;for(const e in t){if(!Object.prototype.hasOwnProperty.call(t,e))continue;const r=t[e]||"";n=n.replace(new RegExp("\\${"+e+"}","g"),r)}return n}function xi(e,t={}){return e+(e.indexOf("?")<0?"?":"&")+Object.keys(t).map((e=>`${e}=${encodeURIComponent(t[e])}`)).join("&")}function Si(e){return fetch(e.url,{method:e.method,body:e.body,credentials:"same-origin",mode:"cors",cache:"default",headers:e.headers,signal:e.signal})}function Ci(e,t){if(!t)return"";const n=[`FILTER(!isLiteral(${e}) || lang(${e}) = ""`];for(const r of t)n.push(` || lang(${e}) = "${r}"`);return n.push(")"),n.join("")}function Li(e){return Array.from(e,(e=>`(${Mi(e)})`)).join(" ")}function Mi(e){if("string"!=typeof e)throw new Error(`Cannot escape IRI of type "${typeof e}"`);return`<${e}>`}var Ei=m.createContext(null);function zi(){const e=m.useContext(Ei);if(!e)throw new Error("Reactodia: missing canvas context");return e}var $i,Ti,Ni,Ai,Ii=/Mac|iPhone|iPad/.test(window?.navigator?.platform||"");function Pi(e){const{modifiers:t,key:n}=e;let r="";return 1&t&&(r+="Ctrl+"),2&t&&(r+=Ii?"⌘+":"Meta+"),4&t&&(r+="Alt+"),8&t&&(r+="Shift+"),r+=1===n.length?n.toUpperCase():n,r}function Vi(e,t){return e.modifiers===t.modifiers&&e.key===t.key}function Hi(e){return D(O(function(e){if((0|e)===e)return e;{U[0]=e;const t=O(F[0],F[1]);return U[0]=0,t}}(e.modifiers),B(e.key)))}function Ri(e,t){const{canvas:n}=zi(),r=m.useMemo((()=>{if(e){const t=function(e){const t=e.split("+");let n=0;for(let e=0;e<t.length-1;e++){const r=t[e];switch(r){case"Ctrl":n|=1;break;case"Meta":n|=2;break;case"Alt":n|=4;break;case"Shift":n|=8;break;case"Mod":n|=Ii?2:1;break;case"None":break;default:throw new Error(`Unknown hotkey modifier "${r}"`)}}const r=t[t.length-1];if(!r)throw new Error("Missing main key for a hotkey");return{modifiers:n,key:1===r.length?r.toLowerCase():r}}(e);return{_ast:t,text:Pi(t)}}}),[e]),i=m.useRef();return i.current=t,m.useEffect((()=>{if(r)return n.renderingState.listenHotkey(r._ast,(()=>{i.current?.()}))}),[r]),r}function Oi(e,t,n){if("number"!=typeof t&&"number"!=typeof n)return{width:e.width,height:e.height};const r=e.width/e.height;return t="number"==typeof t?t:n*r,(n="number"==typeof n?n:t/r)*r<=t?{width:n*r,height:n}:{width:t,height:t/r}}function Di(e,t){const{x:n,y:r}=e.position,i=t.getElementSize(e);return{x:n,y:r,width:i?i.width:0,height:i?i.height:0}}function Bi(e,t){return"ellipse"===e.type?function(e,t){const n=Ni.center(e),r=$i.subtract(t,n),i=$i.normalize(r),o={x:i.x*e.width*.5,y:i.y*e.height*.5};return $i.length(r)>=$i.length(o)?$i.add(n,o):void 0}(e.bounds,t):function(e,t){if(0===e.width||0===e.height||t.x>e.x&&t.x<e.x+e.width&&t.y>e.y&&t.y<e.y+e.height)return;const n=e.width/2,r=e.height/2,i=e.x+n,o=e.y+r,a=$i.normalize({x:t.x-i,y:t.y-o}),s={x:Math.abs(a.x),y:a.y};return $i.cross2D({x:n,y:-r},s)>0&&$i.cross2D({x:n,y:r},s)<0?{x:i+n*Math.sign(a.x),y:o+n*a.y/Math.abs(a.x)}:{x:i+r*a.x/Math.abs(a.y),y:o+r*Math.sign(a.y)}}(e.bounds,t)}function ji(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){const r=e[n],i=t[n];if(r.x!==i.x||r.y!==i.y)return!1}return!0}function Fi(e,t,n){const r="type"in e?e:{type:"rect",bounds:e},i="type"in t?t:{type:"rect",bounds:t};let o,a;for(let e=0;e<n.length&&(o=Bi(r,n[e]),!o);e++);o||(o=Bi(r,Ni.center(i.bounds))??Ni.center(r.bounds));for(let e=n.length-1;e>=0&&(a=Bi(i,n[e]),!a);e--);return a||(a=Bi(i,Ni.center(r.bounds))??Ni.center(i.bounds)),[o,...n,a]}function Ui(e){let t;return e.reduce(((e,n)=>{const r=t?$i.length({x:n.x-t.x,y:n.y-t.y}):0;return t=n,e+r}),0)}function qi(e,t){if(0===e.length)throw new Error("Cannot compute a point for an empty polyline");if(t<0)return e[0];let n=0;for(let r=1;r<e.length;r++){const i=e[r-1],o=e[r],a={x:o.x-i.x,y:o.y-i.y},s=$i.length(a),l=n+s;if(t<l){const e=(t-n)/s;return{x:i.x+e*a.x,y:i.y+e*a.y}}n=l}return e[e.length-1]}(Ti=$i||($i={})).add=function(e,t){return{x:e.x+t.x,y:e.y+t.y}},Ti.subtract=function(e,t){return{x:e.x-t.x,y:e.y-t.y}},Ti.scale=function(e,t){return{x:e.x*t,y:e.y*t}},Ti.equals=function(e,t){return e.x===t.x&&e.y===t.y},Ti.length=function({x:e,y:t}){return Math.sqrt(e*e+t*t)},Ti.normalize=function({x:e,y:t}){if(0===e&&0===t)return{x:e,y:t};const n=1/Math.sqrt(e*e+t*t);return{x:e*n,y:t*n}},Ti.dot=function({x:e,y:t},{x:n,y:r}){return e*n+t*r},Ti.cross2D=function({x:e,y:t},{x:n,y:r}){return e*r-t*n},(Ai=Ni||(Ni={})).equals=function(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height},Ai.center=function({x:e,y:t,width:n,height:r}){return{x:e+n/2,y:t+r/2}},Ai.intersects=function(e,t){return e.x<=t.x+t.width&&e.y<=t.y+t.height&&t.x<=e.x+e.width&&t.y<=e.y+e.height};var Wi,Gi,Zi=class e{geometry;constructor(e){if(this.geometry=e,e.points.length<2)throw new Error("Spline must consists of at least two points")}static defaultType="smooth";static create(t){return new e(t)}toPath(){const{type:e,points:t,source:n,target:r}=this.geometry;if("smooth"===e&&t.length>=3){const e=.25,i=[`M${t[0].x} ${t[0].y}`];let o=$i.normalize($i.subtract(n,t[0]));for(let n=1;n<t.length;n++){const a=t[n-1],s=t[n],l=t[n+1],c=$i.normalize(l?$i.subtract(a,l):$i.subtract(s,r)),d=$i.length($i.subtract(a,s)),u=$i.subtract(a,$i.scale(o,d*e)),h=$i.add(s,$i.scale(c,d*e));o=c,i.push(` C${u.x} ${u.y} ${h.x} ${h.y} ${s.x} ${s.y}`)}return i.join("")}return"M"+t.map((({x:e,y:t})=>`${e} ${t}`)).join(" L")}};function Ki(e,t,n){for(let r=e.length-1;r>=0;r--){const i=e[r],{x:o,y:a,width:s,height:l}=Di(i,n);if((0!==s||0!==l)&&t.x>=o&&t.x<=o+s&&t.y>=a&&t.y<=a+l)return i}}function Xi(e,t,n){let r=1/0,i=1/0,o=-1/0,a=-1/0;for(const t of e){const{x:e,y:s}=t.position,l=n.getElementSize(t);r=Math.min(r,e),i=Math.min(i,s),o=Math.max(o,e+(l?l.width:0)),a=Math.max(a,s+(l?l.height:0))}for(const e of t){const t=e.vertices||[];for(const{x:e,y:n}of t)r=Math.min(r,e),i=Math.min(i,n),o=Math.max(o,e),a=Math.max(a,n)}return{x:Number.isFinite(r)?r:0,y:Number.isFinite(i)?i:0,width:Number.isFinite(r)&&Number.isFinite(o)?o-r:0,height:Number.isFinite(i)&&Number.isFinite(a)?a-i:0}}function Qi(e,t){if(0===e.length)return{x:0,y:0};let n=0,r=0;for(const i of e){const{x:e,y:o,width:a,height:s}=Di(i,t);n+=e+a/2,r+=o+s/2}return{x:n/e.length,y:r/e.length}}(Gi=Wi||(Wi={})).create=function(e,t){return new Yi(e,t)},Gi.effect=function(e,t){return new Ji(e,t)},Gi.compound=function(e,t){return new to(e,t)};var Yi=class{title;invoke;constructor(e,t){this.title=e,this.invoke=t}},Ji=class{title;body;skip;constructor(e,t){this.title=e,this.body=t,this.skip=new eo(e,this)}invoke(){const{body:e}=this;return e(),this.skip}},eo=class{title;effect;constructor(e,t){this.title=e,this.effect=t}invoke(){return this.effect}},to=class e{title;commands;constructor(e,t){this.title=e,this.commands=t}invoke(){const t=[];for(const e of this.commands)t.push(e.invoke());return t.reverse(),new e(this.title,t)}},no=class{source=new yr;events=this.source;_undoStack=[];_redoStack=[];batches=[];get undoStack(){return this._undoStack}get redoStack(){return this._redoStack}hasChanges(){return this._undoStack.length>0}reset(){this._undoStack.length=0,this._redoStack.length=0,this.source.trigger("historyChanged",{hasChanges:this.hasChanges()})}undo(){const e=this._undoStack.pop();if(e){const t=e.invoke();this._redoStack.push(t),this.source.trigger("historyChanged",{hasChanges:this.hasChanges()})}}redo(){const e=this._redoStack.pop();if(e){const t=e.invoke();this._undoStack.push(t),this.source.trigger("historyChanged",{hasChanges:this.hasChanges()})}}execute(e){const t=e.invoke();this.registerToUndo(t)}registerToUndo(e){const t=this.topBatch();t?t._inverses.push(e):(this._undoStack.push(e),this._redoStack.length=0,this.source.trigger("historyChanged",{hasChanges:this.hasChanges()}))}topBatch(){return 0===this.batches.length?void 0:this.batches[this.batches.length-1]}startBatch(e){const t={_title:e,_inverses:[],history:this,store:()=>{if(this.batches.includes(t))for(;this.batches.length>0;){const e=this.batches.pop();if(e!==t&&console.warn("Reactodia: storing other unclosed batch on top",e),e._inverses.length>0){const n=[...e._inverses].reverse();this.registerToUndo(Wi.compound(t._title,n))}if(e===t)break}else console.warn("Reactodia: failed to find batch to store (already stored or discarded?)",t)},discard:e=>{if(this.batches.includes(t))for(;this.batches.length>0;){const n=this.batches.pop();if(n!==t&&console.warn("Reactodia: discarding other unclosed batch on top",n),e?.revert&&n._inverses.length>0){const e=[...n._inverses].reverse();Wi.compound(t._title,e).invoke()}if(n===t)break}else console.warn("Reactodia: failed to find batch to discard (already stored or discarded?)",t)}};return this.batches.push(t),t}},ro=class e{elementState;linkState;static _title=Rt.text("commands.restore_geometry.title");constructor(e,t){this.elementState=e,this.linkState=t}static capture(t){return e.capturePartial(t.elements,t.links)}static capturePartial(t,n){return new e(t.map((e=>({element:e,position:e.position,size:io(e)}))),n.map((e=>({link:e,vertices:e.vertices}))))}get title(){return e._title}hasChanges(){return this.elementState.length>0||this.linkState.length>0}filterOutUnchanged(){return new e(this.elementState.filter((({element:e,position:t,size:n})=>!($i.equals(e.position,t)&&io(e)===n))),this.linkState.filter((({link:e,vertices:t})=>!ji(e.vertices,t))))}invoke(){const t=e.capturePartial(this.elementState.map((e=>e.element)),this.linkState.map((e=>e.link)));for(const{element:e,position:t,size:n}of[...this.elementState].reverse())e.setPosition(t),e.setElementState(e.elementState.set(vr.ElementSize,n));for(const{link:e,vertices:t}of this.linkState)e.setVertices(t);return t}};function io(e){return e.elementState.get(vr.ElementSize)}function oo(e){const t=e.vertices;return Wi.create(Rt.text("commands.restore_link_vertices.title"),(()=>{const n=oo(e);return e.setVertices(t),n}))}function ao(e,t){return Wi.create(Rt.text("commands.set_element_state.title"),(()=>{const n=e.elementState;return e.setElementState(t),ao(e,n)}))}function so(e,t){return Wi.create(Rt.text(t?"commands.expand_element.title":"commands.collapse_element.title"),(()=>(e.setExpanded(t),so(e,!t))))}function lo(e,t){return Wi.create(Rt.text("commands.set_link_state.title"),(()=>{const n=e.linkState;return e.setLinkState(t),lo(e,n)}))}function co(e,t,n){return Wi.create(Rt.text("commands.change_link_type_visibility.title"),(()=>{const r=e.getLinkVisibility(t);return e.setLinkVisibility(t,n),co(e,t,r)}))}function uo(e){const{elements:t,target:n,graph:r,sizeProvider:i,distance:o=300}=e;return Wi.create(Rt.text("commands.place_elements_around.title"),(()=>{const e=ro.capture(r),a=Di(n,i),s=a.x+a.width/2,l=a.y+a.height/2;let c=0;const d=r.getElementLinks(n);if(d.length>0){const e=Qi(d.map((e=>{const t=r.sourceOf(e);return t!==n?t:r.targetOf(e)})),i),t={x:s-e.x,y:l-e.y};0===t.x&&0===t.y||(c=Math.atan2(t.y,t.x))}const u=Math.min(Math.PI/t.length,Math.PI/6),h=[...t],f=(e,t)=>{if(t){const{width:n,height:r}=Di(t,i);t.setPosition({x:s+o*Math.cos(e)-n/2,y:l+o*Math.sin(e)-r/2})}};if(h.length%2==0)for(let e=u/2;h.length>0;e+=u)f(c-e,h.pop()),f(c+e,h.pop());else{f(c,h.pop());for(let e=u;h.length>0;e+=u)f(c-e,h.pop()),f(c+e,h.pop())}return e.filterOutUnchanged()}))}var ho=class e{source=new yr;events=this.source;id;_position;_elementState;constructor(t){const{id:n=e.generateId(),position:r={x:0,y:0},expanded:i=!1,elementState:o=Mr.empty}=t;this.id=n,this._position=r,this._elementState=i?o.set(vr.Expanded,i):o}static generateId(){return`urn:reactodia:e:${Nr()}`}get position(){return this._position}setPosition(e){const t=this._position;t.x===e.x&&t.y===e.y||(this._position=e,this.source.trigger("changePosition",{source:this,previous:t}))}get isExpanded(){return Boolean(this._elementState.get(vr.Expanded))}setExpanded(e){this.setElementState(this._elementState.set(vr.Expanded,!!e||void 0))}get elementState(){return this._elementState}setElementState(e){const t=this._elementState;t!==e&&(this._elementState=e,this.source.trigger("changeElementState",{source:this,previous:t}))}focus(){this.source.trigger("requestedFocus",{source:this})}redraw(e){this.source.trigger("requestedRedraw",{source:this,level:e})}},fo=class extends ho{constructor(e){super(e)}},po=class e{source=new yr;events=this.source;id;_sourceId;_targetId;_vertices;_linkState;constructor(t){const{id:n=e.generateId(),sourceId:r,targetId:i,vertices:o=[],linkState:a=Mr.empty}=t;this.id=n,this._sourceId=r,this._targetId=i,this._vertices=o,this._linkState=a}static generateId(){return`urn:reactodia:l:${Nr()}`}get sourceId(){return this._sourceId}get targetId(){return this._targetId}get typeId(){return this.getTypeId()}get vertices(){return this._vertices}setVertices(e){const t=this._vertices;ji(this._vertices,e)||(this._vertices=e,this.source.trigger("changeVertices",{source:this,previous:t}))}get linkState(){return this._linkState}setLinkState(e){const t=this._linkState;t!==e&&(this._linkState=e,this.source.trigger("changeLinkState",{source:this,previous:t}))}redraw(){this.source.trigger("requestedRedraw",{source:this})}},go=class{link;vertexIndex;constructor(e,t){this.link=e,this.vertexIndex=t}createAt(e){const t=[...this.link.vertices];t.splice(this.vertexIndex,0,e),this.link.setVertices(t)}moveTo(e){const t=[...this.link.vertices];t.splice(this.vertexIndex,1,e),this.link.setVertices(t)}remove(){const e=[...this.link.vertices];e.splice(this.vertexIndex,1),this.link.setVertices(e)}};function vo(e){const{paperTransform:t,layerRef:n,style:r,children:i,...o}=e,{originX:a,originY:s,scale:l}=t;let c={position:"absolute",left:0,top:0,transform:`scale(${l},${l})translate(${a}px,${s}px)`};return r&&(c={...c,...r}),R.jsx("div",{ref:n,style:c,...o,children:i})}function mo(e){const{layerRef:t,paperTransform:n,style:r,children:i,...o}=e,{width:a,height:s,originX:l,originY:c,scale:d}=n,u=a*d,h=s*d;let f={position:"absolute",top:0,left:0};return r&&(f={...f,...r}),R.jsx("svg",{ref:t,width:u,height:h,style:f,role:"none",...o,children:R.jsx("g",{transform:`scale(${d},${d})translate(${l},${c})`,children:i})})}function bo(e,t){return e.width===t.width&&e.height===t.height&&e.originX===t.originX&&e.originY===t.originY&&e.paddingX===t.paddingX&&e.paddingY===t.paddingY&&e.scale===t.scale}function wo(e,t){return{x:(e.x+t.originX)*t.scale,y:(e.y+t.originY)*t.scale}}function yo(e,t){return{x:e.x/t.scale-t.originX,y:e.y/t.scale-t.originY}}var _o=class{gap;constructor(e={}){const{gap:t=20}=e;this.gap=t}route(e,t){const n=new Map;for(const r of e.links){if(n.has(r.id))continue;const{sourceId:i,targetId:o}=r;i&&o&&(i===o?this.routeFeedbackSiblingLinks(i,e,t,n):this.routeNormalSiblingLinks(i,o,e,t,n))}return n}routeFeedbackSiblingLinks(e,t,n,r){const i=t.getElement(e),o=n.getElementShape(i),{x:a,y:s}=o.bounds,l=Ni.center(o.bounds);let c=0;for(const e of t.getElementLinks(i)){const{sourceId:n,targetId:i}=e;if(!r.has(e.id)&&"hidden"!==t.getLinkVisibility(e.typeId)&&n===i)if(0===e.vertices.length){const t=this.gap*(c+1);r.set(e.id,{linkId:e.id,vertices:[{x:a-t,y:s+t},{x:a-t,y:s-t},{x:a+t,y:s-t}]}),c++}else if(1===e.vertices.length){const[t]=e.vertices,[n]=Fi(o,{x:t.x,y:t.y,width:0,height:0},[]),i=Math.min(Math.max(this.gap,.75*$i.length($i.subtract(t,n))),o.bounds.width,o.bounds.height),a=$i.normalize($i.subtract(t,l)),s=$i.add(t,$i.scale(a,-i)),c={x:-a.y,y:a.x},d=[$i.add(s,$i.scale(c,i)),t,$i.add(s,$i.scale(c,-i))];r.set(e.id,{linkId:e.id,vertices:d})}}}routeNormalSiblingLinks(e,t,n,r,i){const o=n.getElement(e),a=n.getElement(t),s=Ni.center(Di(o,r)),l=Ni.center(Di(a,r)),c=(s.x+l.x)/2,d=(s.y+l.y)/2,u=$i.normalize({x:l.x-s.x,y:l.y-s.y}),h=n.getElementLinks(o).filter((e=>!(e.sourceId!==t&&e.targetId!==t||i.has(e.id)||function(e){return e.vertices.length>0}(e)||"hidden"===n.getLinkVisibility(e.typeId))));if(h.length<=1)return;const f=h.length%2?0:1;h.forEach(((e,t)=>{const n=t+f,r=this.gap*Math.ceil(n/2)-(f?this.gap/2:0),o=n%2?{x:-u.y,y:u.x}:{x:u.y,y:-u.x};i.set(e.id,{linkId:e.id,vertices:[{x:c+o.x*r,y:d+o.y*r}],labelTextAnchor:this.getLabelAlignment(u,t,h.length)})}))}getLabelAlignment(e,t,n){const r=Math.atan2(e.y,e.x),i=Math.abs(r),o=r<0,a=r>0,s=n-2,l=n-1;if(!(i<1*Math.PI/8||i>7*Math.PI/8)){if(o&&t===l||a&&t===s)return"end";if(o&&t===s||a&&t===l)return"start"}return"middle"}},ko=function(e){return e[e.Element=1]="Element",e[e.ElementSize=2]="ElementSize",e[e.LinkRoutes=3]="LinkRoutes",e[e.PaperArea=4]="PaperArea",e[e.Link=5]="Link",e[e.LinkLabel=6]="LinkLabel",e[e.Overlay=7]="Overlay",e}({}),xo=()=>{},So=()=>{},Co=class e{listener=new _r;source=new yr;events=this.source;scheduledByLayer=new Map;layerUpdater=new kr;model;resolveElementTemplate;resolveLinkTemplate;mappedTemplates=new WeakMap;linkRouter;decorationContainers=new WeakMap;elementSizes=new WeakMap;linkLabelContainer=document.createElement("div");linkLabelBounds=new WeakMap;cachedLinkTemplates=new WeakMap;linkMarkerIndex=new WeakMap;static nextLinkMarkerIndex=1;routings=new Map;hotkeyHandlers=new q(Hi,Vi);shared;constructor(e){this.model=e.model,this.shared=e.shared,this.resolveElementTemplate=e.elementTemplateResolver??xo,this.resolveLinkTemplate=e.linkTemplateResolver??So,this.linkRouter=e.linkRouter??new _o,this.listener.listen(this.model.events,"changeCells",(()=>this.scheduleUpdateRoutings())),this.listener.listen(this.model.events,"linkEvent",(({data:e})=>{e.changeVertices&&this.scheduleUpdateRoutings()})),this.listener.listen(this.model.events,"elementEvent",(({data:e})=>{e.changePosition&&this.scheduleUpdateRoutings()})),this.listener.listen(this.model.events,"changeLinkVisibility",(()=>{this.scheduleUpdateRoutings()})),this.listener.listen(this.model.events,"discardGraph",(()=>{this.cachedLinkTemplates=new WeakMap;const e=this.routings;this.routings=new Map,this.cancelOnLayerUpdate(3,this.updateRoutings),this.source.trigger("changeLinkTemplates",{source:this}),this.source.trigger("changeRoutings",{source:this,previous:e})})),this.listener.listen(this.events,"changeElementSize",(()=>{this.scheduleUpdateRoutings()})),this.updateRoutings()}dispose(){this.listener.stopListening(),this.layerUpdater.dispose(),this.cancelOnLayerUpdate(3,this.updateRoutings)}syncUpdate(){this.syncUpdateLayersUpTo(7)}scheduleOnLayerUpdate(e,t){xt(this.scheduledByLayer,e,t),this.layerUpdater.call(this.runLayerUpdate)}cancelOnLayerUpdate(e,t){const n=this.scheduledByLayer.get(e);n&&n.delete(t)}runLayerUpdate=()=>this.syncUpdateLayersUpTo(7);updateLayersUpTo(e){return Promise.resolve().then((()=>this.syncUpdateLayersUpTo(e)))}syncUpdateLayersUpTo(e){this.layerUpdater.dispose();let t=!1;for(let n=e+1;n<=7;n++){const e=this.scheduledByLayer.get(n);e&&e.size>0&&(t=!0)}const n=new Set;for(let t=1;t<=e;t++){const e=this.scheduledByLayer.get(t);if(e&&e.size>0){for(const t of e)n.add(t);e.clear();for(const e of n)e();n.clear()}this.source.trigger("syncUpdate",{layer:t})}t&&this.layerUpdater.call(this.runLayerUpdate)}ensureDecorationContainer(e){let t=this.decorationContainers.get(e);return t||(t=document.createElement("div"),this.decorationContainers.set(e,t)),t}getElementSize(e){return this.elementSizes.get(e)}setElementSize(e,t){const n=this.elementSizes.get(e);n&&n.width===t.width&&n.height===t.height||(this.ensureDecorationContainer(e).style=`width: ${t.width}px; height: ${t.height}px`,this.elementSizes.set(e,t),this.source.trigger("changeElementSize",{source:e,previous:n}))}attachLinkLabelContainer(e){if(e){if(this.linkLabelContainer.parentElement)throw new Error("Cannot attach link label container to multiple parents");e.appendChild(this.linkLabelContainer)}else this.linkLabelContainer.parentElement&&this.linkLabelContainer.parentElement.removeChild(this.linkLabelContainer)}getLinkLabelContainer(){return this.linkLabelContainer}getLinkLabelBounds(e){return this.linkLabelBounds.get(e)}setLinkLabelBounds(e,t){const n=this.linkLabelBounds.get(e);!n&&!t||n&&t&&Ni.equals(n,t)||(t?this.linkLabelBounds.set(e,t):this.linkLabelBounds.delete(e),this.source.trigger("changeLinkLabelBounds",{source:e,previous:n}))}getElementTemplate(e){let t=this.resolveElementTemplate(e);if("function"==typeof t){let e=this.mappedTemplates.get(t);if(!e){const n=t;e={renderElement:e=>m.createElement(n,e)},this.mappedTemplates.set(t,e)}t=e}return t??this.shared.defaultElementResolver(e)}getElementShape(e){const t=this.getElementTemplate(e),n=Di(e,this);return{type:t.shape??"rect",bounds:n}}ensureLinkMarkerIndex(t){let n=this.linkMarkerIndex.get(t);return void 0===n&&(n=e.nextLinkMarkerIndex++,e.nextLinkMarkerIndex>=Number.MAX_SAFE_INTEGER&&(e.nextLinkMarkerIndex=1),this.linkMarkerIndex.set(t,n)),n}getLinkTemplate(e){const t=this.cachedLinkTemplates.get(e);if(t)return t;const n=this.resolveLinkTemplate(e)??this.shared.defaultLinkResolver(e);return this.cachedLinkTemplates.set(e,n),this.source.trigger("changeLinkTemplates",{source:this}),n}getRoutings(){return this.routings}getRouting(e){return this.routings.get(e)}scheduleUpdateRoutings(){this.scheduleOnLayerUpdate(3,this.updateRoutings)}updateRoutings=()=>{const e=this.routings,t=this.linkRouter.route(this.model,this);e.forEach(((e,n)=>{const r=t.get(n);var i,o;r&&(i=e).linkId===(o=r).linkId&&i.labelTextAnchor===o.labelTextAnchor&&ji(i.vertices,o.vertices)&&t.set(n,e)})),this.routings=t,this.source.trigger("changeRoutings",{source:this,previous:e})};listenHotkey(e,t){return xt(this.hotkeyHandlers,e,t),2===this.hotkeyHandlers.get(e).size&&console.warn(`Reactodia: registered multiple handlers for the same hotkey "${Pi(e)}" but only the first one will run if triggered.`),()=>{!function(e,t,n){const r=e.get(t);r&&(r.delete(n),0===r.size&&e.delete(t))}(this.hotkeyHandlers,e,t)}}triggerHotkey(e){if(e.repeat)return;const t=function(e){const t=1===e.key.length?e.key.toLowerCase():e.key,n=/^[a-z]$/.test(t),r=/^Key([A-Z])$/.exec(e.code),i=r?r[1].toLowerCase():void 0;return{modifiers:(e.ctrlKey?1:0)|(e.metaKey?2:0)|(e.altKey?4:0)|(e.shiftKey?8:0),key:i&&!n?i:t}}(e),n=this.hotkeyHandlers.get(t);if(n)for(const t of n){e.preventDefault(),t();break}}};function Lo(e,t,n=7){return m.useCallback((r=>{const i=()=>r(),o=e((()=>{t.scheduleOnLayerUpdate(n,i)}));return()=>{t.cancelOnLayerUpdate(n,i),o()}}),[e,t,n])}var Mo=class extends m.Component{listener=new _r;redrawBatch={requests:new Map,forAll:0};memoizedElements=new WeakMap;sizeRequests=new Map;constructor(e){super(e);const{model:t,renderingState:n}=this.props;this.state={version:0,elementStates:Eo(t,n.shared,this.redrawBatch,new Map)}}render(){const{model:e,renderingState:t,paperTransform:n,layerRef:r}=this.props,{version:i,elementStates:o}=this.state,{memoizedElements:a}=this,s=[];for(const t of e.elements){const e=o.get(t);e&&s.push(e)}return R.jsx(vo,{layerRef:r,className:"reactodia-element-layer",paperTransform:n,role:"figure",children:s.map((n=>{let r=a.get(n);return r||(r=R.jsx(To,{state:n,model:e,renderingState:t,onResize:this.requestSizeUpdate},n.element.id),a.set(n,r)),r}))},i)}componentDidMount(){const{model:e,renderingState:t}=this.props;this.listener.listen(e.events,"changeCells",(e=>{e.updateAll?this.requestRedrawAll(1):e.changedElement&&this.requestRedraw(e.changedElement,1)})),this.listener.listen(e.events,"changeCellOrder",(()=>{this.requestRedrawAll(0)})),this.listener.listen(e.events,"changeSelection",(({previous:t})=>{const n=1===t.length?t[0]:void 0,r=1===e.selection.length?e.selection[0]:void 0,i=n instanceof ho?n:void 0,o=r instanceof ho?r:void 0;o!==i&&(i&&this.requestRedraw(i,6),o&&this.requestRedraw(o,6))})),this.listener.listen(e.events,"elementEvent",(({data:e})=>{const t=e.changeElementState;t&&this.requestRedraw(t.source,6);const n=e.changePosition;if(n&&this.requestRedraw(n.source,2),e.requestedRedraw){let t=2;"template"===e.requestedRedraw.level&&(t=6),this.requestRedraw(e.requestedRedraw.source,t)}})),this.listener.listen(e.events,"changeLanguage",(()=>{this.requestRedrawAll(6)})),this.listener.listen(e.events,"discardGraph",(()=>{this.requestRedrawAll(31)})),this.listener.listen(t.shared.events,"changeHighlight",(()=>{this.requestRedrawAll(10)}))}componentWillUnmount(){this.listener.stopListening(),this.props.renderingState.cancelOnLayerUpdate(ko.Element,this.redrawElements),this.props.renderingState.cancelOnLayerUpdate(ko.ElementSize,this.recomputeQueuedSizes)}requestRedraw=(e,t)=>{if((this.redrawBatch.forAll|t)===this.redrawBatch.forAll)return;const n=this.redrawBatch.requests.get(e.id)||0;this.redrawBatch.requests.set(e.id,n|t),this.props.renderingState.scheduleOnLayerUpdate(ko.Element,this.redrawElements)};requestRedrawAll(e){this.redrawBatch.forAll|=e,this.props.renderingState.scheduleOnLayerUpdate(ko.Element,this.redrawElements)}redrawElements=()=>{const e=this.redrawBatch;this.redrawBatch={forAll:0,requests:new Map},hn.flushSync((()=>{this.setState(((t,n)=>({version:31===e.forAll?t.version+1:t.version,elementStates:Eo(n.model,n.renderingState.shared,e,t.elementStates)})))}))};requestSizeUpdate=(e,t)=>{this.sizeRequests.set(e.id,{element:e,node:t}),this.props.renderingState.scheduleOnLayerUpdate(ko.ElementSize,this.recomputeQueuedSizes)};recomputeQueuedSizes=()=>{const{renderingState:e}=this.props,t=this.sizeRequests;this.sizeRequests=new Map;for(const e of t.values()){const{clientWidth:t,clientHeight:n}=e.node;e.computedSize={width:t,height:n}}for(const n of t.values())n.computedSize&&e.setElementSize(n.element,n.computedSize)}};function Eo(e,t,n,r){if(0===n.forAll&&0===n.requests.size)return r;const i=1===e.selection.length?e.selection[0]:void 0,o=i instanceof ho?i:void 0,a=new Map;for(const i of e.elements){const e=i.id;let s=r.get(i);if(s){const r=(n.requests.get(e)||0)|n.forAll;2&r&&(s={element:i,templateProps:6&~r?s.templateProps:zo(s.element,o),blurred:10&~r?s.blurred:Ao(s.element,t)}),a.set(i,s),n.requests.delete(e)}else a.set(i,{element:i,templateProps:zo(i,o),blurred:Ao(i,t)})}return n.forAll=0,a}function zo(e,t){return{elementId:e.id,element:e,isExpanded:e.isExpanded,elementState:e.elementState,onlySelected:e===t}}var $o="reactodia-overlaid-element",To=class extends m.Component{elementRef=m.createRef();decorationsRef=m.createRef();listener=new _r;render(){const{state:{element:e,blurred:t,templateProps:n}}=this.props;if(e instanceof fo)return R.jsx("div",{});const{x:r,y:i}=e.position,o={position:"absolute",transform:`translate(${r}px,${i}px)`};return R.jsxs(R.Fragment,{children:[R.jsx("div",{className:un($o,t?`${$o}--blurred`:void 0,n.onlySelected?`${$o}--only-selected`:void 0),style:o,"data-element-id":e.id,tabIndex:0,ref:this.elementRef,onLoad:this.onLoadOrErrorEvent,onError:this.onLoadOrErrorEvent,children:R.jsx(No,{...this.props})}),R.jsx("div",{className:"reactodia-element-decorations",style:o,ref:this.decorationsRef})]})}onLoadOrErrorEvent=()=>{const{state:e,onResize:t}=this.props;this.elementRef.current&&t(e.element,this.elementRef.current)};componentDidMount(){const{state:e,onResize:t,renderingState:n}=this.props;this.decorationsRef.current&&this.decorationsRef.current.appendChild(n.ensureDecorationContainer(e.element)),this.listener.listen(e.element.events,"requestedFocus",(()=>{this.elementRef.current?.focus()})),this.elementRef.current&&t(e.element,this.elementRef.current)}componentWillUnmount(){const{state:e,renderingState:t}=this.props,n=t.ensureDecorationContainer(e.element);n.parentElement?.removeChild(n),this.listener.stopListening()}shouldComponentUpdate(e){return this.props.state!==e.state}componentDidUpdate(){const{state:e,onResize:t}=this.props;this.elementRef.current&&t(e.element,this.elementRef.current)}},No=class extends m.Component{cachedTemplate;cachedTemplateProps;render(){const{state:e,renderingState:t}=this.props,{element:n,templateProps:r}=e,i=t.getElementTemplate(n);return this.cachedTemplate=i,this.cachedTemplateProps=r,i.renderElement(r)}shouldComponentUpdate(e){const t=e.renderingState.getElementTemplate(e.state.element);return!(this.cachedTemplate===t&&this.cachedTemplateProps===e.state.templateProps)}};function Ao(e,t){return Boolean(t.highlighter&&!t.highlighter(e))}function Io(e){const{target:t,children:n}=e,{canvas:r}=zi();return hn.createPortal(n,r.renderingState.ensureDecorationContainer(t))}function Po(e,t){const{positions:n,sizes:r,nestedLayouts:i}=e,o=new Vo(r),a=t.elements.filter((({id:e})=>n.has(e)));for(const e of i)Po(e,t);const s=Qi(a,o);for(const e of a){const t=n.get(e.id);t&&e.setPosition(t)}const l=Qi(a,o),c=s.x-l.x,d=s.y-l.y;for(const[e,r]of n)t.getElement(e).setPosition({x:r.x+c,y:r.y+d})}var Vo=class{sizes;constructor(e){this.sizes=e}getElementSize(e){return this.sizes.get(e.id)}getElementShape(e){return{type:"rect",bounds:Di(e,this)}}},Ho=class extends m.Component{listener=new _r;providedContext;updateState=1;scheduledToUpdate=new Set;labelMeasureRequests=new Set;memoizedLinks=new WeakMap;constructor(e){super(e),this.providedContext={scheduleLabelMeasure:this.scheduleLabelMeasure,clearLabelMeasure:this.clearLabelMeasure},this.state={version:0,shouldUpdateLink:this.popShouldUpdatePredicate()}}componentDidMount(){const{model:e,renderingState:t}=this.props,n=t=>{for(const n of e.getElementLinks(t))this.scheduleUpdateLink(n.id)};this.listener.listen(e.events,"changeLanguage",this.scheduleUpdateAll),this.listener.listen(e.events,"changeCells",(e=>{if(e.updateAll)this.scheduleUpdateAll();else if(e.changedElement&&n(e.changedElement),e.changedLinks)for(const t of e.changedLinks)this.scheduleUpdateLink(t.id)})),this.listener.listen(e.events,"changeSelection",(({previous:t})=>{const n=1===t.length?t[0]:void 0,r=1===e.selection.length?e.selection[0]:void 0,i=n instanceof po?n:void 0,o=r instanceof po?r:void 0;o!==i&&(i&&this.scheduleUpdateLink(i.id),o&&this.scheduleUpdateLink(o.id))})),this.listener.listen(e.events,"elementEvent",(({data:e})=>{e.changePosition&&n(e.changePosition.source)})),this.listener.listen(e.events,"linkEvent",(({data:e})=>{const t=e.changeVertices||e.changeLinkState||e.requestedRedraw;t&&this.scheduleUpdateLink(t.source.id)})),this.listener.listen(e.events,"changeLinkVisibility",(t=>{for(const n of e.links.filter((e=>e.typeId===t.source)))this.scheduleUpdateLink(n.id)})),this.listener.listen(e.events,"discardGraph",(()=>{this.setState((e=>({version:e.version+1}))),this.scheduleUpdateAll()})),this.listener.listen(t.shared.events,"changeHighlight",this.scheduleUpdateAll),this.listener.listen(t.events,"changeElementSize",(e=>{n(e.source)}));const r=(e,t)=>{e.forEach(((e,n)=>{t.get(n)!==e&&this.scheduleUpdateLink(n)}))};this.listener.listen(t.events,"changeRoutings",(({previous:e})=>{const n=t.getRoutings();r(n,e),r(e,n)}))}shouldComponentUpdate(e,t){return!(this.props.shouldRenderLink===e.shouldRenderLink&&this.state.version===t.version&&this.state.shouldUpdateLink===t.shouldUpdateLink)}componentWillUnmount(){this.listener.stopListening(),this.props.renderingState.cancelOnLayerUpdate(ko.Link,this.performUpdate),this.props.renderingState.cancelOnLayerUpdate(ko.LinkLabel,this.measureLabels)}scheduleUpdateAll=()=>{2!==this.updateState&&(this.updateState=2,this.scheduledToUpdate=new Set),this.props.renderingState.scheduleOnLayerUpdate(ko.Link,this.performUpdate)};scheduleUpdateLink(e){1===this.updateState&&this.scheduledToUpdate.add(e),this.props.renderingState.scheduleOnLayerUpdate(ko.Link,this.performUpdate)}popShouldUpdatePredicate(){const{updateState:e,scheduledToUpdate:t}=this;return this.scheduledToUpdate=new Set,this.updateState=1,2===e?()=>!0:e=>t.has(e.id)}scheduleLabelMeasure=e=>{this.labelMeasureRequests.add(e),this.props.renderingState.scheduleOnLayerUpdate(ko.LinkLabel,this.measureLabels)};clearLabelMeasure=e=>{const{renderingState:t}=this.props;this.labelMeasureRequests.delete(e),t.setLinkLabelBounds(e.owner,void 0)};measureLabels=()=>{const{renderingState:e}=this.props,t=Array.from(this.labelMeasureRequests);this.labelMeasureRequests.clear();const n=[];for(const e of t)n.push(e.measureBounds());for(let r=0;r<t.length;r++){const i=n[r];i&&e.setLinkLabelBounds(t[r].owner,i)}};performUpdate=()=>{hn.flushSync((()=>{this.setState({shouldUpdateLink:this.popShouldUpdatePredicate()})}))};render(){const{model:e,shouldRenderLink:t,renderingState:n}=this.props,{version:r,shouldUpdateLink:i}=this.state,{memoizedLinks:o}=this;for(const t of e.links)i(t)&&o.delete(t);const a=[];for(const r of e.links)if(!t||t(r)){let t=o.get(r);t||(t=R.jsx(Do,{link:r,model:e,renderingState:n},r.id),o.set(r,t)),a.push(t)}return R.jsx(Ro.Provider,{value:this.providedContext,children:R.jsx("g",{className:"reactodia-link-layer",children:a},r)})}},Ro=m.createContext(null),Oo="reactodia-link";function Do(e){const{link:t,model:n,renderingState:r}=e,i=r.getLinkTemplate(t),o=r.shared.defaultLinkResolver(t),a=n.getElement(t.sourceId),s=n.getElement(t.targetId),l=n.getLinkVisibility(t.typeId);if(!a||!s||"hidden"===l)return null;const c=r.getRouting(t.id),d=c?c.vertices:t.vertices,u=r.getElementShape(a),h=r.getElementShape(s),f=Fi(u,h,d),p=Zi.create({type:i.spline??Zi.defaultType,points:f,source:Ni.center(u.bounds),target:Ni.center(h.bounds)}),g=Ui(f),v=i.markerSource??o.markerSource,m=i.markerTarget??o.markerTarget,b=v?r.ensureLinkMarkerIndex(v):void 0,w=m?r.ensureLinkMarkerIndex(m):void 0,{highlighter:y}=r.shared,_=y&&!y(t),k=1===n.selection.length&&n.selection[0]===t,x=i.renderLink({link:t,markerSource:b?`url(#${Qo(b,!0)})`:"",markerTarget:w?`url(#${Qo(w,!1)})`:"",path:p.toPath(),getPathPosition:e=>qi(f,g*e),route:c,onlySelected:k});return R.jsx("g",{"data-link-id":t.id,"data-source-id":t.sourceId,"data-target-id":t.targetId,className:un(Oo,_?`${Oo}--blurred`:void 0,k?`${Oo}--only-selected`:void 0),children:x})}var Bo="reactodia-link-path";function jo(e){const{path:t,pathProps:n,markerSource:r,markerTarget:i}=e;return R.jsxs(R.Fragment,{children:[R.jsx("path",{...n,className:un(Bo,n?.className),d:t,markerStart:r,markerEnd:i}),R.jsx("path",{className:`${Bo}__wrap`,d:t})]})}function Fo(e){const{renderingState:t,paperTransform:n,layerRef:r}=e,i=m.useRef(null),o=m.useCallback((e=>{i.current=e,r&&(r.current=e)}),[r]);return m.useEffect((()=>{const e=i.current;if(e)return t.attachLinkLabelContainer(e),()=>t.attachLinkLabelContainer(null)}),[]),R.jsx(vo,{paperTransform:n,className:"reactodia-label-layer",layerRef:o,role:"figure"})}var Uo="middle";function qo(e){const{link:t,position:{x:n,y:r},line:i,className:o,style:a,textAnchor:s,title:l,children:c}=e,{canvas:d}=zi(),u=m.useContext(Ro),h=m.useRef(null),f=m.useRef(void 0);m.useLayoutEffect((()=>{if(u&&e.primary){if(!f.current){const n={owner:t,measureBounds:()=>{const e=h.current?.getBoundingClientRect();if(!e)return;const t=1/d.getScale();return function(e,{width:t,height:n}){const{position:{x:r,y:i},textAnchor:o=Uo}=e;let a=0;return"middle"===o?a=-t/2:"end"===o&&(a=-t),{x:r+a,y:i-n/2,width:t,height:n}}(n.latestProps,{width:e.width*t,height:e.height*t})},latestProps:e};f.current=n}f.current.latestProps=e,u.scheduleLabelMeasure(f.current)}})),m.useLayoutEffect((()=>()=>{const e=f.current;u&&e&&u.clearLabelMeasure(e)}),[]);const p={...a,position:"absolute",transform:`translate(${n}px,${r}px)${"start"===s?"translate(0,-50%)":"end"===s?"translate(-100%,-50%)":"translate(-50%,-50%)"}`,"--reactodia-link-label-line":i},g=d.renderingState;return hn.createPortal(R.jsx("div",{ref:h,"data-link-id":t.id,className:un("reactodia-link-label",o),style:p,title:l,children:c}),g.getLinkLabelContainer())}var Wo="reactodia-link-vertices";function Go(e){const{linkId:t,vertices:n,className:r,vertexRadius:i=10,fill:o}=e,{model:a}=zi();if(0===n.length)return null;const s=un(`${Wo}__vertex`,r),l=e=>{const n=a.getLink(t);if(!n)return;const r=new go(n,e);a.history.registerToUndo(oo(r.link)),r.remove()},c=[];for(let e=0;e<n.length;e++){const{x:t,y:r}=n[e],a=c.length;c.push(R.jsx("circle",{"data-vertex":e,className:s,cx:t,cy:r,r:i,fill:o},a)),c.push(R.jsx(Zo,{vertexIndex:e,vertexRadius:i,x:t,y:r,onRemove:l},a+1))}return R.jsx("g",{className:Wo,children:c})}function Zo(e){const{vertexIndex:t,vertexRadius:n,x:r,y:i,onRemove:o}=e,a=Ht();return R.jsxs("g",{className:`${Wo}__handle`,"data-reactodia-no-export":"true",transform:`translate(${r+2*n},${i-2*n})scale(${n})`,onPointerDown:e=>{0===e.button&&(e.preventDefault(),e.stopPropagation(),o(t))},children:[R.jsx("title",{children:a.text("link_action.vertex.remove_title")}),R.jsx("circle",{r:1}),R.jsx("path",{d:"M-0.5,-0.5 L0.5,0.5 M0.5,-0.5 L-0.5,0.5",strokeWidth:2/n})]})}var Ko=m.memo((function(e){const{model:t,renderingState:n}=e;Tt(Lo(zt(n.events,"changeLinkTemplates"),n,ko.Link),(()=>t.cellsVersion));const r=new Set,i=new Set;for(const e of t.links){const t=n.getLinkTemplate(e),o=n.shared.defaultLinkResolver(e),a=t.markerSource??o.markerSource;a&&r.add(a);const s=t.markerTarget??o.markerTarget;s&&i.add(s)}return R.jsxs("defs",{children:[Array.from(r,(e=>{const t=n.ensureLinkMarkerIndex(e);return R.jsx(Xo,{markerIndex:t,isStartMarker:!0,style:e},t)})),Array.from(i,(e=>{const t=n.ensureLinkMarkerIndex(e);return R.jsx(Xo,{markerIndex:t,isStartMarker:!1,style:e},t)}))]})}),(()=>!0)),Xo=class extends m.Component{render(){return R.jsx("marker",{ref:this.onMarkerMount})}shouldComponentUpdate(){return!1}onMarkerMount=e=>{if(!e)return;const{markerIndex:t,isStartMarker:n,style:r}=this.props,{d:i,width:o,height:a}=r;if(void 0===i||void 0===o||void 0===a)return;const s="reactodia-link-marker";e.setAttribute("class",s),e.setAttribute("id",Qo(t,n)),e.setAttribute("markerWidth",String(o)),e.setAttribute("markerHeight",String(a)),e.setAttribute("orient","auto"),e.setAttribute("refX",String(n?0:o-1)),e.setAttribute("refY",String(a/2)),e.setAttribute("markerUnits","userSpaceOnUse");const l=document.createElementNS("http://www.w3.org/2000/svg","path");l.setAttribute("class",`${s}__path`),l.setAttribute("d",i),void 0!==r.fill&&l.setAttribute("fill",r.fill),void 0!==r.stroke&&l.setAttribute("stroke",r.stroke),void 0!==r.strokeWidth&&l.setAttribute("stroke-width",String(r.strokeWidth)),e.appendChild(l)}};function Qo(e,t){return`reactodia-marker-${t?"start":"end"}-${e}`}var Yo={$schema:"../i18n.schema.json",authoring_state:{"entity_action_delete.label":"delete","entity_action_delete.title":"Delete entity","entity_action_delete.title_disabled":"Cannot delete the entity","entity_action_discard.label":"cancel","entity_action_discard.title":"Discard all changes to the entity","entity_action_edit.label":"edit","entity_action_edit.title":"Edit entity","entity_action_edit.title_disabled":"Cannot edit the entity","entity_add.label":"New","entity_change.label":"Change","entity_delete.label":"Delete","relation_action_discard.label":"cancel","relation_action_discard.title":"Discard all changes to the relation","relation_add.label":"New","relation_change.label":"Change","relation_delete.label":"Delete"},classic_workspace:{"canvas.label":"Canvas","class_tree.heading":"Classes","connections.heading":"Connections","instances.heading":"Instances"},commands:{"change_entity.title":"Change entity data","change_link_type_visibility.title":"Change link type visibility","change_relation.title":"Change relation data","collapse_element.title":"Collapse element","expand_element.title":"Expand element","place_elements_around.title":"Place elements","restore_geometry.title":"Move elements and links","restore_link_vertices.title":"Change link vertices","restore_viewport.title":"Set viewport","set_element_state.title":"Change element state","set_entity_data.title":"Set entity element data","set_entity_group_items.title":"Set entity group items","set_link_state.title":"Change link state","set_relation_data.title":"Set relation link data","set_relation_group_items.title":"Set relation group items","transform_elements.title":"Resize elements"},connections_menu:{"all_link.label":"All","breadcrumbs_root.label":"Link types","dialog.caption":"Connections","entities.add_all":"Add all","entities.add_group":"Add as group","entities.add_selected":"Add selected","entities.counter_label":"{{count}} of {{total}}","entities.extra_label":" ({{value}})","entities.extra_title":"Extra entities","entities.missing_label":" ({{value}})","entities.missing_title":"Missing entities","entities.no_results":"No results","entities.truncated_results":"Only the first {{limit}} entities are shown","entities.truncated_results_expand":"Only the first {{limit}} entities are shown,\nclick here for the full results","input.placeholder":null,"link.both_navigate_title":"Navigate to all connected elements","link.both_title":"all connected","link.source_navigate_title":'Navigate to source "{{relation}}" elements',"link.source_title":'source of "{{relation}}" {{relationIri}}',"link.target_navigate_title":'Navigate to source "{{target}}" elements',"link.target_title":'target of "{{relation}}" {{relationIri}}',"link.move_to_filter.title":"Set as filter in the Instances panel","links.no_results":"No results","links.suggest_similar":"Probably, you are looking for...","place_elements.command":"Add connected elements","select_all.label":"Select all","select_all.title":"Select or unselect all entities","sort_alphabetically.title":"Sort alphabetically","sort_smart.title":"Smart sort"},data_diagram_model:{"add_element.command":"Add element","add_link.command":"Add link","create_links.command":"Create links","group_entities.command":"Group entities","import_layout.command":"Import layout","regroup_relations.command":"Regroup relations","request_entities.command":"Request entity data","request_relations.command":"Request relations between entities","remove_element.command":"Remove element","remove_link.command":"Remove link","ungroup_entities.command":"Ungroup entities"},default_data_locale:{iri:"<{{value}}>",iri_blank:"(blank node)"},default_workspace:{"search_section_entities.label":"Entities","search_section_entities.title":"Entity lookup","search_section_entity_types.label":"Types","search_section_entity_types.title":"Entity type hierarchy","search_section_link_types.label":"Links","search_section_link_types.title":"Relation types on the diagram"},drop_on_canvas:{"drop.command":"Drag and drop onto diagram"},editor_controller:{"apply_authored_changes.command":"Apply authored changes to the diagram","discard_change.command":"Discard change","entity_add.command":"Create new entity","entity_change.command":"Edit entity","entity_delete.command":"Delete entity","relation_add.command":"Create new relation","relation_change.command":"Edit relation","relation_delete.command":"Delete relation","relation_move_source.command":"Move relation source","relation_move_target.command":"Move relation target","remove_items.command":"Remove diagram items","set_authoring_state.command":"Create, change or delete entities and relations","validate_entity_failed.message":"Failed to validate entity"},forms:{"input_file.drag_hint":"Drag files over or","input_file.remove_value.title":"Remove the file","input_file.select_files.label":"Select files","input_list.add_value.title":"Add new property value","input_list.remove_value.title":"Remove the property value"},group_paginator:{"current_page.label":"{{page}} of {{pageCount}}","go_next.title":"Go to the next page","go_previous.title":"Go to the previous page","page_size.title":"Number of items to display per page"},inline_entity:{title:"{{entity}} {{entityIri}}",title_extra:"Types: {{entityTypes}}"},link_action:{"delete_annotation.title":"Remove annotation link","delete_relation.title":"Delete relation","delete_relation.title_disabled":"Cannot delete the relation","edit_relation.title":"Edit relation","edit_relation.title_disabled":"Cannot edit the relation","rename_link.title":"Rename link","move_relation.move_source_title":"Move link source","move_relation.move_target_title":"Move link target","vertex.remove_title":"Remove vertex"},navigator:{"toggle_collapse.title":"Collapse navigator","toggle_expand.title":"Expand navigator"},note_annotation:{"change_text.command":"Change annotation text","style_align_center.title":"Align center","style_align_left.title":"Align left","style_align_right.title":"Align right","style_bold.title":"Bold","style_color_variant.title":"Color variant: {{variant}}","style_italic.title":"Italic","style_strikethrough.title":"Strikethrough","style_underline.title":"Underline"},overlay_controller:{multiple_tasks_in_progress:"Multiple tasks are in progress",unknown_error:"Unknown error occurred"},search_defaults:{empty_input_term:"Input a term to search.","input.placeholder":"Search for...","input_clear.title":"Clear the search","input_submit.title":"Search",input_term_too_short:"Input at least {{termLength}} characters to search.",no_results:"No results found."},search_element_types:{"drag_create.title":"Click or drag to create new entity of this type","input.placeholder":null,no_results:"No element types found.","refresh_progress.title":"Loading element type tree",show_only_creatable:"Show only constructible"},search_entities:{"add_group.label":"Add as group","add_group.title":"Place selected entities on the canvas as a group","add_selected.label":"Add selected","add_selected.title":"Place selected entities on the canvas",criteria_has_type:"Has type {{entityType}}",criteria_connected:"Connected to {{entity}}",criteria_connected_via:"Connected to {{entity}} through {{relationType}}",criteria_connected_to_source:"Connected to {{entity}} through {{relationType}} as {{sourceIcon}} source",criteria_connected_to_target:"Connected to {{entity}} through {{relationType}} as {{targetIcon}} target","input.placeholder":null,"place_elements.command":"Add selected elements","query_progress.title":"Querying for entities","show_more_results.label":"Show more","show_more_results.title":"Load more results"},search_link_types:{"add_to_filter.title":"Search for connected elements via the relation",heading_connected:"Connected to selected entities",heading_connected_single:"Connected to {{entity}}",heading_other:"Other links","input.placeholder":null,no_results:"No links found.","switch.command":"Change link types visibility","switch_all.label":"Switch all","switch_hidden.title":"Hide links and labels","switch_visible.title":"Show links with labels","switch_without_label.title":"Show only lines for links (without labels)"},selection_action:{"add_to_filter.title":"Search for connected elements","anchor.title":"Jump to resource","annotate.defaultContent":"Annotation","annotate.title":"Add annotation to this element","connections.title":"Navigate to connected elements","expand.collapse_command":"Collapse elements","expand.expand_command":"Expand elements","expand.title":"Expand selected elements to reveal additional properties","expand.title_single":"Expand an element to reveal additional properties","establish_relation.title":"Establish link","establish_relation.title_disabled":"Establishing link is not allowed for the element","group.title":"Group entities","group.title_ungroup":"Ungroup entities","layout.title":"Layout selected elements using force-directed algorithm","remove.title":"Remove selected elements from the diagram","remove.title_new":"Discard new element","remove.title_single":"Remove an element from the diagram","zoom_to_fit.title":"Zoom to fit selected elements into view"},standard_element:{blank_node:"(blank node)",default_type:"Thing","delete.label":"Delete","delete.title":"Delete entity","delete.title_disabled":"Cannot delete the entity","edit.label":"Edit","edit.title":"Edit entity","edit.title_disabled":"Cannot edit the entity","group_item.title":"{{entity}}\nIRI:{{entityIri}}\nTypes: {{entityTypes}}","iri.label":"IRI:","iri.label_modified":"IRI (edited):",no_properties:"no properties","property.title":"{{property}} {{propertyIri}}","ungroup.title":"Ungroup an entity"},standard_link:{"group_source.title":"{{value}} source elements","group_source.value":"{{value}}","group_target.title":"{{value}} target elements","group_target.value":"{{value}}","label.title":"{{relation}} {{relationIri}}","property.title":"{{property}} {{propertyIri}}"},toolbar:{"menu_toggle.title":"Open menu"},toolbar_action:{"clear_all.command":"Clear all","clear_all.title":"Remove all elements and links from the diagram","clear_all.label":"Clear All","export_print.label":"Print","export_print.title":"Print the diagram","export_raster.label":"Export as PNG","export_raster.title":"Export the diagram as a PNG image","export_svg.label":"Export as SVG","export_svg.title":"Export the diagram as an SVG image","redo.label":"Redo","redo.title":"Redo last undone command","redo.title_named":"Redo: {{command}}","save_authoring.title":"Apply authored graph changes","save_layout.title":"Save diagram layout","language_selector.title":"Select language for the data (labels, properties, etc)","layout.label":"Layout","layout.title":"Layout diagram using force-directed algorithm","undo.label":"Undo","undo.title":"Undo last command","undo.title_named":"Undo: {{command}}"},unified_search:{"input.placeholder":null,"input_clear.title":"Clear","input_collapse.title":"Close"},visual_authoring:{"dialog.apply.label":"Apply","dialog.apply.title":"Apply changes","dialog.cancel.label":"Cancel","dialog.cancel.title":"Cancel the dialog","edit_entity.dialog.apply.label":null,"edit_entity.dialog.apply.title":null,"edit_entity.dialog.caption":"Edit entity","edit_entity.iri.label":"IRI","edit_entity.iri.placeholder":"Entity IRI","edit_relation.dialog.apply.label":null,"edit_relation.dialog.apply.title":null,"edit_relation.dialog.caption":"Edit relation","edit_relation.dialog.caption_new":"Establish new relation","edit_relation.validation_progress.title":"Validating selected link type","find_or_create.connect_command":"Link to an entity","find_or_create.create_command":"Create new entity","find_or_create.dialog.apply.label":null,"find_or_create.dialog.apply.title":null,"find_or_create.dialog.caption":"Establish New Connection","find_or_create.loading.label":"Loading entity...","find_or_create.validation_progress.title":"Validating selected element and link types","property.label":"{{property}}","property.text_value.placeholder":"Property value","property.title":"{{property}} {{propertyIri}}","rename_link.dialog.apply.label":null,"rename_link.dialog.apply.title":null,"rename_link.dialog.caption":"Rename Link","rename_link.label.label":"Label","select_entity.entity_type.label":"{{type}}","select_entity.input.placeholder":null,"select_entity.type.label":"Entity Type","select_entity.type.placeholder":"Select entity type","select_entity.results.aria_label":"Select an existing element to put on a diagram","select_entity.separator.label":"or create new entity","select_entity.validation.error_required":"Required.","select_relation.relation_type.label":"{{relation}} [{{source}} → {{target}}]","select_relation.type.label":"Relation Type","select_relation.type.placeholder":"Select relation type","select_relation.validation.error_duplicate":"The relation already exists.","select_relation.validation.error_required":"Required."},workspace:{"group_entities.command":"Group entities","perform_layout.task":"Computing graph layout","perform_layout.command":"Graph layout","ungroup_entities.command":"Ungroup entities"},workspace_layout:{"toggle_collapse.title":"Collapse panel","toggle_expand.title":"Expand panel"},zoom_control:{"pointer_mode.title":"Toggle selection mode:\nDrag pointer to select, Shift + Pointer to pan the canvas","zoom_in.title":"Zoom In","zoom_out.title":"Zoom Out","zoom_to_fit.title":"Fit to Screen"}},Jo=class{bundles;_selectLabel;constructor(e){const{bundles:t=[],selectLabel:n=na}=e??{};this.bundles=t,this._selectLabel=n}getString(e){const t=e.indexOf(".");if(!(t>0&&t<e.length))throw new Error(`Reactodia: Invalid translation key: ${e}`);const n=e.substring(0,t),r=e.substring(t+1);for(const e of this.bundles){const t=ea(e,n,r);if(null!=t)return t}}text(e,t){return this.textOptional(e,t)??e}textOptional(e,t){const n=this.getString(e);if(void 0!==n)return function(e,t){return e.includes("{{")?ta(e,(e=>t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]??"":"")).join(""):e}(n,t)}template(e,t){return function(e,t){const n=ta(e,(e=>Object.prototype.hasOwnProperty.call(t,e)?t[e]??null:null));return m.createElement(m.Fragment,null,...n)}(this.getString(e)??e,t)}selectLabel(e,t){const{_selectLabel:n}=this;return n(e,t)}selectValues(e,t){return e.filter((e=>"NamedNode"===e.termType||""===e.language||e.language===t))}formatLabel(e,t,n){return function(e,t){return e?e.value:Ut(t)||t}(e?this.selectLabel(e,n):void 0,t)}};function ea(e,t,n){if(!Object.prototype.hasOwnProperty.call(e,t))return;const r=e[t];return"object"==typeof r&&r&&Object.prototype.hasOwnProperty.call(r,n)?r[n]:void 0}function ta(e,t){const n=[],r=/\{\{([a-zA-Z0-9_]+)\}\}/g;let i,o=0;for(;i=r.exec(e);){const[a,s]=i,l=r.lastIndex-a.length;l!=o&&n.push(e.substring(o,l));const c=t(s);n.push(c),o=r.lastIndex}return o<e.length&&n.push(e.substring(o,e.length)),n}function na(e,t){if(0===e.length)return;let n,r;for(const i of e){if(i.language===t)return i;""===i.language?n=i:"en"===i.language&&(r=i)}return void 0!==n?n:void 0!==r?r:e[0]}var ra=m.createContext(null);function ia(e){const{context:t,layer:n,...r}=e,i=m.useRef(null),o=t.containers[n];return m.useLayoutEffect((()=>{const e=i.current;if(e)return e.appendChild(o),()=>{e.removeChild(o)}}),[i,o]),R.jsx("div",{...r,ref:i,"data-reactodia-place-layer":n})}function oa(e){return e.hasAttribute("data-reactodia-place-layer")}function aa(e){const{layer:t,children:n}=e,r=m.useContext(ra);if(!r)throw new Error("Reactodia: <CanvasPlaceAt> should be rendered only inside <Canvas>");if("nested"===r)throw new Error("Reactodia: <CanvasPlaceAt> cannot be nested into another <CanvasPlaceAt>");const i=m.useMemo((()=>R.jsx(ra.Provider,{value:"nested",children:n})),[n]);return hn.createPortal(i,r.containers[t])}var sa,la,ca,da=class{source=new yr;events=this.source;dropOnPaperHandler;_highlighter;defaultElementResolver;defaultLinkResolver;defaultLayout;renameLinkProvider;constructor(e){const{defaultElementResolver:t,defaultLinkResolver:n,defaultLayout:r,renameLinkProvider:i}=e;this.defaultElementResolver=t,this.defaultLinkResolver=n,this.defaultLayout=r,this.renameLinkProvider=i}dispose(){this.source.trigger("dispose",{source:this})}findAllCanvases(){const e={canvases:[]};return this.source.trigger("findCanvas",e),e.canvases}findAnyCanvas(){const e=this.findAllCanvases();return e.length>0?e[0]:void 0}setHandlerForNextDropOnPaper(e){this.dropOnPaperHandler=e}hasHandlerForNextDropOnPaper(){return Boolean(this.dropOnPaperHandler)}tryHandleDropOnPaper(e){const{dropOnPaperHandler:t}=this;return!!t&&(this.dropOnPaperHandler=void 0,e.sourceEvent.preventDefault(),t(e),!0)}get highlighter(){return this._highlighter}setHighlighter(e){const t=this._highlighter;t!==e&&(this._highlighter=e,this.source.trigger("changeHighlight",{source:this,previous:t}))}},ua=class{canRename(e){return!0}getLabel(e){const{linkState:t}=e,n=t.get(vr.CustomLabel);return"string"==typeof n?n:void 0}setLabel(e,t){e.setLinkState(e.linkState.set(vr.CustomLabel,0===t.length?void 0:t))}},ha=class e extends ho{static fromJSONType="Annotation";static fromJSON(t,n){const{"@id":r,position:i,elementState:o}=t;return new e({id:r,position:i,elementState:n.mapTemplateState(Mr.fromJSON(o))})}toJSON(){return{"@type":"Annotation","@id":this.id,position:this.position,elementState:this.elementState.toJSON()}}},fa=class e extends po{static typeId="urn:reactodia:annotates";getTypeId(){return e.typeId}static fromJSONType="AnnotationLink";static fromJSON(t,n){const{"@id":r,vertices:i,linkState:o}=t;return new e({id:r,sourceId:n.source.id,targetId:n.target.id,vertices:i,linkState:n.mapTemplateState(Mr.fromJSON(o)).set(vr.LayoutOnly,void 0)})}toJSON(){return{"@type":"AnnotationLink","@id":this.id,source:{"@id":this.sourceId},target:{"@id":this.targetId},vertices:this.vertices,linkState:this.linkState.toJSON()}}};function pa(e,t){return e.sourceId===t||e.targetId===t}!function(e){function t(e){return{elements:new Map(e.elements),links:e.links.clone()}}function n(e){switch(e.type){case"entityAdd":case"entityChange":case"entityDelete":return!0;default:return!1}}function r(e,t){return n(t)?e.elements.get(t.data.id)===t:e.links.get(t.data)===t}function i(e,t){const n=e.elements.get(t);return Boolean(n&&"entityAdd"===n.type)}function o(e,t){const n=e.elements.get(t);return Boolean(n&&"entityDelete"===n.type)}function a(e,t){const n=e.links.get(t);return Boolean(n&&"relationAdd"===n.type)}e.empty={elements:new Map,links:new q(Kt,Zt)},e.isEmpty=function(e){return 0===e.elements.size&&0===e.links.size},e.clone=t,e.isEntityEvent=n,e.isLinkEvent=function(e){return!n(e)},e.has=r,e.discard=function(e,i){if(!r(e,i))return e;const o=t(e);if(n(i)){if(o.elements.delete(i.data.id),"entityAdd"===i.type)for(const{data:t}of e.links.values())pa(t,i.data.id)&&o.links.delete(t)}else o.links.delete(i.data);return o},e.addEntity=function(e,n){const r=t(e);return r.elements.set(n.id,{type:"entityAdd",data:n}),r},e.addRelation=function(e,n){const r=t(e);return r.links.set(n,{type:"relationAdd",data:n}),r},e.changeEntity=function(e,n,r){const i=t(e);i.elements.delete(n.id);const o=e.elements.get(n.id);if(o&&"entityChange"!==o.type&&"entityDelete"!==o.type){if(i.elements.set(r.id,{type:"entityAdd",data:r}),n.id!==r.id)for(const t of e.links.values())if("relationChange"!==t.type&&pa(t.data,n.id)){const e=(a=t.data,s=n.id,l=r.id,{...a,sourceId:a.sourceId===s?l:a.sourceId,targetId:a.targetId===s?l:a.targetId});i.links.delete(t.data),i.links.set(e,{type:"relationAdd",data:e})}}else{const e=r.id!==n.id;i.elements.set(n.id,{type:"entityChange",before:o&&"entityChange"===o.type?o.before:n,data:e?{...r,id:n.id}:r,newIri:e?r.id:void 0})}var a,s,l;return i},e.changeRelation=function(e,n,r){if(!Zt(n,r))throw new Error("Cannot move link to another element or change its type");const i=t(e),o=e.links.get(n);return i.links.set(n,"relationAdd"===o?.type?{type:"relationAdd",data:r}:{type:"relationChange",before:o&&"relationChange"===o.type?o.before:n,data:r}),i},e.deleteEntity=function(e,n){const r=t(e);r.elements.delete(n.id);for(const{data:t}of e.links.values())pa(t,n.id)&&r.links.delete(t);return i(e,n.id)||r.elements.set(n.id,{type:"entityDelete",data:n}),r},e.deleteRelation=function(e,n){const r=t(e);return r.links.delete(n),a(e,n)||r.links.set(n,{type:"relationDelete",data:n}),r},e.discardAddedRelations=function(e,n){const r=t(e);for(const t of e.links.values())if("relationAdd"===t.type){const e=t.data;(n.has(e.sourceId)||n.has(e.targetId))&&r.links.delete(e)}return r},e.isAddedEntity=i,e.isDeletedEntity=o,e.hasEntityChangedIri=function(e,t){const n=e.elements.get(t);return Boolean(n&&"entityChange"===n.type&&n.newIri)},e.isAddedRelation=a,e.isDeletedRelation=function(e,t){const n=e.links.get(t);return n&&"relationDelete"===n.type||o(e,t.sourceId)||o(e,t.targetId)}}(sa||(sa={})),(ca=la||(la={})).empty={elements:new Set,links:new W(Kt,Zt)},ca.addEntity=function(e,t){if(e.elements.has(t.id))return e;const n=new Set(e.elements);return n.add(t.id),{...e,elements:n}},ca.removeEntity=function(e,t){if(!e.elements.has(t.id))return e;const n=new Set(e.elements);return n.delete(t.id),{...e,elements:n}},ca.addRelation=function(e,t){if(e.links.has(t))return e;const n=e.links.clone();return n.add(t),{...e,links:n}},ca.removeRelation=function(e,t){if(!e.links.has(t))return e;const n=e.links.clone();return n.delete(t),{...e,links:n}};var ga="reactodia:connectionsMenu",va=class{source=new yr;events=this.source;cellsVersion=Math.floor(Math.random()*Number.MAX_SAFE_INTEGER/2);elements=new Ct;links=new Ct;elementLinks=new WeakMap;EMPTY_LINKS=[];linkTypeVisibility=new Map;getCellsVersion(){return this.cellsVersion}getElements(){return this.elements.items}getLinks(){return this.links.items}getLink(e){return this.links.get(e)}getElementLinks(e){return this.elementLinks.get(e)??[]}*iterateLinks(e,t,n){const r=this.getElement(e),i=this.getElement(t);if(!r||!i)return;const o=this.elementLinks.get(r)??this.EMPTY_LINKS,a=this.elementLinks.get(i)??this.EMPTY_LINKS,s=o.length<=a.length?o:a;for(const r of s)r.sourceId!==e||r.targetId!==t||n&&r.typeId!==n||(yield r)}sourceOf(e){return this.getElement(e.sourceId)}targetOf(e){return this.getElement(e.targetId)}reorderElements(e){this.elements.reorder(e),this.incrementCellsVersion()}getElement(e){return this.elements.get(e)}addElement(e){if(this.getElement(e.id))throw new Error(`Element '${e.id}' already exists.`);e.events.onAny(this.onElementEvent),this.elements.push(e.id,e),this.incrementCellsVersion(),this.source.trigger("changeCells",{updateAll:!1,changedElement:e})}onElementEvent=e=>{this.source.trigger("elementEvent",{data:e})};removeElement(e){const t=this.elements.get(e);if(t){const n={silent:!0},r=[...this.getElementLinks(t)];for(const e of r)this.removeLink(e.id,n);this.elements.delete(e),t.events.offAny(this.onElementEvent),this.incrementCellsVersion(),this.source.trigger("changeCells",{updateAll:!1,changedElement:t,changedLinks:r})}}addLink(e){if(this.getLink(e.id))throw new Error(`Link already exists: ${e.id}`);const t=this.sourceOf(e);if(!t)throw new Error(`Link source not found: ${e.sourceId}`);const n=this.targetOf(e);if(!n)throw new Error(`Link target not found: ${e.targetId}`);let r=this.elementLinks.get(t);if(r||(r=[],this.elementLinks.set(t,r)),r.push(e),e.sourceId!==e.targetId){let t=this.elementLinks.get(n);t||(t=[],this.elementLinks.set(n,t)),t.push(e)}e.events.onAny(this.onLinkEvent),this.links.push(e.id,e),this.incrementCellsVersion(),this.source.trigger("changeCells",{updateAll:!1,changedLinks:[e]})}onLinkEvent=e=>{this.source.trigger("linkEvent",{data:e})};removeLink(e,t){const n=this.links.delete(e);n&&(n.events.offAny(this.onLinkEvent),this.removeLinkReferences(n),this.incrementCellsVersion(),t&&t.silent||this.source.trigger("changeCells",{updateAll:!1,changedLinks:[n]}))}removeLinkReferences(e){const t=this.getElement(e.sourceId);if(t){const n=this.elementLinks.get(t);n&&(ma(n,e),0===n.length&&this.elementLinks.delete(t))}const n=this.getElement(e.targetId);if(n){const t=this.elementLinks.get(n);t&&(ma(t,e),0===t.length&&this.elementLinks.delete(n))}}incrementCellsVersion(){this.cellsVersion=this.cellsVersion+1,this.cellsVersion>=Number.MAX_SAFE_INTEGER&&(this.cellsVersion=1)}get linkVisibility(){return this.linkTypeVisibility}getLinkVisibility(e){return this.linkTypeVisibility.get(e)??"visible"}setLinkVisibility(e,t){const n=this.getLinkVisibility(e);t!==n&&(this.linkTypeVisibility.set(e,t),this.source.trigger("changeLinkVisibility",{source:e,previous:n}))}};function ma(e,t){const n=e.indexOf(t);n>=0&&e.splice(n,1)}var ba=Symbol("DiagramModel.getGraph"),wa=class{source=new yr;events=this.source;_language="en";_selection=[];graph=new va;graphListener=new _r;history;constructor(e){const{history:t}=e;this.history=t}[ba](){return this.graph}get language(){return this._language}setLanguage(e){if(!e)throw new Error("Reactodia: cannot set empty language");const t=this._language;t!==e&&(this._language=e,this.source.trigger("changeLanguage",{source:this,previous:t}))}get selection(){return this._selection}setSelection(e){const t=this._selection;if(t===e)return;const n=Array.from(e),r=n.filter((e=>e instanceof ho));this.bringElements(r,"front"),this._selection=n,this.source.trigger("changeSelection",{source:this,previous:t})}get factory(){return this.getTermFactory()}get cellsVersion(){return this.graph.getCellsVersion()}get elements(){return this.graph.getElements()}get links(){return this.graph.getLinks()}getTermFactory(){return Bt}getElement(e){return this.graph.getElement(e)}getElementLinks(e){return this.graph.getElementLinks(e)}getLink(e){return this.graph.getLink(e)}findLink(e,t,n){for(const r of this.graph.iterateLinks(t,n,e))return r}sourceOf(e){return this.getElement(e.sourceId)}targetOf(e){return this.getElement(e.targetId)}getLinkVisibility(e){return this.graph.getLinkVisibility(e)}setLinkVisibility(e,t){this.graph.setLinkVisibility(e,t)}resetGraph(){this.graphListener&&(this.graphListener.stopListening(),this.graphListener=new _r),this.graph=new va,this._selection=[],this.source.trigger("discardGraph",{source:this})}subscribeGraph(){this.graphListener.listen(this.graph.events,"changeCells",(e=>{this.triggerChangeCells(e)})),this.graphListener.listen(this.graph.events,"elementEvent",(e=>{this.triggerElementEvent(e)})),this.graphListener.listen(this.graph.events,"linkEvent",(e=>{this.triggerLinkEvent(e)})),this.graphListener.listen(this.graph.events,"changeLinkVisibility",(e=>{this.source.trigger("changeLinkVisibility",e)})),this.triggerChangeCells({updateAll:!0})}triggerChangeCells(e){if(this.selection.length>0){const e=this.selection.filter((e=>e instanceof ho?this.getElement(e.id):e instanceof po&&this.getLink(e.id)));e.length<this.selection.length&&this.setSelection(e)}this.source.trigger("changeCells",e)}triggerElementEvent(e){this.source.trigger("elementEvent",e)}triggerLinkEvent(e){this.source.trigger("linkEvent",e)}reorderElements(e){this.graph.reorderElements(e),this.source.trigger("changeCellOrder",{source:this})}bringElements(e,t){0!==e.length&&this.reorderElements(function(e,t,n){const r=new Map,i=("start"===n?-1:1)*e.length;e.forEach(((e,t)=>{r.set(e,t)}));for(const e of t)r.set(e,i+r.get(e));return(e,t)=>{const n=r.get(e),i=r.get(t);return n>i?1:n<i?-1:0}}(this.elements,e,"front"===t?"end":"start"))}addElement(e){this.history.execute(new ya(this,e,[]))}removeElement(e){const t=this.getElement(e);t&&this.history.execute(new _a(this,t))}addLink(e){this.history.execute(new ka(this,e))}removeLink(e){const t=this.graph.getLink(e);t&&this.history.execute(new xa(this,t))}},ya=class{model;element;connectedLinks;constructor(e,t,n){this.model=e,this.element=t,this.connectedLinks=n}get title(){return Rt.text("data_diagram_model.add_element.command")}invoke(){const{model:e,element:t,connectedLinks:n}=this,r=e[ba]();r.addElement(t);for(const e of n)r.getLink(e.id)||r.addLink(e);return new _a(e,t)}},_a=class{model;element;constructor(e,t){this.model=e,this.element=t}get title(){return Rt.text("data_diagram_model.remove_element.command")}invoke(){const{model:e,element:t}=this,n=e[ba](),r=[...n.getElementLinks(t)];return n.removeElement(t.id),new ya(e,t,r)}},ka=class{model;link;constructor(e,t){this.model=e,this.link=t}get title(){return Rt.text("data_diagram_model.add_link.command")}invoke(){const{model:e,link:t}=this;return e[ba]().addLink(t),new xa(e,t)}},xa=class{model;link;constructor(e,t){this.model=e,this.link=t}get title(){return Rt.text("data_diagram_model.remove_link.command")}invoke(){const{model:e,link:t}=this;return e[ba]().removeLink(t.id),new ka(e,t)}},Sa=class e extends ho{_data;constructor(e){super(e),this._data=e.data}static placeholderData(e){return{id:e,types:[],properties:{[Sr]:[]}}}static isPlaceholderData(e){return Object.prototype.hasOwnProperty.call(e.properties,"urn:reactodia:isPlaceholder")&&void 0!==e.properties["urn:reactodia:isPlaceholder"]}get entitySource(){return this.source}get iri(){return this._data.id}get data(){return this._data}setData(e){const t=this._data;t!==e&&(this._data=e,this.entitySource.trigger("changeData",{source:this,previous:t}),this.entitySource.trigger("requestedRedraw",{source:this,level:"template"}))}static fromJSONType="Element";static fromJSON(t,n){const{"@id":r,iri:i,position:o,isExpanded:a,elementState:s}=t;if(i)return new e({id:r,data:n.getInitialData(i)??e.placeholderData(i),position:o,expanded:a,elementState:n.mapTemplateState(Mr.fromJSON(s))})}toJSON(){return{"@type":"Element","@id":this.id,iri:this.iri,position:this.position,elementState:this.elementState.toJSON()}}},Ca=class e extends ho{_items;_itemIris=new Set;constructor(e){super(e),this._items=e.items??[],this.updateItemIris()}get entitySource(){return this.source}get items(){return this._items}setItems(e){const t=this._items;t!==e&&(this._items=e,this.updateItemIris(),this.entitySource.trigger("changeItems",{source:this,previous:t}),this.entitySource.trigger("requestedRedraw",{source:this,level:"template"}))}get itemIris(){return this._itemIris}updateItemIris(){this._itemIris.clear();for(const e of this._items)this._itemIris.add(e.data.id)}static fromJSONType="ElementGroup";static fromJSON(t,n){const{"@id":r,items:i,position:o,elementState:a}=t,s=[];for(const e of i){const t=n.getInitialData(e.iri);s.push({data:t??Sa.placeholderData(e.iri),elementState:n.mapTemplateState(Mr.fromJSON(e.elementState))})}return new e({id:r,items:s,position:o,elementState:Mr.fromJSON(a)})}toJSON(){return{"@type":"ElementGroup","@id":this.id,items:this.items.map((e=>({"@type":"ElementItem",iri:e.data.id,elementState:e.elementState?.toJSON()}))),position:this.position,elementState:this.elementState.toJSON()}}};function La(e,t){return Wi.create(Rt.text("commands.set_entity_group_items.title"),(()=>{const n=e.items;return e.setItems(t),La(e,n)}))}function*Ma(e){if(e instanceof Sa)yield e.data;else if(e instanceof Ca)for(const t of e.items)yield t.data}var Ea=class e extends po{_data;constructor(e){super(e),this._data=e.data}get relationSource(){return this.source}getTypeId(){return this._data.linkTypeId}get data(){return this._data}setData(e){const t=this._data;t!==e&&(this._data=e,this.relationSource.trigger("changeData",{source:this,previous:t}),this.relationSource.trigger("requestedRedraw",{source:this}))}withDirection(t){if(t.sourceId!==this.data.sourceId&&t.sourceId!==this.data.targetId)throw new Error("New link source IRI is unrelated to original link");if(t.targetId!==this.data.sourceId&&t.targetId!==this.data.targetId)throw new Error("New link target IRI is unrelated to original link");return new e({sourceId:t.sourceId===this.data.sourceId?this.sourceId:this.targetId,targetId:t.targetId===this.data.targetId?this.targetId:this.sourceId,data:t})}static fromJSONType="Link";static fromJSON(t,n){const{"@id":r,property:i,vertices:o,linkState:a}=t,{source:s,target:l}=n,c=t.sourceIri??(s instanceof Sa?s.data.id:void 0),d=t.targetIri??(l instanceof Sa?l.data.id:void 0);if(c&&d){const t={linkTypeId:i,sourceId:c,targetId:d,properties:{}},u=n.getInitialData(t);return new e({id:r,sourceId:s.id,targetId:l.id,data:u??t,vertices:o,linkState:n.mapTemplateState(Mr.fromJSON(a))})}}toJSON(){return{"@type":"Link","@id":this.id,property:this.typeId,source:{"@id":this.sourceId},target:{"@id":this.targetId},sourceIri:this.data.sourceId,targetIri:this.data.targetId,vertices:[...this.vertices],linkState:this.linkState.toJSON()}}};function za(e,t){return Wi.create(Rt.text("commands.set_relation_data.title"),(()=>{const n=e.data;return e.setData(t),za(e,n)}))}var $a=class e extends po{_typeId;_items;_itemKeys=new W(Kt,Zt);_sources=new Set;_targets=new Set;constructor(e){super(e),this._typeId=e.typeId,this._items=e.items??[],this.updateItemKeys()}get relationSource(){return this.source}getTypeId(){return this._typeId}get items(){return this._items}setItems(e){for(const t of e)if(t.data.linkTypeId!==this._typeId)throw new Error("RelationGroup should have only items with same type IRI");const t=this._items;t!==e&&(this._items=e,this.updateItemKeys(),this.relationSource.trigger("changeItems",{source:this,previous:t}),this.relationSource.trigger("requestedRedraw",{source:this}))}get itemKeys(){return this._itemKeys}get itemSources(){return this._sources}get itemTargets(){return this._targets}updateItemKeys(){this._itemKeys.clear(),this._sources.clear(),this._targets.clear();for(const e of this._items)this._itemKeys.add(e.data),this._sources.add(e.data.sourceId),this._targets.add(e.data.targetId)}static fromJSONType="LinkGroup";static fromJSON(t,n){const{"@id":r,property:i,vertices:o,linkState:a}=t,{source:s,target:l}=n,c=[];for(const e of t.items){const r={linkTypeId:t.property,sourceId:e.sourceIri,targetId:e.targetIri,properties:{}},i=n.getInitialData(r);c.push({data:i??r,linkState:n.mapTemplateState(Mr.fromJSON(e.linkState))})}return new e({id:r,typeId:i,sourceId:s.id,targetId:l.id,items:c,vertices:o,linkState:n.mapTemplateState(Mr.fromJSON(a)).set(vr.LayoutOnly,void 0)})}toJSON(){return{"@type":"LinkGroup","@id":this.id,property:this.typeId,source:{"@id":this.sourceId},target:{"@id":this.targetId},items:this.items.map((e=>({"@type":"LinkItem",sourceIri:e.data.sourceId,targetIri:e.data.targetId,linkState:e.linkState?.toJSON()}))),vertices:[...this.vertices],linkState:this.linkState.toJSON()}}};function Ta(e,t){return Wi.create(Rt.text("commands.set_relation_group_items.title"),(()=>{const n=e.items;return e.setItems(t),Ta(e,n)}))}function*Na(e){if(e instanceof Ea)yield e.data;else if(e instanceof $a)for(const t of e.items)yield t.data}var Aa=class{source=new yr;events=this.source;id;_data;constructor(e){const{id:t,data:n}=e;this.id=t,this.setData(n)}get data(){return this._data}setData(e){if(e&&e.id!==this.id)throw new Error("ElementTypeModel.id does not match ElementType.id");const t=this._data;t!==e&&(this._data=e,this.source.trigger("changeData",{source:this,previous:t}))}},Ia=class{source=new yr;events=this.source;id;_data;constructor(e){const{id:t,data:n}=e;this.id=t,this.setData(n)}get data(){return this._data}setData(e){if(e&&e.id!==this.id)throw new Error("PropertyTypeModel.id does not match PropertyType.id");const t=this._data;t!==e&&(this._data=e,this.source.trigger("changeData",{source:this,previous:t}))}},Pa=class{source=new yr;events=this.source;id;_data;constructor(e){const{id:t,data:n}=e;this.id=t,this.setData(n)}get data(){return this._data}setData(e){if(e&&e.id!==this.id)throw new Error("LinkTypeModel.id does not match LinkType.id");const t=this._data;t!==e&&(this._data=e,this.source.trigger("changeData",{source:this,previous:t}))}};function Va(e,t,n){const r=Wi.create(Rt.text("commands.change_entity.title"),(()=>{const i=t,o=n.id,a=new Map,s=new Map,l=new Map,c=new Map,d=t=>{for(const n of e.getElementLinks(t))if(n instanceof Ea)l.set(n,n.data),n.setData(Ha(n.data,i,o));else if(n instanceof $a&&(n.itemSources.has(i)||n.itemTargets.has(i))){c.set(n,n.items);const e=n.items.map((e=>({...e,data:Ha(e.data,i,o)})));n.setItems(e)}};for(const r of e.elements)if(r instanceof Sa)r.iri===t&&(a.set(r,r.data),r.setData(n),d(r));else if(r instanceof Ca&&r.itemIris.has(t)){s.set(r,r.items);const e=r.items.map((e=>e.data.id===t?{...e,data:n}:e));r.setItems(e),d(r)}return Wi.create(Rt.text("commands.change_entity.title"),(()=>{for(const[e,t]of a)e.setData(t);for(const[e,t]of s)e.setItems(t);for(const[e,t]of l)e.setData(t);for(const[e,t]of c)e.setItems(t);return r}))}));return r}function Ha(e,t,n){let r=e;return r.sourceId===t&&(r={...r,sourceId:n}),r.targetId===t&&(r={...r,targetId:n}),r}function Ra(e,t,n){if(!Zt(t,n))throw new Error("Cannot change typeId, sourceId or targetId when changing link data");return Wi.create(Rt.text("commands.change_relation.title"),(()=>{for(const r of e.links)r instanceof Ea&&Zt(r.data,t)&&r.setData(n);return Ra(e,n,t)}))}var Oa=class{graph;dataGraph;dataProvider;source=new yr;events=this.source;cancellation=new AbortController;_operations=[];_failReasons=new Map;elementTypeQueue=new xr((e=>{const t={type:"elementType",targets:new Set(e)},n=this.dataProvider.elementTypes({classIds:e,signal:this.signal}).then(this.onElementTypesLoaded);this.addOperation(t,n)}));linkTypeQueue=new xr((e=>{const t={type:"linkType",targets:new Set(e)},n=this.dataProvider.linkTypes({linkTypeIds:e,signal:this.signal}).then(this.onLinkTypesLoaded);this.addOperation(t,n)}));propertyTypeQueue=new xr((e=>{const t={type:"propertyType",targets:new Set(e)},n=this.dataProvider.propertyTypes({propertyIds:e,signal:this.signal}).then(this.onPropertyTypesLoaded);this.addOperation(t,n)}));constructor(e,t,n){this.graph=e,this.dataGraph=t,this.dataProvider=n}get signal(){return this.cancellation.signal}dispose(){this.cancellation.abort()}get operations(){return this._operations}getFailReason(e,t){return this._failReasons.get(e)?.get(t)}addOperation(e,t){const n=this._operations,r=[...n,e];t.then((()=>this.onOperationComplete(e)),(t=>this.onOperationComplete(e,t))),this._operations=r,this.source.trigger("changeOperations",{previous:n})}onOperationComplete(e,t){const n=this._operations,r=n.indexOf(e);if(r>=0){const e=[...n];e.splice(r,1),this._operations=e}switch(e.type){case"element":case"elementType":case"linkType":case"propertyType":{const n=this.ensureFailReasons(e.type);for(const r of e.targets)n.set(r,t)}}(this._operations!==n||t)&&this.source.trigger("changeOperations",{previous:n,fail:t?{operation:e,error:t}:void 0})}ensureFailReasons(e){let t=this._failReasons.get(e);return t||(t=new Map,this._failReasons.set(e,t)),t}fetchElementData(e){if(0===e.size)return Promise.resolve();const t={type:"element",targets:e},n=this.dataProvider.elements({elementIds:Array.from(e),signal:this.signal}).then((t=>this.onElementInfoLoaded(e,t)));return this.addOperation(t,n),n}onElementInfoLoaded(e,t){for(const n of this.graph.getElements())if(n instanceof Sa){const r=t.get(n.iri);r?n.setData(r):e.has(n.iri)&&n.setData(Da(n.data))}else if(n instanceof Ca){let r=!1;for(const t of n.items)e.has(t.data.id)&&(r=!0);if(r){const e=n.items.map((e=>{const n=t.get(e.data.id)??Da(e.data);return n===e.data?e:{...e,data:n}}));n.setItems(e)}}}fetchLinks(e,t,n){const r=this.dataProvider.links({primary:e,secondary:t,linkTypeIds:n});return this.addOperation({type:"link"},r),r}fetchElementType(e){this.elementTypeQueue.push(e.id)}onElementTypesLoaded=e=>{for(const t of e.values()){const e=this.dataGraph.getElementType(t.id);e&&e.setData(t)}};fetchLinkType(e){this.linkTypeQueue.push(e.id)}onLinkTypesLoaded=e=>{for(const t of e.values()){const e=this.dataGraph.getLinkType(t.id);e&&e.setData(t)}};fetchPropertyType(e){this.propertyTypeQueue.push(e.id)}onPropertyTypesLoaded=e=>{for(const t of e.values()){const e=this.dataGraph.getPropertyType(t.id);e&&e.setData(t)}}};function Da(e){if(Sa.isPlaceholderData(e)){const{[Sr]:t,...n}=e.properties;return{...e,properties:n}}return e}function Ba(){return{"@context":"https://ontodia.org/context/v1.json","@type":"Diagram",layoutData:{"@type":"Layout",elements:[],links:[]},linkTypeOptions:[]}}function ja(e,t){const n=[];for(const t of e)if(Ua(t)){const e=t.toJSON();qa(e)&&n.push(e)}const r=[];for(const e of t)if(Ua(e)){const t=e.toJSON();qa(t)&&r.push(t)}return{"@type":"Layout",elements:n,links:r}}function Fa(e,t){return e.set(vr.LayoutOnly,!!t||void 0)}function Ua(e){return Boolean("function"==typeof e.toJSON)}function qa(e){return"object"==typeof e&&e&&"string"==typeof e["@type"]}var Wa,Ga=class{source=new yr;events=this.source;classesById=new Map;propertiesById=new Map;linkTypes=new Map;getLinkType(e){return this.linkTypes.get(e)}addLinkType(e){if(this.getLinkType(e.id))throw new Error(`Link type already exists: ${e.id}`);e.events.onAny(this.onLinkTypeEvent),this.linkTypes.set(e.id,e)}onLinkTypeEvent=e=>{this.source.trigger("linkTypeEvent",{data:e})};getPropertyType(e){return this.propertiesById.get(e)}addPropertyType(e){if(this.getPropertyType(e.id))throw new Error(`Property type already exists: ${e.id}`);e.events.onAny(this.onPropertyTypeEvent),this.propertiesById.set(e.id,e)}onPropertyTypeEvent=e=>{this.source.trigger("propertyTypeEvent",{data:e})};getElementType(e){return this.classesById.get(e)}getElementTypes(){const e=[];return this.classesById.forEach((t=>e.push(t))),e}addElementType(e){if(this.getElementType(e.id))throw new Error(`Element type already exists: ${e.id}`);e.events.onAny(this.onElementTypeEvent),this.classesById.set(e.id,e)}onElementTypeEvent=e=>{this.source.trigger("elementTypeEvent",{data:e})}},Za=class extends wa{translation;dataGraph=new Ga;loadingScope;_dataProvider;_locale;fetcher;discardingTask=Promise.resolve();constructor(e){super(e),this.translation=e.translation,this._dataProvider=new Tr,this.fetcher=new Oa(this.graph,this.dataGraph,this._dataProvider),this._locale=new tn({model:this,translation:this.translation}),this.subscribeGraph()}get extendedSource(){return this.source}get dataProvider(){return this._dataProvider}getTermFactory(){return this._dataProvider.factory}get locale(){return this._locale}get operations(){return this.fetcher.operations}getOperationFailReason(e,t){return this.fetcher.getFailReason(e,t)}resetGraph(){this.dataGraph=new Ga,super.resetGraph(),this.loadingScope?.abort(),this.fetcher.dispose()}subscribeGraph(){this.graphListener.listen(this.dataGraph.events,"elementTypeEvent",(e=>{this.extendedSource.trigger("elementTypeEvent",e)})),this.graphListener.listen(this.dataGraph.events,"linkTypeEvent",(e=>{this.extendedSource.trigger("linkTypeEvent",e)})),this.graphListener.listen(this.dataGraph.events,"propertyTypeEvent",(e=>{this.extendedSource.trigger("propertyTypeEvent",e)})),super.subscribeGraph()}setDataProvider(e){this._dataProvider=e,this.fetcher=new Oa(this.graph,this.dataGraph,e),this.graphListener.listen(this.fetcher.events,"changeOperations",(e=>{this.extendedSource.trigger("changeOperations",e)}))}async createNewDiagram(e){const{dataProvider:t,signal:n}=e;return this.importLayout({dataProvider:t,signal:n})}async importLayout(e){const{dataProvider:t,locale:n,diagram:r=Ba(),elementCellTypes:i=[Sa,Ca,ha],linkCellTypes:o=[Ea,$a,fa],preloadedElements:a,preloadedLinks:s,validateLinks:l=!1,hideUnusedLinkTypes:c=!1,signal:d}=e;await this.discardingTask,this.resetGraph(),this.setDataProvider(t),this._locale=n??new tn({model:this,translation:this.translation});const u=new AbortController;this.loadingScope=u;const h=()=>u.abort();this.extendedSource.trigger("loadingStart",{source:this});const f=this.loadingScope.signal;try{if(d?.addEventListener("abort",h),f.throwIfAborted(),this.setLinkSettings(r.linkTypeOptions??[]),this.createGraphElements({diagram:r,elementCellTypes:i,linkCellTypes:o,preloadedElements:a,preloadedLinks:s,markLinksAsLayoutOnly:l}),c){const e=await this.dataProvider.knownLinkTypes({signal:f});f.throwIfAborted();const t=this.initLinkTypes(e);this.hideUnusedLinkTypes(t)}this.subscribeGraph();const t=[];for(const e of this.graph.getElements())for(const n of Ma(e))a&&a.has(n.id)||t.push(n.id);const n=this.requestElementData(t),u=e.validateLinks?this.requestLinks():Promise.resolve();await Promise.all([n,u]),this.history.reset(),this.extendedSource.trigger("loadingSuccess",{source:this})}catch(e){throw this.extendedSource.trigger("loadingError",{source:this,error:e}),new Error("Reactodia: failed to import a layout",{cause:e})}finally{d?.removeEventListener("abort",h),this.loadingScope?.abort(),this.loadingScope=void 0}}discardLayout(){const e=this.discardingTask;this.discardingTask=Promise.resolve().then((async()=>{await e,this.resetGraph(),this.setDataProvider(new Tr),this.extendedSource.trigger("loadingStart",{source:this}),this.subscribeGraph(),this.history.reset(),this.extendedSource.trigger("loadingSuccess",{source:this})})).catch((e=>{console.warn("Error while discarding a layout",e)}))}exportLayout(){const e=new Set(this.graph.getLinks().filter((e=>e instanceof Ea||e instanceof $a)).map((e=>e.typeId))),t=new Map;for(const n of e)t.set(n,this.getLinkVisibility(n));return function(e){const{elements:t,links:n,linkTypeVisibility:r}=e;let i;if(r){i=[];for(const[e,t]of r)"visible"!==t&&"urn:reactodia:newLink"!==e&&i.push({"@type":"LinkTypeOptions",property:e,visible:"hidden"!==t,showLabel:"withoutLabel"!==t})}return{...Ba(),layoutData:ja(t,n),linkTypeOptions:i}}({elements:this.graph.getElements(),links:this.graph.getLinks(),linkTypeVisibility:t})}initLinkTypes(e){const t=[];for(const n of e){const e=new Pa({id:n.id,data:n});this.dataGraph.addLinkType(e),t.push(e)}return t}setLinkSettings(e){for(const t of e){const{visible:e=!0,showLabel:n=!0}=t;this.setLinkVisibility(t.property,e&&n?"visible":e&&!n?"withoutLabel":"hidden")}}createGraphElements(e){const{diagram:t,elementCellTypes:n,linkCellTypes:r,preloadedElements:i,preloadedLinks:o,markLinksAsLayoutOnly:a}=e,{elements:s,links:l,linkTypeVisibility:c}=function(e,t){const{layoutData:n,linkTypeOptions:r}=e,i=new Map;if(r)for(const e of r){const{visible:t=!0,showLabel:n=!0}=e;i.set(e.property,t&&n?"visible":t&&!n?"withoutLabel":"hidden")}const{elements:o,links:a}=function(e,t){const{preloadedElements:n,preloadedLinks:r,markLinksAsLayoutOnly:i=!1}=t,o=new Map;for(const e of t.elementCellTypes)o.set(e.fromJSONType,e);const a={getInitialData:e=>n?.get(e),mapTemplateState:e=>e},s=new Map;for(const e of t.linkCellTypes)s.set(e.fromJSONType,e);const l=e=>r?.get(e),c=e=>Fa(e,i),d=new Map,u=[];for(const t of e.elements){const e=o.get(t["@type"]);if(e){const n=e.fromJSON(t,a);n&&d.set(n.id,n)}}for(const t of e.links){const{source:e,target:n}=t,r=d.get(e["@id"]),i=d.get(n["@id"]);if(!r||!i)continue;const o=s.get(t["@type"]);if(o){const e=o.fromJSON(t,{source:r,target:i,getInitialData:l,mapTemplateState:c});e&&u.push(e)}}return{elements:Array.from(d.values()),links:u}}(n,t);return{elements:o,links:a,linkTypeVisibility:i}}(t,{elementCellTypes:n,linkCellTypes:r,preloadedElements:i,preloadedLinks:o,markLinksAsLayoutOnly:a}),d=this.history.startBatch(Rt.text("data_diagram_model.import_layout.command"));for(const[e,t]of c)this.setLinkVisibility(e,t);for(const e of l)(e instanceof Ea||e instanceof $a)&&this.createLinkType(e.typeId);for(const e of s)this.addElement(e);for(const e of l)this.addLink(e);d.store()}hideUnusedLinkTypes(e){const t=new Set;for(const e of this.graph.getLinks())(e instanceof Ea||e instanceof $a)&&t.add(e.typeId);for(const n of e)t.has(n.id)||this.setLinkVisibility(n.id,"hidden")}async requestData(){const e=new Set;for(const t of this.elements)for(const n of Ma(t))Sa.isPlaceholderData(n)&&e.add(n.id);const t=Array.from(e);await Promise.all([this.fetcher.fetchElementData(e),this.requestLinks({addedElements:t})])}requestElementData(e){return this.fetcher.fetchElementData(new Set(e))}requestLinks(e={}){const{addedElements:t,linkTypes:n}=e,r=[];for(const e of this.graph.getElements())for(const t of Ma(e))r.push(t.id);const i=t??r;return 0===r.length||0===i.length?Promise.resolve():this.fetcher.fetchLinks(r,i,n).then((e=>this.onLinkInfoLoaded(e)))}requestLinksOfType(e){return this.requestLinks({linkTypes:e})}createElement(e){const t="string"==typeof e?e:e.id,n=this.elements.filter((e=>e instanceof Sa&&e.iri===t));if(n.length>0)return n[0];let r="string"==typeof e?Sa.placeholderData(t):e;r={...r,id:r.id};const i=new Sa({data:r});return this.addElement(i),i}onLinkInfoLoaded(e){let t;const n=()=>{t=!1},r=this.history.startBatch();for(const r of e)t=!0,this.extendedSource.trigger("createLoadedLink",{source:this,model:r,cancel:n}),t&&this.createLinks(r);r.discard()}createLinks(e){const t=this.graph.getElements().filter((t=>t instanceof Sa&&t.iri===e.sourceId||t instanceof Ca&&t.itemIris.has(e.sourceId))),n=this.graph.getElements().filter((t=>t instanceof Sa&&t.iri===e.targetId||t instanceof Ca&&t.itemIris.has(e.targetId))),r=this.history.startBatch(Rt.text("data_diagram_model.create_links.command")),i=[];for(const r of t)for(const t of n){const n=this.createRelation(r,t,e);i.push(n)}return r.store(),i}createRelation(e,t,n){const r=Array.from(this.graph.iterateLinks(e.id,t.id,n.linkTypeId));for(const e of r){if(e instanceof Ea&&Zt(e.data,n))return this.history.execute(lo(e,Fa(e.linkState,!1))),this.history.execute(za(e,n)),e;if(e instanceof $a&&e.itemKeys.has(n)){const t=e.items.map((e=>Zt(e.data,n)?{...e,data:n,linkState:Fa(e.linkState??Mr.empty,!1)}:e));return this.history.execute(Ta(e,t)),e}}for(const i of r)if(i.typeId==i.typeId){if(i instanceof Ea){const r=new $a({sourceId:e.id,targetId:t.id,typeId:n.linkTypeId,items:[{data:i.data,linkState:i.linkState},{data:n}]});return this.removeLink(i.id),this.addLink(r),r}if(i instanceof $a){const e=[...i.items,{data:n}];return this.history.execute(Ta(i,e)),i}}const i=new Ea({sourceId:e.id,targetId:t.id,data:n});return this.addLink(i),i}getElementType(e){return this.dataGraph.getElementType(e)}createElementType(e){const t=this.dataGraph.getElementType(e);if(t)return t;const n=new Aa({id:e});return this.dataGraph.addElementType(n),this.fetcher.fetchElementType(n),n}getLinkType(e){return this.dataGraph.getLinkType(e)}createLinkType(e){const t=this.dataGraph.getLinkType(e);if(t)return t;const n=new Pa({id:e});return this.dataGraph.addLinkType(n),this.fetcher.fetchLinkType(n),n}getPropertyType(e){return this.dataGraph.getPropertyType(e)}createPropertyType(e){const t=this.dataGraph.getPropertyType(e);if(t)return t;const n=new Ia({id:e});return this.dataGraph.addPropertyType(n),this.fetcher.fetchPropertyType(n),n}group(e){const t=this.history.startBatch(Rt.text("data_diagram_model.group_entities.command")),n=new Set;for(const t of e)n.add(t.data.id);const r=[],i=new Set;for(const t of e){r.push({data:t.data,elementState:t.elementState});for(const e of this.getElementLinks(t))i.add(e)}for(const e of i)this.removeLink(e.id);for(const t of e)this.removeElement(t.id);const o=Xi(e,[],{getElementSize:()=>{}}),a=new Ca({items:r,position:Ni.center(o)});return this.addElement(a),this.recreateLinks(i),t.store(),a}ungroupAll(e){const t=this.history.startBatch(Rt.text("data_diagram_model.ungroup_entities.command")),n=[],r=new Set;for(const t of e){for(const e of this.getElementLinks(t))r.add(e);this.removeElement(t.id);for(const e of t.items){const r=new Sa({data:e.data,position:t.position,elementState:e.elementState});this.addElement(r),n.push(r)}}return this.recreateLinks(r),t.store(),n}ungroupSome(e,t){const n=e.items.filter((e=>!t.has(e.data.id)));if(n.length<=1)return this.ungroupAll([e]);const r=this.history.startBatch(Rt.text("data_diagram_model.ungroup_entities.command")),i=new Set;for(const n of this.getElementLinks(e))n instanceof Ea?(t.has(n.data.sourceId)||t.has(n.data.targetId))&&i.add(n):n instanceof $a&&n.items.some((e=>t.has(e.data.sourceId)||t.has(e.data.targetId)))&&i.add(n);for(const e of i)this.removeLink(e.id);const o=[];for(const n of e.items)if(t.has(n.data.id)){const t=new Sa({data:n.data,position:e.position,elementState:n.elementState});this.addElement(t),o.push(t)}return r.history.execute(La(e,n)),this.recreateLinks(i),r.store(),o}regroupLinks(e){const t=this.history.startBatch(Rt.text("data_diagram_model.regroup_relations.command"));for(const t of e)this.removeLink(t.id);this.recreateLinks(new Set(e)),t.store()}recreateLinks(e){for(const t of e)if(t instanceof Ea)for(const e of this.createLinks(t.data))e instanceof Ea&&this.history.execute(lo(e,t.linkState));else if(t instanceof $a)for(const{data:e}of t.items)this.createLinks(e)}};function Ka(e,t){return Wi.effect(Rt.text("data_diagram_model.request_entities.command"),(()=>{e.requestElementData(t)}))}function Xa(e,t={}){return Wi.effect(Rt.text("data_diagram_model.request_relations.command"),(()=>{e.requestLinks(t)}))}function Qa(e){const t=new Set;for(const n of e.elements)for(const e of Ma(n))t.add(e.id);return t}async function Ya(e,t,n,r,i,o){let a;try{if(a=await e,null===a)return}catch(e){a={items:[{type:"element",target:r.target.id,severity:"error",message:o.text("editor_controller.validate_entity_failed.message"),errorCause:e}]}}const s=[],l=new q(Kt,Zt);r.outboundLinks.forEach((e=>l.set(e,[])));for(const e of a.items)"element"===e.type&&e.target===r.target.id?s.push(e):"link"===e.type&&l.has(e.target)&&l.get(e.target).push(e);let c=i.validationState;c.elements.get(r.target.id)===t&&(c=Wa.setElementItems(c,r.target.id,s)),l.forEach(((e,t)=>{c.links.get(t)===n&&(c=Wa.setLinkItems(c,t,e))})),i.setValidationState(c)}!function(e){function t(){return{elements:new Map,links:new q(Kt,Zt)}}e.empty=t(),e.emptyElement={loading:!1,items:[]},e.emptyLink={loading:!1,items:[]},e.createMutable=t,e.setElementItems=function(e,t,n){const r=new Map(e.elements);return n.length>0?r.set(t,{loading:!1,items:n}):r.delete(t),{...e,elements:r}},e.setLinkItems=function(e,t,n){const r=e.links.clone();return n.length>0?r.set(t,{loading:!1,items:n}):r.delete(t),{...e,links:r}}}(Wa||(Wa={}));var Ja=new Map([["info",0],["warning",1],["error",2]]);function es(e){let t="info",n=Ja.get(t)??-1;for(const{severity:r}of e){const e=Ja.get(r)??-1;e>n&&(n=e,t=r)}return t}var ts=class{source=new yr;events=this.source;model;translation;getDisposeSignal;_inAuthoringMode=!1;_metadataProvider;_validationProvider;_authoringState=sa.empty;_validationState=Wa.empty;_temporaryState=la.empty;constructor(e){const{model:t,translation:n,metadataProvider:r,validationProvider:i,getDisposeSignal:o}=e;this.model=t,this.translation=n,this.getDisposeSignal=o,this._metadataProvider=r,this._validationProvider=i;const a=new _r;a.listen(this.events,"changeValidationState",(e=>{for(const t of this.model.elements){if(!(t instanceof Sa))continue;const n=e.previous.elements.get(t.iri);this.validationState.elements.get(t.iri)!==n&&t.redraw()}})),a.listen(this.events,"changeAuthoringState",(e=>{this.validateChangedFrom(e.previous)})),a.listen(t.events,"changeCells",(e=>{this.validateChangedCells(e)}))}get inAuthoringMode(){return this._inAuthoringMode&&Boolean(this._metadataProvider)}setAuthoringMode(e){const t=this._inAuthoringMode,n=e&&Boolean(this._metadataProvider);n!==t&&(this._inAuthoringMode=n,this.source.trigger("changeMode",{source:this,previous:t}))}get metadataProvider(){return this._metadataProvider}get validationProvider(){return this._validationProvider}get authoringState(){return this._authoringState}setAuthoringState(e){this._authoringState!==e&&this.model.history.execute(this.updateAuthoringState(e))}updateAuthoringState(e){const t=this._authoringState;return Wi.create(Rt.text("editor_controller.set_authoring_state.command"),(()=>(this._authoringState=e,this.source.trigger("changeAuthoringState",{source:this,previous:t}),this.updateAuthoringState(t))))}get validationState(){return this._validationState}setValidationState(e){const t=this._validationState;e!==t&&(this._validationState=e,this.source.trigger("changeValidationState",{source:this,previous:t}))}get temporaryState(){return this._temporaryState}setTemporaryState(e){const t=this._temporaryState;e!==t&&(this._temporaryState=e,this.source.trigger("changeTemporaryState",{source:this,previous:t}))}validateChangedFrom(e){if(!this.validationProvider)return;const t=function(e,t,n){const r=new q(Kt,Zt);e.links.forEach(((e,t)=>r.set(t,!0))),t.links.forEach(((e,t)=>r.set(t,!0)));const i=new Set;r.forEach(((n,r)=>{t.links.get(r)!==e.links.get(r)&&i.add(r.sourceId)}));for(const r of n.elements)for(const o of Ma(r)){const a=t.elements.get(o.id),s=e.elements.get(o.id);if(a!==s&&(i.add(o.id),"entityDelete"===(a||s).type))for(const e of n.getElementLinks(r))for(const t of Na(e))t.targetId===o.id&&t.sourceId!==o.id&&i.add(t.sourceId)}return i}(e,this.authoringState,this.model);this.revalidateEntities(t)}validateChangedCells(e){if(!this.validationProvider||!this.inAuthoringMode)return;if(e.updateAll)return void this.validateChangedFrom(sa.empty);const t=this.authoringState;let n;if(e.changedElement)for(const r of Ma(e.changedElement))t.elements.has(r.id)&&(n||(n=new Set),n.add(r.id));else if(e.changedLinks)for(const r of e.changedLinks)for(const e of Na(r))t.links.has(e)&&(n||(n=new Set),n.add(e.sourceId));n&&this.revalidateEntities(n)}revalidateEntities(e){this.validationProvider&&function(e,t,n,r,i,o,a){const s=r.validationState,l=Wa.createMutable();for(const c of n.elements)for(const d of Ma(c)){if(l.elements.has(d.id))continue;const u=[];for(const e of n.getElementLinks(c))for(const t of Na(e))t.sourceId===d.id&&u.push(t);if(e.has(d.id)){const e={target:d,outboundLinks:u,state:r.authoringState,graph:n,translation:i,language:o,signal:a},s=pr(t.validate(e),a),c={loading:!0,items:[]},h={loading:!0,items:[]};l.elements.set(d.id,c),u.forEach((e=>l.links.set(e,h))),Ya(s,c,h,e,r,i)}else{l.elements.set(d.id,s.elements.get(d.id));for(const e of u)l.links.set(e,s.links.get(e))}}r.setValidationState(l)}(e,this.validationProvider,this.model,this,this.translation,this.model.language,this.getDisposeSignal())}removeSelectedElements(){const e=this.model.selection;e.length>0&&(this.model.setSelection([]),this.removeItems(e))}removeItems(e){const{model:t}=this,n=t.history.startBatch(Rt.text("editor_controller.remove_items.command")),r=new Set;for(const t of e)if(t instanceof ho){for(const e of Ma(t))r.add(e.id);this.model.removeElement(t.id)}else if(t instanceof po){for(const e of Na(t))sa.isAddedRelation(this.authoringState,e)&&this.deleteRelation(e);t instanceof Ea||t instanceof $a||this.model.removeLink(t.id)}const i=new Set;for(const e of r){const t=this.authoringState.elements.get(e);t&&this.discardChange(t),i.add(e)}if(i.size>0){const e=sa.discardAddedRelations(this.authoringState,i);this.setAuthoringState(e)}n.store()}createEntity(e,t={}){const{model:n}=this,r=n.history.startBatch(Rt.text("editor_controller.entity_add.command")),i=n.createElement(e);return t.temporary?(this.setTemporaryState(la.addEntity(this.temporaryState,i.data)),r.discard()):(this.setAuthoringState(sa.addEntity(this._authoringState,i.data)),r.store()),i}changeEntity(e,t){const{model:n}=this,r="string"==typeof e?rs(ns(n,e),e):e;if(!r)return;const i=n.history.startBatch(Rt.text("editor_controller.entity_change.command")),o=sa.changeEntity(this._authoringState,r,t),a=o.elements.get(r.id)||o.elements.get(t.id);n.history.execute(Va(n,r.id,a.data)),this.setAuthoringState(o),i.store()}deleteEntity(e){const{model:t}=this,n="string"==typeof e?rs(ns(t,e),e):e;if(!n)return;const r=this.authoringState,i=t.history.startBatch(Rt.text("editor_controller.entity_delete.command"));for(const e of ns(t,n.id))this.removeRelationsFromLinks(t.getElementLinks(e),(e=>sa.isAddedRelation(r,e)));const o=r.elements.get(n.id);o&&this.discardChange(o),this.setAuthoringState(sa.deleteEntity(r,n)),i.store()}createRelation(e,t={}){const{model:n}=this;if(n.findLink(e.typeId,e.sourceId,e.targetId))throw Error("The relation with same (source IRI, target IRI, type) already exists");const r=n.history.startBatch(Rt.text("editor_controller.relation_add.command"));return n.addLink(e),t.temporary||this.model.createLinks(e.data),function(e,t){for(const n of e.links)for(const e of Na(n))if(Zt(e,t))return!0;return!1}(n,e.data)?t.temporary?(this.setTemporaryState(la.addRelation(this.temporaryState,e.data)),r.discard()):(this.setAuthoringState(sa.addRelation(this._authoringState,e.data)),r.store()):r.discard(),e}changeRelation(e,t){const{model:n}=this,r=n.history.startBatch(Rt.text("editor_controller.relation_change.command"));if(Zt(e,t))n.history.execute(Ra(n,e,t)),this.setAuthoringState(sa.changeRelation(this._authoringState,e,t));else{let r=this._authoringState;r=sa.deleteRelation(r,e),r=sa.addRelation(r,t),sa.isAddedRelation(this._authoringState,e)&&this.removeRelationsFromLinks(n.links,(t=>Zt(t,e))),n.createLinks(t),this.setAuthoringState(r)}r.store()}moveRelationSource(e){const{model:t}=this,{link:n,newSource:r}=e;if(n.data.sourceId===r.data.id)return n;const i=t.history.startBatch(Rt.text("editor_controller.relation_move_source.command"));this.changeRelation(n.data,{...n.data,sourceId:r.iri});const o=t.findLink(n.typeId,r.id,n.targetId);return o.setVertices(n.vertices),i.store(),o}moveRelationTarget(e){const{model:t}=this,{link:n,newTarget:r}=e;if(n.data.targetId===r.data.id)return n;const i=t.history.startBatch(Rt.text("editor_controller.relation_move_target.command"));this.changeRelation(n.data,{...n.data,targetId:r.iri});const o=t.findLink(n.typeId,n.sourceId,r.id);return o.setVertices(n.vertices),i.store(),o}deleteRelation(e){const{model:t}=this,n=this.authoringState;if(sa.isDeletedRelation(n,e))return;const r=t.history.startBatch(Rt.text("editor_controller.relation_delete.command")),i=sa.deleteRelation(n,e);sa.isAddedRelation(n,e)&&this.removeRelationsFromLinks(t.links,(t=>Zt(t,e))),this.setAuthoringState(i),r.store()}removeAllTemporaryCells(){const{temporaryState:e}=this,t=[];if(e.elements.size>0)for(const n of this.model.elements)n instanceof Sa&&e.elements.has(n.iri)&&t.push(n);if(e.links.size>0)for(const n of this.model.links)n instanceof Ea&&e.links.has(n.data)&&t.push(n);t.length>0&&this.removeTemporaryCells(t)}removeTemporaryCells(e){const{temporaryState:t}=this;let n=t;const r=this.model.history.startBatch();for(const r of e)r instanceof Sa?t.elements.has(r.iri)&&(n=la.removeEntity(n,r.data),this.model.removeElement(r.id)):r instanceof Ea&&t.links.has(r.data)&&(n=la.removeRelation(n,r.data),this.model.removeLink(r.id));r.discard(),this.setTemporaryState(n)}discardChange(e){const{model:t}=this,n=sa.discard(this._authoringState,e);if(n===this._authoringState)return;const r=t.history.startBatch(Rt.text("editor_controller.discard_change.command"));switch(e.type){case"entityAdd":for(const n of ns(t,e.data.id))n instanceof Sa?t.removeElement(n.id):n instanceof Ca&&this.discardItemFromGroup(n,e.data.id);break;case"entityChange":t.history.execute(Va(t,e.data.id,e.before));break;case"relationAdd":this.removeRelationsFromLinks(t.links,(t=>Zt(t,e.data)));break;case"relationChange":t.history.execute(Ra(this.model,e.data,e.before))}this.setAuthoringState(n),r.store()}discardItemFromGroup(e,t){const n=e.items.filter((e=>e.data.id!==t));this.model.history.execute(La(e,n)),this.removeRelationsFromLinks(this.model.getElementLinks(e),(({sourceId:e,targetId:n})=>e===t||n===t)),n.length<=1&&this.model.ungroupAll([e])}removeRelationsFromLinks(e,t){const n=[],r=[];for(const i of e)if(i instanceof Ea)t(i.data)&&n.push(i);else if(i instanceof $a&&i.items.some((e=>t(e.data)))){const e=i.items.filter((e=>!t(e.data)));this.model.history.execute(Ta(i,e)),r.push(i)}for(const e of n)this.model.removeLink(e.id);this.model.regroupLinks(r)}applyAuthoringChanges(){const e=this.authoringState,t=this.model.history.startBatch(Rt.text("editor_controller.apply_authored_changes.command"));for(const n of e.links.values())"relationChange"===n.type&&t.history.execute(Ra(this.model,n.before,n.data));const n=[];for(const t of this.model.links)t instanceof Ea?sa.isDeletedRelation(e,t.data)&&n.push(t):t instanceof $a&&t.items.some((t=>sa.isDeletedRelation(e,t.data)))&&this.model.history.execute(Ta(t,t.items.filter((t=>!sa.isDeletedRelation(e,t.data)))));for(const e of n)this.model.removeLink(e.id);for(const t of e.elements.values())"entityChange"===t.type&&this.model.history.execute(Va(this.model,t.before.id,void 0===t.newIri?t.data:{...t.data,id:t.newIri}));const r=[];for(const n of this.model.elements)n instanceof Sa?sa.isDeletedEntity(e,n.iri)&&r.push(n):n instanceof Ca&&n.items.some((t=>sa.isDeletedEntity(e,t.data.id)))&&t.history.execute(La(n,n.items.filter((t=>!sa.isDeletedEntity(e,t.data.id)))));for(const e of r)this.model.removeElement(e.id);this.setAuthoringState(sa.empty),t.store()}};function ns(e,t){return e.elements.filter((e=>e instanceof Sa&&e.iri===t||e instanceof Ca&&e.itemIris.has(t)))}function rs(e,t){for(const n of e)for(const e of Ma(n))if(e.id===t)return e}async function is(e,t){const{model:n}=e,{elements:r,canvas:i}=t,o=n.history.startBatch(Rt.text("workspace.group_entities.command")),a=ro.capturePartial(r,[]),s=Xi(r,[],i.renderingState),l=Ni.center(s);await i.animateGraph((()=>{for(const e of r){const t=Di(e,i.renderingState),n={x:l.x-t.width/2,y:l.y-t.height/2},r=$i.normalize($i.subtract(e.position,l));e.setPosition($i.add(n,$i.scale(r,Math.min(t.width,t.height)/2)))}})),o.history.registerToUndo(a);const c=[...r].sort(((e,t)=>{const r=n.locale.formatEntityLabel(e.data,n.language),i=n.locale.formatEntityLabel(t.data,n.language);return r.localeCompare(i)})),d=n.group(c);i.renderingState.syncUpdate();const u=Di(d,i.renderingState);return d.setPosition({x:l.x-u.width/2,y:l.y-u.height/2}),o.store(),d}async function os(e,t){const{model:n,performLayout:r}=e,{groups:i,canvas:o}=t,a=n.history.startBatch(Rt.text("workspace.ungroup_entities.command")),s=n.ungroupAll(i);return await r({canvas:o,selectedElements:new Set(s),animate:!0,zoomToFit:!1}),a.store(),s}async function as(e,t){const{model:n}=e,{group:r,entities:i,canvas:o}=t,a=n.history.startBatch(Rt.text("workspace.ungroup_entities.command")),s=n.ungroupSome(r,i);return o.renderingState.syncUpdate(),await o.animateGraph((()=>{a.history.execute(uo({target:r,elements:s.filter((e=>i.has(e.data.id))),graph:n,sizeProvider:o.renderingState}))})),a.store(),s}var ss="reactodia-draggable-handle",ls={nw:`${ss}--dock-nw`,n:`${ss}--dock-n`,ne:`${ss}--dock-ne`,e:`${ss}--dock-e`,se:`${ss}--dock-se`,s:`${ss}--dock-s`,sw:`${ss}--dock-sw`,w:`${ss}--dock-w`};function cs(e){const{dock:t,axis:n="all",onBeginDragHandle:r,onDragHandle:i,onEndDragHandle:o,children:a,...s}=e,l=m.useRef(void 0),c=It(r),d=It(i),u=It(o);return R.jsx("div",{...s,className:un(ss,t?ls[t]:void 0,s.className),onPointerDown:e=>{if(l.current)return;if(e.button)return;const{pageX:t,pageY:r,currentTarget:i,pointerId:o}=e;e.preventDefault();const a={origin:{pageX:t,pageY:r},target:i,onPointerMove:e=>{e.preventDefault();const{origin:t}=a;d.current(e,"y"===n?0:e.pageX-t.pageX,"x"===n?0:e.pageY-t.pageY)},onPointerUp:e=>{l.current=void 0;const{target:t}=a;t.releasePointerCapture(o),t.removeEventListener("pointermove",a.onPointerMove),t.removeEventListener("pointerup",a.onPointerUp),t.removeEventListener("pointercancel",a.onPointerUp),u.current?.(e)}};i.addEventListener("pointermove",a.onPointerMove),i.addEventListener("pointerup",a.onPointerUp),i.addEventListener("pointercancel",a.onPointerUp),i.setPointerCapture(o),c.current(e)},children:a})}var ds="reactodia-dialog",us={width:300,height:320},hs={width:250,height:250},fs={width:800,height:800},ps="e",gs=40,vs=class extends m.Component{static contextType=Ei;unsubscribeFromTarget=void 0;listener=new _r;updateAll=()=>this.forceUpdate();startSize;constructor(e){super(e),this.state={}}componentDidMount(){const{canvas:e,model:t}=this.context;this.listener.listen(t.events,"changeLanguage",this.updateAll),this.listener.listen(e.events,"changeTransform",this.updateAll),this.listenToTarget(this.props.target),this.props.target&&this.focusOn()}componentDidUpdate(e){this.props.target!==e.target&&this.listenToTarget(this.props.target)}componentWillUnmount(){this.listener.stopListening(),this.listenToTarget(void 0)}listenToTarget(e){if(this.unsubscribeFromTarget&&(this.unsubscribeFromTarget(),this.unsubscribeFromTarget=void 0),e){const t=e.subscribe(this.updateAll,this.context);this.unsubscribeFromTarget=()=>{t()}}}calculatePosition(e){const{target:t,defaultSize:n=us,dock:r=ps,dockMargin:i=gs}=this.props,{canvas:o}=this.context;if(t){const a=t.getBounds(this.context);return function(e,t,n,r,i,o){let a,s;switch(n){case"w":a=e.x-o.width-r;break;case"e":a=t.x+r;break;default:a=(e.x+t.x-i.width)/2}switch(n){case"n":s=e.y-o.height-r;break;case"s":s=t.y+r;break;default:s=(e.y+t.y-i.height)/2}return{x:a,y:s}}(o.metrics.paperToScrollablePaneCoords(a.x,a.y),o.metrics.paperToScrollablePaneCoords(a.x+a.width,a.y+a.height),r,i,n,e)}}getViewPortScrollablePoints(){const{canvas:e}=this.context,{clientWidth:t,clientHeight:n}=e.metrics.pane;return{min:e.metrics.clientToScrollablePaneCoords(0,0),max:e.metrics.clientToScrollablePaneCoords(t,n)}}getDialogScrollableBounds(){const e=this.getCurrentSize(),{x:t,y:n}=this.calculatePosition(e)??{x:0,y:0},r={x:t-20,y:n-20};return{min:r,max:{x:r.x+e.width+40,y:r.y+e.height+40}}}focusOn(){const{canvas:e}=this.context,{min:t,max:n}=this.getViewPortScrollablePoints(),{min:r,max:i}=this.getDialogScrollableBounds();let o=0;r.x<t.x?o=r.x-t.x:i.x>n.x&&(o=i.x-n.x);let a=0;r.y<t.y?a=r.y-t.y:i.y>n.y&&(a=i.y-n.y);const s={x:t.x+(n.x-t.x)/2+o,y:t.y+(n.y-t.y)/2+a},l=e.metrics.scrollablePaneToPaperCoords(s.x,s.y);e.centerTo(l)}onStartDragging=()=>{const{defaultSize:e=us,maxSize:t=fs}=this.props;this.startSize={x:Math.min(this.state.width||e.width,t.width),y:Math.min(this.state.height||e.height,t.height)}};calculateHeight(e){const{defaultSize:t=us,minSize:n=hs,maxSize:r=fs}=this.props,i=Math.min(t.height,n.height),o=Math.max(t.height,r.height);return Math.max(i,Math.min(o,e))}calculateWidth(e){const{defaultSize:t=us,minSize:n=hs,maxSize:r=fs}=this.props,i=Math.min(t.width,n.width),o=Math.max(t.width,r.width);return Math.max(i,Math.min(o,e))}onDragHandle=(e,t,n)=>{const{dock:r=ps,mode:i}=this.props,o="centered"===i;let a=o?2:1,s=o?2:1;switch(r){case"n":s*=-1;break;case"w":a*=-1}const l=t?this.calculateWidth(this.startSize.x+t*a):void 0,c=n?this.calculateHeight(this.startSize.y+n*s):void 0;this.setState((e=>({width:l??e.width,height:c??e.height})))};render(){const{target:e,mode:t,dock:n=ps,caption:r,resizableBy:i="all",closable:o=!0}=this.props,a="fillViewport"===t?"none":i,s=this.getCurrentSize(),l=this.calculatePosition(s),c={left:l?.x,top:l?.y,width:s.width,height:s.height};return R.jsxs("div",{className:un(ds,e?"reactodia-dialog--attached":void 0,"fillViewport"===t?"reactodia-dialog--fill-viewport":void 0),role:"dialog","aria-labelledby":r?"reactodia-dialog-caption":void 0,style:c,"data-reactodia-prevent-zoom":!0,children:[R.jsxs("div",{className:`${ds}__header`,children:[R.jsx("div",{id:"reactodia-dialog-caption",className:`${ds}__caption`,title:r,children:r}),o?R.jsx("button",{title:"Close",className:un("reactodia-btn",`${ds}__close-button`),onClick:this.onClose}):null]}),this.props.children,"y"===a||"all"===a?R.jsx(cs,{dock:"n"===n?"n":"s",axis:"y",onBeginDragHandle:this.onStartDragging,onDragHandle:this.onDragHandle,onEndDragHandle:this.onEndDragHandle}):null,"x"===a||"all"===a?R.jsx(cs,{dock:"w"===n?"w":"e",axis:"x",onBeginDragHandle:this.onStartDragging,onDragHandle:this.onDragHandle,onEndDragHandle:this.onEndDragHandle}):null,"none"===a?null:R.jsx(cs,{dock:"n"===n?"ne":"w"===n?"sw":"se",axis:a,onBeginDragHandle:this.onStartDragging,onDragHandle:this.onDragHandle,onEndDragHandle:this.onEndDragHandle})]})}getCurrentSize(){const{mode:e,defaultSize:t=us,maxSize:n=fs}=this.props;return"fillViewport"===e?n:{width:Math.min(this.state.width??t.width,n.width),height:Math.min(this.state.height??t.height,n.height)}}onClose=()=>{const{canvas:e}=this.context,{onHide:t}=this.props;e.focus(),t()};onEndDragHandle=()=>{const{onResize:e}=this.props;if(!e)return;const{width:t,height:n}=this.getCurrentSize();!this.startSize||t===this.startSize.x&&n===this.startSize.y||e({width:t,height:n})}},ms=e=>({subscribe:(t,{canvas:n})=>{const r=new _r;return r.listen(e.events,"changePosition",t),r.listen(n.renderingState.events,"changeElementSize",(n=>{n.source===e&&t()})),()=>r.stopListening()},getBounds:({canvas:t})=>Di(e,t.renderingState)}),bs=e=>({subscribe:(t,{model:n,canvas:r})=>{const i=n.getElement(e.sourceId),o=n.getElement(e.targetId);if(!i||!o)throw new Error("Source and target are not specified");const a=new _r;return a.listen(i.events,"changePosition",t),a.listen(o.events,"changePosition",t),a.listen(r.renderingState.events,"changeElementSize",(e=>{e.source!==i&&e.source!==o||t()})),a.listen(e.events,"changeVertices",t),a.listen(r.renderingState.events,"changeLinkLabelBounds",(n=>{n.source===e&&t()})),()=>a.stopListening()},getBounds:({model:t,canvas:n})=>{const r=n.renderingState.getLinkLabelBounds(e);if(r)return r;const i=t.getElement(e.sourceId),o=t.getElement(e.targetId);if(!i||!o)throw new Error("Source and target are not specified");const a=n.renderingState.getRouting(e.id),s=a?a.vertices:e.vertices||[],l=Fi(n.renderingState.getElementShape(i),n.renderingState.getElementShape(o),s),{x:c,y:d}=qi(l,Ui(l)/2);return{x:c,y:d,width:0,height:0}}}),ws="reactodia-viewport-dock",ys={n:`${ws}--row-n`,s:`${ws}--row-s`,w:`${ws}--column-w`,e:`${ws}--column-e`},_s={nw:`${ws}--dock-nw`,n:`${ws}--dock-n`,ne:`${ws}--dock-ne`,e:`${ws}--dock-e`,se:`${ws}--dock-se`,s:`${ws}--dock-s`,sw:`${ws}--dock-sw`,w:`${ws}--dock-w`},ks={nw:"start",n:"center",ne:"end",e:"end",se:"end",s:"center",sw:"start",w:"start"},xs={nw:"start",n:"start",ne:"start",e:"center",se:"end",s:"end",sw:"end",w:"center"};function Ss(e){const{dock:t,dockOffsetX:n=0,dockOffsetY:r=0,children:i}=e,o={"--reactodia-viewport-dock-offset-x":`${n}px`,"--reactodia-viewport-dock-offset-y":`${r}px`,"--reactodia-viewport-dock-align-x":ks[t],"--reactodia-viewport-dock-align-y":xs[t]};return R.jsx("div",{className:un(ws,ys[t]??`${ws}--corner`),style:o,children:m.cloneElement(i,{className:un(i.props.className,_s[t])})})}var Cs=class{source=new yr;events=this.source;internalSource=new yr;model;view;translation;dialogSettingsProvider;_openedDialog;_tasks=new Set;_taskError;constructor(e){const{model:t,view:n,translation:r,dialogSettingsProvider:i}=e;this.model=t,this.view=n,this.translation=r,this.dialogSettingsProvider=i,this[Ms]={events:this.internalSource,overlays:new Set,dialog:null,spinner:null,onCanvasPointerUp:this.onAnyCanvasPointerUp,onCanvasKeydown:this.onAnyCanvasKeydown};const o=new _r;o.listen(this.model.events,"changeSelection",(()=>{this.openedDialog&&this.openedDialog.target!==(1===this.model.selection.length?this.model.selection[0]:void 0)&&this.hideDialog()})),o.listen(this.model.events,"discardGraph",(()=>{this.openedDialog&&this.openedDialog.target&&this.hideDialog()}))}get openedDialog(){return this._openedDialog}onAnyCanvasPointerUp=e=>{const{source:t,sourceEvent:n,target:r,triggerAsClick:i}=e;n.ctrlKey||n.shiftKey||n.metaKey||this.openedDialog&&this.openedDialog.holdSelection||(r instanceof ho?(this.model.setSelection([r]),r.focus()):r instanceof po?(this.model.setSelection([r]),t.focus()):r instanceof go?(this.model.setSelection([r.link]),t.focus()):!r&&i&&(this.model.setSelection([]),this.hideDialog(),t.focus()))};onAnyCanvasKeydown=e=>{const{source:t,sourceEvent:n}=e;t.renderingState.triggerHotkey(n)};startTask(e={}){const{title:t,delay:n=0}=e;0===this._tasks.size&&this._taskError&&(this._taskError=void 0);const r=n>0&&0===this._tasks.size,i={title:t,setError:e=>{this._taskError={error:e}},end:()=>{this._tasks.delete(i),this.updateTaskSpinner()},[Ls]:!r};return this._tasks.add(i),this.updateTaskSpinner(),r&&gr(n).then((()=>{if(this._tasks.has(i)){for(const e of this._tasks)e[Ls]=!0;this.updateTaskSpinner()}})),i}showSpinnerWhile(e){const{translation:t}=this,n=this.startTask();(async()=>{try{await e}catch(e){console.error(e),n.setError(new Error(t.text("overlay_controller.unknown_error"),{cause:e}))}finally{n.end()}})()}updateTaskSpinner(){const{translation:e}=this;if(this._taskError){const e=function(e){if(e&&"object"==typeof e&&"message"in e){const t=e.message;if("string"==typeof t)return t}}(this._taskError.error);this.setSpinner({statusText:e,errorOccurred:!0})}else{let t,n=!1;for(const r of this._tasks)if(r[Ls]&&(n=!0),r.title){if(void 0!==t){t=e.text("overlay_controller.multiple_tasks_in_progress");break}t=r.title}this.setSpinner(n?{statusText:t}:void 0)}}setSpinner(e){const t=this[Ms],n=t.spinner;t.spinner=e?R.jsx(zs,{spinnerProps:e}):null,this.internalSource.trigger("changeSpinner",{previous:n,source:this})}showDialog(e){const{target:t,style:n,dialogType:r,content:i,holdSelection:o=!1,onClose:a}=e;this._openedDialog&&this._openedDialog.target!==t&&this.hideDialog();const s=this._openedDialog,l={target:t,knownType:r,holdSelection:o,onClose:a};this._openedDialog=l;const c=this.view.findAnyCanvas(),d=function(e,t){for(const n of e){const e=t(n);if(void 0!==e)return e}}(this[Ms].overlays,(e=>e.getDialogViewportBreakpoint())),u=Boolean(c&&void 0!==d&&c.metrics.pane.clientWidth<=d);let h=n;const f=this.dialogSettingsProvider.getDialogSize(l);f&&(h={...n,defaultSize:f.defaultSize??n.defaultSize,minSize:f.minSize??n.minSize,maxSize:f.maxSize??n.maxSize});const p=e=>{this.dialogSettingsProvider.persistDialogSize(l,e)},g=()=>this.hideDialog();this.setDialog(t&&!u?R.jsx(aa,{layer:"overElements",children:R.jsx(vs,{...h,target:t instanceof ho?ms(t):t instanceof po?bs(t):t,onResize:p,onHide:g,children:i})}):R.jsx($s,{...h,mode:u?"fillViewport":"centered",onResize:p,onHide:g,children:i})),this.source.trigger("changeOpenedDialog",{source:this,previous:s})}hideDialog(){if(this._openedDialog){const e=this._openedDialog;this._openedDialog=void 0,e.onClose?.(),this.setDialog(null),this.source.trigger("changeOpenedDialog",{source:this,previous:e})}}setDialog(e){const t=this[Ms],n=t.dialog;t.dialog=e,this.internalSource.trigger("changeDialog",{previous:n,source:this})}},Ls=Symbol("OverlayTask.active"),Ms=Symbol("OverlayController.internalApi");function Es(e){const{overlay:t}=e,{canvas:n}=zi(),r=t[Ms],{overlays:i,onCanvasPointerUp:o,onCanvasKeydown:a}=r,s=m.useRef(null);m.useLayoutEffect((()=>{const e=s.current;if(e){const t={getDialogViewportBreakpoint:()=>{const t=getComputedStyle(e);return t.maxWidth?parseFloat(t.maxWidth):void 0}};return i.add(t),()=>{i.delete(t)}}}),[i]),m.useEffect((()=>{const e=new _r;return e.listen(n.events,"pointerUp",o),e.listen(n.events,"keydown",a),()=>e.stopListening()}),[o,a]);const l=Lt(r.events,"changeDialog",(()=>r.dialog)),c=Lt(r.events,"changeSpinner",(()=>r.spinner));return R.jsxs(R.Fragment,{children:[R.jsx("div",{ref:s,style:{display:"none",maxWidth:"var(--reactodia-dialog-viewport-breakpoint-s)"}}),l,c]})}function zs(e){const{spinnerProps:t}=e,n=Ts();return R.jsx("div",{className:"reactodia-loading-widget",children:R.jsx("svg",{width:n.width,height:n.height,children:R.jsx(Jt,{position:{x:t.statusText?n.width/3:n.width/2,y:n.height/2},...t})})})}function $s(e){const t=Ts(),n=m.useRef(null),[r,i]=m.useState(0);m.useLayoutEffect((()=>{n.current&&i(function(e){const t=getComputedStyle(e).getPropertyValue("--reactodia-viewport-dock-margin");if(t){const e=parseFloat(t);if(Number.isFinite(e))return e}}(n.current)??0)}),[]);const o=m.useMemo((()=>({width:t.width-2*r,height:t.height-2*r})),[t,r]);return R.jsx("div",{ref:n,className:"reactodia-viewport-dialog-overlay",children:R.jsx(vs,{...e,dock:"e",maxSize:o})})}function Ts(){const{canvas:e}=zi();return Nt(Lo(zt(e.events,"resize"),e.renderingState),(()=>{const{clientWidth:t,clientHeight:n}=e.metrics.pane;return{width:t,height:n}}),((e,t)=>e.width===t.width&&e.height===t.height))}var Ns=class{lastDialogSize=new Map;getDialogSize(e){if(e.knownType){const t=this.lastDialogSize.get(e.knownType);if(t)return{defaultSize:t}}}persistDialogSize(e,t){e.knownType&&this.lastDialogSize.set(e.knownType,t)}},As="reactodia-fetch-status";function Is(e){const{type:t,target:n,children:r}=e,{model:i}=cn(),[o,a]=m.useState(i.getOperationFailReason(t,n)?2:0);return m.useEffect((()=>{const e=e=>{a((()=>{if(e&&Ps(e.operation,t,n))return 2;for(const e of i.operations)if(Ps(e,t,n))return 1;return i.getOperationFailReason(t,n)?2:0}))};e();const r=t=>{e(t.fail)};return i.events.on("changeOperations",r),()=>i.events.off("changeOperations",r)}),[t,n]),0===o?r:m.cloneElement(r,{className:un(r.props.className,1===o?`${As}--loading`:2===o?`${As}--error`:void 0)})}function Ps(e,t,n){return e.type===t&&e.targets.has(n)}function Vs(e){const{link:t,className:n,path:r,pathProps:i,markerSource:o,markerTarget:a,children:s}=e,l=i?.stroke;return R.jsxs("g",{className:n,children:[R.jsx(jo,{path:r,pathProps:{fill:"none",...i},markerSource:o,markerTarget:a}),0===t.vertices.length?null:R.jsx(Go,{linkId:t.id,vertices:t.vertices,fill:l}),s]})}var Hs="reactodia-group-paginator";function Rs(e){const{pageIndex:t,pageCount:n,onChangePage:r,pageSize:i,pageSizes:o,onChangePageSize:a}=e,s=Ht(),l=n-1;return R.jsxs("div",{className:Hs,children:[R.jsx("button",{type:"button",className:un("reactodia-btn","reactodia-btn-default",`${Hs}__previous`),name:s.text("group_paginator.go_previous.title"),disabled:t<=0,onClick:()=>r(t-1)}),R.jsx("div",{className:`${Hs}__status`,children:s.text("group_paginator.current_page.label",{page:t+1,pageCount:n})}),R.jsx("button",{type:"button",className:un("reactodia-btn","reactodia-btn-default",`${Hs}__next`),title:s.text("group_paginator.go_next.title"),disabled:t>=l,onClick:()=>r(t+1)}),R.jsx("select",{className:`${Hs}__page-size`,title:s.text("group_paginator.page_size.title"),value:i,onPointerDown:e=>e.stopPropagation(),onChange:e=>a(Number(e.currentTarget.value)),children:o.map((e=>R.jsx("option",{value:e,children:e},e)))})]})}function Os(e){const{className:t,style:n,text:r,setText:i,isEditing:o,setEditing:a}=e,s=m.useRef(null);return m.useLayoutEffect((()=>{const e=s.current;o&&e&&(e.focus(),window.getSelection()?.selectAllChildren(e))}),[o]),m.useLayoutEffect((()=>{const e=s.current;e&&(e.innerText=r||"\n")}),[r]),R.jsx("p",{ref:s,className:t,style:n,contentEditable:o?"plaintext-only":void 0,onPointerDown:e=>{o&&e.stopPropagation()},onKeyDown:e=>{o&&e.stopPropagation()},onKeyUp:e=>{o&&(e.stopPropagation(),"Escape"===e.key&&(document.getSelection()?.removeAllRanges(),s.current?.blur()))},onBlur:()=>{const e=(s.current?.innerText??"").trim();a(!1),i(e)}})}var Ds=class e{__commandsMarker;constructor(){}static define(){return new e}},Bs=Ds.define(),js=Ds.define(),Fs=Ds.define(),Us=Ds.define(),qs=Ds.define(),Ws={canEdit:!1,canDelete:!1,onEdit:()=>{},onDelete:()=>{}};function Gs(e,t){const{editor:n,getCommandBus:r}=cn(),i=n.inAuthoringMode?e:void 0,o=Lt(n.events,"changeAuthoringState",(()=>i?n.authoringState.elements.get(i.id):void 0)),a=At({input:[n.metadataProvider,i,o,t],load:async([e,t,n,r],{signal:i})=>{if(e&&t&&r&&(!n||"entityDelete"!==n.type)){const{canEdit:n,canDelete:r}=await e.canModifyEntity(t,{signal:i});return(n?1:0)|(r?2:0)}return 0}}),s="completed"===a.status?a.data:void 0;return i?{editedIri:o&&"entityChange"===o.type?o.newIri:void 0,canEdit:void 0===s?void 0:Boolean(1&s),canDelete:void 0===s?void 0:Boolean(2&s),onEdit:e=>{e instanceof Sa&&r(qs).trigger("editEntity",{target:e})},onDelete:()=>{n.deleteEntity(i.id)}}:Ws}var Zs={renderElement:e=>e.element instanceof ha?R.jsx(Ks,{...e}):e.element instanceof Sa?R.jsx(Xs,{...e}):null,supports:{[vr.ColorVariant]:!0,[vr.ElementSize]:!0}};function Ks(e){const{element:t,elementState:n}=e,{model:r}=zi(),i=n.get(vr.AnnotationContent);return R.jsx(Ys,{...e,content:i,setContent:e=>{r.history.execute(Wi.compound(Rt.text("note_annotation.change_text.command"),[ao(t,t.elementState.set(vr.AnnotationContent,e))]))}})}function Xs(e){const{element:t,textProperty:n="http://www.w3.org/ns/oa#bodyValue"}=e,{model:r,editor:i}=cn(),o=Ht(),a=t instanceof Sa?t.data:void 0,s=Gs(a,!0),l=m.useMemo((()=>{const e=a?.properties[n];return e&&e.length>0?{type:"plaintext",text:o.selectValues(e,r.language).filter((e=>"Literal"===e.termType)).map((e=>e.value)).join("\n")}:void 0}),[a]);return R.jsx(Ys,{...e,readOnly:!0!==s.canEdit,content:l,setContent:e=>{a&&i.changeEntity(a.id,{...a,properties:{...a.properties,[n]:[r.factory.literal(e.text)]}})}})}var Qs="reactodia-note-annotation";function Ys(e){const{element:t,elementState:n,onlySelected:r,readOnly:i,content:o,setContent:a}=e,{canvas:s,model:l}=zi(),[c,d]=m.useState(!1),u=n.get(vr.ElementSize),h=n.get(vr.ColorVariant),f=("plaintext"===o?.type?o:void 0)??{type:"plaintext",text:""};return R.jsxs(R.Fragment,{children:[R.jsx("div",{className:un(Qs,`${Qs}--variant-${h??"default"}`,c?`${Qs}--editing`:void 0),style:{width:u?.width,height:u?.height},onDoubleClick:async e=>{e.preventDefault(),e.stopPropagation(),i||(s.getScale()<1&&await s.centerTo(Ni.center(Di(t,s.renderingState)),{scale:1,animate:!0}),d(!0))},children:R.jsx(Os,{className:`${Qs}__editor`,style:f.style,text:f.text,setText:e=>{requestAnimationFrame((()=>a({...f,text:e})))},isEditing:c,setEditing:d})}),r&&R.jsx(Io,{target:t,children:R.jsx(Js,{style:f.style,setStyle:e=>{a({...f,style:e})},variant:h,setVariant:e=>{l.history.execute(ao(t,t.elementState.set(vr.ColorVariant,e)))}})})]})}function Js(e){const{style:t,setStyle:n,variant:r="default",setVariant:i}=e,o=Ht(),{fontStyle:a,fontWeight:s,textDecorationLine:l,textAlign:c="center"}=t??{},d={type:"button",onPointerDown:e=>e.stopPropagation()};return R.jsxs("div",{className:`${Qs}__controls`,children:[R.jsxs("div",{className:"reactodia-btn-group reactodia-btn-group-xs",children:[R.jsx("button",{...d,className:un(`${Qs}__style-bold reactodia-btn reactodia-btn-default`,"bold"===s?"active":void 0),title:o.text("note_annotation.style_bold.title"),onClick:()=>n({...t,fontWeight:"bold"===s?void 0:"bold"})}),R.jsx("button",{...d,className:un(`${Qs}__style-italic reactodia-btn reactodia-btn-default`,"italic"===a?"active":void 0),title:o.text("note_annotation.style_italic.title"),onClick:()=>n({...t,fontStyle:"italic"===a?void 0:"italic"})}),R.jsx("button",{...d,className:un(`${Qs}__style-underline reactodia-btn reactodia-btn-default`,"underline"===l?"active":void 0),title:o.text("note_annotation.style_underline.title"),onClick:()=>n({...t,textDecorationLine:"underline"===l?void 0:"underline"})}),R.jsx("button",{...d,className:un(`${Qs}__style-strikethrough reactodia-btn reactodia-btn-default`,"line-through"===l?"active":void 0),title:o.text("note_annotation.style_strikethrough.title"),onClick:()=>n({...t,textDecorationLine:"line-through"===l?void 0:"line-through"})})]}),R.jsxs("div",{className:"reactodia-btn-group reactodia-btn-group-xs",children:[R.jsx("button",{...d,className:un(`${Qs}__align-left reactodia-btn reactodia-btn-default`,"left"===c?"active":void 0),title:o.text("note_annotation.style_align_left.title"),onClick:()=>n({...t,textAlign:"left"})}),R.jsx("button",{...d,className:un(`${Qs}__align-center reactodia-btn reactodia-btn-default`,"center"===c?"active":void 0),title:o.text("note_annotation.style_align_center.title"),onClick:()=>n({...t,textAlign:void 0})}),R.jsx("button",{...d,className:un(`${Qs}__align-right reactodia-btn reactodia-btn-default`,"right"===c?"active":void 0),title:o.text("note_annotation.style_align_right.title"),onClick:()=>n({...t,textAlign:"right"})})]}),R.jsx("div",{className:"reactodia-btn-group reactodia-btn-group-xs",children:$r.map((e=>m.createElement("button",{...d,key:e,className:un(`${Qs}__variant-${e} reactodia-btn reactodia-btn-default`,r===e?"active":void 0),title:o.text("note_annotation.style_color_variant.title",{variant:e}),onClick:()=>i("default"===e?void 0:e)},R.jsx("div",{className:`${Qs}__variant ${Qs}--variant-${e}`}))))})]})}var el={markerTarget:{d:"M 6 1 a 5 5 0 1 0 0.0001 0 Z",width:12,height:12,fill:"context-stroke",stroke:"context-stroke",strokeWidth:2,fill:"var(--reactodia-canvas-background-color)"},renderLink:e=>e.link instanceof fa?R.jsx(nl,{...e}):null},tl="reactodia-note-link";function nl(e){const{link:t,getPathPosition:n,route:r,primaryLabelProps:i}=e,{canvas:o}=zi(),{renameLinkProvider:a}=o.renderingState.shared,s=a?.getLabel(t)??i?.children??(a?.canRename(t)?"":void 0);return R.jsx(Vs,{...e,pathProps:{className:`${tl}__path`},children:void 0===s?null:R.jsx(qo,{...i,primary:!0,textAnchor:r?.labelTextAnchor??i?.textAnchor,className:un(`${tl}__label`,i?.className),link:t,position:i?.position??n(.5),children:R.jsx("span",{children:s})})})}var rl={renderElement:e=>{const{element:t}=e;return t instanceof Sa?R.jsx(ol,{...e}):t instanceof Ca?R.jsx(ll,{...e}):null},supports:{[vr.Expanded]:!0}},il="reactodia-standard-element";function ol(e){const{showActions:t,element:n,isExpanded:r,elementState:i}=e,{model:o,editor:a,getElementTypeStyle:s}=cn(),l=Ht(),c=n instanceof Sa?n.data:void 0;Dt(rn,c?c.types:[],o);const d=Gs(c,r),{data:u}=At({input:[o.locale,c?o.locale.selectEntityImageUrl(c):void 0],load:([e,t],{signal:n})=>void 0===t?void 0:e.resolveAssetUrl(t,{signal:n})});if(!c)return null;const h=o.locale.formatEntityLabel(c,o.language),f=hl(c,o,l),p=s(c.types),g={"--reactodia-element-style-color":p.color},v=(r?void 0:i.get(vr.PinnedProperties))??{};return R.jsxs("div",{style:g,className:un(il,`${il}--standalone`,fl(c,a.authoringState)),onDoubleClick:e=>{e.preventDefault(),e.stopPropagation(),o.history.execute(so(n,!n.isExpanded))},children:[R.jsx("div",{className:`${il}__main`,children:R.jsxs("div",{className:`${il}__body`,children:[R.jsxs("div",{className:`${il}__body-horizontal`,children:[R.jsx("div",void 0!==u?{className:`${il}__thumbnail`,"aria-hidden":"true",children:R.jsx("img",{src:u,className:`${il}__thumbnail-image`})}:p.icon?{className:`${il}__thumbnail`,"aria-hidden":"true",children:R.jsx("img",{src:p.icon,className:un(`${il}__thumbnail-icon`,p.iconMonochrome?`${il}__thumbnail-icon--monochrome`:void 0)})}:{className:`${il}__thumbnail`,"aria-hidden":"true",children:f.length>0?f.charAt(0).toUpperCase():"✳"}),R.jsxs("div",{className:`${il}__body-content`,children:[R.jsx("div",{title:f,className:`${il}__type`,children:R.jsx("div",{className:`${il}__type-value`,children:function(e){return 0===e.types.length?l.text("standard_element.default_type"):e.types.map(((e,t)=>{const n=o.getElementType(e),r=l.formatLabel(n?.data?.label,e,o.language);return R.jsxs(m.Fragment,{children:[0===t?null:", ",R.jsx(Is,{type:"elementType",target:e,children:R.jsx("span",{children:r})})]},e)}))}(c)})}),R.jsx(Is,{type:"element",target:c.id,children:R.jsx("div",{className:`${il}__label`,title:h,children:h})})]})]}),ul(c,v)?R.jsx("div",{className:`${il}__pinned-props`,children:R.jsx(pl,{data:c,shouldInclude:e=>dl(e,v)})}):null]})}),r?R.jsxs("div",{className:`${il}__dropdown`,children:[void 0===u?null:R.jsx("div",{className:`${il}__photo`,children:R.jsx("img",{src:u,className:`${il}__photo-image`})}),R.jsxs("div",{className:`${il}__dropdown-content`,children:[function(e){const t=void 0===d.editedIri?e.id:d.editedIri;return R.jsxs("div",{children:[R.jsxs("div",{className:`${il}__iri`,children:[R.jsx("div",{className:`${il}__iri-key`,children:l.text(d.editedIri?"standard_element.iri.label_modified":"standard_element.iri.label")}),R.jsx("div",{className:`${il}__iri-value`,children:qt(t)?R.jsx("span",{children:l.text("standard_element.blank_node")}):R.jsx("a",{...o.locale.prepareAnchor(t),title:t,children:t})})]}),R.jsx("hr",{className:`${il}__hr`})]})}(c),R.jsx(pl,{data:c}),t&&a.inAuthoringMode?R.jsxs(R.Fragment,{children:[R.jsx("hr",{className:`${il}__hr`,"data-reactodia-no-export":"true"}),R.jsx(gl,{target:n,entityContext:d,translation:l})]}):null]})]}):null]})}var al=10,sl=[5,10,15,20,30];function ll(e){const{element:t,elementState:n,groupPageSize:r=al,groupPageSizes:i=sl}=e,{canvas:o}=zi(),a=cn(),{getElementStyle:s}=a;if(!(t instanceof Ca))return null;const l=t.items,{color:c}=s(t),d={"--reactodia-standard-group-color":c};let u=n.get(vr.GroupPageSize)??r;u=Number.isFinite(u)?u:r;const h=Math.max(Math.ceil(l.length/u),1);let f=n.get(vr.GroupPageIndex)??0;f=Number.isFinite(f)?f:0,f=Math.min(Math.max(f,0),h-1);const p=f*u,g=l.slice(p,Math.min(p+u,l.length)),v=1===h?0:p+u-l.length;return R.jsxs("div",{className:un(il,`${il}--group`),style:d,role:"list",children:[g.map((n=>m.createElement(cl,{...e,key:n.data.id,data:n.data,isExpanded:!1,target:t,canvas:o,workspace:a}))),Array.from({length:v},((e,t)=>R.jsx("div",{className:`${il}__item-filler`,"aria-hidden":!0,children:" "},t))),R.jsx(Rs,{pageIndex:f,pageCount:h,onChangePage:e=>t.setElementState(t.elementState.set(vr.GroupPageIndex,e)),pageSize:u,pageSizes:i,onChangePageSize:e=>t.setElementState(t.elementState.set(vr.GroupPageSize,e))})]})}function cl(e){const{data:t,target:n,canvas:r,workspace:i}=e,o=Ht(),{model:a,editor:s,getElementTypeStyle:l}=i;Dt(rn,t?t.types:[],a);const c=a.locale.formatEntityLabel(t,a.language),d=a.locale.formatIri(t.id),u=hl(t,a,o),h=o.text("standard_element.group_item.title",{entity:c,entityIri:d,entityTypes:u}),f=fl(t,s.authoringState),{color:p}=l(t.types),g={"--reactodia-element-style-color":p};return R.jsxs("div",{className:un(`${il}__item`,f),style:g,role:"listitem",children:[R.jsx("div",{className:`${il}__item-stripe`,"aria-hidden":"true"}),R.jsxs("div",{className:`${il}__item-body`,children:[R.jsx(Is,{type:"element",target:t.id,children:R.jsx("div",{className:`${il}__label`,title:h,children:c})}),R.jsx("button",{type:"button",className:un(`${il}__ungroup-one-button`,"reactodia-btn reactodia-btn-default"),"data-reactodia-no-export":"true",title:o.text("standard_element.ungroup.title"),onClick:()=>{as(i,{group:n,entities:new Set([t.id]),canvas:r})}})]})]})}function dl(e,t){return Boolean(Object.prototype.hasOwnProperty.call(t,e)&&t[e])}function ul(e,t){for(const n in e.properties)if(Object.prototype.hasOwnProperty.call(e.properties,n)&&dl(n,t))return!0;return!1}function hl(e,t,n){return 0===e.types.length?n.text("standard_element.default_type"):t.locale.formatEntityTypeList(e,t.language)}function fl(e,t){const n=t.elements.get(e.id);if(n)switch(n.type){case"entityAdd":return`${il}--new`;case"entityChange":return`${il}--changed`;case"entityDelete":return`${il}--deleted`;default:return}}function pl(e){const{data:t,shouldInclude:n}=e,{model:r}=cn(),i=Ht(),o=[];for(const e in t.properties)Object.prototype.hasOwnProperty.call(t.properties,e)&&t.properties[e].length>0&&(!n||n(e))&&o.push(e);if(Dt(on,o,r),0===o.length)return R.jsx("div",{children:i.text("standard_element.no_properties")});const a=o.map((e=>{const n=r.getPropertyType(e),o=i.selectValues(t.properties[e],r.language);return{iri:e,label:i.formatLabel(n?.data?.label,e,r.language),values:0===o.length?t.properties[e]:o}}));return a.sort(((e,t)=>e.label.localeCompare(t.label))),R.jsx("div",{role:"list",className:`${il}__properties`,children:a.map((({iri:e,label:t,values:n})=>R.jsxs("div",{role:"listitem",className:`${il}__properties-row`,children:[R.jsx(Is,{type:"propertyType",target:e,children:R.jsx("div",{className:`${il}__properties-key`,title:i.text("standard_element.property.title",{property:t,propertyIri:r.locale.formatIri(e)}),children:t})}),R.jsx("div",{className:`${il}__properties-values`,children:n.map(((e,t)=>R.jsx("div",{className:`${il}__properties-value`,title:e.value,lang:"Literal"===e.termType&&e.language?e.language:void 0,children:e.value},t)))})]},e)))})}function gl(e){const{target:t,entityContext:{canEdit:n,canDelete:r,onEdit:i,onDelete:o},translation:a}=e;return R.jsxs("div",{className:`${il}__actions`,"data-reactodia-no-export":"true",children:[R.jsx("button",{type:"button",className:un(`${il}__delete-button`,"reactodia-btn reactodia-btn-default"),title:a.text(r?"standard_element.delete.title":"standard_element.delete.title_disabled"),disabled:!r,onClick:o,children:void 0===r?R.jsx(en,{width:15,height:12}):a.text("standard_element.delete.label")}),R.jsx("button",{type:"button",className:un(`${il}__edit-button`,"reactodia-btn reactodia-btn-default"),title:a.text(n?"standard_element.edit.title":"standard_element.edit.title_disabled"),disabled:!n,onClick:()=>i(t),children:void 0===n?R.jsx(en,{width:15,height:12}):a.text("standard_element.edit.label")})]})}var vl={markerTarget:{d:"M0,0 L0,8 L9,4 z",width:9,height:8,fill:"context-stroke"},renderLink:e=>R.jsx(yl,{...e})},ml="reactodia-standard-link",bl=`${ml}__property`,wl=`${ml}__label`;function yl(e){const{link:t,className:n,path:r,pathProps:i,markerSource:o,markerTarget:a,getPathPosition:s,route:l,primaryLabelProps:c,prependLabels:d=null,children:u}=e,{model:h,view:{renameLinkProvider:f}}=cn(),p=Ht();Dt(an,[t.typeId],h);const g=f?.getLabel(t);let v=null;if("visible"===h.getLinkVisibility(t.typeId)){const n=h.getLinkType(t.typeId),r=g??p.formatLabel(n?.data?.label,t.typeId,h.language);v=R.jsxs(R.Fragment,{children:[R.jsx(qo,{...c,primary:!0,textAnchor:l?.labelTextAnchor??c?.textAnchor,className:un(wl,g?`${wl}--renamed`:void 0,c?.className),title:c?.title??p.text("standard_link.label.title",{relation:r,relationIri:h.locale.formatIri(t.typeId)}),link:t,position:s(.5),children:g?R.jsx("span",{children:r}):R.jsx(Is,{type:"linkType",target:t.typeId,children:R.jsx("span",{children:r})})}),d,t instanceof Ea?R.jsx(_l,{...e}):null,t instanceof $a?R.jsxs(R.Fragment,{children:[R.jsx(qo,{className:`${ml}__source-count`,link:t,position:s(.1),title:p.text("standard_link.group_source.title",{value:t.itemSources.size}),children:p.text("standard_link.group_source.value",{value:t.itemSources.size})}),R.jsx(qo,{className:`${ml}__target-count`,link:t,position:s(.9),title:p.text("standard_link.group_target.title",{value:t.itemTargets.size}),children:p.text("standard_link.group_target.value",{value:t.itemTargets.size})})]}):null]})}const{linkState:m}=t,b=i?.stroke;return R.jsxs("g",{className:un(ml,t instanceof $a?`${ml}--group`:void 0,n),children:[R.jsx(jo,{path:r,pathProps:{fill:"none",...i,className:un(`${ml}__path`,i?.className),stroke:b,strokeDasharray:m.get(vr.LayoutOnly)?"5,5":i?.strokeDasharray},markerSource:o,markerTarget:a}),v,0===t.vertices.length?null:R.jsx(Go,{linkId:t.id,vertices:t.vertices,fill:b}),u]})}function _l(e){const{link:t,getPathPosition:n,route:r,propertyLabelProps:i,propertyLabelStartLine:o=1}=e,{model:a}=cn(),s=Ht(),{data:l}=t,c=[];for(const e in l.properties)Object.prototype.hasOwnProperty.call(l.properties,e)&&l.properties[e].length>0&&c.push(e);Dt(on,c,a);const d=[];for(const e of c){const t=a.getPropertyType(e),n=s.selectValues(l.properties[e],a.language),r="function"==typeof i?i(e):i;null!==r&&d.push({iri:e,label:s.formatLabel(t?.data?.label,e,a.language),values:0===n.length?l.properties[e]:n,style:r})}return d.sort(((e,t)=>e.label.localeCompare(t.label))),R.jsx(R.Fragment,{children:d.map(((e,l)=>R.jsxs(qo,{...i,link:t,position:n(.5),line:o+l,textAnchor:r?.labelTextAnchor??e.style?.textAnchor,className:un(bl,e.style?.className),title:e.style?.title??s.text("standard_link.property.title",{property:e.label,propertyIri:a.locale.formatIri(e.iri)}),children:[R.jsx(Is,{type:"propertyType",target:e.iri,children:R.jsxs("span",{children:[e.label,": "]})}),e.values.map((e=>e.value)).join(", ")]},e.iri)))})}function kl(e){const{canvas:t,model:n}=zi();return R.jsx(aa,{layer:"overElements",children:R.jsx(Cl,{...e,model:n,canvas:t})})}var xl="reactodia-drag-link-mover",Sl={allowed:!1,connect:()=>Promise.resolve(),moveSource:()=>Promise.resolve(),moveTarget:()=>Promise.resolve()},Cl=class extends m.Component{listener=new _r;cancellation=new AbortController;canDropOnElementCancellation=new AbortController;temporaryLink;temporaryElement;oldLink;constructor(e){super(e),this.state={}}componentDidMount(){const{canvas:e,operation:t}=this.props;switch(this.cancellation=new AbortController,t.mode){case"connect":this.beginCreatingLink(t);break;case"moveSource":case"moveTarget":this.beginMovingLink(t);break;default:throw new Error(`Unknown edit mode: "${t.mode}"`)}this.forceUpdate(),this.queryCanConnectToAny(),this.listener.listen(e.events,"changeTransform",(()=>this.forceUpdate())),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),document.addEventListener("pointercancel",this.onPointerUp)}componentWillUnmount(){this.listener.stopListening(),this.cancellation.abort(),this.canDropOnElementCancellation.abort(),document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerUp),this.cleanup()}beginCreatingLink(e){const{createLink:t,model:n}=this.props,{source:r,point:i}=e,o=n.history.startBatch(),a=this.createTemporaryElement(i),s=t(r,a,void 0);o.discard(),this.temporaryElement=a,this.temporaryLink=s}beginMovingLink(e){const{createLink:t,model:n}=this.props,{link:r,point:i}=e,o=n.history.startBatch();this.oldLink=r,n.removeLink(r.id);const a=this.createTemporaryElement(i),s="moveSource"===e.mode?t(a,n.targetOf(r),r):t(n.sourceOf(r),a,r);o.discard(),this.temporaryElement=a,this.temporaryLink=s}createTemporaryElement(e){const{model:t}=this.props,n=new fo({});return n.setPosition(e),t.addElement(n),n}onPointerMove=e=>{const{model:t,canvas:n}=this.props,{targetElement:r,waitingForMetadata:i}=this.state;if(e.preventDefault(),e.stopPropagation(),i)return;const o=n.metrics.pageToPaperCoords(e.pageX,e.pageY);this.temporaryElement.setPosition(o);const a=Ki(t.elements,o,n.renderingState);a!==r&&this.queryCanDropOnElement(a),this.setState({targetElement:a})};queryCanConnectToAny(){const{canConnect:e,model:t}=this.props;this.setState({anyConnection:void 0});const n=this.temporaryLink;pr(e(t.getElement(n.sourceId),n,void 0,this.cancellation.signal),this.cancellation.signal).then((e=>{null!==e&&this.setState({anyConnection:e})}),(e=>{console.error("Error calling canConnect() without target",e),this.setState({anyConnection:Sl})}))}queryCanDropOnElement(e){const{operation:t,canConnect:n,model:r}=this.props;if(this.canDropOnElementCancellation.abort(),this.canDropOnElementCancellation=new AbortController,!e)return void this.setState({targetConnection:Sl});this.setState({targetConnection:void 0});const i=this.temporaryLink;let o,a;switch(t.mode){case"connect":case"moveTarget":o=i?r.getElement(i.sourceId):void 0,a=e;break;case"moveSource":o=e,a=i?r.getElement(i.targetId):void 0}if(!(o&&a&&i))return void this.setState({targetConnection:Sl});const s=this.canDropOnElementCancellation.signal;pr(n(o,i,a,s),s).then((e=>{null!==e&&this.setState({targetConnection:e})}),(e=>{console.error("Error calling canConnect() with target",e),this.setState({targetConnection:Sl})}))}onPointerUp=e=>{const{canvas:t}=this.props;if(this.state.waitingForMetadata)return;this.setState({waitingForMetadata:!0});const n=t.metrics.pageToPaperCoords(e.pageX,e.pageY);this.executeEditOperation(n)};async executeEditOperation(e){const{operation:t,canvas:n,model:r}=this.props;try{const{targetElement:i,anyConnection:o,targetConnection:a}=this.state,s=r.history.startBatch(),l=this.restoreOldLink();s.discard();const c=i?a:o;if(c?.allowed)switch(t.mode){case"connect":await c.connect(t.source,i,e,n,this.cancellation.signal);break;case"moveSource":await c.moveSource(l,i,n,this.cancellation.signal);break;case"moveTarget":await c.moveTarget(l,i,n,this.cancellation.signal)}}finally{this.cleanupAndFinish()}}cleanupAndFinish(){const{onFinish:e}=this.props;this.cleanup(),e?.()}cleanup(){const{cleanupLink:e,model:t}=this.props,n=t.history.startBatch();t.removeElement(this.temporaryElement.id),t.removeLink(this.temporaryLink.id),e?.(this.temporaryLink),this.restoreOldLink(),n.discard(),this.setState({waitingForMetadata:!1})}restoreOldLink(){const{model:e}=this.props,t=this.oldLink;return this.oldLink=void 0,t&&e.addLink(t),t}render(){const{model:e,canvas:t}=this.props,{waitingForMetadata:n}=this.state;if(!this.temporaryLink)return null;const r=t.renderingState;return R.jsxs(mo,{paperTransform:t.metrics.transform,className:xl,children:[R.jsx(Ko,{model:e,renderingState:r}),this.renderHighlight(),this.renderCanDropIndicator(),n?null:R.jsx(Ho,{model:e,renderingState:r,shouldRenderLink:e=>e===this.temporaryLink})]})}renderHighlight(){const{canvas:e}=this.props,{targetElement:t,targetConnection:n,waitingForMetadata:r}=this.state;if(!t)return null;const{x:i,y:o,width:a,height:s}=Di(t,e.renderingState);return void 0===n||r?R.jsxs("g",{transform:`translate(${i},${o})`,children:[R.jsx("rect",{className:`${xl}__highlight-overlay`,width:a,height:s}),R.jsx(Jt,{size:30,position:{x:a/2,y:s/2}})]}):R.jsx("rect",{className:n?.allowed?`${xl}__highlight-allow`:`${xl}__highlight-deny`,x:i,y:o,width:a,height:s})}renderCanDropIndicator(){const{targetElement:e,anyConnection:t,waitingForMetadata:n}=this.state;if(e)return null;const{x:r,y:i}=this.temporaryElement.position;let o;return o=void 0===t?R.jsx(Jt,{size:1.2,position:{x:.5,y:-.5}}):t?.allowed?R.jsx("path",{className:`${xl}__drop-allow`,d:"M0.5,0 L0.5,-1 M0,-0.5 L1,-0.5",strokeWidth:.2}):R.jsxs("g",{className:`${xl}__drop-deny`,children:[R.jsx("circle",{cx:"0.5",cy:"-0.5",r:"0.5",fill:"none",strokeWidth:.2}),R.jsx("path",{d:"M0.5,0 L0.5,-1",strokeWidth:.2,transform:"rotate(-45 0.5 -0.5)"})]}),R.jsxs("g",{transform:`translate(${r} ${i})scale(40)`,children:[R.jsx("rect",{className:`${xl}__drop-underlay`,x:-.5,y:-.5,width:1,height:1,rx:.25,ry:.25}),n?R.jsx(Jt,{size:.8}):R.jsx("g",{transform:"translate(0.5, -0.5)scale(0.25)",children:o})]})}};function Ll(e){const{operation:t,onFinish:n}=e,{model:r}=zi();return R.jsx(kl,{operation:t,createLink:(e,t,n)=>{const i=new fa({sourceId:e.id,targetId:t.id,vertices:n?.vertices,linkState:n?.linkState});return r.addLink(i),i},canConnect:async(e,t,n)=>new Ml(e instanceof ha&&t instanceof fa&&void 0!==n&&!r.getElementLinks(e).some((t=>t instanceof fa&&t.sourceId===e.id&&t.targetId===n.id)),r),onFinish:n})}var Ml=class{allowed;model;constructor(e,t){this.allowed=e,this.model=t}async connect(e,t){t&&this.model.addLink(new fa({sourceId:e.id,targetId:t.id}))}async moveSource(e,t){const n=this.model.history.startBatch();this.model.removeLink(e.id);const r=new fa({id:e.id,sourceId:t.id,targetId:e.targetId,vertices:e.vertices,linkState:e.linkState});this.model.addLink(r),n.store(),this.model.setSelection([r])}async moveTarget(e,t){const n=this.model.history.startBatch();this.model.removeLink(e.id);const r=new fa({id:e.id,sourceId:e.sourceId,targetId:t.id,vertices:e.vertices,linkState:e.linkState});this.model.addLink(r),n.store(),this.model.setSelection([r])}};function El(){const{getCommandBus:e}=cn(),{canvas:t,model:n}=zi(),[r,i]=m.useState(null);return m.useEffect((()=>{const r=e(Bs),o=new _r;return o.listen(r,"findCapabilities",(e=>{e.capabilities.push({})})),o.listen(r,"startDragOperation",(({operation:e})=>{i(R.jsx(Ll,{operation:e,onFinish:()=>i(null)}))})),o.listen(r,"createAnnotation",(({targets:e,content:r,position:i})=>{const o=n.history.startBatch(),a=new ha({elementState:r?Mr.empty.set(vr.AnnotationContent,r):void 0});if(n.addElement(a),i)a.setPosition(i);else{const r=function(e,t){let n,r=0;for(const i of e){const e=Di(i,t),o=$i.length(Ni.center(e));o>=r&&(r=o,n=i)}return n}(e,t.renderingState);r&&(a.setPosition(r.position),t.renderingState.syncUpdate(),o.history.execute(uo({elements:[a],target:r,graph:n,sizeProvider:t.renderingState})))}for(const t of e)n.addLink(new fa({sourceId:a.id,targetId:t.id}));o.store(),t.renderingState.syncUpdate()})),()=>o.stopListening()}),[]),R.jsx(R.Fragment,{children:r})}var zl="reactodia-form";function $l(e){const{link:t,onFinish:n}=e,{view:{renameLinkProvider:r}}=cn(),i=Ht(),o=function(e){const{model:t}=cn(),n=Ht(),r=e instanceof Ea||e instanceof $a?t.getLinkType(e.typeId):void 0,i=Tt(zt(r?.events,"changeData"),(()=>r?.data?.label));return m.useMemo((()=>e instanceof Ea||e instanceof $a?n.formatLabel(i,e.typeId,t.language):""),[e,i,t.language])}(t),[a,s]=m.useState(r?.getLabel(t)??o);return R.jsxs("div",{className:zl,children:[R.jsx("div",{className:`${zl}__body`,children:R.jsxs("div",{className:`${zl}__row`,children:[R.jsx("label",{children:i.text("visual_authoring.rename_link.label.label")}),R.jsx("input",{className:"reactodia-form-control",placeholder:o,autoFocus:!0,value:a,onChange:e=>s(e.target.value)})]})}),R.jsxs("div",{className:`${zl}__controls`,children:[R.jsx("button",{className:`reactodia-btn reactodia-btn-primary ${zl}__apply-button`,title:i.textOptional("visual_authoring.rename_link.dialog.apply.title")??i.text("visual_authoring.dialog.apply.title"),onClick:()=>{r&&r.setLabel(t,a),n()},children:i.textOptional("visual_authoring.rename_link.dialog.apply.label")??i.text("visual_authoring.dialog.apply.label")}),R.jsx("button",{className:"reactodia-btn reactodia-btn-secondary",title:i.text("visual_authoring.dialog.cancel.title"),onClick:n,children:i.text("visual_authoring.dialog.cancel.label")})]})]})}function Tl(){const{overlay:e,getCommandBus:t}=cn(),n=Ht();return m.useLayoutEffect((()=>{const r=({target:t})=>{e.showDialog({target:t,dialogType:"reactodia:renameLink",style:{defaultSize:{width:300,height:165},resizableBy:"x",caption:n.text("visual_authoring.rename_link.dialog.caption")},content:R.jsx($l,{link:t,onFinish:()=>e.hideDialog()})})},i=new _r,o=t(Bs);i.listen(o,"renameLink",r);const a=t(qs);return i.listen(a,"renameLink",r),()=>i.stopListening()}),[]),null}function Nl(e,t,n){let r=e;for(;r&&r!==t;){if(n(r))return r;r=r.parentElement}}function Al(e){const{children:t}=e,[n]=m.useState((()=>new Hl)),r=t({ref:n._setRoot,controller:n}),[i,o]=m.useState(0);return m.useLayoutEffect((()=>n.ensureFocusable()),[i,r]),m.useEffect((()=>{let e=!1;const t=()=>{e||(e=!0,setTimeout((()=>{o((e=>(e+1)%Number.MAX_SAFE_INTEGER)),e=!1}),0))};return n.events.on("lostFocusable",t),()=>n.events.off("lostFocusable",t)}),[]),R.jsx(Il.Provider,{value:n,children:r})}var Il=m.createContext(null);function Pl(e){const{debugLabel:t,active:n=!0}=e??{},r=m.useContext(Il);if(!r)throw new Error("Reactodia: missing <FocusGroup> context");const[i]=m.useState(new Vl(t)),o=m.useCallback((e=>{r._bindFocusable(i,e)}),[r,i]),a=Lt(r.events,"changeFocus",(()=>r._getFocus()===i));return{ref:o,tabIndex:n?a?0:-1:void 0}}var Vl=class{debugLabel;constructor(e){this.debugLabel=e}},Hl=class{_source=new yr;events=this._source;_root=null;_tokens=new WeakMap;_focus;getRoot(){return this._root}_setRoot=e=>{this._root=e,this._focus=void 0};_getFocus(){return this._focus}_bindFocusable(e,t){t?this._tokens.set(t,e):e===this._focus&&this._source.trigger("lostFocusable",{source:this})}_isItem=e=>this._tokens.has(e);_isFocusableItem=e=>this._isItem(e)&&Boolean(e.hasAttribute("tabindex")||e.querySelector("[tabindex]"));focusAt(e){if(!this._root)return;const t=Nl(e,this._root,this._isItem);t&&this._changeFocused(t)}focusPrevious(e){const{from:t}=e;if(!this._root)return;const n=Nl(t,this._root,this._isItem);if(n){const e=function(e,t,n){let r=e,i=!1;do{for(;;)if(i){if(!r.lastElementChild){i=!1;break}r=r.lastElementChild}else if(r.previousElementSibling)r=r.previousElementSibling,i=!0;else{if(r.parentElement!==t){if(r.parentElement){r=r.parentElement;break}return}if(!t.lastElementChild)return;r=t.lastElementChild,i=!0}if(n(r))return r}while(r!==e)}(n,this._root,this._isFocusableItem);this._tryFocusOnItemElement(e)}}focusNext(e){const{from:t}=e;if(!this._root)return;const n=Nl(t,this._root,this._isItem);if(n){const e=function(e,t,n){let r=e,i=!0;do{for(;;){if(i&&r.firstElementChild){r=r.firstElementChild;break}if(r.nextElementSibling){r=r.nextElementSibling,i=!0;break}if(r.parentElement===t){if(t.firstElementChild){r=t.firstElementChild,i=!0;break}return}if(!r.parentElement)return;r=r.parentElement,i=!1}if(n(r))return r}while(r!==e)}(n,this._root,this._isFocusableItem);this._tryFocusOnItemElement(e)}}focusParent(e){const{from:t}=e;if(!this._root)return;const n=Nl(t,this._root,this._isItem);if(!n)return;const r=n.parentElement?Nl(n.parentElement,this._root,this._isItem):void 0;this._tryFocusOnItemElement(r)}ensureFocusable(e){const{reset:t=!1}=e??{};if(!this._root)return;const n=t?void 0:this._focus;if(n)for(const e of this._root.querySelectorAll('[tabindex="0"]')){const t=Nl(e,this._root,this._isItem);if((t?this._tokens.get(t):void 0)===n)return}let r=!1;for(const e of this._root.querySelectorAll("[tabindex]")){const t=Nl(e,this._root,this._isItem);if(t&&this._tokens.has(t)){r=!0,this._changeFocused(t);break}}t&&!r&&(this._focus=void 0)}_tryFocusOnItemElement(e){if(e){const t=e.hasAttribute("tabindex")?e:e.querySelector("[tabindex]");t instanceof HTMLElement&&t.focus(),this._changeFocused(e)}}_changeFocused(e){const t=this._tokens.get(e);t&&this._focus!==t&&(this._focus=t,this._source.trigger("changeFocus",{source:this}))}defaultClick=e=>{e.target instanceof HTMLElement&&this.focusAt(e.target)};defaultKeyDown=e=>{"ArrowUp"===e.key?(e.preventDefault(),e.target instanceof HTMLElement&&this.focusPrevious({from:e.target})):"ArrowDown"===e.key&&(e.preventDefault(),e.target instanceof HTMLElement&&this.focusNext({from:e.target}))}},Rl="reactodia-dropdown";function Ol(e){const{className:t,direction:n="down",expanded:r,toggle:i,onClickOutside:o,children:a,...s}=e,l=m.useRef(null);return m.useLayoutEffect((()=>{if(o&&r){const e=e=>{e.target instanceof Node&&!l.current?.contains(e.target)&&o()};return document.body.addEventListener("pointerdown",e),()=>document.body.removeEventListener("pointerdown",e)}}),[o,r]),R.jsxs("div",{...s,ref:l,className:un(t,Rl,"down"===n?`${Rl}--down`:`${Rl}--up`,r?`${Rl}--expanded`:`${Rl}--collapsed`),children:["down"===n?i:null,R.jsx("div",{className:`${Rl}__content`,"aria-hidden":!r,children:a}),"up"===n?i:null]})}var Dl="reactodia-dropdown-menu";function Bl(e){const{className:t,direction:n,title:r,children:i,...o}=e,[a,s]=m.useState(!1),l=m.useMemo((()=>({expanded:a,setExpanded:s})),[a,s]),c=m.useCallback((()=>s(!1)),[s]);return R.jsx(jl.Provider,{value:l,children:R.jsx(Al,{children:({ref:e,controller:l})=>R.jsx(Ol,{...o,className:un(t,Dl),"aria-haspopup":"menu",direction:n,expanded:a,toggle:R.jsx(Ul,{title:r}),onClickOutside:c,children:R.jsx("div",{ref:e,role:"menu",className:`${Dl}__items`,onClick:l.defaultClick,onKeyDown:e=>((e,t)=>{"Escape"===e.key?s(!1):t.defaultKeyDown(e)})(e,l),children:i})})})})}var jl=m.createContext(null);function Fl(){const e=m.useContext(jl);if(!e)throw new Error("Missing Reactodia dropdown menu context");return e}function Ul(e){const{title:t}=e,{expanded:n,setExpanded:r}=Fl(),i=function(){const e=m.useContext(Il);if(!e)throw new Error("Reactodia: missing <FocusGroup> context");return e}();return m.useLayoutEffect((()=>{n||i.ensureFocusable({reset:!0})}),[n]),R.jsx("button",{type:"button",className:un(`${Dl}__toggle`,"reactodia-btn","reactodia-btn-default",n?"active":void 0),title:t,onClick:()=>r((e=>!e))})}var ql="reactodia-dropdown-menu-item";function Wl(e){const{className:t,title:n,disabled:r,onSelect:i,children:o,...a}=e,{expanded:s,setExpanded:l}=Fl(),{ref:c,tabIndex:d}=Pl({active:s&&!r}),u=m.useCallback((()=>{l((()=>!1)),i?.()}),[i,l]);return R.jsx("button",{...a,ref:c,type:"button",role:"menuitem",tabIndex:d,className:un(t,ql,r?`${ql}--disabled`:void 0,"reactodia-btn reactodia-btn-default"),disabled:r,title:n,onClick:r?void 0:u,children:o})}function Gl(){const e=m.useContext(jl);return Boolean(e)}var Zl="reactodia-list-element-view";function Kl(e){const{element:t,className:n,highlightText:r,disabled:i,selected:o,onClick:a,onDragStart:s,ref:l,...c}=e,{model:d,getElementTypeStyle:u}=cn(),h=Ht();Dt(rn,t.types,d);const{color:f}=u(t.types),{h:p,c:g,l:v}=sr(f),m=o&&!i?sr(p,g,1.2*v).toString():void 0,b=un(Zl,o?`${Zl}--selected`:void 0,i?`${Zl}--disabled`:void 0,n),w={"--reactodia-element-style-color":f},y=d.locale.formatEntityLabel(t,d.language);return R.jsx("div",{...c,ref:l,className:b,role:c.role??"option",draggable:!i&&Boolean(s),title:c.title??Yl(t,d,h),style:{...c.style,...w},onClick:e=>{!i&&a&&(e.persist(),a(e,t))},onDragStart:s,children:R.jsx("div",{className:`${Zl}__label`,style:{background:m},children:Ql(y,r)})})}var Xl={className:"reactodia-text-highlight"};function Ql(e,t,n=Xl){if(!t)return R.jsx("span",{children:e});const r=e.toLowerCase().indexOf(t.toLowerCase());if(r<0)return R.jsx("span",{children:e});const i=r+t.length,o=e.substring(0,r),a=e.substring(r,i),s=e.substring(i);return R.jsxs("span",{children:[o,R.jsx("span",{...n,children:a}),s]})}function Yl(e,t,n){const r=t.locale.formatIri(e.id),i=t.locale.formatEntityLabel(e,t.language),o=t.locale.formatEntityTypeList(e,t.language),a=n.text("inline_entity.title",{entity:i,entityIri:r,entityTypes:o}),s=n.text("inline_entity.title_extra",{entity:i,entityIri:r,entityTypes:o});return`${a}${s?`\n${s}`:""}`}var Jl="reactodia-progress-bar";function ec(e){const{state:t,title:n,percent:r=100,height:i=20}=e;return R.jsx("div",{className:`${Jl} ${Jl}--${t}`,style:{height:"loading"===t||"error"===t?i:0},children:R.jsx("div",{className:`${Jl}__bar`,style:{width:`${r}%`},title:n,role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":r})})}var tc="reactodia-search-input";function nc(e){const{className:t,inputProps:n={},store:r,children:i}=e,o=Ht(),a=Lt(r.events,"changeValue",(()=>r.value)),s=Lt(r.events,"changeMode",(()=>r.mode));return R.jsxs("div",{role:"search",className:un(tc,"explicit"===s?`${tc}--has-submit`:void 0,t),children:[R.jsx("input",{...n,role:"searchbox",type:n.type??"text",className:un(`${tc}__input`,"reactodia-form-control",n.className),placeholder:n.placeholder??o.text("search_defaults.input.placeholder"),value:a,onChange:e=>r.change({value:e.currentTarget.value,action:"input"}),onKeyUp:e=>{"Enter"===e.key&&r.change({value:r.value,action:"submit"})}}),r.value?R.jsx("div",{className:`${tc}__clear-container`,children:R.jsx("button",{type:"button",className:`${tc}__clear`,title:o.text("search_defaults.input_clear.title"),onClick:()=>r.change({value:"",action:"clear"}),children:R.jsx("span",{"aria-hidden":"true"})})}):null,"explicit"===s?R.jsx("button",{type:"button",title:o.text("search_defaults.input_submit.title"),className:un(`${tc}__submit`,"reactodia-btn","reactodia-btn-default"),onClick:()=>r.change({value:r.value,action:"submit"})}):null,i]})}function rc(e){const{initialValue:t,submitTimeout:n="immediate",allowSubmit:r}=e,[i]=m.useState((()=>new ic(t)));return m.useEffect((()=>{i.setDebounceTimeout(n),i.setAllowSubmit(r)})),i}var ic=class{events=new yr;_value;_mode="debounce";debouncer=new kr(0);allowSubmit;constructor(e){this._value=e}get mode(){return this._mode}get value(){return this._value}setDebounceTimeout(e){switch(e){case"immediate":case"explicit":this.debouncer.setTimeout(0),this._mode=e;break;default:this.debouncer.setTimeout(e),this._mode="debounce"}}setAllowSubmit(e){this.allowSubmit=e}change(e){const{value:t,action:n}=e;if(this.debouncer.dispose(),t!==this._value||"input"!==n){const e=this._value;this._value=t,this.events.trigger("changeValue",{source:this,previous:e,action:n})}switch(n){case"input":"explicit"!==this._mode&&this.trySubmit(t,{debounce:"debounce"===this._mode});break;case"submit":this.trySubmit(t,{debounce:!1});break;case"clear":this.events.trigger("clearSearch",{source:this,value:t})}}trySubmit(e,t){!this.allowSubmit||this.allowSubmit(e)?t.debounce?this.debouncer.call((()=>this.events.trigger("executeSearch",{source:this,value:e}))):this.events.trigger("executeSearch",{source:this,value:e}):this.events.trigger("clearSearch",{source:this,value:e})}},oc="reactodia-search-results";function ac(e){const{items:t,selection:n,onSelectionChanged:r,isItemDisabled:i,highlightText:o,useDragAndDrop:a=!0,multiSelection:s=!0,footer:l}=e,c=function(e){const{model:t}=cn(),n=$t(zt(t.events,"changeCells")),r=Tt(e?Et:n,(()=>t.cellsVersion));return m.useMemo((()=>{if(e)return e;const n=Qa(t);return e=>n.has(e.id)}),[e,r])}(i),d=m.useMemo((()=>t.map((e=>({data:e,active:!c(e)})))),[t,c]),u=It(t),h=m.useRef(),f=m.useMemo((()=>({highlightText:o,useDragAndDrop:a,selection:n,onSetSelected:(e,t,i)=>{if(t){if(s&&i.shiftKey&&h.current){const t=h.current.id,i=u.current.findIndex((e=>e.id===t)),o=u.current.findIndex((t=>t.id===e.data.id));if(i>=0&&o>=0){const e=new Set(n),t=Math.max(i,o);for(let n=Math.min(i,o);n<=t;n++)e.add(u.current[n].id);r(e)}}else if(!n.has(e.data.id)){const t=new Set(s?n:void 0);t.add(e.data.id),r(t)}h.current=e.data}else if(n.has(e.data.id)){const t=new Set(n);t.delete(e.data.id),r(t)}}})),[o,a,n,r,s]);return m.useEffect((()=>{const e=new Set(n);for(const t of d)t.active&&e.delete(t.data.id);e.size>0&&r(new Set(Array.from(n).filter((t=>!e.has(t)))))}),[c]),R.jsx(sc.Provider,{value:f,children:R.jsxs("div",{className:oc,children:[R.jsx(Al,{children:({ref:e,controller:t})=>R.jsx("ul",{ref:e,className:`${oc}__root`,role:"list","aria-multiselectable":!0,onClick:t.defaultClick,onKeyDown:t.defaultKeyDown,children:d.map((e=>R.jsx(lc,{item:e,selected:n.has(e.data.id)},function(e){return e.data.id}(e))))})}),l]})})}var sc=m.createContext(null);function lc(e){const{item:t,selected:n}=e,{highlightText:r,useDragAndDrop:i,selection:o,onSetSelected:a}=function(){const e=m.useContext(sc);if(!e)throw new Error("Reactodia: missing search results context");return e}(),{ref:s,tabIndex:l}=Pl({debugLabel:t.data.id,active:t.active});return R.jsx("li",{ref:s,className:`${oc}__item`,role:"listitem",children:R.jsx(Kl,{tabIndex:l,element:t.data,highlightText:r,disabled:!t.active,selected:Boolean(n),onClick:t.active?e=>a(t,!n,e):void 0,onKeyDown:e=>{t.active&&" "===e.key&&(e.preventDefault(),a(t,!n,e))},onDragStart:i?e=>{const n=[];return o.forEach((e=>n.push(e))),o.has(t.data.id)||n.push(t.data.id),function(e,t){try{e.dataTransfer.setData("application/x-reactodia-elements",JSON.stringify(t))}catch(n){e.dataTransfer.setData("text",JSON.stringify(t))}return!1}(e,n)}:void 0})})}function cc(e){const{className:t,hasQuery:n,minSearchTermLength:r=1,message:i}=e,o=Ht(),a=i??(n?o.text("search_defaults.no_results"):o.text(r<=1?"search_defaults.empty_input_term":"search_defaults.input_term_too_short",{termLength:r}));return R.jsx("div",{className:un("reactodia-no-search-results",t),children:a})}function dc(e){const{model:t,items:n,renderItem:r,expanded:i,defaultExpanded:o,onSetExpanded:a,selected:s,defaultSelected:l,rootProps:c,forestProps:d,itemProps:u}=e,h=m.useMemo((()=>({model:t,renderItem:r,forestProps:d,itemProps:u})),[t,r,d,u]);return R.jsx(Al,{children:({ref:e,controller:t})=>R.jsx(uc,{treeContext:h,items:n,expanded:i,defaultExpanded:o??!1,selected:s,defaultSelected:l,rootProps:{...c,ref:e,onClick:t.defaultClick,onKeyDown:e=>((e,t)=>{if("ArrowUp"===e.key||"ArrowDown"===e.key)t.defaultKeyDown(e);else if("ArrowLeft"===e.key||"ArrowRight"===e.key){if(e.target instanceof HTMLElement&&a){e.preventDefault();const r=Nl(e.target,e.currentTarget,(e=>e.hasAttribute("data-tree-index")));if(!r)return;const i=Number(r.getAttribute("data-tree-index"));if(Number.isFinite(i))if("ArrowLeft"!==e.key||r.hasAttribute("aria-expanded")&&"false"!==r.getAttribute("aria-expanded")){const t=function(e,t){const n=[];let r=e;for(;r&&r!==t;){if(r.hasAttribute("data-tree-index")){const e=Number(r.getAttribute("data-tree-index"));if(!Number.isFinite(e))return;n.push(e)}r=r.parentElement}return n.reverse(),n}(r,e.currentTarget),i=t?function(e,t,n){let r,i,o,a=t;for(const t of n){if(!a||t<0||t>=a.length)return;r=a[t],o?(o.child={child:void 0,key:e.getKey(r)},o=o.child):(i={child:void 0,key:e.getKey(r)},o=i),a=e.getChildren(r)}return r&&i?[r,i]:void 0}(h.model,n,t):void 0;if(i){const[t,n]=i;a(t,n,"ArrowRight"===e.key)}}else t.focusParent({from:r})}}else c?.onKeyDown?.(e)})(e,t)}})})}function uc(e){const{treeContext:t,items:n,parentPath:r,expanded:i,defaultExpanded:o,selected:a,defaultSelected:s,rootProps:l}=e,{model:c,forestProps:d}=t;return R.jsx("ul",{...l??d,children:n.map(((e,n)=>{const l={parent:r,key:c.getKey(e)};return R.jsx(hc,{treeContext:t,item:e,index:n,path:l,expanded:i?.get(l.key),defaultExpanded:o,selected:a?.get(l.key),defaultSelected:s},l.key)}))})}function hc(e){const{treeContext:t,item:n,index:r,path:i,expanded:o,defaultExpanded:a,selected:s,defaultSelected:l}=e,{model:c,renderItem:d,itemProps:u}=t,{ref:h,tabIndex:f}=Pl({active:c.isActive(n)}),p=o?.value??a,g=s?.value??l,v=c.getChildren(n);return R.jsxs("li",{...u,ref:h,"data-tree-index":r,"aria-expanded":v&&0!==v.length?p:void 0,"aria-selected":void 0!==g,children:[d({item:n,path:i,focusProps:{tabIndex:f},expanded:p,selected:g}),p&&v&&v.length>0?R.jsx(uc,{treeContext:t,items:v,parentPath:i,expanded:o?.level,defaultExpanded:a,selected:s?.level,defaultSelected:c.getDefaultSelected(n,g)}):null]})}var fc=class e{states;constructor(e=new Map){this.states=e}[Symbol.iterator](){return this.states[Symbol.iterator]()}get(e){return this.states.get(e)}setAt(t,n){const r=this.states.get(t.key),i=e.setAtItem(r,t.child,n);if(i===r)return this;const o=new Map(this.states);return i?o.set(t.key,i):o.delete(t.key),new e(o)}static setAtItem(t,n,r){if(n){if(t&&t.level){const e=t.level.setAt(n,r);return e===t.level?t:{...t,level:e}}{const i=e.setAtItem(void 0,n.child,r);return i&&i!==t?{value:t?.value,level:new e(new Map([[n.key,i]]))}:i}}const i=r(t?.value);return i===t?.value?t:void 0===i&&void 0===t?.level?void 0:{...t,value:i}}};function pc(e){let t=e.parent,n={key:e.key,child:void 0};for(;t;)n={key:t.key,child:n},t=t.parent;return n}var gc=m.createContext(null),vc="reactodia-class-tree-item";function mc(e){const{nodes:t,selection:n,onSelect:r,searchText:i,creatableClasses:o,onClickCreate:a,onDragCreate:s,draggableItems:l}=e,c=m.useCallback((({item:e,path:t,focusProps:n,expanded:r,selected:i})=>R.jsx(yc,{node:e,path:t,focusProps:n,expanded:r,selected:i})),[]),d=m.useMemo((()=>({className:`${vc}__root`,role:"tree"})),[]),u=m.useMemo((()=>({className:`${vc}__children`,role:"none"})),[]),h=m.useMemo((()=>({className:vc,role:"treeitem"})),[]),f=Boolean(i),[p,g]=m.useState(),v=m.useCallback((e=>{g((t=>(t??new fc).setAt(pc(e),(e=>!(e??f)))))}),[f]);m.useEffect((()=>g(void 0)),[i]);const b=m.useMemo((()=>({searchText:i,creatableClasses:o,onClickCreate:a,onDragCreate:s,draggableItems:l,onExpand:v,onSelect:(e,t)=>r({node:e,selection:(new fc).setAt(pc(t),(()=>e))})})),[i,o,a,s,l,v,r]);return R.jsx(gc.Provider,{value:b,children:R.jsx(dc,{model:wc,items:t,renderItem:c,expanded:p,defaultExpanded:f,onSetExpanded:(e,t,n)=>g((e=>(e??new fc).setAt(t,(()=>n)))),selected:n?.selection,rootProps:d,forestProps:u,itemProps:h})})}var bc=(e,t)=>({...e,derived:t}),wc={getKey:e=>e.iri,getChildren:e=>e.derived,getDefaultSelected:()=>{},isActive:()=>!0};function yc(e){const{node:t,path:n,focusProps:r,expanded:i,selected:o}=e,{searchText:a,creatableClasses:s,onClickCreate:l,onDragCreate:c,draggableItems:d,onExpand:u,onSelect:h}=function(){const e=m.useContext(gc);if(!e)throw new Error("Reactodia: missing class tree context");return e}(),{getElementTypeStyle:f}=cn(),p=Ht(),g=0===t.derived.length?`${vc}__toggle`:i?`${vc}__toggle-expanded`:`${vc}__toggle-collapsed`,v=f([t.iri]),b={"--reactodia-element-style-color":v.color},w=un(`${vc}__body`,o?`${vc}__body--selected`:void 0),y=Ql(t.label,a,{className:`${vc}__highlighted-term`});return R.jsxs("div",{className:`${vc}__row`,style:b,children:[R.jsx("div",{className:g,role:"none",onClick:()=>u(n)}),R.jsxs("a",{...r,className:w,href:t.iri,onClick:e=>{e.preventDefault(),h(t,n)},onKeyDown:e=>{" "===e.key&&(e.preventDefault(),h(t,n))},draggable:d,children:[R.jsx("div",{className:`${vc}__icon-container`,children:v.icon?R.jsx("img",{role:"presentation",className:un(`${vc}__icon`,v.iconMonochrome?`${vc}__icon--monochrome`:void 0),src:v.icon}):R.jsx("div",{className:0===t.derived.length?`${vc}__default-icon-leaf`:`${vc}__default-icon-parent`})}),R.jsx("span",{className:`${vc}__label`,children:y}),t.data?.count?R.jsx("span",{className:`${vc}__count reactodia-badge`,children:t.data.count}):null]}),s.get(t.iri)?R.jsx("button",{...r,title:p.text("search_element_types.drag_create.title"),className:un(`${vc}__create-button`,"reactodia-btn reactodia-btn-default"),draggable:!0,onClick:()=>l(t),onDragStart:e=>{e.dataTransfer.setData("text",""),c(t)}}):null]})}function _c(e){const{searchStore:t,searchTimeout:n=200,minSearchTermLength:r=2}=e,i=rc({initialValue:"",submitTimeout:n,allowSubmit:e=>Cc(e).length>=r}),o=t??i,a=Lt(o.events,"changeValue",(()=>Cc(o.value))),s=cn(),l=Ht();return R.jsx(Sc,{...e,isControlled:Boolean(t),searchStore:o,normalizedTerm:a,minSearchTermLength:r,workspace:s,translation:l})}var kc="reactodia-class-tree",xc=new Map,Sc=class extends m.Component{listener=new _r;searchListener=new _r;loadClassesOperation=new AbortController;refreshOperation=new AbortController;createElementCancellation=new AbortController;constructor(e){super(e),this.state={fetchedGraph:void 0,refreshingState:"none",roots:[],filteredRoots:[],appliedSearchText:"",constructibleClasses:new Map,showOnlyConstructible:!1}}render(){const{className:e,isControlled:t,searchStore:n,normalizedTerm:r,minSearchTermLength:i,draggableItems:o=!0,workspace:{editor:a},translation:s}=this.props,{fetchedGraph:l,refreshingState:c,appliedSearchText:d,roots:u,filteredRoots:h,selection:f,constructibleClasses:p,showOnlyConstructible:g}=this.state,v=d?r:void 0;return R.jsxs("div",{className:un(kc,t?`${kc}--controlled`:void 0,e),children:[R.jsx("div",{className:`${kc}__filter`,children:R.jsxs("div",{className:`${kc}__filter-group`,children:[t?null:R.jsx(nc,{store:n,inputProps:{name:"reactodia-class-tree-filter",placeholder:s.textOptional("search_element_types.input.placeholder")}}),a.inAuthoringMode?R.jsxs("label",{className:`${kc}__only-creatable`,children:[R.jsx("input",{type:"checkbox",name:"reactodia-class-tree-only-constructible",checked:g,onChange:this.onShowOnlyCreatableChange})," ",s.text("search_element_types.show_only_creatable")]}):null]})}),R.jsx(ec,{state:c,title:s.text("search_element_types.refresh_progress.title")}),l?.classTree?R.jsxs("div",{className:`${kc}__tree reactodia-scrollable`,tabIndex:-1,children:[R.jsx(mc,{nodes:h,searchText:v,selection:f,onSelect:this.onSelectNode,creatableClasses:a.inAuthoringMode?p:xc,onClickCreate:this.onCreateInstance,onDragCreate:this.onDragCreate,draggableItems:o}),0===h.length?R.jsx(cc,{className:`${kc}__no-results`,hasQuery:h!==u,minSearchTermLength:i,message:0===u.length?s.text("search_element_types.no_results"):void 0}):null]}):R.jsx("div",{className:`${kc}__spinner`,children:R.jsx(en,{width:30,height:30,errorOccurred:Boolean(l?.fetchError)})})]})}componentDidMount(){const{workspace:{model:e,editor:t}}=this.props;this.listener.listen(e.events,"changeLanguage",(()=>this.refreshClassTree())),this.listener.listen(e.events,"loadingStart",(()=>{this.initClassTree()})),this.listener.listen(t.events,"changeMode",(()=>this.refreshClassTree())),this.listenSearch(),this.initClassTree()}componentDidUpdate(e){this.props.searchStore.events!==e.searchStore.events&&this.listenSearch()}listenSearch(){const{searchStore:e}=this.props;this.searchListener.stopListening(),this.searchListener.listen(e.events,"executeSearch",(({value:e})=>{this.performSearch(e)})),this.searchListener.listen(e.events,"clearSearch",(()=>{this.performSearch("")}))}componentWillUnmount(){this.listener.stopListening(),this.searchListener.stopListening(),this.loadClassesOperation.abort(),this.refreshOperation.abort(),this.createElementCancellation.abort()}initClassTree(){const{workspace:{model:e}}=this.props,{fetchedGraph:t}=this.state,{dataProvider:n}=e;t&&t.dataProvider===n?this.refreshClassTree():n?this.setState({fetchedGraph:void 0},(()=>{this.fetchTypeGraph(n)})):this.refreshClassTree()}async fetchTypeGraph(e){const t=new AbortController;this.loadClassesOperation.abort(),this.loadClassesOperation=t;let n=null;try{n=await pr(e.knownElementTypes({signal:t.signal}),t.signal)}catch(t){return console.error(t),void this.setState({fetchedGraph:{dataProvider:e,fetchError:t}})}if(null===n)return;const r=function(e){const t=new Map;for(const n of e.elementTypes){const e={id:n.id,label:n.label,count:n.count,children:[]};t.set(e.id,e)}const n=new Map;for(const[t,r]of e.subtypeOf)xt(n,t,r);const r=[],i=new Set,o=new Set,a=e=>{if(o.has(e))return;i.add(e);const t=n.get(e);if(t)for(const n of t)i.has(n)?r.push([e,n]):a(n);i.delete(e)};for(const e of t.keys())a(e);for(const[e,t]of r){const r=n.get(e);r&&r.delete(t)}const s=[];for(const e of t.values()){const r=n.get(e.id);if(r&&0!==r.size)for(const n of r){const r=t.get(n);r&&r.children.push(e)}else s.push(e)}return s}(n);this.setState({fetchedGraph:{dataProvider:e,classTree:r}},(()=>{this.refreshClassTree()}))}performSearch=e=>{const t=Cc(e);this.setState((e=>Mc({...e,appliedSearchText:t})))};onShowOnlyCreatableChange=()=>{this.setState((e=>Mc({...e,showOnlyConstructible:!e.showOnlyConstructible})))};onSelectNode=e=>{const{workspace:{getCommandBus:t}}=this.props;this.setState({selection:e},(()=>{t(Fs).trigger("setCriteria",{criteria:{elementType:e.node.iri}})}))};onCreateInstance=e=>{this.createInstanceAt(e.iri)};onDragCreate=e=>{const{workspace:{view:t}}=this.props;t.setHandlerForNextDropOnPaper((t=>{this.createInstanceAt(e.iri,t)}))};refreshClassTree=()=>{const e=new AbortController;let t;this.refreshOperation.abort(),this.refreshOperation=e,this.setState(((e,n)=>{const{workspace:{model:r,editor:i},translation:o}=n,a=e.fetchedGraph?.classTree;if(!a)return{refreshingState:"none"};let s="none";if(i.inAuthoringMode){const n=function(e,t){const n=new Set,r=t=>{e.has(t.id)||n.add(t.id),t.children.forEach(r)};return t.forEach(r),n}(e.constructibleClasses,a);n.size>0&&(s="loading",t=n)}const l=function(e,t,n){const r=e=>{const i=[];for(const o of e)i.push({iri:o.id,data:o,label:n.formatLabel(o.label,o.id,t.language),derived:r(o.children)});return i};return r(e)}(a,r,o);return Mc({...e,roots:Lc(l),refreshingState:s})}),(()=>{t&&this.queryCreatableTypes(t,e.signal)}))};async queryCreatableTypes(e,t){const{workspace:{editor:n}}=this.props,{metadataProvider:r}=n;if(r)try{const n=await pr(r.filterConstructibleTypes(e,{signal:t}),t);if(null===n)return;this.setState((t=>{const r=new Map(t.constructibleClasses);return e.forEach((e=>{r.set(e,n.has(e))})),Mc({...t,constructibleClasses:r,refreshingState:"completed"})}))}catch(e){console.error(e),this.setState((e=>Mc({...e,refreshingState:"error"})))}}async createInstanceAt(e,t){const{placeCreatedEntity:n,workspace:{model:r,view:i,editor:o,getCommandBus:a},translation:s}=this.props,l=r.history.startBatch();this.createElementCancellation.abort(),this.createElementCancellation=new AbortController;const c=this.createElementCancellation.signal,d=await pr(o.metadataProvider.createEntity(e,{translation:s,language:r.language,signal:c}),c);if(null===d)return;const u=o.createEntity(d.data);let h;if(d.elementState&&u.setElementState(d.elementState),t)h=[t.source,t.position];else{const e=i.findAnyCanvas();e&&(h=[e,Ec(e)])}if(h){const[e,t]=h;u.setPosition(t),e.renderingState.syncUpdate(),function(e,t,n){const r=n.getElementSize(e)??{width:0,height:0};e.setPosition({x:t.x-r.width/2,y:t.y-r.height/2})}(u,t,e.renderingState)}n&&await n(u,t),l.store(),r.setSelection([u]),a(qs).trigger("editEntity",{target:u})}};function Cc(e){return e.trim().toLowerCase()}function Lc(e){function t(e){if(0===e.length)return e;const t=e.map(n);return t.sort(r),t}function n(e){return bc(e,t(e.derived))}function r(e,t){return e.label.localeCompare(t.label)}return t(e)}function Mc(e){let t=e.roots;return e.appliedSearchText&&(t=function(e,t){if(0===e.length)return e;const n=Ar(t);return e.reduce((function e(t,r){const i=r.derived.reduce(e,[]);return(i.length>0||n(r.label))&&t.push(bc(r,i)),t}),[])}(t,e.appliedSearchText)),e.showOnlyConstructible&&(n=e.constructibleClasses,t=t.reduce((function e(t,r){const i=r.derived.reduce(e,[]);return(i.length>0||n.get(r.iri))&&t.push(bc(r,i)),t}),[])),{...e,filteredRoots:t};var n}function Ec(e){const t=e.metrics.pane;return e.metrics.clientToPaperCoords(t.clientWidth/2,t.clientHeight/2)}var zc="reactodia-paper",$c=class extends m.Component{rootRef=m.createRef();paneRef=m.createRef();resizeObserver;viewportAnimation;movingState;metrics;constructor(e){var t;super(e),this.state={paneRef:this.paneRef,contentBounds:this.props.contentBounds,pageSize:this.props.pageSize,transform:(t=this.props.pageSize,{width:t.width,height:t.height,originX:0,originY:0,scale:1,paddingX:0,paddingY:0}),mounted:!1},this.resizeObserver=new ResizeObserver(this.onResize),this.metrics=new class extends Tc{paper;constructor(e){super(),this.paper=e}get pane(){return this.paper.pane??Ac}get transform(){return this.paper.state.transform}getClientRect(){return this.paper.pane?.getBoundingClientRect()??Ic}}(this)}get root(){return this.rootRef.current}get pane(){return this.paneRef.current}render(){const{className:e,style:t,showScrollbars:n,panOnTouch:r=!0,onContextMenu:i,onKeyDown:o,onKeyUp:a,renderLayers:s,watermark:l,children:c}=this.props,{transform:d,mounted:u}=this.state,{width:h,height:f,scale:p,paddingX:g,paddingY:v}=d,m={width:h*p+g,height:f*p+v,marginLeft:g,marginTop:v,paddingRight:g,paddingBottom:v};return R.jsxs("div",{ref:this.rootRef,className:un(zc,e,r?`${zc}--pan-on-touch`:void 0,n?void 0:`${zc}--hide-scrollbars`),style:t,tabIndex:0,onKeyDown:o,onKeyUp:a,children:[R.jsxs("div",{className:`${zc}__pane`,ref:this.paneRef,onPointerDown:this.onAreaPointerDown,children:[R.jsx("div",{className:`${zc}__layers`,style:m,onPointerDown:this.onPointerDown,onContextMenu:i,onScrollCapture:this.onScrollCapture,children:u?s(d):null}),l]}),u?c:void 0]})}componentDidMount(){const e=this.pane;e.addEventListener("dragover",this.onDragOver),e.addEventListener("drop",this.onDragDrop),e.addEventListener("scroll",this.onScrollPassive,{passive:!0}),e.addEventListener("wheel",this.onWheel,{passive:!1}),this.resizeObserver.observe(e),this.setState({mounted:!0})}static getDerivedStateFromProps(e,t){const n=t.paneRef.current;if(n&&(!Ni.equals(e.contentBounds,t.contentBounds)||e.pageSize.width!==t.pageSize.width||e.pageSize.height!==t.pageSize.height)){const{clientWidth:r,clientHeight:i}=n,o=function(e,t,n,r){const i=e.x,o=e.y,a=e.x+e.width,s=e.y+e.height,{width:l,height:c}=n,d=Math.floor(i/l),u=Math.floor(o/c),h=Math.ceil(a/l),f=Math.ceil(s/c);return{width:Math.max(h-d,1)*l,height:Math.max(f-u,1)*c,originX:-d*l,originY:-u*c,paddingX:Math.ceil(t.width),paddingY:Math.ceil(t.height),scale:r}}(e.contentBounds,{width:r,height:i},e.pageSize,t.transform.scale);return bo(t.transform,o)?null:{...t,contentBounds:e.contentBounds,pageSize:e.pageSize,transform:o}}return null}getSnapshotBeforeUpdate(e,t){const{contentBounds:n,pageSize:r}=this.props,{paneRef:i,transform:o}=this.state,a=i.current,s=Ni.equals(n,e.contentBounds)&&r.width===e.pageSize.width&&r.height===e.pageSize.height;let l;return!a||s||bo(o,t.transform)||(l={left:a.scrollLeft,top:a.scrollTop}),{scroll:l}}componentDidUpdate(e,t,n){const r=this.state.paneRef.current;if(r&&n.scroll){const{scale:e,originX:i,originY:o,paddingX:a,paddingY:s}=this.state.transform,l=t.transform,c=n.scroll.top+((o-l.originY)*e+(s-l.paddingY));r.scrollLeft=n.scroll.left+((i-l.originX)*e+(a-l.paddingX)),r.scrollTop=c}bo(this.state.transform,t.transform)||this.props.onChangeTransform?.(t.transform)}componentWillUnmount(){const e=this.pane;this.stopListeningToPointerMove(),e.removeEventListener("dragover",this.onDragOver),e.removeEventListener("drop",this.onDragDrop),e.removeEventListener("scroll",this.onScrollPassive),e.removeEventListener("wheel",this.onWheel),this.resizeObserver.disconnect()}onAreaPointerDown=e=>{e.target===this.pane&&this.onPointerDown(e)};onPointerDown=e=>{if(this.movingState)return void this.handleMultiPointerDown(e);const t=this.props.onPointerOperation?.(e);if(!t)return;let n;if("move"!==t.action&&"mouse"!==e.pointerType||e.preventDefault(),"panning"===t.action){const{scrollLeft:e,scrollTop:t}=this.pane;n={scrollLeft:e,scrollTop:t},document.getSelection&&document.getSelection()?.removeAllRanges?.()}const{pageX:r,pageY:i}=e;this.movingState={operation:t,pointers:new Map,pointerMoved:!1,originPointerId:e.pointerId,origin:{pageX:r,pageY:i},panningOrigin:n,pinchOrigin:void 0},this.handleMultiPointerDown(e),document.addEventListener("pointermove",this.onPointerMove),document.addEventListener("pointerup",this.onPointerUp),"mouse"!==e.pointerType&&document.addEventListener("pointercancel",this.onPointerCancel),t.onPointerDown(e)};handleMultiPointerDown(e){if(!this.movingState)return;const{pointers:t}=this.movingState;t.set(e.pointerId,{x:e.pageX,y:e.pageY}),this.movingState.pinchOrigin||2!==t.size||(e.preventDefault(),this.movingState.pinchOrigin={pointers:new Map(t),metrics:this.metrics.snapshot()})}onPointerMove=e=>{if(!this.movingState)return;const{origin:t,operation:n,panningOrigin:r}=this.movingState,i=e.pageX-t.pageX,o=e.pageY-t.pageY;if(e.isPrimary&&Math.abs(i)>=1&&Math.abs(o)>=1&&(this.movingState.pointerMoved=!0),this.handleMultiPointerMove(e));else{if(e.preventDefault(),r){const e=this.pane;e.classList.add(`${zc}--panning`),e.scrollLeft=r.scrollLeft-i,e.scrollTop=r.scrollTop-o}n.onPointerMove(e)}};handleMultiPointerMove(e){if(!this.movingState)return!1;const{pointers:t,pinchOrigin:n}=this.movingState;if(t.set(e.pointerId,{x:e.pageX,y:e.pageY}),!n)return!1;const[[r,i],[o,a]]=n.pointers,s=t.get(r),l=t.get(o);if(!s||!l)return!1;const c=$i.scale($i.add(s,l),.5),d=$i.scale($i.add(i,a),.5),u=$i.length($i.subtract(l,s))/Math.max($i.length($i.subtract(a,i)),1),h=n.metrics,f=h.clientToPaperCoords(h.pane.clientWidth/2,h.pane.clientHeight/2),p=h.pageToPaperCoords(c.x,c.y),g=h.pageToPaperCoords(d.x,d.y),v=$i.add(g,$i.scale($i.subtract(f,p),1/u));return this.centerViewport(v,{scale:h.transform.scale*u}),!0}onPointerUp=e=>{if(this.movingState){const{originPointerId:t,pointers:n,pinchOrigin:r}=this.movingState;n.delete(e.pointerId),(e.pointerId===t||r&&n.size<2)&&this.stopListeningToPointerMove(e)}};onPointerCancel=()=>{this.stopListeningToPointerMove()};onScrollCapture=e=>{this.movingState?.operation.hasSameTarget(e)&&this.stopListeningToPointerMove()};stopListeningToPointerMove=e=>{const t=this.movingState;if(this.movingState=void 0,t){this.pane.classList.remove(`${zc}--panning`),document.removeEventListener("pointermove",this.onPointerMove),document.removeEventListener("pointerup",this.onPointerUp),document.removeEventListener("pointercancel",this.onPointerCancel);const{operation:n,pointerMoved:r,pinchOrigin:i}=t;e&&!i?n.onPointerUp(e,{triggerAsClick:!r}):n.onPointerCancel(e)}};onWheel=e=>{const{wheelToScaleDelta:t}=this.props.scaleDefaults,n=t(e);if(void 0!==n){e.preventDefault();const t=this.metrics.pageToPaperCoords(e.pageX,e.pageY);this.setScale(this.scale+n,{pivot:t})}};onResize=()=>{this.props.onResize?.()};centerViewport(e,t){if("number"==typeof t.scale){const{min:n,max:r}=this.props.scaleDefaults;let i=t.scale;return i=Math.max(i,n),i=Math.min(i,r),this.setViewportState({center:e,scale:{x:i,y:i}},t)}return this.setViewportState({center:e},t)}get scale(){return this.state.transform.scale}setScale(e,t){let n=e;const{min:r,max:i}=this.props.scaleDefaults;let o;if(n=Math.max(n,r),n=Math.min(n,i),t&&t.pivot){const{x:e,y:r}=t.pivot,i=this.pane,a=this.metrics.clientToPaperCoords(i.clientWidth/2,i.clientHeight/2),s=n/this.state.transform.scale;o={center:{x:e-(e-a.x)/s,y:r-(r-a.y)/s},scale:{x:n,y:n}}}else o={scale:{x:n,y:n}};return this.setViewportState(o,t)}scaleToFitRect(e,t={}){const{clientWidth:n,clientHeight:r}=this.pane;if(0===e.width)return Promise.resolve();const{min:i,maxFit:o}=this.props.scaleDefaults,{width:a}=Oi(e,n,r);let s=a/e.width;return s=Math.max(s,i),s=Math.min(s,o),this.setViewportState({center:{x:e.x+e.width/2,y:e.y+e.height/2},scale:{x:s,y:s}},t)}onDragOver=e=>{const t=Pc(this.pane,e);this.props.onDragOver?.(e,t)?e.preventDefault():e.dataTransfer&&(e.dataTransfer.dropEffect="none")};onDragDrop=e=>{const t=Pc(this.pane,e);this.props.onDragDrop?.(e,t)};onScrollPassive=e=>{this.props.onScrollPassive?.(e)};get viewportState(){const{clientWidth:e,clientHeight:t,scrollLeft:n,scrollTop:r}=this.pane,{originX:i,originY:o,paddingX:a,paddingY:s,scale:l}=this.state.transform;return{center:{x:(n+e/2-a)/l-i,y:(r+t/2-s)/l-o},scale:{x:l,y:l}}}setViewportState(e,t){this.viewportAnimation&&this.viewportAnimation.cancellation.abort();const n=this.viewportState,r={...n,...e};if(t&&(t.animate||t.duration&&t.duration>0)){const e={from:n,to:r,cancellation:new AbortController},s=(i="number"==typeof t.duration?t.duration:this.props.viewportDefaults.duration,o=e=>{const t=function(e){return e<0?0:e>1?1:e*e*(3-2*e)}(e);this.applyViewportState({center:{x:n.center.x+(r.center.x-n.center.x)*t,y:n.center.y+(r.center.y-n.center.y)*t},scale:{x:n.scale.x+(r.scale.x-n.scale.x)*t,y:n.scale.y+(r.scale.y-n.scale.y)*t}})},a=e.cancellation.signal,new Promise((e=>{let t,n,r;const s=l=>{if(a&&a.aborted)return;n=n||l;let c=l-n;c>i&&(c=i),o(c/i),c<i?t=requestAnimationFrame(s):(r?.(),e())};if(a){const n=()=>{cancelAnimationFrame(t),r?.(),e()};r=()=>{a.removeEventListener("abort",n)},a.addEventListener("abort",n)}t=requestAnimationFrame(s)})));return this.viewportAnimation=e,s.then((()=>{this.viewportAnimation=void 0}))}return this.applyViewportState(r),Promise.resolve();var i,o,a}applyViewportState(e){const t=e.scale.x,n=e.center;this.setState((e=>({transform:{...e.transform,scale:t}})),(()=>{const e=this.pane,{originX:r,originY:i,paddingX:o,paddingY:a}=this.state.transform,s=(n.x+r)*t,l=(n.y+i)*t,{clientWidth:c,clientHeight:d}=e;e.scrollLeft=s-c/2+o,e.scrollTop=l-d/2+a}))}},Tc=class{get area(){return this.pane}snapshot(){const{clientWidth:e,clientHeight:t,offsetWidth:n,offsetHeight:r,scrollLeft:i,scrollTop:o}=this.pane,{left:a,right:s,top:l,bottom:c}=this.getClientRect();return new Nc({clientWidth:e,clientHeight:t,offsetWidth:n,offsetHeight:r,scrollLeft:i,scrollTop:o},{left:a,right:s,top:l,bottom:c},this.transform)}getTransform(){return this.transform}getPaperSize(){const{width:e,height:t,scale:n}=this.transform;return{width:e/n,height:t/n}}getViewportPageRect(){const{left:e,right:t,top:n,bottom:r}=this.getClientRect();return{x:e+window.scrollX,y:n+window.scrollY,width:t-e,height:r-n}}pageToPaperCoords(e,t){const{left:n,top:r}=this.getClientRect();return this.clientToPaperCoords(e-(n+window.scrollX),t-(r+window.scrollY))}paperToPageCoords(e,t){const{x:n,y:r}=this.paperToScrollablePaneCoords(e,t),{x:i,y:o}=this.scrollablePaneToClientCoords(n,r),{left:a,top:s}=this.getClientRect();return{x:i+(a+window.scrollX),y:o+(s+window.scrollY)}}clientToPaperCoords(e,t){const{x:n,y:r}=this.clientToScrollablePaneCoords(e,t);return this.scrollablePaneToPaperCoords(n,r)}clientToScrollablePaneCoords(e,t){const{paddingX:n,paddingY:r}=this.transform,{scrollLeft:i,scrollTop:o}=this.pane;return{x:e+i-n,y:t+o-r}}scrollablePaneToClientCoords(e,t){const{paddingX:n,paddingY:r}=this.transform,{scrollLeft:i,scrollTop:o}=this.pane;return{x:e-i+n,y:t-o+r}}scrollablePaneToPaperCoords(e,t){return yo({x:e,y:t},this.transform)}paperToScrollablePaneCoords(e,t){return wo({x:e,y:t},this.transform)}},Nc=class extends Tc{pane;clientRect;transform;constructor(e,t,n){super(),this.pane=e,this.clientRect=t,this.transform=n}getClientRect(){return this.clientRect}snapshot(){return this}},Ac={clientWidth:0,clientHeight:0,offsetWidth:0,offsetHeight:0,scrollLeft:0,scrollTop:0},Ic={left:0,right:0,top:0,bottom:0};function Pc(e,t){const n=(t.target instanceof SVGElement&&null!==t.target.ownerSVGElement?t.target.ownerSVGElement:t.target).getBoundingClientRect(),r=e.getBoundingClientRect();return{x:t.offsetX+(n.left-r.left),y:t.offsetY+(n.top-r.top)}}var Vc="http://www.w3.org/2000/svg";async function Hc(e){const{colorSchemeApi:t,contentBox:n,watermarkSvg:r,preserveDimensions:i,convertImagesToDataUris:o,removeByCssSelectors:a=[]}=e;let s,l;t.actInColorScheme("light",(()=>{s=function(e,t){const n=document.createElementNS(Vc,"svg"),r=document.createElementNS(Vc,"g");r.setAttribute("class","reactodia-exported-canvas"),n.appendChild(r);const i=Object.create(null);for(const n of e)if(n instanceof SVGSVGElement){const e=Dc(n.cloneNode(!0));e.removeAttribute("transform"),r.appendChild(e)}else if(n instanceof HTMLElement){const e=n.cloneNode(!0);e.classList.add("reactodia-exported-layer"),e.setAttribute("style",`transform: translate(${-t.x}px,${-t.y}px)`);const o=document.createElementNS(Vc,"foreignObject");o.appendChild(e),o.setAttribute("transform",`translate(${t.x},${t.y})`),o.setAttribute("width",String(t.width)),o.setAttribute("height",String(t.height));const a=document.createElementNS(Vc,"g");a.appendChild(o),r.appendChild(a);const s=e.querySelectorAll("img");let l=0;for(const e of n.querySelectorAll("img")){const t=l;l++;const n=`export-key-${t}`;s[t].setAttribute("export-key",n),i[n]={width:e.clientWidth,height:e.clientHeight}}}return{composedSvg:n,imageBounds:i}}(e.layers,n);const t=new Set;var r;r=t,Bc((e=>{for(let t=0;t<e.style.length;t++){const n=e.style[t];n.startsWith("--")&&!r.has(n)&&r.add(n)}})),function(e,t){const n=e=>{if(e instanceof HTMLElement)for(let n=0;n<e.style.length;n++){const r=e.style[n];r.startsWith("--")&&!t.has(r)&&t.add(r)}};jc(e,n);let r=e.parentElement;for(;r;)n(r),r=r.parentElement}(s.composedSvg,t),l=function(e,t){const n=new Map,r=getComputedStyle(e);for(const e of r)if(e.startsWith("--")){const t=r.getPropertyValue(e);n.set(e,t)}for(const e of t)if(!n.has(e)){const t=r.getPropertyValue(e);void 0!==t&&n.set(e,t)}return n}(e.styleRoot,t)}));const{composedSvg:c,imageBounds:d}=s;for(const e of a)for(const t of c.querySelectorAll(e))t.remove();const u=function(e){const t=[];return Bc((n=>{const r=(i=n.selectorText).includes("::")?i.split(",").map((e=>e.replace(/::[a-zA-Z-]+/g,"").trim())).filter(Boolean).join(", "):i;var i;r&&e.querySelector(r)&&t.push(n)})),t}(c),h=new Map;o&&(function(e,t){for(const n of e.querySelectorAll("img"))n.src&&!t.has(n.src)&&t.set(n.src,null)}(c,h),function(e,t){for(const n of e){const e=Rc(n.style.getPropertyValue("mask-image"));e&&!t.has(e)&&t.set(e,null);const r=Rc(n.style.getPropertyValue("background-image"));r&&!t.has(r)&&t.set(r,null)}}(u,h),function(e,t){jc(e,(e=>{if(e instanceof HTMLElement){const n=Rc(e.style.maskImage);n&&!t.has(n)&&t.set(n,null);const r=Rc(e.style.backgroundImage);r&&!t.has(r)&&t.set(r,null)}}))}(c,h)),i?(c.setAttribute("width",String(n.width)),c.setAttribute("height",String(n.height))):(c.setAttribute("width","100%"),c.setAttribute("height","100%")),c.setAttribute("viewBox",`${n.x} ${n.y} ${n.width} ${n.height}`),r&&function(e,t,n){const r=document.createElementNS(Vc,"image");r.setAttributeNS("http://www.w3.org/1999/xlink","href",n),r.setAttribute("class","reactodia-exported-watermark");const i=Math.min(.2*t.width,120),o=t.y+20;r.setAttribute("x",(t.x+t.width-i-20).toString()),r.setAttribute("y",o.toString()),r.setAttribute("width",i.toString()),r.setAttribute("opacity","0.3"),e.insertBefore(r,e.firstChild)}(c,n,r),await async function(e){await Promise.all(Array.from(e.keys(),(async t=>{if(!t.startsWith("data:"))try{const n=await async function(e){if(!e||e.startsWith("data:"))return e;const t=e.match(/\.([a-zA-Z0-9]+)[^.a-zA-Z0-9]?[^.]*$/),n=t?t[1].toLowerCase():void 0;if("svg"===n)try{const t=await fetch(e);if(t.ok){const e=await t.text();if(e.length>0)return"data:image/svg+xml,"+encodeURIComponent(e.replace(/\r\n/g,"\n"))}}catch(e){}const r=await function(e){const t=new Image;t.crossOrigin="anonymous";const n=new Promise(((e,n)=>{t.onload=()=>e(t),t.onerror=e=>n(e)}));return t.src=e,n}(e),i=document.createElement("canvas");i.width=r.width,i.height=r.height,i.getContext("2d").drawImage(r,0,0);try{return i.toDataURL("image/"+("jpg"===n?"jpeg":"png"))}catch(t){throw new Error(`Failed to convert image to data URI: ${e}`,{cause:t})}}(t);n&&"data:image/svg+xml,"!==n&&e.set(t,n)}catch(e){console.warn("Reactodia: Failed to export image: "+t,e)}})))}(h);for(const e of c.querySelectorAll("img")){const t=e.getAttribute("export-key");if(e.removeAttribute("export-key"),t){const{width:n,height:r}=d[t];e.setAttribute("width",n.toString()),e.setAttribute("height",r.toString());const i=h.get(e.src);i&&(e.src=i)}}!function(e,t){jc(e,(e=>{if(e instanceof HTMLElement){const n=Rc(e.style.maskImage),r=n?t.get(n):void 0;r&&(e.style.maskImage=Oc(r));const i=Rc(e.style.backgroundImage),o=i?t.get(i):void 0;o&&(e.style.backgroundImage=Oc(o))}}))}(c,h);const f=document.createElementNS("http://www.w3.org/2000/svg","defs");return f.innerHTML=`<style>${function(e){const t=[":root {\n"];for(const[n,r]of e)t.push(" ",n,": ",r,";\n");return t.push("}\n"),t.join("")}(l)}</style>\n<style>${function(e,t){const n=e.map((e=>e.cssText)),r=document.createElement("style");document.body.appendChild(r);const i=r.sheet;try{for(let r=0;r<e.length;r++){const o=e[r],a=Rc(o.style.getPropertyValue("mask-image")),s=a?t.get(a):void 0,l=Rc(o.style.getPropertyValue("background-image")),c=l?t.get(l):void 0;if(i&&(s||c)){i.insertRule(o.cssText);const e=i.cssRules[0];e instanceof CSSStyleRule&&(s&&e.style.setProperty("mask-image",Oc(s)),c&&e.style.setProperty("background-image",Oc(c)),n[r]=e.cssText),i.deleteRule(0)}}}finally{document.body.removeChild(r)}return n.join("\n")}(u,h)}</style>`,c.insertBefore(f,c.firstChild),c}function Rc(e){if(e){const t=e.trim();let n=/^url\(\s*'(.*)'\s*\)$/i.exec(t);if(n)return n[1];if(n=/^url\(\s*"(.*)"\s*\)$/i.exec(t),n)return n[1]}}function Oc(e){return`url("${e}")`}function Dc(e){let t=e.firstChild;for(;t;){if(t instanceof SVGGElement)return t;t=t.nextSibling}}function Bc(e){const t=new WeakSet,n=r=>{if(!t.has(r))if(t.add(r),r instanceof CSSStyleRule)e(r);else if(r instanceof CSSLayerBlockRule)for(const e of r.cssRules)n(e)};for(let e=0;e<document.styleSheets.length;e++){let t;try{const n=document.styleSheets[e];if(t=n.cssRules||n.rules,!t)continue}catch(e){continue}for(const e of t)n(e)}}function jc(e,t){const n=new WeakSet,r=e=>{if(!n.has(e)){n.add(e),t(e);for(const t of e.children)r(t)}};r(e)}var Fc={width:8192,height:8192};var Uc="reactodia-canvas-area",qc={width:1500,height:800},Wc={duration:500};function Gc(e){const{model:t,renderingState:n,zoomOptions:r,showScrollBars:i,watermarkSvg:o,watermarkUrl:a,children:s}=e,l=m.useContext(wr),c=m.useRef(null),d=m.useRef(null),u=m.useRef(null),h=m.useRef(null),[f]=m.useState((()=>function(){const e={underlay:document.createElement("div"),overLinkGeometry:document.createElement("div"),overLinks:document.createElement("div"),overElements:document.createElement("div")};for(const t of Object.values(e))t.style.display="contents";return{containers:e}}())),p=m.useMemo((()=>function(e={}){return{min:e.min??.2,max:e.max??2,maxFit:e.maxFit??1,step:e.step??.1,fitPadding:e.fitPadding??20,requireCtrl:e.requireCtrl??!1}}(r)),[r]),[g,v]=m.useState({x:0,y:0,width:0,height:0}),[b,w]=m.useState("panning"),[y,_]=m.useState({count:0}),k={colorSchemeApi:l,graphAnimations:y,watermarkSvg:o,zoomOptions:p},[x]=m.useState((()=>new Zc(t,n,k,{setContentBounds:v,setPointerMode:w,setGraphAnimations:_},c,d,u,h)));m.useEffect((()=>x.setProvidedState(k)));const S=m.useMemo((()=>({canvas:x,model:t})),[t,x]),C=m.useMemo((()=>({min:p.min,max:p.max,maxFit:p.maxFit,wheelToScaleDelta:x.getWheelToScaleDelta})),[p]);m.useLayoutEffect((()=>(x.centerTo(),()=>x.stopListening())),[]);const L={"--reactodia-canvas-animation-duration":void 0===y.duration?void 0:`${y.duration}ms`};return R.jsx(Ei.Provider,{value:S,children:R.jsx($c,{ref:c,className:un(Uc,y.count>0?`${Uc}--animated`:void 0),style:L,panOnTouch:"panning"===b,showScrollbars:i,scaleDefaults:C,viewportDefaults:Wc,onChangeTransform:x.onChangeTransform,onContextMenu:x.onContextMenu,onDragOver:x.onDragOver,onDragDrop:x.onDragDrop,onKeyDown:x.onKeyDown,onKeyUp:x.onKeyUp,onPointerOperation:x.onPointerOperation,onResize:x.onResize,onScrollPassive:x.onScrollPassive,pageSize:qc,contentBounds:g,renderLayers:e=>R.jsxs(R.Fragment,{children:[R.jsx(ia,{layer:"underlay",context:f,className:`${Uc}__widgets`}),R.jsxs(mo,{layerRef:d,className:`${Uc}__linkGeometry`,style:{overflow:"visible"},paperTransform:e,role:"figure",children:[R.jsx(Ko,{model:t,renderingState:n}),R.jsx(Ho,{model:t,renderingState:n})]}),R.jsx(ia,{layer:"overLinkGeometry",context:f,className:`${Uc}__widgets`}),R.jsx(Fo,{renderingState:n,paperTransform:e,layerRef:u}),R.jsx(ia,{layer:"overLinks",context:f,className:`${Uc}__widgets`}),R.jsx(Mo,{layerRef:h,model:t,renderingState:n,paperTransform:e}),R.jsx(ia,{layer:"overElements",context:f,className:`${Uc}__widgets`})]}),watermark:o?R.jsx("a",{href:a,target:"_blank",rel:"noreferrer",children:R.jsx("img",{className:`${Uc}__watermark`,src:o,draggable:!1})}):null,children:R.jsx(ra.Provider,{value:f,children:s})})})}var Zc=class{model;renderingState;state;setters;_paper;linkLayer;labelLayer;elementLayer;listener=new _r;source=new yr;events=this.source;_contentBounds={x:0,y:0,width:0,height:0};_pointerMode="panning";constructor(e,t,n,r,i,o,a,s){this.model=e,this.renderingState=t,this.state=n,this.setters=r,this._paper=i,this.linkLayer=o,this.labelLayer=a,this.elementLayer=s;const l=()=>{t.scheduleOnLayerUpdate(ko.PaperArea,this.updateContentBounds)};this.listener.listen(e.events,"changeCells",l),this.listener.listen(e.events,"elementEvent",(({data:e})=>{e.changePosition&&l()})),this.listener.listen(e.events,"linkEvent",(({data:e})=>{e.changeVertices&&l()})),this.listener.listen(t.events,"changeElementSize",l),this.listener.listen(t.shared.events,"findCanvas",(e=>{e.canvases.push(this)}))}get paper(){const e=this._paper.current;if(!e)throw new Error("Reactodia: canvas paper is not initialized yet");return e}stopListening(){this.listener.stopListening()}setProvidedState(e){this.state=e}onChangeTransform=e=>{this.source.trigger("changeTransform",{previous:e,source:this}),this.paper.metrics.transform.scale!==e.scale&&this.source.trigger("changeScale",{previous:e.scale,source:this})};onContextMenu=e=>{if(!this.isEventFromCellLayer(e))return;const t=Kc(e.target,e.currentTarget,this.model);this.source.trigger("contextMenu",{source:this,sourceEvent:e,target:t})};onDragOver=(e,t)=>{if(this.renderingState.shared.hasHandlerForNextDropOnPaper())return e.dataTransfer&&(e.dataTransfer.dropEffect="move"),!0;{const{x:n,y:r}=t,i=this.metrics.clientToPaperCoords(n,r);let o=!1;return this.source.trigger("dragover",{source:this,sourceEvent:e,position:i,allowDrop:()=>{o=!0}}),o}};onDragDrop=(e,t)=>{const{x:n,y:r}=t,i={source:this,sourceEvent:e,position:this.metrics.clientToPaperCoords(n,r)};this.renderingState.shared.tryHandleDropOnPaper(i)||this.source.trigger("drop",i)};onKeyDown=e=>{this.isEventFromCellLayer(e)&&this.source.trigger("keydown",{source:this,sourceEvent:e})};onKeyUp=e=>{this.isEventFromCellLayer(e)&&this.source.trigger("keyup",{source:this,sourceEvent:e})};onPointerOperation=e=>{if(0!==e.button)return;let t,n=!1,r=!1,i=!1;const o=Kc(e.target,e.currentTarget,this.model);if(o)if(o instanceof ho){const{x:n,y:r}=this.metrics.pageToPaperCoords(e.pageX,e.pageY),{x:i,y:a}=o.position;t={pointerX:n,pointerY:r,elementX:i,elementY:a}}else(o instanceof po||o instanceof go)&&(i=!0);else n=this.shouldStartPanning(e),r=!n&&"selection"===this._pointerMode;const a=ro.capture(this.model),s=this.model.history.startBatch(a.title),l={target:o,restoreGeometry:a,batch:s,panning:n,moveElement:t};return{action:n?"panning":r||t||i?"move":void 0,hasSameTarget:e=>{const t=Kc(e.target,e.currentTarget,this.model);return void 0!==t&&t===o},onPointerDown:e=>{this.source.trigger("pointerDown",{source:this,sourceEvent:e,target:o,panning:n})},onPointerMove:e=>this.onPointerMove(e,l),onPointerUp:(e,t)=>this.onPointerUp(e,t,l),onPointerCancel:()=>{const e=a.filterOutUnchanged();e.hasChanges()&&s.history.registerToUndo(e),s.discard({revert:!0})}}};shouldStartPanning(e){return"mouse"===e.pointerType&&e.shiftKey===("selection"===this._pointerMode)&&!(e.ctrlKey||e.altKey)}onPointerMove(e,t){const{target:n,panning:r,moveElement:i}=t;if(n){if(n instanceof ho){if(i){const{x:t,y:o}=this.metrics.pageToPaperCoords(e.pageX,e.pageY),{pointerX:a,pointerY:s,elementX:l,elementY:c}=i;n.setPosition({x:l+t-a,y:c+o-s}),this.source.trigger("pointerMove",{source:this,sourceEvent:e,target:n,panning:r})}}else if(n instanceof po){const r=this.metrics.pageToPaperCoords(e.pageX,e.pageY),i=this.generateLinkVertex(n,r);i.createAt(r),t.target=i}else if(n instanceof go){const t=this.metrics.pageToPaperCoords(e.pageX,e.pageY);n.moveTo(t),this.source.trigger("pointerMove",{source:this,sourceEvent:e,target:n,panning:r})}}else this.source.trigger("pointerMove",{source:this,sourceEvent:e,target:n,panning:r})}generateLinkVertex(e,t){const{model:n,renderingState:r}=this,i=e.vertices,o=i?[...i]:[],a=n.getElement(e.sourceId),s=n.getElement(e.targetId);return new go(e,function(e,t){let n=1/0,r=0;for(let i=0;i<e.length-1;i++){const o=e[i],a=e[i+1],s={x:t.x-o.x,y:t.y-o.y},l={x:a.x-o.x,y:a.y-o.y},c=$i.length(l),d=$i.dot(s,l)/c;if(d<0||d>c)continue;const u=Math.abs($i.cross2D(s,l))/c;u<n&&(n=u,r=i)}return r}(Fi(r.getElementShape(a),r.getElementShape(s),o),t))}onPointerUp(e,t,n){const{triggerAsClick:r}=t,{target:i,restoreGeometry:o,batch:a,panning:s}=n;this.source.trigger("pointerUp",{source:this,sourceEvent:e,target:i,panning:s,triggerAsClick:r});const l=o.filterOutUnchanged();l.hasChanges()&&a.history.registerToUndo(l),a.store()}onResize=()=>{this.source.trigger("resize",{source:this})};onScrollPassive=e=>{this.isEventFromCellLayer(e)&&this.source.trigger("scroll",{source:this,sourceEvent:e})};getWheelToScaleDelta=e=>{switch(this.shouldZoom(e)){case"zoom":return function(e,t=.1){return-1*Math.max(-1,Math.min(1,e.deltaY||e.deltaX))*t}(e);case"prevent":return 0;default:return}};shouldZoom(e){const{requireCtrl:t}=this.zoomOptions,n=e.target;if(t)return e.ctrlKey?"zoom":"default";if(e.ctrlKey)return"zoom";if(this.paper.root&&n instanceof window.Element){const e=Nl(n,this.paper.root,oa);if(e)return Xc(n,e)?"default":Nl(n,e,Qc)?"prevent":"zoom"}return this.isEventFromCellLayer(e)&&n instanceof Node&&(this.paper.root===n||this.paper.pane===n||this.paper.pane?.firstChild===n||!Xc(n,this.linkLayer.current)&&!Xc(n,this.labelLayer.current)&&!Xc(n,this.elementLayer.current))?"zoom":"default"}get metrics(){return this.paper.metrics}get pointerMode(){return this._pointerMode}setPointerMode(e){const t=this._pointerMode;t!==e&&(this._pointerMode=e,this.setters.setPointerMode(e),this.source.trigger("changePointerMode",{source:this,previous:t}))}get zoomOptions(){return this.state.zoomOptions}updateContentBounds=()=>{const{elements:e,links:t}=this.model;this._contentBounds=Xi(e,t,this.renderingState),this.setters.setContentBounds(this._contentBounds)};isEventFromCellLayer(e){const t=e.target;return t instanceof Node&&Boolean(this.paper.root===t||this.paper.pane===t||this.paper.pane?.firstChild===t||this.linkLayer.current?.contains(t)||this.labelLayer.current?.contains(t)||this.elementLayer.current?.contains(t))}focus(){this.paper.root?.focus({preventScroll:!0})}async centerTo(e,t={}){await this.renderingState.updateLayersUpTo(ko.PaperArea);const{width:n,height:r}=this.paper.metrics.transform;return this.paper.centerViewport(e||{x:n/2,y:r/2},t)}async centerContent(e={}){await this.renderingState.updateLayersUpTo(ko.PaperArea);const t=this._contentBounds;return this.centerTo({x:t.x+t.width/2,y:t.y+t.height/2},e)}getScale(){return this.paper.scale}setScale(e,t){return this.paper.setScale(e,t)}zoomBy(e,t){return this.setScale(this.getScale()+e,t)}zoomIn(e){return this.zoomBy(this.state.zoomOptions.step,e)}zoomOut(e){return this.zoomBy(-this.state.zoomOptions.step,e)}async zoomToFit(e={}){const{model:t,renderingState:n}=this,{elements:r,links:i}=t;if(0===r.length)return this.centerTo();await this.renderingState.updateLayersUpTo(ko.PaperArea);const o=Xi(r,i,n);return this.zoomToFitRect(o,e)}zoomToFitRect(e,t){const{fitPadding:n}=this.state.zoomOptions;return this.paper.scaleToFitRect({x:e.x-n,y:e.y-n,width:e.width+n,height:e.height+n},t)}makeToSVGOptions(e){const t=this._contentBounds,{contentPadding:n={x:100,y:100},removeByCssSelectors:r=[]}=e,i=this.linkLayer.current,o=this.labelLayer.current,a=this.elementLayer.current;if(!(i&&o&&a))throw new Error("Cannot find element, link or label layers to export");return{colorSchemeApi:this.state.colorSchemeApi,styleRoot:i,contentBox:{x:t.x-n.x,y:t.y-n.y,width:t.width+2*n.x,height:t.height+2*n.y},layers:[i,o,a],preserveDimensions:!0,convertImagesToDataUris:!0,removeByCssSelectors:["[data-reactodia-no-export]",...r],watermarkSvg:this.state.watermarkSvg}}exportSvg(e={}){return function(e){return Hc(e).then((t=>{const n=(new XMLSerializer).serializeToString(t);return e.addXmlHeader?'<?xml version="1.0" encoding="UTF-8"?>'+n:n}))}(this.makeToSVGOptions(e))}exportRaster(e={}){return async function(e){const{mimeType:t="image/png",maxFallbackSize:n=Fc}=e,r=await Hc({...e,convertImagesToDataUris:!0,preserveDimensions:!0}),i={width:Number(r.getAttribute("width")),height:Number(r.getAttribute("height"))},{innerSize:o,outerSize:a,offset:s}=function(e,t){const n=Oi(e,t.width,t.height),r={width:Math.floor(n.width),height:Math.floor(n.height)},i={width:"number"==typeof t.width?t.width:r.width,height:"number"==typeof t.height?t.height:r.height};return{innerSize:r,outerSize:i,offset:{x:Math.round((i.width-r.width)/2),y:Math.round((i.height-r.height)/2)}}}(i,"number"==typeof e.width||"number"==typeof e.height?{width:e.width,height:e.height}:function(e,t){const n=Math.min(t.width/e.width,t.height/e.height),r=Math.min(2,n);return{width:Math.floor(e.width*r),height:Math.floor(e.height*r)}}(i,n));r.setAttribute("width",o.width.toString()),r.setAttribute("height",o.height.toString());const l=(new XMLSerializer).serializeToString(r),{canvas:c,context:d}=function(e,t,n){const r=document.createElement("canvas");r.width=e,r.height=t;const i=r.getContext("2d");return n&&(i.fillStyle=n,i.fillRect(0,0,e,t)),{canvas:r,context:i}}(a.width,a.height,e.backgroundColor),u=await(h="data:image/svg+xml,"+encodeURIComponent(l),new Promise(((e,t)=>{const n=new Image;n.onload=function(){e(n)},n.onerror=function(e){t(e)},n.src=h})));var h;return d.drawImage(u,s.x,s.y,o.width,o.height),c.toDataURL(t,e.quality)}({...e,...this.makeToSVGOptions(e)})}isAnimatingGraph(){return this.state.graphAnimations.count>0}animateGraph(e,t){const n="number"==typeof t?t:Wc.duration;return this.changeGraphAnimationCount(1,n),e(),gr(n).then((()=>this.changeGraphAnimationCount(-1)))}changeGraphAnimationCount(e,t){const n=this.isAnimatingGraph();hn.flushSync((()=>{this.setters.setGraphAnimations((n=>({count:n.count+e,duration:t??n.duration})))})),this.isAnimatingGraph()!==n&&this.source.trigger("changeAnimatingGraph",{source:this,previous:n})}};function Kc(e,t,n){if(!(e instanceof globalThis.Element))return;let r,i=e;for(;;){if(i instanceof globalThis.Element){if(i.hasAttribute("data-element-id"))return n.getElement(i.getAttribute("data-element-id"));if(i.hasAttribute("data-link-id")){const e=n.getLink(i.getAttribute("data-link-id"));if(!e)return;return"number"==typeof r?new go(e,r):e}i.hasAttribute("data-vertex")&&(r=Number(i.getAttribute("data-vertex")))}if(!i||i===t)break;i=i.parentNode}}function Xc(e,t){if(!t||!t.contains(e))return!1;let n=e;for(;n&&n!==t;){if(n instanceof window.Element){const e=getComputedStyle(n);if("scroll"===e.overflowX||"scroll"===e.overflowY)return!0}n=n.parentNode}return!1}function Qc(e){return e.hasAttribute("data-reactodia-prevent-zoom")}function Yc(e){const{model:t,view:n,overlay:r}=cn(),{elementTemplateResolver:i,linkTemplateResolver:o,linkRouter:a,showScrollbars:s,zoomOptions:l,watermarkSvg:c,watermarkUrl:d,children:u}=e,[h]=m.useState((()=>new Co({model:t,shared:n,elementTemplateResolver:i?e=>i((e instanceof Sa?e.data:void 0)?.types??[],e):void 0,linkTemplateResolver:o?e=>o(e instanceof Ea||e instanceof $a?e.typeId:void 0,e):void 0,linkRouter:a})));return R.jsx("div",{className:"reactodia-canvas",children:R.jsxs(Gc,{model:t,renderingState:h,zoomOptions:l,showScrollBars:s,watermarkSvg:c,watermarkUrl:d,children:[u,R.jsx(Es,{overlay:r}),R.jsx(Tl,{})]})})}var Jc="reactodia-connections-menu";function ed(e){return R.jsx("div",{className:`${Jc}__spinner`,children:R.jsx(en,{width:30,height:30,errorOccurred:Boolean(e.error)})})}function td(e){const{data:t,filterKey:n,sortMode:r,suggestions:i,allRelatedLink:o,onExpandLink:a,onMoveToFilter:s}=e,{model:l}=cn(),c=Ht(),d="smart"===r&&!n,u=n?Ar(n):void 0,h=d?[]:(t.links||[]).map((e=>l.getLinkType(e.id)?.data??e)).filter((e=>{const t=c.formatLabel(e.label,e.id,l.language);return!u||u(t)})).sort(id(c,l.language)),f=(t.links??[]).map((e=>l.getLinkType(e.id)?.data??e)).filter((e=>{const t=i.scores.get(e.id);return!h.includes(e)&&void 0!==t&&(t.score>0||d)})).sort(id(c,l.language,i)),p=rd(h,{counts:t.counts,scores:i.scores}),g=rd(f,{counts:t.counts,scores:i.scores,probable:!0}),v=[];if(p.length>1||d&&g.length>1){const{inCount:e,outCount:n,inexact:r}=t.counts.get(o.id),i=e+n;v.push({type:"link",key:o.id,linkType:o,count:r&&i>0?"some":i}),v.push({type:"separator"});for(const e of p)v.push(e)}if(g.length>0&&d){v.push({type:"probable-hint"});for(const e of g)v.push(e)}return R.jsxs("div",{className:un(`${Jc}__links-list`,"reactodia-scrollable",0===v.length?`${Jc}__links-list-empty`:void 0),tabIndex:-1,children:[R.jsx(Al,{children:({ref:e,controller:t})=>R.jsx("ul",{ref:e,className:`${Jc}__links-root`,role:"list",onClick:t.defaultClick,onKeyDown:t.defaultKeyDown,children:v.map((e=>"link"===e.type?R.jsx(od,{link:e.linkType,direction:e.direction,count:e.count,filterKey:e.probable?"":n,probability:e.probability,onExpandLink:a,onMoveToFilter:s},nd(e)):"separator"===e.type?R.jsx("hr",{className:`${Jc}__links-list-hr`},nd(e)):"probable-hint"===e.type?R.jsx("li",{className:`${Jc}__links-probably-label`,children:c.text("connections_menu.links.suggest_similar")},nd(e)):null))})}),0===v.length?R.jsx("label",{className:`${Jc}__links-no-results`,children:c.text("connections_menu.links.no_results")}):null]})}function nd(e){return"link"===e.type?e.key:e.type}function rd(e,t){const{counts:n,scores:r,probable:i}=t,o=[],a=(e,t)=>{const{inCount:a,outCount:s,inexact:l}=n.get(e.id)??{inCount:0,outCount:0,inexact:!1},c="in"===t?a:s;if(0===c)return;const d=r.get(e.id);o.push({type:"link",key:`${t}-${i?"probable":""}-${e.id}`,linkType:e,direction:t,count:l&&c>0?"some":c,probable:i,probability:i&&void 0!==d?d.score:0})};for(const t of e)a(t,"in"),a(t,"out");return o}function id(e,t,n){return(r,i)=>{if(n){const{scores:e}=n,t=e.has(r.id)?e.get(r.id).score:0,o=e.has(i.id)?e.get(i.id).score:0;if(t>o)return-1;if(t<o)return 1}const o=e.formatLabel(r.label,r.id,t),a=e.formatLabel(i.label,i.id,t);return o.localeCompare(a)}}function od(e){const{link:t,filterKey:n,direction:r,count:i,onExpandLink:o,onMoveToFilter:a,probability:s=0}=e,{model:l}=cn(),c=Ht(),{ref:d,tabIndex:u}=Pl(),h=c.formatLabel(t.label,t.id,l.language),f=l.locale.formatIri(t.id),p=Math.round(100*s),g=Ql(h+(p>0?` (${p}%)`:""),n),v=c.text("in"===r?"connections_menu.link.source_title":"out"===r?"connections_menu.link.target_title":"connections_menu.link.both_title",{relation:h,relationIri:f}),m=c.text("in"===r?"connections_menu.link.source_navigate_title":"out"===r?"connections_menu.link.target_navigate_title":"connections_menu.link.both_navigate_title",{relation:h,relationIri:f});return R.jsxs("li",{ref:d,className:`${Jc}__link`,role:"listitem","data-linktypeid":t.id,children:[R.jsxs("button",{className:`${Jc}__link-button`,title:v,onClick:()=>{o({chunkId:Nr(),linkType:t,direction:r,expectedCount:i,pageCount:1})},tabIndex:u,children:["in"===r||"out"===r?R.jsxs("div",{className:`${Jc}__link-direction`,children:["in"===r&&R.jsx("div",{className:"reactodia-connections-menu__link-direction-in"}),"out"===r&&R.jsx("div",{className:"reactodia-connections-menu__link-direction-out"})]}):null,R.jsx(Is,{type:"linkType",target:t.id,children:R.jsx("div",{className:`${Jc}__link-title`,children:g})}),"some"===i?null:R.jsx("span",{className:`reactodia-badge ${Jc}__link-count`,children:i<=100?i:"100+"}),a?R.jsx("div",{className:`${Jc}__link-filter-spacer`}):null,R.jsx("div",{className:`${Jc}__link-navigate-button`,title:m})]}),a?R.jsx("button",{className:`${Jc}__link-filter-button`,onClick:e=>{e.stopPropagation(),a?.({chunkId:Nr(),linkType:t,direction:r,expectedCount:i,pageCount:1})},title:c.text("connections_menu.link.move_to_filter.title"),tabIndex:u}):null]})}function ad(e){const{data:t,isLoading:n,filterKey:r,onPressAddSelected:i,onMoveToFilter:o}=e,{model:a}=cn(),s=Ht(),l=Lt(a.events,"changeLanguage",(()=>a.language)),[c,d]=m.useState((()=>new Set)),u=m.useMemo((()=>{if(!r)return t.elements;const e=Ar(r);return t.elements.filter((t=>e(a.locale.formatEntityLabel(t,l))))}),[t.elements,r,l]),h=Qa(a),f=u.every((e=>h.has(e.id)||c.has(e.id))),p=u.filter((e=>!h.has(e.id))),g=p.filter((e=>c.has(e.id))),v=g.length>0?g:p,b=s.text("connections_menu.entities.counter_label",{count:g.length,total:t.elements.length});let w=null;if("some"!==t.chunk.expectedCount){const e=t.elements.length-Math.min(100,t.chunk.expectedCount),n=Math.abs(e)>100?"100+":Math.abs(e).toString();w=R.jsx("span",{className:`${Jc}__objects-extra`,title:0===e?void 0:s.text(e>0?"connections_menu.entities.extra_title":"connections_menu.entities.missing_title",{value:n}),children:0===e?null:s.text(e>0?"connections_menu.entities.extra_label":"connections_menu.entities.missing_label",{value:n})})}const y=R.jsxs("div",{className:`${Jc}__objects-count`,children:[R.jsx("span",{children:b}),w]});return R.jsxs("div",{className:`${Jc}__objects`,children:[R.jsxs("div",{className:`${Jc}__objects-select-all`,children:[R.jsxs("label",{children:[R.jsx("input",{type:"checkbox",name:"reactodia-connections-menu-select-all",checked:f&&p.length>0,onChange:()=>d(new Set(f?[]:p.map((e=>e.id)))),disabled:0===p.length,title:s.text("connections_menu.select_all.title")}),R.jsx("span",{children:s.text("connections_menu.select_all.label")})]}),R.jsx("div",{className:`${Jc}__objects-spacer`,"aria-hidden":"true"}),y]}),n?R.jsx("div",{className:`${Jc}__objects-loading`,children:R.jsx(ed,{})}):0===u.length?R.jsx("div",{className:`${Jc}__objects-no-results`,children:s.text("connections_menu.entities.no_results")}):R.jsxs("div",{className:`${Jc}__objects-list`,tabIndex:-1,children:[R.jsx(ac,{items:u,selection:c,onSelectionChanged:d,highlightText:r}),"some"!==t.chunk.expectedCount&&t.chunk.expectedCount>100?R.jsx("div",o?{className:`${Jc}__move-to-filter`,onClick:()=>o(t.chunk),children:s.text("connections_menu.entities.truncated_results_expand",{limit:100})}:{className:`${Jc}__move-to-filter`,children:s.text("connections_menu.entities.truncated_results",{limit:100})}):null]}),R.jsxs("div",{className:`${Jc}__objects-statusbar`,children:[R.jsx("button",{className:un(`${Jc}__objects-add-button`,"reactodia-btn reactodia-btn-secondary"),disabled:n||v.length<=1,onClick:()=>i(v,"grouped"),children:s.text("connections_menu.entities.add_group")}),R.jsx("button",{className:un(`${Jc}__objects-add-button`,"reactodia-btn reactodia-btn-primary"),disabled:n||0===p.length,onClick:()=>i(v,"separately"),children:s.text(g.length>0?"connections_menu.entities.add_selected":"connections_menu.entities.add_all")})]})]})}function sd(e){const t=cn(),{canvas:n}=zi(),r=Ht(),i=m.useRef("alphabet"),o=t.getCommandBus(js);return m.useEffect((()=>{const a=new _r;return a.listen(o,"findCapabilities",(e=>{e.capabilities.push({})})),a.listen(o,"show",(({targets:o})=>{if(0===o.length)return;const{model:a,overlay:s}=t,l=o.length>1?new ld(o,a,n):void 0,c=l??o[0],d=new Set;for(const e of o)for(const t of Ma(e))d.add(t.id);s.showDialog({target:c,dialogType:ga,style:{caption:r.text("connections_menu.dialog.caption"),defaultSize:{width:310,height:340},minSize:{width:300,height:250}},content:R.jsx(cd,{...e,placeTarget:c,targetIris:Array.from(d),initialMode:i.current,onChangeMode:e=>{i.current=e},onCancel:()=>s.hideDialog()}),onClose:()=>l?.removeFrom(a)})})),()=>a.stopListening()}),[o]),null}var ld=class extends fo{listener=new _r;constructor(e,t,n){super({});const r=new Set(e),i=()=>{const{x:t,y:r,width:i,height:o}=Xi(e,[],n.renderingState);this.setPosition({x:t+i,y:r+o/2})};i();const o=t.history.startBatch();t.addElement(this),o.discard(),this.listener.listen(t.events,"changeCells",(e=>{(e.changedElement===this||e.updateAll)&&t.getElement(this.id)!==this&&this.listener.stopListening()})),this.listener.listen(t.events,"elementEvent",(({data:e})=>{e.changePosition&&r.has(e.changePosition.source)&&i()})),this.listener.listen(n.renderingState.events,"changeElementSize",(e=>{r.has(e.source)&&i()}))}removeFrom(e){if(this.listener.stopListening(),e.getElement(this.id)===this){const t=e.history.startBatch();e.removeElement(this.id),t.discard()}}};function cd(e){const{canvas:t}=zi(),n=cn(),r=Ht(),i=rc({initialValue:"",submitTimeout:200}),o=rc({initialValue:""});return R.jsx(dd,{...e,connectionSearch:i,objectSearch:o,canvas:t,workspace:n,translation:r})}var dd=class extends m.Component{ALL_RELATED_ELEMENTS_LINK;handler=new _r;linkTypesListener=new _r;suggestionCancellation=new AbortController;linksScrolledListRef=m.createRef();linksScrollPosition;constructor(e){super(e);const{targetIris:t,initialMode:n,suggestProperties:r,workspace:{model:i},translation:o}=this.props;this.ALL_RELATED_ELEMENTS_LINK={id:"urn:reactodia:allLinks",label:[i.factory.literal(o.text("connections_menu.all_link.label"))]};const a=Boolean(r)&&1===t.length;this.state={loadingState:"none",panel:"connections",connectionSortMode:a?n:"alphabet",connectionSuggestions:{filterKey:null,scores:new Map}}}updateAll=()=>this.forceUpdate();scheduleUpdateAll=()=>{const{canvas:e}=this.props;e.renderingState.scheduleOnLayerUpdate(ko.Overlay,this.updateAll)};componentDidMount(){const{connectionSearch:e,objectSearch:t,workspace:{model:n}}=this.props;this.handler.listen(n.events,"changeLanguage",this.scheduleUpdateAll),this.handler.listen(e.events,"changeValue",this.updateAll),this.handler.listen(e.events,"executeSearch",(({value:e})=>{this.loadSuggestions(e)})),this.handler.listen(t.events,"changeValue",this.updateAll),this.loadLinks()}getSnapshotBeforeUpdate(e,t){return"objects"===this.state.panel&&"connections"===t.panel&&this.linksScrolledListRef.current&&(this.linksScrollPosition=this.linksScrolledListRef.current.scrollTop),0}componentDidUpdate(e,t){"connections"===this.state.panel&&"objects"===t.panel&&void 0!==this.linksScrollPosition&&this.linksScrolledListRef.current&&(this.linksScrolledListRef.current.scrollTop=this.linksScrollPosition)}componentWillUnmount(){const{canvas:e}=this.props;this.handler.stopListening(),this.linkTypesListener.stopListening(),e.renderingState.cancelOnLayerUpdate(ko.Overlay,this.updateAll),this.suggestionCancellation.abort()}async loadLinks(){const{targetIris:e,workspace:{model:t,triggerWorkspaceEvent:n}}=this.props;this.setState({loadingState:"loading",connections:{links:[],counts:new Map}});const r=e.length>1,i=new Map;try{await Promise.all(e.map((e=>t.dataProvider.connectedLinkStats({elementId:e,inexactCount:r}).then((e=>{for(const{id:t,inCount:n,outCount:o,inexact:a}of e){const e=i.get(t)??{inCount:0,outCount:0,inexact:!1};i.set(t,{inexact:Boolean(r||e.inexact||a),inCount:e.inCount+n,outCount:e.outCount+o})}})))))}catch(e){return console.error(e),void this.setState({loadingState:"error"})}const o=Array.from(i.keys(),(e=>t.createLinkType(e)?.data??{id:e,label:[]}));i.set(this.ALL_RELATED_ELEMENTS_LINK.id,Array.from(i.values()).reduce(((e,t)=>({inexact:Boolean(e.inexact||t.inexact),inCount:e.inCount+t.inCount,outCount:e.outCount+t.outCount})),{inCount:0,outCount:0,inexact:!1})),this.setState({loadingState:"completed",connections:{links:o,counts:i}},(()=>{this.resubscribeOnLinkTypeEvents(),n(sn.connectionsLoadLinks),this.loadSuggestions("")}))}resubscribeOnLinkTypeEvents(){const{workspace:{model:e}}=this.props,{connections:t}=this.state;if(this.linkTypesListener.stopListening(),t){for(const{id:n}of t.links){const t=e.createLinkType(n);this.linkTypesListener.listen(t.events,"changeData",this.scheduleUpdateAll)}const n=new Set(t.links.map((e=>e.id)));this.linkTypesListener.listen(e.events,"changeLinkVisibility",(e=>{n.has(e.source)&&this.scheduleUpdateAll()}))}}async loadObjects(e){const{targetIris:t,workspace:{model:n,triggerWorkspaceEvent:r}}=this.props,{linkType:i,direction:o,pageCount:a}=e;this.setState({loadingState:"loading",objects:{chunk:e,elements:[]}});const s=new Map;try{await Promise.all(t.map((e=>n.dataProvider.lookup({refElementId:e,refElementLinkId:i.id===this.ALL_RELATED_ELEMENTS_LINK.id?void 0:i.id,linkDirection:o,limit:100*a}).then((e=>{for(const{element:t}of e)s.set(t.id,t)})))))}catch(e){return console.error(e),void this.setState({loadingState:"error"})}const l=Array.from(s.values());this.setState({loadingState:"completed",objects:{chunk:e,elements:l}},(()=>{r(sn.connectionsLoadElements)}))}async loadSuggestions(e){const{targetIris:t,suggestProperties:n,workspace:{model:r}}=this.props,{loadingState:i,panel:o,connectionSortMode:a,connections:s,connectionSuggestions:l}=this.state;if(this.suggestionCancellation.abort(),n&&1===t.length&&"connections"===o&&"completed"===i&&s&&(e.length>0||"smart"===a)&&l.filterKey!==e){const i=t[0],o=r.language,a=e.trim(),l=s.links.map((e=>e.id));this.suggestionCancellation=new AbortController;const c=this.suggestionCancellation.signal,d=await n({elementId:i,token:a,properties:l,lang:o,signal:c}),u=new Map;for(const e of d)u.set(e.propertyIri,e);this.setState((t=>({connectionSuggestions:{...t.connectionSuggestions,filterKey:e,scores:u}})))}}render(){const{connectionSearch:e,objectSearch:t,translation:n}=this.props,{panel:r}=this.state;return R.jsxs("div",{className:Jc,children:[this.getBreadCrumbs(),R.jsx(nc,{className:`${Jc}__search`,store:"connections"===r?e:t,inputProps:{name:"reactodia-connection-menu-filter",placeholder:n.textOptional("connections_menu.input.placeholder")},children:this.renderSortSwitches()}),this.getBody()]})}getBreadCrumbs(){const{workspace:{model:e},translation:t}=this.props,{objects:n,panel:r}=this.state;if(n&&"objects"===r){const{linkType:r,direction:i}=n.chunk,{label:o}=e.getLinkType(r.id)?.data??r,a=t.formatLabel(o,r.id,e.language);return R.jsxs("span",{className:`${Jc}__breadcrumbs`,children:[R.jsx("button",{className:`${Jc}__breadcrumbs-link`,onClick:this.onCollapseLink,children:t.text("connections_menu.breadcrumbs_root.label")})," / ",a," ",i?`(${i})`:null]})}return null}onExpandLink=e=>{const{objectSearch:t,workspace:{triggerWorkspaceEvent:n}}=this.props,{objects:r}=this.state;this.setState({panel:"objects"},(()=>t.change({value:"",action:"clear"}))),r&&r.chunk.linkType.id===e.linkType.id&&r.chunk.direction===e.direction||this.loadObjects(e),n(sn.connectionsExpandLink)};onCollapseLink=()=>{this.setState({panel:"connections",loadingState:"completed"})};getBody(){const{targetIris:e,connectionSearch:t,objectSearch:n,workspace:{getCommandBus:r}}=this.props,{panel:i,connectionSortMode:o,loadingState:a,objects:s,connections:l,connectionSuggestions:c}=this.state;if("error"===a)return R.jsx(ed,{error:!0});if(s&&"objects"===i)return R.jsx(ad,{data:s,onMoveToFilter:this.onMoveToFilter,filterKey:n.value,isLoading:"loading"===a,onPressAddSelected:this.onAddSelectedElements},s.chunk.chunkId);if(l&&"connections"===i){if("loading"===a||"smart"===o&&null===c.filterKey)return R.jsx(ed,{});const n={capabilities:[]};return r(Fs).trigger("findCapabilities",n),R.jsx(td,{data:l,suggestions:c,filterKey:t.value,sortMode:o,allRelatedLink:this.ALL_RELATED_ELEMENTS_LINK,onExpandLink:this.onExpandLink,onMoveToFilter:n.capabilities.length>0&&1===e.length?this.onMoveToFilter:void 0,scrolledListRef:this.linksScrolledListRef})}return R.jsx("div",{})}onAddSelectedElements=(e,t)=>{const{onCancel:n}=this.props,{objects:r}=this.state,i=e.map((e=>e.id)),o=r?r.chunk.linkType.id:void 0;this.placeElements(i,r&&o!==this.ALL_RELATED_ELEMENTS_LINK.id?o:void 0,t),n()};placeElements(e,t,n){const{placeTarget:r,canvas:i,workspace:{model:o,triggerWorkspaceEvent:a}}=this.props,s=o.history.startBatch(Rt.text("connections_menu.place_elements.command"));let l=[];switch(n){case"separately":l=e.map((e=>o.createElement(e)));break;case"grouped":{const t=new Ca({items:e.map((e=>({data:Sa.placeholderData(e)})))});o.addElement(t),l=[t];break}}i.renderingState.syncUpdate(),s.history.execute(uo({target:r,elements:l,graph:o,sizeProvider:i.renderingState})),t&&"hidden"===o.getLinkVisibility(t)&&s.history.execute(co(o,t,"visible")),s.history.execute(Ka(o,e)),s.history.execute(Xa(o,{addedElements:e})),s.store(),a(sn.editorAddElements)}onMoveToFilter=e=>{const{targetIris:t,workspace:{getCommandBus:n}}=this.props,{linkType:r,direction:i}=e,o=1===t.length?t[0]:void 0;if(!o)return;n(Fs).trigger("setCriteria",r.id===this.ALL_RELATED_ELEMENTS_LINK.id?{criteria:{refElement:o}}:{criteria:{refElement:o,refElementLink:r.id,linkDirection:i}})};renderSortSwitches(){const{targetIris:e,suggestProperties:t,translation:n}=this.props,{panel:r}=this.state;return"connections"===r&&t&&1===e.length?R.jsxs("div",{className:`${Jc}__sort-switches`,children:[this.renderSortSwitch("alphabet",`${Jc}__sort-label-alpha`,n.text("connections_menu.sort_alphabetically.title")),this.renderSortSwitch("smart",`${Jc}__sort-label-smart`,n.text("connections_menu.sort_smart.title"))]}):null}renderSortSwitch(e,t,n){const{connectionSortMode:r}=this.state;return R.jsxs("div",{children:[R.jsx("input",{type:"radio",name:"sort",id:e,value:e,className:`${Jc}__sort-switch`,onChange:this.onSortChange,checked:r===e}),R.jsx("label",{htmlFor:e,title:n,className:un(`${Jc}__sort-switch-label`,t)})]})}onSortChange=e=>{const{onChangeMode:t,connectionSearch:n}=this.props,{connectionSortMode:r}=this.state,i=e.target.value;r!==i&&this.setState({connectionSortMode:i},(()=>{t(i),n.change({value:n.value,action:"submit"})}))}};function ud(e){const{allowDrop:t,getDroppedItems:n=hd}=e,{canvas:r}=zi(),{model:i,triggerWorkspaceEvent:o}=cn();return m.useEffect((()=>{const e=new _r;return e.listen(r.events,"dragover",(e=>{t&&!t(e)||(e.sourceEvent.dataTransfer&&(e.sourceEvent.dataTransfer.dropEffect="move"),e.allowDrop())})),e.listen(r.events,"drop",(e=>{e.sourceEvent.preventDefault();const t=n(e);if(t.length>0){const n=i.history.startBatch(Rt.text("drop_on_canvas.drop.command")),a=Qa(i),s=new Set,l=[],c=[];for(const e of t)if("element"===e.type){let t=!1,n=!1;for(const r of Ma(e.element))n=!0,a.has(r.id)||s.has(r.id)||(t=!0,s.add(r.id),Sa.isPlaceholderData(r)&&l.push(r.id));n&&!t||c.push(e.element)}for(const e of c)i.getElement(e.id)||i.addElement(e);!function(e,t,n){for(const n of e)n.setPosition(t);n.renderingState.syncUpdate();let{x:r,y:i}=t,o=!0;for(const t of e){let{width:e,height:a}=Di(t,n.renderingState);0===e&&(e=100),0===a&&(a=50),o&&(o=!1,r-=e/2,i-=a/2),t.setPosition({x:r,y:i}),i+=a+20}}(c,e.position,r),n.history.execute(Ka(i,l)),n.history.execute(Xa(i,{addedElements:Array.from(s)})),n.store(),c.length>0&&c[c.length-1].focus(),i.setSelection(c),r.renderingState.syncUpdate(),o(sn.editorAddElements)}})),()=>e.stopListening()}),[t,n]),null}function hd(e){const t=(t,n=!1)=>{try{const r=e.sourceEvent.dataTransfer?.getData(t);if(!r)return;let i=[];try{const e=JSON.parse(r);Array.isArray(e)&&(i=e.filter((e=>"string"==typeof e)))}catch(e){i=[n?decodeURI(r):r]}if(0===i.length)return;return i.map((e=>({type:"element",element:new Sa({data:Sa.placeholderData(e)})})))}catch(e){return}};return t("application/x-reactodia-elements")??t("text/uri-list",!0)??t("text")??[]}var fd="reactodia-form";function pd(e){const{link:t,onChange:n,disabled:r,error:i}=e,{editor:o}=cn(),a=Ht(),s=At({input:[o.metadataProvider,t.source.id,t.target.id],load:([e],{signal:n})=>async function(e){const{link:t,metadataProvider:n,signal:r}=e;if(!n)return[];const i=await pr(n.canConnect(t.source,t.target,void 0,{signal:r}),r);if(null===i)return[];const o=new Set,a=new Set;for(const{inLinks:e,outLinks:t}of i){for(const t of e)o.add(t);for(const e of t)a.add(e)}let s=1;const l=[];for(const e of a)l.push({key:s,iri:e,direction:"out"}),s++;for(const e of o)l.push({key:s,iri:e,direction:"in"}),s++;return l}({link:t,metadataProvider:e,signal:n})}),l="completed"===s.status?s.data:void 0,c=(l??[]).find((({iri:e,direction:n})=>e===t.base.linkTypeId&&n===t.direction));return R.jsxs("div",{className:`${fd}__control-row`,children:[R.jsx("label",{children:a.text("visual_authoring.select_relation.type.label")}),l&&"completed"===s.status?R.jsxs("select",{className:"reactodia-form-control",name:"reactodia-link-type-selector-select",value:c?.key??-1,onChange:e=>{const r=Number(e.currentTarget.value),i=l?.find((e=>e.key===r));i&&n({...t,base:{...t.base,linkTypeId:i.iri},direction:i.direction})},disabled:r,children:[R.jsx("option",{value:-1,disabled:!0,children:a.text("visual_authoring.select_relation.type.placeholder")}),R.jsx(gd,{link:t,linkTypes:l})]}):R.jsx("div",{children:R.jsx(en,{width:20,height:20,errorOccurred:"error"===s.status})}),i?R.jsx("span",{className:`${fd}__control-error`,children:i}):null]})}function gd(e){const{link:t,linkTypes:n}=e,{model:r}=cn(),i=Ht(),o=Lt(r.events,"changeLanguage",(()=>r.language));return Dt(an,n.map((e=>e.iri)),r),R.jsx(R.Fragment,{children:[...n].sort(vd(r,i,o)).map((({key:e,iri:n,direction:o})=>{const a=r.getLinkType(n),s=i.formatLabel(a?.data?.label,n,r.language);let[l,c]=[t.source,t.target].map((e=>r.locale.formatEntityLabel(e,r.language)));return"in"===o&&([l,c]=[c,l]),R.jsx("option",{value:e,children:i.text("visual_authoring.select_relation.relation_type.label",{relation:s,source:l,target:c})},e)}))})}function vd(e,t,n){return(r,i)=>{const o=e.getLinkType(r.iri),a=e.getLinkType(i.iri),s=t.formatLabel(o?.data?.label,r.iri,n),l=t.formatLabel(a?.data?.label,i.iri,n),c=s.localeCompare(l);return 0!==c?c:"out"===r.direction&&"in"===i.direction?-1:"in"===r.direction&&"out"===i.direction?1:0}}function md(e,t,n){let[r,i]=[t,n];return"in"===e.direction&&([r,i]=[i,r]),new Ea({sourceId:r.id,targetId:i.id,data:{...e.base,sourceId:r.iri,targetId:i.iri}})}m.createContext(null);var bd="reactodia-resizable-box";function wd(e){const{className:t,mapCoordsFromPage:n,startResize:r,minWidth:i=0,minHeight:o=0}=e,[a,s]=m.useState(),l=e=>{e.stopPropagation(),s(r())},c=()=>{a?.end(),s(void 0)},d=(e,t,r,s)=>{if(!a)return;const{initialBounds:l}=a,c=n(0,0),{x:d,y:u}=$i.subtract(n(e,t),c),{x:h,y:f}=$i.subtract(n(r,s),c),p={x:Math.min(l.x+d,l.x+l.width-i),y:Math.min(l.y+u,l.y+l.height-o),width:Math.max(l.width+h,i),height:Math.max(l.height+f,o)};a.onResize(p)};m.useEffect((()=>()=>a?.end()),[]);const u=R.jsx("svg",{className:`${bd}__corner`,viewBox:"-2 -2 14 14",children:R.jsx("circle",{cx:5,cy:5,r:5})}),h=R.jsx("svg",{className:`${bd}__vertical`,viewBox:"-2 -2 34 14",children:R.jsx("rect",{x:0,y:0,rx:2,ry:2,width:30,height:10})}),f=R.jsx("svg",{className:`${bd}__horizontal`,viewBox:"-2 -2 14 34",children:R.jsx("rect",{x:0,y:0,rx:2,ry:2,width:10,height:30})}),p=`${bd}__handle`;return R.jsxs("div",{className:un(bd,t),children:[R.jsx(cs,{className:p,dock:"n",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t,n)=>d(0,n,0,-n),children:h}),R.jsx(cs,{className:p,dock:"s",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t,n)=>d(0,0,0,n),children:h}),R.jsx(cs,{className:p,dock:"w",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t)=>d(t,0,-t,0),children:f}),R.jsx(cs,{className:p,dock:"e",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t)=>d(0,0,t,0),children:f}),R.jsx(cs,{className:p,dock:"nw",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t,n)=>d(t,n,-t,-n),children:u}),R.jsx(cs,{className:p,dock:"ne",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t,n)=>d(0,n,t,-n),children:u}),R.jsx(cs,{className:p,dock:"sw",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t,n)=>d(t,0,-t,n),children:u}),R.jsx(cs,{className:p,dock:"se",onBeginDragHandle:l,onEndDragHandle:c,onDragHandle:(e,t,n)=>d(0,0,t,n),children:u})]})}var yd="reactodia-selection-action";function _d(e){const{dock:t,dockRow:n,dockColumn:r,className:i,title:o,hotkey:a,disabled:s,onSelect:l,onMouseDown:c,onPointerDown:d,children:u}=e,h=Ri(a,s?void 0:l),f=o&&h?`${o} (${h.text})`:o;return R.jsx("button",{type:"button",className:un(yd,kd(t),i),style:xd(n,r),title:f,"aria-label":o,"aria-keyshortcuts":h?.text,disabled:s,onClick:l,onMouseDown:c,onPointerDown:d,children:u})}function kd(e){switch(e){case"nw":return`${yd}--dock-nw`;case"n":return`${yd}--dock-n`;case"ne":return`${yd}--dock-ne`;case"e":return`${yd}--dock-e`;case"se":return`${yd}--dock-se`;case"s":return`${yd}--dock-s`;case"sw":return`${yd}--dock-sw`;case"w":return`${yd}--dock-w`;default:return}}function xd(e,t){return{"--reactodia-dock-x":t??0,"--reactodia-dock-y":e??0}}function Sd(e){return Lt(e.events,"changeSelection",(()=>{const t=1===e.selection.length?e.selection[0]:void 0;return t instanceof ho?t:void 0}))}function Cd(e){const{dock:t,dockRow:n,dockColumn:r,className:i,title:o}=e;return R.jsx("div",{role:"button",className:un(i,kd(t),`${yd}__spinner`),style:xd(n,r),title:o,children:R.jsx(en,{width:20,height:20})})}function Ld(e){const{className:t,title:n,hotkey:r,...i}=e,{canvas:o}=zi(),{model:a,editor:s}=cn(),l=Ht(),c=Lt(a.events,"changeSelection",(()=>a.selection)).filter((e=>e instanceof ho));let d=0,u=0;for(const e of c)e instanceof Sa&&(u++,sa.isAddedEntity(s.authoringState,e.iri)&&d++);const h=1===d&&1===u;return R.jsx(_d,{...i,className:un(t,h?`${yd}__delete`:`${yd}__remove`),title:n||l.text(h?"selection_action.remove.title_new":1===c.length?"selection_action.remove.title_single":"selection_action.remove.title"),hotkey:void 0===r?"None+Delete":r,onSelect:()=>{s.removeSelectedElements(),o.focus()}})}function Md(e){const{className:t,title:n,...r}=e,{model:i,canvas:o}=zi(),a=Ht(),s=Lt(i.events,"changeSelection",(()=>i.selection)).filter((e=>e instanceof ho));return s.length<=1?null:R.jsx(_d,{...r,className:un(t,`${yd}__zoomToFit`),title:n??a.text("selection_action.zoom_to_fit.title"),onSelect:()=>{const e=new Set;for(const t of s)for(const n of i.getElementLinks(t))e.add(n);const t=Xi(s,e,o.renderingState);o.zoomToFitRect(t,{animate:!0})}})}function Ed(e){const{className:t,title:n,...r}=e,{model:i,canvas:o}=zi(),{performLayout:a}=cn(),s=Ht(),l=Lt(i.events,"changeSelection",(()=>i.selection)).filter((e=>e instanceof ho));return l.length<=1?null:R.jsx(_d,{...r,className:un(t,`${yd}__layout`),title:n??s.text("selection_action.layout.title"),onSelect:()=>{a({canvas:o,selectedElements:new Set(l),animate:!0})}})}function zd(e){const{className:t,title:n,...r}=e,{canvas:i}=zi(),{model:o}=cn(),a=Ht(),s=Lt(o.events,"changeSelection",(()=>o.selection)).filter((e=>e instanceof ho)),l=function(e,t){return m.useCallback((n=>{if(0===t.length)return()=>{};const r=new Set(t),i=new _r;return i.listen(e.events,"elementEvent",(({data:e})=>{if(e.changeElementState&&r.has(e.changeElementState.source)){const t=Boolean(e.changeElementState.previous.get(vr.Expanded));e.changeElementState.source.isExpanded!==t&&n()}})),()=>i.stopListening()}),[e.events,t])}(o,s),c=e=>{const t=i.renderingState.getElementTemplate(e);return Boolean(t.supports?.[vr.Expanded])},d=Tt(Lo(l,i.renderingState),(()=>s.every((e=>!c(e)||e.isExpanded))));return s.some(c)?R.jsx(_d,{...r,className:un(t,d?`${yd}__collapse`:`${yd}__expand`),title:n??a.text(1===s.length?"selection_action.expand.title_single":"selection_action.expand.title"),onSelect:()=>{if(1===s.length){const e=s[0];o.history.execute(so(e,!e.isExpanded))}else{const e=o.history.startBatch(Rt.text(d?"selection_action.expand.collapse_command":"selection_action.expand.expand_command"));for(const t of s)c(t)&&e.history.execute(so(t,!d));e.store()}}}):null}function $d(e){const{dock:t,dockRow:n,dockColumn:r,className:i,title:o,anchorProps:a,onSelect:s}=e,{model:l}=cn(),c=Ht(),d=Sd(l);if(!(d instanceof Sa))return null;const u=l.locale.prepareAnchor(d.iri);return R.jsx("a",{...u,role:"button",...a,className:un(yd,kd(t),i,`${yd}__link`),style:xd(n,r),title:o??c.text("selection_action.anchor.title"),onClick:e=>{s?s(d,e):u.onClick?.(e)}})}function Td(e){const{className:t,title:n,...r}=e,{model:i,overlay:o,getCommandBus:a}=cn(),s=Ht(),l=Lt(o.events,"changeOpenedDialog",(()=>o.openedDialog?.knownType===ga)),c=Lt(i.events,"changeSelection",(()=>i.selection)).filter((e=>e instanceof ho));let d=0;for(const e of c)for(const t of Ma(e))d++;const u=a(js),h={capabilities:[]};return u.trigger("findCapabilities",h),h.capabilities.length>0&&d>0?R.jsx(_d,{...r,className:un(t,l?`${yd}__navigate-close`:`${yd}__navigate-open`),title:n??s.text("selection_action.connections.title"),onSelect:()=>{l?o.hideDialog():u.trigger("show",{targets:c})}}):null}function Nd(e){const{className:t,title:n,...r}=e,{model:i,getCommandBus:o}=cn(),a=Ht(),s=Sd(i),l=o(Fs),c={capabilities:[]};return l.trigger("findCapabilities",c),s instanceof Sa&&c.capabilities.length>0?R.jsx(_d,{...r,className:un(t,`${yd}__add-to-filter`),title:n??a.text("selection_action.add_to_filter.title"),onSelect:()=>{l.trigger("setCriteria",{criteria:{refElement:s.iri}})}}):null}function Ad(e){const{className:t,title:n,hotkey:r,...i}=e,{canvas:o}=zi(),a=cn(),s=Ht(),{model:l}=a,c=Lt(l.events,"changeSelection",(()=>l.selection)).filter((e=>e instanceof ho)),d=c.length>0&&c.every((e=>e instanceof Sa)),u=c.length>0&&c.every((e=>e instanceof Ca));return 0===c.length||1===c.length&&d||c.every((e=>e instanceof ha))?null:R.jsx(_d,{...i,className:un(t,u?`${yd}__ungroup`:`${yd}__group`),disabled:!(d||u),title:n??s.text(u?"selection_action.group.title_ungroup":"selection_action.group.title"),hotkey:void 0===r?"None+G":r,onSelect:async()=>{if(d){const e=await is(a,{elements:c,canvas:o});l.setSelection([e]),e.focus()}else if(u){const e=await os(a,{groups:c,canvas:o});l.setSelection(e),o.focus()}}})}function Id(e){const{model:t}=zi(),n=Sd(t);return n instanceof Sa?R.jsx(Pd,{...e,target:n}):n instanceof ha?R.jsx(Vd,{...e,target:n}):null}function Pd(e){const{target:t,className:n,title:r,linkType:i,...o}=e,{canvas:a}=zi(),{editor:s,getCommandBus:l}=cn(),c=Ht(),d=Lt(s.events,"changeMode",(()=>s.inAuthoringMode)),u=function(e,t,n){const{canvas:r}=zi(),i=t instanceof Sa?t:void 0,o=Tt(zt(i?.events,"changeData"),(()=>i?.data)),a=Tt(Lo(zt(e.events,"changeAuthoringState"),r.renderingState),(()=>e.authoringState)),s=t instanceof Sa?a.elements.get(t.iri):void 0,{data:l,status:c}=At({input:[e.metadataProvider,o,s,n],load:async([e,t,n,r],{signal:i})=>!(!e||!t||n&&"entityDelete"===n.type)&&(await e.canConnect(t,void 0,r,{signal:i})).length>0});return"completed"===c?l:void 0}(s,d?t:void 0,i);if(!d)return null;if(void 0===u){const{dock:t,dockRow:n,dockColumn:r}=e;return R.jsx(Cd,{dock:t,dockRow:n,dockColumn:r})}return R.jsx(_d,{...o,className:un(n,`${yd}__establish-link`),disabled:!u,title:r??c.text(u?"selection_action.establish_relation.title":"selection_action.establish_relation.title_disabled"),onPointerDown:e=>{e.preventDefault();const n=a.metrics.pageToPaperCoords(e.pageX,e.pageY);l(qs).trigger("startDragEdit",{operation:{mode:"connect",source:t,linkType:i,point:n}})}})}function Vd(e){const{target:t,className:n,title:r,linkType:i,...o}=e,{canvas:a}=zi(),{getCommandBus:s}=cn(),l=Ht(),c={capabilities:[]};return s(Bs).trigger("findCapabilities",c),0===c.capabilities.length?null:R.jsx(_d,{...o,className:un(n,`${yd}__establish-link`),title:r??l.text("selection_action.establish_relation.title"),onPointerDown:e=>{e.preventDefault();const n=a.metrics.pageToPaperCoords(e.pageX,e.pageY);s(Bs).trigger("startDragOperation",{operation:{mode:"connect",source:t,point:n}})}})}function Hd(e){const{className:t,title:n,initialContent:r,...i}=e,{model:o,getCommandBus:a}=cn(),s=Ht(),l=Lt(o.events,"changeSelection",(()=>o.selection)).filter((e=>e instanceof ho)),c={capabilities:[]};return a(Bs).trigger("findCapabilities",c),0===l.length||0===c.capabilities.length?null:R.jsx(_d,{...i,className:un(t,`${yd}__annotate`),title:n??s.text("selection_action.annotate.title"),onSelect:()=>{let e;"function"==typeof r?e=r(l):void 0===r?e={type:"plaintext",text:s.text("selection_action.annotate.defaultContent")}:null!==r&&(e=r),a(Bs).trigger("createAnnotation",{targets:l,content:e})}})}function Rd(e){const{model:t,canvas:n}=zi(),r=Sd(t);return r?R.jsx(aa,{layer:"overElements",children:R.jsx(Dd,{...e,target:r,canvas:n,model:t})}):null}var Od="reactodia-halo",Dd=class extends m.Component{listener=new _r;targetListener=new _r;constructor(e){super(e),this.state={}}componentDidMount(){const{canvas:e,target:t}=this.props;this.listener.listen(e.events,"changeTransform",(()=>this.forceUpdate())),this.listenToElement(t)}componentDidUpdate(e){e.target!==this.props.target&&this.listenToElement(this.props.target)}componentWillUnmount(){this.listener.stopListening(),this.listenToElement(void 0)}listenToElement(e){const{canvas:t}=this.props;this.targetListener.stopListening(),e&&(this.targetListener.listenAny(e.events,this.onElementEvent),this.targetListener.listen(t.renderingState.events,"changeElementSize",(t=>{t.source===e&&hn.flushSync((()=>{this.forceUpdate()}))})))}onElementEvent=e=>{e.changePosition&&hn.flushSync((()=>{this.forceUpdate()}))};render(){const{target:e,canvas:t,model:n,margin:r,children:i}=this.props,o=t.renderingState.getElementTemplate(e),a=Boolean(o.supports?.[vr.ElementSize]),s=Di(e,t.renderingState),{x:l,y:c}=t.metrics.paperToScrollablePaneCoords(s.x,s.y),{x:d,y:u}=t.metrics.paperToScrollablePaneCoords(s.x+s.width,s.y+s.height),h={"--reactodia-selection-single-box-margin":r,"--reactodia-halo-left":`${l}px`,"--reactodia-halo-top":`${c}px`,"--reactodia-halo-width":d-l+"px","--reactodia-halo-height":u-c+"px"};return R.jsxs("div",{className:un(Od,a?`${Od}--resizable`:void 0),style:h,children:[a&&R.jsx(wd,{className:`${Od}__resizer`,mapCoordsFromPage:(e,n)=>t.metrics.pageToPaperCoords(e,n),startResize:()=>(n.history.registerToUndo(Wi.compound(Rt.text("commands.transform_elements.title"),[ro.capturePartial([e],[])])),new Bd(e,s)),minWidth:40,minHeight:40}),i??R.jsxs(R.Fragment,{children:[R.jsx(Ad,{dock:"nw",dockColumn:1}),R.jsx(Ld,{dock:"ne"}),R.jsx(zd,{dock:"s"}),R.jsx($d,{dock:"w"}),R.jsx(Td,{dock:"e"}),R.jsx(Nd,{dock:"se"}),R.jsx(Hd,{dock:"se",dockColumn:1}),R.jsx(Id,{dock:"sw"})]})]})}},Bd=class{target;initialBounds;constructor(e,t){this.target=e,this.initialBounds=t}onResize({x:e,y:t,width:n,height:r}){this.target.setPosition({x:e,y:t}),this.target.setElementState(this.target.elementState.set(vr.ElementSize,{width:n,height:r}))}end(){}},jd=m.createContext(null);function Fd(){const e=m.useContext(jd);if(!e)throw new Error("Missing context for LinkAction");return e}var Ud="reactodia-link-action";function qd(e){const{dockSide:t,dockIndex:n,disabled:r,className:i,title:o,hotkey:a,onSelect:s,onMouseDown:l,onPointerDown:c,children:d}=e,{getPosition:u}=Fd(),h=Ri(a,r?void 0:s),f=o&&h?`${o} (${h.text})`:o;return R.jsx("button",{role:"button",className:un(i,Ud),style:u(t,n),disabled:r,title:f,"aria-label":o,"aria-keyshortcuts":h?.text,onClick:s,onMouseDown:l,onPointerDown:c,children:d})}function Wd(e){const{dockSide:t,dockIndex:n,className:r,title:i}=e,{buttonSize:o,getPosition:a}=Fd();return R.jsx("div",{className:un(r,`${Ud}__spinner`),style:a(t,n),title:i,children:R.jsx(en,{width:o,height:o})})}function Gd(e){const{className:t,title:n,...r}=e,{link:i}=Fd(),{model:o,editor:a,getCommandBus:s}=cn(),l=Ht(),c=Lt(a.events,"changeMode",(()=>a.inAuthoringMode)),d=Xd(c?i:void 0,o,a),u="completed"===d.status?d.data:void 0,h=Lt(a.events,"changeAuthoringState",(()=>i instanceof Ea&&sa.isDeletedRelation(a.authoringState,i.data)));if(!(c&&i instanceof Ea)||h)return null;if(void 0===u){const{dockSide:t,dockIndex:n}=e;return R.jsx(Wd,{dockSide:t,dockIndex:n})}return R.jsx(qd,{...r,className:un(t,`${Ud}__button`,`${Ud}__edit`),title:n??l.text(u.canChangeType?"link_action.edit_relation.title":"link_action.edit_relation.title_disabled"),disabled:!u.canChangeType,onSelect:()=>s(qs).trigger("editRelation",{target:i})})}function Zd(e){const{link:t}=Fd();return t instanceof Ea?R.jsx(Kd,{...e,link:t}):t instanceof fa?R.jsx(Qd,{...e,link:t}):null}function Kd(e){const{link:t,className:n,title:r,hotkey:i,...o}=e,{model:a,editor:s}=cn(),l=Ht(),c=Xd(t,a,s),d="completed"===c.status?c.data:void 0,u=Lt(s.events,"changeAuthoringState",(()=>t instanceof Ea&&sa.isDeletedRelation(s.authoringState,t.data)));if(!(s.inAuthoringMode&&t instanceof Ea)||u)return null;if(void 0===d){const{dockSide:t,dockIndex:n}=e;return R.jsx(Wd,{dockSide:t,dockIndex:n})}return R.jsx(qd,{...o,className:un(n,`${Ud}__button`,`${Ud}__delete`),title:r??l.text(d.canDelete?"link_action.delete_relation.title":"link_action.delete_relation.title_disabled"),hotkey:void 0===i?"None+Delete":i,disabled:!d.canDelete,onSelect:()=>s.deleteRelation(t.data)})}function Xd(e,t,n){const{canvas:r}=zi(),i=Tt(Lo(zt(n.events,"changeAuthoringState"),r.renderingState),(()=>n.authoringState));return At({input:[n.metadataProvider,e,i],load:async([e,n,r],{signal:i})=>{if(e&&n instanceof Ea&&!function(e,t){return sa.isDeletedEntity(e,t.data.sourceId)||sa.isDeletedEntity(e,t.data.targetId)}(r,n)){const r=t.getElement(n.sourceId),o=t.getElement(n.targetId);return e.canModifyRelation(n.data,r.data,o.data,{signal:i})}return{}}})}function Qd(e){const{link:t,className:n,title:r,hotkey:i,...o}=e,{editor:a}=cn(),s=Ht();return R.jsx(qd,{...o,className:un(n,`${Ud}__button`,`${Ud}__delete`),title:r??s.text("link_action.delete_annotation.title"),hotkey:void 0===i?"None+Delete":i,onSelect:()=>a.removeItems([t])})}function Yd(e){const{link:t}=Fd();return t instanceof Ea?R.jsx(Jd,{...e,link:t}):t instanceof fa?R.jsx(eu,{...e,link:t}):null}function Jd(e){const{link:t,dockSide:n,className:r,title:i,...o}=e,{buttonSize:a,getAngleInDegrees:s}=Fd(),{canvas:l}=zi(),{editor:c,getCommandBus:d}=cn(),u=Ht(),h=Lt(c.events,"changeMode",(()=>c.inAuthoringMode)),f=Lt(c.events,"changeAuthoringState",(()=>sa.isDeletedRelation(c.authoringState,t.data)));return h?R.jsx(qd,{...o,dockSide:n,dockIndex:0,className:un(r,`${Ud}__endpoint`),title:i??u.text("source"===n?"link_action.move_relation.move_source_title":"link_action.move_relation.move_target_title"),disabled:f,onPointerDown:e=>{e.preventDefault();const r=l.metrics.pageToPaperCoords(e.pageX,e.pageY);d(qs).trigger("startDragEdit",{operation:{mode:"source"===n?"moveSource":"moveTarget",link:t,point:r}})},children:R.jsx(tu,{dockSide:n,buttonSize:a,angle:s(n)})}):null}function eu(e){const{link:t,dockSide:n,className:r,title:i,...o}=e,{buttonSize:a,getAngleInDegrees:s}=Fd(),{canvas:l}=zi(),{getCommandBus:c}=cn(),d=Ht(),u={capabilities:[]};return c(Bs).trigger("findCapabilities",u),0===u.capabilities.length?null:R.jsx(qd,{...o,dockSide:n,dockIndex:0,className:un(r,`${Ud}__endpoint`),title:i??d.text("source"===n?"link_action.move_relation.move_source_title":"link_action.move_relation.move_target_title"),onPointerDown:e=>{e.preventDefault();const r=l.metrics.pageToPaperCoords(e.pageX,e.pageY);c(Bs).trigger("startDragOperation",{operation:{mode:"source"===n?"moveSource":"moveTarget",link:t,point:r}})},children:R.jsx(tu,{dockSide:n,buttonSize:a,angle:s(n)})})}function tu(e){const{dockSide:t,buttonSize:n,angle:r}=e;return R.jsx("svg",{width:n,height:n,style:{transform:`rotate(${r}deg)`},children:R.jsx("g",{transform:`scale(${n})`,children:"source"===t?R.jsx("circle",{r:.5,cx:.5,cy:.5,fill:"currentColor"}):R.jsx("polygon",{points:"0,0.5 1,1 1,0",fill:"currentColor"})})})}function nu(e){const{className:t,title:n}=e,{link:r}=Fd(),{canvas:i}=zi(),{view:{renameLinkProvider:o},getCommandBus:a}=cn(),s=Ht(),l=Tt(zt(i.renderingState.events,"changeLinkLabelBounds"),(()=>i.renderingState.getLinkLabelBounds(r)));if(!o?.canRename(r)||!l)return null;const{x:c,y:d,width:u,height:h}=l,{x:f,y:p}=i.metrics.paperToScrollablePaneCoords(c+u,d+h/2),g={width:15,height:17,left:f,top:p-8.5};return R.jsx("button",{className:un(t,`${Ud}__rename`),style:g,title:n??s.text("link_action.rename_link.title"),onClick:()=>a(Bs).trigger("renameLink",{target:r})})}function ru(e){const{canvas:t,model:n}=zi(),r=Tt(zt(n.events,"changeSelection"),(()=>{const e=1===n.selection.length?n.selection[0]:void 0;return e instanceof po?e:void 0}));return r?R.jsx(lu,{...e,target:r,model:n,canvas:t}):null}var iu="reactodia-halo-link",ou=0,au=20,su=5,lu=class e extends m.Component{listener=new _r;targetListener=new _r;constructor(t){super(t),this.state={actionContext:e.makeActionContext(this.props)}}static makeActionContext(e){const{target:t,model:n,canvas:r,buttonSize:i=au,buttonMargin:o=su}=e,a=function(e,t,n){const r=t.getElement(e.sourceId),i=t.getElement(e.targetId);if(!r||!i)return;const o=n.getLinkTemplate(e),a=n.getRouting(e.id),s=a?a.vertices:e.vertices||[],l=n.getElementShape(r),c=n.getElementShape(i),d=Fi(l,c,s);return Zi.create({type:o?.spline??Zi.defaultType,points:d,source:Ni.center(l.bounds),target:Ni.center(c.bounds)})}(t,n,r.renderingState);if(!a)return null;const s=Ui(a.geometry.points);return{link:t,spline:a,buttonSize:i,getPosition:(e,t)=>{const n=(i+o)*t,l=qi(a.geometry.points,"source"===e?n:s-n),{x:c,y:d}=r.metrics.paperToScrollablePaneCoords(l.x,l.y);return{top:d-i/2,left:c-i/2}},getAngleInDegrees:e=>{const{points:t}=a.geometry,n=$i.normalize($i.subtract(t["source"===e?0:t.length-2],t["source"===e?1:t.length-1]));return Math.atan2(n.y,n.x)*(180/Math.PI)}}}componentDidMount(){const{canvas:e,target:t}=this.props;this.listener.listen(e.events,"changeTransform",(()=>this.forceUpdate())),this.listenToTarget(t)}componentDidUpdate(e){this.props.target!==e.target&&this.listenToTarget(this.props.target),this.props.target===e.target&&this.props.buttonSize===e.buttonSize&&this.props.buttonMargin===e.buttonMargin||this.updateActionContext()}componentWillUnmount(){this.listener.stopListening(),this.listenToTarget(void 0)}listenToTarget(e){const{model:t,canvas:n}=this.props;if(this.targetListener.stopListening(),e){const r=t.getElement(e.sourceId),i=t.getElement(e.targetId);this.targetListener.listen(r.events,"changePosition",this.updateActionContext),this.targetListener.listen(i.events,"changePosition",this.updateActionContext),this.targetListener.listen(e.events,"changeVertices",this.updateActionContext),this.targetListener.listen(n.renderingState.events,"changeElementSize",(e=>{e.source!==r&&e.source!==i||this.updateActionContext()})),this.targetListener.listen(n.renderingState.events,"changeRoutings",(t=>{t.previous.get(e.id)!==t.source.getRouting(e.id)&&this.updateActionContext()}))}}updateActionContext=()=>{this.setState(((t,n)=>({actionContext:e.makeActionContext(n)})))};render(){const{canvas:e,highlightMargin:t=ou,buttonSize:n=au,buttonMargin:r=su,children:i}=this.props,{actionContext:o}=this.state;if(!o)return null;const a={"--reactodia-link-button-size":`${n}px`,"--reactodia-link-button-margin":`${r}px`};return R.jsxs(R.Fragment,{children:[R.jsx(cu,{actionContext:o,style:a,margin:t,canvas:e}),R.jsx(aa,{layer:"overElements",children:R.jsx("div",{className:iu,style:a,children:R.jsx(jd.Provider,{value:o,children:i??R.jsxs(R.Fragment,{children:[R.jsx(Yd,{dockSide:"target"}),R.jsx(Yd,{dockSide:"source"}),R.jsx(Gd,{dockSide:"target",dockIndex:1}),R.jsx(Zd,{dockSide:"target",dockIndex:2}),R.jsx(nu,{})]})})})})]})}};function cu(e){const{actionContext:{link:t,spline:n},style:r,margin:i,canvas:o}=e,a=Tt(zt(o.renderingState.events,"changeLinkLabelBounds"),(()=>o.renderingState.getLinkLabelBounds(t)));let s;if(a){const{x:e,y:t}=o.metrics.paperToScrollablePaneCoords(a.x,a.y),{x:n,y:r}=o.metrics.paperToScrollablePaneCoords(a.x+a.width,a.y+a.height);s={left:e-i,top:t-i,width:n-e+2*i,height:r-t+2*i}}return R.jsxs(R.Fragment,{children:[R.jsx(aa,{layer:"overLinkGeometry",children:R.jsx(mo,{paperTransform:o.metrics.transform,className:iu,style:{...r,overflow:"visible",pointerEvents:"none"},children:R.jsx("path",{className:`${iu}__path-highlight`,d:n.toPath()})})}),s&&R.jsx(aa,{layer:"overLinks",children:R.jsx("div",{className:iu,style:r,children:R.jsx("div",{className:`${iu}__label-highlight`,style:s})})})]})}var du="reactodia-inline-entity";function uu(e){const{target:t}=e,{model:n,getElementTypeStyle:r}=cn(),i=Ht(),o=n.locale.formatEntityLabel(t,n.language),{color:a}=r(t.types);return R.jsx("span",{className:du,style:{"--reactodia-inline-entity-color":a},title:Yl(t,n,i),children:R.jsx("span",{className:`${du}__label`,children:o})})}function hu(e){const{searchStore:t,searchTimeout:n="explicit",minSearchTermLength:r=3}=e,i=rc({initialValue:"",submitTimeout:n,allowSubmit:e=>e.length>=r}),o=t??i,a=cn(),s=Ht();return R.jsx(pu,{...e,isControlled:Boolean(t),searchStore:o,minSearchTermLength:r,workspace:a,translation:s})}var fu="reactodia-instances-search",pu=class extends m.Component{listener=new _r;criteriaListener=new _r;searchListener=new _r;delayedUpdateAll=new kr;requestCancellation=new AbortController;currentRequest;constructor(e){super(e),this.state={criteria:{},resultId:0,selection:new Set}}componentDidMount(){const{workspace:e}=this.props,{model:t}=e;this.listener.listen(t.events,"changeLanguage",(()=>this.forceUpdate())),this.listener.listen(t.events,"loadingStart",(()=>{this.setState({criteria:{}},(()=>this.props.searchStore.change({value:"",action:"clear"})))}));const n=e.getCommandBus(Fs);this.listener.listen(n,"findCapabilities",(e=>{e.capabilities.push({})})),this.listener.listen(n,"setCriteria",(({criteria:e})=>{const{searchStore:t,onChangeCriteria:n,workspace:{triggerWorkspaceEvent:r}}=this.props;r(sn.searchUpdateCriteria),this.setState({criteria:e},(()=>{t.change({value:e.text??"",action:"clear"}),n?.(this.state.criteria)}))})),this.listenSearch(),this.resubscribeToCriteria(),this.queryItems(!1)}componentDidUpdate(e,t){this.props.searchStore.events!==e.searchStore.events&&this.listenSearch(),this.state.criteria!==t.criteria&&(this.resubscribeToCriteria(),this.queryItems(!1))}listenSearch(){const{searchStore:e}=this.props;this.searchListener.stopListening(),this.searchListener.listen(e.events,"executeSearch",(({value:e})=>{this.submitCriteriaUpdate(e,{triggerChange:!1})})),this.searchListener.listen(e.events,"clearSearch",(()=>{this.submitCriteriaUpdate("",{triggerChange:!1})}))}componentWillUnmount(){this.listener.stopListening(),this.criteriaListener.stopListening(),this.searchListener.stopListening(),this.requestCancellation.abort(),this.currentRequest=void 0}resubscribeToCriteria(){const{workspace:{model:e}}=this.props,{criteria:t}=this.state;if(this.criteriaListener.stopListening(),t.elementType){const n=e.createElementType(t.elementType);n&&this.criteriaListener.listen(n.events,"changeData",this.scheduleUpdateAll)}if(t.refElement){const n=e.elements.find((e=>e instanceof Sa&&e.iri===t.refElement));n&&this.criteriaListener.listen(n.events,"changeData",this.scheduleUpdateAll)}if(t.refElementLink){const n=e.createLinkType(t.refElementLink);n&&this.criteriaListener.listen(n.events,"changeData",this.scheduleUpdateAll)}}scheduleUpdateAll=()=>{this.delayedUpdateAll.call(this.updateAll)};updateAll=()=>this.forceUpdate();render(){const{className:e,isControlled:t,searchStore:n,minSearchTermLength:r,translation:i}=this.props,o=this.state.querying?"loading":this.state.error?"error":this.state.items?"completed":"none",a=this.state.items??[],s=this.state.querying||0===this.state.selection.size;return R.jsxs("div",{className:un(fu,t?`${fu}--controlled`:void 0,e),children:[R.jsxs("div",{className:`${fu}__criteria`,children:[this.renderCriteria(),t?null:R.jsx(nc,{store:n,className:`${fu}__text-criteria`,inputProps:{name:"reactodia-instances-search-text",placeholder:i.textOptional("search_entities.input.placeholder")}})]}),R.jsx(ec,{state:o,title:i.text("search_entities.query_progress.title")}),R.jsxs("div",{className:`${fu}__rest reactodia-scrollable`,tabIndex:-1,children:[R.jsx(ac,{items:a,highlightText:this.state.criteria.text,selection:this.state.selection,onSelectionChanged:this.onSelectionChanged,footer:0===a.length?R.jsx(cc,{hasQuery:void 0!==this.state.items,minSearchTermLength:r}):null}),R.jsx("div",{className:`${fu}__rest-end`,children:R.jsx("button",{type:"button",className:`${fu}__load-more reactodia-btn reactodia-btn-primary`,disabled:this.state.querying,style:{display:this.state.moreItemsAvailable?void 0:"none"},title:i.text("search_entities.show_more_results.title"),onClick:()=>this.queryItems(!0),children:i.text("search_entities.show_more_results.label")})})]},this.state.resultId),R.jsxs("div",{className:un(`${fu}__actions`,s?`${fu}__actions-hidden`:void 0),"aria-hidden":s?"true":void 0,children:[R.jsx("button",{type:"button",className:`${fu}__action reactodia-btn reactodia-btn-secondary`,disabled:this.state.querying||this.state.selection.size<=1,title:i.text("search_entities.add_group.title"),onClick:()=>this.placeSelectedItems("group"),children:i.text("search_entities.add_group.label")}),R.jsx("button",{type:"button",className:`${fu}__action reactodia-btn reactodia-btn-primary`,disabled:this.state.querying||0===this.state.selection.size,title:i.text("search_entities.add_selected.title"),onClick:()=>this.placeSelectedItems("separately"),children:i.text("search_entities.add_selected.label")})]})]})}onSelectionChanged=e=>{this.setState({selection:e})};renderCriteria(){const{workspace:{model:e},translation:t}=this.props,{criteria:n}=this.state,r=[];if(n.elementType){const i=e.getElementType(n.elementType),o=t.formatLabel(i?.data?.label,n.elementType,e.language);r.push(R.jsxs("div",{className:`${fu}__criterion`,children:[this.renderRemoveCriterionButtons((()=>this.setState({criteria:{...n,elementType:void 0}},(()=>this.props.onChangeCriteria?.(this.state.criteria))))),t.template("search_entities.criteria_has_type",{entityType:R.jsx("span",{className:`${fu}__criterion-class`,title:n.elementType,children:o})})]},"hasType"))}else if(n.refElement){const i=function(e,t){for(const n of e.elements)for(const e of Ma(n))if(e.id===t)return e}(e,n.refElement)??Sa.placeholderData(n.refElement);let o;if(n.refElementLink){const r=e.getLinkType(n.refElementLink);o=t.formatLabel(r?.data?.label,n.refElementLink,e.language)}const a=R.jsx(uu,{target:i}),s=n.refElementLink?R.jsx("span",{className:`${fu}__criterion-link-type`,title:n.refElementLink,children:o}):void 0,l=R.jsx("span",{className:`${fu}__link-direction-in`}),c=R.jsx("span",{className:`${fu}__link-direction-out`});r.push(R.jsxs("div",{className:`${fu}__criterion`,children:[this.renderRemoveCriterionButtons((()=>this.setState({criteria:{...n,refElement:void 0,refElementLink:void 0}},(()=>this.props.onChangeCriteria?.(this.state.criteria))))),t.template(n.refElementLink?"in"===n.linkDirection?"search_entities.criteria_connected_to_source":"out"==n.linkDirection?"search_entities.criteria_connected_to_target":"search_entities.criteria_connected_via":"search_entities.criteria_connected",{entity:a,relationType:s,sourceIcon:l,targetIcon:c})]},"hasLinkedElement"))}return R.jsx("div",{className:`${fu}__criterions`,children:r})}renderRemoveCriterionButtons(e){return R.jsx("div",{className:`${fu}__criterion-remove reactodia-btn-group reactodia-btn-group-xs`,children:R.jsx("button",{type:"button",title:"Remove criteria",className:un(`${fu}__criterion-remove-button`,"reactodia-btn reactodia-btn-default"),onClick:e})})}submitCriteriaUpdate(e,t){const{onChangeCriteria:n}=this.props;this.setState((t=>{const n=""===e?void 0:e;return t.criteria.text===n?null:{criteria:{...t.criteria,text:n}}}),t.triggerChange?()=>n?.(this.state.criteria):void 0)}queryItems(e){const{workspace:{model:t,triggerWorkspaceEvent:n}}=this.props;let r;if(this.requestCancellation.abort(),e){if(!this.currentRequest)throw new Error("Cannot request more items without initial request.");const{limit:e}=this.currentRequest;r={...this.currentRequest,limit:"number"==typeof e?e+100:e}}else r=gu(this.state.criteria);if(!(r.text||r.elementTypeId||r.refElementId||r.refElementLinkId))return void this.setState({querying:!1,error:void 0,items:void 0,selection:new Set,moreItemsAvailable:!1});this.requestCancellation=new AbortController;const i=this.requestCancellation.signal;r={...r,signal:i},this.currentRequest=r,this.setState({querying:!0,error:void 0,moreItemsAvailable:!1}),t.dataProvider.lookup(r).then((e=>{i.aborted||(this.processFilterData(e),n(sn.searchQueryItem))})).catch((e=>{i.aborted||(console.error(e),this.setState({querying:!1,error:e}))}))}processFilterData(e){const t="number"==typeof this.currentRequest.limit&&this.currentRequest.limit>100,n=new Set;if(t)for(const e of this.state.items)n.add(e.id);const r=t?[...this.state.items]:[];for(const{element:t}of e)n.has(t.id)||r.push(t);const i="number"==typeof this.currentRequest.limit&&e.length>=this.currentRequest.limit;this.setState(t?{querying:!1,items:r,error:void 0,moreItemsAvailable:i}:{querying:!1,resultId:this.state.resultId+1,items:r,selection:new Set,error:void 0,moreItemsAvailable:i})}placeSelectedItems(e){const{onAddElements:t,workspace:{model:n,view:r}}=this.props,i=r.findAnyCanvas(),{items:o,selection:a}=this.state;if(!i||0===a.size)return;const s=n.history.startBatch(Rt.text("search_entities.place_elements.command")),l=o?o.filter((e=>a.has(e.id))):Array.from(a,Sa.placeholderData);let c;if("separately"===e){const e=new fo({position:vu(i,.3,.5)});c=l.map((e=>n.createElement(e))),i.renderingState.syncUpdate(),s.history.execute(uo({target:e,elements:c,graph:n,sizeProvider:i.renderingState,distance:150}))}else{const e=new Ca({items:l.map((e=>({data:e}))),position:vu(i,.5,.5)});c=[e],n.addElement(e),i.renderingState.syncUpdate();const{x:t,y:r,width:o,height:a}=Di(e,i.renderingState);e.setPosition({x:t-o/2,y:r-a/2})}const d=Array.from(a);s.history.execute(Ka(n,d)),s.history.execute(Xa(n,{addedElements:d})),s.store(),t?.(c)}};function gu(e){const{text:t,elementType:n,refElement:r,refElementLink:i,linkDirection:o}=e;return{text:t,elementTypeId:n,refElementId:r,refElementLinkId:i,linkDirection:o,limit:100}}function vu(e,t,n){const r=e.metrics.pane;return e.metrics.clientToPaperCoords(r.clientWidth*t,r.clientHeight*n)}function mu(e){const{searchStore:t,searchTimeout:n=200,minSearchTermLength:r=1}=e,i=rc({initialValue:"",submitTimeout:n,allowSubmit:e=>e.length>=r}),o=t??i,a=cn(),s=Ht();return R.jsx(yu,{...e,isControlled:Boolean(t),searchStore:o,minSearchTermLength:r,workspace:a,translation:s})}var bu="reactodia-links-toolbox",wu=!0,yu=class extends m.Component{listener=new _r;selectionListener=new _r;searchListener=new _r;linkListener=new _r;debounceSelection=new kr(50);delayedUpdateAll=new kr;constructor(e){super(e),this.state={filteredLinks:{term:"",diagramHasLink:!1,selection:[],selectionLinks:new Set,links:[]}}}componentDidMount(){const{workspace:{model:e}}=this.props;this.listener.listen(e.events,"loadingSuccess",this.updateOnCurrentSelection),this.listener.listen(e.events,"changeLanguage",this.updateOnCurrentSelection),this.subscribeToSelectionChanges(),this.listenSearch(),this.updateOnCurrentSelection()}componentDidUpdate(e,t){const{trackSelected:n=wu,searchStore:r}=this.props;n!==e.trackSelected&&this.subscribeToSelectionChanges(),r.events!==e.searchStore.events&&this.listenSearch(),this.state.filteredLinks!==t.filteredLinks&&this.subscribeOnFilteredLinksEvents()}listenSearch(){const{searchStore:e}=this.props;this.searchListener.stopListening(),this.searchListener.listen(e.events,"executeSearch",(({value:e})=>{this.setState(((t,n)=>_u(t,e,n)))})),this.searchListener.listen(e.events,"clearSearch",(()=>{this.setState(((e,t)=>_u(e,"",t)))}))}componentWillUnmount(){this.listener.stopListening(),this.selectionListener.stopListening(),this.searchListener.stopListening(),this.linkListener.stopListening(),this.debounceSelection.dispose(),this.delayedUpdateAll.dispose()}subscribeToSelectionChanges(){const{trackSelected:e=wu,workspace:{model:t}}=this.props;this.selectionListener.stopListening(),e&&this.selectionListener.listen(t.events,"changeSelection",(()=>{this.debounceSelection.call(this.updateOnCurrentSelection)}))}updateOnCurrentSelection=()=>{this.setState(((e,t)=>_u(e,t.searchStore.value,t)))};subscribeOnFilteredLinksEvents(){const{workspace:{model:e}}=this.props,{filteredLinks:t}=this.state;this.linkListener.stopListening();const n=new Set;for(const e of t.links)n.add(e.iri),this.linkListener.listen(e.type.events,"changeData",this.onLinkChanged);this.linkListener.listen(e.events,"changeLinkVisibility",(e=>{n.has(e.source)&&this.onLinkChanged()}))}onLinkChanged=()=>{this.delayedUpdateAll.call((()=>this.forceUpdate()))};render(){const{className:e,isControlled:t,searchStore:n,minSearchTermLength:r,workspace:i,translation:o}=this.props,{filteredLinks:a}=this.state,s=a.links.filter((e=>a.selectionLinks.has(e.iri))),l=a.links.filter((e=>!a.selectionLinks.has(e.iri)));return R.jsxs("div",{className:un(bu,t?`${bu}--controlled`:void 0,e),children:[R.jsxs("div",{className:`${bu}__heading`,children:[t?null:R.jsx(nc,{store:n,className:`${bu}__filter`,inputProps:{name:"reactodia-link-types-filter",placeholder:o.textOptional("search_link_types.input.placeholder")}}),R.jsxs("div",{className:`${bu}__switch-all`,children:[R.jsx(xu,{onSetVisibility:e=>Su(a.links,e,i),disabled:0===a.links.length}),R.jsxs("span",{children:[" ",o.text("search_link_types.switch_all.label")]})]})]}),R.jsx("div",{className:`${bu}__rest`,children:R.jsxs("div",{className:"reactodia-scrollable",children:[s.length>0?R.jsxs(R.Fragment,{children:[R.jsx("div",{role:"heading",className:`${bu}__links-heading`,children:1===a.selection.length?o.template("search_link_types.heading_connected_single",{entity:R.jsx(uu,{target:a.selection[0]})}):o.template("search_link_types.heading_connected",{count:a.selection.length})}),this.renderLinks(s)]}):null,s.length>0&&l.length>0?R.jsx("div",{role:"heading",className:`${bu}__links-heading`,children:o.template("search_link_types.heading_other",{count:l.length})}):null,this.renderLinks(l),0===a.links.length?R.jsx(cc,{className:`${bu}__no-results`,hasQuery:a.term.length>0,minSearchTermLength:r,message:a.diagramHasLink?void 0:o.text("search_link_types.no_results")}):null]})})]})}renderLinks(e){const{workspace:{getCommandBus:t}}=this.props,{filteredLinks:n}=this.state,r=t(Fs),i={capabilities:[]};return r.trigger("findCapabilities",i),R.jsx("ul",{className:`${bu}__links`,children:e.map((e=>R.jsx(ku,{link:e,onAddToFilter:i.capabilities.length>0&&n.selectionLinks.has(e.iri)?this.onAddToFilter:void 0,filterKey:n.term},e.iri)))})}onAddToFilter=e=>{const{workspace:{getCommandBus:t}}=this.props,{filteredLinks:n}=this.state;1===n.selection.length&&t(Fs).trigger("setCriteria",{criteria:{refElement:n.selection[0].id,refElementLink:e}})}};function _u(e,t,n){const{trackSelected:r=wu,workspace:{model:i},translation:o}=n,a=new Set;for(const e of i.links)(e instanceof Ea||e instanceof $a)&&a.add(e.typeId);const s=Ar(t),l=Array.from(a,(e=>i.createLinkType(e))).map((e=>({iri:e.id,type:e,label:o.formatLabel(e.data?.label,e.id,i.language)}))).filter((e=>s(e.label))).sort(((e,t)=>e.label.localeCompare(t.label))),c=new Map,d=new Set;if(r)for(const e of i.selection)if(e instanceof ho){for(const t of Ma(e))c.set(t.id,t);for(const t of i.getElementLinks(e))d.add(t.typeId)}return{...e,filteredLinks:{term:t,diagramHasLink:a.size>0,selection:Array.from(c.values()),selectionLinks:d,links:l}}}function ku(e){const{link:t,filterKey:n,onAddToFilter:r}=e,i=cn(),o=Ht(),{model:a}=i;return R.jsxs("li",{"data-linktypeid":t.iri,className:`${bu}__link-item`,children:[R.jsx(xu,{className:`${bu}__link-buttons`,visibility:a.getLinkVisibility(t.iri),onSetVisibility:e=>Su([t],e,i)}),R.jsx(Is,{type:"linkType",target:t.iri,children:R.jsx("div",{className:`${bu}__link-title`,children:Ql(t.label,n)})}),r?R.jsx("div",{className:`${bu}__filter-button`,title:o.text("search_link_types.add_to_filter.title"),onClick:()=>r(t.iri)}):null]})}function xu(e){const{className:t,visibility:n,onSetVisibility:r,disabled:i}=e,o=Ht();return R.jsxs("div",{className:un(t,"reactodia-btn-group reactodia-btn-group-xs"),children:[R.jsx("button",{title:o.text("search_link_types.switch_hidden.title"),className:un(`${bu}__toggle-invisible`,"reactodia-btn reactodia-btn-default","hidden"===n?"active":void 0),disabled:i,onClick:()=>r("hidden")}),R.jsx("button",{title:o.text("search_link_types.switch_without_label.title"),className:un(`${bu}__toggle-lines-only`,"reactodia-btn reactodia-btn-default","withoutLabel"===n?"active":void 0),disabled:i,onClick:()=>r("withoutLabel")}),R.jsx("button",{title:o.text("search_link_types.switch_visible.title"),className:un(`${bu}__toggle-visible`,"reactodia-btn reactodia-btn-default","visible"===n?"active":void 0),disabled:i,onClick:()=>r("visible")})]})}function Su(e,t,n){const{model:r}=n,i=r.history.startBatch(Rt.text("search_link_types.switch.command"));for(const n of e)r.history.execute(co(r,n.iri,t));i.store()}function Cu(e){const{canvas:t}=zi(),n=cn(),r=Ht(),i=m.useContext(br)??"light";return R.jsx(Nu,{...e,canvas:t,workspace:n,translation:r,colorScheme:i})}var Lu="reactodia-navigator",Mu="auto",Eu=.4,zu=300,$u=160,Tu=.2,Nu=class extends m.Component{delayedRedraw=new kr;delayedSizeCheck=new kr;listener=new _r;canvas;transform;isDraggingViewport=!1;constructor(e){super(e);const{expanded:t=Mu}=this.props;this.state={initialized:!1,expanded:Boolean(t),autoToggle:"auto"===t,allowExpand:!0}}componentDidMount(){const{canvas:e,workspace:{model:t}}=this.props,{renderingState:n}=e;this.listener.listen(t.events,"changeCells",this.scheduleRedraw),this.listener.listen(t.events,"elementEvent",this.scheduleRedraw),this.listener.listen(e.events,"pointerMove",this.scheduleRedraw),this.listener.listen(e.events,"scroll",this.scheduleRedraw),this.listener.listen(e.events,"resize",(()=>{this.delayedSizeCheck.call(this.onCheckSize)})),this.listener.listen(n.shared.events,"changeHighlight",this.scheduleRedraw),this.listener.listen(n.events,"changeElementSize",this.scheduleRedraw),this.onCheckSize()}shouldComponentUpdate(e,t){return!(e.colorScheme===this.props.colorScheme&&e.dock===this.props.dock&&e.dockOffsetX===this.props.dockOffsetX&&e.dockOffsetY===this.props.dockOffsetY&&e.width===this.props.width&&e.height===this.props.height&&t===this.state)}componentDidUpdate(e){this.props.colorScheme!==e.colorScheme&&this.scheduleRedraw()}componentWillUnmount(){this.delayedRedraw.dispose(),this.delayedSizeCheck.dispose(),this.listener.stopListening(),this.stopDragViewport()}scheduleRedraw=()=>{this.state.expanded&&this.delayedRedraw.call(this.draw)};draw=()=>{const{canvas:e,workspace:{model:t},width:n=zu,height:r=$u}=this.props,i=e.metrics.transform;this.calculateTransform(i);const o=function(e,t){const{backgroundFill:n,scrollablePaneFill:r,viewportFill:i,viewportStroke:o,overflowStroke:a}=e,s=getComputedStyle(t);return{backgroundFill:n??s.getPropertyValue("--reactodia-navigator-background-fill"),scrollablePaneFill:r??s.getPropertyValue("--reactodia-navigator-scrollable-pane-fill"),viewportFill:i??s.getPropertyValue("--reactodia-navigator-viewport-fill"),viewportStroke:o??Au(s.getPropertyValue("--reactodia-navigator-viewport-stroke-color"),s.getPropertyValue("--reactodia-navigator-viewport-stroke-width"),s.getPropertyValue("--reactodia-navigator-viewport-stroke-dash")),overflowStroke:a??Au(s.getPropertyValue("--reactodia-navigator-overflow-stroke-color"),s.getPropertyValue("--reactodia-navigator-overflow-stroke-width"),s.getPropertyValue("--reactodia-navigator-overflow-stroke-dash"))}}(this.props,this.canvas),a=this.canvas.getContext("2d");if(a.fillStyle=o.backgroundFill,a.clearRect(0,0,n,r),a.fillRect(0,0,n,r),0===t.elements.length)return;const s=function(e){return{x:-e.paddingX,y:-e.paddingY}}(i),l=$i.add(s,function(e){return{x:e.width*e.scale+2*e.paddingX,y:e.height*e.scale+2*e.paddingY}}(i)),c=Pu(s,0,this.transform),d=Pu(l,0,this.transform);a.fillStyle=o.scrollablePaneFill,a.fillRect(c.x,c.y,d.x-c.x,d.y-c.y),a.save();const{clientWidth:u,clientHeight:h}=e.metrics.pane,f=e.metrics.clientToScrollablePaneCoords(0,0),p=e.metrics.clientToScrollablePaneCoords(u,h),{x:g,y:v}=Pu(f,0,this.transform),{x:m,y:b}=Pu(p,0,this.transform),w={x:g,y:v,width:m-g,height:b-v};this.fillViewport(a,w,o),this.drawElements(a,i,o),this.strokeViewport(a,w,o),a.restore()};drawElements(e,t,n){const{canvas:r,workspace:{model:i}}=this.props;for(const o of i.elements){const{type:i,bounds:{x:a,y:s,width:l,height:c}}=r.renderingState.getElementShape(o);e.beginPath(),e.fillStyle=this.chooseElementColor(o,n);const{x:d,y:u}=Vu({x:a,y:s},t,this.transform),{x:h,y:f}=Vu({x:a+l,y:s+c},t,this.transform);"ellipse"===i?e.ellipse((d+h)/2,(u+f)/2,(h-d)/2,(f-u)/2,0,2*Math.PI,0):e.rect(d,u,h-d,f-u),e.fill()}}chooseElementColor(e,t){const{canvas:n,workspace:{getElementStyle:r}}=this.props,{highlighter:i}=n.renderingState.shared;if(i&&!i(e))return"lightgray";const{color:o}=r(e);return o}fillViewport(e,t,n){e.fillStyle=n.viewportFill,e.fillRect(t.x,t.y,t.width,t.height)}strokeViewport(e,t,n){const{width:r=zu,height:i=$u}=this.props,{x:o,y:a}=t,s=o+t.width,l=a+t.height;if(Iu(e,n.viewportStroke),e.strokeRect(o,a,s-o,l-a),e.beginPath(),o<0){const t=e.lineWidth;e.moveTo(t,a),e.lineTo(t,l)}if(a<0){const t=e.lineWidth;e.moveTo(o,t),e.lineTo(s,t)}if(s>r){const t=r-e.lineWidth;e.moveTo(t,a),e.lineTo(t,l)}if(l>i){const t=i-e.lineWidth;e.moveTo(o,t),e.lineTo(s,t)}Iu(e,n.overflowStroke),e.stroke()}calculateTransform(e){const{canvas:t,workspace:{model:n},width:r=zu,height:i=$u,scalePadding:o=Tu}=this.props,a=Xi(n.elements,n.links,t.renderingState),s=Math.max(a.width,r/.25)*o,l=Math.max(a.height,i/.25)*o,c=wo({x:a.x-s,y:a.y-l},e),d=wo({x:a.x+a.width+s,y:a.y+a.height+l},e),u=d.x-c.x,h=d.y-c.y,f=Math.min(r/u,i/h);this.transform={scale:f,canvasOffset:{x:(r-u*f)/2,y:(i-h*f)/2},paneOffset:c}}canvasFromPageCoords(e,t){const{top:n,left:r}=this.canvas.getBoundingClientRect();return{x:e-r-window.scrollX,y:t-n-window.scrollY}}onCheckSize=()=>{const{canvas:e,autoCollapseFraction:t=Eu,width:n=zu,height:r=$u}=this.props,{expanded:i,autoToggle:o,allowExpand:a}=this.state,{clientWidth:s,clientHeight:l}=e.metrics.pane,c=n<.9*s&&r<.9*l,d=c&&n<s*t&&r<l*t;o&&i!==d?this.setState({expanded:d,allowExpand:c},(()=>{this.scheduleRedraw(),this.setInitialized()})):c!==a?this.setState({allowExpand:c},(()=>{this.setInitialized()})):this.setInitialized()};async setInitialized(){await Promise.resolve(),this.setState({initialized:!0})}render(){const{dock:e="se",dockOffsetX:t,dockOffsetY:n,width:r=zu,height:i=$u,translation:o}=this.props,{initialized:a,expanded:s,allowExpand:l}=this.state,c=s&&l;return R.jsx(Ss,{dock:e,dockOffsetX:t,dockOffsetY:n,children:R.jsxs("div",{className:un(Lu,a?`${Lu}--animated`:void 0,`${Lu}--${c?"expanded":"collapsed"}`),style:c?{width:r,height:i}:void 0,children:[R.jsx("canvas",{ref:this.onCanvasMount,width:r,height:i,onMouseDown:e=>{this.startDragViewport(),this.onDragViewport(e)},onWheel:this.onWheel}),R.jsx("button",{type:"button",className:`${Lu}__toggle`,title:o.text(s?"navigator.toggle_collapse.title":"navigator.toggle_expand.title"),disabled:!l,onClick:this.onToggleClick,children:R.jsx("div",{className:`${Lu}__toggle-icon`})})]})})}onCanvasMount=e=>{this.canvas=e};startDragViewport(){this.isDraggingViewport||(this.isDraggingViewport=!0,document.addEventListener("mousemove",this.onDragViewport),document.addEventListener("mouseup",this.onMouseUp))}stopDragViewport(){this.isDraggingViewport&&(this.isDraggingViewport=!1,document.removeEventListener("mousemove",this.onDragViewport),document.removeEventListener("mouseup",this.onMouseUp))}onDragViewport=e=>{if(e.preventDefault(),this.isDraggingViewport){const{canvas:t}=this.props,n=function(e,t,n){return yo({x:n.paneOffset.x+(e.x-n.canvasOffset.x)/n.scale,y:n.paneOffset.y+(e.y-n.canvasOffset.y)/n.scale},t)}(this.canvasFromPageCoords(e.pageX,e.pageY),t.metrics.transform,this.transform);t.centerTo(n)}};onMouseUp=()=>{this.stopDragViewport()};onWheel=e=>{e.preventDefault();const{canvas:t}=this.props,n=Math.max(-1,Math.min(1,e.deltaY||e.deltaX));t.zoomBy(.1*-n)};onToggleClick=()=>{this.setState((e=>({expanded:!e.expanded,autoToggle:!1})),this.scheduleRedraw)}};function Au(e,t,n){const r=Number(t),i=n.split(" ").map((e=>Number(e)));return{color:e||void 0,width:Number.isFinite(r)?r:void 0,dash:i.every((e=>Number.isFinite(e)))?i:void 0}}function Iu(e,t){const{color:n="transparent",width:r=1,dash:i=[]}=t;e.strokeStyle=n,e.lineWidth=r,e.setLineDash(i)}function Pu(e,t,n){return{x:n.canvasOffset.x+(e.x-n.paneOffset.x)*n.scale,y:n.canvasOffset.y+(e.y-n.paneOffset.y)*n.scale}}function Vu(e,t,n){return Pu(wo(e,t),0,n)}var Hu="reactodia-selection";function Ru(e){const{hotkeySelectAll:t}=e,{model:n,canvas:r}=zi(),i=Nt(zt(n.events,"changeSelection"),(()=>n.selection.filter((e=>e instanceof ho))),St),[o,a]=m.useState();return m.useEffect((()=>{let e;const t=new _r;let i;t.listen(r.events,"pointerDown",(t=>{if(!t.target&&!t.panning&&t.sourceEvent.shiftKey===("selection"!==t.source.pointerMode)){t.sourceEvent.preventDefault();const{pageX:n,pageY:i}=t.sourceEvent;e={pageX:n,pageY:i},a(Ou(e,e,r.metrics)),o()}}));const o=()=>{i?.stopListening(),i=new _r,i.listen(r.events,"pointerMove",(t=>{const{pageX:n,pageY:i}=t.sourceEvent;e&&a(Ou(e,{pageX:n,pageY:i},r.metrics))}))};return t.listen(r.events,"pointerUp",(t=>{const{pageX:o,pageY:s}=t.sourceEvent;i?.stopListening(),a(void 0),t.triggerAsClick?(t.sourceEvent.shiftKey===("selection"!==t.source.pointerMode)||n.selection.length>1)&&t.target instanceof ho&&(t.sourceEvent.preventDefault(),Bu(t.target,n)):e&&function(e,t,n){const r=new Set(t.selection),i=Array.from(Du(t.elements,e,r,n.renderingState));i.length>0&&t.setSelection([...t.selection,...i])}(Ou(e,{pageX:o,pageY:s},r.metrics),n,r),e=void 0})),()=>{t.stopListening(),i?.stopListening()}}),[]),Ri(void 0===t?"Mod+A":t,(()=>{n.setSelection(n.elements)})),o||i.length>1?R.jsx(aa,{layer:"overElements",children:R.jsx(ju,{...e,model:n,canvas:r,selectedElements:i,highlightedBox:o})}):null}function Ou(e,t,n){const{x:r,y:i}=n.pageToPaperCoords(e.pageX,e.pageY),{x:o,y:a}=n.pageToPaperCoords(t.pageX,t.pageY);return{x:Math.min(r,o),y:Math.min(i,a),width:Math.abs(o-r),height:Math.abs(a-i)}}function*Du(e,t,n,r){for(const i of e){const e=Di(i,r);!n.has(i)&&Ni.intersects(t,e)&&(yield i)}}function Bu(e,t){const{selection:n}=t,r=n.includes(e)?n.filter((t=>t!=e)):[...n,e];t.setSelection(r)}function ju(e){const{model:t,canvas:n,selectedElements:r,highlightedBox:i,boxMargin:o=5,itemMargin:a=2,children:s}=e;Tt(zt(n.events,"changeTransform"),(()=>n.metrics.transform));const l=Fu(Nt(Lo(function(e,t,n){return m.useCallback((r=>{if(0===n.length)return()=>{};const i=new Set(n),o=new _r;return o.listen(e.events,"elementEvent",(({data:e})=>{e.changePosition&&i.has(e.changePosition.source)&&r()})),o.listen(t.renderingState.events,"changeElementSize",(e=>{i.has(e.source)&&r()})),()=>o.stopListening()}),[e.events,t.renderingState.events,n])}(t,n,r),n.renderingState),(()=>Xi(r,[],n.renderingState)),Ni.equals),o,n.metrics),c=i?Array.from(Du(t.elements,i,new Set(r),n.renderingState)):[],d=m.useRef(void 0);d.current||(d.current=new Uu(n,t)),m.useEffect((()=>()=>{d.current?.onPointerUp()}),[]);const u=d.current;return u.setElements(r),R.jsxs("div",{className:Hu,children:[r.length>1?R.jsxs(R.Fragment,{children:[r.map((e=>R.jsx("div",{className:`${Hu}__selectedItem`,style:Fu(Di(e,n.renderingState),a,n.metrics)},e.id))),R.jsx("div",{className:`${Hu}__selectedActions`,style:l,children:s??R.jsxs(R.Fragment,{children:[R.jsx(Md,{dock:"nw",dockColumn:1}),R.jsx(Ed,{dock:"nw",dockColumn:2}),R.jsx(Ad,{dock:"nw",dockColumn:3}),R.jsx(Ld,{dock:"ne"}),R.jsx(Td,{dock:"e"}),R.jsx(zd,{dock:"s"}),R.jsx(Hd,{dock:"se",dockColumn:1})]})}),R.jsx("div",{className:`${Hu}__selectedBox`,style:l,onClick:u.onClick,onPointerDown:u.onPointerDown,onPointerMove:u.onPointerMove,onPointerUp:u.onPointerUp,onPointerCancel:u.onPointerUp})]}):null,i?R.jsx("div",{className:`${Hu}__highlightedBox`,style:Fu(i,0,n.metrics)}):null,c.map((e=>R.jsx("div",{className:`${Hu}__highlightedItem`,style:Fu(Di(e,n.renderingState),a,n.metrics)},e.id)))]})}function Fu(e,t,n){const{x:r,y:i}=n.paperToScrollablePaneCoords(e.x,e.y),{x:o,y:a}=n.paperToScrollablePaneCoords(e.x+e.width,e.y+e.height);return{left:r-t,top:i-t,width:o-r+2*t,height:a-i+2*t}}var Uu=class{canvas;model;elements=[];moveState;constructor(e,t){this.canvas=e,this.model=t}setElements(e){this.elements=e}onClick=e=>{if(this.isToggleSelectionEvent(e)){e.preventDefault();const t=this.canvas.metrics.pageToPaperCoords(e.pageX,e.pageY),n=Ki(this.model.elements,t,this.canvas.renderingState);n&&Bu(n,this.model)}};onPointerDown=e=>{const{canvas:t,model:n,elements:r}=this;if(this.isToggleSelectionEvent(e))return;e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId);const i=t.metrics.pageToPaperCoords(e.pageX,e.pageY),o=new Set;for(const e of r)o.add(e.id);const a=new Map,s=new Map;for(const e of r){a.set(e,e.position);for(const t of n.getElementLinks(e))t.vertices.length>0&&t.sourceId===e.id&&o.has(t.targetId)&&s.set(t,t.vertices)}this.moveState={origin:i,positions:a,links:s,command:ro.capturePartial(r,Array.from(s.keys()))},t.focus()};isToggleSelectionEvent(e){return e.shiftKey}onPointerMove=e=>{const{canvas:t,moveState:n}=this;if(n){e.preventDefault();const{x:r,y:i}=t.metrics.pageToPaperCoords(e.pageX,e.pageY),o=r-n.origin.x,a=i-n.origin.y;for(const[e,t]of n.positions)e.setPosition({x:t.x+o,y:t.y+a});for(const[e,t]of n.links)e.setVertices(t.map((e=>({x:e.x+o,y:e.y+a}))));t.renderingState.syncUpdate()}};onPointerUp=e=>{this.moveState&&(e?.preventDefault(),this.moveState.command.hasChanges()&&this.model.history.registerToUndo(this.moveState.command),this.moveState=void 0)}},qu="reactodia-toolbar";function Wu(e){const{dock:t,dockOffsetX:n,dockOffsetY:r,menu:i,children:o}=e,a=Ht(),s="s"===t||"sw"===t||"se"===t;return R.jsx(Ss,{dock:t,dockOffsetX:n,dockOffsetY:r,children:R.jsxs("div",{className:un(qu,s?`${qu}--drop-up`:void 0),role:"toolbar",children:[i?R.jsx(Bl,{className:`${qu}__menu`,direction:s?"up":"down",title:a.text("toolbar.menu_toggle.title"),children:i}):null,o?R.jsx("div",{className:un(`${qu}__quick-access-group`,"reactodia-btn-group","reactodia-btn-group-sm"),children:o}):null]})})}var Gu="reactodia-toolbar-action";function Zu(e){const{className:t,title:n,disabled:r,hotkey:i,onSelect:o,children:a}=e,s=Gl(),l=Ri(i,o),c=n&&l?`${n} (${l.text})`:n;return s?R.jsxs(Wl,{className:t,title:c,"aria-label":n,"aria-keyshortcuts":l?.text,disabled:r,onSelect:o,children:[a,l?R.jsxs(R.Fragment,{children:[R.jsx("span",{className:`${Gu}__spacer`}),R.jsx("span",{className:`${Gu}__hotkey`,children:l.text})]}):null]}):R.jsx("button",{type:"button",className:un(t,"reactodia-btn reactodia-btn-default"),title:c,"aria-label":n,"aria-keyshortcuts":l?.text,disabled:r,onClick:o,children:a})}function Ku(e){const{className:t,fileAccept:n,onSelect:r,children:i,...o}=e,a=m.useRef(null);return R.jsxs(R.Fragment,{children:[R.jsx(Zu,{...o,className:un(t,`${Gu}__open`),onSelect:()=>{a.current?.click()},children:i}),R.jsx("input",{ref:a,role:"none",type:"file",className:`${Gu}__open-input`,accept:n,onChange:e=>{e.currentTarget.files&&r(e.currentTarget.files[0])}})]})}function Xu(e){const{className:t,title:n,...r}=e,{model:i,editor:o}=cn(),a=Ht();return R.jsx(Zu,{...r,className:un(t,`${Gu}__clear-all`),title:n??a.text("toolbar_action.clear_all.title"),onSelect:()=>{const e=i.history.startBatch(Rt.text("toolbar_action.clear_all.command"));o.removeItems([...i.elements]),e.store()},children:a.text("toolbar_action.clear_all.label")})}function Qu(e){const{className:t,title:n,kind:r,fileName:i="diagram",rasterOptions:o,children:a,...s}=e,{canvas:l}=zi(),c=Ht();return"exportRaster"===r?R.jsx(Zu,{...s,className:un(t,`${Gu}__export-image`),title:n??c.text("toolbar_action.export_raster.title"),onSelect:async()=>{const e=o??{backgroundColor:"white"};fr.saveAs(function(e){const t=";base64,";if(-1===e.indexOf(t)){const t=e.split(","),n=t[0].split(":")[1],r=decodeURIComponent(t[1]);return new Blob([r],{type:n})}{const n=e.split(t),r=n[0].split(":")[1],i=window.atob(n[1]),o=i.length,a=new Uint8Array(o);for(let e=0;e<o;++e)a[e]=i.charCodeAt(e);return new Blob([a],{type:r})}}(await l.exportRaster(e)),`${i}.png`)},children:a??c.text("toolbar_action.export_raster.label")}):"exportSvg"===r?R.jsx(Zu,{...s,className:un(t,`${Gu}__export-image`),title:n??c.text("toolbar_action.export_svg.title"),onSelect:async()=>{const e=await l.exportSvg({addXmlHeader:!0});fr.saveAs(new Blob([e],{type:"image/svg+xml"}),`${i}.svg`)},children:a??c.text("toolbar_action.export_svg.label")}):"print"===r?R.jsx(Zu,{...s,className:un(t,`${Gu}__print`),title:n??c.text("toolbar_action.export_print.title"),onSelect:async()=>{const e=window.open("",void 0,"width=1280,height=720");if(!e)return void console.error("Reactodia: failed to open print preview window");const t=await l.exportSvg();e.document.write(t),e.document.close(),e.print()},children:a??c.text("toolbar_action.export_print.label")}):null}function Yu(e){const{className:t,title:n,hotkey:r,...i}=e,{model:{history:o}}=zi(),a=Ht(),s=Gl(),l=Lt(o.events,"historyChanged",(()=>{const{undoStack:e}=o;return 0===e.length?void 0:e[e.length-1]})),c=!n&&l?eh(l,a):void 0;return R.jsx(Zu,{...i,className:un(t,`${Gu}__undo`),disabled:!l,title:n??(void 0===c?a.text("toolbar_action.undo.title"):a.text("toolbar_action.undo.title_named",{command:c})),hotkey:void 0===r?"Mod+Z":r,onSelect:()=>o.undo(),children:s?a.text("toolbar_action.undo.label"):null})}function Ju(e){const{className:t,title:n,hotkey:r,...i}=e,{model:{history:o}}=zi(),a=Ht(),s=Gl(),l=Lt(o.events,"historyChanged",(()=>{const{redoStack:e}=o;return 0===o.redoStack.length?void 0:e[e.length-1]})),c=!n&&l?eh(l,a):void 0;return R.jsx(Zu,{...i,className:un(t,`${Gu}__redo`),disabled:!l,title:n??(void 0===c?a.text("toolbar_action.redo.title"):a.text("toolbar_action.redo.title_named",{command:c})),hotkey:void 0===r?"Mod+Shift+Z":r,onSelect:()=>o.redo(),children:s?a.text("toolbar_action.redo.label"):null})}function eh(e,t){return"string"==typeof e.title||void 0===e.title?e.title:e.title.resolve(t)}function th(e){const{className:t,title:n,...r}=e,{model:i,canvas:o}=zi(),{performLayout:a}=cn(),s=Ht(),l=Lt(i.events,"changeCells",(()=>0===i.elements.length));return R.jsx(Zu,{...r,className:un(t,`${Gu}__layout`),title:n??s.text("toolbar_action.layout.title"),disabled:l,onSelect:async()=>{await a({canvas:o,animate:!0})},children:s.text("toolbar_action.layout.label")})}function nh(e){const{className:t,title:n,languages:r}=e,{model:i}=zi(),o=Ht(),a=Lt(i.events,"changeLanguage",(()=>i.language));return 0===r.length?null:R.jsxs("div",{className:un(t,`${Gu}__language-selector`),title:n??o.text("toolbar_action.language_selector.title"),children:[R.jsx("label",{htmlFor:"reactodia-language-selector"}),R.jsx("select",{id:"reactodia-language-selector",value:a,onChange:e=>i.setLanguage(e.currentTarget.value),children:r.map((({code:e,label:t})=>R.jsx("option",{value:e,children:t},e)))})]})}var rh=m.createContext(null);function ih(e={}){const t=m.useContext(rh);if(!t)throw new Error("Missing Reactodia unified search section context");const{searchStore:n,isSectionActive:r,setSectionActive:i}=t,[o,a]=m.useState(r),{searchTimeout:s=0,allowSubmit:l}=e,c=rc({initialValue:n.value,submitTimeout:s,allowSubmit:l});return m.useLayoutEffect((()=>{if(r){a(!0);const e=new _r;return e.listen(n.events,"changeValue",(({source:e,action:t})=>{c.change({value:e.value,action:t})})),c.change({value:n.value,action:"submit"}),()=>e.stopListening()}}),[r]),m.useEffect((()=>{o&&c.change({value:n.value,action:"submit"})}),[o]),{shouldRender:o,isSectionActive:r,setSectionActive:i,searchStore:c}}function oh(e){const{searchTimeout:t=200,minSearchTermLength:n=2,draggableItems:r,placeCreatedEntity:i}=e,{searchStore:o,shouldRender:a}=ih({searchTimeout:t,allowSubmit:e=>e.length>=n});return a?R.jsx(_c,{className:"reactodia-search-section-element-types",searchStore:o,draggableItems:r,placeCreatedEntity:i}):null}function ah(e){const{searchTimeout:t=600,minSearchTermLength:n=3}=e,{getCommandBus:r}=cn(),{shouldRender:i,setSectionActive:o,searchStore:a}=ih({searchTimeout:t,allowSubmit:e=>e.length>=n}),s=r(Fs);return m.useEffect((()=>{const e=new _r;return e.listen(s,"setCriteria",(({criteria:e})=>{o(!0,sh(e))})),()=>e.stopListening()}),[i,s]),R.jsx(hu,{className:"reactodia-search-section-entities",searchStore:a,onChangeCriteria:e=>{i&&o(!0,sh(e))},onAddElements:()=>{o(!1)}})}function sh(e){return e.text||e.elementType||e.refElement?e:void 0}function lh(e){const{searchTimeout:t=200,minSearchTermLength:n=1}=e,{shouldRender:r,isSectionActive:i,searchStore:o}=ih({searchTimeout:t,allowSubmit:e=>e.length>=n});return r?R.jsx(mu,{className:"reactodia-search-section-link-types",trackSelected:i,searchStore:o}):null}var ch="reactodia-unified-search";function dh(e){const{sections:t,direction:n="down",defaultWidth:r=300,defaultHeight:i=350,minWidth:o=200,minHeight:a=150,offsetWithMaxWidth:s=20,offsetWithMaxHeight:l=20,hotkeyFocus:c}=e,[d,u]=m.useState(!1),[h,f]=m.useState(uh.empty),p=rc({initialValue:""}),g=Lt(p.events,"changeValue",(()=>p.value));m.useEffect((()=>{const e=()=>{f((e=>e.deactivate())),u(!1)};return p.events.on("clearSearch",e),()=>p.events.off("clearSearch",e)}),[p,f,u]);const[v,b]=m.useState({width:r,height:i}),w=m.useRef({width:1/0,height:1/0}),y={width:Math.min(v.width,w.current.width),height:Math.min(v.height,w.current.height)},_=m.useMemo((()=>t.map((e=>({...e,context:{searchStore:p,isSectionActive:e.key===h?.key,setSectionActive:(t,n)=>{t?(f((t=>t.activate(e.key,n))),u(!0),x.current?.focus()):(f((e=>e.deactivate())),u(!1))}}})))),[t,p,h,f,u]),{getCommandBus:k}=cn(),x=m.useRef(null),S=m.useCallback((({sectionKey:e})=>{e&&(t.some((t=>t.key===e))?f((t=>t.activate(e))):console.warn(`Unified search: cannot activate section that does not exists: ${e}`)),x.current?.focus()}),[t,f]),C=k(Us);m.useEffect((()=>(C.on("focus",S),()=>C.off("focus",S))),[C,S]);const L=Ri(c,(()=>S({}))),M=g.length>0||void 0!==h.getSearchExtra(),E=m.useCallback((()=>{M||u(!1)}),[M,u]);return R.jsx(Ol,{className:ch,direction:n,expanded:d,"aria-keyshortcuts":L?.text,onClickOutside:E,toggle:R.jsx(hh,{inputRef:x,searchTerm:g,setSearchTerm:e=>p.change({value:e,action:"input"}),onSubmit:()=>{},onClear:M?()=>p.change({value:"",action:"clear"}):void 0,expanded:d,setExpanded:e=>{f((n=>{if(!e)return n.deactivate();if(void 0===n.key){const e=t.some((e=>e.key===h.previousActive))?h.previousActive:t.length>0?t[0].key:void 0;if(e)return n.activate(e)}return n})),u(e)},minWidth:o,panelSize:y}),children:R.jsx(fh,{sections:_,activeSectionKey:h.key,onActivateSection:e=>f((t=>t.switch(e))),dropUp:"up"===n,size:y,minSize:{width:o,height:a},offsetForMaxSize:{x:s,y:l},onResize:e=>{const t={width:Math.max(e.width,o),height:Math.max(e.height,a)};v.width===t.width&&v.height===t.height||b(t)},setMaxSize:e=>{w.current=e,(v.width>e.width||v.height>e.height)&&b({...v})}})})}var uh=class e{key;previousActive;searchExtras;static empty=new e(void 0,void 0,{});constructor(e,t,n){this.key=e,this.previousActive=t,this.searchExtras=n}getSearchExtra(){const{key:e,searchExtras:t}=this;if(void 0!==e&&Object.prototype.hasOwnProperty.call(t,e))return t[e]}activate(t,n){return this.key===t&&this.getSearchExtra()===n?this:new e(t,this.key===t?this.previousActive:this.key,{...this.searchExtras,[t]:n})}deactivate(){return new e(void 0,this.key,this.searchExtras)}switch(t){return this.key===t?this:new e(t,this.key,this.searchExtras)}};function hh(e){const{inputRef:t,searchTerm:n,setSearchTerm:r,onSubmit:i,onClear:o,expanded:a,setExpanded:s,panelSize:l}=e,c=Ht();return R.jsxs("div",{className:un(`${ch}__toggle`),style:{width:l?.width},role:"search",children:[R.jsx("input",{ref:t,role:"searchbox",type:"text",className:`${ch}__search-input`,placeholder:c.textOptional("unified_search.input.placeholder")??c.text("search_defaults.input.placeholder"),name:"reactodia-search",value:n,onClick:()=>s(!0),onFocus:()=>s(!0),onChange:e=>r(e.currentTarget.value),onKeyUp:e=>{switch(e.key){case"Enter":n.length>0&&s(!0),i();break;case"Escape":o?o():s(!1);break;default:s(!0)}}}),o?R.jsx("button",{type:"button",title:c.text("unified_search.input_clear.title"),className:`${ch}__clear-button`,onClick:o}):a?R.jsx("button",{type:"button",title:c.text("unified_search.input_collapse.title"),className:`${ch}__collapse-button`,onClick:()=>s(!1)}):R.jsx("div",{className:`${ch}__search-icon`,onClick:()=>t.current?.focus()})]})}function fh(e){const{sections:t,activeSectionKey:n,onActivateSection:r,dropUp:i,size:o,minSize:a,offsetForMaxSize:s,onResize:l,setMaxSize:c}=e,{canvas:d}=zi(),u=m.useRef(null),h=m.useRef(void 0),f=()=>{if(!u.current)return;const{x:e,y:t,width:n,height:r}=u.current.getBoundingClientRect(),i=e+window.scrollX,o=t+window.scrollY,[a]=function(e){const t=getComputedStyle(e);return[t.getPropertyValue("--reactodia-viewport-dock-align-x"),t.getPropertyValue("--reactodia-viewport-dock-align-y")]}(u.current),s=d.metrics.getViewportPageRect();h.current={bounds:{x:i,y:o,width:n,height:r},centeredByX:"center"===a,centerOffsetX:Math.max(2*i+n-2*s.x-s.width,0)}};!function(e){const{canvas:t}=zi(),n=m.useRef(void 0);m.useLayoutEffect((()=>{n.current=e})),m.useLayoutEffect((()=>{const e=new kr,r=()=>{const t=n.current;t&&e.call(t)};return t.events.on("resize",r),n.current?.(),()=>{e.dispose(),t.events.off("resize",r)}}),[])}((()=>{if(h.current||f(),h.current){const{bounds:e,centeredByX:t,centerOffsetX:n}=h.current,r=d.metrics.getViewportPageRect(),o=i?e.y-r.y-s.y:r.y+r.height-e.y-s.y;c({width:Math.max(t?r.width-n-s.x:r.x+r.width-e.x-s.x,a.width),height:Math.max(o,a.height)})}}));const p=(e,t,n)=>{if(h.current){const{bounds:e,centeredByX:r}=h.current;l({width:e.width+t*(r?2:1),height:e.height+(i?-n:n)})}},g=e=>`reactodia-unified-search-panel-${e.key}`;return R.jsxs("div",{ref:u,className:`${ch}__panel`,style:{width:o.width,height:o.height},children:[R.jsx("div",{className:`${ch}__section-tabs`,role:"tablist",children:t.map((e=>R.jsx("button",{className:un(`${ch}__section-tab`,"reactodia-btn","reactodia-btn-default",e.key===n?"active":void 0),role:"tab","aria-selected":e.key===n,"aria-controls":g(e),"aria-label":e.title,title:e.title,onClick:()=>r(e.key),children:e.label},e.key)))}),t.map((e=>R.jsx(rh.Provider,{value:e.context,children:R.jsx("div",{id:g(e),role:"tabpanel",className:un(`${ch}__section`,e.context.isSectionActive?`${ch}__section--active`:void 0),children:e.component})},e.key))),R.jsx(cs,{dock:i?"n":"s",axis:"y",onBeginDragHandle:f,onDragHandle:p}),R.jsx(cs,{dock:"e",axis:"x",className:`${ch}__right-handle`,onBeginDragHandle:f,onDragHandle:p}),R.jsx(cs,{dock:i?"ne":"se",axis:"all",className:`${ch}__corner-handle`,onBeginDragHandle:f,onDragHandle:p})]})}function ph(e){const t=rc({initialValue:"",submitTimeout:200}),n=cn(),r=Ht();return R.jsx(mh,{...e,searchStore:t,workspace:n,translation:r})}var gh="reactodia-element-selector",vh="reactodia-form",mh=class extends m.Component{listener=new _r;fetchTypesCancellation=new AbortController;filterCancellation=new AbortController;loadingItemCancellation=new AbortController;constructor(e){super(e),this.state={elementTypesState:"none",existingElements:[],existingElementsState:"none"}}componentDidMount(){const{searchStore:e}=this.props;this.listener.listen(e.events,"changeValue",(({source:e})=>{0===e.value.length?this.searchExistingElements(""):this.forceUpdate()})),this.listener.listen(e.events,"executeSearch",(({value:e})=>{this.searchExistingElements(e)})),this.fetchPossibleElementTypes()}componentWillUnmount(){this.listener.stopListening(),this.fetchTypesCancellation.abort(),this.filterCancellation.abort(),this.loadingItemCancellation.abort()}async fetchPossibleElementTypes(){const{source:e,workspace:{editor:{metadataProvider:t}}}=this.props;if(!t)return;this.fetchTypesCancellation.abort(),this.fetchTypesCancellation=new AbortController;const n=this.fetchTypesCancellation.signal,r=await pr(t.canConnect(e,void 0,void 0,{signal:n}),n);if(null===r)return;const i=new Set;for(const{targetTypes:e}of r)for(const t of e)i.add(t);this.setState({elementTypes:Array.from(i)})}async searchExistingElements(e){const{workspace:{model:t}}=this.props;if(this.filterCancellation.abort(),this.setState({existingElements:[],existingElementsState:"none"}),e.length>0){this.setState({existingElementsState:"loading"}),this.filterCancellation=new AbortController;const n=this.filterCancellation.signal,r=gu({text:e});let i;try{if(i=await pr(t.dataProvider.lookup(r),n),null===i)return}catch(e){return console.error("Error looking up existing entities",e),void this.setState({existingElementsState:"error"})}const o=i.map((e=>e.element));this.setState({existingElements:o,existingElementsState:"none"})}}onElementTypeChange=async e=>{this.setState({elementTypesState:"loading"}),this.loadingItemCancellation.abort(),this.loadingItemCancellation=new AbortController;const t=this.loadingItemCancellation.signal,{onChange:n,workspace:{model:r,editor:{metadataProvider:i}},translation:o}=this.props,a=e.target.value;let s;try{if(s=await pr(i.createEntity(a,{translation:o,language:r.language,signal:t}),t),null===s)return}catch(e){return console.error("Error calling MetadataProvider.createEntity()",e),void this.setState({elementTypesState:"error"})}this.setState({elementTypesState:"none"}),n({value:s,isNew:!0,loading:!1})};renderElementTypeSelector(){const{elementValue:e,translation:t}=this.props,{elementTypes:n,elementTypesState:r}=this.state,i=e.value.data.types.length?e.value.data.types[0]:"";return"none"!==r?R.jsx(en,{width:20,height:20,errorOccurred:"error"===r}):R.jsxs("div",{className:`${vh}__control-row`,children:[R.jsx("label",{children:t.text("visual_authoring.select_entity.type.label")}),n?R.jsxs("select",{className:"reactodia-form-control",name:"reactodia-element-type-selector-select",value:i,onChange:e=>{this.onElementTypeChange(e)},children:[R.jsx("option",{value:Cr,disabled:!0,children:t.text("visual_authoring.select_entity.type.placeholder")}),R.jsx(wh,{elementTypes:n})]}):R.jsx("div",{children:R.jsx(en,{width:20,height:20})}),e.error?R.jsx("span",{className:`${vh}__control-error`,children:e.error}):""]})}renderExistingElementsList(){const{searchStore:e,elementValue:t}=this.props,{elementTypes:n,existingElements:r,existingElementsState:i}=this.state;return"none"!==i?R.jsx("div",{className:`${gh}__results-spinner`,children:R.jsx(en,{width:30,height:30,errorOccurred:"error"===i})}):R.jsx(bh,{items:r,requiredElementTypes:n,selected:t.isNew?void 0:t.value.data,onSelect:e=>{this.onSelectExistingItem(e)},highlightText:e.value})}async onSelectExistingItem(e){const{onChange:t,workspace:{model:n}}=this.props;this.loadingItemCancellation.abort(),this.loadingItemCancellation=new AbortController;const r=this.loadingItemCancellation.signal;t({value:{data:e},isNew:!1,loading:!0});const i=await n.dataProvider.elements({elementIds:[e.id]});r.aborted||t({value:{data:i.get(e.id)},isNew:!1,loading:!1})}render(){const{searchStore:e,translation:t}=this.props;return R.jsxs("div",{className:un(`${vh}__row`,gh,e.value.length>0?`${gh}--search-existing`:void 0),children:[R.jsx(nc,{store:e,className:`${gh}__search`,inputProps:{className:`${gh}__search-input`,name:"reactodia-element-type-selector-search",placeholder:t.textOptional("visual_authoring.select_entity.input.placeholder"),autoFocus:!0},children:R.jsx("span",{className:`${gh}__search-icon`})}),e.value.length>0?R.jsx("div",{className:`${gh}__existing-elements-list`,role:"listbox","aria-label":t.text("visual_authoring.select_entity.results.aria_label"),tabIndex:-1,children:this.renderExistingElementsList()}):R.jsxs("div",{children:[R.jsx("div",{className:`${gh}__separator`,children:R.jsx("i",{className:`${gh}__separator-text`,children:t.text("visual_authoring.select_entity.separator.label")})}),this.renderElementTypeSelector()]})]})}};function bh(e){const{items:t,requiredElementTypes:n,selected:r,onSelect:i,highlightText:o}=e,{model:a,editor:s}=cn(),l=r?.id,c=m.useMemo((()=>new Set(void 0===l?void 0:[l])),[l]),d=Tt($t(zt(a.events,"changeCells")),(()=>a.cellsVersion)),u=m.useMemo((()=>{const e=Qa(a);return t=>e.has(t.id)}),[d]),h=Lt(s.events,"changeTemporaryState",(()=>s.temporaryState));return R.jsx(ac,{items:t,selection:c,onSelectionChanged:e=>{if(1===e.size){const[n]=e,r=t.find((e=>e.id===n));r&&i(r)}},isItemDisabled:m.useCallback((e=>{const t=n&&n.some((t=>e.types.includes(t)));return u(e)&&!h.elements.has(e.id)||!t}),[u,h,n]),highlightText:o,useDragAndDrop:!1,multiSelection:!1,footer:0===t.length?R.jsx(cc,{hasQuery:!0}):void 0})}function wh(e){const{elementTypes:t}=e,{model:n}=cn(),r=Ht(),i=Lt(n.events,"changeLanguage",(()=>n.language));return Dt(rn,t,n),R.jsx(R.Fragment,{children:[...t].sort(yh(n,r,i)).map((e=>{const t=n.getElementType(e),o=r.formatLabel(t?.data?.label,e,i);return R.jsx("option",{value:e,children:r.text("visual_authoring.select_entity.entity_type.label",{type:o,typeIri:e})},e)}))})}function yh(e,t,n){return(r,i)=>{const o=e.getElementType(r),a=e.getElementType(i),s=t.formatLabel(o?.data?.label,r,n),l=t.formatLabel(a?.data?.label,i,n);return s.localeCompare(l)}}var _h="reactodia-form",kh=class extends m.Component{static contextType=ln;link;validationCancellation=new AbortController;constructor(e){super(e);const{source:t,target:n,initialTargetIsNew:r,originalLink:i}=this.props;this.link=i,this.state={elementValue:{value:{data:n.data},isNew:r,loading:!1,validated:!0,allowChange:!0},linkValue:{link:{base:i.data,source:t.data,target:n.data,direction:"out"},validated:!0,allowChange:!0}}}componentDidMount(){this.validate()}componentWillUnmount(){this.validationCancellation.abort()}validate(){const{originalLink:e,translation:t}=this.props,{elementValue:n,linkValue:r}=this.state;this.setState({isValidating:!0}),this.validationCancellation.abort(),this.validationCancellation=new AbortController;const i=this.validationCancellation.signal,o=function(e,t){const n=e.types.indexOf("urn:reactodia:newElement")<0?void 0:t.text("visual_authoring.select_entity.validation.error_required");return Promise.resolve({error:n,allowChange:!0})}(n.value.data,t),a=async function(e,t,n,r,i){const{model:o,editor:a}=n;return"urn:reactodia:newLink"===e.linkTypeId?{error:r.text("visual_authoring.select_relation.validation.error_required"),allowChange:!0}:Zt(e,t)?{error:void 0,allowChange:!0}:function(e,t){for(const n of e.links)for(const e of Na(n))if(Zt(e,t))return!0;return!1}(o,e)?{error:r.text("visual_authoring.select_relation.validation.error_duplicate"),allowChange:a.temporaryState.links.has(e)}:(await o.dataProvider.links({primary:[e.sourceId],secondary:[e.targetId],linkTypeIds:[e.linkTypeId],signal:i})).some((t=>Zt(t,e)))?{error:r.text("visual_authoring.select_relation.validation.error_duplicate"),allowChange:!1}:{error:void 0,allowChange:!0}}({...(s=r.link).base,sourceId:"out"===s.direction?s.source.id:s.target.id,targetId:"out"===s.direction?s.target.id:s.source.id},e.data,this.context,t,i);var s;Promise.all([o,a]).then((([e,t])=>{i.aborted||(this.setState({isValidating:!1}),this.setElementOrLink({elementValue:{...n,...e,validated:!0},linkValue:{...r,...t,validated:!0}}))}))}render(){const{source:e,originalLink:t,translation:n}=this.props,{elementValue:r,linkValue:i,isValidating:o}=this.state,a=!r.error&&!i.error;return R.jsxs("div",{className:_h,children:[R.jsxs("div",{className:`${_h}__body`,children:[R.jsx(ph,{source:e.data,elementValue:r,onChange:n=>{this.setElementOrLink({elementValue:{value:n.value,isNew:n.isNew,loading:n.loading,error:void 0,validated:!1,allowChange:!1},linkValue:{link:{base:t.data,source:e.data,target:n.value.data,direction:"out"},validated:!1,allowChange:!1}})}}),r.loading?R.jsxs("div",{style:{display:"flex"},children:[R.jsx(en,{width:20,height:20})," ",n.text("visual_authoring.find_or_create.loading.label")]}):R.jsx(pd,{link:i.link,error:i.error,onChange:e=>this.setElementOrLink({linkValue:{link:e,error:void 0,validated:!1,allowChange:!1}}),disabled:void 0!==r.error}),o?R.jsx("div",{className:`${_h}__progress`,children:R.jsx(ec,{state:"loading",title:n.text("visual_authoring.find_or_create.validation_progress.title"),height:10})}):null]}),R.jsxs("div",{className:`${_h}__controls`,children:[R.jsx("button",{className:`reactodia-btn reactodia-btn-primary ${_h}__apply-button`,onClick:this.onApply,disabled:r.loading||!a||o,title:n.textOptional("visual_authoring.find_or_create.dialog.apply.title")??n.text("visual_authoring.dialog.apply.title"),children:n.textOptional("visual_authoring.find_or_create.dialog.apply.label")??n.text("visual_authoring.dialog.apply.label")}),R.jsx("button",{className:"reactodia-btn reactodia-btn-secondary",onClick:this.props.onCancel,title:n.text("visual_authoring.dialog.cancel.title"),children:n.text("visual_authoring.dialog.cancel.label")})]})]})}setElementOrLink({elementValue:e,linkValue:t}){const{model:n,editor:r}=this.context;this.setState((n=>({elementValue:e||n.elementValue,linkValue:t||n.linkValue})),(()=>{const{source:e,target:t}=this.props,{elementValue:i,linkValue:o}=this.state;if((i&&!i.validated||o&&!o.validated)&&this.validate(),i&&i.validated&&i.allowChange){let e=r.temporaryState;e=la.removeEntity(e,t.data),e=la.removeRelation(e,this.link.data),r.setTemporaryState(e);const o=n.history.startBatch();o.history.execute(Va(n,t.iri,i.value.data)),o.discard(),e=la.addEntity(e,t.data),e=la.addRelation(e,this.link.data),r.setTemporaryState(e)}if(o&&o.validated&&o.allowChange){r.removeTemporaryCells([this.link]);const n=md(o.link,e,t);this.link=r.createRelation(n,{temporary:!0})}}))}onApply=()=>{const{model:e,editor:t}=this.context,{source:n,target:r,onAfterApply:i}=this.props,{elementValue:o,linkValue:a}=this.state,s=this.link;o.isNew||t.setTemporaryState(la.removeEntity(t.temporaryState,o.value.data)),t.removeTemporaryCells([r,s]);const l=e.history.startBatch(Rt.text(o.isNew?"visual_authoring.find_or_create.create_command":"visual_authoring.find_or_create.connect_command"));o.isNew?(e.addElement(r),o.value.elementState&&r.setElementState(o.value.elementState),t.setAuthoringState(sa.addEntity(t.authoringState,r.data))):e.requestLinks({addedElements:[o.value.data.id]});const c=md(a.link,n,r);t.createRelation(c),l.store(),i()}},xh="reactodia-authoring-state";function Sh(e){const{target:t,inlineActions:n}=e,{canvas:r}=zi(),{model:i,editor:o}=cn(),a=Ht(),s=Lt(i.events,"changeSelection",(()=>1===i.selection.length&&i.selection[0]===t)),l=Lt(t.events,"changeData",(()=>t.data)),c=[l],d=Tt(zt(o.events,"changeAuthoringState",c),(()=>o.authoringState.elements.get(l.id))),u=Tt(zt(o.events,"changeValidationState",c),(()=>o.validationState.elements.get(l.id))),h=Tt(zt(o.events,"changeTemporaryState",c),(()=>o.temporaryState.elements.has(l.id))),[f,p]=m.useState((()=>r.renderingState.getElementShape(t)));m.useEffect((()=>{const e=new _r;return e.listen(r.renderingState.events,"changeElementSize",(e=>{e.source===t&&p(r.renderingState.getElementShape(t))})),()=>e.stopListening()}),[t]);let g=null;if(h)g=R.jsxs(R.Fragment,{children:[R.jsx(Mh,{shape:f,className:`${xh}__outline-overlay`}),R.jsx(Mh,{shape:f,fill:"url(#stripe-pattern)"})]});else if(d&&"entityDelete"===d.type){const e=f.bounds.width/2,n=f.bounds.height/2,r="rect"===f.type?e:e*Math.SQRT1_2,i="rect"===f.type?n:n*Math.SQRT1_2;g=R.jsxs("g",{children:[R.jsx(Mh,{shape:f,className:`${xh}__outline-overlay`}),R.jsx("line",{className:`${xh}__outline-cross-line`,x1:e-r,y1:n-i,x2:e+r,y2:n+i}),R.jsx("line",{className:`${xh}__outline-cross-line`,x1:e-r,y1:n+i,x2:e+r,y2:n-i})]},t.id)}let v=null;if(u){const e=es(u.items),t=u.items.map((e=>{if(e.propertyType){const t=i.getPropertyType(e.propertyType);return`${a.formatLabel(t?.data?.label,e.propertyType,i.language)}: ${e.message}`}return e.message})).join("\n");v=R.jsxs("div",{className:un(`${xh}__item-validation`,Ch(e)),title:t,children:[u.loading?R.jsx(en,{width:15,height:17}):R.jsx("div",{className:`${xh}__item-validation-icon`}),!u.loading&&u.items.length>0?u.items.length:void 0]})}const b=R.jsx("div",{className:`${xh}__state-indicator`,children:R.jsxs("div",{className:`${xh}__state-indicator-body`,children:[d?R.jsx("span",{className:`${xh}__state-label`,children:"entityAdd"===d.type?a.text("authoring_state.entity_add.label"):"entityChange"===d.type?a.text("authoring_state.entity_change.label"):"entityDelete"===d.type?a.text("authoring_state.entity_delete.label"):null}):null,h?null:R.jsx(Lh,{target:t,state:d,allActions:Boolean(n)}),v]})},t.id);return R.jsx(Io,{target:t,children:R.jsxs("div",{className:un(`${xh}__decorator`,d||u?void 0:`${xh}__decorator--optional`,s?`${xh}__decorator--selected`:void 0),"data-reactodia-no-export":"true",children:[g?R.jsxs("svg",{className:`${xh}__element-outlines`,width:f.bounds.width,height:f.bounds.height,children:[R.jsx("defs",{children:R.jsx("pattern",{id:"stripe-pattern",patternUnits:"userSpaceOnUse",width:13,height:13,patternTransform:"rotate(45)",children:R.jsx("line",{className:`${xh}__outline-stripe-line`,x1:0,y:0,x2:0,y2:13})})}),g]}):null,b]})})}function Ch(e){switch(e){case"info":return`${xh}--severity-info`;case"warning":return`${xh}--severity-warning`;case"error":return`${xh}--severity-error`;default:return}}function Lh(e){const{target:t,state:n,allActions:r}=e,{editor:i}=cn(),o=Ht(),a=Gs(t.data,r);return R.jsxs("div",{className:`${xh}__actions`,children:[!r||n&&"entityAdd"!==n.type&&"entityChange"!==n.type?null:R.jsx("button",{className:`${xh}__action ${xh}__action-edit`,disabled:!a.canEdit,onClick:()=>a.onEdit(t),title:o.text(a.canEdit?"authoring_state.entity_action_edit.title":"authoring_state.entity_action_edit.title_disabled"),children:o.text("authoring_state.entity_action_edit.label")}),r&&!n||"entityAdd"===n?.type?R.jsx("button",{className:`${xh}__action ${xh}__action-delete`,disabled:!a.canDelete,onClick:()=>a.onDelete(),title:o.text(a.canEdit?"authoring_state.entity_action_delete.title":"authoring_state.entity_action_delete.title_disabled"),children:o.text("authoring_state.entity_action_delete.label")}):null,n&&"entityAdd"!==n.type?R.jsx("button",{className:`${xh}__action ${xh}__action-discard`,onClick:()=>i.discardChange(n),title:o.text("authoring_state.entity_action_discard.title"),children:o.text("authoring_state.entity_action_discard.label")}):null]})}function Mh(e){const{shape:t,...n}=e;switch(t.type){case"rect":return R.jsx("rect",{x:0,y:0,width:t.bounds.width,height:t.bounds.height,...n});case"ellipse":{const e=t.bounds.width/2,r=t.bounds.height/2;return R.jsx("ellipse",{cx:e,cy:r,rx:e,ry:r,...n})}default:return null}}function Eh(e){const{canvas:t}=zi(),n=cn(),r=Ht(),{editor:i}=n;return Lt(i.events,"changeMode",(()=>i.inAuthoringMode))?R.jsx(Th,{...e,workspace:n,canvas:t,translation:r}):null}var zh="reactodia-authoring-state",$h=5,Th=class extends m.Component{listener=new _r;componentDidMount(){this.listenEvents()}componentWillUnmount(){const{canvas:e}=this.props;this.listener.stopListening(),e.renderingState.cancelOnLayerUpdate(ko.Overlay,this.performUpdate)}listenEvents(){const{workspace:{model:e,editor:t},canvas:n}=this.props;this.listener.listen(e.events,"elementEvent",(({data:e})=>{e.changePosition&&this.scheduleUpdate()})),this.listener.listen(e.events,"linkEvent",(({data:e})=>{e.changeVertices&&this.scheduleUpdate()})),this.listener.listen(e.events,"changeCells",this.scheduleUpdate),this.listener.listen(t.events,"changeAuthoringState",this.scheduleUpdate),this.listener.listen(t.events,"changeTemporaryState",this.scheduleUpdate),this.listener.listen(t.events,"changeValidationState",this.scheduleUpdate),this.listener.listen(n.events,"changeTransform",this.performUpdate),this.listener.listen(n.renderingState.events,"changeElementSize",this.scheduleUpdate),this.listener.listen(n.renderingState.events,"changeLinkLabelBounds",this.scheduleUpdate)}scheduleUpdate=()=>{const{canvas:e}=this.props;e.renderingState.scheduleOnLayerUpdate(ko.Overlay,this.performUpdate)};performUpdate=()=>{this.forceUpdate()};calculateLinkPath(e){return this.calculateSpline(e).toPath()}calculateSpline(e){const{workspace:{model:t},canvas:n}=this.props,r=t.getElement(e.sourceId),i=t.getElement(e.targetId),o=n.renderingState.getLinkTemplate(e),a=n.renderingState.getRouting(e.id),s=a?a.vertices:e.vertices||[],l=n.renderingState.getElementShape(r),c=n.renderingState.getElementShape(i),d=Fi(l,c,s);return Zi.create({type:o?.spline??Zi.defaultType,points:d,source:Ni.center(l.bounds),target:Ni.center(c.bounds)})}renderLinkStateLabels(){const{workspace:{model:e,editor:t}}=this.props,n=[];for(const r of e.links){if(!(r instanceof Ea))continue;const e=t.authoringState.links.get(r.data),i=this.renderLinkStatus(e),o=this.renderLinkValidations(r.data);if(i||o){const e=this.getLinkStateLabelPosition(r);e&&n.push(R.jsx("div",{className:`${zh}__state-indicator`,style:{left:e.x,top:e.y},children:R.jsxs("div",{className:`${zh}__state-indicator-body`,children:[i,o]})},r.id))}}return n}renderLinkStatus(e){const{workspace:{editor:t},translation:n}=this.props;return e?R.jsxs(R.Fragment,{children:[R.jsx("span",{className:`${zh}__state-label`,children:"relationAdd"===e.type?n.text("authoring_state.relation_add.label"):"relationChange"===e.type?n.text("authoring_state.relation_change.label"):"relationDelete"===e.type?n.text("authoring_state.relation_delete.label"):null}),R.jsx("span",{className:`${zh}__action ${zh}__action-discard`,onClick:()=>t.discardChange(e),title:n.text("authoring_state.relation_action_discard.title"),children:n.text("authoring_state.relation_action_discard.label")})]}):null}renderLinkStateHighlighting(){const{workspace:{model:e,editor:t}}=this.props,n=[];for(const r of e.links)if(r instanceof Ea)if(t.temporaryState.links.has(r.data)){const e=this.calculateLinkPath(r);n.push(R.jsx("path",{className:`${zh}__link-temporary`,d:e},r.id))}else{const e=t.authoringState.links.get(r.data),i=sa.isDeletedRelation(t.authoringState,r.data),o=sa.hasEntityChangedIri(t.authoringState,r.data.sourceId)||sa.hasEntityChangedIri(t.authoringState,r.data.targetId);if(e||i||o){const t=this.calculateLinkPath(r);n.push(R.jsx("path",{className:i?`${zh}__link-deleted`:"relationAdd"===e?.type?`${zh}__link-added`:"relationChange"===e?.type?`${zh}__link-changed`:o?`${zh}__link-uncertain`:`${zh}__link-changed`,d:t},r.id))}}return n}getLinkStateLabelPosition(e){const{canvas:t,linkLabelMargin:n=$h}=this.props,r=t.renderingState.getLinkLabelBounds(e);if(r){const{x:e,y:t}=r;return{x:e,y:t-n/2}}{const t=this.calculateSpline(e),n=Ui(t.geometry.points);return qi(t.geometry.points,n/2)}}renderLinkValidations(e){const{workspace:{model:t,editor:n},translation:r}=this.props,{validationState:i}=n,o=i.links.get(e);if(!o)return null;const a=o.items.map((e=>{if(e.propertyType){const n=t.getPropertyType(e.propertyType);return`${r.formatLabel(n?.data?.label,e.propertyType,t.language)}: ${e.message}`}return e.message})).join("\n"),s=es(o.items);return R.jsxs("div",{className:un(`${zh}__item-validation`,Nh(s)),title:a,children:[o.loading?R.jsx(en,{width:15,height:17}):R.jsx("div",{className:`${zh}__item-validation-icon`}),!o.loading&&o.items.length>0?o.items.length:void 0]})}render(){const{canvas:e}=this.props,t=e.metrics.transform,{scale:n,originX:r,originY:i}=t,o={position:"absolute",left:0,top:0,transform:`scale(${n},${n})translate(${r}px,${i}px)`};return R.jsxs(R.Fragment,{children:[R.jsx(aa,{layer:"overLinkGeometry",children:R.jsx("div",{className:zh,children:R.jsx(mo,{paperTransform:t,style:{overflow:"visible",pointerEvents:"none"},children:this.renderLinkStateHighlighting()})})}),R.jsx(aa,{layer:"overElements",children:R.jsx("div",{className:zh,children:R.jsx("div",{className:`${zh}__validation-layer`,style:o,children:this.renderLinkStateLabels()})})})]})}};function Nh(e){switch(e){case"info":return`${zh}--severity-info`;case"warning":return`${zh}--severity-warning`;case"error":return`${zh}--severity-error`;default:return}}function Ah(e){const{operation:t,onFinishEditing:n}=e,r=cn(),i=Ht(),{model:o,editor:a}=r,{metadataProvider:s}=a;return R.jsx(kl,{operation:t,createLink:m.useCallback(((e,t,n)=>{if(n&&!(n instanceof Ea))throw new Error("DragEditLayer: cannot clone a non-relation link");const r=new Ea({sourceId:e.id,targetId:t.id,data:{sourceId:e instanceof Sa?e.iri:"",targetId:t instanceof Sa?t.iri:"",linkTypeId:n?.data.linkTypeId??"urn:reactodia:newLink",properties:n?.data.properties??{}},vertices:n?.vertices,linkState:n?.linkState}),i=a.createRelation(r,{temporary:!0});return n||o.setLinkVisibility(Lr,"withoutLabel"),i}),[t]),canConnect:m.useCallback((async(e,t,n,l)=>{const c=n instanceof Sa?a.authoringState.elements.get(n.iri):void 0;if(!(s&&t instanceof Ea&&e instanceof Sa&&(!n||n instanceof Sa))||c&&"entityDelete"===c.type)return new Ih([],r,i);const d="urn:reactodia:newLink"===t.data.linkTypeId?void 0:t.data.linkTypeId;return n&&d&&o.findLink(d,e.id,n.id)?new Ih([],r,i):new Ih(await s.canConnect(e.data,n?.data,d,{signal:l}),r,i)}),[s]),cleanupLink:m.useCallback((e=>{e instanceof Ea&&a.setTemporaryState(la.removeRelation(a.temporaryState,e.data))}),[]),onFinish:n})}var Ih=class{connections;workspace;translation;constructor(e,t,n){this.connections=e,this.workspace=t,this.translation=n}get allowed(){return this.connections.length>0}async connect(e,t,n,r,i){if(!(e instanceof Sa&&(!t||t instanceof Sa)))return;let o=t;o||(o=await this.createNewElement(i),o.setPosition(n),r.renderingState.syncUpdate(),function(e,t,n){const{width:r,height:i}=n.getElementSize(e)??{width:0,height:0};e.setPosition({x:t.x-r/2,y:t.y-i/2})}(o,n,r.renderingState));const a=await this.createNewLink(e,o,i);this.afterCommit(t,o,a)}async moveSource(e,t,n,r){const{editor:i}=this.workspace;if(!(e instanceof Ea&&t instanceof Sa))return;const o=i.moveRelationSource({link:e,newSource:t});this.afterCommit(t,void 0,o)}async moveTarget(e,t,n,r){const{editor:i}=this.workspace;if(!(e instanceof Ea&&t instanceof Sa))return;const o=i.moveRelationTarget({link:e,newTarget:t});this.afterCommit(t,void 0,o)}async createNewElement(e){const{model:t,editor:n}=this.workspace;if(!n.metadataProvider)throw new Error("Cannot create new entity without metadata provider");const r=new Set;for(const{targetTypes:e}of this.connections)for(const t of e)r.add(t);const i=1===r.size?Array.from(r)[0]:Cr,o=await n.metadataProvider.createEntity(i,{translation:this.translation,language:t.language,signal:e}),a=n.createEntity(o.data,{temporary:!0});return o.elementState&&a.setElementState(o.elementState),a}async createNewLink(e,t,n){const{model:r,editor:i}=this.workspace;if(!i.metadataProvider)throw new Error("Cannot create new relation without metadata provider");const o=new Set,a=new Set;for(const{targetTypes:e,inLinks:n,outLinks:r}of this.connections)if(t.data.types.some((t=>e.has(t)))){for(const e of n)o.add(e);for(const e of r)a.add(e)}const s=1===o.size?[...o][0]:void 0,l=1===a.size?[...a][0]:void 0;let c,d;0===o.size&&l?(c=l,d="out"):s&&0===a.size?(c=s,d="in"):s&&l&&s===l?(c=l,d=r.findLink(c,e.id,t.id)?"in":"out"):(c=Lr,d="out");let[u,h]=[e,t];"in"===d&&([u,h]=[h,u]);const f=await i.metadataProvider.createRelation(u.data,h.data,c,{translation:this.translation,language:r.language,signal:n}),p=new Ea({sourceId:u.id,targetId:h.id,data:f.data,linkState:f.linkState}),g=r.findLink(p.typeId,p.sourceId,p.targetId);return g instanceof Ea?g:i.createRelation(p,{temporary:!0})}afterCommit(e,t,n){const{model:r,getCommandBus:i}=this.workspace;e?(r.setSelection([n]),i(qs).trigger("editRelation",{target:n})):t&&n&&(r.setSelection([t]),i(qs).trigger("findOrCreateEntity",{link:n,target:t}))}};function Ph(e){const{propertyEditor:t,inlineEntityActions:n=!0}=e,{model:r,editor:i,overlay:o,getCommandBus:a}=cn(),s=Ht();return m.useLayoutEffect((()=>{const e=new _r;return e.listen(o.events,"changeOpenedDialog",(({previous:e})=>{e&&e.target&&i.removeTemporaryCells([e.target])})),()=>{e.stopListening()}}),[]),m.useLayoutEffect((()=>{const e=a(qs),n=new _r;return n.listen(e,"editEntity",(({target:e})=>{let n;n=e instanceof Sa?e:new Sa({data:e});const r=t({type:"entity",target:n,onClose:()=>o.hideDialog()});o.showDialog({target:e instanceof Sa?e:void 0,dialogType:"reactodia:editEntity",style:{caption:s.text("visual_authoring.edit_entity.dialog.caption"),defaultSize:{width:340,height:400}},content:r,holdSelection:!0})})),n.listen(e,"findOrCreateEntity",(t=>{const{link:n,target:a}=t,l=R.jsx(kh,{source:r.getElement(n.sourceId),target:a,initialTargetIsNew:i.temporaryState.elements.has(a.iri),originalLink:n,onAfterApply:()=>{o.hideDialog(),sa.isAddedEntity(i.authoringState,a.iri)&&e.trigger("editEntity",{target:a})},onCancel:()=>o.hideDialog(),translation:s});o.showDialog({target:a,dialogType:"reactodia:findOrCreateEntity",style:{caption:s.text("visual_authoring.find_or_create.dialog.caption"),minSize:{width:250,height:320}},content:l,onClose:()=>i.removeAllTemporaryCells()})})),n.listen(e,"editRelation",(({target:n})=>{const r=i.temporaryState.links.has(n.data)?s.text("visual_authoring.edit_relation.dialog.caption_new"):s.text("visual_authoring.edit_relation.dialog.caption"),a=t({type:"relation",target:n,onChangeTarget:t=>{o.hideDialog(),e.trigger("editRelation",{target:t})},onClose:()=>o.hideDialog()});o.showDialog({target:n,dialogType:"reactodia:editRelation",style:{defaultSize:{width:340,height:300},caption:r},content:a,onClose:()=>i.removeTemporaryCells([n])})})),()=>n.stopListening()}),[]),R.jsxs(R.Fragment,{children:[R.jsx(Eh,{}),R.jsx(Vh,{inlineActions:n}),R.jsx(Hh,{})]})}var Vh=m.memo((function(e){const{inlineActions:t}=e,{canvas:n}=zi(),{model:r,editor:i}=cn(),o=Lt(i.events,"changeMode",(()=>i.inAuthoringMode)),a=Tt(Lo(zt(r.events,"changeCells"),n.renderingState),(()=>r.cellsVersion)),s=m.useMemo((()=>new WeakMap),[t,a]),l=[];if(o)for(const e of r.elements)if(e instanceof Sa){let n=s.get(e);n||(n=R.jsx(Sh,{target:e,inlineActions:t},e.id),s.set(e,n)),l.push(n)}return l}));function Hh(){const[e,t]=m.useState(null),{getCommandBus:n}=cn();return m.useLayoutEffect((()=>{const e=n(qs),r=new _r;return r.listen(e,"startDragEdit",(({operation:e})=>{t(R.jsx(Ah,{operation:e,onFinishEditing:()=>t(null)}))})),()=>r.stopListening()}),[]),e}var Rh="reactodia-zoom-control";function Oh(e){const{dock:t,dockOffsetX:n,dockOffsetY:r,showPointerModeToggle:i=!0}=e,{canvas:o}=zi(),a=Ht(),s=Lt(o.events,"changePointerMode",(()=>o.pointerMode));return R.jsx(Ss,{dock:t,dockOffsetX:n,dockOffsetY:r,children:R.jsxs("div",{className:Rh,role:"toolbar",children:[R.jsx("button",{type:"button",className:un(`${Rh}__zoom-in-button`,"reactodia-btn reactodia-btn-default"),title:a.text("zoom_control.zoom_in.title"),onClick:()=>o.zoomIn()}),R.jsx("button",{type:"button",className:un(`${Rh}__zoom-out-button`,"reactodia-btn reactodia-btn-default"),title:a.text("zoom_control.zoom_out.title"),onClick:()=>o.zoomOut()}),R.jsx("button",{type:"button",className:un(`${Rh}__zoom-fit-button`,"reactodia-btn reactodia-btn-default"),title:a.text("zoom_control.zoom_to_fit.title"),onClick:()=>o.zoomToFit({animate:!0})}),i?R.jsx("button",{type:"button",className:un(`${Rh}__selection-mode-button`,"reactodia-btn reactodia-btn-default","selection"===s?"active":void 0),title:a.text("zoom_control.pointer_mode.title"),onClick:()=>o.setPointerMode("panning"===s?"selection":"panning")}):null]})})}function Dh(e){const{colorScheme:t="auto"}=e,n=m.useContext(wr),r=m.useContext(br),i=function(e){const t=document.documentElement,[n,r]=m.useState((()=>t.getAttribute("data-theme")??(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"")));return m.useLayoutEffect((()=>{if(e){const e=window.matchMedia("(prefers-color-scheme: dark)"),n=()=>{r(t.getAttribute("data-theme")??(e.matches?"dark":""))};e.addEventListener("change",n);const i=new MutationObserver(n);return t&&i.observe(t,{attributes:!0,attributeFilter:["data-theme"]}),()=>{e.removeEventListener("change",n),i.disconnect()}}}),[t,e]),n}(!r&&"auto"===t);let o=t;"auto"===o&&(o=r??("dark"===i?"dark":"light"));const[a,s]=m.useState();void 0!==a&&(o=a);const l=m.useMemo((()=>n.defined?n:{defined:!0,actInColorScheme:(e,t)=>{hn.flushSync((()=>s(e))),t(),hn.flushSync((()=>s(void 0)))}}),[n,s]);return R.jsx(wr.Provider,{value:l,children:R.jsx(br.Provider,{value:o,children:R.jsx("div",{className:un("reactodia-workspace",e.className,"dark"===o?"reactodia-workspace-dark":"reactodia-workspace-light"),style:e.style,"data-theme":o,children:e.children})})})}function Bh(e){const{className:t,style:n,colorScheme:r,children:i,canvas:o,canvasWidgets:a,annotations:s,connectionsMenu:l,dropOnCanvas:c,halo:d,haloLink:u,selection:h,navigator:f,visualAuthoring:p,zoomControl:g,menu:v,search:b,actions:w,mainToolbar:y,actionsToolbar:_,languages:k=[]}=e,x=Ht(),S=null===v?null:v??R.jsxs(R.Fragment,{children:[R.jsx(Xu,{}),R.jsx(Qu,{kind:"exportRaster"}),R.jsx(Qu,{kind:"exportSvg"}),R.jsx(Qu,{kind:"print"})]}),C=null===w?null:w??R.jsxs(R.Fragment,{children:[R.jsx(Yu,{}),R.jsx(Ju,{}),R.jsx(th,{}),R.jsx(nh,{languages:k})]}),L=m.useMemo((()=>[{key:"elementTypes",label:x.text("default_workspace.search_section_entity_types.label"),title:x.text("default_workspace.search_section_entity_types.title"),component:R.jsx(oh,{})},{key:"entities",label:x.text("default_workspace.search_section_entities.label"),title:x.text("default_workspace.search_section_entities.title"),component:R.jsx(ah,{})},{key:"linkTypes",label:x.text("default_workspace.search_section_link_types.label"),title:x.text("default_workspace.search_section_link_types.title"),component:R.jsx(lh,{})}]),[]),M=y?.dock??"nw",E="s"===M||"sw"===M||"se"===M;return R.jsx(Dh,{className:t,style:n,colorScheme:r,children:R.jsxs(Yc,{...o,children:[p?R.jsx(Ph,{...p}):null,null===s?null:R.jsx(El,{...s}),null===l?null:R.jsx(sd,{...l}),null===c?null:R.jsx(ud,{...c}),null===d?null:R.jsx(Rd,{...d}),null===u?null:R.jsx(ru,{...u}),null===h?null:R.jsx(Ru,{...h}),null===g?null:R.jsx(Oh,{dock:"w",...g}),null===f?null:R.jsx(Cu,{dock:"se",...f}),R.jsx(Wu,{...y,dock:M,menu:S,children:null===b?null:R.jsx(dh,{...b,direction:b?.direction??(E?"up":"down"),sections:b?.sections??L})}),null===C?null:R.jsx(Wu,{..._,dock:_?.dock??"sw",menu:null,children:C}),a,i]})})}m.createContext(null);var jh="en",Fh=()=>{};function Uh(e){const{workspace:t,onMount:n,children:r}=e;return m.useEffect((()=>t.mount()),[t]),m.useEffect((()=>{if(n)return n({getContext:()=>t}),()=>n(null)}),[n]),R.jsx(Vt,{translation:t.translation,children:R.jsx(ln.Provider,{value:t,children:r})})}var qh=class{refCount=0;cancellation=new AbortController;extensionCommands=new WeakMap;resolveTypeStyle;cachedTypeStyles;cachedGroupStyles;annotationStyles=new Map([["default",{color:"#bec3c9"}],["primary",{color:"#337ab7"}],["success",{color:"#5cb85c"}],["info",{color:"#54c7ec"}],["warning",{color:"#ffba00"}],["danger",{color:"#c9302c"}]]);layoutTypeProvider;model;view;editor;overlay;translation;triggerWorkspaceEvent;constructor(e){const{translation:t=new Jo({bundles:[Yo]}),history:n=new no,dialogSettingsProvider:r=new Ns,metadataProvider:i,validationProvider:o,renameLinkProvider:a,typeStyleResolver:s,defaultLanguage:l=jh,defaultLayout:c,onWorkspaceEvent:d=()=>{}}=e;this.translation=t,this.resolveTypeStyle=s??Fh,this.cachedTypeStyles=new WeakMap,this.cachedGroupStyles=new WeakMap,this.model=new Za({history:n,translation:this.translation}),this.model.setLanguage(l),this.view=new da({defaultElementResolver:e=>e instanceof ha?Zs:rl,defaultLinkResolver:e=>e instanceof fa?el:vl,defaultLayout:c,renameLinkProvider:null===a?void 0:a??new Gh}),this.editor=new ts({model:this.model,translation:this.translation,getDisposeSignal:()=>this.disposeSignal,metadataProvider:i,validationProvider:o}),this.overlay=new Cs({model:this.model,view:this.view,translation:this.translation,dialogSettingsProvider:r}),this.triggerWorkspaceEvent=d,this.layoutTypeProvider={getElementTypes:e=>e instanceof Sa?e.data.types:[]};const u=new _r;u.listen(this.model.events,"loadingSuccess",(()=>{for(const e of this.view.findAllCanvases())e.renderingState.syncUpdate(),e.zoomToFit()})),d&&(u.listen(this.model.events,"changeSelection",(()=>d(sn.editorChangeSelection))),u.listen(this.overlay.events,"changeOpenedDialog",(()=>d(sn.editorToggleDialog))))}mount(){this.refCount++;let e=!0;return()=>{e&&(e=!1,this.refCount--,0===this.refCount&&(this.view.dispose(),this.cancellation.abort(),this.cancellation=new AbortController))}}get disposeSignal(){return this.cancellation.signal}getCommandBus=e=>{let t=this.extensionCommands.get(e);return t||(t=new yr,this.extensionCommands.set(e,t)),t};getElementStyle=e=>e instanceof Sa?this.getElementTypeStyle(e.data.types):e instanceof Ca?this.getGroupTypeStyle(e):this.tryGetColorVariantStyle(e)??this.getElementTypeStyle([]);getElementTypeStyle=e=>{let t=this.cachedTypeStyles.get(e);if(!t){const n=this.resolveTypeStyle(e);let r;r=n&&n.color?sr(n.color).toString():sr(function(e){const t=Wh(e,195935983);return(void 0===t?0:t)/2147483647*360}(e),40,75).toString(),t={...n,color:r},this.cachedTypeStyles.set(e,t)}return t};getGroupTypeStyle(e){const{items:t}=e;let n=this.cachedGroupStyles.get(t);if(!n){const e=new q(Wh,St);for(const n of t)e.set(n.data.types,(e.get(n.data.types)??0)+1);let r=0,i=[];for(const[t,n]of e)n>r&&(r=n,i=t);n=this.getElementTypeStyle(i),this.cachedGroupStyles.set(t,n)}return n}tryGetColorVariantStyle(e){const{elementState:t}=e,n=t.get(vr.ColorVariant);if(n||e instanceof ha)return this.annotationStyles.get(n??"default")}performLayout=async e=>{const{canvas:t,layoutFunction:n,selectedElements:r,fixedElements:i,animate:o,zoomToFit:a=!0}=e,{model:s,view:l,overlay:c}=this,d=this.translation,u=t??l.findAnyCanvas();if(!u)throw new Error("Failed to find any canvas to perform layout");u.renderingState.syncUpdate();const h=c.startTask({title:d.text("workspace.perform_layout.task"),delay:200});let f;try{f=await async function(e){const{layoutFunction:t,model:n,sizeProvider:r,typeProvider:i,fixedElements:o,selectedElements:a}=e;if(a&&a.size<=1)return{positions:new Map,sizes:new Map,nestedLayouts:[]};let s=n.elements;a&&(s=s.filter((e=>a.has(e))));const l=Object.create(null),c=Object.create(null);for(const e of s)l[e.id]={types:i?.getElementTypes?.(e)??[],fixed:o?.has(e)},c[e.id]=Di(e,r);const d=[];for(const e of n.links)Object.hasOwn(l,e.sourceId)&&Object.hasOwn(l,e.targetId)&&"hidden"!==n.getLinkVisibility(e.typeId)&&d.push({type:i?.getLinkType?.(e)??e.typeId,source:e.sourceId,target:e.targetId});const u=await t({nodes:l,links:d},{bounds:c}),h=new Map,f=new Map;for(const[e,{x:t,y:n,width:r,height:i}]of Object.entries(u.bounds))h.set(e,{x:t,y:n}),f.set(e,{width:r,height:i});return{positions:h,sizes:f,nestedLayouts:[]}}({layoutFunction:n??l.defaultLayout,model:s,selectedElements:r,fixedElements:i,sizeProvider:u.renderingState,typeProvider:this.layoutTypeProvider})}catch(e){return h.setError(e),void console.error("Failed to compute graph layout",e)}finally{h.end()}const p=s.history.startBatch(Rt.text("workspace.perform_layout.command"));p.history.registerToUndo(ro.capture(s));for(const e of s.links)e.setVertices([]);p.history.registerToUndo(function(e){function t(){const{metrics:t}=e,{clientWidth:n,clientHeight:r}=e.metrics.pane,i=t.clientToPaperCoords(n/2,r/2),{scale:o}=t.transform;return{center:i,scale:o}}function n({center:t,scale:n}){e.centerTo(t,{scale:n})}const r=t(),i=Wi.create(Rt.text("commands.restore_viewport.title"),(()=>{const e=t();return n(r),Wi.create(Rt.text("commands.restore_viewport.title"),(()=>(n(e),i)))}));return i}(u)),o?await Promise.all([u.animateGraph((()=>{Po(f,s),p.store()})),a?u.zoomToFit({animate:!0}):null]):(Po(f,s),p.store(),a&&await u.zoomToFit())};group=e=>is(this,e);ungroupAll=e=>os(this,e);ungroupSome=e=>as(this,e)};function Wh(e,t=0){let n=0|t;for(const t of e)n=O(n,B(t,n));return 0|n}var Gh=class extends ua{canRename(e){return e instanceof fa}},Zh=class extends m.Component{_workspace;static contextType=Pt;constructor(e,t){super(e,t);const{history:n,dialogSettingsProvider:r,metadataProvider:i,validationProvider:o,renameLinkProvider:a,typeStyleResolver:s,selectLabelLanguage:l,translations:c=[],useDefaultTranslation:d=!0,defaultLanguage:u,defaultLayout:h,onWorkspaceEvent:f}=this.props;let p=c;var g;d&&(p=[...c,Yo]),this._workspace=(g={translation:this.context??new Jo({bundles:p,selectLabel:l}),history:n,dialogSettingsProvider:r,metadataProvider:i,validationProvider:o,renameLinkProvider:a,typeStyleResolver:s,defaultLanguage:u,defaultLayout:h,onWorkspaceEvent:f},new qh(g))}getContext(){return this._workspace}render(){const{children:e}=this.props;return R.jsx(Uh,{workspace:this._workspace,children:e})}},Kh=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=function(e,t,n){this.source=e,this.target=t,this.type=n};e.PowerEdge=t;var n=function(){function e(e,t,n,r){var a=this;if(this.linkAccessor=n,this.modules=new Array(e),this.roots=[],r)this.initModulesFromGroup(r);else{this.roots.push(new o);for(var s=0;s<e;++s)this.roots[0].add(this.modules[s]=new i(s))}this.R=t.length,t.forEach((function(e){var t=a.modules[n.getSourceIndex(e)],r=a.modules[n.getTargetIndex(e)],i=n.getType(e);t.outgoing.add(i,r),r.incoming.add(i,t)}))}return e.prototype.initModulesFromGroup=function(e){var t=new o;this.roots.push(t);for(var n=0;n<e.leaves.length;++n){var r=e.leaves[n],s=new i(r.id);this.modules[r.id]=s,t.add(s)}if(e.groups)for(var l=0;l<e.groups.length;++l){var c=e.groups[l],d={};for(var u in c)"leaves"!==u&&"groups"!==u&&c.hasOwnProperty(u)&&(d[u]=c[u]);t.add(new i(-1-l,new a,new a,this.initModulesFromGroup(c),d))}return t},e.prototype.merge=function(e,t,n){void 0===n&&(n=0);var r=e.incoming.intersection(t.incoming),a=e.outgoing.intersection(t.outgoing),s=new o;s.add(e),s.add(t);var l=new i(this.modules.length,a,r,s);this.modules.push(l);var c=function(n,r,i){n.forAll((function(n,o){n.forAll((function(n){var a=n[r];a.add(o,l),a.remove(o,e),a.remove(o,t),e[i].remove(o,n),t[i].remove(o,n)}))}))};return c(a,"incoming","outgoing"),c(r,"outgoing","incoming"),this.R-=r.count()+a.count(),this.roots[n].remove(e),this.roots[n].remove(t),this.roots[n].add(l),l},e.prototype.rootMerges=function(e){void 0===e&&(e=0);for(var t=this.roots[e].modules(),n=t.length,r=new Array(n*(n-1)),i=0,o=0,a=n-1;o<a;++o)for(var s=o+1;s<n;++s){var l=t[o],c=t[s];r[i]={id:i,nEdges:this.nEdges(l,c),a:l,b:c},i++}return r},e.prototype.greedyMerge=function(){for(var e=0;e<this.roots.length;++e)if(!(this.roots[e].modules().length<2)){var t=this.rootMerges(e).sort((function(e,t){return e.nEdges==t.nEdges?e.id-t.id:e.nEdges-t.nEdges}))[0];if(!(t.nEdges>=this.R))return this.merge(t.a,t.b,e),!0}},e.prototype.nEdges=function(e,t){var n=e.incoming.intersection(t.incoming),r=e.outgoing.intersection(t.outgoing);return this.R-n.count()-r.count()},e.prototype.getGroupHierarchy=function(e){var n=this,i=[];return r(this.roots[0],{},i),this.allEdges().forEach((function(r){var o=n.modules[r.source],a=n.modules[r.target];e.push(new t(void 0===o.gid?r.source:i[o.gid],void 0===a.gid?r.target:i[a.gid],r.type))})),i},e.prototype.allEdges=function(){var t=[];return e.getEdges(this.roots[0],t),t},e.getEdges=function(t,n){t.forAll((function(t){t.getEdges(n),e.getEdges(t.children,n)}))},e}();function r(e,t,n){e.forAll((function(e){if(e.isLeaf())t.leaves||(t.leaves=[]),t.leaves.push(e.id);else{var i=t;if(e.gid=n.length,!e.isIsland()||e.isPredefined()){if(i={id:e.gid},e.isPredefined())for(var o in e.definition)i[o]=e.definition[o];t.groups||(t.groups=[]),t.groups.push(e.gid),n.push(i)}r(e.children,i,n)}}))}e.Configuration=n;var i=function(){function e(e,t,n,r,i){void 0===t&&(t=new a),void 0===n&&(n=new a),void 0===r&&(r=new o),this.id=e,this.outgoing=t,this.incoming=n,this.children=r,this.definition=i}return e.prototype.getEdges=function(e){var n=this;this.outgoing.forAll((function(r,i){r.forAll((function(r){e.push(new t(n.id,r.id,i))}))}))},e.prototype.isLeaf=function(){return 0===this.children.count()},e.prototype.isIsland=function(){return 0===this.outgoing.count()&&0===this.incoming.count()},e.prototype.isPredefined=function(){return void 0!==this.definition},e}();e.Module=i;var o=function(){function e(){this.table={}}return e.prototype.count=function(){return Object.keys(this.table).length},e.prototype.intersection=function(t){var n=new e;return n.table=function(e,t){var n={};for(var r in e)r in t&&(n[r]=e[r]);return n}(this.table,t.table),n},e.prototype.intersectionCount=function(e){return this.intersection(e).count()},e.prototype.contains=function(e){return e in this.table},e.prototype.add=function(e){this.table[e.id]=e},e.prototype.remove=function(e){delete this.table[e.id]},e.prototype.forAll=function(e){for(var t in this.table)e(this.table[t])},e.prototype.modules=function(){var e=[];return this.forAll((function(t){t.isPredefined()||e.push(t)})),e},e}();e.ModuleSet=o;var a=function(){function e(){this.sets={},this.n=0}return e.prototype.count=function(){return this.n},e.prototype.contains=function(e){var t=!1;return this.forAllModules((function(n){t||n.id!=e||(t=!0)})),t},e.prototype.add=function(e,t){(e in this.sets?this.sets[e]:this.sets[e]=new o).add(t),++this.n},e.prototype.remove=function(e,t){var n=this.sets[e];n.remove(t),0===n.count()&&delete this.sets[e],--this.n},e.prototype.forAll=function(e){for(var t in this.sets)e(this.sets[t],Number(t))},e.prototype.forAllModules=function(e){this.forAll((function(t){return t.forAll(e)}))},e.prototype.intersection=function(t){var n=new e;return this.forAll((function(e,r){if(r in t.sets){var i=e.intersection(t.sets[r]),o=i.count();o>0&&(n.sets[r]=i,n.n+=o)}})),n},e}();e.LinkSets=a,e.getGroups=function(e,t,r,i){for(var o=new n(e.length,t,r,i);o.greedyMerge(););var a=[],s=o.getGroupHierarchy(a);return a.forEach((function(t){var n=function(n){var r=t[n];"number"==typeof r&&(t[n]=e[r])};n("source"),n("target")})),{groups:s,powerEdges:a}}})),Xh=I((e=>{function t(e,t){var n={};for(var r in e)n[r]={};for(var r in t)n[r]={};return Object.keys(n).length}function n(e,t){var n=0;for(var r in e)void 0!==t[r]&&++n;return n}function r(e,t,n,r){var i=function(e,t){var n={},r=function(e,t){void 0===n[e]&&(n[e]={}),n[e][t]={}};return e.forEach((function(e){var n=t.getSourceIndex(e),i=t.getTargetIndex(e);r(n,i),r(i,n)})),n}(e,r);e.forEach((function(e){var o=i[r.getSourceIndex(e)],a=i[r.getTargetIndex(e)];r.setLength(e,1+t*n(o,a))}))}function i(e,t,n){var r=[],i=0,o=[],a=[];function s(e){e.index=e.lowlink=i++,o.push(e),e.onStack=!0;for(var t=0,n=e.out;t<n.length;t++){var r=n[t];void 0===r.index?(s(r),e.lowlink=Math.min(e.lowlink,r.lowlink)):r.onStack&&(e.lowlink=Math.min(e.lowlink,r.index))}if(e.lowlink===e.index){for(var l=[];o.length&&((r=o.pop()).onStack=!1,l.push(r),r!==e););a.push(l.map((function(e){return e.id})))}}for(var l=0;l<e;l++)r.push({id:l,out:[]});for(var c=0,d=t;c<d.length;c++){var u=d[c],h=r[n.getSourceIndex(u)],f=r[n.getTargetIndex(u)];h.out.push(f)}for(var p=0,g=r;p<g.length;p++){var v=g[p];void 0===v.index&&s(v)}return a}Object.defineProperty(e,"__esModule",{value:!0}),e.symmetricDiffLinkLengths=function(e,i,o){void 0===o&&(o=1),r(e,o,(function(e,r){return Math.sqrt(t(e,r)-n(e,r))}),i)},e.jaccardLinkLengths=function(e,i,o){void 0===o&&(o=1),r(e,o,(function(e,r){return Math.min(Object.keys(e).length,Object.keys(r).length)<1.1?0:n(e,r)/t(e,r)}),i)},e.generateDirectedEdgeConstraints=function(e,t,n,r){var o=i(e,t,r),a={};o.forEach((function(e,t){return e.forEach((function(e){return a[e]=t}))}));var s=[];return t.forEach((function(e){var t=r.getSourceIndex(e),i=r.getTargetIndex(e);a[t]!==a[i]&&s.push({axis:n,left:t,right:i,gap:r.getMinSeparation(e)})})),s},e.stronglyConnectedComponents=i})),Qh=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=function(){function e(){this.locks={}}return e.prototype.add=function(e,t){this.locks[e]=t},e.prototype.clear=function(){this.locks={}},e.prototype.isEmpty=function(){for(var e in this.locks)return!1;return!0},e.prototype.apply=function(e){for(var t in this.locks)e(Number(t),this.locks[t])},e}();e.Locks=t,e.Descent=function(){function e(e,r,i){void 0===i&&(i=null),this.D=r,this.G=i,this.threshold=1e-4,this.numGridSnapNodes=0,this.snapGridSize=100,this.snapStrength=1e3,this.scaleSnapByMaxH=!1,this.random=new n,this.project=null,this.x=e,this.k=e.length;var o=this.n=e[0].length;this.H=new Array(this.k),this.g=new Array(this.k),this.Hd=new Array(this.k),this.a=new Array(this.k),this.b=new Array(this.k),this.c=new Array(this.k),this.d=new Array(this.k),this.e=new Array(this.k),this.ia=new Array(this.k),this.ib=new Array(this.k),this.xtmp=new Array(this.k),this.locks=new t,this.minD=Number.MAX_VALUE;for(var a,s=o;s--;)for(a=o;--a>s;){var l=r[s][a];l>0&&l<this.minD&&(this.minD=l)}for(this.minD===Number.MAX_VALUE&&(this.minD=1),s=this.k;s--;){for(this.g[s]=new Array(o),this.H[s]=new Array(o),a=o;a--;)this.H[s][a]=new Array(o);this.Hd[s]=new Array(o),this.a[s]=new Array(o),this.b[s]=new Array(o),this.c[s]=new Array(o),this.d[s]=new Array(o),this.e[s]=new Array(o),this.ia[s]=new Array(o),this.ib[s]=new Array(o),this.xtmp[s]=new Array(o)}}return e.createSquareMatrix=function(e,t){for(var n=new Array(e),r=0;r<e;++r){n[r]=new Array(e);for(var i=0;i<e;++i)n[r][i]=t(r,i)}return n},e.prototype.offsetDir=function(){for(var e=this,t=new Array(this.k),n=0,r=0;r<this.k;++r){var i=t[r]=this.random.getNextBetween(.01,1)-.5;n+=i*i}return n=Math.sqrt(n),t.map((function(t){return t*(e.minD/n)}))},e.prototype.computeDerivatives=function(e){var t=this,n=this.n;if(!(n<1)){for(var r,i=new Array(this.k),o=new Array(this.k),a=new Array(this.k),s=0,l=0;l<n;++l){for(r=0;r<this.k;++r)a[r]=this.g[r][l]=0;for(var c=0;c<n;++c)if(l!==c){for(var d=n;d--;){var u=0;for(r=0;r<this.k;++r){var h=i[r]=e[r][l]-e[r][c];u+=o[r]=h*h}if(u>1e-9)break;var f=this.offsetDir();for(r=0;r<this.k;++r)e[r][c]+=f[r]}var p=Math.sqrt(u),g=this.D[l][c],v=null!=this.G?this.G[l][c]:1;if(v>1&&p>g||!isFinite(g))for(r=0;r<this.k;++r)this.H[r][l][c]=0;else{v>1&&(v=1);var m=g*g,b=2*v*(p-g)/(m*p),w=p*p*p,y=2*-v/(m*w);for(isFinite(b)||console.log(b),r=0;r<this.k;++r)this.g[r][l]+=i[r]*b,a[r]-=this.H[r][l][c]=y*(w+g*(o[r]-u)+p*u)}}for(r=0;r<this.k;++r)s=Math.max(s,this.H[r][l][l]=a[r])}var _=this.snapGridSize/2,k=this.snapGridSize,x=this.snapStrength/(_*_),S=this.numGridSnapNodes;for(l=0;l<S;++l)for(r=0;r<this.k;++r){var C=this.x[r][l],L=C/k,M=L%1,E=L-M;-_<(h=Math.abs(M)<=.5?C-E*k:C>0?C-(E+1)*k:C-(E-1)*k)&&h<=_&&(this.scaleSnapByMaxH?(this.g[r][l]+=s*x*h,this.H[r][l][l]+=s*x):(this.g[r][l]+=x*h,this.H[r][l][l]+=x))}this.locks.isEmpty()||this.locks.apply((function(n,i){for(r=0;r<t.k;++r)t.H[r][n][n]+=s,t.g[r][n]-=s*(i[r]-e[r][n])}))}},e.dotProd=function(e,t){for(var n=0,r=e.length;r--;)n+=e[r]*t[r];return n},e.rightMultiply=function(t,n,r){for(var i=t.length;i--;)r[i]=e.dotProd(t[i],n)},e.prototype.computeStepSize=function(t){for(var n=0,r=0,i=0;i<this.k;++i)n+=e.dotProd(this.g[i],t[i]),e.rightMultiply(this.H[i],t[i],this.Hd[i]),r+=e.dotProd(t[i],this.Hd[i]);return 0!==r&&isFinite(r)?1*n/r:0},e.prototype.reduceStress=function(){this.computeDerivatives(this.x);for(var e=this.computeStepSize(this.g),t=0;t<this.k;++t)this.takeDescentStep(this.x[t],this.g[t],e);return this.computeStress()},e.copy=function(e,t){for(var n=e.length,r=t[0].length,i=0;i<n;++i)for(var o=0;o<r;++o)t[i][o]=e[i][o]},e.prototype.stepAndProject=function(t,n,r,i){e.copy(t,n),this.takeDescentStep(n[0],r[0],i),this.project&&this.project[0](t[0],t[1],n[0]),this.takeDescentStep(n[1],r[1],i),this.project&&this.project[1](n[0],t[1],n[1]);for(var o=2;o<this.k;o++)this.takeDescentStep(n[o],r[o],i)},e.mApply=function(e,t,n){for(var r=e;r-- >0;)for(var i=t;i-- >0;)n(r,i)},e.prototype.matrixApply=function(t){e.mApply(this.k,this.n,t)},e.prototype.computeNextPosition=function(e,t){var n=this;this.computeDerivatives(e);var r=this.computeStepSize(this.g);if(this.stepAndProject(e,t,this.g,r),this.project){this.matrixApply((function(r,i){return n.e[r][i]=e[r][i]-t[r][i]}));var i=this.computeStepSize(this.e);i=Math.max(.2,Math.min(i,1)),this.stepAndProject(e,t,this.e,i)}},e.prototype.run=function(e){for(var t=Number.MAX_VALUE,n=!1;!n&&e-- >0;){var r=this.rungeKutta();n=Math.abs(t/r-1)<this.threshold,t=r}return t},e.prototype.rungeKutta=function(){var t=this;this.computeNextPosition(this.x,this.a),e.mid(this.x,this.a,this.ia),this.computeNextPosition(this.ia,this.b),e.mid(this.x,this.b,this.ib),this.computeNextPosition(this.ib,this.c),this.computeNextPosition(this.c,this.d);var n=0;return this.matrixApply((function(e,r){var i=(t.a[e][r]+2*t.b[e][r]+2*t.c[e][r]+t.d[e][r])/6,o=t.x[e][r]-i;n+=o*o,t.x[e][r]=i})),n},e.mid=function(t,n,r){e.mApply(t.length,t[0].length,(function(e,i){return r[e][i]=t[e][i]+(n[e][i]-t[e][i])/2}))},e.prototype.takeDescentStep=function(e,t,n){for(var r=0;r<this.n;++r)e[r]=e[r]-n*t[r]},e.prototype.computeStress=function(){for(var e=0,t=0,n=this.n-1;t<n;++t)for(var r=t+1,i=this.n;r<i;++r){for(var o=0,a=0;a<this.k;++a){var s=this.x[a][t]-this.x[a][r];o+=s*s}o=Math.sqrt(o);var l=this.D[t][r];if(isFinite(l)){var c=l-o;e+=c*c/(l*l)}}return e},e.zeroDistance=1e-10,e}();var n=function(){function e(e){void 0===e&&(e=1),this.seed=e,this.a=214013,this.c=2531011,this.m=2147483648,this.range=32767}return e.prototype.getNext=function(){return this.seed=(this.seed*this.a+this.c)%this.m,(this.seed>>16)/this.range},e.prototype.getNextBetween=function(e,t){return e+this.getNext()*(t-e)},e}();e.PseudoRandom=n})),Yh=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=function(){function e(e){this.scale=e,this.AB=0,this.AD=0,this.A2=0}return e.prototype.addVariable=function(e){var t=this.scale/e.scale,n=e.weight;this.AB+=n*t*(e.offset/e.scale),this.AD+=n*t*e.desiredPosition,this.A2+=n*t*t},e.prototype.getPosn=function(){return(this.AD-this.AB)/this.A2},e}();e.PositionStats=t;var n=function(){function e(e,t,n,r){void 0===r&&(r=!1),this.left=e,this.right=t,this.gap=n,this.equality=r,this.active=!1,this.unsatisfiable=!1,this.left=e,this.right=t,this.gap=n,this.equality=r}return e.prototype.slack=function(){return this.unsatisfiable?Number.MAX_VALUE:this.right.scale*this.right.position()-this.gap-this.left.scale*this.left.position()},e}();e.Constraint=n;var r=function(){function e(e,t,n){void 0===t&&(t=1),void 0===n&&(n=1),this.desiredPosition=e,this.weight=t,this.scale=n,this.offset=0}return e.prototype.dfdv=function(){return 2*this.weight*(this.position()-this.desiredPosition)},e.prototype.position=function(){return(this.block.ps.scale*this.block.posn+this.offset)/this.scale},e.prototype.visitNeighbours=function(e,t){var n=function(n,r){return n.active&&e!==r&&t(n,r)};this.cOut.forEach((function(e){return n(e,e.right)})),this.cIn.forEach((function(e){return n(e,e.left)}))},e}();e.Variable=r;var i=function(){function e(e){this.vars=[],e.offset=0,this.ps=new t(e.scale),this.addVariable(e)}return e.prototype.addVariable=function(e){e.block=this,this.vars.push(e),this.ps.addVariable(e),this.posn=this.ps.getPosn()},e.prototype.updateWeightedPosition=function(){this.ps.AB=this.ps.AD=this.ps.A2=0;for(var e=0,t=this.vars.length;e<t;++e)this.ps.addVariable(this.vars[e]);this.posn=this.ps.getPosn()},e.prototype.compute_lm=function(e,t,n){var r=this,i=e.dfdv();return e.visitNeighbours(t,(function(t,o){var a=r.compute_lm(o,e,n);o===t.right?(i+=a*t.left.scale,t.lm=a):(i+=a*t.right.scale,t.lm=-a),n(t)})),i/e.scale},e.prototype.populateSplitBlock=function(e,t){var n=this;e.visitNeighbours(t,(function(t,r){r.offset=e.offset+(r===t.right?t.gap:-t.gap),n.addVariable(r),n.populateSplitBlock(r,e)}))},e.prototype.traverse=function(e,t,n,r){var i=this;void 0===n&&(n=this.vars[0]),void 0===r&&(r=null),n.visitNeighbours(r,(function(r,o){t.push(e(r)),i.traverse(e,t,o,n)}))},e.prototype.findMinLM=function(){var e=null;return this.compute_lm(this.vars[0],null,(function(t){!t.equality&&(null===e||t.lm<e.lm)&&(e=t)})),e},e.prototype.findMinLMBetween=function(e,t){this.compute_lm(e,null,(function(){}));var n=null;return this.findPath(e,null,t,(function(e,t){!e.equality&&e.right===t&&(null===n||e.lm<n.lm)&&(n=e)})),n},e.prototype.findPath=function(e,t,n,r){var i=this,o=!1;return e.visitNeighbours(t,(function(t,a){o||a!==n&&!i.findPath(a,e,n,r)||(o=!0,r(t,a))})),o},e.prototype.isActiveDirectedPathBetween=function(e,t){if(e===t)return!0;for(var n=e.cOut.length;n--;){var r=e.cOut[n];if(r.active&&this.isActiveDirectedPathBetween(r.right,t))return!0}return!1},e.split=function(t){return t.active=!1,[e.createSplitBlock(t.left),e.createSplitBlock(t.right)]},e.createSplitBlock=function(t){var n=new e(t);return n.populateSplitBlock(t,null),n},e.prototype.splitBetween=function(t,n){var r=this.findMinLMBetween(t,n);if(null!==r){var i=e.split(r);return{constraint:r,lb:i[0],rb:i[1]}}return null},e.prototype.mergeAcross=function(e,t,n){t.active=!0;for(var r=0,i=e.vars.length;r<i;++r){var o=e.vars[r];o.offset+=n,this.addVariable(o)}this.posn=this.ps.getPosn()},e.prototype.cost=function(){for(var e=0,t=this.vars.length;t--;){var n=this.vars[t],r=n.position()-n.desiredPosition;e+=r*r*n.weight}return e},e}();e.Block=i;var o=function(){function e(e){this.vs=e;var t=e.length;for(this.list=new Array(t);t--;){var n=new i(e[t]);this.list[t]=n,n.blockInd=t}}return e.prototype.cost=function(){for(var e=0,t=this.list.length;t--;)e+=this.list[t].cost();return e},e.prototype.insert=function(e){e.blockInd=this.list.length,this.list.push(e)},e.prototype.remove=function(e){var t=this.list.length-1,n=this.list[t];this.list.length=t,e!==n&&(this.list[e.blockInd]=n,n.blockInd=e.blockInd)},e.prototype.merge=function(e){var t=e.left.block,n=e.right.block,r=e.right.offset-e.left.offset-e.gap;t.vars.length<n.vars.length?(n.mergeAcross(t,e,r),this.remove(t)):(t.mergeAcross(n,e,-r),this.remove(n))},e.prototype.forEach=function(e){this.list.forEach(e)},e.prototype.updateBlockPositions=function(){this.list.forEach((function(e){return e.updateWeightedPosition()}))},e.prototype.split=function(e){var t=this;this.updateBlockPositions(),this.list.forEach((function(n){var r=n.findMinLM();null!==r&&r.lm<a.LAGRANGIAN_TOLERANCE&&(n=r.left.block,i.split(r).forEach((function(e){return t.insert(e)})),t.remove(n),e.push(r))}))},e}();e.Blocks=o;var a=function(){function e(e,t){this.vs=e,this.cs=t,this.vs=e,e.forEach((function(e){e.cIn=[],e.cOut=[]})),this.cs=t,t.forEach((function(e){e.left.cOut.push(e),e.right.cIn.push(e)})),this.inactive=t.map((function(e){return e.active=!1,e})),this.bs=null}return e.prototype.cost=function(){return this.bs.cost()},e.prototype.setStartingPositions=function(e){this.inactive=this.cs.map((function(e){return e.active=!1,e})),this.bs=new o(this.vs),this.bs.forEach((function(t,n){return t.posn=e[n]}))},e.prototype.setDesiredPositions=function(e){this.vs.forEach((function(t,n){return t.desiredPosition=e[n]}))},e.prototype.mostViolated=function(){for(var t=Number.MAX_VALUE,n=null,r=this.inactive,i=r.length,o=i,a=0;a<i;++a){var s=r[a];if(!s.unsatisfiable){var l=s.slack();if((s.equality||l<t)&&(t=l,n=s,o=a,s.equality))break}}return o!==i&&(t<e.ZERO_UPPERBOUND&&!n.active||n.equality)&&(r[o]=r[i-1],r.length=i-1),n},e.prototype.satisfy=function(){null==this.bs&&(this.bs=new o(this.vs)),this.bs.split(this.inactive);for(var t=null;(t=this.mostViolated())&&(t.equality||t.slack()<e.ZERO_UPPERBOUND&&!t.active);){var n=t.left.block;if(n!==t.right.block)this.bs.merge(t);else{if(n.isActiveDirectedPathBetween(t.right,t.left)){t.unsatisfiable=!0;continue}var r=n.splitBetween(t.left,t.right);if(null===r){t.unsatisfiable=!0;continue}this.bs.insert(r.lb),this.bs.insert(r.rb),this.bs.remove(n),this.inactive.push(r.constraint),t.slack()>=0?this.inactive.push(t):this.bs.merge(t)}}},e.prototype.solve=function(){this.satisfy();for(var e=Number.MAX_VALUE,t=this.bs.cost();Math.abs(e-t)>1e-4;)this.satisfy(),e=t,t=this.bs.cost();return t},e.LAGRANGIAN_TOLERANCE=-1e-4,e.ZERO_UPPERBOUND=-1e-10,e}();e.Solver=a,e.removeOverlapInOneDimension=function(e,t,i){for(var o=e.map((function(e){return new r(e.desiredCenter)})),s=[],l=e.length,c=0;c<l-1;c++)s.push(new n(o[c],o[c+1],(e[c].size+e[c+1].size)/2));var d=o[0],u=o[l-1],h=e[0].size/2,f=e[l-1].size/2,p=null,g=null;return t&&(p=new r(t,1e3*d.weight),o.push(p),s.push(new n(p,d,h))),i&&(g=new r(i,1e3*u.weight),o.push(g),s.push(new n(u,g,f))),new a(o,s).solve(),{newCenters:o.slice(0,e.length).map((function(e){return e.position()})),lowerBound:p?p.position():d.position()-h,upperBound:g?g.position():u.position()+f}}})),Jh=I((e=>{var t,n=e&&e.__extends||(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function e(){this.findIter=function(e){for(var t=this._root,n=this.iterator();null!==t;){var r=this._comparator(e,t.data);if(0===r)return n._cursor=t,n;n._ancestors.push(t),t=t.get_child(r>0)}return null}}return e.prototype.clear=function(){this._root=null,this.size=0},e.prototype.find=function(e){for(var t=this._root;null!==t;){var n=this._comparator(e,t.data);if(0===n)return t.data;t=t.get_child(n>0)}return null},e.prototype.lowerBound=function(e){return this._bound(e,this._comparator)},e.prototype.upperBound=function(e){var t=this._comparator;return this._bound(e,(function(e,n){return t(n,e)}))},e.prototype.min=function(){var e=this._root;if(null===e)return null;for(;null!==e.left;)e=e.left;return e.data},e.prototype.max=function(){var e=this._root;if(null===e)return null;for(;null!==e.right;)e=e.right;return e.data},e.prototype.iterator=function(){return new i(this)},e.prototype.each=function(e){for(var t,n=this.iterator();null!==(t=n.next());)e(t)},e.prototype.reach=function(e){for(var t,n=this.iterator();null!==(t=n.prev());)e(t)},e.prototype._bound=function(e,t){for(var n=this._root,r=this.iterator();null!==n;){var i=this._comparator(e,n.data);if(0===i)return r._cursor=n,r;r._ancestors.push(n),n=n.get_child(i>0)}for(var o=r._ancestors.length-1;o>=0;--o)if(t(e,(n=r._ancestors[o]).data)>0)return r._cursor=n,r._ancestors.length=o,r;return r._ancestors.length=0,r},e}();e.TreeBase=r;var i=function(){function e(e){this._tree=e,this._ancestors=[],this._cursor=null}return e.prototype.data=function(){return null!==this._cursor?this._cursor.data:null},e.prototype.next=function(){if(null===this._cursor){var e=this._tree._root;null!==e&&this._minNode(e)}else if(null===this._cursor.right){var t;do{if(t=this._cursor,!this._ancestors.length){this._cursor=null;break}this._cursor=this._ancestors.pop()}while(this._cursor.right===t)}else this._ancestors.push(this._cursor),this._minNode(this._cursor.right);return null!==this._cursor?this._cursor.data:null},e.prototype.prev=function(){if(null===this._cursor){var e=this._tree._root;null!==e&&this._maxNode(e)}else if(null===this._cursor.left){var t;do{if(t=this._cursor,!this._ancestors.length){this._cursor=null;break}this._cursor=this._ancestors.pop()}while(this._cursor.left===t)}else this._ancestors.push(this._cursor),this._maxNode(this._cursor.left);return null!==this._cursor?this._cursor.data:null},e.prototype._minNode=function(e){for(;null!==e.left;)this._ancestors.push(e),e=e.left;this._cursor=e},e.prototype._maxNode=function(e){for(;null!==e.right;)this._ancestors.push(e),e=e.right;this._cursor=e},e}();e.Iterator=i;var o=function(){function e(e){this.data=e,this.left=null,this.right=null,this.red=!0}return e.prototype.get_child=function(e){return e?this.right:this.left},e.prototype.set_child=function(e,t){e?this.right=t:this.left=t},e}();e.RBTree=function(e){function t(t){var n=e.call(this)||this;return n._root=null,n._comparator=t,n.size=0,n}return n(t,e),t.prototype.insert=function(e){var n=!1;if(null===this._root)this._root=new o(e),n=!0,this.size++;else{var r=new o(void 0),i=!1,a=!1,s=null,l=r,c=null,d=this._root;for(l.right=this._root;;){if(null===d?(d=new o(e),c.set_child(i,d),n=!0,this.size++):t.is_red(d.left)&&t.is_red(d.right)&&(d.red=!0,d.left.red=!1,d.right.red=!1),t.is_red(d)&&t.is_red(c)){var u=l.right===s;d===c.get_child(a)?l.set_child(u,t.single_rotate(s,!a)):l.set_child(u,t.double_rotate(s,!a))}var h=this._comparator(d.data,e);if(0===h)break;a=i,null!==s&&(l=s),s=c,c=d,d=d.get_child(i=h<0)}this._root=r.right}return this._root.red=!1,n},t.prototype.remove=function(e){if(null===this._root)return!1;var n=new o(void 0),r=n;r.right=this._root;for(var i=null,a=null,s=null,l=!0;null!==r.get_child(l);){var c=l;a=i,i=r,r=r.get_child(l);var d=this._comparator(e,r.data);if(l=d>0,0===d&&(s=r),!t.is_red(r)&&!t.is_red(r.get_child(l)))if(t.is_red(r.get_child(!l))){var u=t.single_rotate(r,l);i.set_child(c,u),i=u}else if(!t.is_red(r.get_child(!l))){var h=i.get_child(!c);if(null!==h)if(t.is_red(h.get_child(!c))||t.is_red(h.get_child(c))){var f=a.right===i;t.is_red(h.get_child(c))?a.set_child(f,t.double_rotate(i,c)):t.is_red(h.get_child(!c))&&a.set_child(f,t.single_rotate(i,c));var p=a.get_child(f);p.red=!0,r.red=!0,p.left.red=!1,p.right.red=!1}else i.red=!1,h.red=!0,r.red=!0}}return null!==s&&(s.data=r.data,i.set_child(i.right===r,r.get_child(null===r.left)),this.size--),this._root=n.right,null!==this._root&&(this._root.red=!1),null!==s},t.is_red=function(e){return null!==e&&e.red},t.single_rotate=function(e,t){var n=e.get_child(!t);return e.set_child(!t,n.get_child(t)),n.set_child(t,e),e.red=!0,n.red=!1,n},t.double_rotate=function(e,n){return e.set_child(!n,t.single_rotate(e.get_child(!n),!n)),t.single_rotate(e,n)},t}(r)})),ef=I((e=>{var t,n=e&&e.__extends||(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var r=Yh(),i=Jh();function o(e){return e.bounds=void 0!==e.leaves?e.leaves.reduce((function(e,t){return t.bounds.union(e)}),a.empty()):a.empty(),void 0!==e.groups&&(e.bounds=e.groups.reduce((function(e,t){return o(t).union(e)}),e.bounds)),e.bounds=e.bounds.inflate(e.padding),e.bounds}e.computeGroupBounds=o;var a=function(){function e(e,t,n,r){this.x=e,this.X=t,this.y=n,this.Y=r}return e.empty=function(){return new e(Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY)},e.prototype.cx=function(){return(this.x+this.X)/2},e.prototype.cy=function(){return(this.y+this.Y)/2},e.prototype.overlapX=function(e){var t=this.cx(),n=e.cx();return t<=n&&e.x<this.X?this.X-e.x:n<=t&&this.x<e.X?e.X-this.x:0},e.prototype.overlapY=function(e){var t=this.cy(),n=e.cy();return t<=n&&e.y<this.Y?this.Y-e.y:n<=t&&this.y<e.Y?e.Y-this.y:0},e.prototype.setXCentre=function(e){var t=e-this.cx();this.x+=t,this.X+=t},e.prototype.setYCentre=function(e){var t=e-this.cy();this.y+=t,this.Y+=t},e.prototype.width=function(){return this.X-this.x},e.prototype.height=function(){return this.Y-this.y},e.prototype.union=function(t){return new e(Math.min(this.x,t.x),Math.max(this.X,t.X),Math.min(this.y,t.y),Math.max(this.Y,t.Y))},e.prototype.lineIntersections=function(t,n,r,i){for(var o=[[this.x,this.y,this.X,this.y],[this.X,this.y,this.X,this.Y],[this.X,this.Y,this.x,this.Y],[this.x,this.Y,this.x,this.y]],a=[],s=0;s<4;++s){var l=e.lineIntersection(t,n,r,i,o[s][0],o[s][1],o[s][2],o[s][3]);null!==l&&a.push({x:l.x,y:l.y})}return a},e.prototype.rayIntersection=function(e,t){var n=this.lineIntersections(this.cx(),this.cy(),e,t);return n.length>0?n[0]:null},e.prototype.vertices=function(){return[{x:this.x,y:this.y},{x:this.X,y:this.y},{x:this.X,y:this.Y},{x:this.x,y:this.Y}]},e.lineIntersection=function(e,t,n,r,i,o,a,s){var l=n-e,c=a-i,d=r-t,u=s-o,h=u*l-c*d;if(0==h)return null;var f=e-i,p=t-o,g=(c*p-u*f)/h,v=(l*p-d*f)/h;return g>=0&&g<=1&&v>=0&&v<=1?{x:e+g*l,y:t+g*d}:null},e.prototype.inflate=function(t){return new e(this.x-t,this.X+t,this.y-t,this.Y+t)},e}();e.Rectangle=a,e.makeEdgeBetween=function(e,t,n){var r=e.rayIntersection(t.cx(),t.cy())||{x:e.cx(),y:e.cy()},i=t.rayIntersection(e.cx(),e.cy())||{x:t.cx(),y:t.cy()},o=i.x-r.x,a=i.y-r.y,s=Math.sqrt(o*o+a*a),l=s-n;return{sourceIntersection:r,targetIntersection:i,arrowStart:{x:r.x+l*o/s,y:r.y+l*a/s}}},e.makeEdgeTo=function(e,t,n){var r=t.rayIntersection(e.x,e.y);r||(r={x:t.cx(),y:t.cy()});var i=r.x-e.x,o=r.y-e.y,a=Math.sqrt(i*i+o*o);return{x:r.x-n*i/a,y:r.y-n*o/a}};var s=function(e,t,n){this.v=e,this.r=t,this.pos=n,this.prev=d(),this.next=d()},l=function(e,t,n){this.isOpen=e,this.v=t,this.pos=n};function c(e,t){return e.pos>t.pos?1:e.pos<t.pos||e.isOpen?-1:t.isOpen?1:0}function d(){return new i.RBTree((function(e,t){return e.pos-t.pos}))}var u={getCentre:function(e){return e.cx()},getOpen:function(e){return e.y},getClose:function(e){return e.Y},getSize:function(e){return e.width()},makeRect:function(e,t,n,r){return new a(n-r/2,n+r/2,e,t)},findNeighbours:function(e,t){var n=function(n,r){for(var i,o=t.findIter(e);null!==(i=o[n]());){var a=i.r.overlapX(e.r);if((a<=0||a<=i.r.overlapY(e.r))&&(e[n].insert(i),i[r].insert(e)),a<=0)break}};n("next","prev"),n("prev","next")}},h={getCentre:function(e){return e.cy()},getOpen:function(e){return e.x},getClose:function(e){return e.X},getSize:function(e){return e.height()},makeRect:function(e,t,n,r){return new a(e,t,n-r/2,n+r/2)},findNeighbours:function(e,t){var n=function(n,r){var i=t.findIter(e)[n]();null!==i&&i.r.overlapX(e.r)>0&&(e[n].insert(i),i[r].insert(e))};n("next","prev"),n("prev","next")}};function f(e,t,n,r){void 0===r&&(r=!1);var i=e.padding,o=void 0!==e.groups?e.groups.length:0,a=void 0!==e.leaves?e.leaves.length:0,s=o?e.groups.reduce((function(e,r){return e.concat(f(r,t,n,!0))}),[]):[],l=(r?2:0)+a+o,c=new Array(l),d=new Array(l),u=0,h=function(e,t){d[u]=e,c[u++]=t};if(r){var g=e.bounds,v=t.getCentre(g),m=t.getSize(g)/2,b=t.getOpen(g),w=t.getClose(g),y=v-m+i/2,_=v+m-i/2;e.minVar.desiredPosition=y,h(t.makeRect(b,w,y,i),e.minVar),e.maxVar.desiredPosition=_,h(t.makeRect(b,w,_,i),e.maxVar)}a&&e.leaves.forEach((function(e){return h(e.bounds,e.variable)})),o&&e.groups.forEach((function(e){var n=e.bounds;h(t.makeRect(t.getOpen(n),t.getClose(n),t.getCentre(n),t.getSize(n)),e.minVar)}));var k=p(d,c,t,n);return o&&(c.forEach((function(e){e.cOut=[],e.cIn=[]})),k.forEach((function(e){e.left.cOut.push(e),e.right.cIn.push(e)})),e.groups.forEach((function(e){var n=(e.padding-t.getSize(e.bounds))/2;e.minVar.cIn.forEach((function(e){return e.gap+=n})),e.minVar.cOut.forEach((function(t){t.left=e.maxVar,t.gap+=n}))}))),s.concat(k)}function p(e,t,n,i){var o,a=e.length,u=2*a;console.assert(t.length>=a);var h=new Array(u);for(o=0;o<a;++o){var f=e[o],p=new s(t[o],f,n.getCentre(f));h[o]=new l(!0,p,n.getOpen(f)),h[o+a]=new l(!1,p,n.getClose(f))}h.sort(c);var g=new Array,v=d();for(o=0;o<u;++o){var m=h[o];if(p=m.v,m.isOpen)v.insert(p),n.findNeighbours(p,v);else{v.remove(p);var b=function(e,t){var o=(n.getSize(e.r)+n.getSize(t.r))/2+i;g.push(new r.Constraint(e.v,t.v,o))},w=function(e,t,n){for(var r,i=p[e].iterator();null!==(r=i[e]());)n(r,p),r[t].remove(p)};w("prev","next",(function(e,t){return b(e,t)})),w("next","prev",(function(e,t){return b(t,e)}))}}return console.assert(0===v.size),g}function g(e,t){return p(e,t,u,1e-6)}function v(e,t){return p(e,t,h,1e-6)}function m(e){return f(e,u,1e-6)}function b(e){return f(e,h,1e-6)}e.generateXConstraints=g,e.generateYConstraints=v,e.generateXGroupConstraints=m,e.generateYGroupConstraints=b,e.removeOverlaps=function(e){var t=e.map((function(e){return new r.Variable(e.cx())})),n=g(e,t),i=new r.Solver(t,n);i.solve(),t.forEach((function(t,n){return e[n].setXCentre(t.position())})),t=e.map((function(e){return new r.Variable(e.cy())})),n=v(e,t),(i=new r.Solver(t,n)).solve(),t.forEach((function(t,n){return e[n].setYCentre(t.position())}))};var w=function(e){function t(t,n){var r=e.call(this,0,n)||this;return r.index=t,r}return n(t,e),t}(r.Variable);e.IndexedVariable=w,e.Projection=function(){function e(e,t,n,r,i){void 0===n&&(n=null),void 0===r&&(r=null),void 0===i&&(i=!1);var s=this;if(this.nodes=e,this.groups=t,this.rootGroup=n,this.avoidOverlaps=i,this.variables=e.map((function(e,t){return e.variable=new w(t,1)})),r&&this.createConstraints(r),i&&n&&void 0!==n.groups){e.forEach((function(e){if(e.width&&e.height){var t=e.width/2,n=e.height/2;e.bounds=new a(e.x-t,e.x+t,e.y-n,e.y+n)}else e.bounds=new a(e.x,e.x,e.y,e.y)})),o(n);var l=e.length;t.forEach((function(e){s.variables[l]=e.minVar=new w(l++,void 0!==e.stiffness?e.stiffness:.01),s.variables[l]=e.maxVar=new w(l++,void 0!==e.stiffness?e.stiffness:.01)}))}}return e.prototype.createSeparation=function(e){return new r.Constraint(this.nodes[e.left].variable,this.nodes[e.right].variable,e.gap,void 0!==e.equality&&e.equality)},e.prototype.makeFeasible=function(e){var t=this;if(this.avoidOverlaps){var n="x",r="width";"x"===e.axis&&(n="y",r="height");var i=e.offsets.map((function(e){return t.nodes[e.node]})).sort((function(e,t){return e[n]-t[n]})),o=null;i.forEach((function(e){if(o){var t=o[n]+o[r];t>e[n]&&(e[n]=t)}o=e}))}},e.prototype.createAlignment=function(e){var t=this,n=this.nodes[e.offsets[0].node].variable;this.makeFeasible(e);var i="x"===e.axis?this.xConstraints:this.yConstraints;e.offsets.slice(1).forEach((function(e){i.push(new r.Constraint(n,t.nodes[e.node].variable,e.offset,!0))}))},e.prototype.createConstraints=function(e){var t=this,n=function(e){return void 0===e.type||"separation"===e.type};this.xConstraints=e.filter((function(e){return"x"===e.axis&&n(e)})).map((function(e){return t.createSeparation(e)})),this.yConstraints=e.filter((function(e){return"y"===e.axis&&n(e)})).map((function(e){return t.createSeparation(e)})),e.filter((function(e){return"alignment"===e.type})).forEach((function(e){return t.createAlignment(e)}))},e.prototype.setupVariablesAndBounds=function(e,t,n,r){this.nodes.forEach((function(i,o){i.fixed?(i.variable.weight=i.fixedWeight?i.fixedWeight:1e3,n[o]=r(i)):i.variable.weight=1;var s=(i.width||0)/2,l=(i.height||0)/2,c=e[o],d=t[o];i.bounds=new a(c-s,c+s,d-l,d+l)}))},e.prototype.xProject=function(e,t,n){(this.rootGroup||this.avoidOverlaps||this.xConstraints)&&this.project(e,t,e,n,(function(e){return e.px}),this.xConstraints,m,(function(e){return e.bounds.setXCentre(n[e.variable.index]=e.variable.position())}),(function(e){var t=n[e.minVar.index]=e.minVar.position(),r=n[e.maxVar.index]=e.maxVar.position(),i=e.padding/2;e.bounds.x=t-i,e.bounds.X=r+i}))},e.prototype.yProject=function(e,t,n){(this.rootGroup||this.yConstraints)&&this.project(e,t,t,n,(function(e){return e.py}),this.yConstraints,b,(function(e){return e.bounds.setYCentre(n[e.variable.index]=e.variable.position())}),(function(e){var t=n[e.minVar.index]=e.minVar.position(),r=n[e.maxVar.index]=e.maxVar.position(),i=e.padding/2;e.bounds.y=t-i,e.bounds.Y=r+i}))},e.prototype.projectFunctions=function(){var e=this;return[function(t,n,r){return e.xProject(t,n,r)},function(t,n,r){return e.yProject(t,n,r)}]},e.prototype.project=function(e,t,n,r,i,a,s,l,c){this.setupVariablesAndBounds(e,t,r,i),this.rootGroup&&this.avoidOverlaps&&(o(this.rootGroup),a=a.concat(s(this.rootGroup))),this.solve(this.variables,a,n,r),this.nodes.forEach(l),this.rootGroup&&this.avoidOverlaps&&(this.groups.forEach(c),o(this.rootGroup))},e.prototype.solve=function(e,t,n,i){var o=new r.Solver(e,t);o.setStartingPositions(n),o.setDesiredPositions(i),o.solve()},e}()})),tf=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=function(){function e(e){this.elem=e,this.subheaps=[]}return e.prototype.toString=function(e){for(var t="",n=!1,r=0;r<this.subheaps.length;++r){var i=this.subheaps[r];i.elem?(n&&(t+=","),t+=i.toString(e),n=!0):n=!1}return""!==t&&(t="("+t+")"),(this.elem?e(this.elem):"")+t},e.prototype.forEach=function(e){this.empty()||(e(this.elem,this),this.subheaps.forEach((function(t){return t.forEach(e)})))},e.prototype.count=function(){return this.empty()?0:1+this.subheaps.reduce((function(e,t){return e+t.count()}),0)},e.prototype.min=function(){return this.elem},e.prototype.empty=function(){return null==this.elem},e.prototype.contains=function(e){if(this===e)return!0;for(var t=0;t<this.subheaps.length;t++)if(this.subheaps[t].contains(e))return!0;return!1},e.prototype.isHeap=function(e){var t=this;return this.subheaps.every((function(n){return e(t.elem,n.elem)&&n.isHeap(e)}))},e.prototype.insert=function(t,n){return this.merge(new e(t),n)},e.prototype.merge=function(e,t){return this.empty()?e:e.empty()?this:t(this.elem,e.elem)?(this.subheaps.push(e),this):(e.subheaps.push(this),e)},e.prototype.removeMin=function(e){return this.empty()?null:this.mergePairs(e)},e.prototype.mergePairs=function(t){if(0==this.subheaps.length)return new e(null);if(1==this.subheaps.length)return this.subheaps[0];var n=this.subheaps.pop().merge(this.subheaps.pop(),t),r=this.mergePairs(t);return n.merge(r,t)},e.prototype.decreaseKey=function(t,n,r,i){var o=t.removeMin(i);t.elem=o.elem,t.subheaps=o.subheaps,null!==r&&null!==o.elem&&r(t.elem,t);var a=new e(n);return null!==r&&r(n,a),this.merge(a,i)},e}();e.PairingHeap=t,e.PriorityQueue=function(){function e(e){this.lessThan=e}return e.prototype.top=function(){return this.empty()?null:this.root.elem},e.prototype.push=function(){for(var e,n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];for(var i,o=0;i=n[o];++o)e=new t(i),this.root=this.empty()?e:this.root.merge(e,this.lessThan);return e},e.prototype.empty=function(){return!this.root||!this.root.elem},e.prototype.isHeap=function(){return this.root.isHeap(this.lessThan)},e.prototype.forEach=function(e){this.root.forEach(e)},e.prototype.pop=function(){if(this.empty())return null;var e=this.root.min();return this.root=this.root.removeMin(this.lessThan),e},e.prototype.reduceKey=function(e,t,n){void 0===n&&(n=null),this.root=this.root.decreaseKey(e,t,n,this.lessThan)},e.prototype.toString=function(e){return this.root.toString(e)},e.prototype.count=function(){return this.root.count()},e}()})),nf=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=tf(),n=function(e,t){this.id=e,this.distance=t},r=function(e){this.id=e,this.neighbours=[]},i=function(e,t,n){this.node=e,this.prev=t,this.d=n};e.Calculator=function(){function e(e,t,i,o,a){this.n=e,this.es=t,this.neighbours=new Array(this.n);for(var s=this.n;s--;)this.neighbours[s]=new r(s);for(s=this.es.length;s--;){var l=this.es[s],c=i(l),d=o(l),u=a(l);this.neighbours[c].neighbours.push(new n(d,u)),this.neighbours[d].neighbours.push(new n(c,u))}}return e.prototype.DistanceMatrix=function(){for(var e=new Array(this.n),t=0;t<this.n;++t)e[t]=this.dijkstraNeighbours(t);return e},e.prototype.DistancesFromNode=function(e){return this.dijkstraNeighbours(e)},e.prototype.PathFromNodeToNode=function(e,t){return this.dijkstraNeighbours(e,t)},e.prototype.PathFromNodeToNodeWithPrevCost=function(e,n,r){var o=new t.PriorityQueue((function(e,t){return e.d<=t.d})),a=this.neighbours[e],s=new i(a,null,0),l={};for(o.push(s);!o.empty()&&(a=(s=o.pop()).node).id!==n;)for(var c=a.neighbours.length;c--;){var d=a.neighbours[c],u=this.neighbours[d.id];if(!s.prev||u.id!==s.prev.node.id){var h=u.id+","+a.id;if(!(h in l&&l[h]<=s.d)){var f=s.prev?r(s.prev.node.id,a.id,u.id):0,p=s.d+d.distance+f;l[h]=p,o.push(new i(u,s,p))}}}for(var g=[];s.prev;)g.push((s=s.prev).node.id);return g},e.prototype.dijkstraNeighbours=function(e,n){void 0===n&&(n=-1);for(var r=new t.PriorityQueue((function(e,t){return e.d<=t.d})),i=this.neighbours.length,o=new Array(i);i--;){var a=this.neighbours[i];a.d=i===e?0:Number.POSITIVE_INFINITY,a.q=r.push(a)}for(;!r.empty();){var s=r.pop();if(o[s.id]=s.d,s.id===n){for(var l=[],c=s;void 0!==c.prev;)l.push(c.prev.id),c=c.prev;return l}for(i=s.neighbours.length;i--;){var d=s.neighbours[i],u=(c=this.neighbours[d.id],s.d+d.distance);s.d!==Number.MAX_VALUE&&c.d>u&&(c.d=u,c.prev=s,r.reduceKey(c.q,c,(function(e,t){return e.q=t})))}}return o},e}()})),rf=I((e=>{var t,n=e&&e.__extends||(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var r=ef(),i=function(){};e.Point=i;var o=function(e,t,n,r){this.x1=e,this.y1=t,this.x2=n,this.y2=r};function a(e,t,n){return(t.x-e.x)*(n.y-e.y)-(n.x-e.x)*(t.y-e.y)}function s(e,t,n){return a(e,t,n)>0}function l(e,t,n){return a(e,t,n)<0}function c(e,t){var n,r,i,o,a=t.length-1;if(l(e,t[1],t[0])&&!s(e,t[a-1],t[0]))return 0;for(n=0,r=a;;){if(r-n==1)return s(e,t[n],t[r])?n:r;if((o=l(e,t[(i=Math.floor((n+r)/2))+1],t[i]))&&!s(e,t[i-1],t[i]))return i;s(e,t[n+1],t[n])?o||s(e,t[n],t[i])?r=i:n=i:o&&l(e,t[n],t[i])?r=i:n=i}}function d(e,t){var n,r,i,o,a=t.length-1;if(s(e,t[a-1],t[0])&&!l(e,t[1],t[0]))return 0;for(n=0,r=a;;){if(r-n==1)return l(e,t[n],t[r])?n:r;if(o=l(e,t[(i=Math.floor((n+r)/2))+1],t[i]),s(e,t[i-1],t[i])&&!o)return i;l(e,t[n+1],t[n])?o?l(e,t[n],t[i])?r=i:n=i:r=i:o?n=i:s(e,t[n],t[i])?r=i:n=i}}function u(e,t,n,r,i,o){for(var a=n(t[0],e),s=r(e[a],t),l=!1;!l;){for(l=!0;a===e.length-1&&(a=0),!i(t[s],e[a],e[a+1]);)++a;for(;0===s&&(s=t.length-1),!o(e[a],t[s],t[s-1]);)--s,l=!1}return{t1:a,t2:s}}function h(e,t){return u(e,t,c,d,s,l)}e.LineSegment=o,e.PolyPoint=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(i),e.isLeft=a,e.ConvexHull=function(e){var t,n=e.slice(0).sort((function(e,t){return e.x!==t.x?t.x-e.x:t.y-e.y})),r=e.length,i=n[0].x;for(t=1;t<r&&n[t].x===i;++t);var o=t-1,s=[];if(s.push(n[0]),o===r-1)n[o].y!==n[0].y&&s.push(n[o]);else{var l,c=r-1,d=n[r-1].x;for(t=r-2;t>=0&&n[t].x===d;t--);for(l=t+1,t=o;++t<=l;)if(!(a(n[0],n[l],n[t])>=0&&t<l)){for(;s.length>1&&!(a(s[s.length-2],s[s.length-1],n[t])>0);)s.length-=1;0!=t&&s.push(n[t])}c!=l&&s.push(n[c]);var u=s.length;for(t=l;--t>=o;)if(!(a(n[c],n[o],n[t])>=0&&t>o)){for(;s.length>u&&!(a(s[s.length-2],s[s.length-1],n[t])>0);)s.length-=1;0!=t&&s.push(n[t])}}return s},e.clockwiseRadialSweep=function(e,t,n){t.slice(0).sort((function(t,n){return Math.atan2(t.y-e.y,t.x-e.x)-Math.atan2(n.y-e.y,n.x-e.x)})).forEach(n)},e.tangent_PolyPolyC=u,e.LRtangent_PolyPolyC=function(e,t){var n=h(t,e);return{t1:n.t2,t2:n.t1}},e.RLtangent_PolyPolyC=h,e.LLtangent_PolyPolyC=function(e,t){return u(e,t,d,d,l,l)},e.RRtangent_PolyPolyC=function(e,t){return u(e,t,c,c,s,s)};var f=function(e,t){this.t1=e,this.t2=t};e.BiTangent=f;var p=function(){};e.BiTangents=p,e.TVGPoint=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(i);var g=function(e,t,n,r){this.id=e,this.polyid=t,this.polyvertid=n,this.p=r,r.vv=this};e.VisibilityVertex=g;var v=function(){function e(e,t){this.source=e,this.target=t}return e.prototype.length=function(){var e=this.source.p.x-this.target.p.x,t=this.source.p.y-this.target.p.y;return Math.sqrt(e*e+t*t)},e}();function m(e,t){for(var n=[],i=1,o=t.length;i<o;++i){var a=r.Rectangle.lineIntersection(e.x1,e.y1,e.x2,e.y2,t[i-1].x,t[i-1].y,t[i].x,t[i].y);a&&n.push(a)}return n}function b(e,t){for(var n=e.length-1,r=t.length-1,i=new p,o=0;o<n;++o)for(var s=0;s<r;++s){var l=e[0==o?n-1:o-1],c=e[o],d=e[o+1],u=t[0==s?r-1:s-1],h=t[s],g=t[s+1],v=a(l,c,h),m=a(c,u,h),b=a(c,h,g),w=a(u,h,c),y=a(h,l,c),_=a(h,c,d);v>=0&&m>=0&&b<0&&w>=0&&y>=0&&_<0?i.ll=new f(o,s):v<=0&&m<=0&&b>0&&w<=0&&y<=0&&_>0?i.rr=new f(o,s):v<=0&&m>0&&b<=0&&w>=0&&y<0&&_>=0?i.rl=new f(o,s):v>=0&&m<0&&b>=0&&w<=0&&y>0&&_<=0&&(i.lr=new f(o,s))}return i}function w(e,t){return!e.every((function(e){return!function(e,t){for(var n=1,r=t.length;n<r;++n)if(l(t[n-1],t[n],e))return!1;return!0}(e,t)}))}e.VisibilityEdge=v,e.TangentVisibilityGraph=function(){function e(e,t){if(this.P=e,this.V=[],this.E=[],t)this.V=t.V.slice(0),this.E=t.E.slice(0);else{for(var n=e.length,r=0;r<n;r++){for(var i=e[r],o=0;o<i.length;++o){var a=new g(this.V.length,r,o,i[o]);this.V.push(a),o>0&&this.E.push(new v(i[o-1].vv,a))}i.length>1&&this.E.push(new v(i[0].vv,i[i.length-1].vv))}for(r=0;r<n-1;r++){var s=e[r];for(o=r+1;o<n;o++){var l=e[o],c=b(s,l);for(var d in c){var u=c[d];this.addEdgeIfVisible(s[u.t1],l[u.t2],r,o)}}}}}return e.prototype.addEdgeIfVisible=function(e,t,n,r){this.intersectsPolys(new o(e.x,e.y,t.x,t.y),n,r)||this.E.push(new v(e.vv,t.vv))},e.prototype.addPoint=function(e,t){var n,r,i,o=this.P.length;this.V.push(new g(this.V.length,o,0,e));for(var a=0;a<o;++a)if(a!==t){var s=this.P[a],l=(n=e,i=void 0,(i=(r=s).slice(0)).push(r[0]),{rtan:c(n,i),ltan:d(n,i)});this.addEdgeIfVisible(e,s[l.ltan],t,a),this.addEdgeIfVisible(e,s[l.rtan],t,a)}return e.vv},e.prototype.intersectsPolys=function(e,t,n){for(var r=0,i=this.P.length;r<i;++r)if(r!=t&&r!=n&&m(e,this.P[r]).length>0)return!0;return!1},e}(),e.tangents=b,e.polysOverlap=function(e,t){if(w(e,t))return!0;if(w(t,e))return!0;for(var n=1,r=e.length;n<r;++n){var i=e[n],a=e[n-1];if(m(new o(a.x,a.y,i.x,i.y),t).length>0)return!0}return!1}})),of=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=10,n=(1+Math.sqrt(5))/2,r=1e-4;e.applyPacking=function(e,i,o,a,s,l){void 0===s&&(s=1),void 0===l&&(l=!0);var c=i,d=o,u=(s=void 0!==s?s:1,a=void 0!==a?a:0,0),h=0,f=0,p=0,g=[];function v(e,t){g=[],u=0,h=0,p=0;for(var n=0;n<e.length;n++)m(e[n],t);return Math.abs(u/h-s)}function m(e,n){for(var i=void 0,o=0;o<g.length;o++)if(g[o].space_left>=e.height&&g[o].x+g[o].width+e.width+t-n<=r){i=g[o];break}g.push(e),void 0!==i?(e.x=i.x+i.width+t,e.y=i.bottom,e.space_left=e.height,e.bottom=e.y,i.space_left-=e.height+t,i.bottom+=e.height+t):(e.y=p,p+=e.height+t,e.x=0,e.bottom=e.y,e.space_left=e.height),e.y+e.height-h>-1e-4&&(h=e.y+e.height-0),e.x+e.width-u>-1e-4&&(u=e.x+e.width-0)}0!=e.length&&(function(e){e.forEach((function(e){var t,n,r,i,o;t=e,n=Number.MAX_VALUE,r=Number.MAX_VALUE,i=0,o=0,t.array.forEach((function(e){var t=void 0!==e.width?e.width:a,s=void 0!==e.height?e.height:a;t/=2,s/=2,i=Math.max(e.x+t,i),n=Math.min(e.x-t,n),o=Math.max(e.y+s,o),r=Math.min(e.y-s,r)})),t.width=i-n,t.height=o-r}))}(e),function(e){var i=Number.POSITIVE_INFINITY,o=0;e.sort((function(e,t){return t.height-e.height}));for(var a=g=f=e.reduce((function(e,t){return e.width<t.width?e.width:t.width})),s=m=function(e){var n=0;return e.forEach((function(e){return n+=e.width+t})),n}(e),l=0,c=Number.MAX_VALUE,d=Number.MAX_VALUE,u=-1,h=Number.MAX_VALUE,p=Number.MAX_VALUE;h>f||p>r;){if(1!=u){var g=s-(s-a)/n;c=v(e,g)}if(0!=u){var m=a+(s-a)/n;d=v(e,m)}if(h=Math.abs(g-m),p=Math.abs(c-d),c<i&&(i=c,o=g),d<i&&(i=d,o=m),c>d?(a=g,g=m,c=d,u=1):(s=m,m=g,d=c,u=0),l++>100)break}v(e,o)}(e),l&&function(e){e.forEach((function(e){var t={x:0,y:0};e.array.forEach((function(e){t.x+=e.x,t.y+=e.y})),t.x/=e.array.length,t.y/=e.array.length;var n=e.x-(t.x-e.width/2)+c/2-u/2,r=e.y-(t.y-e.height/2)+d/2-h/2;e.array.forEach((function(e){e.x+=n,e.y+=r}))}))}(e))},e.separateGraphs=function(e,t){for(var n={},r={},i=[],o=0,a=0;a<t.length;a++){var s=t[a],l=s.source,c=s.target;r[l.index]?r[l.index].push(c):r[l.index]=[c],r[c.index]?r[c.index].push(l):r[c.index]=[l]}for(a=0;a<e.length;a++){var d=e[a];n[d.index]||u(d,!0)}function u(e,t){if(void 0===n[e.index]){t&&(o++,i.push({array:[]})),n[e.index]=o,i[o-1].array.push(e);var a=r[e.index];if(a)for(var s=0;s<a.length;s++)u(a[s],!1)}}return i}})),af=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t,n=Kh(),r=Xh(),i=Qh(),o=ef(),a=nf(),s=rf(),l=of();function c(e){return void 0!==e.leaves||void 0!==e.groups}!function(e){e[e.start=0]="start",e[e.tick=1]="tick",e[e.end=2]="end"}(t=e.EventType||(e.EventType={})),e.Layout=function(){function e(){var t=this;this._canvasSize=[1,1],this._linkDistance=20,this._defaultNodeSize=10,this._linkLengthCalculator=null,this._linkType=null,this._avoidOverlaps=!1,this._handleDisconnected=!0,this._running=!1,this._nodes=[],this._groups=[],this._rootGroup=null,this._links=[],this._constraints=[],this._distanceMatrix=null,this._descent=null,this._directedLinkConstraints=null,this._threshold=.01,this._visibilityGraph=null,this._groupCompactness=1e-6,this.event=null,this.linkAccessor={getSourceIndex:e.getSourceIndex,getTargetIndex:e.getTargetIndex,setLength:e.setLinkLength,getType:function(e){return"function"==typeof t._linkType?t._linkType(e):0}}}return e.prototype.on=function(e,n){return this.event||(this.event={}),"string"==typeof e?this.event[t[e]]=n:this.event[e]=n,this},e.prototype.trigger=function(e){this.event&&void 0!==this.event[e.type]&&this.event[e.type](e)},e.prototype.kick=function(){for(;!this.tick(););},e.prototype.tick=function(){if(this._alpha<this._threshold)return this._running=!1,this.trigger({type:t.end,alpha:this._alpha=0,stress:this._lastStress}),!0;var e,n,r=this._nodes.length;for(this._descent.locks.clear(),n=0;n<r;++n)(e=this._nodes[n]).fixed&&(void 0!==e.px&&void 0!==e.py||(e.px=e.x,e.py=e.y),this._descent.locks.add(n,[e.px,e.py]));var i=this._descent.rungeKutta();return 0===i?this._alpha=0:void 0!==this._lastStress&&(this._alpha=i),this._lastStress=i,this.updateNodePositions(),this.trigger({type:t.tick,alpha:this._alpha,stress:this._lastStress}),!1},e.prototype.updateNodePositions=function(){for(var e,t=this._descent.x[0],n=this._descent.x[1],r=this._nodes.length;r--;)(e=this._nodes[r]).x=t[r],e.y=n[r]},e.prototype.nodes=function(e){if(!e){if(0===this._nodes.length&&this._links.length>0){var t=0;this._links.forEach((function(e){t=Math.max(t,e.source,e.target)})),this._nodes=new Array(++t);for(var n=0;n<t;++n)this._nodes[n]={}}return this._nodes}return this._nodes=e,this},e.prototype.groups=function(e){var t=this;return e?(this._groups=e,this._rootGroup={},this._groups.forEach((function(e){void 0===e.padding&&(e.padding=1),void 0!==e.leaves&&e.leaves.forEach((function(n,r){"number"==typeof n&&((e.leaves[r]=t._nodes[n]).parent=e)})),void 0!==e.groups&&e.groups.forEach((function(n,r){"number"==typeof n&&((e.groups[r]=t._groups[n]).parent=e)}))})),this._rootGroup.leaves=this._nodes.filter((function(e){return void 0===e.parent})),this._rootGroup.groups=this._groups.filter((function(e){return void 0===e.parent})),this):this._groups},e.prototype.powerGraphGroups=function(e){var t=n.getGroups(this._nodes,this._links,this.linkAccessor,this._rootGroup);return this.groups(t.groups),e(t),this},e.prototype.avoidOverlaps=function(e){return arguments.length?(this._avoidOverlaps=e,this):this._avoidOverlaps},e.prototype.handleDisconnected=function(e){return arguments.length?(this._handleDisconnected=e,this):this._handleDisconnected},e.prototype.flowLayout=function(e,t){return arguments.length||(e="y"),this._directedLinkConstraints={axis:e,getMinSeparation:"number"==typeof t?function(){return t}:t},this},e.prototype.links=function(e){return arguments.length?(this._links=e,this):this._links},e.prototype.constraints=function(e){return arguments.length?(this._constraints=e,this):this._constraints},e.prototype.distanceMatrix=function(e){return arguments.length?(this._distanceMatrix=e,this):this._distanceMatrix},e.prototype.size=function(e){return e?(this._canvasSize=e,this):this._canvasSize},e.prototype.defaultNodeSize=function(e){return e?(this._defaultNodeSize=e,this):this._defaultNodeSize},e.prototype.groupCompactness=function(e){return e?(this._groupCompactness=e,this):this._groupCompactness},e.prototype.linkDistance=function(e){return e?(this._linkDistance="function"==typeof e?e:+e,this._linkLengthCalculator=null,this):this._linkDistance},e.prototype.linkType=function(e){return this._linkType=e,this},e.prototype.convergenceThreshold=function(e){return e?(this._threshold="function"==typeof e?e:+e,this):this._threshold},e.prototype.alpha=function(e){return arguments.length?(e=+e,this._alpha?this._alpha=e>0?e:0:e>0&&(this._running||(this._running=!0,this.trigger({type:t.start,alpha:this._alpha=e}),this.kick())),this):this._alpha},e.prototype.getLinkLength=function(e){return"function"==typeof this._linkDistance?+this._linkDistance(e):this._linkDistance},e.setLinkLength=function(e,t){e.length=t},e.prototype.getLinkType=function(e){return"function"==typeof this._linkType?this._linkType(e):0},e.prototype.symmetricDiffLinkLengths=function(e,t){var n=this;return void 0===t&&(t=1),this.linkDistance((function(t){return e*t.length})),this._linkLengthCalculator=function(){return r.symmetricDiffLinkLengths(n._links,n.linkAccessor,t)},this},e.prototype.jaccardLinkLengths=function(e,t){var n=this;return void 0===t&&(t=1),this.linkDistance((function(t){return e*t.length})),this._linkLengthCalculator=function(){return r.jaccardLinkLengths(n._links,n.linkAccessor,t)},this},e.prototype.start=function(t,n,s,l,c,d){var u=this;void 0===t&&(t=0),void 0===n&&(n=0),void 0===s&&(s=0),void 0===l&&(l=0),void 0===c&&(c=!0),void 0===d&&(d=!0);var h,f=this.nodes().length,p=f+2*this._groups.length,g=this._canvasSize[0],v=this._canvasSize[1],m=new Array(p),b=new Array(p),w=null,y=this._avoidOverlaps;this._nodes.forEach((function(e,t){e.index=t,void 0===e.x&&(e.x=g/2,e.y=v/2),m[t]=e.x,b[t]=e.y})),this._linkLengthCalculator&&this._linkLengthCalculator(),this._distanceMatrix?h=this._distanceMatrix:(h=new a.Calculator(p,this._links,e.getSourceIndex,e.getTargetIndex,(function(e){return u.getLinkLength(e)})).DistanceMatrix(),w=i.Descent.createSquareMatrix(p,(function(){return 2})),this._links.forEach((function(e){"number"==typeof e.source&&(e.source=u._nodes[e.source]),"number"==typeof e.target&&(e.target=u._nodes[e.target])})),this._links.forEach((function(t){var n=e.getSourceIndex(t),r=e.getTargetIndex(t);w[n][r]=w[r][n]=t.weight||1})));var _=i.Descent.createSquareMatrix(p,(function(e,t){return h[e][t]}));if(this._rootGroup&&void 0!==this._rootGroup.groups){var k=f;this._groups.forEach((function(){!function(e,t,n){w[e][t]=w[t][e]=n,_[e][t]=_[t][e]=.1}(k,k+1,u._groupCompactness),m[k]=0,b[k++]=0,m[k]=0,b[k++]=0}))}else this._rootGroup={leaves:this._nodes,groups:[]};var x=this._constraints||[];for(this._directedLinkConstraints&&(this.linkAccessor.getMinSeparation=this._directedLinkConstraints.getMinSeparation,x=x.concat(r.generateDirectedEdgeConstraints(f,this._links,this._directedLinkConstraints.axis,this.linkAccessor))),this.avoidOverlaps(!1),this._descent=new i.Descent([m,b],_),this._descent.locks.clear(),k=0;k<f;++k){var S=this._nodes[k];S.fixed&&(S.px=S.x,S.py=S.y,this._descent.locks.add(k,[S.x,S.y]))}if(this._descent.threshold=this._threshold,this.initialLayout(t,m,b),x.length>0&&(this._descent.project=new o.Projection(this._nodes,this._groups,this._rootGroup,x).projectFunctions()),this._descent.run(n),this.separateOverlappingComponents(g,v,d),this.avoidOverlaps(y),y&&(this._nodes.forEach((function(e,t){e.x=m[t],e.y=b[t]})),this._descent.project=new o.Projection(this._nodes,this._groups,this._rootGroup,x,!0).projectFunctions(),this._nodes.forEach((function(e,t){m[t]=e.x,b[t]=e.y}))),this._descent.G=w,this._descent.run(s),l){this._descent.snapStrength=1e3,this._descent.snapGridSize=this._nodes[0].width,this._descent.numGridSnapNodes=f,this._descent.scaleSnapByMaxH=f!=p;var C=i.Descent.createSquareMatrix(p,(function(e,t){return e>=f||t>=f?w[e][t]:0}));this._descent.G=C,this._descent.run(l)}return this.updateNodePositions(),this.separateOverlappingComponents(g,v,d),c?this.resume():this},e.prototype.initialLayout=function(t,n,r){if(this._groups.length>0&&t>0){var i=this._nodes.length,o=this._links.map((function(e){return{source:e.source.index,target:e.target.index}})),a=this._nodes.map((function(e){return{index:e.index}}));this._groups.forEach((function(e,t){a.push({index:e.index=i+t})})),this._groups.forEach((function(e){void 0!==e.leaves&&e.leaves.forEach((function(t){return o.push({source:e.index,target:t.index})})),void 0!==e.groups&&e.groups.forEach((function(t){return o.push({source:e.index,target:t.index})}))})),(new e).size(this.size()).nodes(a).links(o).avoidOverlaps(!1).linkDistance(this.linkDistance()).symmetricDiffLinkLengths(5).convergenceThreshold(1e-4).start(t,0,0,0,!1),this._nodes.forEach((function(e){n[e.index]=a[e.index].x,r[e.index]=a[e.index].y}))}else this._descent.run(t)},e.prototype.separateOverlappingComponents=function(e,t,n){var r=this;if(void 0===n&&(n=!0),!this._distanceMatrix&&this._handleDisconnected){var i=this._descent.x[0],o=this._descent.x[1];this._nodes.forEach((function(e,t){e.x=i[t],e.y=o[t]}));var a=l.separateGraphs(this._nodes,this._links);l.applyPacking(a,e,t,this._defaultNodeSize,1,n),this._nodes.forEach((function(e,t){r._descent.x[0][t]=e.x,r._descent.x[1][t]=e.y,e.bounds&&(e.bounds.setXCentre(e.x),e.bounds.setYCentre(e.y))}))}},e.prototype.resume=function(){return this.alpha(.1)},e.prototype.stop=function(){return this.alpha(0)},e.prototype.prepareEdgeRouting=function(e){void 0===e&&(e=0),this._visibilityGraph=new s.TangentVisibilityGraph(this._nodes.map((function(t){return t.bounds.inflate(-e).vertices()})))},e.prototype.routeEdge=function(e,t,n){void 0===t&&(t=5);var r=[],i=new s.TangentVisibilityGraph(this._visibilityGraph.P,{V:this._visibilityGraph.V,E:this._visibilityGraph.E}),l={x:e.source.x,y:e.source.y},c={x:e.target.x,y:e.target.y},d=i.addPoint(l,e.source.index),u=i.addPoint(c,e.target.index);i.addEdgeIfVisible(l,c,e.source.index,e.target.index),void 0!==n&&n(i);var h=new a.Calculator(i.V.length,i.E,(function(e){return e.source.id}),(function(e){return e.target.id}),(function(e){return e.length()})).PathFromNodeToNode(d.id,u.id);if(1===h.length||h.length===i.V.length){var f=o.makeEdgeBetween(e.source.innerBounds,e.target.innerBounds,t);r=[f.sourceIntersection,f.arrowStart]}else{for(var p=h.length-2,g=i.V[h[p]].p,v=i.V[h[0]].p,m=(r=[e.source.innerBounds.rayIntersection(g.x,g.y)],p);m>=0;--m)r.push(i.V[h[m]].p);r.push(o.makeEdgeTo(v,e.target.innerBounds,t))}return r},e.getSourceIndex=function(e){return"number"==typeof e.source?e.source:e.source.index},e.getTargetIndex=function(e){return"number"==typeof e.target?e.target:e.target.index},e.linkId=function(t){return e.getSourceIndex(t)+"-"+e.getTargetIndex(t)},e.dragStart=function(t){c(t)?e.storeOffset(t,e.dragOrigin(t)):(e.stopNode(t),t.fixed|=2)},e.stopNode=function(e){e.px=e.x,e.py=e.y},e.storeOffset=function(t,n){void 0!==t.leaves&&t.leaves.forEach((function(t){t.fixed|=2,e.stopNode(t),t._dragGroupOffsetX=t.x-n.x,t._dragGroupOffsetY=t.y-n.y})),void 0!==t.groups&&t.groups.forEach((function(t){return e.storeOffset(t,n)}))},e.dragOrigin=function(e){return c(e)?{x:e.bounds.cx(),y:e.bounds.cy()}:e},e.drag=function(t,n){c(t)?(void 0!==t.leaves&&t.leaves.forEach((function(e){t.bounds.setXCentre(n.x),t.bounds.setYCentre(n.y),e.px=e._dragGroupOffsetX+n.x,e.py=e._dragGroupOffsetY+n.y})),void 0!==t.groups&&t.groups.forEach((function(t){return e.drag(t,n)}))):(t.px=n.x,t.py=n.y)},e.dragEnd=function(t){c(t)?(void 0!==t.leaves&&t.leaves.forEach((function(t){e.dragEnd(t),delete t._dragGroupOffsetX,delete t._dragGroupOffsetY})),void 0!==t.groups&&t.groups.forEach(e.dragEnd)):t.fixed&=-7},e.mouseOver=function(e){e.fixed|=4,e.px=e.x,e.py=e.y},e.mouseOut=function(e){e.fixed&=-5},e}()})),sf=I((e=>{var t,n=e&&e.__extends||(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var r=af(),i=function(e){function t(t){var n=e.call(this)||this,i=t;return i.trigger&&(n.trigger=i.trigger),i.kick&&(n.kick=i.kick),i.drag&&(n.drag=i.drag),i.on&&(n.on=i.on),n.dragstart=n.dragStart=r.Layout.dragStart,n.dragend=n.dragEnd=r.Layout.dragEnd,n}return n(t,e),t.prototype.trigger=function(){},t.prototype.kick=function(){},t.prototype.drag=function(){},t.prototype.on=function(){return this},t}(r.Layout);e.LayoutAdaptor=i,e.adaptor=function(e){return new i(e)}})),lf=I((e=>{var t,n=e&&e.__extends||(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var r=af(),i=function(e){function t(){var t=e.call(this)||this;t.event=d3.dispatch(r.EventType[r.EventType.start],r.EventType[r.EventType.tick],r.EventType[r.EventType.end]);var n=t;return t.drag=function(){if(!e)var e=d3.behavior.drag().origin(r.Layout.dragOrigin).on("dragstart.d3adaptor",r.Layout.dragStart).on("drag.d3adaptor",(function(e){r.Layout.drag(e,d3.event),n.resume()})).on("dragend.d3adaptor",r.Layout.dragEnd);if(!arguments.length)return e;this.call(e)},t}return n(t,e),t.prototype.trigger=function(e){var t={type:r.EventType[e.type],alpha:e.alpha,stress:e.stress};this.event[t.type](t)},t.prototype.kick=function(){var t=this;d3.timer((function(){return e.prototype.tick.call(t)}))},t.prototype.on=function(e,t){return this.event.on("string"==typeof e?e:r.EventType[e],t),this},t}(r.Layout);e.D3StyleLayoutAdaptor=i,e.d3adaptor=function(){return new i}})),cf=I((e=>{var t,n=e&&e.__extends||(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)});Object.defineProperty(e,"__esModule",{value:!0});var r=af();e.D3StyleLayoutAdaptor=function(e){function t(t){var n=e.call(this)||this;n.d3Context=t,n.event=t.dispatch(r.EventType[r.EventType.start],r.EventType[r.EventType.tick],r.EventType[r.EventType.end]);var i=n;return n.drag=function(){if(!e)var e=t.drag().subject(r.Layout.dragOrigin).on("start.d3adaptor",r.Layout.dragStart).on("drag.d3adaptor",(function(e){r.Layout.drag(e,t.event),i.resume()})).on("end.d3adaptor",r.Layout.dragEnd);if(!arguments.length)return e;arguments[0].call(e)},n}return n(t,e),t.prototype.trigger=function(e){var t={type:r.EventType[e.type],alpha:e.alpha,stress:e.stress};this.event.call(t.type,t)},t.prototype.kick=function(){var t=this,n=this.d3Context.timer((function(){return e.prototype.tick.call(t)&&n.stop()}))},t.prototype.on=function(e,t){return this.event.on("string"==typeof e?e:r.EventType[e],t),this},t}(r.Layout)})),df=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=lf(),n=cf();e.d3adaptor=function(e){return!e||function(e){return e.version&&null!==e.version.match(/^3\./)}(e)?new t.D3StyleLayoutAdaptor:new n.D3StyleLayoutAdaptor(e)}})),uf=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ef(),n=Yh(),r=nf(),i=function(e,t,n){this.id=e,this.rect=t,this.children=n,this.leaf=void 0===n||0===n.length};e.NodeWrapper=i;var o=function(e,t,n,r,i){void 0===r&&(r=null),void 0===i&&(i=null),this.id=e,this.x=t,this.y=n,this.node=r,this.line=i};e.Vert=o;var a=function(){function e(t,n){this.s=t,this.t=n;var r=e.findMatch(t,n),i=n.slice(0).reverse(),o=e.findMatch(t,i);r.length>=o.length?(this.length=r.length,this.si=r.si,this.ti=r.ti,this.reversed=!1):(this.length=o.length,this.si=o.si,this.ti=n.length-o.ti-o.length,this.reversed=!0)}return e.findMatch=function(e,t){for(var n=e.length,r=t.length,i={length:0,si:-1,ti:-1},o=new Array(n),a=0;a<n;a++){o[a]=new Array(r);for(var s=0;s<r;s++)if(e[a]===t[s]){var l=o[a][s]=0===a||0===s?1:o[a-1][s-1]+1;l>i.length&&(i.length=l,i.si=a-l+1,i.ti=s-l+1)}else o[a][s]=0}return i},e.prototype.getSequence=function(){return this.length>=0?this.s.slice(this.si,this.si+this.length):[]},e}();e.LongestCommonSubsequence=a,e.GridRouter=function(){function e(e,n,r){void 0===r&&(r=12);var a=this;this.originalnodes=e,this.groupPadding=r,this.leaves=null,this.nodes=e.map((function(e,t){return new i(t,n.getBounds(e),n.getChildren(e))})),this.leaves=this.nodes.filter((function(e){return e.leaf})),this.groups=this.nodes.filter((function(e){return!e.leaf})),this.cols=this.getGridLines("x"),this.rows=this.getGridLines("y"),this.groups.forEach((function(e){return e.children.forEach((function(t){return a.nodes[t].parent=e}))})),this.root={children:[]},this.nodes.forEach((function(e){void 0===e.parent&&(e.parent=a.root,a.root.children.push(e.id)),e.ports=[]})),this.backToFront=this.nodes.slice(0),this.backToFront.sort((function(e,t){return a.getDepth(e)-a.getDepth(t)})),this.backToFront.slice(0).reverse().filter((function(e){return!e.leaf})).forEach((function(e){var n=t.Rectangle.empty();e.children.forEach((function(e){return n=n.union(a.nodes[e].rect)})),e.rect=n.inflate(a.groupPadding)}));var s=this.midPoints(this.cols.map((function(e){return e.pos}))),l=this.midPoints(this.rows.map((function(e){return e.pos}))),c=s[0],d=s[s.length-1],u=l[0],h=l[l.length-1],f=this.rows.map((function(e){return{x1:c,x2:d,y1:e.pos,y2:e.pos}})).concat(l.map((function(e){return{x1:c,x2:d,y1:e,y2:e}}))),p=this.cols.map((function(e){return{x1:e.pos,x2:e.pos,y1:u,y2:h}})).concat(s.map((function(e){return{x1:e,x2:e,y1:u,y2:h}}))),g=f.concat(p);g.forEach((function(e){return e.verts=[]})),this.verts=[],this.edges=[],f.forEach((function(e){return p.forEach((function(t){var n=new o(a.verts.length,t.x1,e.y1);e.verts.push(n),t.verts.push(n),a.verts.push(n);for(var r=a.backToFront.length;r-- >0;){var i=a.backToFront[r],s=i.rect,l=Math.abs(n.x-s.cx()),c=Math.abs(n.y-s.cy());if(l<s.width()/2&&c<s.height()/2){n.node=i;break}}}))})),g.forEach((function(e){a.nodes.forEach((function(t){t.rect.lineIntersections(e.x1,e.y1,e.x2,e.y2).forEach((function(n){var r=new o(a.verts.length,n.x,n.y,t,e);a.verts.push(r),e.verts.push(r),t.ports.push(r)}))}));var t=Math.abs(e.y1-e.y2)<.1,n=function(e,n){return t?n.x-e.x:n.y-e.y};e.verts.sort(n);for(var r=1;r<e.verts.length;r++){var i=e.verts[r-1],s=e.verts[r];i.node&&i.node===s.node&&i.node.leaf||a.edges.push({source:i.id,target:s.id,length:Math.abs(n(i,s))})}}))}return e.prototype.avg=function(e){return e.reduce((function(e,t){return e+t}))/e.length},e.prototype.getGridLines=function(e){for(var t=[],n=this.leaves.slice(0,this.leaves.length);n.length>0;){var r=n.filter((function(t){return t.rect["overlap"+e.toUpperCase()](n[0].rect)})),i={nodes:r,pos:this.avg(r.map((function(t){return t.rect["c"+e]()})))};t.push(i),i.nodes.forEach((function(e){return n.splice(n.indexOf(e),1)}))}return t.sort((function(e,t){return e.pos-t.pos})),t},e.prototype.getDepth=function(e){for(var t=0;e.parent!==this.root;)t++,e=e.parent;return t},e.prototype.midPoints=function(e){for(var t=e[1]-e[0],n=[e[0]-t/2],r=1;r<e.length;r++)n.push((e[r]+e[r-1])/2);return n.push(e[e.length-1]+t/2),n},e.prototype.findLineage=function(e){var t=[e];do{t.push(e=e.parent)}while(e!==this.root);return t.reverse()},e.prototype.findAncestorPathBetween=function(e,t){for(var n=this.findLineage(e),r=this.findLineage(t),i=0;n[i]===r[i];)i++;return{commonAncestor:n[i-1],lineages:n.slice(i).concat(r.slice(i))}},e.prototype.siblingObstacles=function(e,t){var n=this,r=this.findAncestorPathBetween(e,t),i={};r.lineages.forEach((function(e){return i[e.id]={}}));var o=r.commonAncestor.children.filter((function(e){return!(e in i)}));return r.lineages.filter((function(e){return e.parent!==r.commonAncestor})).forEach((function(e){return o=o.concat(e.parent.children.filter((function(t){return t!==e.id})))})),o.map((function(e){return n.nodes[e]}))},e.getSegmentSets=function(e,t){for(var n=[],r=0;r<e.length;r++)for(var i=e[r],o=0;o<i.length;o++)(c=i[o]).edgeid=r,c.i=o,Math.abs(c[1][t]-c[0][t])<.1&&n.push(c);n.sort((function(e,n){return e[0][t]-n[0][t]}));for(var a=[],s=null,l=0;l<n.length;l++){var c=n[l];(!s||Math.abs(c[0][t]-s.pos)>.1)&&a.push(s={pos:c[0][t],segments:[]}),s.segments.push(c)}return a},e.nudgeSegs=function(e,t,r,i,o,a){var s=i.length;if(!(s<=1)){for(var l=i.map((function(t){return new n.Variable(t[0][e])})),c=[],d=0;d<s;d++)for(var u=0;u<s;u++)if(d!==u){var h=i[d],f=h.edgeid,p=i[u].edgeid,g=-1,v=-1;"x"==e?o(f,p)&&(h[0][t]<h[1][t]?(g=u,v=d):(g=d,v=u)):o(f,p)&&(h[0][t]<h[1][t]?(g=d,v=u):(g=u,v=d)),g>=0&&c.push(new n.Constraint(l[g],l[v],a))}new n.Solver(l,c).solve(),l.forEach((function(t,n){var o=i[n],a=t.position();o[0][e]=o[1][e]=a;var s=r[o.edgeid];o.i>0&&(s[o.i-1][1][e]=a),o.i<s.length-1&&(s[o.i+1][0][e]=a)}))}},e.nudgeSegments=function(t,n,r,i,o){for(var a=e.getSegmentSets(t,n,r),s=0;s<a.length;s++){for(var l=a[s],c=[],d=0;d<l.segments.length;d++){var u=l.segments[d];c.push({type:0,s:u,pos:Math.min(u[0][r],u[1][r])}),c.push({type:1,s:u,pos:Math.max(u[0][r],u[1][r])})}c.sort((function(e,t){return e.pos-t.pos+e.type-t.type}));var h=[],f=0;c.forEach((function(a){0===a.type?(h.push(a.s),f++):f--,0==f&&(e.nudgeSegs(n,r,t,h,i,o),h=[])}))}},e.prototype.routeEdges=function(t,n,r,i){var o=this,a=t.map((function(e){return o.route(r(e),i(e))})),s=e.orderEdges(a),l=a.map((function(t){return e.makeSegments(t)}));return e.nudgeSegments(l,"x","y",s,n),e.nudgeSegments(l,"y","x",s,n),e.unreverseEdges(l,a),l},e.unreverseEdges=function(e,t){e.forEach((function(e,n){t[n].reversed&&(e.reverse(),e.forEach((function(e){e.reverse()})))}))},e.angleBetween2Lines=function(e,t){var n=Math.atan2(e[0].y-e[1].y,e[0].x-e[1].x),r=Math.atan2(t[0].y-t[1].y,t[0].x-t[1].x),i=n-r;return(i>Math.PI||i<-Math.PI)&&(i=r-n),i},e.isLeft=function(e,t,n){return(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)<=0},e.getOrder=function(e){for(var t={},n=0;n<e.length;n++){var r=e[n];void 0===t[r.l]&&(t[r.l]={}),t[r.l][r.r]=!0}return function(e,n){return void 0!==t[e]&&t[e][n]}},e.orderEdges=function(t){for(var n=[],r=0;r<t.length-1;r++)for(var i=r+1;i<t.length;i++){var o,s,l,c=t[r],d=t[i],u=new a(c,d);0!==u.length&&(u.reversed&&(d.reverse(),d.reversed=!0,u=new a(c,d)),(u.si<=0||u.ti<=0)&&(u.si+u.length>=c.length||u.ti+u.length>=d.length)?n.push({l:r,r:i}):(u.si+u.length>=c.length||u.ti+u.length>=d.length?(o=c[u.si+1],l=c[u.si-1],s=d[u.ti-1]):(o=c[u.si+u.length-2],s=c[u.si+u.length],l=d[u.ti+u.length]),e.isLeft(o,s,l)?n.push({l:i,r}):n.push({l:r,r:i})))}return e.getOrder(n)},e.makeSegments=function(e){function t(e){return{x:e.x,y:e.y}}for(var n=function(e,t,n){return Math.abs((t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x))<.001},r=[],i=t(e[0]),o=1;o<e.length;o++){var a=t(e[o]),s=o<e.length-1?e[o+1]:null;s&&n(i,a,s)||(r.push([i,a]),i=a)}return r},e.prototype.route=function(e,t){var n=this,i=this.nodes[e],o=this.nodes[t];this.obstacles=this.siblingObstacles(i,o);var a={};this.obstacles.forEach((function(e){return a[e.id]=e})),this.passableEdges=this.edges.filter((function(e){var t=n.verts[e.source],r=n.verts[e.target];return!(t.node&&t.node.id in a||r.node&&r.node.id in a)}));for(var s=1;s<i.ports.length;s++)this.passableEdges.push({source:i.ports[0].id,target:i.ports[s].id,length:0});for(s=1;s<o.ports.length;s++)this.passableEdges.push({source:o.ports[0].id,target:o.ports[s].id,length:0});var l=new r.Calculator(this.verts.length,this.passableEdges,(function(e){return e.source}),(function(e){return e.target}),(function(e){return e.length})).PathFromNodeToNodeWithPrevCost(i.ports[0].id,o.ports[0].id,(function(e,t,r){var a=n.verts[e],s=n.verts[t],l=n.verts[r],c=Math.abs(l.x-a.x),d=Math.abs(l.y-a.y);return a.node===i&&a.node===s.node||s.node===o&&s.node===l.node?0:c>1&&d>1?1e3:0})).reverse().map((function(e){return n.verts[e]}));return l.push(this.nodes[o.id].ports[0]),l.filter((function(e,t){return!(t<l.length-1&&l[t+1].node===i&&e.node===i||t>0&&e.node===o&&l[t-1].node===o)}))},e.getRoutePath=function(t,n,r,i){var o,a,s,l,c,d={routepath:"M "+t[0][0].x+" "+t[0][0].y+" ",arrowpath:""};if(t.length>1)for(var u=0;u<t.length;u++){var h=(a=(o=t[u])[1].x)-o[0].x,f=(s=o[1].y)-o[0].y;if(u<t.length-1){Math.abs(h)>0?a-=h/Math.abs(h)*n:s-=f/Math.abs(f)*n,d.routepath+="L "+a+" "+s+" ";var p=t[u+1],g=p[0].x,v=p[0].y;h=p[1].x-g,f=p[1].y-v;var m,b,w=e.angleBetween2Lines(o,p)<0?1:0;Math.abs(h)>0?(m=g+h/Math.abs(h)*n,b=v):(m=g,b=v+f/Math.abs(f)*n);var y=Math.abs(m-a),_=Math.abs(b-s);d.routepath+="A "+y+" "+_+" 0 0 "+w+" "+m+" "+b+" "}else{var k=[a,s];Math.abs(h)>0?(l=[a-=h/Math.abs(h)*i,s+r],c=[a,s-r]):(l=[a+r,s-=f/Math.abs(f)*i],c=[a-r,s]),d.routepath+="L "+a+" "+s+" ",i>0&&(d.arrowpath="M "+k[0]+" "+k[1]+" L "+l[0]+" "+l[1]+" L "+c[0]+" "+c[1])}}else h=(a=(o=t[0])[1].x)-o[0].x,f=(s=o[1].y)-o[0].y,k=[a,s],Math.abs(h)>0?(l=[a-=h/Math.abs(h)*i,s+r],c=[a,s-r]):(l=[a+r,s-=f/Math.abs(f)*i],c=[a-r,s]),d.routepath+="L "+a+" "+s+" ",i>0&&(d.arrowpath="M "+k[0]+" "+k[1]+" L "+l[0]+" "+l[1]+" L "+c[0]+" "+c[1]);return d},e}()})),hf=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=nf(),n=Qh(),r=ef(),i=Xh();e.Link3D=function(){function e(e,t){this.source=e,this.target=t}return e.prototype.actualLength=function(e){var t=this;return Math.sqrt(e.reduce((function(e,n){var r=n[t.target]-n[t.source];return e+r*r}),0))},e}(),e.Node3D=function(e,t,n){void 0===e&&(e=0),void 0===t&&(t=0),void 0===n&&(n=0),this.x=e,this.y=t,this.z=n},e.Layout3D=function(){function e(t,n,r){void 0===r&&(r=1);var i=this;this.nodes=t,this.links=n,this.idealLinkLength=r,this.constraints=null,this.useJaccardLinkLengths=!0,this.result=new Array(e.k);for(var o=0;o<e.k;++o)this.result[o]=new Array(t.length);t.forEach((function(t,n){for(var r=0,o=e.dims;r<o.length;r++){var a=o[r];void 0===t[a]&&(t[a]=Math.random())}i.result[0][n]=t.x,i.result[1][n]=t.y,i.result[2][n]=t.z}))}return e.prototype.linkLength=function(e){return e.actualLength(this.result)},e.prototype.start=function(e){var a=this;void 0===e&&(e=100);var s=this.nodes.length,l=new o;this.useJaccardLinkLengths&&i.jaccardLinkLengths(this.links,l,1.5),this.links.forEach((function(e){return e.length*=a.idealLinkLength}));var c=new t.Calculator(s,this.links,(function(e){return e.source}),(function(e){return e.target}),(function(e){return e.length})).DistanceMatrix(),d=n.Descent.createSquareMatrix(s,(function(e,t){return c[e][t]})),u=n.Descent.createSquareMatrix(s,(function(){return 2}));this.links.forEach((function(e){var t=e.source,n=e.target;return u[t][n]=u[n][t]=1})),this.descent=new n.Descent(this.result,d),this.descent.threshold=.001,this.descent.G=u,this.constraints&&(this.descent.project=new r.Projection(this.nodes,null,null,this.constraints).projectFunctions());for(var h=0;h<this.nodes.length;h++){var f=this.nodes[h];f.fixed&&this.descent.locks.add(h,[f.x,f.y,f.z])}return this.descent.run(e),this},e.prototype.tick=function(){this.descent.locks.clear();for(var e=0;e<this.nodes.length;e++){var t=this.nodes[e];t.fixed&&this.descent.locks.add(e,[t.x,t.y,t.z])}return this.descent.rungeKutta()},e.k=(e.dims=["x","y","z"]).length,e}();var o=function(){function e(){}return e.prototype.getSourceIndex=function(e){return e.source},e.prototype.getTargetIndex=function(e){return e.target},e.prototype.getLength=function(e){return e.length},e.prototype.setLength=function(e,t){e.length=t},e}()})),ff=I((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=af(),n=uf();e.gridify=function(e,t,r,i){return e.cola.start(0,0,0,10,!1),function(e,t,r,i){e.forEach((function(e){e.routerNode={name:e.name,bounds:e.bounds.inflate(-r)}})),t.forEach((function(t){t.routerNode={bounds:t.bounds.inflate(-i),children:(void 0!==t.groups?t.groups.map((function(t){return e.length+t.id})):[]).concat(void 0!==t.leaves?t.leaves.map((function(e){return e.index})):[])}}));var o=e.concat(t).map((function(e,t){return e.routerNode.id=t,e.routerNode}));return new n.GridRouter(o,{getChildren:function(e){return e.children},getBounds:function(e){return e.bounds}},r-i)}(e.cola.nodes(),e.cola.groups(),r,i).routeEdges(e.powerGraph.powerEdges,t,(function(e){return e.source.routerNode.id}),(function(e){return e.target.routerNode.id}))},e.powerGraphGridLayout=function(e,n,r){var i;e.nodes.forEach((function(e,t){return e.index=t})),(new t.Layout).avoidOverlaps(!1).nodes(e.nodes).links(e.links).powerGraphGroups((function(e){(i=e).groups.forEach((function(e){return e.padding=r}))}));var o=e.nodes.length,a=[],s=e.nodes.slice(0);return s.forEach((function(e,t){return e.index=t})),i.groups.forEach((function(e){var t=e.index=e.id+o;s.push(e),void 0!==e.leaves&&e.leaves.forEach((function(e){return a.push({source:t,target:e.index})})),void 0!==e.groups&&e.groups.forEach((function(e){return a.push({source:t,target:e.id+o})}))})),i.powerEdges.forEach((function(e){a.push({source:e.source.index,target:e.target.index})})),(new t.Layout).size(n).nodes(s).links(a).avoidOverlaps(!1).linkDistance(30).symmetricDiffLinkLengths(5).convergenceThreshold(1e-4).start(100,0,0,0,!1),{cola:(new t.Layout).convergenceThreshold(.001).size(n).avoidOverlaps(!0).nodes(e.nodes).links(e.links).groupCompactness(1e-4).linkDistance(30).symmetricDiffLinkLengths(5).powerGraphGroups((function(e){(i=e).groups.forEach((function(e){e.padding=r}))})).start(50,0,100,0,!1),powerGraph:i}}})),pf=P(I((e=>{function t(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),t(sf()),t(df()),t(Qh()),t(rf()),t(uf()),t(of()),t(af()),t(hf()),t(Xh()),t(Kh()),t(tf()),t(Jh()),t(ef()),t(nf()),t(Yh()),t(ff())}))());function gf(e,t,n){const{preferredLinkLength:r=200,avoidOverlaps:i=!0}=n??{};return function(e,t){const n=new Map,o=[];for(const[r,i]of Object.entries(e.nodes)){const e=Object.hasOwn(t.bounds,r)?t.bounds[r]:void 0;n.set(r,{x:e?e.x:0,y:e?e.y:0,width:e?e.width:void 0,height:e?e.height:void 0,fixed:i.fixed?1:0})}for(const t of e.links){const e=n.get(t.source),r=n.get(t.target);e&&r&&o.push({source:e,target:r})}((e,t)=>{(new pf.Layout).nodes(Array.from(e.values())).links(t).avoidOverlaps(i).convergenceThreshold(1e-9).jaccardLinkLengths(r).handleDisconnected(!0).start(30,0,10,void 0,!1)})(n,o);const a=Object.create(null);for(const[e,t]of n)a[e]={x:t.x,y:t.y,width:t.width??0,height:t.height??0};return{bounds:a}}(e,t)}function vf(e,t,n){const{preferredLinkLength:r=200,padding:i={x:50,y:50}}=n??{},o=function(e,t){const n=Object.create(null);let r=1/0,i=1/0;for(const[t,{x:o,y:a,width:s,height:l}]of Object.entries(e.bounds)){const e=Math.max(s,l);r=Math.min(s?e/s:1,r),i=Math.min(l?e/l:1,i),n[t]={x:o,y:a,width:e,height:e}}const o=function(e,t){if(!t)return{state:e,unwrap:e=>e};const n=Object.create(null);for(const[r,{x:i,y:o,width:a,height:s}]of Object.entries(e.bounds))n[r]={x:i-t.x,y:o-t.y,width:a+2*t.x,height:s+2*t.y};return{state:{bounds:n},unwrap:e=>{const n=Object.create(null);for(const[r,{x:i,y:o,width:a,height:s}]of Object.entries(e.bounds))n[r]={x:i+t.x,y:o+t.y,width:a-2*t.x,height:s-2*t.y};return{bounds:n}}}}({bounds:n},t);return{state:o.state,unwrap:t=>{const n=o.unwrap(t),a=function(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(const[o,{x:a,y:s,width:l,height:c}]of Object.entries(e.bounds))t=Math.min(t,a),n=Math.min(n,s),r=Math.max(r,a+l),i=Math.max(i,s+c);return{x:Number.isFinite(t)?t:0,y:Number.isFinite(n)?n:0,width:Number.isFinite(t)&&Number.isFinite(r)?r-t:0,height:Number.isFinite(n)&&Number.isFinite(i)?i-n:0}}(n),s=Object.create(null);for(const[t,o]of Object.entries(n.bounds)){const n=Object.hasOwn(e.bounds,t)?e.bounds[t]:void 0;s[t]={x:(o.x-a.x)/r+a.x,y:(o.y-a.y)/i+a.y,width:n?n.width:o.width,height:n?n.height:o.height}}return{bounds:s}}}}(gf(e,t,{preferredLinkLength:r,avoidOverlaps:!1}),i),a=function(e){const t=new Map;for(const[n,{x:r,y:i,width:o,height:a}]of Object.entries(e.bounds))t.set(n,new pf.Rectangle(r,r+o,i,i+a));pf.removeOverlaps(Array.from(t.values()));const n=Object.create(null);for(const[r,{x:i,y:o}]of t){const t=Object.hasOwn(e.bounds,r)?e.bounds[r]:void 0;n[r]={x:i,y:o,width:t?t.width:0,height:t?t.height:0}}return{bounds:n}}(o.state),s=o.unwrap(a);return Promise.resolve(s)}var mf;!function(e){e.EN="en",e.FR="fr"}(mf||(mf={}));const bf={[mf.EN]:{graphwise_toolbar_action:{"download_diagram.label":"Export to JSON","download_diagram.title":"Export the diagram to a JSON file","upload_diagram.label":"Import from JSON","upload_diagram.title":"Replace the diagram with one from a JSON file"}},[mf.FR]:{authoring_state:{"entity_action_delete.label":"supprimer","entity_action_delete.title":"Supprimer l'entité","entity_action_delete.title_disabled":"Impossible de supprimer l'entité","entity_action_discard.label":"annuler","entity_action_discard.title":"Annuler toutes les modifications de l'entité","entity_action_edit.label":"modifier","entity_action_edit.title":"Modifier l'entité","entity_action_edit.title_disabled":"Impossible de modifier l'entité","entity_add.label":"Nouveau","entity_change.label":"Modifier","entity_delete.label":"Supprimer","relation_action_discard.label":"annuler","relation_action_discard.title":"Annuler toutes les modifications de la relation","relation_add.label":"Nouveau","relation_change.label":"Modifier","relation_delete.label":"Supprimer"},classic_workspace:{"canvas.label":"Canevas","class_tree.heading":"Classes","connections.heading":"Connexions","instances.heading":"Instances"},commands:{"change_entity.title":"Modifier les données de l'entité","change_link_type_visibility.title":"Modifier la visibilité du type de lien","change_relation.title":"Modifier les données de la relation","collapse_element.title":"Réduire l'élément","expand_element.title":"Développer l'élément","place_elements_around.title":"Placer les éléments","restore_geometry.title":"Déplacer les éléments et les liens","restore_link_vertices.title":"Modifier les sommets du lien","restore_viewport.title":"Définir la zone d'affichage","set_element_state.title":"Modifier l'état de l'élément","set_entity_data.title":"Définir les données de l'élément d'entité","set_entity_group_items.title":"Définir les éléments du groupe d'entités","set_link_state.title":"Modifier l'état du lien","set_relation_data.title":"Définir les données du lien de relation","set_relation_group_items.title":"Définir les éléments du groupe de relations","transform_elements.title":"Redimensionner les éléments"},connections_menu:{"all_link.label":"Tous","breadcrumbs_root.label":"Types de liens","dialog.caption":"Connexions","entities.add_all":"Tout ajouter","entities.add_group":"Ajouter en tant que groupe","entities.add_selected":"Ajouter la sélection","entities.counter_label":"{{count}} sur {{total}}","entities.extra_label":" ({{value}})","entities.extra_title":"Entités supplémentaires","entities.missing_label":" ({{value}})","entities.missing_title":"Entités manquantes","entities.no_results":"Aucun résultat","entities.truncated_results":"Seules les {{limit}} premières entités sont affichées","entities.truncated_results_expand":"Seules les {{limit}} premières entités sont affichées,\ncliquez ici pour voir tous les résultats","input.placeholder":null,"link.both_navigate_title":"Naviguer vers tous les éléments connectés","link.both_title":"tous connectés","link.source_navigate_title":"Naviguer vers les éléments source « {{relation}} »","link.source_title":"source de « {{relation}} » {{relationIri}}","link.target_navigate_title":"Naviguer vers les éléments cible « {{target}} »","link.target_title":"cible de « {{relation}} » {{relationIri}}","link.move_to_filter.title":"Définir comme filtre dans le panneau Instances","links.no_results":"Aucun résultat","links.suggest_similar":"Vous cherchez probablement...","place_elements.command":"Ajouter les éléments connectés","select_all.label":"Tout sélectionner","select_all.title":"Sélectionner ou désélectionner toutes les entités","sort_alphabetically.title":"Trier par ordre alphabétique","sort_smart.title":"Tri intelligent"},data_diagram_model:{"add_element.command":"Ajouter un élément","add_link.command":"Ajouter un lien","create_links.command":"Créer des liens","group_entities.command":"Grouper les entités","import_layout.command":"Importer la disposition","regroup_relations.command":"Regrouper les relations","request_entities.command":"Demander les données des entités","request_relations.command":"Demander les relations entre les entités","remove_element.command":"Supprimer l'élément","remove_link.command":"Supprimer le lien","ungroup_entities.command":"Dégrouper les entités"},default_data_locale:{iri:"<{{value}}>",iri_blank:"(nœud anonyme)"},default_workspace:{"search_section_entities.label":"Entités","search_section_entities.title":"Recherche d'entités","search_section_entity_types.label":"Types","search_section_entity_types.title":"Hiérarchie des types d'entités","search_section_link_types.label":"Liens","search_section_link_types.title":"Types de relations sur le diagramme"},drop_on_canvas:{"drop.command":"Glisser-déposer sur le diagramme"},editor_controller:{"apply_authored_changes.command":"Appliquer les modifications au diagramme","discard_change.command":"Annuler la modification","entity_add.command":"Créer une nouvelle entité","entity_change.command":"Modifier l'entité","entity_delete.command":"Supprimer l'entité","relation_add.command":"Créer une nouvelle relation","relation_change.command":"Modifier la relation","relation_delete.command":"Supprimer la relation","relation_move_source.command":"Déplacer la source de la relation","relation_move_target.command":"Déplacer la cible de la relation","remove_items.command":"Supprimer les éléments du diagramme","set_authoring_state.command":"Créer, modifier ou supprimer des entités et des relations","validate_entity_failed.message":"Échec de la validation de l'entité"},forms:{"input_file.drag_hint":"Glissez des fichiers ici ou","input_file.remove_value.title":"Supprimer le fichier","input_file.select_files.label":"Sélectionner des fichiers","input_list.add_value.title":"Ajouter une valeur de propriété","input_list.remove_value.title":"Supprimer la valeur de propriété"},group_paginator:{"current_page.label":"{{page}} sur {{pageCount}}","go_next.title":"Aller à la page suivante","go_previous.title":"Aller à la page précédente","page_size.title":"Nombre d'éléments à afficher par page"},inline_entity:{title:"{{entity}} {{entityIri}}",title_extra:"Types : {{entityTypes}}"},link_action:{"delete_annotation.title":"Supprimer le lien d'annotation","delete_relation.title":"Supprimer la relation","delete_relation.title_disabled":"Impossible de supprimer la relation","edit_relation.title":"Modifier la relation","edit_relation.title_disabled":"Impossible de modifier la relation","rename_link.title":"Renommer le lien","move_relation.move_source_title":"Déplacer la source du lien","move_relation.move_target_title":"Déplacer la cible du lien","vertex.remove_title":"Supprimer le sommet"},navigator:{"toggle_collapse.title":"Réduire le navigateur","toggle_expand.title":"Développer le navigateur"},note_annotation:{"change_text.command":"Modifier le texte de l'annotation","style_align_center.title":"Centrer","style_align_left.title":"Aligner à gauche","style_align_right.title":"Aligner à droite","style_bold.title":"Gras","style_color_variant.title":"Variante de couleur : {{variant}}","style_italic.title":"Italique","style_strikethrough.title":"Barré","style_underline.title":"Souligné"},overlay_controller:{multiple_tasks_in_progress:"Plusieurs tâches sont en cours",unknown_error:"Une erreur inconnue s'est produite"},search_defaults:{empty_input_term:"Saisissez un terme à rechercher.","input.placeholder":"Rechercher...","input_clear.title":"Effacer la recherche","input_submit.title":"Rechercher",input_term_too_short:"Saisissez au moins {{termLength}} caractères pour rechercher.",no_results:"Aucun résultat trouvé."},search_element_types:{"drag_create.title":"Cliquez ou glissez pour créer une nouvelle entité de ce type","input.placeholder":null,no_results:"Aucun type d'élément trouvé.","refresh_progress.title":"Chargement de l'arborescence des types d'éléments",show_only_creatable:"Afficher uniquement les constructibles"},search_entities:{"add_group.label":"Ajouter en tant que groupe","add_group.title":"Placer les entités sélectionnées sur le canevas en tant que groupe","add_selected.label":"Ajouter la sélection","add_selected.title":"Placer les entités sélectionnées sur le canevas",criteria_has_type:"A le type {{entityType}}",criteria_connected:"Connecté à {{entity}}",criteria_connected_via:"Connecté à {{entity}} via {{relationType}}",criteria_connected_to_source:"Connecté à {{entity}} via {{relationType}} en tant que {{sourceIcon}} source",criteria_connected_to_target:"Connecté à {{entity}} via {{relationType}} en tant que {{targetIcon}} cible","input.placeholder":null,"place_elements.command":"Ajouter les éléments sélectionnés","query_progress.title":"Recherche d'entités en cours","show_more_results.label":"Afficher plus","show_more_results.title":"Charger plus de résultats"},search_link_types:{"add_to_filter.title":"Rechercher les éléments connectés via la relation",heading_connected:"Connecté aux entités sélectionnées",heading_connected_single:"Connecté à {{entity}}",heading_other:"Autres liens","input.placeholder":null,no_results:"Aucun lien trouvé.","switch.command":"Modifier la visibilité des types de liens","switch_all.label":"Tout basculer","switch_hidden.title":"Masquer les liens et les étiquettes","switch_visible.title":"Afficher les liens avec étiquettes","switch_without_label.title":"Afficher uniquement les lignes des liens (sans étiquettes)"},selection_action:{"add_to_filter.title":"Rechercher les éléments connectés","anchor.title":"Accéder à la ressource","annotate.defaultContent":"Annotation","annotate.title":"Ajouter une annotation à cet élément","connections.title":"Naviguer vers les éléments connectés","expand.collapse_command":"Réduire les éléments","expand.expand_command":"Développer les éléments","expand.title":"Développer les éléments sélectionnés pour révéler des propriétés supplémentaires","expand.title_single":"Développer un élément pour révéler des propriétés supplémentaires","establish_relation.title":"Établir un lien","establish_relation.title_disabled":"L'établissement d'un lien n'est pas autorisé pour cet élément","group.title":"Grouper les entités","group.title_ungroup":"Dégrouper les entités","layout.title":"Disposer les éléments sélectionnés avec l'algorithme à forces dirigées","remove.title":"Supprimer les éléments sélectionnés du diagramme","remove.title_new":"Annuler le nouvel élément","remove.title_single":"Supprimer un élément du diagramme","zoom_to_fit.title":"Ajuster le zoom aux éléments sélectionnés"},standard_element:{blank_node:"(nœud anonyme)",default_type:"Chose","delete.label":"Supprimer","delete.title":"Supprimer l'entité","delete.title_disabled":"Impossible de supprimer l'entité","edit.label":"Modifier","edit.title":"Modifier l'entité","edit.title_disabled":"Impossible de modifier l'entité","group_item.title":"{{entity}}\nIRI : {{entityIri}}\nTypes : {{entityTypes}}","iri.label":"IRI :","iri.label_modified":"IRI (modifié) :",no_properties:"aucune propriété","property.title":"{{property}} {{propertyIri}}","ungroup.title":"Dégrouper une entité"},standard_link:{"group_source.title":"{{value}} éléments source","group_source.value":"{{value}}","group_target.title":"{{value}} éléments cible","group_target.value":"{{value}}","label.title":"{{relation}} {{relationIri}}","property.title":"{{property}} {{propertyIri}}"},toolbar:{"menu_toggle.title":"Ouvrir le menu"},graphwise_toolbar_action:{"download_diagram.label":"Exporter en JSON","download_diagram.title":"Exporter le diagramme en fichier JSON","upload_diagram.label":"Importer depuis JSON","upload_diagram.title":"Remplacer le diagramme par celui d'un fichier JSON"},toolbar_action:{"clear_all.command":"Tout effacer","clear_all.title":"Supprimer tous les éléments et liens du diagramme","clear_all.label":"Tout effacer","export_print.label":"Imprimer","export_print.title":"Imprimer le diagramme","export_raster.label":"Exporter en PNG","export_raster.title":"Exporter le diagramme en image PNG","export_svg.label":"Exporter en SVG","export_svg.title":"Exporter le diagramme en image SVG","redo.label":"Rétablir","redo.title":"Rétablir la dernière commande annulée","redo.title_named":"Rétablir : {{command}}","save_authoring.title":"Appliquer les modifications du graphe","save_layout.title":"Enregistrer la disposition du diagramme","language_selector.title":"Sélectionner la langue des données (étiquettes, propriétés, etc.)","layout.label":"Disposition","layout.title":"Disposer le diagramme avec l'algorithme à forces dirigées","undo.label":"Annuler","undo.title":"Annuler la dernière commande","undo.title_named":"Annuler : {{command}}"},unified_search:{"input.placeholder":null,"input_clear.title":"Effacer","input_collapse.title":"Fermer"},visual_authoring:{"dialog.apply.label":"Appliquer","dialog.apply.title":"Appliquer les modifications","dialog.cancel.label":"Annuler","dialog.cancel.title":"Annuler la boîte de dialogue","edit_entity.dialog.apply.label":null,"edit_entity.dialog.apply.title":null,"edit_entity.dialog.caption":"Modifier l'entité","edit_entity.iri.label":"IRI","edit_entity.iri.placeholder":"IRI de l'entité","edit_relation.dialog.apply.label":null,"edit_relation.dialog.apply.title":null,"edit_relation.dialog.caption":"Modifier la relation","edit_relation.dialog.caption_new":"Établir une nouvelle relation","edit_relation.validation_progress.title":"Validation du type de lien sélectionné","find_or_create.connect_command":"Lier à une entité","find_or_create.create_command":"Créer une nouvelle entité","find_or_create.dialog.apply.label":null,"find_or_create.dialog.apply.title":null,"find_or_create.dialog.caption":"Établir une nouvelle connexion","find_or_create.loading.label":"Chargement de l'entité...","find_or_create.validation_progress.title":"Validation des types d'élément et de lien sélectionnés","property.label":"{{property}}","property.text_value.placeholder":"Valeur de la propriété","property.title":"{{property}} {{propertyIri}}","rename_link.dialog.apply.label":null,"rename_link.dialog.apply.title":null,"rename_link.dialog.caption":"Renommer le lien","rename_link.label.label":"Étiquette","select_entity.entity_type.label":"{{type}}","select_entity.input.placeholder":null,"select_entity.type.label":"Type d'entité","select_entity.type.placeholder":"Sélectionner le type d'entité","select_entity.results.aria_label":"Sélectionner un élément existant à placer sur le diagramme","select_entity.separator.label":"ou créer une nouvelle entité","select_entity.validation.error_required":"Requis.","select_relation.relation_type.label":"{{relation}} [{{source}} → {{target}}]","select_relation.type.label":"Type de relation","select_relation.type.placeholder":"Sélectionner le type de relation","select_relation.validation.error_duplicate":"La relation existe déjà.","select_relation.validation.error_required":"Requis."},workspace:{"group_entities.command":"Grouper les entités","perform_layout.task":"Calcul de la disposition du graphe","perform_layout.command":"Disposition du graphe","ungroup_entities.command":"Dégrouper les entités"},workspace_layout:{"toggle_collapse.title":"Réduire le panneau","toggle_expand.title":"Développer le panneau"},zoom_control:{"pointer_mode.title":"Basculer le mode de sélection :\nGlissez pour sélectionner, Maj + pointeur pour déplacer le canevas","zoom_in.title":"Zoom avant","zoom_out.title":"Zoom arrière","zoom_to_fit.title":"Ajuster à l'écran"}}};class wf{static get(e){return wf.SERVICE_INSTANCES.has(e.ID)||wf.SERVICE_INSTANCES.set(e.ID,new e),wf.SERVICE_INSTANCES.get(e.ID)}}function yf(e){return wf.get(e)}function _f(){}wf.SERVICE_INSTANCES=new Map;var kf;let xf=kf=class{importDiagram(e,t,n,r){return e.setSelection([]),e.importLayout({dataProvider:t,diagram:n,signal:r,validateLinks:!0})}subscribeToDiagramChange(e,t){let n;const r=()=>{n&&clearTimeout(n),n=setTimeout((()=>{n&&t(e.exportLayout()),n=void 0}),kf.NOTIFY_DEBOUNCE_MS)};return e.history.events.on(kf.HISTORY_CHANGED_EVENT,r),()=>{e.history.events.off(kf.HISTORY_CHANGED_EVENT,r),n&&(clearTimeout(n),n=void 0)}}};xf.ID="DiagramService",xf.NOTIFY_DEBOUNCE_MS=300,xf.HISTORY_CHANGED_EVENT="historyChanged",xf=kf=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([_f],xf);let Sf=class{getWindow(){return window}};Sf.ID="WindowService",Sf=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([_f],Sf);var Cf;let Lf=Cf=class{load(){const e=this.storage.getItem(Cf.STORAGE_KEY);if(e)return JSON.parse(e)}save(e){this.storage.setItem(Cf.STORAGE_KEY,JSON.stringify(e))}clear(){this.storage.removeItem(Cf.STORAGE_KEY)}get storage(){return yf(Sf).getWindow().localStorage}};Lf.ID="DiagramStorageService",Lf.STORAGE_KEY="diagram.state",Lf=Cf=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([_f],Lf);let Mf=class{subscribeToClearDiagramStorage(e){const t=yf(Sf).getWindow();return t.addEventListener(i,e),()=>t.removeEventListener(i,e)}};Mf.ID="EventService",Mf=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([_f],Mf);const Ef=new Map;function zf(e){return`--_graphwise-reactodia-type-color-${String(e).padStart(2,"0")}`}const $f=e=>{const t=e[0];if(!t)return;let n=Ef.get(t);void 0===n&&(n=Ef.size,Ef.set(t,n));const r=function(){const e=document.querySelector("graphwise-reactodia");if(!e)return[];const t=getComputedStyle(e),n=[];let r=t.getPropertyValue(zf(1)).trim();for(;r;)n.push(r),r=t.getPropertyValue(zf(n.length+1)).trim();return n}();return r.length?{color:r[n%r.length]}:void 0};var Tf;let Nf=Tf=class{download(e,t){const n=yf(Sf).getWindow(),r=new Blob([JSON.stringify(e)],{type:Tf.MIME_TYPE}),i=n.URL.createObjectURL(r),o=n.document.createElement("a");o.href=i,o.download=t,o.click(),n.URL.revokeObjectURL(i)}async read(e){let t;try{t=JSON.parse(await e.text())}catch(t){throw new Error(`File "${e.name}" is not valid JSON: ${t.message}`)}if(!this.isSerializedDiagram(t))throw new Error(`File "${e.name}" is not a serialized diagram`);return t}isSerializedDiagram(e){var t,n;const r=e;return"Diagram"===(null==r?void 0:r["@type"])&&Array.isArray(null===(t=r.layoutData)||void 0===t?void 0:t.elements)&&Array.isArray(null===(n=r.layoutData)||void 0===n?void 0:n.links)}};function Af(){const{model:e}=cn(),t=Ht(),n=yf(Nf),r=yf(xf);return m.createElement(m.Fragment,null,m.createElement(Xu,{}),m.createElement(Qu,{kind:"exportRaster"}),m.createElement(Qu,{kind:"exportSvg"}),m.createElement(Qu,{kind:"print"}),m.createElement(Zu,{className:"reactodia-toolbar-action__save",title:t.text("graphwise_toolbar_action.download_diagram.title"),onSelect:()=>{const t=(new Date).toISOString().replace(/[-:]|\.\d+Z$/g,"");n.download(e.exportLayout(),`diagram-${t}${Nf.FILE_EXTENSION}`)}},t.text("graphwise_toolbar_action.download_diagram.label")),m.createElement(Ku,{title:t.text("graphwise_toolbar_action.upload_diagram.title"),fileAccept:Nf.FILE_EXTENSION,onSelect:t=>{(async t=>{try{const i=await n.read(t);await r.importDiagram(e,e.dataProvider,i)}catch(e){console.error("Failed to upload the diagram",e)}})(t)}},t.text("graphwise_toolbar_action.upload_diagram.label")))}function If(e){const t=bf[e];return t?[t]:[]}Nf.ID="DiagramFileService",Nf.FILE_EXTENSION=".json",Nf.MIME_TYPE="application/json",Nf=Tf=function(e,t,n,r){var i,o=arguments.length,a=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}([_f],Nf);let Pf=null;const Vf=new class{constructor(e=[]){this.items=e}add(e){this.items.push(e)}addAll(e){this.items.push(...e)}remove(e){this.items=this.items.filter((t=>t!==e))}unsubscribeAll(){this.items.forEach((e=>e())),this.items=[]}};let Hf;const Rf=yf(xf),Of=yf(Lf),Df=yf(Mf);function Bf(e){const{currentRepository:t,config:n,providerSettings:r}=e;return new bi({endpointUrl:t,queryMethod:"POST",queryFunction:n.queryFunction},r)}function jf(e){null==Hf||Hf(),Hf=Rf.subscribeToDiagramChange(e,(e=>Of.save(e))),Vf.add(Hf)}function Ff(e){const{language:t,config:n}=e,r=e.isReload?null==Pf?void 0:Pf.model.exportLayout():void 0,{onMount:i}=function(e,t){const[n,r]=m.useState(),i=m.useRef(void 0);if(i.current)i.current.latestOnLoad=e;else{const t={latestOnLoad:e,context:void 0,loadedWorkspace:{getContext:()=>{if(!t.context)throw new Error("Cannot get Reactodia Workspace context: it is not mounted yet");return t.context},onMount:e=>{const n=e?.getContext();t.context=n,r(n)}}};i.current=t}return m.useEffect((()=>{if(n){const e=i.current.latestOnLoad,t=new AbortController;return(async()=>{const r=n.overlay.startTask();try{await Promise.resolve(),await e({context:n,signal:t.signal})}catch(e){t.signal.aborted||(r.setError(e),console.error("Reactodia: failed to load a workspace",e))}finally{r.end()}t.signal.aborted||n.model.history.reset()})(),()=>{t.abort(),n.model.discardLayout()}}}),[n,...t]),i.current.loadedWorkspace}((async({context:t,signal:i})=>{var o,a;Pf=t;const{model:s}=t;!function(e){jf(e)}(s),function(e){Vf.add(Df.subscribeToClearDiagramStorage((()=>{jf(e),Of.clear()})))}(s);const l=Bf(e),c=e.isReload,d=Of.load();c?await Rf.importDiagram(s,l,r,i):(null===(o=n.seedIris)||void 0===o?void 0:o.length)?await async function(e,t,n,r){const{model:i,performLayout:o}=e;await i.createNewDiagram({dataProvider:t,signal:r});for(const e of n)i.createElement(e);await i.requestData(),await o({signal:r})}(t,l,n.seedIris,i):(null===(a=n.seedGraph)||void 0===a?void 0:a.length)?await async function(e,t,n,r){const{model:i,performLayout:o}=e;await i.createNewDiagram({dataProvider:t,signal:r});const a=new Set;n.forEach((e=>{var t;a.add(e.source),a.add(e.target),i.createElement(e.source),i.createElement(e.target),null===(t=e.rawPredicates)||void 0===t||t.forEach((t=>{i.createLinks({linkTypeId:t,sourceId:e.source,targetId:e.target,properties:{}})}))})),await i.requestElementData(Array.from(a)),await o({signal:r})}(t,l,n.seedGraph,i):await Rf.importDiagram(s,l,d,i)}),[t]);return m.createElement(Zh,{ref:i,defaultLayout:vf,defaultLanguage:t,translations:If(t),typeStyleResolver:$f},m.createElement(Bh,{colorScheme:e.theme,menu:m.createElement(Af),actionsToolbar:{dock:"ne"}}))}const Uf=class{constructor(t){e(this,t),this.language=mf.EN,this.isComponentLoaded=!1}onCurrentRepositoryChange(){this.renderGraph()}onLanguageOrSettingsChange(){this.renderGraph(!0)}onThemeChange(){Ef.clear(),this.renderGraph(!0)}connectedCallback(){this.renderGraph()}componentDidLoad(){this.isComponentLoaded=!0,this.renderGraph()}disconnectedCallback(){var e;this.reactRoot&&(e=this.reactRoot,Vf.unsubscribeAll(),e.unmount(),this.reactRoot=void 0)}render(){return t(n,{key:"a03aad892cb1947ab2426d77b3229e1324776c2c"})}renderGraph(e){var t;if(!this.isComponentLoaded)return;if(!this.currentRepository)throw new Error("currentRepository is required");if(!(null===(t=this.config)||void 0===t?void 0:t.queryFunction))throw new Error("config.queryFunction is required");if(!this.providerSettings)throw new Error("providerSettings is required");if(!this.hostElement)return;const n={isReload:e,currentRepository:this.currentRepository,config:this.config,language:this.language,providerSettings:this.providerSettings,theme:this.theme};this.reactRoot&&!e?async function(e){if(!Pf)return;const{model:t}=Pf,n=Bf(e);await t.createNewDiagram({dataProvider:n})}(n):this.reactRoot=function(e,t){const n=M.createRoot(e);return n.render(m.createElement(Ff,t)),n}(this.hostElement,n)}get hostElement(){return r(this)}static get watchers(){return{currentRepository:["onCurrentRepositoryChange"],language:["onLanguageOrSettingsChange"],providerSettings:["onLanguageOrSettingsChange"],theme:["onThemeChange"]}}};Uf.style="graphwise-reactodia{--_graphwise-reactodia-type-color-01:var(--graphwise-reactodia-type-color-01);--_graphwise-reactodia-type-color-02:var(--graphwise-reactodia-type-color-02);--_graphwise-reactodia-type-color-03:var(--graphwise-reactodia-type-color-03);--_graphwise-reactodia-type-color-04:var(--graphwise-reactodia-type-color-04);--_graphwise-reactodia-type-color-05:var(--graphwise-reactodia-type-color-05);--_graphwise-reactodia-type-color-06:var(--graphwise-reactodia-type-color-06);--_graphwise-reactodia-type-color-07:var(--graphwise-reactodia-type-color-07);--_graphwise-reactodia-type-color-08:var(--graphwise-reactodia-type-color-08);--_graphwise-reactodia-type-color-09:var(--graphwise-reactodia-type-color-09);--_graphwise-reactodia-type-color-10:var(--graphwise-reactodia-type-color-10);--_graphwise-reactodia-type-color-11:var(--graphwise-reactodia-type-color-11);--_graphwise-reactodia-type-color-12:var(--graphwise-reactodia-type-color-12);--_graphwise-reactodia-type-color-13:var(--graphwise-reactodia-type-color-13);--_graphwise-reactodia-type-color-14:var(--graphwise-reactodia-type-color-14);--_graphwise-reactodia-type-color-15:var(--graphwise-reactodia-type-color-15);--_graphwise-reactodia-type-color-16:var(--graphwise-reactodia-type-color-16);--_graphwise-reactodia-type-color-17:var(--graphwise-reactodia-type-color-17);--_graphwise-reactodia-type-color-18:var(--graphwise-reactodia-type-color-18);--_graphwise-reactodia-type-color-19:var(--graphwise-reactodia-type-color-19);--_graphwise-reactodia-type-color-20:var(--graphwise-reactodia-type-color-20)}graphwise-reactodia{display:block;width:100%;height:100%}graphwise-reactodia .reactodia-container{position:relative;width:100%;height:100%}graphwise-reactodia .reactodia-selection-action__link{display:none}";export{Uf as graphwise_reactodia}
|