Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
main.js216 kB
"use strict";var Y=require("obsidian");function Ai(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Sn={exports:{}},Ti;function xo(){return Ti||(Ti=1,function(e,t){(function(n){var i=Object.hasOwnProperty,r=Array.isArray?Array.isArray:function(u){return Object.prototype.toString.call(u)==="[object Array]"},a=10,o=typeof process=="object"&&typeof process.nextTick=="function",s=typeof Symbol=="function",l=typeof Reflect=="object",c=typeof setImmediate=="function",m=c?setImmediate:setTimeout,d=s?l&&typeof Reflect.ownKeys=="function"?Reflect.ownKeys:function(u){var f=Object.getOwnPropertyNames(u);return f.push.apply(f,Object.getOwnPropertySymbols(u)),f}:Object.keys;function p(){this._events={},this._conf&&h.call(this,this._conf)}function h(u){u&&(this._conf=u,u.delimiter&&(this.delimiter=u.delimiter),u.maxListeners!==n&&(this._maxListeners=u.maxListeners),u.wildcard&&(this.wildcard=u.wildcard),u.newListener&&(this._newListener=u.newListener),u.removeListener&&(this._removeListener=u.removeListener),u.verboseMemoryLeak&&(this.verboseMemoryLeak=u.verboseMemoryLeak),u.ignoreErrors&&(this.ignoreErrors=u.ignoreErrors),this.wildcard&&(this.listenerTree={}))}function g(u,f){var b="(node) warning: possible EventEmitter memory leak detected. "+u+" listeners added. Use emitter.setMaxListeners() to increase limit.";if(this.verboseMemoryLeak&&(b+=" Event name: "+f+"."),typeof process<"u"&&process.emitWarning){var w=new Error(b);w.name="MaxListenersExceededWarning",w.emitter=this,w.count=u,process.emitWarning(w)}else console.error(b),console.trace&&console.trace()}var _=function(u,f,b){var w=arguments.length;switch(w){case 0:return[];case 1:return[u];case 2:return[u,f];case 3:return[u,f,b];default:for(var S=new Array(w);w--;)S[w]=arguments[w];return S}};function y(u,f){for(var b={},w,S=u.length,C=0,R=0;R<S;R++)w=u[R],b[w]=R<C?f[R]:n;return b}function v(u,f,b){this._emitter=u,this._target=f,this._listeners={},this._listenersCount=0;var w,S;if((b.on||b.off)&&(w=b.on,S=b.off),f.addEventListener?(w=f.addEventListener,S=f.removeEventListener):f.addListener?(w=f.addListener,S=f.removeListener):f.on&&(w=f.on,S=f.off),!w&&!S)throw Error("target does not implement any known event API");if(typeof w!="function")throw TypeError("on method must be a function");if(typeof S!="function")throw TypeError("off method must be a function");this._on=w,this._off=S;var C=u._observers;C?C.push(this):u._observers=[this]}Object.assign(v.prototype,{subscribe:function(u,f,b){var w=this,S=this._target,C=this._emitter,R=this._listeners,M=function(){var I=_.apply(null,arguments),T={data:I,name:f,original:u};if(b){var j=b.call(S,T);j!==!1&&C.emit.apply(C,[T.name].concat(I));return}C.emit.apply(C,[f].concat(I))};if(R[u])throw Error("Event '"+u+"' is already listening");this._listenersCount++,C._newListener&&C._removeListener&&!w._onNewListener?(this._onNewListener=function(I){I===f&&R[u]===null&&(R[u]=M,w._on.call(S,u,M))},C.on("newListener",this._onNewListener),this._onRemoveListener=function(I){I===f&&!C.hasListeners(I)&&R[u]&&(R[u]=null,w._off.call(S,u,M))},R[u]=null,C.on("removeListener",this._onRemoveListener)):(R[u]=M,w._on.call(S,u,M))},unsubscribe:function(u){var f=this,b=this._listeners,w=this._emitter,S,C,R=this._off,M=this._target,I;if(u&&typeof u!="string")throw TypeError("event must be a string");function T(){f._onNewListener&&(w.off("newListener",f._onNewListener),w.off("removeListener",f._onRemoveListener),f._onNewListener=null,f._onRemoveListener=null);var j=$.call(w,f);w._observers.splice(j,1)}if(u){if(S=b[u],!S)return;R.call(M,u,S),delete b[u],--this._listenersCount||T()}else{for(C=d(b),I=C.length;I-- >0;)u=C[I],R.call(M,u,b[u]);this._listeners={},this._listenersCount=0,T()}}});function E(u,f,b,w){var S=Object.assign({},f);if(!u)return S;if(typeof u!="object")throw TypeError("options must be an object");var C=Object.keys(u),R=C.length,M,I,T;function j(J){throw Error('Invalid "'+M+'" option value'+(J?". Reason: "+J:""))}for(var ne=0;ne<R;ne++){if(M=C[ne],!i.call(f,M))throw Error('Unknown "'+M+'" option');I=u[M],I!==n&&(T=b[M],S[M]=T?T(I,j):I)}return S}function D(u,f){return(typeof u!="function"||!u.hasOwnProperty("prototype"))&&f("value must be a constructor"),u}function N(u){var f="value must be type of "+u.join("|"),b=u.length,w=u[0],S=u[1];return b===1?function(C,R){if(typeof C===w)return C;R(f)}:b===2?function(C,R){var M=typeof C;if(M===w||M===S)return C;R(f)}:function(C,R){for(var M=typeof C,I=b;I-- >0;)if(M===u[I])return C;R(f)}}var F=N(["function"]),U=N(["object","function"]);function z(u,f,b){var w,S,C=0,R,M=new u(function(I,T,j){b=E(b,{timeout:0,overload:!1},{timeout:function(X,ge){return X*=1,(typeof X!="number"||X<0||!Number.isFinite(X))&&ge("timeout must be a positive number"),X}}),w=!b.overload&&typeof u.prototype.cancel=="function"&&typeof j=="function";function ne(){S&&(S=null),C&&(clearTimeout(C),C=0)}var J=function(X){ne(),I(X)},K=function(X){ne(),T(X)};w?f(J,K,j):(S=[function(X){K(X||Error("canceled"))}],f(J,K,function(X){if(R)throw Error("Unable to subscribe on cancel event asynchronously");if(typeof X!="function")throw TypeError("onCancel callback must be a function");S.push(X)}),R=!0),b.timeout>0&&(C=setTimeout(function(){var X=Error("timeout");X.code="ETIMEDOUT",C=0,M.cancel(X),T(X)},b.timeout))});return w||(M.cancel=function(I){if(S){for(var T=S.length,j=1;j<T;j++)S[j](I);S[0](I),S=null}}),M}function $(u){var f=this._observers;if(!f)return-1;for(var b=f.length,w=0;w<b;w++)if(f[w]._target===u)return w;return-1}function B(u,f,b,w,S){if(!b)return null;if(w===0){var C=typeof f;if(C==="string"){var R,M,I=0,T=0,j=this.delimiter,ne=j.length;if((M=f.indexOf(j))!==-1){R=new Array(5);do R[I++]=f.slice(T,M),T=M+ne;while((M=f.indexOf(j,T))!==-1);R[I++]=f.slice(T),f=R,S=I}else f=[f],S=1}else C==="object"?S=f.length:(f=[f],S=1)}var J=null,K,X,ge,ze,Fe,$e=f[w],rt=f[w+1],Ce,_e;if(w===S)b._listeners&&(typeof b._listeners=="function"?(u&&u.push(b._listeners),J=[b]):(u&&u.push.apply(u,b._listeners),J=[b]));else if($e==="*"){for(Ce=d(b),M=Ce.length;M-- >0;)K=Ce[M],K!=="_listeners"&&(_e=B(u,f,b[K],w+1,S),_e&&(J?J.push.apply(J,_e):J=_e));return J}else if($e==="**"){for(Fe=w+1===S||w+2===S&&rt==="*",Fe&&b._listeners&&(J=B(u,f,b,S,S)),Ce=d(b),M=Ce.length;M-- >0;)K=Ce[M],K!=="_listeners"&&(K==="*"||K==="**"?(b[K]._listeners&&!Fe&&(_e=B(u,f,b[K],S,S),_e&&(J?J.push.apply(J,_e):J=_e)),_e=B(u,f,b[K],w,S)):K===rt?_e=B(u,f,b[K],w+2,S):_e=B(u,f,b[K],w,S),_e&&(J?J.push.apply(J,_e):J=_e));return J}else b[$e]&&(J=B(u,f,b[$e],w+1,S));if(X=b["*"],X&&B(u,f,X,w+1,S),ge=b["**"],ge)if(w<S)for(ge._listeners&&B(u,f,ge,S,S),Ce=d(ge),M=Ce.length;M-- >0;)K=Ce[M],K!=="_listeners"&&(K===rt?B(u,f,ge[K],w+2,S):K===$e?B(u,f,ge[K],w+1,S):(ze={},ze[K]=ge[K],B(u,f,{"**":ze},w+1,S)));else ge._listeners?B(u,f,ge,S,S):ge["*"]&&ge["*"]._listeners&&B(u,f,ge["*"],S,S);return J}function te(u,f,b){var w=0,S=0,C,R=this.delimiter,M=R.length,I;if(typeof u=="string")if((C=u.indexOf(R))!==-1){I=new Array(5);do I[w++]=u.slice(S,C),S=C+M;while((C=u.indexOf(R,S))!==-1);I[w++]=u.slice(S)}else I=[u],w=1;else I=u,w=u.length;if(w>1){for(C=0;C+1<w;C++)if(I[C]==="**"&&I[C+1]==="**")return}var T=this.listenerTree,j;for(C=0;C<w;C++)if(j=I[C],T=T[j]||(T[j]={}),C===w-1)return T._listeners?(typeof T._listeners=="function"&&(T._listeners=[T._listeners]),b?T._listeners.unshift(f):T._listeners.push(f),!T._listeners.warned&&this._maxListeners>0&&T._listeners.length>this._maxListeners&&(T._listeners.warned=!0,g.call(this,T._listeners.length,j))):T._listeners=f,!0;return!0}function Z(u,f,b,w){for(var S=d(u),C=S.length,R,M,I,T=u._listeners,j;C-- >0;)M=S[C],R=u[M],M==="_listeners"?I=b:I=b?b.concat(M):[M],j=w||typeof M=="symbol",T&&f.push(j?I:I.join(this.delimiter)),typeof R=="object"&&Z.call(this,R,f,I,j);return f}function P(u){for(var f=d(u),b=f.length,w,S,C;b-- >0;)S=f[b],w=u[S],w&&(C=!0,S!=="_listeners"&&!P(w)&&delete u[S]);return C}function L(u,f,b){this.emitter=u,this.event=f,this.listener=b}L.prototype.off=function(){return this.emitter.off(this.event,this.listener),this};function O(u,f,b){if(b===!0)S=!0;else if(b===!1)w=!0;else{if(!b||typeof b!="object")throw TypeError("options should be an object or true");var w=b.async,S=b.promisify,C=b.nextTick,R=b.objectify}if(w||C||S){var M=f,I=f._origin||f;if(C&&!o)throw Error("process.nextTick is not supported");S===n&&(S=f.constructor.name==="AsyncFunction"),f=function(){var T=arguments,j=this,ne=this.event;return S?C?Promise.resolve():new Promise(function(J){m(J)}).then(function(){return j.event=ne,M.apply(j,T)}):(C?process.nextTick:m)(function(){j.event=ne,M.apply(j,T)})},f._async=!0,f._origin=I}return[f,R?new L(this,u,f):this]}function k(u){this._events={},this._newListener=!1,this._removeListener=!1,this.verboseMemoryLeak=!1,h.call(this,u)}k.EventEmitter2=k,k.prototype.listenTo=function(u,f,b){if(typeof u!="object")throw TypeError("target musts be an object");var w=this;b=E(b,{on:n,off:n,reducers:n},{on:F,off:F,reducers:U});function S(C){if(typeof C!="object")throw TypeError("events must be an object");var R=b.reducers,M=$.call(w,u),I;M===-1?I=new v(w,u,b):I=w._observers[M];for(var T=d(C),j=T.length,ne,J=typeof R=="function",K=0;K<j;K++)ne=T[K],I.subscribe(ne,C[ne]||ne,J?R:R&&R[ne])}return r(f)?S(y(f)):S(typeof f=="string"?y(f.split(/\s+/)):f),this},k.prototype.stopListeningTo=function(u,f){var b=this._observers;if(!b)return!1;var w=b.length,S,C=!1;if(u&&typeof u!="object")throw TypeError("target should be an object");for(;w-- >0;)S=b[w],(!u||S._target===u)&&(S.unsubscribe(f),C=!0);return C},k.prototype.delimiter=".",k.prototype.setMaxListeners=function(u){u!==n&&(this._maxListeners=u,this._conf||(this._conf={}),this._conf.maxListeners=u)},k.prototype.getMaxListeners=function(){return this._maxListeners},k.prototype.event="",k.prototype.once=function(u,f,b){return this._once(u,f,!1,b)},k.prototype.prependOnceListener=function(u,f,b){return this._once(u,f,!0,b)},k.prototype._once=function(u,f,b,w){return this._many(u,1,f,b,w)},k.prototype.many=function(u,f,b,w){return this._many(u,f,b,!1,w)},k.prototype.prependMany=function(u,f,b,w){return this._many(u,f,b,!0,w)},k.prototype._many=function(u,f,b,w,S){var C=this;if(typeof b!="function")throw new Error("many only accepts instances of Function");function R(){return--f===0&&C.off(u,R),b.apply(this,arguments)}return R._origin=b,this._on(u,R,w,S)},k.prototype.emit=function(){if(!this._events&&!this._all)return!1;this._events||p.call(this);var u=arguments[0],f,b=this.wildcard,w,S,C,R,M;if(u==="newListener"&&!this._newListener&&!this._events.newListener)return!1;if(b&&(f=u,u!=="newListener"&&u!=="removeListener"&&typeof u=="object")){if(S=u.length,s){for(C=0;C<S;C++)if(typeof u[C]=="symbol"){M=!0;break}}M||(u=u.join(this.delimiter))}var I=arguments.length,T;if(this._all&&this._all.length)for(T=this._all.slice(),C=0,S=T.length;C<S;C++)switch(this.event=u,I){case 1:T[C].call(this,u);break;case 2:T[C].call(this,u,arguments[1]);break;case 3:T[C].call(this,u,arguments[1],arguments[2]);break;default:T[C].apply(this,arguments)}if(b)T=[],B.call(this,T,f,this.listenerTree,0,S);else if(T=this._events[u],typeof T=="function"){switch(this.event=u,I){case 1:T.call(this);break;case 2:T.call(this,arguments[1]);break;case 3:T.call(this,arguments[1],arguments[2]);break;default:for(w=new Array(I-1),R=1;R<I;R++)w[R-1]=arguments[R];T.apply(this,w)}return!0}else T&&(T=T.slice());if(T&&T.length){if(I>3)for(w=new Array(I-1),R=1;R<I;R++)w[R-1]=arguments[R];for(C=0,S=T.length;C<S;C++)switch(this.event=u,I){case 1:T[C].call(this);break;case 2:T[C].call(this,arguments[1]);break;case 3:T[C].call(this,arguments[1],arguments[2]);break;default:T[C].apply(this,w)}return!0}else if(!this.ignoreErrors&&!this._all&&u==="error")throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");return!!this._all},k.prototype.emitAsync=function(){if(!this._events&&!this._all)return!1;this._events||p.call(this);var u=arguments[0],f=this.wildcard,b,w,S,C,R,M;if(u==="newListener"&&!this._newListener&&!this._events.newListener)return Promise.resolve([!1]);if(f&&(b=u,u!=="newListener"&&u!=="removeListener"&&typeof u=="object")){if(C=u.length,s){for(R=0;R<C;R++)if(typeof u[R]=="symbol"){w=!0;break}}w||(u=u.join(this.delimiter))}var I=[],T=arguments.length,j;if(this._all)for(R=0,C=this._all.length;R<C;R++)switch(this.event=u,T){case 1:I.push(this._all[R].call(this,u));break;case 2:I.push(this._all[R].call(this,u,arguments[1]));break;case 3:I.push(this._all[R].call(this,u,arguments[1],arguments[2]));break;default:I.push(this._all[R].apply(this,arguments))}if(f?(j=[],B.call(this,j,b,this.listenerTree,0)):j=this._events[u],typeof j=="function")switch(this.event=u,T){case 1:I.push(j.call(this));break;case 2:I.push(j.call(this,arguments[1]));break;case 3:I.push(j.call(this,arguments[1],arguments[2]));break;default:for(S=new Array(T-1),M=1;M<T;M++)S[M-1]=arguments[M];I.push(j.apply(this,S))}else if(j&&j.length){if(j=j.slice(),T>3)for(S=new Array(T-1),M=1;M<T;M++)S[M-1]=arguments[M];for(R=0,C=j.length;R<C;R++)switch(this.event=u,T){case 1:I.push(j[R].call(this));break;case 2:I.push(j[R].call(this,arguments[1]));break;case 3:I.push(j[R].call(this,arguments[1],arguments[2]));break;default:I.push(j[R].apply(this,S))}}else if(!this.ignoreErrors&&!this._all&&u==="error")return arguments[1]instanceof Error?Promise.reject(arguments[1]):Promise.reject("Uncaught, unspecified 'error' event.");return Promise.all(I)},k.prototype.on=function(u,f,b){return this._on(u,f,!1,b)},k.prototype.prependListener=function(u,f,b){return this._on(u,f,!0,b)},k.prototype.onAny=function(u){return this._onAny(u,!1)},k.prototype.prependAny=function(u){return this._onAny(u,!0)},k.prototype.addListener=k.prototype.on,k.prototype._onAny=function(u,f){if(typeof u!="function")throw new Error("onAny only accepts instances of Function");return this._all||(this._all=[]),f?this._all.unshift(u):this._all.push(u),this},k.prototype._on=function(u,f,b,w){if(typeof u=="function")return this._onAny(u,f),this;if(typeof f!="function")throw new Error("on only accepts instances of Function");this._events||p.call(this);var S=this,C;return w!==n&&(C=O.call(this,u,f,w),f=C[0],S=C[1]),this._newListener&&this.emit("newListener",u,f),this.wildcard?(te.call(this,u,f,b),S):(this._events[u]?(typeof this._events[u]=="function"&&(this._events[u]=[this._events[u]]),b?this._events[u].unshift(f):this._events[u].push(f),!this._events[u].warned&&this._maxListeners>0&&this._events[u].length>this._maxListeners&&(this._events[u].warned=!0,g.call(this,this._events[u].length,u))):this._events[u]=f,S)},k.prototype.off=function(u,f){if(typeof f!="function")throw new Error("removeListener only takes instances of Function");var b,w=[];if(this.wildcard){var S=typeof u=="string"?u.split(this.delimiter):u.slice();if(w=B.call(this,null,S,this.listenerTree,0),!w)return this}else{if(!this._events[u])return this;b=this._events[u],w.push({_listeners:b})}for(var C=0;C<w.length;C++){var R=w[C];if(b=R._listeners,r(b)){for(var M=-1,I=0,T=b.length;I<T;I++)if(b[I]===f||b[I].listener&&b[I].listener===f||b[I]._origin&&b[I]._origin===f){M=I;break}if(M<0)continue;return this.wildcard?R._listeners.splice(M,1):this._events[u].splice(M,1),b.length===0&&(this.wildcard?delete R._listeners:delete this._events[u]),this._removeListener&&this.emit("removeListener",u,f),this}else(b===f||b.listener&&b.listener===f||b._origin&&b._origin===f)&&(this.wildcard?delete R._listeners:delete this._events[u],this._removeListener&&this.emit("removeListener",u,f))}return this.listenerTree&&P(this.listenerTree),this},k.prototype.offAny=function(u){var f=0,b=0,w;if(u&&this._all&&this._all.length>0){for(w=this._all,f=0,b=w.length;f<b;f++)if(u===w[f])return w.splice(f,1),this._removeListener&&this.emit("removeListenerAny",u),this}else{if(w=this._all,this._removeListener)for(f=0,b=w.length;f<b;f++)this.emit("removeListenerAny",w[f]);this._all=[]}return this},k.prototype.removeListener=k.prototype.off,k.prototype.removeAllListeners=function(u){if(u===n)return!this._events||p.call(this),this;if(this.wildcard){var f=B.call(this,null,u,this.listenerTree,0),b,w;if(!f)return this;for(w=0;w<f.length;w++)b=f[w],b._listeners=null;this.listenerTree&&P(this.listenerTree)}else this._events&&(this._events[u]=null);return this},k.prototype.listeners=function(u){var f=this._events,b,w,S,C,R;if(u===n){if(this.wildcard)throw Error("event name required for wildcard emitter");if(!f)return[];for(b=d(f),C=b.length,S=[];C-- >0;)w=f[b[C]],typeof w=="function"?S.push(w):S.push.apply(S,w);return S}else{if(this.wildcard){if(R=this.listenerTree,!R)return[];var M=[],I=typeof u=="string"?u.split(this.delimiter):u.slice();return B.call(this,M,I,R,0),M}return f?(w=f[u],w?typeof w=="function"?[w]:w:[]):[]}},k.prototype.eventNames=function(u){var f=this._events;return this.wildcard?Z.call(this,this.listenerTree,[],null,u):f?d(f):[]},k.prototype.listenerCount=function(u){return this.listeners(u).length},k.prototype.hasListeners=function(u){if(this.wildcard){var f=[],b=typeof u=="string"?u.split(this.delimiter):u.slice();return B.call(this,f,b,this.listenerTree,0),f.length>0}var w=this._events,S=this._all;return!!(S&&S.length||w&&(u===n?d(w).length:w[u]))},k.prototype.listenersAny=function(){return this._all?this._all:[]},k.prototype.waitFor=function(u,f){var b=this,w=typeof f;return w==="number"?f={timeout:f}:w==="function"&&(f={filter:f}),f=E(f,{timeout:0,filter:n,handleError:!1,Promise,overload:!1},{filter:F,Promise:D}),z(f.Promise,function(S,C,R){function M(){var I=f.filter;if(!(I&&!I.apply(b,arguments)))if(b.off(u,M),f.handleError){var T=arguments[0];T?C(T):S(_.apply(null,arguments).slice(1))}else S(_.apply(null,arguments))}R(function(){b.off(u,M)}),b._on(u,M,!1)},{timeout:f.timeout,overload:f.overload})};function A(u,f,b){b=E(b,{Promise,timeout:0,overload:!1},{Promise:D});var w=b.Promise;return z(w,function(S,C,R){var M;if(typeof u.addEventListener=="function"){M=function(){S(_.apply(null,arguments))},R(function(){u.removeEventListener(f,M)}),u.addEventListener(f,M,{once:!0});return}var I=function(){T&&u.removeListener("error",T),S(_.apply(null,arguments))},T;f!=="error"&&(T=function(j){u.removeListener(f,I),C(j)},u.once("error",T)),R(function(){T&&u.removeListener("error",T),u.removeListener(f,I)}),u.once(f,I)},{timeout:b.timeout,overload:b.overload})}var H=k.prototype;Object.defineProperties(k,{defaultMaxListeners:{get:function(){return H._maxListeners},set:function(u){if(typeof u!="number"||u<0||Number.isNaN(u))throw TypeError("n must be a non-negative number");H._maxListeners=u},enumerable:!0},once:{value:A,writable:!0,configurable:!0}}),Object.defineProperties(H,{_maxListeners:{value:a,writable:!0,configurable:!0},_observers:{value:null,writable:!0,configurable:!0}}),typeof n=="function"||(e.exports=k)})()}(Sn)),Sn.exports}var So=xo(),Ni=Ai(So),En={},ae={},Cn,Mi;function _t(){if(Mi)return Cn;Mi=1,Cn=e;function e(t,n){if(!t)throw new Error(n||"Assertion failed")}return e.equal=function(t,n,i){if(t!=n)throw new Error(i||"Assertion failed: "+t+" != "+n)},Cn}var Ut={exports:{}},zi;function Eo(){return zi||(zi=1,typeof Object.create=="function"?Ut.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:Ut.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}),Ut.exports}var Fi;function Ie(){if(Fi)return ae;Fi=1;var e=_t(),t=Eo();ae.inherits=t;function n(P,L){return(P.charCodeAt(L)&64512)!==55296||L<0||L+1>=P.length?!1:(P.charCodeAt(L+1)&64512)===56320}function i(P,L){if(Array.isArray(P))return P.slice();if(!P)return[];var O=[];if(typeof P=="string")if(L){if(L==="hex")for(P=P.replace(/[^a-z0-9]+/ig,""),P.length%2!==0&&(P="0"+P),A=0;A<P.length;A+=2)O.push(Number.parseInt(P[A]+P[A+1],16))}else for(var k=0,A=0;A<P.length;A++){var H=P.charCodeAt(A);H<128?O[k++]=H:H<2048?(O[k++]=H>>6|192,O[k++]=H&63|128):n(P,A)?(H=65536+((H&1023)<<10)+(P.charCodeAt(++A)&1023),O[k++]=H>>18|240,O[k++]=H>>12&63|128,O[k++]=H>>6&63|128,O[k++]=H&63|128):(O[k++]=H>>12|224,O[k++]=H>>6&63|128,O[k++]=H&63|128)}else for(A=0;A<P.length;A++)O[A]=P[A]|0;return O}ae.toArray=i;function r(P){for(var L="",O=0;O<P.length;O++)L+=s(P[O].toString(16));return L}ae.toHex=r;function a(P){var L=P>>>24|P>>>8&65280|P<<8&16711680|(P&255)<<24;return L>>>0}ae.htonl=a;function o(P,L){for(var O="",k=0;k<P.length;k++){var A=P[k];L==="little"&&(A=a(A)),O+=l(A.toString(16))}return O}ae.toHex32=o;function s(P){return P.length===1?"0"+P:P}ae.zero2=s;function l(P){return P.length===7?"0"+P:P.length===6?"00"+P:P.length===5?"000"+P:P.length===4?"0000"+P:P.length===3?"00000"+P:P.length===2?"000000"+P:P.length===1?"0000000"+P:P}ae.zero8=l;function c(P,L,O,k){var A=O-L;e(A%4===0);for(var H=new Array(A/4),u=0,f=L;u<H.length;u++,f+=4){var b;k==="big"?b=P[f]<<24|P[f+1]<<16|P[f+2]<<8|P[f+3]:b=P[f+3]<<24|P[f+2]<<16|P[f+1]<<8|P[f],H[u]=b>>>0}return H}ae.join32=c;function m(P,L){for(var O=new Array(P.length*4),k=0,A=0;k<P.length;k++,A+=4){var H=P[k];L==="big"?(O[A]=H>>>24,O[A+1]=H>>>16&255,O[A+2]=H>>>8&255,O[A+3]=H&255):(O[A+3]=H>>>24,O[A+2]=H>>>16&255,O[A+1]=H>>>8&255,O[A]=H&255)}return O}ae.split32=m;function d(P,L){return P>>>L|P<<32-L}ae.rotr32=d;function p(P,L){return P<<L|P>>>32-L}ae.rotl32=p;function h(P,L){return P+L>>>0}ae.sum32=h;function g(P,L,O){return P+L+O>>>0}ae.sum32_3=g;function _(P,L,O,k){return P+L+O+k>>>0}ae.sum32_4=_;function y(P,L,O,k,A){return P+L+O+k+A>>>0}ae.sum32_5=y;function v(P,L,O,k){var A=P[L],H=P[L+1],u=k+H>>>0,f=(u<k?1:0)+O+A;P[L]=f>>>0,P[L+1]=u}ae.sum64=v;function E(P,L,O,k){var A=L+k>>>0,H=(A<L?1:0)+P+O;return H>>>0}ae.sum64_hi=E;function D(P,L,O,k){var A=L+k;return A>>>0}ae.sum64_lo=D;function N(P,L,O,k,A,H,u,f){var b=0,w=L;w=w+k>>>0,b+=w<L?1:0,w=w+H>>>0,b+=w<H?1:0,w=w+f>>>0,b+=w<f?1:0;var S=P+O+A+u+b;return S>>>0}ae.sum64_4_hi=N;function F(P,L,O,k,A,H,u,f){var b=L+k+H+f;return b>>>0}ae.sum64_4_lo=F;function U(P,L,O,k,A,H,u,f,b,w){var S=0,C=L;C=C+k>>>0,S+=C<L?1:0,C=C+H>>>0,S+=C<H?1:0,C=C+f>>>0,S+=C<f?1:0,C=C+w>>>0,S+=C<w?1:0;var R=P+O+A+u+b+S;return R>>>0}ae.sum64_5_hi=U;function z(P,L,O,k,A,H,u,f,b,w){var S=L+k+H+f+w;return S>>>0}ae.sum64_5_lo=z;function $(P,L,O){var k=L<<32-O|P>>>O;return k>>>0}ae.rotr64_hi=$;function B(P,L,O){var k=P<<32-O|L>>>O;return k>>>0}ae.rotr64_lo=B;function te(P,L,O){return P>>>O}ae.shr64_hi=te;function Z(P,L,O){var k=P<<32-O|L>>>O;return k>>>0}return ae.shr64_lo=Z,ae}var kn={},Bi;function bt(){if(Bi)return kn;Bi=1;var e=Ie(),t=_t();function n(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}return kn.BlockHash=n,n.prototype.update=function(i,r){if(i=e.toArray(i,r),this.pending?this.pending=this.pending.concat(i):this.pending=i,this.pendingTotal+=i.length,this.pending.length>=this._delta8){i=this.pending;var a=i.length%this._delta8;this.pending=i.slice(i.length-a,i.length),this.pending.length===0&&(this.pending=null),i=e.join32(i,0,i.length-a,this.endian);for(var o=0;o<i.length;o+=this._delta32)this._update(i,o,o+this._delta32)}return this},n.prototype.digest=function(i){return this.update(this._pad()),t(this.pending===null),this._digest(i)},n.prototype._pad=function(){var i=this.pendingTotal,r=this._delta8,a=r-(i+this.padLength)%r,o=new Array(a+this.padLength);o[0]=128;for(var s=1;s<a;s++)o[s]=0;if(i<<=3,this.endian==="big"){for(var l=8;l<this.padLength;l++)o[s++]=0;o[s++]=0,o[s++]=0,o[s++]=0,o[s++]=0,o[s++]=i>>>24&255,o[s++]=i>>>16&255,o[s++]=i>>>8&255,o[s++]=i&255}else for(o[s++]=i&255,o[s++]=i>>>8&255,o[s++]=i>>>16&255,o[s++]=i>>>24&255,o[s++]=0,o[s++]=0,o[s++]=0,o[s++]=0,l=8;l<this.padLength;l++)o[s++]=0;return o},kn}var Je={},Ae={},Ui;function Hi(){if(Ui)return Ae;Ui=1;var e=Ie(),t=e.rotr32;function n(m,d,p,h){if(m===0)return i(d,p,h);if(m===1||m===3)return a(d,p,h);if(m===2)return r(d,p,h)}Ae.ft_1=n;function i(m,d,p){return m&d^~m&p}Ae.ch32=i;function r(m,d,p){return m&d^m&p^d&p}Ae.maj32=r;function a(m,d,p){return m^d^p}Ae.p32=a;function o(m){return t(m,2)^t(m,13)^t(m,22)}Ae.s0_256=o;function s(m){return t(m,6)^t(m,11)^t(m,25)}Ae.s1_256=s;function l(m){return t(m,7)^t(m,18)^m>>>3}Ae.g0_256=l;function c(m){return t(m,17)^t(m,19)^m>>>10}return Ae.g1_256=c,Ae}var $n,ji;function Co(){if(ji)return $n;ji=1;var e=Ie(),t=bt(),n=Hi(),i=e.rotl32,r=e.sum32,a=e.sum32_5,o=n.ft_1,s=t.BlockHash,l=[1518500249,1859775393,2400959708,3395469782];function c(){if(!(this instanceof c))return new c;s.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}return e.inherits(c,s),$n=c,c.blockSize=512,c.outSize=160,c.hmacStrength=80,c.padLength=64,c.prototype._update=function(m,d){for(var p=this.W,h=0;h<16;h++)p[h]=m[d+h];for(;h<p.length;h++)p[h]=i(p[h-3]^p[h-8]^p[h-14]^p[h-16],1);var g=this.h[0],_=this.h[1],y=this.h[2],v=this.h[3],E=this.h[4];for(h=0;h<p.length;h++){var D=~~(h/20),N=a(i(g,5),o(D,_,y,v),E,p[h],l[D]);E=v,v=y,y=i(_,30),_=g,g=N}this.h[0]=r(this.h[0],g),this.h[1]=r(this.h[1],_),this.h[2]=r(this.h[2],y),this.h[3]=r(this.h[3],v),this.h[4]=r(this.h[4],E)},c.prototype._digest=function(m){return m==="hex"?e.toHex32(this.h,"big"):e.split32(this.h,"big")},$n}var Pn,Vi;function Wi(){if(Vi)return Pn;Vi=1;var e=Ie(),t=bt(),n=Hi(),i=_t(),r=e.sum32,a=e.sum32_4,o=e.sum32_5,s=n.ch32,l=n.maj32,c=n.s0_256,m=n.s1_256,d=n.g0_256,p=n.g1_256,h=t.BlockHash,g=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function _(){if(!(this instanceof _))return new _;h.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=g,this.W=new Array(64)}return e.inherits(_,h),Pn=_,_.blockSize=512,_.outSize=256,_.hmacStrength=192,_.padLength=64,_.prototype._update=function(y,v){for(var E=this.W,D=0;D<16;D++)E[D]=y[v+D];for(;D<E.length;D++)E[D]=a(p(E[D-2]),E[D-7],d(E[D-15]),E[D-16]);var N=this.h[0],F=this.h[1],U=this.h[2],z=this.h[3],$=this.h[4],B=this.h[5],te=this.h[6],Z=this.h[7];for(i(this.k.length===E.length),D=0;D<E.length;D++){var P=o(Z,m($),s($,B,te),this.k[D],E[D]),L=r(c(N),l(N,F,U));Z=te,te=B,B=$,$=r(z,P),z=U,U=F,F=N,N=r(P,L)}this.h[0]=r(this.h[0],N),this.h[1]=r(this.h[1],F),this.h[2]=r(this.h[2],U),this.h[3]=r(this.h[3],z),this.h[4]=r(this.h[4],$),this.h[5]=r(this.h[5],B),this.h[6]=r(this.h[6],te),this.h[7]=r(this.h[7],Z)},_.prototype._digest=function(y){return y==="hex"?e.toHex32(this.h,"big"):e.split32(this.h,"big")},Pn}var Dn,Yi;function ko(){if(Yi)return Dn;Yi=1;var e=Ie(),t=Wi();function n(){if(!(this instanceof n))return new n;t.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}return e.inherits(n,t),Dn=n,n.blockSize=512,n.outSize=224,n.hmacStrength=192,n.padLength=64,n.prototype._digest=function(i){return i==="hex"?e.toHex32(this.h.slice(0,7),"big"):e.split32(this.h.slice(0,7),"big")},Dn}var Ln,qi;function Gi(){if(qi)return Ln;qi=1;var e=Ie(),t=bt(),n=_t(),i=e.rotr64_hi,r=e.rotr64_lo,a=e.shr64_hi,o=e.shr64_lo,s=e.sum64,l=e.sum64_hi,c=e.sum64_lo,m=e.sum64_4_hi,d=e.sum64_4_lo,p=e.sum64_5_hi,h=e.sum64_5_lo,g=t.BlockHash,_=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;g.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=_,this.W=new Array(160)}e.inherits(y,g),Ln=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(L,O){for(var k=this.W,A=0;A<32;A++)k[A]=L[O+A];for(;A<k.length;A+=2){var H=Z(k[A-4],k[A-3]),u=P(k[A-4],k[A-3]),f=k[A-14],b=k[A-13],w=B(k[A-30],k[A-29]),S=te(k[A-30],k[A-29]),C=k[A-32],R=k[A-31];k[A]=m(H,u,f,b,w,S,C,R),k[A+1]=d(H,u,f,b,w,S,C,R)}},y.prototype._update=function(L,O){this._prepareBlock(L,O);var k=this.W,A=this.h[0],H=this.h[1],u=this.h[2],f=this.h[3],b=this.h[4],w=this.h[5],S=this.h[6],C=this.h[7],R=this.h[8],M=this.h[9],I=this.h[10],T=this.h[11],j=this.h[12],ne=this.h[13],J=this.h[14],K=this.h[15];n(this.k.length===k.length);for(var X=0;X<k.length;X+=2){var ge=J,ze=K,Fe=z(R,M),$e=$(R,M),rt=v(R,M,I,T,j),Ce=E(R,M,I,T,j,ne),_e=this.k[X],Di=this.k[X+1],Li=k[X],Ri=k[X+1],Ft=p(ge,ze,Fe,$e,rt,Ce,_e,Di,Li,Ri),Bt=h(ge,ze,Fe,$e,rt,Ce,_e,Di,Li,Ri);ge=F(A,H),ze=U(A,H),Fe=D(A,H,u,f,b),$e=N(A,H,u,f,b,w);var Oi=l(ge,ze,Fe,$e),Ii=c(ge,ze,Fe,$e);J=j,K=ne,j=I,ne=T,I=R,T=M,R=l(S,C,Ft,Bt),M=c(C,C,Ft,Bt),S=b,C=w,b=u,w=f,u=A,f=H,A=l(Ft,Bt,Oi,Ii),H=c(Ft,Bt,Oi,Ii)}s(this.h,0,A,H),s(this.h,2,u,f),s(this.h,4,b,w),s(this.h,6,S,C),s(this.h,8,R,M),s(this.h,10,I,T),s(this.h,12,j,ne),s(this.h,14,J,K)},y.prototype._digest=function(L){return L==="hex"?e.toHex32(this.h,"big"):e.split32(this.h,"big")};function v(L,O,k,A,H){var u=L&k^~L&H;return u<0&&(u+=4294967296),u}function E(L,O,k,A,H,u){var f=O&A^~O&u;return f<0&&(f+=4294967296),f}function D(L,O,k,A,H){var u=L&k^L&H^k&H;return u<0&&(u+=4294967296),u}function N(L,O,k,A,H,u){var f=O&A^O&u^A&u;return f<0&&(f+=4294967296),f}function F(L,O){var k=i(L,O,28),A=i(O,L,2),H=i(O,L,7),u=k^A^H;return u<0&&(u+=4294967296),u}function U(L,O){var k=r(L,O,28),A=r(O,L,2),H=r(O,L,7),u=k^A^H;return u<0&&(u+=4294967296),u}function z(L,O){var k=i(L,O,14),A=i(L,O,18),H=i(O,L,9),u=k^A^H;return u<0&&(u+=4294967296),u}function $(L,O){var k=r(L,O,14),A=r(L,O,18),H=r(O,L,9),u=k^A^H;return u<0&&(u+=4294967296),u}function B(L,O){var k=i(L,O,1),A=i(L,O,8),H=a(L,O,7),u=k^A^H;return u<0&&(u+=4294967296),u}function te(L,O){var k=r(L,O,1),A=r(L,O,8),H=o(L,O,7),u=k^A^H;return u<0&&(u+=4294967296),u}function Z(L,O){var k=i(L,O,19),A=i(O,L,29),H=a(L,O,6),u=k^A^H;return u<0&&(u+=4294967296),u}function P(L,O){var k=r(L,O,19),A=r(O,L,29),H=o(L,O,6),u=k^A^H;return u<0&&(u+=4294967296),u}return Ln}var Rn,Ki;function $o(){if(Ki)return Rn;Ki=1;var e=Ie(),t=Gi();function n(){if(!(this instanceof n))return new n;t.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}return e.inherits(n,t),Rn=n,n.blockSize=1024,n.outSize=384,n.hmacStrength=192,n.padLength=128,n.prototype._digest=function(i){return i==="hex"?e.toHex32(this.h.slice(0,12),"big"):e.split32(this.h.slice(0,12),"big")},Rn}var Xi;function Po(){return Xi||(Xi=1,Je.sha1=Co(),Je.sha224=ko(),Je.sha256=Wi(),Je.sha384=$o(),Je.sha512=Gi()),Je}var On={},Zi;function Do(){if(Zi)return On;Zi=1;var e=Ie(),t=bt(),n=e.rotl32,i=e.sum32,r=e.sum32_3,a=e.sum32_4,o=t.BlockHash;function s(){if(!(this instanceof s))return new s;o.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}e.inherits(s,o),On.ripemd160=s,s.blockSize=512,s.outSize=160,s.hmacStrength=192,s.padLength=64,s.prototype._update=function(_,y){for(var v=this.h[0],E=this.h[1],D=this.h[2],N=this.h[3],F=this.h[4],U=v,z=E,$=D,B=N,te=F,Z=0;Z<80;Z++){var P=i(n(a(v,l(Z,E,D,N),_[d[Z]+y],c(Z)),h[Z]),F);v=F,F=N,N=n(D,10),D=E,E=P,P=i(n(a(U,l(79-Z,z,$,B),_[p[Z]+y],m(Z)),g[Z]),te),U=te,te=B,B=n($,10),$=z,z=P}P=r(this.h[1],D,B),this.h[1]=r(this.h[2],N,te),this.h[2]=r(this.h[3],F,U),this.h[3]=r(this.h[4],v,z),this.h[4]=r(this.h[0],E,$),this.h[0]=P},s.prototype._digest=function(_){return _==="hex"?e.toHex32(this.h,"little"):e.split32(this.h,"little")};function l(_,y,v,E){return _<=15?y^v^E:_<=31?y&v|~y&E:_<=47?(y|~v)^E:_<=63?y&E|v&~E:y^(v|~E)}function c(_){return _<=15?0:_<=31?1518500249:_<=47?1859775393:_<=63?2400959708:2840853838}function m(_){return _<=15?1352829926:_<=31?1548603684:_<=47?1836072691:_<=63?2053994217:0}var d=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],p=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],h=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],g=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11];return On}var In,Ji;function Lo(){if(Ji)return In;Ji=1;var e=Ie(),t=_t();function n(i,r,a){if(!(this instanceof n))return new n(i,r,a);this.Hash=i,this.blockSize=i.blockSize/8,this.outSize=i.outSize/8,this.inner=null,this.outer=null,this._init(e.toArray(r,a))}return In=n,n.prototype._init=function(i){i.length>this.blockSize&&(i=new this.Hash().update(i).digest()),t(i.length<=this.blockSize);for(var r=i.length;r<this.blockSize;r++)i.push(0);for(r=0;r<i.length;r++)i[r]^=54;for(this.inner=new this.Hash().update(i),r=0;r<i.length;r++)i[r]^=106;this.outer=new this.Hash().update(i)},n.prototype.update=function(i,r){return this.inner.update(i,r),this},n.prototype.digest=function(i){return this.outer.update(this.inner.digest()),this.outer.digest(i)},In}var Qi;function Ro(){return Qi||(Qi=1,function(e){var t=e;t.utils=Ie(),t.common=bt(),t.sha=Po(),t.ripemd=Do(),t.hmac=Lo(),t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160}(En)),En}var Oo=Ro(),Io=Ai(Oo);class Ao{constructor(t){this.diagram=t}moveElement(t,n,i){const r=this.diagram.context.diagramElement;this.diagram.dx+=t,this.diagram.dy+=n,r.setCssStyles({transition:i?.animated?"transform 0.3s ease-out":"none",transform:`translate(${this.diagram.dx}px, ${this.diagram.dy}px) scale(${this.diagram.scale})`}),i?.animated&&this.diagram.registerDomEvent(r,"transitionend",()=>{r.setCssStyles({transition:"none"})},{once:!0})}zoomElement(t,n){const i=this.diagram.context.diagramElement,r=this.diagram.container.getBoundingClientRect(),a=r.width/2,o=r.height/2,s=(a-this.diagram.dx)/this.diagram.scale,l=(o-this.diagram.dy)/this.diagram.scale;this.diagram.scale*=t,this.diagram.scale=Math.max(.125,this.diagram.scale),this.diagram.dx=a-s*this.diagram.scale,this.diagram.dy=o-l*this.diagram.scale,i.setCssStyles({transition:n?.animated?"transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1)":"none",transform:`translate(${this.diagram.dx}px, ${this.diagram.dy}px) scale(${this.diagram.scale})`}),n?.animated&&this.diagram.registerDomEvent(i,"transitionend",()=>{i.setCssStyles({transition:"none"})},{once:!0})}resetZoomAndMove(t){const n=this.diagram.context.diagramElement;n&&this.fitToContainer(n,this.diagram.container,t)}fitToContainer(t,n,i){const r=n.clientWidth,a=n.clientHeight,o=t.clientWidth,s=t.clientHeight;this.diagram.scale=Math.min(r/o,a/s,1),this.diagram.dx=(r-o*this.diagram.scale)/2,this.diagram.dy=(a-s*this.diagram.scale)/2,t.setCssStyles({transition:i?.animated?"transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)":"none",transform:`translate(${this.diagram.dx}px, ${this.diagram.dy}px) scale(${this.diagram.scale})`,transformOrigin:"top left"}),i?.animated&&this.diagram.plugin.context.view.registerDomEvent(t,"transitionend",()=>{t.setCssStyles({transition:"none"})},{once:!0})}}var er=(e=>(e.Default=".diagram-zoom-drag",e.Mermaid=".mermaid",e.Mehrmaid=".block-language-mehrmaid",e.PlantUML=".block-language-plantuml",e.Graphviz=".block-language-dot",e))(er||{}),ie=(e=>(e[e.NONE=1]="NONE",e[e.MOUSE=2]="MOUSE",e[e.FOCUS=4]="FOCUS",e[e.KEYPRESS=8]="KEYPRESS",e[e.FOLD=16]="FOLD",e[e.FORCE=32]="FORCE",e[e.SERVICE_HIDING=64]="SERVICE_HIDING",e))(ie||{});function An(e,t,n,i){const r=e.dataset.folded==="true"?n.folded:n.expanded,a=r.height.value,o=r.width.value,s=r.height.unit==="%"?a/100*t.height:a,l=r.width.unit==="%"?o/100*t.width:o;if(e.style.height=`${s}px`,e.style.width=`${l}px`,i){const c=e.closest(".live-preview-parent");c.style.setProperty("height",`${s}px`,"important"),c.style.setProperty("width",`${l}px`,"important")}}function Ge(e,t,n){t&&Y.setIcon(e,t),n&&Y.setTooltip(e,n)}class Ht extends Y.Component{constructor(t){super(),this.controlPanel=t}panel;buttons;setupPanelContents(){this.getButtonsConfig().forEach(t=>{const n=this.createButton(t.icon,t.action,t.title,t.id,t.gridArea);this.buttons.set(t.id,{element:n,listener:t.action}),t.dataAttributes&&Object.entries(t.dataAttributes).forEach(([i,r])=>{n.setAttribute(i,r)}),this.panel.appendChild(n)})}get diagram(){return this.controlPanel.diagram}initialize(){this.enabled&&(this.panel=this.createPanelElement(),this.setupPanelContents(),this.visibilityInitialization())}createPanelElement(){const t=this.controlPanel.controlPanel.createEl("div");return t.addClass(this.cssClass),t.addClass("diagram-zoom-drag-panel"),t.addClass("visible"),t.setCssStyles(this.cssStyles),t}createButton(t,n,i,r,a){const o=document.createElement("button");return o.id=r,o.setCssStyles({background:"transparent",border:"none",color:"var(--text-muted)",cursor:"pointer",padding:"4px",borderRadius:"3px",display:"flex",justifyContent:"center",alignItems:"center",transition:"background-color 0.2s ease",gridArea:a??"unset"}),Ge(o,t,i),this.registerDomEvent(o,"click",n),this.registerDomEvent(o,"mouseenter",()=>{o.setCssStyles({color:"var(--interactive-accent)"})}),this.registerDomEvent(o,"mouseleave",()=>{o.setCssStyles({color:"var(--text-muted)"})}),o}visibilityInitialization(){const t=this.controlPanel.diagram.plugin.settings.data.panels.global.triggering.mode,n=this.controlPanel.diagram.container.dataset.folded==="true";let i=ie.NONE;n&&(i|=ie.FOLD),t==="focus"&&(i|=ie.FOCUS),t==="hover"&&(i|=ie.MOUSE),this.hide(i)}show(t){this.shouldRespondToTrigger(t)&&this.panel&&(this.panel.removeClass("hidden"),this.panel.addClass("visible"))}hide(t){this.shouldRespondToTrigger(t)&&this.panel&&(this.panel.removeClass("visible"),this.panel.addClass("hidden"))}isVisible(){return this.panel?.classList?.contains("visible")&&!this.panel.classList.contains("hidden")}shouldRespondToTrigger(t){return t===ie.FORCE?!0:!!(this.supportedTriggers&t)}get supportedTriggers(){const t=this.diagram.plugin.settings.data.panels.global.triggering;let n=ie.FORCE|ie.FOLD|ie.SERVICE_HIDING;return t.mode==="hover"&&(n=n|ie.MOUSE),t.mode==="focus"&&(n=n|ie.FOCUS),n}onunload(){super.onunload()}}var Tn=(e=>(e.Fold="fold",e))(Tn||{}),Be=(e=>(e.Up="up",e.Down="down",e.Left="left",e.Right="right",e.UpRight="upRight",e.UpLeft="upLeft",e.DownLeft="downLeft",e.DownRight="downRight",e))(Be||{}),Ue=(e=>(e.Hide="hide",e.Fullscreen="fullscreen",e.Touch="touch",e))(Ue||{}),jt=(e=>(e.In="in",e.Out="out",e.Reset="reset",e))(jt||{});let To=class extends Ht{constructor(t){super(t),this.controlPanel=t}buttons=new Map;get enabled(){return!0}get cssStyles(){return{position:"absolute",left:"50%",bottom:"0",transform:"translateX(-50%)",gridTemplateColumns:"1fr"}}get cssClass(){return"diagram-fold-panel"}getButtonsConfig(){const t=this.diagram.container.dataset.folded==="true";return[{icon:t?"unfold-vertical":"fold-vertical",action:()=>{const n=this.controlPanel.diagram.container.dataset.folded==="true";n?this.unfold():this.fold();const i=this.buttons.get(Tn.Fold);i&&Ge(i.element,n?"fold-vertical":"unfold-vertical",n?"Fold diagram":"Expand diagram")},title:t?"Expand diagram":"Fold diagram",id:Tn.Fold}]}fold(){this.diagram.container.setAttribute("data-folded","true"),An(this.diagram.container,this.diagram.context.size,this.diagram.plugin.settings.data.diagrams.size,this.diagram.plugin.context.inLivePreviewMode),this.controlPanel.hide(ie.FOLD)}unfold(){this.diagram.container.setAttribute("data-folded","false"),An(this.diagram.container,this.diagram.context.size,this.diagram.plugin.settings.data.diagrams.size,this.diagram.plugin.context.inLivePreviewMode),this.controlPanel.show(ie.FOLD)}get supportedTriggers(){return super.supportedTriggers&~ie.FOLD&~ie.SERVICE_HIDING&~ie.FOCUS&~ie.MOUSE}};var He=(e=>(e.ALWAYS="always",e.HOVER="hover",e.FOCUS="focus",e))(He||{}),tr=(e=>(e.None="none",e.Debug="debug",e.Info="info",e.Warn="warn",e.Error="error",e))(tr||{});class No extends Ht{buttons=new Map;constructor(t){super(t)}get enabled(){return this.diagram.plugin.settings.data.panels.local.panels.move.on&&this.diagram.context.diagramData.panels.move?.on}get cssClass(){return"diagram-move-panel"}get cssStyles(){return{...this.diagram.plugin.settings.data.panels.local.panels.move.position,gridTemplateColumns:"repeat(3, 1fr)",gridTemplateRows:"repeat(3, 1fr)"}}getButtonsConfig(){const t=this.diagram.plugin.settings.data.panels.local.panels.move.buttons;return[{id:Be.UpLeft,icon:"arrow-up-left",title:"Move up left",gridArea:"1 / 1",x:50,y:50},{id:Be.Up,icon:"arrow-up",title:"Move up",gridArea:"1 / 2",x:0,y:50},{id:Be.UpRight,icon:"arrow-up-right",title:"Move up right",gridArea:"1 / 3",x:-50,y:50},{id:Be.Left,icon:"arrow-left",title:"Move left",gridArea:"2 / 1",x:50,y:0},{id:Be.Right,icon:"arrow-right",title:"Move right",gridArea:"2 / 3",x:-50,y:0},{id:Be.DownLeft,icon:"arrow-down-left",title:"Move down left",gridArea:"3 / 1",x:50,y:-50},{id:Be.Down,icon:"arrow-down",title:"Move down",gridArea:"3 / 2",x:0,y:-50},{id:Be.DownRight,icon:"arrow-down-right",title:"Move down right",gridArea:"3 / 3",x:-50,y:-50}].filter(n=>t[n.id]).map(n=>({id:n.id,icon:n.icon,action:()=>this.diagram.actions.moveElement(n.x,n.y,{animated:!0}),title:n.title,gridArea:n.gridArea}))}setupPanelContents(){super.setupPanelContents(),this.panel.toggleClass("hidden",this.diagram.plugin.settings.data.panels.global.triggering.mode!==He.ALWAYS)}}class Mo extends Ht{buttons=new Map;constructor(t){super(t)}initialize(){super.initialize(),this.setupEventListeners()}get enabled(){return this.diagram.plugin.settings.data.panels.local.panels.service.on&&this.diagram.context.diagramData.panels.service.on}get cssClass(){return"diagram-service-panel"}get cssStyles(){return{...this.diagram.plugin.settings.data.panels.local.panels.service.position,gridTemplateColumns:"repeat(auto-fit, minmax(24px, 1fr))",gridAutoFlow:"column"}}getButtonsConfig(){const t=[],n=this.diagram.container,i=this.diagram.plugin.settings.data.panels.local.panels.service.buttons;return i.hide&&t.push({id:Ue.Hide,icon:"eye",action:()=>{const r=this.buttons.get(Ue.Hide)?.element;if(!r)return;const a=r.dataset.hiding==="true",o=!a;r.dataset.hiding=o.toString(),a?this.controlPanel.show(ie.SERVICE_HIDING):this.controlPanel.hide(ie.SERVICE_HIDING),Ge(r,a?"eye":"eye-off",`Panels are ${o?"hidden":"visible"} (click to toggle)`)},title:"Panels are visible (click to toggle)",dataAttributes:{hiding:"false"}}),i.fullscreen&&t.push({id:Ue.Fullscreen,icon:"maximize",action:async()=>{const r=this.buttons.get(Ue.Fullscreen)?.element;r&&(document.fullscreenElement?(n.removeClass("is-fullscreen"),await document.exitFullscreen(),Ge(r,"maximize","Exit fullscreen mode")):(n.addClass("is-fullscreen"),await n.requestFullscreen({navigationUI:"auto"}),Ge(r,"minimize","Open in fullscreen mode")))},title:"Open in fullscreen mode"}),Y.Platform.isMobileApp&&t.push({id:Ue.Touch,icon:this.diagram.nativeTouchEventsEnabled?"circle-slash-2":"hand",action:()=>{const r=this.buttons.get(Ue.Touch)?.element;if(!r)return;this.diagram.nativeTouchEventsEnabled=!this.diagram.nativeTouchEventsEnabled;const a=this.diagram.nativeTouchEventsEnabled;Ge(r,this.diagram.nativeTouchEventsEnabled?"circle-slash-2":"hand",`${a?"Enable":"Disable"} move and pinch zoom`),this.diagram.plugin.showNotice(`Native touches are ${a?"enabled":"disabled"} now. You ${a?"cannot":"can"} move and pinch zoom diagram diagram.`)},title:`${this.diagram.nativeTouchEventsEnabled?"Enable":"Disable"} move and pinch zoom`}),t}setupPanelContents(){const t=this.diagram.plugin.settings;this.panel.toggleClass("hidden",t.data.panels.global.triggering.mode!==He.ALWAYS&&!t.data.panels.global.triggering.ignoreService),super.setupPanelContents()}setupEventListeners(){this.buttons.get(Ue.Fullscreen)?.element&&this.registerDomEvent(this.diagram.container,"fullscreenchange",this.onFullScreenChange)}onFullScreenChange=()=>{const t=this.buttons.get(Ue.Fullscreen)?.element;t&&(document.fullscreenElement?(requestAnimationFrame(()=>{this.diagram.actions.resetZoomAndMove()}),Ge(t,"minimize","Exit fullscreen mode")):(requestAnimationFrame(()=>{this.diagram.actions.resetZoomAndMove()}),Ge(t,"maximize","Open in fullscreen mode")))};get supportedTriggers(){const t=super.supportedTriggers&~ie.SERVICE_HIDING;if(!this.diagram.plugin.settings.data.panels.global.triggering.ignoreService)return t;const n=ie.MOUSE|ie.FOCUS;return t&~n}}class zo extends Ht{buttons=new Map;constructor(t){super(t)}get enabled(){return this.controlPanel.diagram.plugin.settings.data.panels.local.panels.zoom.on&&this.controlPanel.diagram.context.diagramData.panels.zoom.on}get cssClass(){return"diagram-zoom-panel"}get cssStyles(){return{...this.controlPanel.diagram.plugin.settings.data.panels.local.panels.zoom.position,transform:"translateY(-50%)",gridTemplateColumns:"1fr"}}getButtonsConfig(){const t=this.controlPanel.diagram.plugin.settings.data.panels.local.panels.zoom.buttons,n=[];return t.in&&n.push({id:jt.In,icon:"zoom-in",action:()=>this.controlPanel.diagram.actions.zoomElement(1.1,{animated:!0}),title:"Zoom In"}),t.reset&&n.push({id:jt.Reset,icon:"refresh-cw",action:()=>this.controlPanel.diagram.actions.resetZoomAndMove({animated:!0}),title:"Reset Zoom and Position"}),t.out&&n.push({id:jt.Out,icon:"zoom-out",action:()=>this.controlPanel.diagram.actions.zoomElement(.9,{animated:!0}),title:"Zoom Out"}),n}setupPanelContents(){this.panel.toggleClass("hidden",this.controlPanel.diagram.plugin.settings.data.panels.global.triggering.mode!==He.ALWAYS),super.setupPanelContents()}}class Fo extends Y.Component{constructor(t){super(),this.diagram=t}fold;move;zoom;service;controlPanel;initialize(){this.controlPanel=this.diagram.container.createDiv(),this.controlPanel.addClass("diagram-zoom-drag-control-panel"),this.move=new No(this),this.zoom=new zo(this),this.fold=new To(this),this.service=new Mo(this),[this.move,this.zoom,this.fold,this.service].forEach(t=>{this.addChild(t),t.initialize()}),this.diagram.container.appendChild(this.controlPanel)}get panels(){return[this.move,this.zoom,this.fold,this.service]}show(t=ie.FORCE){this.panels.forEach(n=>n.show(t))}hide(t=ie.FORCE){this.panels.forEach(n=>n.hide(t))}get hasVisiblePanels(){return this.panels.some(t=>t.isVisible())}onunload(){super.onunload()}}class Bo{constructor(t){this.contextMenu=t}async copy(){const{plugin:t}=this.contextMenu.events.diagram,n=this.contextMenu.events.diagram.context.diagramElement,i=n.querySelector("svg"),r=n.querySelector("img");try{if(i)await this.copySvg(i);else if(r)await this.copyImg(r);else{console.error("Neither SVG nor IMG element found in the container");return}t.showNotice("Copied")}catch(a){t.showNotice("Copy failed"),console.error("Copy operation failed:",a)}}async copyImg(t){try{const n=await Y.requestUrl(t.src),i=new Blob([n.arrayBuffer],{type:"image/png"});await navigator.clipboard.write([new ClipboardItem({"image/png":i})])}catch(n){this.contextMenu.events.diagram.plugin.logger.debug(`Error copy image: ${n.message}`)}}async copySvg(t){try{t.focus();const n=new XMLSerializer().serializeToString(t);await navigator.clipboard.writeText(n)}catch(n){console.error("Failed to copy SVG:",n)}}}class Uo{constructor(t){this.contextMenu=t}async copy(){const t=this.contextMenu.events.diagram.context.sourceData.source;await navigator.clipboard.writeText(t),this.contextMenu.events.diagram.plugin.showNotice("Copied")}}class Ho{constructor(t){this.contextMenu=t}async export(){const t=this.contextMenu.events.diagram.context.diagramElement,n=t.querySelector("svg"),i=t.querySelector("img");n?this.exportSVG(n):i?await this.exportIMG(i):this.contextMenu.events.diagram.plugin.showNotice("Oops! We couldn't find any elements to export. It seems something is wrong with this diagram?")}exportSVG(t){const n=new XMLSerializer().serializeToString(t),i=`<?xml version="1.0" standalone="no"?>\r `,r=new Blob([i,n],{type:"image/svg+xml;charset=utf-8"});this.downloadFile(r,"svg")}async exportIMG(t){try{const n=await Y.requestUrl(t.src),i=new Blob([n.arrayBuffer],{type:"image/png"});this.downloadFile(i,"png")}catch(n){this.contextMenu.events.diagram.plugin.showNotice("Error exporting image"),this.contextMenu.events.diagram.plugin.logger.error(`Error exporting image: ${n.message}`)}}downloadFile(t,n){const{diagram:i}=this.contextMenu.events,r=`dzg_export_${i.plugin.context.view?.file?.basename??"diagram"}}_${Y.moment().format("YYYYMMDDHHmmss")}.${n}`,a=URL.createObjectURL(t),o=document.createElement("a");o.href=a,o.download=r,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(a)}}class jo extends Y.Component{constructor(t){super(),this.events=t,this.export=new Ho(this),this.copy=new Bo(this),this.copySource=new Uo(this)}export;copy;copySource;initialize(){const t=this.events.diagram.container;this.registerDomEvent(t,"contextmenu",this.onContextMenu,{capture:!0,passive:!1})}onContextMenu=t=>{const n=this.events.diagram.container;t.preventDefault(),t.stopPropagation();const i=n.querySelector("svg");this.events.diagram.container.focus();const r=new Y.Menu;r.addItem(a=>{a.setTitle("Export diagram image"),a.onClick(async()=>{await this.export.export()})}),r.addItem(a=>{a.setTitle(`Copy diagram ${i?"SVG code":"image"}`),a.onClick(async()=>{await this.copy.copy()})}),r.addItem(a=>{a.setTitle("Copy diagram source"),a.onClick(async()=>{await this.copySource.copy()})}),r.showAtMouseEvent(t)}}class Vo extends Y.Component{constructor(t){super(),this.events=t}initialize(){if(!this.events.diagram.plugin.context.view)return;const t=this.events.diagram.container;this.events.diagram.plugin.context.view.registerDomEvent(t,"focusin",this.focusIn),this.events.diagram.plugin.context.view.registerDomEvent(t,"focusout",this.focusOut)}focusIn=()=>{this.events.diagram.plugin.settings.data.diagrams.folding.autoFoldOnFocusChange&&this.events.diagram.controlPanel.fold.unfold(),this.events.diagram.controlPanel.show(ie.FOCUS)};focusOut=()=>{this.events.diagram.plugin.settings.data.diagrams.folding.autoFoldOnFocusChange&&this.events.diagram.controlPanel.fold.fold(),this.events.diagram.controlPanel.hide(ie.FOCUS)}}class Wo extends Y.Component{constructor(t){super(),this.events=t}initialize(){const t=this.events.diagram.container;this.registerDomEvent(t,"keydown",this.keyDown)}keyDown=t=>{const n=t.code;if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Equal","Minus","Digit0"].includes(n)){switch(t.preventDefault(),t.stopPropagation(),n){case"ArrowUp":this.events.diagram.actions.moveElement(0,50,{animated:!0});break;case"ArrowDown":this.events.diagram.actions.moveElement(0,-50,{animated:!0});break;case"ArrowLeft":this.events.diagram.actions.moveElement(50,0,{animated:!0});break;case"ArrowRight":this.events.diagram.actions.moveElement(-50,0,{animated:!0});break}if(t.ctrlKey)switch(n){case"Equal":this.events.diagram.actions.zoomElement(1.1,{animated:!0});break;case"Minus":this.events.diagram.actions.zoomElement(.9,{animated:!0});break;case"Digit0":this.events.diagram.actions.resetZoomAndMove({animated:!0});break}}}}class Yo extends Y.Component{constructor(t){super(),this.events=t}startX;startY;initialX;initialY;isDragging=!1;initialize(){const{container:t}=this.events.diagram;this.registerDomEvent(t,"wheel",this.wheel,{passive:!0}),this.registerDomEvent(t,"wheel",this.wheelScroll,{passive:!0}),this.registerDomEvent(t,"mousedown",this.mouseDown),this.registerDomEvent(t,"mousemove",this.mouseMove),this.registerDomEvent(t,"mouseup",this.mouseUp),this.registerDomEvent(t,"mouseleave",this.mouseLeave),this.registerDomEvent(t,"mouseenter",this.mouseEnterOnDiagram),this.registerDomEvent(t,"mouseleave",this.mouseLeaveOutDiagram)}get elements(){const t=this.events.diagram.container,n=this.events.diagram.context.diagramElement;return{container:t,element:n}}wheel=t=>{if(!t.ctrlKey&&document.fullscreenElement!==this.events.diagram.container||t.shiftKey||t.altKey)return;const{element:n}=this.elements,i=n.getBoundingClientRect(),r=t.clientX-i.left,a=t.clientY-i.top,o=this.events.diagram.scale;this.events.diagram.scale+=t.deltaY*-.001,this.events.diagram.scale=Math.max(.125,this.events.diagram.scale);const s=r*(1-this.events.diagram.scale/o),l=a*(1-this.events.diagram.scale/o);this.events.diagram.dx+=s,this.events.diagram.dy+=l,n.setCssStyles({transform:`translate(${this.events.diagram.dx}px, ${this.events.diagram.dy}px) scale(${this.events.diagram.scale})`})};wheelScroll=t=>{if(!(t.shiftKey||t.altKey))return;const n=t.shiftKey&&!t.altKey,i=t.shiftKey&&t.altKey;let r=0,a=0;n&&(r=t.deltaY>0?20:-20),i&&(a=t.deltaY>0?20:-20),this.events.diagram.actions.moveElement(r,a,{animated:!0})};mouseDown=t=>{if(t.button!==0)return;const{container:n,element:i}=this.elements;n.focus({preventScroll:!0}),this.isDragging=!0,this.startX=t.clientX,this.startY=t.clientY,this.initialX=this.events.diagram.dx,this.initialY=this.events.diagram.dy,i.setCssStyles({cursor:"grabbing"}),t.preventDefault()};mouseMove=t=>{if(!this.isDragging)return;const{element:n}=this.elements,i=t.clientX-this.startX,r=t.clientY-this.startY;this.events.diagram.dx=this.initialX+i,this.events.diagram.dy=this.initialY+r,n.setCssStyles({transform:`translate(${this.events.diagram.dx}px, ${this.events.diagram.dy}px) scale(${this.events.diagram.scale})`})};mouseUp=t=>{const{element:n}=this.elements;this.isDragging=!1,n.setCssStyles({cursor:"grab"})};mouseLeave=t=>{this.mouseUp(t)};mouseEnterOnDiagram=t=>{this.events.diagram.controlPanel.show(ie.MOUSE)};mouseLeaveOutDiagram=t=>{this.events.diagram.controlPanel.hide(ie.MOUSE)}}class qo extends Y.Component{constructor(t){super(),this.diagramEvents=t}startX;startY;initialDistance;isDragging=!1;isPinching=!1;initialize(){const t=this.diagramEvents.diagram.container;this.registerDomEvent(t,"touchstart",this.touchStart,{passive:!1}),this.registerDomEvent(t,"touchmove",this.touchMove,{passive:!1}),this.registerDomEvent(t,"touchend",this.touchEnd,{passive:!1})}touchStart=t=>{this.diagramEvents.diagram.nativeTouchEventsEnabled||t.target.closest(".diagram-zoom-drag-panel")||(t.preventDefault(),t.stopPropagation(),t.touches.length===1?(this.isDragging=!0,this.startX=t.touches[0].clientX,this.startY=t.touches[0].clientY):t.touches.length===2&&(this.isPinching=!0,this.initialDistance=this.calculateDistance(t.touches)))};touchMove=t=>{if(!(this.diagramEvents.diagram.nativeTouchEventsEnabled||(t.preventDefault(),t.stopPropagation(),!this.diagramEvents.diagram.context.diagramElement))){if(this.isDragging&&t.touches.length===1){const n=t.touches[0].clientX-this.startX,i=t.touches[0].clientY-this.startY;this.diagramEvents.diagram.actions.moveElement(n,i),this.startX=t.touches[0].clientX,this.startY=t.touches[0].clientY}else if(this.isPinching&&t.touches.length===2){const n=this.calculateDistance(t.touches),i=n/this.initialDistance;this.diagramEvents.diagram.actions.zoomElement(i),this.initialDistance=n}}};touchEnd=t=>{this.diagramEvents.diagram.nativeTouchEventsEnabled||(this.diagramEvents.diagram.container,t.target.closest(".diagram-zoom-drag-panel")||(t.preventDefault(),t.stopPropagation(),this.isDragging=!1,this.isPinching=!1))};calculateDistance(t){const[n,i]=[t[0],t[1]],r=i.clientX-n.clientX,a=i.clientY-n.clientY;return Math.sqrt(r*r+a*a)}}let Go=class extends Y.Component{constructor(t){super(),this.diagram=t,this.mouse=new Yo(this),this.touch=new qo(this),this.keyboard=new Wo(this),this.focus=new Vo(this),this.contextMenu=new jo(this),this.addChild(this.mouse),this.addChild(this.touch),this.addChild(this.keyboard),this.addChild(this.focus),this.addChild(this.contextMenu)}mouse;touch;keyboard;focus;contextMenu;initialize(){this.mouse.initialize(),this.touch.initialize(),this.keyboard.initialize(),this.focus.initialize(),this.contextMenu.initialize()}},Ko=class extends Y.Component{constructor(t,n,i,r){super(),this.plugin=t,this.container=n,this.originalParent=n.parentNode,this.context=i,this.fileStats=r,this.actions=new Ao(this),this.controlPanel=new Fo(this),this.events=new Go(this),this.addChild(this.events),this.addChild(this.controlPanel),this.load(),this.plugin.logger.debug("Diagram created",{id:this.id,name:this.context.diagramData.name})}container;originalParent;id;dx=0;dy=0;scale=1;nativeTouchEventsEnabled=!1;context;fileStats;actions;controlPanel;events;initialize(){this.plugin.logger.debug(`Initialize diagram with id ${this.id}`),this.controlPanel.initialize(),this.events.initialize(),An(this.container,this.context.size,this.plugin.settings.data.diagrams.size,this.plugin.context.inLivePreviewMode),this.actions.fitToContainer(this.context.diagramElement,this.container),this.plugin.logger.debug("Diagram initialized successfully",{id:this.id})}restoreOriginalDom(){this.plugin.logger.debug("Restoring original DOM for diagram",{id:this.id});const t=this.context.diagramElement;t.setCssStyles({transform:"none",transition:"none"});const n=this.originalParent;n.removeClass("live-preview-parent"),t.removeClass("diagram-content"),this.container.remove(),this.originalParent.style.removeProperty("height"),this.originalParent.style.removeProperty("width"),n.appendChild(t)}onunload(){this.restoreOriginalDom(),this.plugin.logger.debug("Diagram unloaded",{id:this.id}),super.onunload()}},Xo=class{static createDiagram(t,n,i,r,a,o){const s={...n,sourceData:i,size:r};t.logger.debug("Creating diagram...");const l=new Ko(t,o,s,a);return l.initialize(),t.logger.debug("Diagram was created and initialized successfully."),l}};class nr{constructor(t,n){this.plugin=t,this.fileStat=n}async isThatADiagram(t){const n=this.findDiagram(t),i=n?.diagramElement.querySelector("svg"),r=n?.diagramElement.querySelector("img");if(n&&(i||r))return n}findDiagram(t){for(const n of this.plugin.settings.data.diagrams.supported_diagrams){if(!n.on)continue;const i=t.closest(n.selector)??t.querySelector(n.selector);if(i)return{diagramElement:i,diagramData:n}}return null}getDiagramSize(t){const n=t.diagramElement,i=n.querySelector("svg"),r=n.querySelector("img");if(i===null&&r===null)return;const a=r?r.getBoundingClientRect():n.getBoundingClientRect();return{width:a.width,height:a.height}}async genID(t,n){const i=`${n.name}:${t.lineStart}-${t.lineEnd}`,r=Io.sha256().update(i).digest("hex");return`id-${this.plugin.context.view?.file?.stat.ctime??0}-${r}`}sourceExtractionWithContext(t){const n=t.context.getSectionInfo(t.contextEl);if(!n)return{source:"No source available",lineStart:0,lineEnd:0};const{lineStart:i,lineEnd:r,text:a}=n,o=i+1,s=r-1;return{source:a.split(` `).slice(o,s+1).join(` `),lineStart:o,lineEnd:s}}sourceExtractionWithoutContext(t){const n=t.parentElement.cmView?.deco?.widget;return n?{source:n.code,lineStart:n.lineStart,lineEnd:n.lineEnd}:{source:"No source available",lineStart:0,lineEnd:0}}async createDiagramWrapper(t,n){const i=document.createElement("div"),r=t.diagramElement;r.addClass("diagram-content"),i.addClass("diagram-container");const a=this.plugin.context.inPreviewMode?"preview":"live-preview";return i.setAttribute("data-diagram-zoom-drag-rendering-mode",`${a}`),r.parentNode?.insertBefore(i,r),i.appendChild(r),i.id=await this.genID(n,t.diagramData),i.setAttribute("data-folded",this.plugin.settings.data.diagrams.folding.foldByDefault.toString()),i.setAttribute("tabindex","0"),i}initializationGuard(t){return t.parentElement?t.parentElement.hasClass("diagram-container")?(this.plugin.logger.debug("Initialization guard failed: already in diagram-container"),!1):t.hasClass("diagram-content")?(this.plugin.logger.debug("Initialization guard failed: already has diagram-content class"),!1):!0:(this.plugin.logger.debug("Initialization guard failed: no parent element"),!1)}createDiagram(t,n,i,r){this.plugin.logger.debug("Creating diagram",{id:n.id,type:t.diagramData.name});const a=Xo.createDiagram(this.plugin,t,i,r,this.fileStat,n);this.emitCreated(a)}emitCreated(t){this.plugin.eventBus.emit("diagram.created",t)}}class ir extends nr{constructor(t,n){super(t,n)}async initialize(t,n,i,r){if(this.plugin.logger.debug("MarkdownLivePreviewAdapter initializing",{leafID:t,hasExistingObserver:r}),!!this.plugin.state.getLivePreviewObserver(this.plugin.context.leafID)){this.plugin.logger.debug("Live preview observer already exists, skipping initialization");return}this.plugin.logger.debug("Creating new MutationObserver for live preview");const a=new MutationObserver(async s=>{this.plugin.logger.debug("Live preview MutationObserver triggered",{mutationsCount:s.length});for(const l of s)if(l.type==="childList")for(const c of Array.from(l.addedNodes)){if(!(c instanceof Element))continue;const m=await this.isThatADiagram(c);m&&await this.processDiagram(m)}});this.plugin.state.setLivePreviewObserver(t,a),this.plugin.logger.debug("MutationObserver set in state",{leafID:t});const o=n.querySelectorAll(".cm-preview-code-block.cm-embed-block");this.plugin.logger.debug("Found already existing live preview blocks",{count:o.length});for(const s of Array.from(o)){const l=await this.isThatADiagram(s);l&&await this.processDiagram(l)}a.observe(n,{childList:!0,subtree:!0}),this.plugin.logger.debug("MutationObserver started observing",{leafID:t})}async processDiagram(t){if(this.plugin.logger.debug("Processing diagram in live preview",{diagramType:t.diagramData.name}),!this.initializationGuard(t.diagramElement)){this.plugin.logger.debug("Initialization guard failed for live preview diagram");return}const n=this.sourceExtractionWithoutContext(t.diagramElement),i=this.getDiagramSize(t);if(i===void 0){this.plugin.logger.warn("Cannot get diagram size in live preview, skipping");return}t.diagramElement.parentElement?.addClass("live-preview-parent");const r=await this.createDiagramWrapper(t,n);r.addClass("live-preview"),this.createDiagram(t,r,n,i),this.plugin.logger.debug("Live preview diagram processed successfully")}}class Zo extends nr{constructor(t,n){super(t,n)}async initialize(t,n,i,r){if(this.plugin.logger.debug("MarkdownPreviewAdapter initializing",{leafID:t}),!i){this.plugin.logger.warn("No context provided for MarkdownPreviewAdapter");return}const a={context:i,contextEl:n},o=await this.isThatADiagram(n);if(o){this.plugin.logger.debug("Found immediate diagram in preview mode"),await this.processDiagram(t,o,a);return}this.plugin.logger.debug("Creating MutationObserver for preview mode",{timeout:5e3});const s=new MutationObserver(async l=>{this.plugin.logger.debug("Preview MutationObserver triggered",{mutationsCount:l.length});for(const c of l)if(c.type==="childList")for(const m of Array.from(c.addedNodes)){if(!(m instanceof Element))continue;const d=m,p=await this.isThatADiagram(d);p&&await this.processDiagram(t,p,a)}});s.observe(n,{childList:!0,subtree:!0}),setTimeout(()=>{s.disconnect(),this.plugin.logger.debug("Preview MutationObserver disconnected after timeout")},5e3)}async processDiagram(t,n,i){if(this.plugin.logger.debug("Processing diagram in preview mode",{diagramType:n.diagramData.name}),!this.initializationGuard(n.diagramElement))return;const r=this.sourceExtractionWithContext(i),a=this.getDiagramSize(n);if(a===void 0){this.plugin.logger.warn("Cannot get diagram size, skipping");return}const o=await this.createDiagramWrapper(n,r);this.createDiagram(n,o,r,a),this.plugin.logger.debug("Diagram processed successfully in preview mode")}}let Jo=class{constructor(t){this.plugin=t,this.storageKey=`${t.manifest.id}-logs`,this.checkStorageAvailability()}maxEntries=2e3;storageKey;isStorageAvailable=!0;logsDir;async init(){await this.ensureLogsDirExists(),this.plugin.settings.data.debug.enabled&&await this.writeSystemInfo()}async saveLogsToFile(t){try{const n=`logs-${Y.moment().format("YYYY-MM-DD HH:mm:ss")}.json`,i=Y.normalizePath(`${this.logsDir}/${n}`);await this.plugin.app.vault.adapter.write(i,t),await this.rotateLogFiles(this.logsDir)}catch(n){console.error("DiagramZoomDrag: Error in the file:",n)}}async ensureLogsDirExists(){const t=this.plugin.manifest.dir;if(t===void 0)throw new Error(`DiagramZoomDrag: It was not possible to get the way to the plugin. Path:${t}`);this.logsDir=Y.normalizePath(`${t}/logs`),!await this.plugin.app.vault.adapter.exists(this.logsDir)&&await this.plugin.app.vault.adapter.mkdir(this.logsDir)}async rotateLogFiles(t){try{const n=await this.plugin.app.vault.adapter.list(t),i=Y.moment().unix()*1e3,r=7*24*60*60*1e3;for(const a of n.files){if(!a.endsWith(".json"))continue;const o=`${t}/${a}`,s=await this.plugin.app.vault.adapter.stat(o);s&&i-s.mtime>r&&(await this.plugin.app.vault.adapter.remove(o),console.log(`DiagramZoomDrag: Remove the old log-file${a}`))}}catch(n){console.error("DiagramZoomDrag: Log Rotation Error:",n)}}getObsidianVersion(){const t=document.title.match(/Obsidian v([\d.]+)/);return t?t[1]:"unknown"}async writeSystemInfo(){const t=this.getSystemInfo();this.addLogEntry(t)}getSystemInfo(){return{timestamp:Y.moment().toISOString(),session_start:!0,obsidian:{version:this.getObsidianVersion(),title:document.title,enabledPlugins_count:this.plugin.app.plugins.enabledPlugins.size,enabledPlugins_list:Array.from(this.plugin.app.plugins.enabledPlugins),vault_name:this.plugin.app.vault.getName(),is_mobile:Y.Platform.isMobile,is_desktop:Y.Platform.isDesktopApp},system:{platform:this.getPlatformInfo(),userAgent:navigator.userAgent,language:navigator.language,screen_resolution:`${screen.width}x${screen.height}`,viewport_size:`${window.innerWidth}x${window.innerHeight}`,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,online_status:navigator.onLine,cpu_cores:navigator.hardwareConcurrency||"unknown",device_memory:navigator.deviceMemory||"unknown",connection_type:navigator.connection?.effectiveType||"unknown"},plugin:{name:this.plugin.manifest.name,version:this.plugin.manifest.version,minAppVersion:this.plugin.manifest.minAppVersion,id:this.plugin.manifest.id,author:this.plugin.manifest.author,description:this.plugin.manifest.description},performance:{memory_used:performance.memory?.usedJSHeapSize||"unknown",memory_total:performance.memory?.totalJSHeapSize||"unknown",memory_limit:performance.memory?.jsHeapSizeLimit||"unknown",load_time:performance.now()},storage:{localStorage_usage:this.getStorageUsage()}}}getShortSystemInfo(){return{timestamp:Y.moment().toISOString(),obsidian:{version:this.getObsidianVersion(),vault_name:this.plugin.app.vault.getName(),is_mobile:Y.Platform.isMobile},system:{platform:this.getPlatformInfo(),language:navigator.language,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone},plugin:{name:this.plugin.manifest.name,version:this.plugin.manifest.version,id:this.plugin.manifest.id}}}getPlatformInfo(){return"userAgentData"in navigator?navigator.userAgentData.platform??"unknown":navigator.platform??"unknown"}getStorageUsage(){try{const t=localStorage.getItem(this.storageKey);return t?`${((t.length+this.storageKey.length)/1024).toFixed(2)} KB`:"0 B"}catch{return"unknown"}}checkStorageAvailability(){try{localStorage.setItem("test","test"),localStorage.removeItem("test")}catch{this.isStorageAvailable=!1,console.warn("Diagram Zoom Drag: Localstorage is not available")}}addLogEntry(t){if(this.isStorageAvailable)try{const n=this.getAllLogs();n.push(t),n.length>this.maxEntries&&n.splice(0,n.length-this.maxEntries),localStorage.setItem(this.storageKey,JSON.stringify(n))}catch(n){console.error("Logger: \u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u043F\u0438\u0441\u0438 \u0432 localStorage:",n),this.isStorageAvailable=!1}}getAllLogs(){const t=localStorage.getItem(this.storageKey);return t?JSON.parse(t):[]}log(t,n,i){if(!this.plugin.settings.data.debug.enabled)return;const r={timestamp:new Date().toISOString(),level:t,message:n,context:i};this.addLogEntry(r)}shouldLog(t){const n=["none","debug","info","warn","error"],i=this.plugin.settings.data.debug.level;if(i==="none")return!1;const r=n.indexOf(t.toLowerCase()),a=n.indexOf(i);return r>=a}debug(t,n){this.shouldLog("debug")&&this.log("DEBUG",t,n)}info(t,n){this.shouldLog("info")&&this.log("INFO",t,n)}warn(t,n){this.shouldLog("warn")&&this.log("WARNING",t,n)}error(t,n){this.shouldLog("error")&&this.log("ERROR",t,n)}exportLogs(){const t=this.getAllLogs();if(t.length===0)return"";const n=t.filter(a=>a.session_start),i=t.filter(a=>!a.session_start);let r=`=== SYSTEM INFO === `;return n.forEach(a=>{r+=JSON.stringify(a,null,2)+` `}),r+=` === LOGS === `,i.forEach(a=>{const o=new Date(a.timestamp),s=o.toLocaleTimeString(),l=o.toLocaleDateString();r+=`[${l} ${s}] ${a.level}: ${a.message} ${a.context?`context: ${JSON.stringify(a.context,null,2)}`:""} `,r+=` `}),r}clearAllLogs(){localStorage.removeItem(this.storageKey)}};function Nn(e,t=[]){return new Proxy(e,{get(n,i){if(i==="$path")return`settings.${t.join(".")}`;const r=t.length>0?`settings.${t.join(".")}`:"settings";if(i==="$all"||i==="$deep")return`${r}.**`;if(i==="$children")return Nn(e,[...t,i]);const a=n[i];if(typeof a!="object"||a===null){const o=`settings.${[...t,i].join(".")}`;return{$path:o,$all:`${o}.**`,$deep:`${o}.**`,$children:`${o}.*`,toString:()=>o,valueOf:()=>o}}return Nn(a,[...t,i])}})}function Vt(e,t,n=[]){return new Proxy(t,{get(i,r){const a=i[r];return typeof a=="object"&&a!==null?Vt(e,a,[...n,r]):a},set(i,r,a){const o=i[r];i[r]=a;const s=[...n,r].join(".");return e.settings.eventBus?.emit(`settings.${s}`,{eventName:`settings.${s}`,oldValue:o,newValue:a}),!0},deleteProperty(i,r){const a=i[r],o=r in i;if(delete i[r],o){const s=[...n,r].join(".");e.settings.eventBus?.emit(`settings.${s}`,{eventName:`settings.${s}`,operation:"delete",oldValue:a,newValue:void 0})}return!0}})}class Qo{constructor(t){this.settingsManager=t}MAP={diagramsPerPage:"diagrams.settingsPagination.perPage",foldByDefault:"diagrams.folding.foldByDefault",automaticFoldingOnFocusChange:"diagrams.folding.autoFoldOnFocusChange",supported_diagrams:"diagrams.supported_diagrams",hideOnMouseOutDiagram:{target:"panels.global.triggering.mode",transform:t=>t?He.HOVER:He.ALWAYS},addHidingButton:"panels.local.panels.service.buttons.hide","panelsConfig.service.enabled":"panels.local.panels.service.on","panelsConfig.move.enabled":"panels.local.panels.move.on","panelsConfig.zoom.enabled":"panels.local.panels.zoom.on",diagramExpanded:{target:"diagrams.size.expanded",transform:t=>this.migrateDimensionSetting(t)},diagramFolded:{target:"diagrams.size.folded",transform:t=>this.migrateDimensionSetting(t)}};apply(t){const n=JSON.parse(JSON.stringify(this.settingsManager.defaultSettings));for(const[r,a]of Object.entries(this.MAP)){const o=this.getNestedValue(t,r);if(o!==void 0)if(typeof a=="string")this.setNestedValue(n,a,o);else{const s=a.transform(o);this.setNestedValue(n,a.target,s)}}const i=t.panelsConfig;return i&&(i.service?.position&&(n.panels.local.panels.service.position=i.service.position),i.move?.position&&(n.panels.local.panels.move.position=i.move.position),i.zoom?.position&&(n.panels.local.panels.zoom.position=i.zoom.position)),n}migrateDimensionSetting(t){return{width:{value:Number.parseInt(t?.width,10)||100,unit:t?.widthUnit||"px"},height:{value:Number.parseInt(t?.height,10)||100,unit:t?.heightUnit||"px"}}}getNestedValue(t,n){return n.split(".").reduce((i,r)=>i?.[r],t)}setNestedValue(t,n,i){const r=n.split("."),a=r.pop(),o=r.reduce((s,l)=>(s[l]||(s[l]={}),s[l]),t);o[a]=i}}class es{constructor(t){this.settingsManager=t}CURRENT_VERSION="5.3.0";migrate(t){try{if(t?.version===this.CURRENT_VERSION)return{success:!0,version:this.CURRENT_VERSION,data:t};let n;const i=t?.version??"unknown";return!t?.version||t.version==="5.2.0"?n=new Qo(this.settingsManager).apply(t):(this.settingsManager.plugin.logger.warn(`Unknown settings version: ${i}, using defaults`),n=this.settingsManager.defaultSettings),{success:!0,version:this.CURRENT_VERSION,data:n}}catch(n){return{success:!1,version:this.CURRENT_VERSION,errors:[`Migration from ${t?.version??"unknown"} failed: ${n.message}`]}}}}let ts=class{constructor(t){this.plugin=t,this.eventBus=new Ni({wildcard:!0,delimiter:"."}),this.migration=new es(this)}eventBus;migration;events;data;get defaultSettings(){return{version:"5.3.0",diagrams:{folding:{foldByDefault:!1,autoFoldOnFocusChange:!1},settingsPagination:{perPage:5},size:{expanded:{width:{value:400,unit:"px"},height:{value:400,unit:"px"}},folded:{width:{value:200,unit:"px"},height:{value:200,unit:"px"}}},supported_diagrams:Object.entries(er).map(([t,n])=>({name:t,selector:n,on:!0,panels:{move:{on:!0},zoom:{on:!0},service:{on:!0}}}))},panels:{global:{triggering:{mode:He.ALWAYS,ignoreService:!0}},local:{preset:"",panels:{service:{on:!0,buttons:{hide:!0,fullscreen:!0},position:{top:"0px",right:"0px"}},move:{on:!0,buttons:{up:!0,down:!0,left:!0,right:!0,upLeft:!0,upRight:!0,downLeft:!0,downRight:!0},position:{bottom:"0px",right:"0px"}},zoom:{on:!0,buttons:{in:!0,out:!0,reset:!0},position:{top:"50%",right:"0px"}}}}},debug:{enabled:!1,level:tr.None}}}async loadSettings(){const t=await this.plugin.loadData()??this.defaultSettings,n=this.migration.migrate(t);let i,r=!1;n.success?n.data?(i=n.data,r=t?.version!==this.migration.CURRENT_VERSION):(console.error("Migration succeeded but data is empty. Using defaults..."),i=this.defaultSettings,r=!0):(console.error(`Diagram Zoom Drag: Error loading settings: ${JSON.stringify(n.errors)}. Resetting to defaults...`),i=this.defaultSettings,r=!0),this.data=Vt(this.plugin,{...i}),this.events=Nn(i),r&&await this.saveSettings()}async saveSettings(){const t={...this.data};await this.plugin.saveData(t)}async resetSettings(){const t=this.plugin.manifest.dir;if(!t)throw new Error("DiagramZoomDrag: `No plugin dir found`");const n=Y.normalizePath(`${t}/data.json`);await this.plugin.app.vault.adapter.exists(n)&&await this.plugin.app.vault.adapter.remove(n),await this.loadSettings()}};var wt,q,rr,Qe,ar,or,sr,lr,Mn,zn,Fn,ur,xt={},cr=[],ns=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,St=Array.isArray;function Te(e,t){for(var n in t)e[n]=t[n];return e}function Bn(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function V(e,t,n){var i,r,a,o={};for(a in t)a=="key"?i=t[a]:a=="ref"?r=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?wt.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return Et(e,o,i,r,null)}function Et(e,t,n,i,r){var a={type:e,props:t,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:r??++rr,__i:-1,__u:0};return r==null&&q.vnode!=null&&q.vnode(a),a}function is(){return{current:null}}function oe(e){return e.children}function Pe(e,t){this.props=e,this.context=t}function at(e,t){if(t==null)return e.__?at(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?at(e):null}function dr(e){var t,n;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null){e.__e=e.__c.base=n.__e;break}return dr(e)}}function Un(e){(!e.__d&&(e.__d=!0)&&Qe.push(e)&&!Wt.__r++||ar!=q.debounceRendering)&&((ar=q.debounceRendering)||or)(Wt)}function Wt(){for(var e,t,n,i,r,a,o,s=1;Qe.length;)Qe.length>s&&Qe.sort(sr),e=Qe.shift(),s=Qe.length,e.__d&&(n=void 0,r=(i=(t=e).__v).__e,a=[],o=[],t.__P&&((n=Te({},i)).__v=i.__v+1,q.vnode&&q.vnode(n),Hn(t.__P,n,i,t.__n,t.__P.namespaceURI,32&i.__u?[r]:null,a,r??at(i),!!(32&i.__u),o),n.__v=i.__v,n.__.__k[n.__i]=n,mr(a,n,o),n.__e!=r&&dr(n)));Wt.__r=0}function hr(e,t,n,i,r,a,o,s,l,c,m){var d,p,h,g,_,y,v=i&&i.__k||cr,E=t.length;for(l=rs(n,t,v,l,E),d=0;d<E;d++)(h=n.__k[d])!=null&&(p=h.__i==-1?xt:v[h.__i]||xt,h.__i=d,y=Hn(e,h,p,r,a,o,s,l,c,m),g=h.__e,h.ref&&p.ref!=h.ref&&(p.ref&&jn(p.ref,null,h),m.push(h.ref,h.__c||g,h)),_==null&&g!=null&&(_=g),4&h.__u||p.__k===h.__k?l=pr(h,l,e):typeof h.type=="function"&&y!==void 0?l=y:g&&(l=g.nextSibling),h.__u&=-7);return n.__e=_,l}function rs(e,t,n,i,r){var a,o,s,l,c,m=n.length,d=m,p=0;for(e.__k=new Array(r),a=0;a<r;a++)(o=t[a])!=null&&typeof o!="boolean"&&typeof o!="function"?(l=a+p,(o=e.__k[a]=typeof o=="string"||typeof o=="number"||typeof o=="bigint"||o.constructor==String?Et(null,o,null,null,null):St(o)?Et(oe,{children:o},null,null,null):o.constructor==null&&o.__b>0?Et(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=e,o.__b=e.__b+1,s=null,(c=o.__i=as(o,n,l,d))!=-1&&(d--,(s=n[c])&&(s.__u|=2)),s==null||s.__v==null?(c==-1&&(r>m?p--:r<m&&p++),typeof o.type!="function"&&(o.__u|=4)):c!=l&&(c==l-1?p--:c==l+1?p++:(c>l?p--:p++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<m;a++)(s=n[a])!=null&&(2&s.__u)==0&&(s.__e==i&&(i=at(s)),yr(s,s));return i}function pr(e,t,n){var i,r;if(typeof e.type=="function"){for(i=e.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=e,t=pr(i[r],t,n));return t}e.__e!=t&&(t&&e.type&&!n.contains(t)&&(t=at(e)),n.insertBefore(e.__e,t||null),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function je(e,t){return t=t||[],e==null||typeof e=="boolean"||(St(e)?e.some(function(n){je(n,t)}):t.push(e)),t}function as(e,t,n,i){var r,a,o=e.key,s=e.type,l=t[n];if(l===null&&e.key==null||l&&o==l.key&&s==l.type&&(2&l.__u)==0)return n;if(i>(l!=null&&(2&l.__u)==0?1:0))for(r=n-1,a=n+1;r>=0||a<t.length;){if(r>=0){if((l=t[r])&&(2&l.__u)==0&&o==l.key&&s==l.type)return r;r--}if(a<t.length){if((l=t[a])&&(2&l.__u)==0&&o==l.key&&s==l.type)return a;a++}}return-1}function gr(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||ns.test(t)?n:n+"px"}function Yt(e,t,n,i,r){var a,o;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof i=="string"&&(e.style.cssText=i=""),i)for(t in i)n&&t in n||gr(e.style,t,"");if(n)for(t in n)i&&n[t]==i[t]||gr(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")a=t!=(t=t.replace(lr,"$1")),o=t.toLowerCase(),t=o in e||t=="onFocusOut"||t=="onFocusIn"?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?i?n.u=i.u:(n.u=Mn,e.addEventListener(t,a?Fn:zn,a)):e.removeEventListener(t,a?Fn:zn,a);else{if(r=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function fr(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t.t==null)t.t=Mn++;else if(t.t<n.u)return;return n(q.event?q.event(t):t)}}}function Hn(e,t,n,i,r,a,o,s,l,c){var m,d,p,h,g,_,y,v,E,D,N,F,U,z,$,B,te,Z=t.type;if(t.constructor!=null)return null;128&n.__u&&(l=!!(32&n.__u),a=[s=t.__e=n.__e]),(m=q.__b)&&m(t);e:if(typeof Z=="function")try{if(v=t.props,E="prototype"in Z&&Z.prototype.render,D=(m=Z.contextType)&&i[m.__c],N=m?D?D.props.value:m.__:i,n.__c?y=(d=t.__c=n.__c).__=d.__E:(E?t.__c=d=new Z(v,N):(t.__c=d=new Pe(v,N),d.constructor=Z,d.render=ss),D&&D.sub(d),d.props=v,d.state||(d.state={}),d.context=N,d.__n=i,p=d.__d=!0,d.__h=[],d._sb=[]),E&&d.__s==null&&(d.__s=d.state),E&&Z.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=Te({},d.__s)),Te(d.__s,Z.getDerivedStateFromProps(v,d.__s))),h=d.props,g=d.state,d.__v=t,p)E&&Z.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),E&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(E&&Z.getDerivedStateFromProps==null&&v!==h&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(v,N),!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(v,d.__s,N)===!1||t.__v==n.__v){for(t.__v!=n.__v&&(d.props=v,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(P){P&&(P.__=t)}),F=0;F<d._sb.length;F++)d.__h.push(d._sb[F]);d._sb=[],d.__h.length&&o.push(d);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(v,d.__s,N),E&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(h,g,_)})}if(d.context=N,d.props=v,d.__P=e,d.__e=!1,U=q.__r,z=0,E){for(d.state=d.__s,d.__d=!1,U&&U(t),m=d.render(d.props,d.state,d.context),$=0;$<d._sb.length;$++)d.__h.push(d._sb[$]);d._sb=[]}else do d.__d=!1,U&&U(t),m=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++z<25);d.state=d.__s,d.getChildContext!=null&&(i=Te(Te({},i),d.getChildContext())),E&&!p&&d.getSnapshotBeforeUpdate!=null&&(_=d.getSnapshotBeforeUpdate(h,g)),B=m,m!=null&&m.type===oe&&m.key==null&&(B=vr(m.props.children)),s=hr(e,St(B)?B:[B],t,n,i,r,a,o,s,l,c),d.base=t.__e,t.__u&=-161,d.__h.length&&o.push(d),y&&(d.__E=d.__=null)}catch(P){if(t.__v=null,l||a!=null)if(P.then){for(t.__u|=l?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;a[a.indexOf(s)]=null,t.__e=s}else for(te=a.length;te--;)Bn(a[te]);else t.__e=n.__e,t.__k=n.__k;q.__e(P,t,n)}else a==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):s=t.__e=os(n.__e,t,n,i,r,a,o,l,c);return(m=q.diffed)&&m(t),128&t.__u?void 0:s}function mr(e,t,n){for(var i=0;i<n.length;i++)jn(n[i],n[++i],n[++i]);q.__c&&q.__c(t,e),e.some(function(r){try{e=r.__h,r.__h=[],e.some(function(a){a.call(r)})}catch(a){q.__e(a,r.__v)}})}function vr(e){return typeof e!="object"||e==null||e.__b&&e.__b>0?e:St(e)?e.map(vr):Te({},e)}function os(e,t,n,i,r,a,o,s,l){var c,m,d,p,h,g,_,y=n.props,v=t.props,E=t.type;if(E=="svg"?r="http://www.w3.org/2000/svg":E=="math"?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),a!=null){for(c=0;c<a.length;c++)if((h=a[c])&&"setAttribute"in h==!!E&&(E?h.localName==E:h.nodeType==3)){e=h,a[c]=null;break}}if(e==null){if(E==null)return document.createTextNode(v);e=document.createElementNS(r,E,v.is&&v),s&&(q.__m&&q.__m(t,a),s=!1),a=null}if(E==null)y===v||s&&e.data==v||(e.data=v);else{if(a=a&&wt.call(e.childNodes),y=n.props||xt,!s&&a!=null)for(y={},c=0;c<e.attributes.length;c++)y[(h=e.attributes[c]).name]=h.value;for(c in y)if(h=y[c],c!="children"){if(c=="dangerouslySetInnerHTML")d=h;else if(!(c in v)){if(c=="value"&&"defaultValue"in v||c=="checked"&&"defaultChecked"in v)continue;Yt(e,c,null,h,r)}}for(c in v)h=v[c],c=="children"?p=h:c=="dangerouslySetInnerHTML"?m=h:c=="value"?g=h:c=="checked"?_=h:s&&typeof h!="function"||y[c]===h||Yt(e,c,h,y[c],r);if(m)s||d&&(m.__html==d.__html||m.__html==e.innerHTML)||(e.innerHTML=m.__html),t.__k=[];else if(d&&(e.innerHTML=""),hr(t.type=="template"?e.content:e,St(p)?p:[p],t,n,i,E=="foreignObject"?"http://www.w3.org/1999/xhtml":r,a,o,a?a[0]:n.__k&&at(n,0),s,l),a!=null)for(c=a.length;c--;)Bn(a[c]);s||(c="value",E=="progress"&&g==null?e.removeAttribute("value"):g!=null&&(g!==e[c]||E=="progress"&&!g||E=="option"&&g!=y[c])&&Yt(e,c,g,y[c],r),c="checked",_!=null&&_!=e[c]&&Yt(e,c,_,y[c],r))}return e}function jn(e,t,n){try{if(typeof e=="function"){var i=typeof e.__u=="function";i&&e.__u(),i&&t==null||(e.__u=e(t))}else e.current=t}catch(r){q.__e(r,n)}}function yr(e,t,n){var i,r;if(q.unmount&&q.unmount(e),(i=e.ref)&&(i.current&&i.current!=e.__e||jn(i,null,t)),(i=e.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(a){q.__e(a,t)}i.base=i.__P=null}if(i=e.__k)for(r=0;r<i.length;r++)i[r]&&yr(i[r],t,n||typeof e.type!="function");n||Bn(e.__e),e.__c=e.__=e.__e=void 0}function ss(e,t,n){return this.constructor(e,n)}function Ct(e,t,n){var i,r,a,o;t==document&&(t=document.documentElement),q.__&&q.__(e,t),r=(i=typeof n=="function")?null:n&&n.__k||t.__k,a=[],o=[],Hn(t,e=(!i&&n||t).__k=V(oe,null,[e]),r||xt,xt,t.namespaceURI,!i&&n?[n]:r?null:t.firstChild?wt.call(t.childNodes):null,a,!i&&n?n:r?r.__e:t.firstChild,i,o),mr(a,e,o)}function _r(e,t){Ct(e,t,_r)}function ls(e,t,n){var i,r,a,o,s=Te({},e.props);for(a in e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)a=="key"?i=t[a]:a=="ref"?r=t[a]:s[a]=t[a]===void 0&&o!=null?o[a]:t[a];return arguments.length>2&&(s.children=arguments.length>3?wt.call(arguments,2):n),Et(e.type,s,i||e.key,r||e.ref,null)}function be(e){function t(n){var i,r;return this.getChildContext||(i=new Set,(r={})[t.__c]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){i=null},this.shouldComponentUpdate=function(a){this.props.value!=a.value&&i.forEach(function(o){o.__e=!0,Un(o)})},this.sub=function(a){i.add(a);var o=a.componentWillUnmount;a.componentWillUnmount=function(){i&&i.delete(a),o&&o.call(a)}}),n.children}return t.__c="__cC"+ur++,t.__=e,t.Provider=t.__l=(t.Consumer=function(n,i){return n.children(i)}).contextType=t,t}wt=cr.slice,q={__e:function(e,t,n,i){for(var r,a,o;t=t.__;)if((r=t.__c)&&!r.__)try{if((a=r.constructor)&&a.getDerivedStateFromError!=null&&(r.setState(a.getDerivedStateFromError(e)),o=r.__d),r.componentDidCatch!=null&&(r.componentDidCatch(e,i||{}),o=r.__d),o)return r.__E=r}catch(s){e=s}throw e}},rr=0,Pe.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Te({},this.state),typeof e=="function"&&(e=e(Te({},n),this.props)),e&&Te(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Un(this))},Pe.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Un(this))},Pe.prototype.render=oe,Qe=[],or=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,sr=function(e,t){return e.__v.__b-t.__v.__b},Wt.__r=0,lr=/(PointerCapture)$|Capture$/i,Mn=0,zn=fr(!1),Fn=fr(!0),ur=0;var us=0;function x(e,t,n,i,r,a){t||(t={});var o,s,l=t;if("ref"in l)for(s in l={},t)s=="ref"?o=t[s]:l[s]=t[s];var c={type:e,props:l,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--us,__i:-1,__u:0,__source:r,__self:a};if(typeof e=="function"&&(o=e.defaultProps))for(s in o)l[s]===void 0&&(l[s]=o[s]);return q.vnode&&q.vnode(c),c}var Ke,le,Vn,br,ot=0,wr=[],ce=q,xr=ce.__b,Sr=ce.__r,Er=ce.diffed,Cr=ce.__c,kr=ce.unmount,$r=ce.__;function st(e,t){ce.__h&&ce.__h(le,e,ot||t),ot=0;var n=le.__H||(le.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Q(e){return ot=1,Wn(Or,e)}function Wn(e,t,n){var i=st(Ke++,2);if(i.t=e,!i.__c&&(i.__=[n?n(t):Or(void 0,t),function(s){var l=i.__N?i.__N[0]:i.__[0],c=i.t(l,s);l!==c&&(i.__N=[c,i.__[1]],i.__c.setState({}))}],i.__c=le,!le.__f)){var r=function(s,l,c){if(!i.__c.__H)return!0;var m=i.__c.__H.__.filter(function(p){return!!p.__c});if(m.every(function(p){return!p.__N}))return!a||a.call(this,s,l,c);var d=i.__c.props!==s;return m.forEach(function(p){if(p.__N){var h=p.__[0];p.__=p.__N,p.__N=void 0,h!==p.__[0]&&(d=!0)}}),a&&a.call(this,s,l,c)||d};le.__f=!0;var a=le.shouldComponentUpdate,o=le.componentWillUpdate;le.componentWillUpdate=function(s,l,c){if(this.__e){var m=a;a=void 0,r(s,l,c),a=m}o&&o.call(this,s,l,c)},le.shouldComponentUpdate=r}return i.__N||i.__}function fe(e,t){var n=st(Ke++,3);!ce.__s&&qn(n.__H,t)&&(n.__=e,n.u=t,le.__H.__h.push(n))}function Xe(e,t){var n=st(Ke++,4);!ce.__s&&qn(n.__H,t)&&(n.__=e,n.u=t,le.__h.push(n))}function we(e){return ot=5,de(function(){return{current:e}},[])}function Pr(e,t,n){ot=6,Xe(function(){if(typeof e=="function"){var i=e(t());return function(){e(null),i&&typeof i=="function"&&i()}}if(e)return e.current=t(),function(){return e.current=null}},n==null?n:n.concat(e))}function de(e,t){var n=st(Ke++,7);return qn(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Se(e,t){return ot=8,de(function(){return e},t)}function ee(e){var t=le.context[e.__c],n=st(Ke++,9);return n.c=e,t?(n.__==null&&(n.__=!0,t.sub(le)),t.props.value):e.__}function Dr(e,t){ce.useDebugValue&&ce.useDebugValue(t?t(e):e)}function Lr(){var e=st(Ke++,11);if(!e.__){for(var t=le.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__}function cs(){for(var e;e=wr.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(qt),e.__H.__h.forEach(Yn),e.__H.__h=[]}catch(t){e.__H.__h=[],ce.__e(t,e.__v)}}ce.__b=function(e){le=null,xr&&xr(e)},ce.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),$r&&$r(e,t)},ce.__r=function(e){Sr&&Sr(e),Ke=0;var t=(le=e.__c).__H;t&&(Vn===le?(t.__h=[],le.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.forEach(qt),t.__h.forEach(Yn),t.__h=[],Ke=0)),Vn=le},ce.diffed=function(e){Er&&Er(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(wr.push(t)!==1&&br===ce.requestAnimationFrame||((br=ce.requestAnimationFrame)||ds)(cs)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),Vn=le=null},ce.__c=function(e,t){t.some(function(n){try{n.__h.forEach(qt),n.__h=n.__h.filter(function(i){return!i.__||Yn(i)})}catch(i){t.some(function(r){r.__h&&(r.__h=[])}),t=[],ce.__e(i,n.__v)}}),Cr&&Cr(e,t)},ce.unmount=function(e){kr&&kr(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(i){try{qt(i)}catch(r){t=r}}),n.__H=void 0,t&&ce.__e(t,n.__v))};var Rr=typeof requestAnimationFrame=="function";function ds(e){var t,n=function(){clearTimeout(i),Rr&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(n,35);Rr&&(t=requestAnimationFrame(n))}function qt(e){var t=le,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),le=t}function Yn(e){var t=le;e.__c=e.__(),le=t}function qn(e,t){return!e||e.length!==t.length||t.some(function(n,i){return n!==e[i]})}function Or(e,t){return typeof t=="function"?t(e):t}function Ir(e,t){for(var n in t)e[n]=t[n];return e}function Gn(e,t){for(var n in e)if(n!=="__source"&&!(n in t))return!0;for(var i in t)if(i!=="__source"&&e[i]!==t[i])return!0;return!1}function Ar(e,t){var n=t(),i=Q({t:{__:n,u:t}}),r=i[0].t,a=i[1];return Xe(function(){r.__=n,r.u=t,Kn(r)&&a({t:r})},[e,n,t]),fe(function(){return Kn(r)&&a({t:r}),e(function(){Kn(r)&&a({t:r})})},[e]),n}function Kn(e){var t,n,i=e.u,r=e.__;try{var a=i();return!((t=r)===(n=a)&&(t!==0||1/t==1/n)||t!=t&&n!=n)}catch{return!0}}function Xn(e){e()}function Tr(e){return e}function Nr(){return[!1,Xn]}var Mr=Xe;function Zn(e,t){this.props=e,this.context=t}function zr(e,t){function n(r){var a=this.props.ref,o=a==r.ref;return!o&&a&&(a.call?a(null):a.current=null),t?!t(this.props,r)||!o:Gn(this.props,r)}function i(r){return this.shouldComponentUpdate=n,V(e,r)}return i.displayName="Memo("+(e.displayName||e.name)+")",i.prototype.isReactComponent=!0,i.__f=!0,i}(Zn.prototype=new Pe).isPureReactComponent=!0,Zn.prototype.shouldComponentUpdate=function(e,t){return Gn(this.props,e)||Gn(this.state,t)};var Fr=q.__b;q.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Fr&&Fr(e)};var hs=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function lt(e){function t(n){var i=Ir({},n);return delete i.ref,e(i,n.ref||null)}return t.$$typeof=hs,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var Br=function(e,t){return e==null?null:je(je(e).map(t))},Ur={map:Br,forEach:Br,count:function(e){return e?je(e).length:0},only:function(e){var t=je(e);if(t.length!==1)throw"Children.only";return t[0]},toArray:je},ps=q.__e;q.__e=function(e,t,n,i){if(e.then){for(var r,a=t;a=a.__;)if((r=a.__c)&&r.__c)return t.__e==null&&(t.__e=n.__e,t.__k=n.__k),r.__c(e,t)}ps(e,t,n,i)};var Hr=q.unmount;function jr(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach(function(i){typeof i.__c=="function"&&i.__c()}),e.__c.__H=null),(e=Ir({},e)).__c!=null&&(e.__c.__P===n&&(e.__c.__P=t),e.__c.__e=!0,e.__c=null),e.__k=e.__k&&e.__k.map(function(i){return jr(i,t,n)})),e}function Vr(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map(function(i){return Vr(i,t,n)}),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function Gt(){this.__u=0,this.o=null,this.__b=null}function Wr(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function gs(e){var t,n,i;function r(a){if(t||(t=e()).then(function(o){n=o.default||o},function(o){i=o}),i)throw i;if(!n)throw t;return V(n,a)}return r.displayName="Lazy",r.__f=!0,r}function kt(){this.i=null,this.l=null}q.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Hr&&Hr(e)},(Gt.prototype=new Pe).__c=function(e,t){var n=t.__c,i=this;i.o==null&&(i.o=[]),i.o.push(n);var r=Wr(i.__v),a=!1,o=function(){a||(a=!0,n.__R=null,r?r(s):s())};n.__R=o;var s=function(){if(!--i.__u){if(i.state.__a){var l=i.state.__a;i.__v.__k[0]=Vr(l,l.__c.__P,l.__c.__O)}var c;for(i.setState({__a:i.__b=null});c=i.o.pop();)c.forceUpdate()}};i.__u++||32&t.__u||i.setState({__a:i.__b=i.__v.__k[0]}),e.then(o,o)},Gt.prototype.componentWillUnmount=function(){this.o=[]},Gt.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),i=this.__v.__k[0].__c;this.__v.__k[0]=jr(this.__b,n,i.__O=i.__P)}this.__b=null}var r=t.__a&&V(oe,null,e.fallback);return r&&(r.__u&=-33),[V(oe,null,t.__a?null:e.children),r]};var Yr=function(e,t,n){if(++n[1]===n[0]&&e.l.delete(t),e.props.revealOrder&&(e.props.revealOrder[0]!=="t"||!e.l.size))for(n=e.i;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e.i=n=n[2]}};function fs(e){return this.getChildContext=function(){return e.context},e.children}function ms(e){var t=this,n=e.h;if(t.componentWillUnmount=function(){Ct(null,t.v),t.v=null,t.h=null},t.h&&t.h!==n&&t.componentWillUnmount(),!t.v){for(var i=t.__v;i!==null&&!i.__m&&i.__!==null;)i=i.__;t.h=n,t.v={nodeType:1,parentNode:n,childNodes:[],__k:{__m:i.__m},contains:function(){return!0},insertBefore:function(r,a){this.childNodes.push(r),t.h.insertBefore(r,a)},removeChild:function(r){this.childNodes.splice(this.childNodes.indexOf(r)>>>1,1),t.h.removeChild(r)}}}Ct(V(fs,{context:t.context},e.__v),t.v)}function qr(e,t){var n=V(ms,{__v:e,h:t});return n.containerInfo=t,n}(kt.prototype=new Pe).__a=function(e){var t=this,n=Wr(t.__v),i=t.l.get(e);return i[0]++,function(r){var a=function(){t.props.revealOrder?(i.push(r),Yr(t,e,i)):r()};n?n(a):a()}},kt.prototype.render=function(e){this.i=null,this.l=new Map;var t=je(e.children);e.revealOrder&&e.revealOrder[0]==="b"&&t.reverse();for(var n=t.length;n--;)this.l.set(t[n],this.i=[1,0,this.i]);return e.children},kt.prototype.componentDidUpdate=kt.prototype.componentDidMount=function(){var e=this;this.l.forEach(function(t,n){Yr(e,n,t)})};var Gr=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,vs=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,ys=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,_s=/[A-Z0-9]/g,bs=typeof document<"u",ws=function(e){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(e)};function Kr(e,t,n){return t.__k==null&&(t.textContent=""),Ct(e,t),typeof n=="function"&&n(),e?e.__c:null}function xs(e,t,n){return _r(e,t),typeof n=="function"&&n(),e?e.__c:null}Pe.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(e){Object.defineProperty(Pe.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var Xr=q.event;function Ss(){}function Es(){return this.cancelBubble}function Cs(){return this.defaultPrevented}q.event=function(e){return Xr&&(e=Xr(e)),e.persist=Ss,e.isPropagationStopped=Es,e.isDefaultPrevented=Cs,e.nativeEvent=e};var Jn,ks={enumerable:!1,configurable:!0,get:function(){return this.class}},Zr=q.vnode;q.vnode=function(e){typeof e.type=="string"&&function(t){var n=t.props,i=t.type,r={},a=i.indexOf("-")===-1;for(var o in n){var s=n[o];if(!(o==="value"&&"defaultValue"in n&&s==null||bs&&o==="children"&&i==="noscript"||o==="class"||o==="className")){var l=o.toLowerCase();o==="defaultValue"&&"value"in n&&n.value==null?o="value":o==="download"&&s===!0?s="":l==="translate"&&s==="no"?s=!1:l[0]==="o"&&l[1]==="n"?l==="ondoubleclick"?o="ondblclick":l!=="onchange"||i!=="input"&&i!=="textarea"||ws(n.type)?l==="onfocus"?o="onfocusin":l==="onblur"?o="onfocusout":ys.test(o)&&(o=l):l=o="oninput":a&&vs.test(o)?o=o.replace(_s,"-$&").toLowerCase():s===null&&(s=void 0),l==="oninput"&&r[o=l]&&(o="oninputCapture"),r[o]=s}}i=="select"&&r.multiple&&Array.isArray(r.value)&&(r.value=je(n.children).forEach(function(c){c.props.selected=r.value.indexOf(c.props.value)!=-1})),i=="select"&&r.defaultValue!=null&&(r.value=je(n.children).forEach(function(c){c.props.selected=r.multiple?r.defaultValue.indexOf(c.props.value)!=-1:r.defaultValue==c.props.value})),n.class&&!n.className?(r.class=n.class,Object.defineProperty(r,"className",ks)):(n.className&&!n.class||n.class&&n.className)&&(r.class=r.className=n.className),t.props=r}(e),e.$$typeof=Gr,Zr&&Zr(e)};var Jr=q.__r;q.__r=function(e){Jr&&Jr(e),Jn=e.__c};var Qr=q.diffed;q.diffed=function(e){Qr&&Qr(e);var t=e.props,n=e.__e;n!=null&&e.type==="textarea"&&"value"in t&&t.value!==n.value&&(n.value=t.value==null?"":t.value),Jn=null};var $s={ReactCurrentDispatcher:{current:{readContext:function(e){return Jn.__n[e.__c].props.value},useCallback:Se,useContext:ee,useDebugValue:Dr,useDeferredValue:Tr,useEffect:fe,useId:Lr,useImperativeHandle:Pr,useInsertionEffect:Mr,useLayoutEffect:Xe,useMemo:de,useReducer:Wn,useRef:we,useState:Q,useSyncExternalStore:Ar,useTransition:Nr}}};function Ps(e){return V.bind(null,e)}function $t(e){return!!e&&e.$$typeof===Gr}function Ds(e){return $t(e)&&e.type===oe}function Ls(e){return!!e&&!!e.displayName&&(typeof e.displayName=="string"||e.displayName instanceof String)&&e.displayName.startsWith("Memo(")}function Rs(e){return $t(e)?ls.apply(null,arguments):e}function ea(e){return!!e.__k&&(Ct(null,e),!0)}function Os(e){return e&&(e.base||e.nodeType===1&&e)||null}var Is=function(e,t){return e(t)},As=function(e,t){return e(t)},Ts=oe,Ns=$t,Ee={useState:Q,useId:Lr,useReducer:Wn,useEffect:fe,useLayoutEffect:Xe,useInsertionEffect:Mr,useTransition:Nr,useDeferredValue:Tr,useSyncExternalStore:Ar,startTransition:Xn,useRef:we,useImperativeHandle:Pr,useMemo:de,useCallback:Se,useContext:ee,useDebugValue:Dr,version:"18.3.1",Children:Ur,render:Kr,hydrate:xs,unmountComponentAtNode:ea,createPortal:qr,createElement:V,createContext:be,createFactory:Ps,cloneElement:Rs,createRef:is,Fragment:oe,isValidElement:$t,isElement:Ns,isFragment:Ds,isMemo:Ls,findDOMNode:Os,Component:Pe,PureComponent:Zn,memo:zr,forwardRef:lt,flushSync:As,unstable_batchedUpdates:Is,StrictMode:Ts,Suspense:Gt,SuspenseList:kt,lazy:gs,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:$s};function Ms(e){return{render:function(t){Kr(t,e)},unmount:function(){ea(e)}}}const ta=be(void 0),zs=({app:e,plugin:t,children:n})=>{const[i,r]=Q(0),[a,o]=Q("/diagram-section"),s=Se(()=>{r(c=>c+1)},[]),l=de(()=>({app:e,plugin:t,forceReload:s,reloadCount:i,currentPath:a,setCurrentPath:o}),[e,t,s,i,a,o]);return x(ta.Provider,{value:l,children:n})},me=()=>{const e=ee(ta);if(e===void 0)throw new Error("useSettingsContext must be used within a SettingProvider");return e};var Pt={},na;function Fs(){if(na)return Pt;na=1,Object.defineProperty(Pt,"__esModule",{value:!0}),Pt.parse=o,Pt.serialize=c;const e=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,t=/^[\u0021-\u003A\u003C-\u007E]*$/,n=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,r=Object.prototype.toString,a=(()=>{const p=function(){};return p.prototype=Object.create(null),p})();function o(p,h){const g=new a,_=p.length;if(_<2)return g;const y=h?.decode||m;let v=0;do{const E=p.indexOf("=",v);if(E===-1)break;const D=p.indexOf(";",v),N=D===-1?_:D;if(E>N){v=p.lastIndexOf(";",E-1)+1;continue}const F=s(p,v,E),U=l(p,E,F),z=p.slice(F,U);if(g[z]===void 0){let $=s(p,E+1,N),B=l(p,N,$);const te=y(p.slice($,B));g[z]=te}v=N+1}while(v<_);return g}function s(p,h,g){do{const _=p.charCodeAt(h);if(_!==32&&_!==9)return h}while(++h<g);return g}function l(p,h,g){for(;h>g;){const _=p.charCodeAt(--h);if(_!==32&&_!==9)return h+1}return g}function c(p,h,g){const _=g?.encode||encodeURIComponent;if(!e.test(p))throw new TypeError(`argument name is invalid: ${p}`);const y=_(h);if(!t.test(y))throw new TypeError(`argument val is invalid: ${h}`);let v=p+"="+y;if(!g)return v;if(g.maxAge!==void 0){if(!Number.isInteger(g.maxAge))throw new TypeError(`option maxAge is invalid: ${g.maxAge}`);v+="; Max-Age="+g.maxAge}if(g.domain){if(!n.test(g.domain))throw new TypeError(`option domain is invalid: ${g.domain}`);v+="; Domain="+g.domain}if(g.path){if(!i.test(g.path))throw new TypeError(`option path is invalid: ${g.path}`);v+="; Path="+g.path}if(g.expires){if(!d(g.expires)||!Number.isFinite(g.expires.valueOf()))throw new TypeError(`option expires is invalid: ${g.expires}`);v+="; Expires="+g.expires.toUTCString()}if(g.httpOnly&&(v+="; HttpOnly"),g.secure&&(v+="; Secure"),g.partitioned&&(v+="; Partitioned"),g.priority)switch(typeof g.priority=="string"?g.priority.toLowerCase():void 0){case"low":v+="; Priority=Low";break;case"medium":v+="; Priority=Medium";break;case"high":v+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${g.priority}`)}if(g.sameSite)switch(typeof g.sameSite=="string"?g.sameSite.toLowerCase():g.sameSite){case!0:case"strict":v+="; SameSite=Strict";break;case"lax":v+="; SameSite=Lax";break;case"none":v+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${g.sameSite}`)}return v}function m(p){if(p.indexOf("%")===-1)return p;try{return decodeURIComponent(p)}catch{return p}}function d(p){return r.call(p)==="[object Date]"}return Pt}Fs();/** * react-router v7.6.2 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function Bs(e={}){let{initialEntries:t=["/"],initialIndex:n,v5Compat:i=!1}=e,r;r=t.map((h,g)=>m(h,typeof h=="string"?null:h.state,g===0?"default":void 0));let a=l(n??r.length-1),o="POP",s=null;function l(h){return Math.min(Math.max(h,0),r.length-1)}function c(){return r[a]}function m(h,g=null,_){let y=Hs(r?c().pathname:"/",h,g,_);return De(y.pathname.charAt(0)==="/",`relative pathnames are not supported in memory history: ${JSON.stringify(h)}`),y}function d(h){return typeof h=="string"?h:Kt(h)}return{get index(){return a},get action(){return o},get location(){return c()},createHref:d,createURL(h){return new URL(d(h),"http://localhost")},encodeLocation(h){let g=typeof h=="string"?et(h):h;return{pathname:g.pathname||"",search:g.search||"",hash:g.hash||""}},push(h,g){o="PUSH";let _=m(h,g);a+=1,r.splice(a,r.length,_),i&&s&&s({action:o,location:_,delta:1})},replace(h,g){o="REPLACE";let _=m(h,g);r[a]=_,i&&s&&s({action:o,location:_,delta:0})},go(h){o="POP";let g=l(a+h),_=r[g];a=g,s&&s({action:o,location:_,delta:h})},listen(h){return s=h,()=>{s=null}}}}function pe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function De(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Us(){return Math.random().toString(36).substring(2,10)}function Hs(e,t,n=null,i){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?et(t):t,state:n,key:t&&t.key||i||Us()}}function Kt({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function et(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let i=e.indexOf("?");i>=0&&(t.search=e.substring(i),e=e.substring(0,i)),e&&(t.pathname=e)}return t}function ia(e,t,n="/"){return js(e,t,n,!1)}function js(e,t,n,i){let r=typeof t=="string"?et(t):t,a=Ve(r.pathname||"/",n);if(a==null)return null;let o=ra(e);Vs(o);let s=null;for(let l=0;s==null&&l<o.length;++l){let c=tl(a);s=Qs(o[l],c,i)}return s}function ra(e,t=[],n=[],i=""){let r=(a,o,s)=>{let l={relativePath:s===void 0?a.path||"":s,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};l.relativePath.startsWith("/")&&(pe(l.relativePath.startsWith(i),`Absolute route path "${l.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),l.relativePath=l.relativePath.slice(i.length));let c=We([i,l.relativePath]),m=n.concat(l);a.children&&a.children.length>0&&(pe(a.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${c}".`),ra(a.children,t,m,c)),!(a.path==null&&!a.index)&&t.push({path:c,score:Zs(c,a.index),routesMeta:m})};return e.forEach((a,o)=>{if(a.path===""||!a.path?.includes("?"))r(a,o);else for(let s of aa(a.path))r(a,o,s)}),t}function aa(e){let t=e.split("/");if(t.length===0)return[];let[n,...i]=t,r=n.endsWith("?"),a=n.replace(/\?$/,"");if(i.length===0)return r?[a,""]:[a];let o=aa(i.join("/")),s=[];return s.push(...o.map(l=>l===""?a:[a,l].join("/"))),r&&s.push(...o),s.map(l=>e.startsWith("/")&&l===""?"/":l)}function Vs(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Js(t.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var Ws=/^:[\w-]+$/,Ys=3,qs=2,Gs=1,Ks=10,Xs=-2,oa=e=>e==="*";function Zs(e,t){let n=e.split("/"),i=n.length;return n.some(oa)&&(i+=Xs),t&&(i+=qs),n.filter(r=>!oa(r)).reduce((r,a)=>r+(Ws.test(a)?Ys:a===""?Gs:Ks),i)}function Js(e,t){return e.length===t.length&&e.slice(0,-1).every((i,r)=>i===t[r])?e[e.length-1]-t[t.length-1]:0}function Qs(e,t,n=!1){let{routesMeta:i}=e,r={},a="/",o=[];for(let s=0;s<i.length;++s){let l=i[s],c=s===i.length-1,m=a==="/"?t:t.slice(a.length)||"/",d=Xt({path:l.relativePath,caseSensitive:l.caseSensitive,end:c},m),p=l.route;if(!d&&c&&n&&!i[i.length-1].route.index&&(d=Xt({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},m)),!d)return null;Object.assign(r,d.params),o.push({params:r,pathname:We([a,d.pathname]),pathnameBase:al(We([a,d.pathnameBase])),route:p}),d.pathnameBase!=="/"&&(a=We([a,d.pathnameBase]))}return o}function Xt(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,i]=el(e.path,e.caseSensitive,e.end),r=t.match(n);if(!r)return null;let a=r[0],o=a.replace(/(.)\/+$/,"$1"),s=r.slice(1);return{params:i.reduce((c,{paramName:m,isOptional:d},p)=>{if(m==="*"){let g=s[p]||"";o=a.slice(0,a.length-g.length).replace(/(.)\/+$/,"$1")}const h=s[p];return d&&!h?c[m]=void 0:c[m]=(h||"").replaceAll(/%2F/g,"/"),c},{}),pathname:a,pathnameBase:o,pattern:e}}function el(e,t=!1,n=!0){De(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let i=[],r="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,s,l)=>(i.push({paramName:s,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(i.push({paramName:"*"}),r+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":e!==""&&e!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,t?void 0:"i"),i]}function tl(e){try{return e.split("/").map(t=>decodeURIComponent(t).replaceAll(/\//g,"%2F")).join("/")}catch(t){return De(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Ve(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,i=e.charAt(n);return i&&i!=="/"?null:e.slice(n)||"/"}function nl(e,t="/"){let{pathname:n,search:i="",hash:r=""}=typeof e=="string"?et(e):e;return{pathname:n?n.startsWith("/")?n:il(n,t):t,search:ol(i),hash:sl(r)}}function il(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function Qn(e,t,n,i){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function rl(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function sa(e){let t=rl(e);return t.map((n,i)=>i===t.length-1?n.pathname:n.pathnameBase)}function la(e,t,n,i=!1){let r;typeof e=="string"?r=et(e):(r={...e},pe(!r.pathname||!r.pathname.includes("?"),Qn("?","pathname","search",r)),pe(!r.pathname||!r.pathname.includes("#"),Qn("#","pathname","hash",r)),pe(!r.search||!r.search.includes("#"),Qn("#","search","hash",r)));let a=e===""||r.pathname==="",o=a?"/":r.pathname,s;if(o==null)s=n;else{let d=t.length-1;if(!i&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),d-=1;r.pathname=p.join("/")}s=d>=0?t[d]:"/"}let l=nl(r,s),c=o&&o!=="/"&&o.endsWith("/"),m=(a||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||m)&&(l.pathname+="/"),l}var We=e=>e.join("/").replaceAll(/\/\/+/g,"/"),al=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ol=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,sl=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function ll(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}var ua=["POST","PUT","PATCH","DELETE"];new Set(ua);var ul=["GET",...ua];new Set(ul);var ut=be(null);ut.displayName="DataRouter";var Zt=be(null);Zt.displayName="DataRouterState";var ca=be({isTransitioning:!1});ca.displayName="ViewTransition";var cl=be(new Map);cl.displayName="Fetchers";var dl=be(null);dl.displayName="Await";var Ne=be(null);Ne.displayName="Navigation";var Dt=be(null);Dt.displayName="Location";var Ye=be({outlet:null,matches:[],isDataRoute:!1});Ye.displayName="Route";var ei=be(null);ei.displayName="RouteError";function hl(e,{relative:t}={}){pe(Lt(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:i}=ee(Ne),{hash:r,pathname:a,search:o}=Rt(e,{relative:t}),s=a;return n!=="/"&&(s=a==="/"?n:We([n,a])),i.createHref({pathname:s,search:o,hash:r})}function Lt(){return ee(Dt)!=null}function Le(){return pe(Lt(),"useLocation() may be used only in the context of a <Router> component."),ee(Dt).location}var da="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ha(e){ee(Ne).static||Xe(e)}function ti(){let{isDataRoute:e}=ee(Ye);return e?Cl():pl()}function pl(){pe(Lt(),"useNavigate() may be used only in the context of a <Router> component.");let e=ee(ut),{basename:t,navigator:n}=ee(Ne),{matches:i}=ee(Ye),{pathname:r}=Le(),a=JSON.stringify(sa(i)),o=we(!1);return ha(()=>{o.current=!0}),Se((l,c={})=>{if(De(o.current,da),!o.current)return;if(typeof l=="number"){n.go(l);return}let m=la(l,JSON.parse(a),r,c.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:We([t,m.pathname])),(c.replace?n.replace:n.push)(m,c.state,c)},[t,n,a,r,e])}be(null);function Rt(e,{relative:t}={}){let{matches:n}=ee(Ye),{pathname:i}=Le(),r=JSON.stringify(sa(n));return de(()=>la(e,JSON.parse(r),i,t==="path"),[e,r,i,t])}function gl(e,t){return pa(e,t)}function pa(e,t,n,i){pe(Lt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:r}=ee(Ne),{matches:a}=ee(Ye),o=a[a.length-1],s=o?o.params:{},l=o?o.pathname:"/",c=o?o.pathnameBase:"/",m=o&&o.route;{let v=m&&m.path||"";fa(l,!m||v.endsWith("*")||v.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${v}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. Please change the parent <Route path="${v}"> to <Route path="${v==="/"?"*":`${v}/*`}">.`)}let d=Le(),p;if(t){let v=typeof t=="string"?et(t):t;pe(c==="/"||v.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${v.pathname}" was given in the \`location\` prop.`),p=v}else p=d;let h=p.pathname||"/",g=h;if(c!=="/"){let v=c.replace(/^\//,"").split("/");g="/"+h.replace(/^\//,"").split("/").slice(v.length).join("/")}let _=ia(e,{pathname:g});De(m||_!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),De(_==null||_[_.length-1].route.element!==void 0||_[_.length-1].route.Component!==void 0||_[_.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let y=_l(_&&_.map(v=>Object.assign({},v,{params:Object.assign({},s,v.params),pathname:We([c,r.encodeLocation?r.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?c:We([c,r.encodeLocation?r.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),a,n,i);return t&&y?V(Dt.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...p},navigationType:"POP"}},y):y}function fl(){let e=El(),t=ll(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i="rgba(200,200,200, 0.5)",r={padding:"0.5rem",backgroundColor:i},a={padding:"2px 4px",backgroundColor:i},o=null;return console.error("Error handled by React Router default ErrorBoundary:",e),o=V(oe,null,V("p",null,"\u{1F4BF} Hey developer \u{1F44B}"),V("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",V("code",{style:a},"ErrorBoundary")," or"," ",V("code",{style:a},"errorElement")," prop on your route.")),V(oe,null,V("h2",null,"Unexpected Application Error!"),V("h3",{style:{fontStyle:"italic"}},t),n?V("pre",{style:r},n):null,o)}var ml=V(fl,null),vl=class extends Pe{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error!==void 0?V(Ye.Provider,{value:this.props.routeContext},V(ei.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function yl({routeContext:e,match:t,children:n}){let i=ee(ut);return i&&i.static&&i.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=t.route.id),V(Ye.Provider,{value:e},n)}function _l(e,t=[],n=null,i=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let r=e,a=n?.errors;if(a!=null){let l=r.findIndex(c=>c.route.id&&a?.[c.route.id]!==void 0);pe(l>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(",")}`),r=r.slice(0,Math.min(r.length,l+1))}let o=!1,s=-1;if(n)for(let l=0;l<r.length;l++){let c=r[l];if((c.route.HydrateFallback||c.route.hydrateFallbackElement)&&(s=l),c.route.id){let{loaderData:m,errors:d}=n,p=c.route.loader&&!m.hasOwnProperty(c.route.id)&&(!d||d[c.route.id]===void 0);if(c.route.lazy||p){o=!0,s>=0?r=r.slice(0,s+1):r=[r[0]];break}}}return r.reduceRight((l,c,m)=>{let d,p=!1,h=null,g=null;n&&(d=a&&c.route.id?a[c.route.id]:void 0,h=c.route.errorElement||ml,o&&(s<0&&m===0?(fa("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),p=!0,g=null):s===m&&(p=!0,g=c.route.hydrateFallbackElement||null)));let _=t.concat(r.slice(0,m+1)),y=()=>{let v;return d?v=h:p?v=g:c.route.Component?v=V(c.route.Component,null):c.route.element?v=c.route.element:v=l,V(yl,{match:c,routeContext:{outlet:l,matches:_,isDataRoute:n!=null},children:v})};return n&&(c.route.ErrorBoundary||c.route.errorElement||m===0)?V(vl,{location:n.location,revalidation:n.revalidation,component:h,error:d,children:y(),routeContext:{outlet:null,matches:_,isDataRoute:!0}}):y()},null)}function ni(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function bl(e){let t=ee(ut);return pe(t,ni(e)),t}function wl(e){let t=ee(Zt);return pe(t,ni(e)),t}function xl(e){let t=ee(Ye);return pe(t,ni(e)),t}function ii(e){let t=xl(e),n=t.matches[t.matches.length-1];return pe(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Sl(){return ii("useRouteId")}function El(){let e=ee(ei),t=wl("useRouteError"),n=ii("useRouteError");return e!==void 0?e:t.errors?.[n]}function Cl(){let{router:e}=bl("useNavigate"),t=ii("useNavigate"),n=we(!1);return ha(()=>{n.current=!0}),Se(async(r,a={})=>{De(n.current,da),n.current&&(typeof r=="number"?e.navigate(r):await e.navigate(r,{fromRouteId:t,...a}))},[e,t])}var ga={};function fa(e,t,n){!t&&!ga[e]&&(ga[e]=!0,De(!1,n))}zr(kl);function kl({routes:e,future:t,state:n}){return pa(e,void 0,n,t)}function $l({basename:e,children:t,initialEntries:n,initialIndex:i}){let r=we();r.current==null&&(r.current=Bs({initialEntries:n,initialIndex:i,v5Compat:!0}));let a=r.current,[o,s]=Q({action:a.action,location:a.location}),l=Se(c=>{Xn(()=>s(c))},[s]);return Xe(()=>a.listen(l),[a,l]),V(Pl,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a})}function Re(e){pe(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function Pl({basename:e="/",children:t=null,location:n,navigationType:i="POP",navigator:r,static:a=!1}){pe(!Lt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let o=e.replace(/^\/*/,"/"),s=de(()=>({basename:o,navigator:r,static:a,future:{}}),[o,r,a]);typeof n=="string"&&(n=et(n));let{pathname:l="/",search:c="",hash:m="",state:d=null,key:p="default"}=n,h=de(()=>{let g=Ve(l,o);return g==null?null:{location:{pathname:g,search:c,hash:m,state:d,key:p},navigationType:i}},[o,l,c,m,d,p,i]);return De(h!=null,`<Router basename="${o}"> is not able to match the URL "${l}${c}${m}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:V(Ne.Provider,{value:s},V(Dt.Provider,{children:t,value:h}))}function ri({children:e,location:t}){return gl(ai(e),t)}function ai(e,t=[]){let n=[];return Ur.forEach(e,(i,r)=>{if(!$t(i))return;let a=[...t,r];if(i.type===oe){n.push.apply(n,ai(i.props.children,a));return}pe(i.type===Re,`[${typeof i.type=="string"?i.type:i.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),pe(!i.props.index||!i.props.children,"An index route cannot have child routes.");let o={id:i.props.id||a.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,loader:i.props.loader,action:i.props.action,hydrateFallbackElement:i.props.hydrateFallbackElement,HydrateFallback:i.props.HydrateFallback,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.hasErrorBoundary===!0||i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(o.children=ai(i.props.children,a)),n.push(o)}),n}var Jt="get",Qt="application/x-www-form-urlencoded";function en(e){return e!=null&&typeof e.tagName=="string"}function Dl(e){return en(e)&&e.tagName.toLowerCase()==="button"}function Ll(e){return en(e)&&e.tagName.toLowerCase()==="form"}function Rl(e){return en(e)&&e.tagName.toLowerCase()==="input"}function Ol(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Il(e,t){return e.button===0&&(!t||t==="_self")&&!Ol(e)}var tn=null;function Al(){if(tn===null)try{new FormData(document.createElement("form"),0),tn=!1}catch{tn=!0}return tn}var Tl=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function oi(e){return e!=null&&!Tl.has(e)?(De(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Qt}"`),null):e}function Nl(e,t){let n,i,r,a,o;if(Ll(e)){let s=e.getAttribute("action");i=s?Ve(s,t):null,n=e.getAttribute("method")||Jt,r=oi(e.getAttribute("enctype"))||Qt,a=new FormData(e)}else if(Dl(e)||Rl(e)&&(e.type==="submit"||e.type==="image")){let s=e.form;if(s==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=e.getAttribute("formaction")||s.getAttribute("action");if(i=l?Ve(l,t):null,n=e.getAttribute("formmethod")||s.getAttribute("method")||Jt,r=oi(e.getAttribute("formenctype"))||oi(s.getAttribute("enctype"))||Qt,a=new FormData(s,e),!Al()){let{name:c,type:m,value:d}=e;if(m==="image"){let p=c?`${c}.`:"";a.append(`${p}x`,"0"),a.append(`${p}y`,"0")}else c&&a.append(c,d)}}else{if(en(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=Jt,i=null,r=Qt,o=e}return a&&r==="text/plain"&&(o=a,a=void 0),{action:i,method:n.toLowerCase(),encType:r,formData:a,body:o}}function si(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}async function Ml(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(n){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function zl(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function Fl(e,t,n){let i=await Promise.all(e.map(async r=>{let a=t.routes[r.route.id];if(a){let o=await Ml(a,n);return o.links?o.links():[]}return[]}));return jl(i.flat(1).filter(zl).filter(r=>r.rel==="stylesheet"||r.rel==="preload").map(r=>r.rel==="stylesheet"?{...r,rel:"prefetch",as:"style"}:{...r,rel:"prefetch"}))}function ma(e,t,n,i,r,a){let o=(l,c)=>n[c]?l.route.id!==n[c].route.id:!0,s=(l,c)=>n[c].pathname!==l.pathname||n[c].route.path?.endsWith("*")&&n[c].params["*"]!==l.params["*"];return a==="assets"?t.filter((l,c)=>o(l,c)||s(l,c)):a==="data"?t.filter((l,c)=>{let m=i.routes[l.route.id];if(!m||!m.hasLoader)return!1;if(o(l,c)||s(l,c))return!0;if(l.route.shouldRevalidate){let d=l.route.shouldRevalidate({currentUrl:new URL(r.pathname+r.search+r.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:l.params,defaultShouldRevalidate:!0});if(typeof d=="boolean")return d}return!0}):[]}function Bl(e,t,{includeHydrateFallback:n}={}){return Ul(e.map(i=>{let r=t.routes[i.route.id];if(!r)return[];let a=[r.module];return r.clientActionModule&&(a=a.concat(r.clientActionModule)),r.clientLoaderModule&&(a=a.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(a=a.concat(r.hydrateFallbackModule)),r.imports&&(a=a.concat(r.imports)),a}).flat(1))}function Ul(e){return[...new Set(e)]}function Hl(e){let t={},n=Object.keys(e).sort();for(let i of n)t[i]=e[i];return t}function jl(e,t){let n=new Set;return new Set(t),e.reduce((i,r)=>{let a=JSON.stringify(Hl(r));return n.has(a)||(n.add(a),i.push({key:a,link:r})),i},[])}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Vl=new Set([100,101,204,205]);function Wl(e,t){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n.pathname==="/"?n.pathname="_root.data":t&&Ve(n.pathname,t)==="/"?n.pathname=`${t.replace(/\/$/,"")}/_root.data`:n.pathname=`${n.pathname.replace(/\/$/,"")}.data`,n}function va(){let e=ee(ut);return si(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Yl(){let e=ee(Zt);return si(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var li=be(void 0);li.displayName="FrameworkContext";function ya(){let e=ee(li);return si(e,"You must render this element inside a <HydratedRouter> element"),e}function ql(e,t){let n=ee(li),[i,r]=Q(!1),[a,o]=Q(!1),{onFocus:s,onBlur:l,onMouseEnter:c,onMouseLeave:m,onTouchStart:d}=t,p=we(null);fe(()=>{if(e==="render"&&o(!0),e==="viewport"){let _=v=>{v.forEach(E=>{o(E.isIntersecting)})},y=new IntersectionObserver(_,{threshold:.5});return p.current&&y.observe(p.current),()=>{y.disconnect()}}},[e]),fe(()=>{if(i){let _=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(_)}}},[i]);let h=()=>{r(!0)},g=()=>{r(!1),o(!1)};return n?e!=="intent"?[a,p,{}]:[a,p,{onFocus:Ot(s,h),onBlur:Ot(l,g),onMouseEnter:Ot(c,h),onMouseLeave:Ot(m,g),onTouchStart:Ot(d,h)}]:[!1,p,{}]}function Ot(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Gl({page:e,...t}){let{router:n}=va(),i=de(()=>ia(n.routes,e,n.basename),[n.routes,e,n.basename]);return i?V(Xl,{page:e,matches:i,...t}):null}function Kl(e){let{manifest:t,routeModules:n}=ya(),[i,r]=Q([]);return fe(()=>{let a=!1;return Fl(e,t,n).then(o=>{a||r(o)}),()=>{a=!0}},[e,t,n]),i}function Xl({page:e,matches:t,...n}){let i=Le(),{manifest:r,routeModules:a}=ya(),{basename:o}=va(),{loaderData:s,matches:l}=Yl(),c=de(()=>ma(e,t,l,r,i,"data"),[e,t,l,r,i]),m=de(()=>ma(e,t,l,r,i,"assets"),[e,t,l,r,i]),d=de(()=>{if(e===i.pathname+i.search+i.hash)return[];let g=new Set,_=!1;if(t.forEach(v=>{let E=r.routes[v.route.id];!E||!E.hasLoader||(!c.some(D=>D.route.id===v.route.id)&&v.route.id in s&&a[v.route.id]?.shouldRevalidate||E.hasClientLoader?_=!0:g.add(v.route.id))}),g.size===0)return[];let y=Wl(e,o);return _&&g.size>0&&y.searchParams.set("_routes",t.filter(v=>g.has(v.route.id)).map(v=>v.route.id).join(",")),[y.pathname+y.search]},[o,s,i,r,c,t,e,a]),p=de(()=>Bl(m,r),[m,r]),h=Kl(m);return V(oe,null,d.map(g=>V("link",{key:g,rel:"prefetch",as:"fetch",href:g,...n})),p.map(g=>V("link",{key:g,rel:"modulepreload",href:g,...n})),h.map(({key:g,link:_})=>V("link",{key:g,..._})))}function Zl(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var _a=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{_a&&(window.__reactRouterVersion="7.6.2")}catch{}var ba=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wa=lt(function({onClick:t,discover:n="render",prefetch:i="none",relative:r,reloadDocument:a,replace:o,state:s,target:l,to:c,preventScrollReset:m,viewTransition:d,...p},h){let{basename:g}=ee(Ne),_=typeof c=="string"&&ba.test(c),y,v=!1;if(typeof c=="string"&&_&&(y=c,_a))try{let B=new URL(window.location.href),te=c.startsWith("//")?new URL(B.protocol+c):new URL(c),Z=Ve(te.pathname,g);te.origin===B.origin&&Z!=null?c=Z+te.search+te.hash:v=!0}catch{De(!1,`<Link to="${c}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let E=hl(c,{relative:r}),[D,N,F]=ql(i,p),U=eu(c,{replace:o,state:s,target:l,preventScrollReset:m,relative:r,viewTransition:d});function z(B){t&&t(B),B.defaultPrevented||U(B)}let $=V("a",{...p,...F,href:y||E,onClick:v||a?t:z,ref:Zl(h,N),target:l,"data-discover":!_&&n==="render"?"true":void 0});return D&&!_?V(oe,null,$,V(Gl,{page:E})):$});wa.displayName="Link";var It=lt(function({"aria-current":t="page",caseSensitive:n=!1,className:i="",end:r=!1,style:a,to:o,viewTransition:s,children:l,...c},m){let d=Rt(o,{relative:c.relative}),p=Le(),h=ee(Zt),{navigator:g,basename:_}=ee(Ne),y=h!=null&&au(d)&&s===!0,v=g.encodeLocation?g.encodeLocation(d).pathname:d.pathname,E=p.pathname,D=h&&h.navigation&&h.navigation.location?h.navigation.location.pathname:null;n||(E=E.toLowerCase(),D=D?D.toLowerCase():null,v=v.toLowerCase()),D&&_&&(D=Ve(D,_)||D);const N=v!=="/"&&v.endsWith("/")?v.length-1:v.length;let F=E===v||!r&&E.startsWith(v)&&E.charAt(N)==="/",U=D!=null&&(D===v||!r&&D.startsWith(v)&&D.charAt(v.length)==="/"),z={isActive:F,isPending:U,isTransitioning:y},$=F?t:void 0,B;typeof i=="function"?B=i(z):B=[i,F?"active":null,U?"pending":null,y?"transitioning":null].filter(Boolean).join(" ");let te=typeof a=="function"?a(z):a;return V(wa,{...c,"aria-current":$,className:B,ref:m,style:te,to:o,viewTransition:s},typeof l=="function"?l(z):l)});It.displayName="NavLink";var Jl=lt(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:i,replace:r,state:a,method:o=Jt,action:s,onSubmit:l,relative:c,preventScrollReset:m,viewTransition:d,...p},h)=>{let g=iu(),_=ru(s,{relative:c}),y=o.toLowerCase()==="get"?"get":"post",v=typeof s=="string"&&ba.test(s);return V("form",{ref:h,method:y,action:_,onSubmit:i?l:D=>{if(l&&l(D),D.defaultPrevented)return;D.preventDefault();let N=D.nativeEvent.submitter,F=N?.getAttribute("formmethod")||o;g(N||D.currentTarget,{fetcherKey:t,method:F,navigate:n,replace:r,state:a,relative:c,preventScrollReset:m,viewTransition:d})},...p,"data-discover":!v&&e==="render"?"true":void 0})});Jl.displayName="Form";function Ql(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function xa(e){let t=ee(ut);return pe(t,Ql(e)),t}function eu(e,{target:t,replace:n,state:i,preventScrollReset:r,relative:a,viewTransition:o}={}){let s=ti(),l=Le(),c=Rt(e,{relative:a});return Se(m=>{if(Il(m,t)){m.preventDefault();let d=n!==void 0?n:Kt(l)===Kt(c);s(e,{replace:d,state:i,preventScrollReset:r,relative:a,viewTransition:o})}},[l,s,c,n,i,t,e,r,a,o])}var tu=0,nu=()=>`__${String(++tu)}__`;function iu(){let{router:e}=xa("useSubmit"),{basename:t}=ee(Ne),n=Sl();return Se(async(i,r={})=>{let{action:a,method:o,encType:s,formData:l,body:c}=Nl(i,t);if(r.navigate===!1){let m=r.fetcherKey||nu();await e.fetch(m,n,r.action||a,{preventScrollReset:r.preventScrollReset,formData:l,body:c,formMethod:r.method||o,formEncType:r.encType||s,flushSync:r.flushSync})}else await e.navigate(r.action||a,{preventScrollReset:r.preventScrollReset,formData:l,body:c,formMethod:r.method||o,formEncType:r.encType||s,replace:r.replace,state:r.state,fromRouteId:n,flushSync:r.flushSync,viewTransition:r.viewTransition})},[e,t,n])}function ru(e,{relative:t}={}){let{basename:n}=ee(Ne),i=ee(Ye);pe(i,"useFormAction must be used inside a RouteContext");let[r]=i.matches.slice(-1),a={...Rt(e||".",{relative:t})},o=Le();if(e==null){a.search=o.search;let s=new URLSearchParams(a.search),l=s.getAll("index");if(l.some(m=>m==="")){s.delete("index"),l.filter(d=>d).forEach(d=>s.append("index",d));let m=s.toString();a.search=m?`?${m}`:""}}return(!e||e===".")&&r.route.index&&(a.search=a.search?a.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(a.pathname=a.pathname==="/"?n:We([n,a.pathname])),Kt(a)}function au(e,t={}){let n=ee(ca);pe(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=xa("useViewTransitionState"),r=Rt(e,{relative:t.relative});if(!n.isTransitioning)return!1;let a=Ve(n.currentLocation.pathname,i)||n.currentLocation.pathname,o=Ve(n.nextLocation.pathname,i)||n.nextLocation.pathname;return Xt(r.pathname,o)!=null||Xt(r.pathname,a)!=null}[...Vl];class ou{element=null;constructor(t){t.containerEl&&(this.element=t.containerEl)}addDesc(t){if(this.element){const n=document.createElement("div");n.textContent=t,this.element.appendChild(n)}}addDescriptions(t){return this.element&&t.forEach(n=>this.addDesc(n)),this}render(){return null}}var xe=function(){return xe=Object.assign||function(t){for(var n,i=1,r=arguments.length;i<r;i++){n=arguments[i];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},xe.apply(this,arguments)};function nn(e,t,n){if(n||arguments.length===2)for(var i=0,r=t.length,a;i<r;i++)(a||!(i in t))&&(a||(a=Array.prototype.slice.call(t,0,i)),a[i]=t[i]);return e.concat(a||Array.prototype.slice.call(t))}typeof SuppressedError=="function"&&SuppressedError;var ue="-ms-",At="-moz-",re="-webkit-",Sa="comm",rn="rule",ui="decl",su="@import",Ea="@keyframes",lu="@layer",Ca=Math.abs,ci=String.fromCharCode,di=Object.assign;function uu(e,t){return ye(e,0)^45?(((t<<2^ye(e,0))<<2^ye(e,1))<<2^ye(e,2))<<2^ye(e,3):0}function ka(e){return e.trim()}function qe(e,t){return(e=t.exec(e))?e[0]:e}function G(e,t,n){return e.replace(t,n)}function an(e,t,n){return e.indexOf(t,n)}function ye(e,t){return e.charCodeAt(t)|0}function ct(e,t,n){return e.slice(t,n)}function Me(e){return e.length}function $a(e){return e.length}function Tt(e,t){return t.push(e),e}function cu(e,t){return e.map(t).join("")}function Pa(e,t){return e.filter(function(n){return!qe(n,t)})}var on=1,dt=1,Da=0,ke=0,ve=0,ht="";function sn(e,t,n,i,r,a,o,s){return{value:e,root:t,parent:n,type:i,props:r,children:a,line:on,column:dt,length:o,return:"",siblings:s}}function Ze(e,t){return di(sn("",null,null,"",null,null,0,e.siblings),e,{length:-e.length},t)}function pt(e){for(;e.root;)e=Ze(e.root,{children:[e]});Tt(e,e.siblings)}function du(){return ve}function hu(){return ve=ke>0?ye(ht,--ke):0,dt--,ve===10&&(dt=1,on--),ve}function Oe(){return ve=ke<Da?ye(ht,ke++):0,dt++,ve===10&&(dt=1,on++),ve}function tt(){return ye(ht,ke)}function ln(){return ke}function un(e,t){return ct(ht,e,t)}function hi(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function pu(e){return on=dt=1,Da=Me(ht=e),ke=0,[]}function gu(e){return ht="",e}function pi(e){return ka(un(ke-1,gi(e===91?e+2:e===40?e+1:e)))}function fu(e){for(;(ve=tt())&&ve<33;)Oe();return hi(e)>2||hi(ve)>3?"":" "}function mu(e,t){for(;--t&&Oe()&&!(ve<48||ve>102||ve>57&&ve<65||ve>70&&ve<97););return un(e,ln()+(t<6&&tt()==32&&Oe()==32))}function gi(e){for(;Oe();)switch(ve){case e:return ke;case 34:case 39:e!==34&&e!==39&&gi(ve);break;case 40:e===41&&gi(e);break;case 92:Oe();break}return ke}function vu(e,t){for(;Oe()&&e+ve!==57&&!(e+ve===84&&tt()===47););return"/*"+un(t,ke-1)+"*"+ci(e===47?e:Oe())}function yu(e){for(;!hi(tt());)Oe();return un(e,ke)}function _u(e){return gu(cn("",null,null,null,[""],e=pu(e),0,[0],e))}function cn(e,t,n,i,r,a,o,s,l){for(var c=0,m=0,d=o,p=0,h=0,g=0,_=1,y=1,v=1,E=0,D="",N=r,F=a,U=i,z=D;y;)switch(g=E,E=Oe()){case 40:if(g!=108&&ye(z,d-1)==58){an(z+=G(pi(E),"&","&\f"),"&\f",Ca(c?s[c-1]:0))!=-1&&(v=-1);break}case 34:case 39:case 91:z+=pi(E);break;case 9:case 10:case 13:case 32:z+=fu(g);break;case 92:z+=mu(ln()-1,7);continue;case 47:switch(tt()){case 42:case 47:Tt(bu(vu(Oe(),ln()),t,n,l),l);break;default:z+="/"}break;case 123*_:s[c++]=Me(z)*v;case 125*_:case 59:case 0:switch(E){case 0:case 125:y=0;case 59+m:v==-1&&(z=G(z,/\f/g,"")),h>0&&Me(z)-d&&Tt(h>32?Ra(z+";",i,n,d-1,l):Ra(G(z," ","")+";",i,n,d-2,l),l);break;case 59:z+=";";default:if(Tt(U=La(z,t,n,c,m,r,s,D,N=[],F=[],d,a),a),E===123)if(m===0)cn(z,t,U,U,N,a,d,s,F);else switch(p===99&&ye(z,3)===110?100:p){case 100:case 108:case 109:case 115:cn(e,U,U,i&&Tt(La(e,U,U,0,0,r,s,D,r,N=[],d,F),F),r,F,d,s,i?N:F);break;default:cn(z,U,U,U,[""],F,0,s,F)}}c=m=h=0,_=v=1,D=z="",d=o;break;case 58:d=1+Me(z),h=g;default:if(_<1){if(E==123)--_;else if(E==125&&_++==0&&hu()==125)continue}switch(z+=ci(E),E*_){case 38:v=m>0?1:(z+="\f",-1);break;case 44:s[c++]=(Me(z)-1)*v,v=1;break;case 64:tt()===45&&(z+=pi(Oe())),p=tt(),m=d=Me(D=z+=yu(ln())),E++;break;case 45:g===45&&Me(z)==2&&(_=0)}}return a}function La(e,t,n,i,r,a,o,s,l,c,m,d){for(var p=r-1,h=r===0?a:[""],g=$a(h),_=0,y=0,v=0;_<i;++_)for(var E=0,D=ct(e,p+1,p=Ca(y=o[_])),N=e;E<g;++E)(N=ka(y>0?h[E]+" "+D:G(D,/&\f/g,h[E])))&&(l[v++]=N);return sn(e,t,n,r===0?rn:s,l,c,m,d)}function bu(e,t,n,i){return sn(e,t,n,Sa,ci(du()),ct(e,2,-2),0,i)}function Ra(e,t,n,i,r){return sn(e,t,n,ui,ct(e,0,i),ct(e,i+1,-1),i,r)}function Oa(e,t,n){switch(uu(e,t)){case 5103:return re+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return re+e+e;case 4789:return At+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return re+e+At+e+ue+e+e;case 5936:switch(ye(e,t+11)){case 114:return re+e+ue+G(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return re+e+ue+G(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return re+e+ue+G(e,/[svh]\w+-[tblr]{2}/,"lr")+e}case 6828:case 4268:case 2903:return re+e+ue+e+e;case 6165:return re+e+ue+"flex-"+e+e;case 5187:return re+e+G(e,/(\w+).+(:[^]+)/,re+"box-$1$2"+ue+"flex-$1$2")+e;case 5443:return re+e+ue+"flex-item-"+G(e,/flex-|-self/g,"")+(qe(e,/flex-|baseline/)?"":ue+"grid-row-"+G(e,/flex-|-self/g,""))+e;case 4675:return re+e+ue+"flex-line-pack"+G(e,/align-content|flex-|-self/g,"")+e;case 5548:return re+e+ue+G(e,"shrink","negative")+e;case 5292:return re+e+ue+G(e,"basis","preferred-size")+e;case 6060:return re+"box-"+G(e,"-grow","")+re+e+ue+G(e,"grow","positive")+e;case 4554:return re+G(e,/([^-])(transform)/g,"$1"+re+"$2")+e;case 6187:return G(G(G(e,/(zoom-|grab)/,re+"$1"),/(image-set)/,re+"$1"),e,"")+e;case 5495:case 3959:return G(e,/(image-set\([^]*)/,re+"$1$`$1");case 4968:return G(G(e,/(.+:)(flex-)?(.*)/,re+"box-pack:$3"+ue+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+re+e+e;case 4200:if(!qe(e,/flex-|baseline/))return ue+"grid-column-align"+ct(e,t)+e;break;case 2592:case 3360:return ue+G(e,"template-","")+e;case 4384:case 3616:return n&&n.some(function(i,r){return t=r,qe(i.props,/grid-\w+-end/)})?~an(e+(n=n[t].value),"span",0)?e:ue+G(e,"-start","")+e+ue+"grid-row-span:"+(~an(n,"span",0)?qe(n,/\d+/):+qe(n,/\d+/)-+qe(e,/\d+/))+";":ue+G(e,"-start","")+e;case 4896:case 4128:return n&&n.some(function(i){return qe(i.props,/grid-\w+-start/)})?e:ue+G(G(e,"-end","-span"),"span ","")+e;case 4095:case 3583:case 4068:case 2532:return G(e,/(.+)-inline(.+)/,re+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Me(e)-1-t>6)switch(ye(e,t+1)){case 109:if(ye(e,t+4)!==45)break;case 102:return G(e,/(.+:)(.+)-([^]+)/,"$1"+re+"$2-$3$1"+At+(ye(e,t+3)==108?"$3":"$2-$3"))+e;case 115:return~an(e,"stretch",0)?Oa(G(e,"stretch","fill-available"),t,n)+e:e}break;case 5152:case 5920:return G(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(i,r,a,o,s,l,c){return ue+r+":"+a+c+(o?ue+r+"-span:"+(s?l:+l-+a)+c:"")+e});case 4949:if(ye(e,t+6)===121)return G(e,":",":"+re)+e;break;case 6444:switch(ye(e,ye(e,14)===45?18:11)){case 120:return G(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+re+(ye(e,14)===45?"inline-":"")+"box$3$1"+re+"$2$3$1"+ue+"$2box$3")+e;case 100:return G(e,":",":"+ue)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return G(e,"scroll-","scroll-snap-")+e}return e}function dn(e,t){for(var n="",i=0;i<e.length;i++)n+=t(e[i],i,e,t)||"";return n}function wu(e,t,n,i){switch(e.type){case lu:if(e.children.length)break;case su:case ui:return e.return=e.return||e.value;case Sa:return"";case Ea:return e.return=e.value+"{"+dn(e.children,i)+"}";case rn:if(!Me(e.value=e.props.join(",")))return""}return Me(n=dn(e.children,i))?e.return=e.value+"{"+n+"}":""}function xu(e){var t=$a(e);return function(n,i,r,a){for(var o="",s=0;s<t;s++)o+=e[s](n,i,r,a)||"";return o}}function Su(e){return function(t){t.root||(t=t.return)&&e(t)}}function Eu(e,t,n,i){if(e.length>-1&&!e.return)switch(e.type){case ui:e.return=Oa(e.value,e.length,n);return;case Ea:return dn([Ze(e,{value:G(e.value,"@","@"+re)})],i);case rn:if(e.length)return cu(n=e.props,function(r){switch(qe(r,i=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":pt(Ze(e,{props:[G(r,/:(read-\w+)/,":"+At+"$1")]})),pt(Ze(e,{props:[r]})),di(e,{props:Pa(n,i)});break;case"::placeholder":pt(Ze(e,{props:[G(r,/:(plac\w+)/,":"+re+"input-$1")]})),pt(Ze(e,{props:[G(r,/:(plac\w+)/,":"+At+"$1")]})),pt(Ze(e,{props:[G(r,/:(plac\w+)/,ue+"input-$1")]})),pt(Ze(e,{props:[r]})),di(e,{props:Pa(n,i)});break}return""})}}var Cu={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},gt=typeof process<"u"&&process.env!==void 0&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||"data-styled",Ia="active",Aa="data-styled-version",hn="6.1.19",fi=`/*!sc*/ `,pn=typeof window<"u"&&typeof document<"u",ku=!!(typeof SC_DISABLE_SPEEDY=="boolean"?SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&process.env.REACT_APP_SC_DISABLE_SPEEDY!==void 0&&process.env.REACT_APP_SC_DISABLE_SPEEDY!==""?process.env.REACT_APP_SC_DISABLE_SPEEDY!=="false"&&process.env.REACT_APP_SC_DISABLE_SPEEDY:typeof process<"u"&&process.env!==void 0&&process.env.SC_DISABLE_SPEEDY!==void 0&&process.env.SC_DISABLE_SPEEDY!==""&&process.env.SC_DISABLE_SPEEDY!=="false"&&process.env.SC_DISABLE_SPEEDY),gn=Object.freeze([]),ft=Object.freeze({});function $u(e,t,n){return n===void 0&&(n=ft),e.theme!==n.theme&&e.theme||t||n.theme}var Ta=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","use","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"]),Pu=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,Du=/(^-|-$)/g;function Na(e){return e.replace(Pu,"-").replace(Du,"")}var Lu=/(a)(d)/gi,fn=52,Ma=function(e){return String.fromCharCode(e+(e>25?39:97))};function mi(e){var t,n="";for(t=Math.abs(e);t>fn;t=t/fn|0)n=Ma(t%fn)+n;return(Ma(t%fn)+n).replace(Lu,"$1-$2")}var vi,za=5381,mt=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},Fa=function(e){return mt(za,e)};function Ru(e){return mi(Fa(e)>>>0)}function Ou(e){return e.displayName||e.name||"Component"}function yi(e){return typeof e=="string"&&!0}var Ba=typeof Symbol=="function"&&Symbol.for,Ua=Ba?Symbol.for("react.memo"):60115,Iu=Ba?Symbol.for("react.forward_ref"):60112,Au={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Tu={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Ha={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Nu=((vi={})[Iu]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},vi[Ua]=Ha,vi);function ja(e){return("type"in(t=e)&&t.type.$$typeof)===Ua?Ha:"$$typeof"in e?Nu[e.$$typeof]:Au;var t}var Mu=Object.defineProperty,zu=Object.getOwnPropertyNames,Va=Object.getOwnPropertySymbols,Fu=Object.getOwnPropertyDescriptor,Bu=Object.getPrototypeOf,Wa=Object.prototype;function Ya(e,t,n){if(typeof t!="string"){if(Wa){var i=Bu(t);i&&i!==Wa&&Ya(e,i,n)}var r=zu(t);Va&&(r=r.concat(Va(t)));for(var a=ja(e),o=ja(t),s=0;s<r.length;++s){var l=r[s];if(!(l in Tu||n&&n[l]||o&&l in o||a&&l in a)){var c=Fu(t,l);try{Mu(e,l,c)}catch{}}}}return e}function vt(e){return typeof e=="function"}function _i(e){return typeof e=="object"&&"styledComponentId"in e}function nt(e,t){return e&&t?"".concat(e," ").concat(t):e||t||""}function qa(e,t){if(e.length===0)return"";for(var n=e[0],i=1;i<e.length;i++)n+=e[i];return n}function Nt(e){return e!==null&&typeof e=="object"&&e.constructor.name===Object.name&&!("props"in e&&e.$$typeof)}function bi(e,t,n){if(n===void 0&&(n=!1),!n&&!Nt(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var i=0;i<t.length;i++)e[i]=bi(e[i],t[i]);else if(Nt(t))for(var i in t)e[i]=bi(e[i],t[i]);return e}function wi(e,t){Object.defineProperty(e,"toString",{value:t})}function Mt(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return new Error("An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#".concat(e," for more information.").concat(t.length>0?" Args: ".concat(t.join(", ")):""))}var Uu=function(){function e(t){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=t}return e.prototype.indexOfGroup=function(t){for(var n=0,i=0;i<t;i++)n+=this.groupSizes[i];return n},e.prototype.insertRules=function(t,n){if(t>=this.groupSizes.length){for(var i=this.groupSizes,r=i.length,a=r;t>=a;)if((a<<=1)<0)throw Mt(16,"".concat(t));this.groupSizes=new Uint32Array(a),this.groupSizes.set(i),this.length=a;for(var o=r;o<a;o++)this.groupSizes[o]=0}for(var s=this.indexOfGroup(t+1),l=(o=0,n.length);o<l;o++)this.tag.insertRule(s,n[o])&&(this.groupSizes[t]++,s++)},e.prototype.clearGroup=function(t){if(t<this.length){var n=this.groupSizes[t],i=this.indexOfGroup(t),r=i+n;this.groupSizes[t]=0;for(var a=i;a<r;a++)this.tag.deleteRule(i)}},e.prototype.getGroup=function(t){var n="";if(t>=this.length||this.groupSizes[t]===0)return n;for(var i=this.groupSizes[t],r=this.indexOfGroup(t),a=r+i,o=r;o<a;o++)n+="".concat(this.tag.getRule(o)).concat(fi);return n},e}(),mn=new Map,vn=new Map,yn=1,_n=function(e){if(mn.has(e))return mn.get(e);for(;vn.has(yn);)yn++;var t=yn++;return mn.set(e,t),vn.set(t,e),t},Hu=function(e,t){yn=t+1,mn.set(e,t),vn.set(t,e)},ju="style[".concat(gt,"][").concat(Aa,'="').concat(hn,'"]'),Vu=new RegExp("^".concat(gt,'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)')),Wu=function(e,t,n){for(var i,r=n.split(","),a=0,o=r.length;a<o;a++)(i=r[a])&&e.registerName(t,i)},Yu=function(e,t){for(var n,i=((n=t.textContent)!==null&&n!==void 0?n:"").split(fi),r=[],a=0,o=i.length;a<o;a++){var s=i[a].trim();if(s){var l=s.match(Vu);if(l){var c=0|Number.parseInt(l[1],10),m=l[2];c!==0&&(Hu(m,c),Wu(e,m,l[3]),e.getTag().insertRules(c,r)),r.length=0}else r.push(s)}}},Ga=function(e){for(var t=document.querySelectorAll(ju),n=0,i=t.length;n<i;n++){var r=t[n];r&&r.getAttribute(gt)!==Ia&&(Yu(e,r),r.parentNode&&r.parentNode.removeChild(r))}};function qu(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:null}var Ka=function(e){var t=document.head,n=e||t,i=document.createElement("style"),r=function(s){var l=Array.from(s.querySelectorAll("style[".concat(gt,"]")));return l[l.length-1]}(n),a=r!==void 0?r.nextSibling:null;i.setAttribute(gt,Ia),i.setAttribute(Aa,hn);var o=qu();return o&&i.setAttribute("nonce",o),n.insertBefore(i,a),i},Gu=function(){function e(t){this.element=Ka(t),this.element.appendChild(document.createTextNode("")),this.sheet=function(n){if(n.sheet)return n.sheet;for(var i=document.styleSheets,r=0,a=i.length;r<a;r++){var o=i[r];if(o.ownerNode===n)return o}throw Mt(17)}(this.element),this.length=0}return e.prototype.insertRule=function(t,n){try{return this.sheet.insertRule(n,t),this.length++,!0}catch{return!1}},e.prototype.deleteRule=function(t){this.sheet.deleteRule(t),this.length--},e.prototype.getRule=function(t){var n=this.sheet.cssRules[t];return n&&n.cssText?n.cssText:""},e}(),Ku=function(){function e(t){this.element=Ka(t),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(t,n){if(t<=this.length&&t>=0){var i=document.createTextNode(n);return this.element.insertBefore(i,this.nodes[t]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(t){this.element.removeChild(this.nodes[t]),this.length--},e.prototype.getRule=function(t){return t<this.length?this.nodes[t].textContent:""},e}(),Xu=function(){function e(t){this.rules=[],this.length=0}return e.prototype.insertRule=function(t,n){return t<=this.length&&(this.rules.splice(t,0,n),this.length++,!0)},e.prototype.deleteRule=function(t){this.rules.splice(t,1),this.length--},e.prototype.getRule=function(t){return t<this.length?this.rules[t]:""},e}(),Xa=pn,Zu={isServer:!pn,useCSSOMInjection:!ku},Za=function(){function e(t,n,i){t===void 0&&(t=ft),n===void 0&&(n={});var r=this;this.options=xe(xe({},Zu),t),this.gs=n,this.names=new Map(i),this.server=!!t.isServer,!this.server&&pn&&Xa&&(Xa=!1,Ga(this)),wi(this,function(){return function(a){for(var o=a.getTag(),s=o.length,l="",c=function(d){var p=function(v){return vn.get(v)}(d);if(p===void 0)return"continue";var h=a.names.get(p),g=o.getGroup(d);if(h===void 0||!h.size||g.length===0)return"continue";var _="".concat(gt,".g").concat(d,'[id="').concat(p,'"]'),y="";h!==void 0&&h.forEach(function(v){v.length>0&&(y+="".concat(v,","))}),l+="".concat(g).concat(_,'{content:"').concat(y,'"}').concat(fi)},m=0;m<s;m++)c(m);return l}(r)})}return e.registerId=function(t){return _n(t)},e.prototype.rehydrate=function(){!this.server&&pn&&Ga(this)},e.prototype.reconstructWithOptions=function(t,n){return n===void 0&&(n=!0),new e(xe(xe({},this.options),t),this.gs,n&&this.names||void 0)},e.prototype.allocateGSInstance=function(t){return this.gs[t]=(this.gs[t]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(t=function(n){var i=n.useCSSOMInjection,r=n.target;return n.isServer?new Xu(r):i?new Gu(r):new Ku(r)}(this.options),new Uu(t)));var t},e.prototype.hasNameForId=function(t,n){return this.names.has(t)&&this.names.get(t).has(n)},e.prototype.registerName=function(t,n){if(_n(t),this.names.has(t))this.names.get(t).add(n);else{var i=new Set;i.add(n),this.names.set(t,i)}},e.prototype.insertRules=function(t,n,i){this.registerName(t,n),this.getTag().insertRules(_n(t),i)},e.prototype.clearNames=function(t){this.names.has(t)&&this.names.get(t).clear()},e.prototype.clearRules=function(t){this.getTag().clearGroup(_n(t)),this.clearNames(t)},e.prototype.clearTag=function(){this.tag=void 0},e}(),Ju=/&/g,Qu=/^\s*\/\/.*$/gm;function Ja(e,t){return e.map(function(n){return n.type==="rule"&&(n.value="".concat(t," ").concat(n.value),n.value=n.value.replaceAll(",",",".concat(t," ")),n.props=n.props.map(function(i){return"".concat(t," ").concat(i)})),Array.isArray(n.children)&&n.type!=="@keyframes"&&(n.children=Ja(n.children,t)),n})}function ec(e){var t,n,i,r=ft,a=r.options,o=a===void 0?ft:a,s=r.plugins,l=s===void 0?gn:s,c=function(p,h,g){return g.startsWith(n)&&g.endsWith(n)&&g.replaceAll(n,"").length>0?".".concat(t):p},m=l.slice();m.push(function(p){p.type===rn&&p.value.includes("&")&&(p.props[0]=p.props[0].replace(Ju,n).replace(i,c))}),o.prefix&&m.push(Eu),m.push(wu);var d=function(p,h,g,_){h===void 0&&(h=""),g===void 0&&(g=""),_===void 0&&(_="&"),t=_,n=h,i=new RegExp("\\".concat(n,"\\b"),"g");var y=p.replace(Qu,""),v=_u(g||h?"".concat(g," ").concat(h," { ").concat(y," }"):y);o.namespace&&(v=Ja(v,o.namespace));var E=[];return dn(v,xu(m.concat(Su(function(D){return E.push(D)})))),E};return d.hash=l.length?l.reduce(function(p,h){return h.name||Mt(15),mt(p,h.name)},za).toString():"",d}var tc=new Za,xi=ec(),Qa=Ee.createContext({shouldForwardProp:void 0,styleSheet:tc,stylis:xi});Qa.Consumer,Ee.createContext(void 0);function eo(){return ee(Qa)}var nc=function(){function e(t,n){var i=this;this.inject=function(r,a){a===void 0&&(a=xi);var o=i.name+a.hash;r.hasNameForId(i.id,o)||r.insertRules(i.id,o,a(i.rules,o,"@keyframes"))},this.name=t,this.id="sc-keyframes-".concat(t),this.rules=n,wi(this,function(){throw Mt(12,String(i.name))})}return e.prototype.getName=function(t){return t===void 0&&(t=xi),this.name+t.hash},e}(),ic=function(e){return e>="A"&&e<="Z"};function to(e){for(var t="",n=0;n<e.length;n++){var i=e[n];if(n===1&&i==="-"&&e[0]==="-")return e;ic(i)?t+="-"+i.toLowerCase():t+=i}return t.startsWith("ms-")?"-"+t:t}var no=function(e){return e==null||e===!1||e===""},io=function(e){var t,n,i=[];for(var r in e){var a=e[r];e.hasOwnProperty(r)&&!no(a)&&(Array.isArray(a)&&a.isCss||vt(a)?i.push("".concat(to(r),":"),a,";"):Nt(a)?i.push.apply(i,nn(nn(["".concat(r," {")],io(a),!1),["}"],!1)):i.push("".concat(to(r),": ").concat((t=r,(n=a)==null||typeof n=="boolean"||n===""?"":typeof n!="number"||n===0||t in Cu||t.startsWith("--")?String(n).trim():"".concat(n,"px")),";")))}return i};function it(e,t,n,i){if(no(e))return[];if(_i(e))return[".".concat(e.styledComponentId)];if(vt(e)){if(!vt(a=e)||a.prototype&&a.prototype.isReactComponent||!t)return[e];var r=e(t);return it(r,t,n,i)}var a;return e instanceof nc?n?(e.inject(n,i),[e.getName(i)]):[e]:Nt(e)?io(e):Array.isArray(e)?Array.prototype.concat.apply(gn,e.map(function(o){return it(o,t,n,i)})):[e.toString()]}function rc(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(vt(n)&&!_i(n))return!1}return!0}var ac=Fa(hn),oc=function(){function e(t,n,i){this.rules=t,this.staticRulesId="",this.isStatic=(i===void 0||i.isStatic)&&rc(t),this.componentId=n,this.baseHash=mt(ac,n),this.baseStyle=i,Za.registerId(n)}return e.prototype.generateAndInjectStyles=function(t,n,i){var r=this.baseStyle?this.baseStyle.generateAndInjectStyles(t,n,i):"";if(this.isStatic&&!i.hash)if(this.staticRulesId&&n.hasNameForId(this.componentId,this.staticRulesId))r=nt(r,this.staticRulesId);else{var a=qa(it(this.rules,t,n,i)),o=mi(mt(this.baseHash,a)>>>0);if(!n.hasNameForId(this.componentId,o)){var s=i(a,".".concat(o),void 0,this.componentId);n.insertRules(this.componentId,o,s)}r=nt(r,o),this.staticRulesId=o}else{for(var l=mt(this.baseHash,i.hash),c="",m=0;m<this.rules.length;m++){var d=this.rules[m];if(typeof d=="string")c+=d;else if(d){var p=qa(it(d,t,n,i));l=mt(l,p+m),c+=p}}if(c){var h=mi(l>>>0);n.hasNameForId(this.componentId,h)||n.insertRules(this.componentId,h,i(c,".".concat(h),void 0,this.componentId)),r=nt(r,h)}}return r},e}(),ro=Ee.createContext(void 0);ro.Consumer;var Si={};function sc(e,t,n){var i=_i(e),r=e,a=!yi(e),o=t.attrs,s=o===void 0?gn:o,l=t.componentId,c=l===void 0?function(N,F){var U=typeof N!="string"?"sc":Na(N);Si[U]=(Si[U]||0)+1;var z="".concat(U,"-").concat(Ru(hn+U+Si[U]));return F?"".concat(F,"-").concat(z):z}(t.displayName,t.parentComponentId):l,m=t.displayName,d=m===void 0?function(N){return yi(N)?"styled.".concat(N):"Styled(".concat(Ou(N),")")}(e):m,p=t.displayName&&t.componentId?"".concat(Na(t.displayName),"-").concat(t.componentId):t.componentId||c,h=i&&r.attrs?r.attrs.concat(s).filter(Boolean):s,g=t.shouldForwardProp;if(i&&r.shouldForwardProp){var _=r.shouldForwardProp;if(t.shouldForwardProp){var y=t.shouldForwardProp;g=function(N,F){return _(N,F)&&y(N,F)}}else g=_}var v=new oc(n,p,i?r.componentStyle:void 0);function E(N,F){return function(U,z,$){var B=U.attrs,te=U.componentStyle,Z=U.defaultProps,P=U.foldedComponentIds,L=U.styledComponentId,O=U.target,k=Ee.useContext(ro),A=eo(),H=U.shouldForwardProp||A.shouldForwardProp,u=$u(z,k,Z)||ft,f=function(M,I,T){for(var j,ne=xe(xe({},I),{className:void 0,theme:T}),J=0;J<M.length;J+=1){var K=vt(j=M[J])?j(ne):j;for(var X in K)ne[X]=X==="className"?nt(ne[X],K[X]):X==="style"?xe(xe({},ne[X]),K[X]):K[X]}return I.className&&(ne.className=nt(ne.className,I.className)),ne}(B,z,u),b=f.as||O,w={};for(var S in f)f[S]===void 0||S[0]==="$"||S==="as"||S==="theme"&&f.theme===u||(S==="forwardedAs"?w.as=f.forwardedAs:H&&!H(S,b)||(w[S]=f[S]));var C=function(M,I){var T=eo(),j=M.generateAndInjectStyles(I,T.styleSheet,T.stylis);return j}(te,f),R=nt(P,L);return C&&(R+=" "+C),f.className&&(R+=" "+f.className),w[yi(b)&&!Ta.has(b)?"class":"className"]=R,$&&(w.ref=$),V(b,w)}(D,N,F)}E.displayName=d;var D=Ee.forwardRef(E);return D.attrs=h,D.componentStyle=v,D.displayName=d,D.shouldForwardProp=g,D.foldedComponentIds=i?nt(r.foldedComponentIds,r.styledComponentId):"",D.styledComponentId=p,D.target=i?r.target:e,Object.defineProperty(D,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(N){this._foldedDefaultProps=i?function(F){for(var U=[],z=1;z<arguments.length;z++)U[z-1]=arguments[z];for(var $=0,B=U;$<B.length;$++)bi(F,B[$],!0);return F}({},r.defaultProps,N):N}}),wi(D,function(){return".".concat(D.styledComponentId)}),a&&Ya(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function ao(e,t){for(var n=[e[0]],i=0,r=t.length;i<r;i+=1)n.push(t[i],e[i+1]);return n}var oo=function(e){return Object.assign(e,{isCss:!0})};function lc(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];if(vt(e)||Nt(e))return oo(it(ao(gn,nn([e],t,!0))));var i=e;return t.length===0&&i.length===1&&typeof i[0]=="string"?it(i):oo(it(ao(i,t)))}function Ei(e,t,n){if(n===void 0&&(n=ft),!t)throw Mt(1,t);var i=function(r){for(var a=[],o=1;o<arguments.length;o++)a[o-1]=arguments[o];return e(t,n,lc.apply(void 0,nn([r],a,!1)))};return i.attrs=function(r){return Ei(e,t,xe(xe({},n),{attrs:Array.prototype.concat(n.attrs,r).filter(Boolean)}))},i.withConfig=function(r){return Ei(e,t,xe(xe({},n),r))},i}var so=function(e){return Ei(sc,e)},se=so;Ta.forEach(function(e){se[e]=so(e)});const uc=se.div` border-bottom: ${e=>e.$noBorder?"none":"1px solid var(--color-base-30)"} !important; &.react-obsidian-settings-item { padding: 8px !important; margin-bottom: 12px !important; transition: box-shadow 0.3s ease !important; .setting-item .button-active { background-color: var(--interactive-accent) !important; color: var(--text-on-accent) !important; } .setting-item .clickable-icon { color: var(--text-muted); transition: color 0.2s ease; } .setting-item .clickable-icon:hover { color: var(--text-normal); } .setting-item input[type='text'], .setting-item input[type='number'] { background-color: var(--background-secondary); border: 1px solid var(--background-modifier-border); border-radius: 4px; padding: 6px 8px; width: 100%; } &:last-child { border-bottom: none !important; } &.no-border { border-bottom: none !important; } } `;function he(e){return e.priority!==void 0}const W=({name:e,desc:t,setHeading:n,setDisabled:i,setTooltip:r,noBorder:a,class:o,addToggles:s,addTexts:l,addTextAreas:c,addMomentFormats:m,addDropdowns:d,addSearches:p,addButtons:h,addExtraButtons:g,addSliders:_,addColorPickers:y,addProgressBars:v,addMultiDesc:E,setupSettingManually:D})=>{const N=Ee.useRef(null),F=Ee.useRef(null),U=Se(z=>{if(D&&D(z),e&&z.setName(e),t&&z.setDesc(t),r&&z.setTooltip(r),E){const $=he(E)?E.callback:E,B=document.createElement("div");B.addClass("setting-item-description"),z.infoEl&&z.infoEl.appendChild(B);const te=new ou({containerEl:B});$(te)}n&&z.setHeading(),o&&z.setClass(o),[...s?.map(($,B)=>({type:"toggle",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...l?.map(($,B)=>({type:"text",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...c?.map(($,B)=>({type:"textArea",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...m?.map(($,B)=>({type:"momentFormat",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...d?.map(($,B)=>({type:"dropdown",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...p?.map(($,B)=>({type:"search",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...y?.map(($,B)=>({type:"colorPicker",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...v?.map(($,B)=>({type:"progressBar",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[],...h?.map(($,B)=>({type:"button",callback:he($)?$.callback:$,priority:he($)?$.priority:9,originalIndex:B}))??[],...g?.map(($,B)=>({type:"extraButton",callback:he($)?$.callback:$,priority:he($)?$.priority:10,originalIndex:B}))??[],..._?.map(($,B)=>({type:"slider",callback:he($)?$.callback:$,priority:he($)?$.priority:0,originalIndex:B}))??[]].filter($=>$.callback!==void 0&&$.callback!==!1).sort(($,B)=>$.priority===B.priority?$.originalIndex-B.originalIndex:$.priority-B.priority).forEach($=>{switch($.type){case"toggle":z.addToggle($.callback);break;case"text":z.addText($.callback);break;case"textArea":z.addTextArea($.callback);break;case"momentFormat":z.addMomentFormat($.callback);break;case"dropdown":z.addDropdown($.callback);break;case"search":z.addSearch($.callback);break;case"colorPicker":z.addColorPicker($.callback);break;case"progressBar":z.addProgressBar($.callback);break;case"button":z.addButton($.callback);break;case"extraButton":z.addExtraButton($.callback);break;case"slider":z.addSlider($.callback);break}}),z.setDisabled(!!i)},[e,t,n,i,r,o,s,l,c,m,d,p,h,g,_,y,v,E,D]);return Xe(()=>{if(F.current)return F.current.empty(),N.current=new Y.Setting(F.current),U(N.current),()=>{F.current?.empty()}},[e,t,n,i,r,a,o,s,l,c,m,d,p,h,g,_,y,v,E,D]),x(uc,{$noBorder:a,ref:F,className:`react-obsidian-settings-item ${o??""}`})},bn=({children:e,title:t,onOpen:n,onClose:i,maxHeight:r,maxWidth:a,width:o,height:s,closable:l=!0,className:c})=>{const m=document.body,d=g=>{g.key==="Escape"&&l&&i()};fe(()=>{n&&n()},[n]);const[p,h]=Ee.useState({});return fe(()=>{const g={};o&&(g["--dialog-width"]=o),s&&(g.height=s),a&&(g["--dialog-max-width"]=a),r&&(g["--dialog-max-height"]=r),o&&!a&&(g["--dialog-max-width"]=o),s&&!r&&(g["--dialog-max-height"]=s),h(g)},[o,s,a,r]),qr(x("div",{className:"modal-container mod-dim",role:"dialog","aria-modal":"true","aria-labelledby":"modal-title",style:p,children:[x("div",{className:"modal-bg",onClick:()=>l&&i(),style:{opacity:"0.85"},"aria-hidden":"true",onKeyDown:d}),x("div",{className:`modal ${c??""}`,children:[x("div",{className:"modal-close-button",onClick:()=>l&&i(),"aria-label":"Close modal"}),x("div",{className:"modal-header",children:x("div",{className:"modal-title",children:t})}),x("div",{className:"modal-content",children:e})]})]}),m)},cc=se.div` font-size: small; color: gray; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; margin-top: 40px; /* отступ от кнопок */ padding: 20px 0; `,dc=se.div` margin-bottom: 12px; span { margin: 0 4px; } `,hc=se.div` margin-bottom: 12px; `,pc=()=>{const{plugin:e}=me();return x(oe,{children:[x(W,{name:"GitHub page",setupSettingManually:t=>t.setName("Hello"),addButtons:[t=>(t.setIcon("github"),t.setTooltip("Go to GitHub page of this plugin"),t.onClick(()=>{window.open("https://github.com/Ssentiago/diagram-zoom-drag/","_blank")}),t)]}),x(cc,{children:[x(hc,{children:"Make Obsidian Diagrams Interactify!"}),x(dc,{children:[e.manifest.version,x("span",{children:"\u2022"}),x("a",{href:"https://github.com/Ssentiago/diagram-zoom-drag/blob/main/LICENSE",target:"_blank",children:"Apache-2.0"}),x("span",{children:"\u2022"}),"by"," ",x("a",{href:"https://github.com/gitcpy",target:"_blank",children:"gitcpy"})," ","and"," ",x("a",{href:"https://github.com/Ssentiago",target:"_blank",children:"Ssentiago"})]})]})]})},gc=()=>{const{plugin:e}=me(),[,t]=Q(!1),n=Se(()=>{const i=e.logger.exportLogs(),r=new Blob([i],{type:"text/plain"}),a=URL.createObjectURL(r),o=document.createElement("a");o.href=a,o.download="diagram-zoom-drag-logs.txt",o.click(),URL.revokeObjectURL(a)},[e.logger]);return x(oe,{children:[x(W,{name:"Report an issue",addMultiDesc:i=>(i.addDescriptions(["If you encounter any issues or have suggestions, please report them on GitHub.","How to report an issue:","1. Enable debug logging below and set level to `Debug`.","Warning: This may impact performance temporarily.","2. Reproduce the issue with logging enabled.","3. Export logs using the button below.",'4. Click "Report an issue" and fill out the form.',"5. Attach the exported log file.","6. Submit the issue."]),i),addButtons:[i=>(i.setIcon("bug"),i.setTooltip("Report an issue"),i.onClick(async()=>{const r=JSON.stringify(e.logger.getShortSystemInfo(),null,2),a=encodeURIComponent(`## Issue Description [Describe your issue here] ## Steps to Reproduce 1. [First step] 2. [Second step] ## System info ${r} `),o=`https://github.com/Ssentiago/diagram-zoom-drag/issues/new?title=${encodeURIComponent("[Bug Report] ")}&labels=bug&body=${a}`;window.open(o,"_blank")}),i)]}),x(W,{name:"Enable logging",desc:"Enable debug logging for troubleshooting",addToggles:[i=>(i.setValue(e.settings.data.debug.enabled),i.onChange(async r=>{e.settings.data.debug.enabled=r,await e.settings.saveSettings()}),i)]}),x(W,{name:"Log level",desc:"Set minimum log level to display",addDropdowns:[i=>(i.addOptions({none:"None",error:"Error",warn:"Warning",info:"Info",debug:"Debug"}),i.setValue(e.settings.data.debug.level),i.onChange(async r=>{e.settings.data.debug.level=r,await e.settings.saveSettings()}),i)]}),x(W,{name:"About exported logs",addMultiDesc:i=>(i.addDescriptions(["Exported logs contain:","\u2022 Complete system information (OS, hardware, plugins)","\u2022 Debug events with timestamps","\u2022 Performance metrics","Review logs before sharing - remove sensitive data if needed."]),i)}),x(W,{name:"Export logs",addButtons:[i=>(i.setIcon("download"),i.setTooltip("Export logs"),i.onClick(n),i)]}),x(W,{name:"Copy logs",addButtons:[i=>(i.setIcon("clipboard"),i.setTooltip("Copy logs to clipboard"),i.onClick(async()=>{const r=e.logger.exportLogs();if(r.trim()===""){e.showNotice("No logs data found");return}await navigator.clipboard.writeText(r),e.showNotice("Logs was copied to clipboard")}),i)]}),x(W,{name:"Clear logs storage",desc:`Storage: ${e.logger.getStorageUsage()}, Entries: ${e.logger.getAllLogs().length}`,addButtons:[i=>(i.setIcon("trash"),i.setTooltip("Clear logs storage"),i.onClick(async()=>{e.logger.clearAllLogs(),t(r=>!r),e.showNotice("Logs storage was cleared")}),i)]})]})},fc=se.div` display: flex; justify-content: center; align-items: center; border-bottom: 1px solid var(--color-base-30); .button-active { background: var(--interactive-accent); color: var(--text-on-accent); transform: scale(1.05); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } button { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); &:hover { transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } } `;se.div` &.fadeIn { animation: 0.2s fadeIn forwards; } &.fadeOut { animation: 0.15s fadeOut forwards; } @keyframes fadeIn { from { opacity: 0; transform: translateX(15px); } to { opacity: 1; transform: translateX(0); } } @keyframes fadeOut { from { opacity: 1; transform: translateX(0); } to { opacity: 0; transform: translateX(-10px); } } `,se.div` &.fadeIn { animation: 0.25s mainFadeIn forwards; } &.fadeOut { animation: 0.2s mainFadeOut forwards; } @keyframes mainFadeIn { from { opacity: 0; transform: translateY(10px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes mainFadeOut { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-5px) scale(0.99); } } `;const mc=()=>{const{plugin:e}=me(),[t,n]=Q(e.settings.data.diagrams.supported_diagrams);fe(()=>{const r=()=>{n(e.settings.data.diagrams.supported_diagrams)};return e.settings.eventBus.on(e.settings.events.diagrams.supported_diagrams.$path,r),()=>{e.settings.eventBus.off(e.settings.events.diagrams.supported_diagrams.$path,r)}},[e]);const i=Se(async r=>{n(r),e.settings.data.diagrams.supported_diagrams=r,await e.settings.saveSettings()},[e]);return{diagrams:t,saveDiagrams:i}},lo=be(void 0),vc=({children:e})=>{const{diagrams:t,saveDiagrams:n}=mc(),i=de(()=>({diagrams:t,saveDiagrams:n}),[t,n]);return x(lo.Provider,{value:i,children:e})},yt=()=>{const e=ee(lo);if(e===void 0)throw new Error("useDiagramManagerContext must be used within a DiagramManagerProvider");return e},yc=(e,t)=>{const{plugin:n}=me(),[i,r]=Q(!1),[a,o]=Q(!1),[s,l]=Q([]),[c,m]=Q([]),[d,p]=Q(""),[h,g]=Q("");fe(()=>{if(s.length>0){const F=s[s.length-1];p(F.description)}else p("");if(c.length>0){const F=c[c.length-1];g(F.description)}else g("")},[s,c]);const _=()=>{if(!d)return`Nothing to undo Shortcut: CTR+Z`;const F=s.length>1?` (${s.length-1} more)`:"";return`Undo ${d}${F} Shortcut: CTR+Z`},y=()=>{if(!h)return`Nothing to redo Shortcut: CTR+SHIFT+Z`;const F=c.length>1?` (${c.length-1} more)`:"";return`Redo ${h}${F} Shortcut: CTR+SHIFT+Z`};fe(()=>{const F=async()=>{l([]),m([]),r(!1),o(!1)};return n.settings.eventBus.on("settings-reset",F),n.settings.eventBus.on("settings-clear-history",F),()=>{n.settings.eventBus.off("settings-reset",F),n.settings.eventBus.off("settings-clear-history",F)}},[]);const v=(F,U)=>{let z=[...s];z.push({description:U,state:F}),r(!0),z.length>50&&(z=[...z.slice(-49)]),l(z),m([]),o(!1)},E=F=>{const U=[...c,F];m(U),o(!0)},D=async()=>{if(s.length>0){const F=s[s.length-1];E({state:[...e],description:F.description}),await t([...F.state]);const U=s.slice(0,-1);l(U),r(U.length>0)}},N=async()=>{if(c.length>0){const F=c[c.length-1],U=[...s,{state:[...e],description:F.description}];l(U);const z=c.slice(0,-1);m(z),await t([...F.state]),r(!0),o(z.length>0)}};return fe(()=>{const F=async U=>{U.code!=="KeyZ"&&U.code!=="KeyY"||((U.ctrlKey||U.metaKey)&&U.shiftKey?(U.preventDefault(),a?await N():n.showNotice("Nothing to redo")):(U.ctrlKey||U.metaKey)&&(U.preventDefault(),i?await D():n.showNotice("Nothing to undo")),U.code==="KeyY"&&(U.ctrlKey||U.metaKey)&&!U.shiftKey&&(U.preventDefault(),await N()))};return window.addEventListener("keydown",F,!0),()=>{window.removeEventListener("keydown",F,!0)}},[D,N]),{updateUndoStack:v,undo:D,redo:N,canUndo:i,canRedo:a,getRedoLabel:y,getUndoLabel:_}},_c=()=>{const e=be(void 0);return{HistoryProvider:({state:t,updateState:n,children:i})=>{const{undo:r,canUndo:a,redo:o,canRedo:s,getRedoLabel:l,getUndoLabel:c,updateUndoStack:m}=yc(t,n),{plugin:d}=me(),p=de(()=>({undo:r,canUndo:a,redo:o,canRedo:s,getRedoLabel:l,getUndoLabel:c,updateUndoStack:m}),[r,a,o,s,l,c,m]);return fe(()=>()=>{d.settings.eventBus.emit("settings-clear-history")},[d]),x(e.Provider,{value:p,children:i})},useHistoryContext:()=>{const t=ee(e);if(t===void 0)throw new Error("useUndoRedoContext must be used within a UndoRedoProvider");return t}}},uo=_c(),Ci=uo.useHistoryContext,bc=uo.HistoryProvider,ki=()=>{const{plugin:e}=me(),{diagrams:t}=yt(),[n,i]=Q(new Set),[r,a]=Q(new Set),o=p=>{const h={names:[],selectors:[]};p.forEach(g=>{h.names.push(g.name),h.selectors.push(g.selector)}),i(new Set(h.names)),a(new Set(h.selectors))};fe(()=>{o(e.settings.data.diagrams.supported_diagrams);const p=h=>{o(t)};return e.settings.eventBus.on(e.settings.events.diagrams.supported_diagrams.$path,p),()=>{e.settings.eventBus.off(e.settings.events.diagrams.supported_diagrams.$path,p)}},[t]);const s=p=>{try{return document.querySelector(p),{valid:!0,err:void 0}}catch(h){return{valid:!1,err:h.message.split(":").slice(1).join(":").trim()}}},l=(p,h)=>p.trim()?n.has(p)&&(!h||h.name!==p)?{valid:!1,tooltip:"Diagram with that name already exists",empty:!1}:{valid:!0,tooltip:"",empty:!1}:{empty:!0,tooltip:"",valid:!1},c=(p,h)=>{if(!p.trim())return{empty:!0,tooltip:"",valid:!1};const{valid:g,err:_}=s(p);return g?r.has(p)&&(!h||h.selector!==p)?{valid:!1,tooltip:"Diagram with that selector already exists",empty:!1}:{valid:!0,tooltip:"",empty:!1}:{valid:!1,tooltip:`Invalid CSS selector: ${_}`,empty:!1}},m=(p,h,g)=>{const _=l(p,g),y=c(h,g),v=_.empty&&y.empty,E=(_.empty||y.empty)&&!v;return{nameResult:_,selectorResult:y,bothEmpty:v,oneEmpty:E}},d=(p,h)=>{p.classList.toggle("invalid",!h.empty&&!h.valid),p.ariaLabel=h.tooltip};return{validateBoth:m,validateName:l,validateSelector:c,processBothValidation:(p,h,g)=>{if(d(p,g.nameResult),d(h,g.selectorResult),g.bothEmpty)return e.showNotice("Nothing to save"),!1;if(g.oneEmpty){const v=g.nameResult.empty?"name":"selector";return e.showNotice(`Fill out diagram ${v} field!`),!1}const _=!g.nameResult.valid&&!g.selectorResult.valid,y=!g.nameResult.valid||!g.selectorResult.valid;if(_)return e.showNotice("Diagram name and selector are both invalid"),!1;if(y){const v=g.nameResult.valid?"selector":"name";return e.showNotice(`Diagram ${v} is invalid`),!1}return!0},processNameValidation:(p,h)=>(d(p,h),h.valid&&!h.empty),processSelectorValidation:(p,h)=>(d(p,h),h.valid&&!h.empty)}},wc=()=>{const{plugin:e}=me(),t=de(()=>e.manifest.dir,[e]),[n,i]=Q(!0),[r,a]=Q(""),o=async c=>{try{const m=await Y.requestUrl("https://raw.githubusercontent.com/Ssentiago/diagram-zoom-drag/main/assets/videos/find-class.mp4");return m.status!==200&&e.logger.error(`Error downloading video: ${m.status}`),await e.app.vault.adapter.writeBinary(c,m.arrayBuffer),!0}catch(m){return e.logger.error(`Error downloading video: ${m.message}`),!1}},s=async()=>{const c=await e.pluginStateChecker.isFirstPluginStart(),m=e.manifest.dir;if(!m)return!1;const d=Y.normalizePath(`${m}/assets`),p=Y.normalizePath(`${d}/user-guide-video.mp4`);return!await e.app.vault.adapter.exists(d)&&await e.app.vault.adapter.mkdir(d),c?await o(p):!await e.app.vault.adapter.exists(p)&&await o(p),e.app.vault.adapter.exists(p)},l=we(Y.normalizePath(`${t}/assets/user-guide-video.mp4`));return fe(()=>{(async()=>{i(!0);try{if(await s()){const c=await e.app.vault.adapter.readBinary(l.current),m=Buffer.from(c).toString("base64");a(`data:video/mp4;base64,${m}`)}else e.showNotice("The user guide video is not available.")}catch(c){console.error(c),e.showNotice("Something went wrong. The video is missing.")}finally{i(!1)}})()},[l]),{isLoading:n,videoUrl:r}},xc=({onClose:e})=>{const{isLoading:t,videoUrl:n}=wc();return x(bn,{title:"User Guide",onClose:()=>e(),children:x(oe,{children:[x(W,{name:"How this plugin does work",setHeading:!0}),x(W,{addMultiDesc:i=>(i.addDesc("This plugin stores data related to your selected elements."),i.addDesc("When you open another Markdown file with a diagram code in it and switch to preview mode, the plugin attempts to find the corresponding diagram in preview."),i.addDesc("If a matching diagram is found, the plugin creates a container, applies CSS styles, and enables diagram movement, zooming, and adds a control panel."),i)}),x(W,{name:"How to find selectors in DevTool",setHeading:!0,desc:"To identify the CSS selectors for diagrams on this page, follow these steps below using your browser\u2019s DevTools:"}),x(W,{name:"Steps to find selectors:",addMultiDesc:i=>(i.addDesc("1. Open the markdown file in Obsidian where the diagram is. You should switch to preview mode."),i.addDesc("2. Open the DevTools window. You can do it by pressing CTRL + SHIFT + I."),i.addDesc('3. Click the "Select an element on this page to inspect it" button (usually a arrow icon) in the top-left corner of the DevTools window. You can also press CTRL + SHIFT + C'),i.addDesc("4. Move your cursor over the diagram and click on it to select the element."),i.addDesc("5. In the Elements tab of DevTools, you will see the HTML element corresponding to the diagram highlighted."),i.addDesc('6. Look for the "class" attribute in the highlighted element. Common examples: `.mermaid`, `.block-language-plantuml`, `#chart-svg`'),i)}),t&&x("p",{children:"Loading video..."}),!t&&n&&x("video",{src:n,controls:!0,autoPlay:!1,style:{width:"100%",maxHeight:"400px"}}),!t&&!n&&x("p",{children:"Video failed to load. Please try again later."})]})})},Sc=()=>{const{plugin:e}=me(),[t,n]=Q(!1),{validateSelector:i,validateBoth:r,validateName:a,processSelectorValidation:o,processNameValidation:s,processBothValidation:l}=ki(),{diagrams:c,saveDiagrams:m}=yt(),{updateUndoStack:d}=Ci(),p=we(null),h=async()=>{if(p.current===null)return;const g=p.current.querySelector("#diagram-name"),_=p.current.querySelector("#diagram-selector");if(!g||!_)return;const y=r(g.value,_.value);if(!l(g,_,y))return;const v=[...c],E={name:g.value,selector:_.value,on:!0,panels:{move:{on:!0},zoom:{on:!0},service:{on:!0}}},D=[...c,E];await m(D),d(v,`Add diagram Name: ${E.name} Selector: ${E.selector}`),e.showNotice("New diagram was added"),g.value="",_.value=""};return x("div",{onKeyDown:async g=>{if(g.code==="Enter"){if(p.current===null)return;p.current.querySelector("input:focus")&&(g.preventDefault(),await h())}},ref:p,children:[x(W,{name:"Add new diagram",setHeading:!0,noBorder:!0,desc:"Here you can configure which diagrams will receive enhanced controls and UI.",addMultiDesc:g=>(g.addDescriptions(["Adding a Diagram Type:","1. Enter a unique name using only Latin letters, numbers and `-` (A-Z, a-z, 0-9, -)","2. Specify a valid CSS selector for your diagram","Once added, matching diagrams will get:","\u2022 Mouse and keyboard navigation","\u2022 Additional control buttons","Note: Red border indicates invalid input - hover to see details"]),g)}),x(W,{addTexts:[g=>(g.inputEl.id="diagram-name",g.setPlaceholder("Example Diagram"),g.onChange(_=>{g.setValue(_);const y=a(g.getValue());s(g.inputEl,y)}),g),g=>(g.inputEl.id="diagram-selector",g.setPlaceholder(".example-diagram"),g.onChange(_=>{g.setValue(_);const y=i(g.getValue());o(g.inputEl,y)}),g)],addButtons:[g=>(g.setIcon("save"),g.setTooltip("Add this diagram"),g.onClick(async()=>{await h()}),g)],addExtraButtons:[Y.Platform.isDesktopApp&&(g=>(g.setIcon("info"),g.setTooltip("Click for more information on how the plugin works and how you can find diagram selectors"),g.onClick(()=>{n(!0)}),g))]}),t&&x(xc,{onClose:()=>n(!1)})]})};/** * @license lucide-react v0.515.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */const Ec=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Cc=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,i)=>i?i.toUpperCase():n.toLowerCase()),co=e=>{const t=Cc(e);return t.charAt(0).toUpperCase()+t.slice(1)},ho=(...e)=>e.filter((t,n,i)=>!!t&&t.trim()!==""&&i.indexOf(t)===n).join(" ").trim(),kc=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};/** * @license lucide-react v0.515.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. */var $c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Pc=lt(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:i,className:r="",children:a,iconNode:o,...s},l)=>V("svg",{ref:l,...$c,width:t,height:t,stroke:e,strokeWidth:i?Number(n)*24/Number(t):n,className:ho("lucide",r),...!a&&!kc(s)&&{"aria-hidden":"true"},...s},[...o.map(([c,m])=>V(c,m)),...Array.isArray(a)?a:[a]])),wn=(e,t)=>{const n=lt(({className:i,...r},a)=>V(Pc,{ref:a,iconNode:t,className:ho(`lucide-${Ec(co(e))}`,`lucide-${e}`,i),...r}));return n.displayName=co(e),n},Dc=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Lc=wn("arrow-left",Dc),Rc=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Oc=wn("arrow-right",Rc),Ic=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Ac=wn("rotate-ccw",Ic),Tc=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Nc=wn("rotate-cw",Tc),Mc=se.div` position: relative; display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 20px; margin-bottom: 20px; padding-bottom: 20px; &::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background-color: var(--color-base-30); margin-top: 20px; } `,po=se.button` &:disabled { background-color: var(--color-base-50); cursor: not-allowed; } `,zc=se.button` margin-right: auto; /* Прижимаем к левому краю */ &:disabled { background-color: var(--color-base-50); cursor: not-allowed; } `,Fc=se.button` margin-left: auto; /* Прижимаем к правому краю */ &:disabled { background-color: var(--color-base-50); cursor: not-allowed; } `,Bc=se.div` display: flex; align-items: center; gap: 20px; `,Uc=()=>{const{plugin:e}=me(),{validateBoth:t,processBothValidation:n}=ki(),{diagrams:i,saveDiagrams:r}=yt(),{updateUndoStack:a}=Ci();return{handleDelete:async o=>{const s=[...i],l=[...i],c=l[o];l.splice(o,1),await r(l),a(s,`Delete diagram \`Name: ${c.name} Selector: ${c.selector}\``)},handleToggle:async(o,s)=>{const l=Vt(e,JSON.parse(JSON.stringify(i)),["supported_diagrams"]);i[o].on=s,await r([...i]),a(l,`${s?"Enable":"Disable"} ${i[o].name} diagram`)},handleSaveEditing:async o=>{const s=i[o],l=document.querySelector("#editing-name-input"),c=document.querySelector("#editing-selector-input");if(!l||!c)return;const m=t(l.value,c.value,s),d=n(l,c,m);if(d){const p=s.name,h=s.selector,g=p!==l.value,_=h!==c.value;i[o].name=l.value,i[o].selector=c.value,await r([...i]),l.removeAttribute("id"),c.removeAttribute("id");const y=[];g&&y.push(`name: "${p}" \u2192 "${i[o].name}"`),_&&y.push(`selector: "${h}" \u2192 "${i[o].selector}"`),a(i,`Edit diagram "${i[o].name}": ${y.join(` `)}`)}return d}}},Hc=({diagram:e,index:t,modeState:n,setModeState:i})=>{const{validateName:r,validateSelector:a,processNameValidation:o,processSelectorValidation:s}=ki(),{handleSaveEditing:l,handleDelete:c,handleToggle:m}=Uc(),d=we(null),p=async h=>{if(h.code==="Enter"){const g=d.current;if(!g)return;g.querySelector("input:focus")&&(h.preventDefault(),await l(t))}};return n.index===t&&n.mode==="edit"?x("div",{onKeyDown:p,ref:d,children:x(W,{addTexts:[h=>(h.setValue(e.name),h.inputEl.id="editing-name-input",h.onChange(g=>{const _=r(g,e);o(h.inputEl,_)}),h),h=>(h.setValue(e.selector),h.inputEl.id="editing-selector-input",h.onChange(g=>{const _=a(g,e);s(h.inputEl,_)}),h)],addButtons:[h=>(h.setIcon("circle-x"),h.setTooltip("Cancel operation? All changes will be lost."),h.onClick(()=>{i({index:-1,mode:"none"})}),h),h=>(h.setIcon("save"),h.setTooltip(`Save changes for ${e.name}?`),h.onClick(async g=>{await l(t),i({index:-1,mode:"none"})}),h)]})}):x(W,{name:e.name,desc:e.selector,addToggles:[h=>(h.setValue(e.on),h.setTooltip(`${e.on?"Disable":"Enable"} ${e.name} diagram`),h.onChange(async g=>{await m(t,g)}),h)],addButtons:[e.name!=="Default"&&(h=>(h.setIcon("edit"),h.setTooltip(`Edit ${e.name} diagram`),h.onClick(async()=>{i({index:t,mode:"edit"})}),h)),e.name!=="Default"&&(h=>(h.setIcon("trash"),h.setTooltip(`Delete ${e.name} diagram`),h.onClick(async()=>{await c(t)}),h))],addExtraButtons:[h=>(h.setTooltip(`Options for ${e.name} diagram`),h.onClick(()=>{i({index:t,mode:"options"})}),h)]})},jc=({itemsPerPage:e,totalItems:t})=>{const[n,i]=Q(1),[r,a]=Q(0),o=de(()=>Math.max(1,Math.ceil(t/e)),[t,e]),s=de(()=>(n-1)*e,[n,e]),l=de(()=>s+e,[s,e]);return fe(()=>{const c=Math.max(1,Math.ceil(t/e));i(m=>Math.min(m,c))},[e,t]),{page:n,pageStartIndex:s,pageEndIndex:l,delta:r,setDelta:a,totalPages:o,navigateToPage:c=>{i(m=>Math.min(o,Math.max(m+c,1)))}}},Vc=({diagramIndex:e,onClose:t,onChanges:n})=>{const{plugin:i}=me(),{diagrams:r}=yt(),a=de(()=>r[e],[e]);return x(bn,{onClose:t,title:`${a.name} diagram options`,children:[x(W,{desc:"These settings will only apply to this diagram."}),x(W,{name:"Panels",setHeading:!0}),Object.entries(a.panels).map(([o,{on:s}])=>x(W,{name:o.charAt(0).toUpperCase().concat(o.slice(1).toLowerCase()),addToggles:[l=>(l.setValue(s),l.onChange(async c=>{const m=Vt(i,JSON.parse(JSON.stringify(r)),["supported_diagrams"]);i.settings.data.diagrams.supported_diagrams[e].panels[o].on=c,await i.settings.saveSettings(),n(m,`Turn ${c?"on":"off"} panel \`${o}\` for diagram \`${a.name}\``)}),l)]},o))]})},Wc=()=>{const{plugin:e}=me(),[t,n]=Q(e.settings.data.diagrams.settingsPagination.perPage),{diagrams:i}=yt(),[r,a]=Q({mode:"none",index:-1}),{navigateToPage:o,totalPages:s,pageStartIndex:l,pageEndIndex:c,page:m}=jc({itemsPerPage:t,totalItems:i.length}),{updateUndoStack:d,undo:p,canUndo:h,canRedo:g,getRedoLabel:_,redo:y,getUndoLabel:v}=Ci();fe(()=>{const N=async()=>{n(e.settings.data.diagrams.settingsPagination.perPage)};return e.settings.eventBus.on(e.settings.events.diagrams.settingsPagination.perPage.$path,N),()=>{e.settings.eventBus.off(e.settings.events.diagrams.settingsPagination.perPage.$path,N)}},[e]);const E=de(()=>i.slice(l,c),[i,l,c]),D=N=>{const F=N==="next"?m<s:m>1,U=F?`Go to ${N} page`:`No ${N} page`;return r.mode==="edit"&&F?"Can't change page while editing":U};return x(oe,{children:[x(W,{name:"Available diagrams",setHeading:!0}),x(W,{name:"Diagrams per page",setDisabled:r.mode==="edit",addSliders:[N=>(N.setValue(e.settings.data.diagrams.settingsPagination.perPage),N.setLimits(1,50,1),N.setDynamicTooltip(),N.onChange(async F=>{e.settings.data.diagrams.settingsPagination.perPage=F,await e.settings.saveSettings()}),N)]}),x(Mc,{children:[x(zc,{onClick:p,disabled:!h,"aria-label":v(),children:x(Ac,{size:"20px"})}),x(Bc,{children:[x(po,{onClick:()=>o(-1),disabled:m===1||r.mode==="edit","aria-label":D("previous"),children:x(Lc,{size:"20px"})}),`Page ${m} of ${s} (Total diagrams: ${i.length})`,x(po,{onClick:()=>o(1),disabled:m===s||r.mode==="edit","aria-label":D("next"),children:x(Oc,{size:"20px"})})]}),x(Fc,{disabled:!g,onClick:y,"aria-label":_(),children:x(Nc,{size:"20px"})})]}),E.map((N,F)=>x(Hc,{diagram:N,index:l+F,modeState:r,setModeState:a},`${N.name}-${N.selector}`)),r.mode==="options"&&r.index!==-1&&x(Vc,{diagramIndex:r.index,onChanges:d,onClose:()=>{a({mode:"none",index:-1})}})]})},Yc=()=>{const{diagrams:e,saveDiagrams:t}=yt();return x(bc,{state:e,updateState:t,children:[x(Sc,{}),x(Wc,{})]})},qc=()=>{const{plugin:e}=me();return x(oe,{children:[x(W,{name:"Fold",setHeading:!0}),x(W,{name:"Fold diagrams by default",addToggles:[t=>(t.setValue(e.settings.data.diagrams.folding.foldByDefault).onChange(async n=>{e.settings.data.diagrams.folding.foldByDefault=n,await e.settings.saveSettings()}),t)]}),x(W,{name:"Automatically fold diagrams on focus change",addToggles:[t=>(t.setValue(e.settings.data.diagrams.folding.autoFoldOnFocusChange).onChange(async n=>{e.settings.data.diagrams.folding.autoFoldOnFocusChange=n,await e.settings.saveSettings()}),t)]})]})};var zt=(e=>(e.Folded="folded",e.Expanded="expanded",e))(zt||{});const go={px:{min:100,max:1e3,label:"px",rangeMessage:"100-1000px"},"%":{min:10,max:100,label:"%",rangeMessage:"10-100%"}},Gc=e=>go[e].rangeMessage,$i=(e,t)=>{const n=Number.parseInt(e,10),{min:i,max:r}=go[t];return n>=i&&n<=r},Kc=(e,t)=>`Invalid ${e}. Please enter number in range ${Gc(t)}.`,fo=({type:e,initialOptions:t})=>{const{plugin:n}=me(),i=we(!1),[r,a]=Q(t.height.unit),[o,s]=Q(t.width.unit),l=we(t.height.value),c=we(t.width.value),m=we(null),d=de(()=>e===zt.Folded?"Folded":"Expanded",[e]),p=Se((y,v,E)=>{const D=y.value;$i(D,E)?(y.removeClass("invalid"),Y.setTooltip(y,""),i.current=!1):(y.addClass("invalid"),Y.setTooltip(y,Kc(v,E)),i.current=!0)},[]),h=(y,v)=>{const E=$i(y.value,o),D=$i(v.value,r);return E&&D};fe(()=>{const y=m.current?.querySelector("#input-width"),v=m.current?.querySelector("#input-height");y?.value&&p(y,"width",o),v?.value&&p(v,"height",r)},[o,r]);const g=async()=>{if(!m.current)return;const y=m.current.querySelector("#input-width"),v=m.current.querySelector("#input-height");if(!h(y,v)){n.showNotice("Please fix validation errors");return}const E=Number.parseInt(y.value,10),D=Number.parseInt(v.value,10);if(E===t.width.value&&D===t.height.value&&o===t.width.unit&&r===t.height.unit){n.showNotice("Nothing to save");return}t.width.value=E,t.height.value=D,t.width.unit=o,t.height.unit=r,e===zt.Folded?n.settings.data.diagrams.size.folded=t:n.settings.data.diagrams.size.expanded=t,await n.settings.saveSettings(),n.showNotice("Saved successfully")},_=async y=>{if(y.code==="Enter"){if(!m.current)return;m.current.querySelector("input:focus")&&(y.preventDefault(),await g())}};return x(oe,{children:[x(W,{name:`${d} diagram container size`,addMultiDesc:y=>(y.addDescriptions([`Set the container dimensions for ${d.toLowerCase()} state.`,"px: 100-1000, %: 10-100","Click Save button or press Enter to apply changes."]),y),noBorder:!0}),x("div",{onKeyDown:_,ref:m,children:x(W,{addTexts:[y=>{const v=y.inputEl.parentElement;y.inputEl.id="input-height";const E=document.createElement("label");return E.textContent="Height:",v.insertBefore(E,y.inputEl),y.setValue(l.current.toString()),y.setPlaceholder("height"),y.onChange(D=>{const N=D.replace(/\D/,"");y.setValue(N),l.current=Number.parseInt(N,10),p(y.inputEl,"height",r)}),y},y=>{const v=y.inputEl.parentElement;y.inputEl.id="input-width";const E=document.createElement("label");return E.textContent="Width:",v.insertBefore(E,y.inputEl),y.setValue(c.current.toString()),y.setPlaceholder("width"),y.onChange(D=>{const N=D.replace(/\D/,"");y.setValue(N),c.current=Number.parseInt(N,10),p(y.inputEl,"width",o)}),y}],addDropdowns:[y=>(y.addOptions({px:"px","%":"%"}),y.setValue(r),y.onChange(v=>{a(v)}),y),y=>(y.addOptions({px:"px","%":"%"}),y.setValue(o),y.onChange(v=>{s(v)}),y)],addButtons:[y=>(y.setIcon("save"),y.onClick(g),y)]})})]})},Xc=()=>{const{plugin:e}=me();return x(oe,{children:[x(W,{name:"Diagram Size",addMultiDesc:t=>(t.addDescriptions(["Note: You need to reopen all the open Markdown views with diagrams in them to apply these settings."]),t),setHeading:!0}),x(fo,{type:zt.Expanded,initialOptions:e.settings.data.diagrams.size.expanded}),x(fo,{type:zt.Folded,initialOptions:e.settings.data.diagrams.size.folded})]})},mo=()=>x(oe,{children:[x(Xc,{}),x(qc,{})]}),Zc=()=>{const e=ti(),t=Le();return x(vc,{children:[x(fc,{children:x(W,{addButtons:[n=>(n.setIcon("settings"),n.setTooltip("Settings"),n.onClick(async()=>{await e("/diagram-section/settings")}),(t.pathname==="/diagram-section"||t.pathname==="/diagram-section/settings")&&n.setClass("button-active"),n),n=>(n.setIcon("folder-plus"),n.setTooltip("Diagram Management"),n.onClick(async()=>{await e("/diagram-section/management")}),t.pathname==="/diagram-section/management"&&n.setClass("button-active"),n)]})}),x(ri,{location:t,children:[x(Re,{index:!0,element:x(mo,{})}),x(Re,{path:"settings",element:x(mo,{})}),x(Re,{path:"management",element:x(Yc,{})})]})]})},Jc=se.div` display: flex; justify-content: center; align-items: center; border-bottom: 1px solid var(--color-base-30); .button-active { background: var(--interactive-accent); color: var(--text-on-accent); transform: scale(1.05); transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } button { transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); &:hover { transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } } `,vo={TOGGLE:1,BUTTON:2},Qc=({onClose:e,title:t})=>{const{plugin:n}=me(),i=Ee.useMemo(()=>{const{zoom:r,move:a,service:o}=n.settings.data.panels.local.panels;return{zoom:[{tooltip:"Zoom In",icon:"zoom-in",getValue:()=>r.buttons.in,setValue:s=>r.buttons.in=s},{tooltip:"Zoom Out",icon:"zoom-out",getValue:()=>r.buttons.out,setValue:s=>r.buttons.out=s},{tooltip:"Reset",icon:"refresh-cw",getValue:()=>r.buttons.reset,setValue:s=>r.buttons.reset=s}],move:[{tooltip:"Move Up",icon:"arrow-up",getValue:()=>a.buttons.up,setValue:s=>a.buttons.up=s},{tooltip:"Move Down",icon:"arrow-down",getValue:()=>a.buttons.down,setValue:s=>a.buttons.down=s},{tooltip:"Move Left",icon:"arrow-left",getValue:()=>a.buttons.left,setValue:s=>a.buttons.left=s},{tooltip:"Move Right",icon:"arrow-right",getValue:()=>a.buttons.right,setValue:s=>a.buttons.right=s},{tooltip:"Move Right Up",icon:"arrow-up-right",getValue:()=>a.buttons.upRight,setValue:s=>a.buttons.upRight=s},{tooltip:"Move Right Down",icon:"arrow-down-right",getValue:()=>a.buttons.downRight,setValue:s=>a.buttons.downRight=s},{tooltip:"Move Left Up",icon:"arrow-up-left",getValue:()=>a.buttons.upLeft,setValue:s=>a.buttons.upLeft=s},{tooltip:"Move Left Down",icon:"arrow-down-left",getValue:()=>a.buttons.downLeft,setValue:s=>a.buttons.downLeft=s}],service:[{tooltip:"Hide",icon:"eye",getValue:()=>o.buttons.hide,setValue:s=>o.buttons.hide=s},{tooltip:"Fullscreen",icon:"fullscreen",getValue:()=>o.buttons.fullscreen,setValue:s=>o.buttons.fullscreen=s}]}},[n]);return x(bn,{title:t,onClose:e,children:[x(W,{name:"Panel buttons section",setHeading:!0}),Object.entries(i).map(([r,a])=>x(Ee.Fragment,{children:[x(W,{name:r.charAt(0).toUpperCase().concat(r.slice(1).toLowerCase()),setHeading:!0}),a.map(({tooltip:o,icon:s,getValue:l,setValue:c},m)=>x(W,{name:o,noBorder:m!==a.length-1,addButtons:[{priority:vo.BUTTON,callback:d=>(d.setIcon(s),d.setTooltip(o),d)}],addToggles:[{priority:vo.TOGGLE,callback:d=>(d.setValue(l()).onChange(async p=>{c(p),await n.settings.saveSettings()}),d)}]},o))]},r))]})},ed=se.div` display: flex; flex-direction: column; gap: 20px; `,td=se.div` position: relative; width: 400px; height: 300px; border: 2px solid var(--color-base-30); margin: 0 auto; `,yo=se.div` position: absolute; width: 60px; height: 40px; padding: 8px; background: var(--color-base-20); border-radius: 4px; font-size: 0.9em; display: flex; align-items: center; justify-content: center; user-select: none; cursor: move; opacity: ${({dragging:e})=>e?.5:1}; transition: ${({dragging:e})=>e?"all 0.3s ease":"none"}} `,nd=se(yo)` position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); pointer-events: none; text-align: justify; `,id=se.div` display: flex; justify-content: center; gap: 20px; `,rd=se.label` display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 0.9em; `,Pi=(e,t,n)=>{const i=(_,y,v)=>_<=30?{top:"0px"}:v-y<=30?{bottom:"0px"}:{top:`${(_/v*100).toFixed(1)}%`},r=(_,y,v)=>_<=30?{left:"0px"}:v-y<=30?{right:"0px"}:{left:`${(_/v*100).toFixed(1)}%`},a={},o=e,s=e+60,l=t,c=t+40,m=o,d=n.width-s,p=l,h=n.height-c,g=[{edge:"left",value:m},{edge:"right",value:d},{edge:"top",value:p},{edge:"bottom",value:h}].reduce((_,y)=>Math.abs(_.value)<Math.abs(y.value)?_:y);if(Math.abs(g.value)<=30)switch(g.edge){case"left":a.left="0px",Object.assign(a,i(l,c,n.height));break;case"right":a.right="0px",Object.assign(a,i(l,c,n.height));break;case"top":a.top="0px",Object.assign(a,r(o,s,n.width));break;case"bottom":a.bottom="0px",Object.assign(a,r(o,s,n.width));break}else a.left=`${(o/n.width*100).toFixed(1)}%`,a.top=`${(l/n.height*100).toFixed(1)}%`;return a},ad=({diagramPreviewRef:e,panels:t})=>{const{plugin:n}=me(),[i,r]=Q(null),a=(d,p)=>{const h=d.currentTarget.getBoundingClientRect(),g=d.clientX-h.left,_=d.clientY-h.top;d.dataTransfer.setData("application/json",JSON.stringify({panelName:p,offsetX:g,offsetY:_})),r(p)},o=async d=>{if(d.preventDefault(),!e.current)return;const p=e.current.getBoundingClientRect(),h=JSON.parse(d.dataTransfer.getData("application/json")),g=d.clientX-p.left-h.offsetX,_=d.clientY-p.top-h.offsetY,y=Pi(g,_,p),v=h.panelName;t[v].position=y,r(null),await n.settings.saveSettings()},s=(d,p)=>{const h=d.touches[0],g=d.target,_=g.getBoundingClientRect(),y=h.clientX-_.left,v=h.clientY-_.top;r(p),g.dataset.dragData=JSON.stringify({panelName:p,offsetX:y,offsetY:v})},l=d=>{const p=e.current;if(!p||i)return;d.preventDefault();const h=d.touches[0],g=d.currentTarget,_=JSON.parse(g.dataset.dragData??"{}"),y=p.getBoundingClientRect(),v=h.clientX-y.left-_.offsetX,E=h.clientY-y.top-_.offsetY,D=Pi(v,E,y);g.style.left=D.left,g.style.top=D.top},c=async d=>{const p=e.current;if(!p||!i)return;const h=d.currentTarget,g=JSON.parse(h.dataset.dragData??"{}"),_=d.changedTouches[0],y=p.getBoundingClientRect(),v=_.clientX-y.left-g.offsetX,E=_.clientY-y.top-g.offsetY,D=Pi(v,E,y),N=g.panelName;t[N].position=D,r(null),await n.settings.saveSettings()},m=Y.Platform.isDesktopApp?{panel:d=>({draggable:!0,onDragStart:p=>a(p,d)}),container:{onDrop:o,onDragOver:d=>d.preventDefault()}}:{panel:d=>({onTouchStart:p=>s(p,d),onTouchMove:p=>l(p),onTouchEnd:p=>c(p)}),container:{}};return{draggedPanel:i,props:m}},od=()=>{const{plugin:e}=me(),[t,n]=Q(e.settings.data.panels.local.panels),[,i]=Q(!1),r=Ee.useRef(null),{draggedPanel:a,props:o}=ad({diagramPreviewRef:r,panels:t});fe(()=>{const l=c=>{i(m=>!m)};return e.settings.eventBus.on(e.settings.events.panels.local.panels.$all,l),()=>{e.settings.eventBus.off(e.settings.events.panels.local.panels.$all,l)}},[]);const s=async l=>{t[l].on=!t[l].on,await e.settings.saveSettings()};return x(ed,{children:[x(td,{ref:r,onDragOver:l=>l.preventDefault(),...o.container,children:[Object.entries(t).map(([l,c])=>c.on&&x(yo,{dragging:a===l,...o.panel(l),style:{...c.position},children:l},l)),x(nd,{children:"fold"})]}),x(id,{children:Object.entries(t).map(([l,c])=>x(rd,{children:[x("input",{type:"checkbox",checked:c.on,onChange:()=>s(l)}),l]},l))})]})},sd=({onClose:e,title:t})=>x(bn,{onClose:e,title:t,children:[x(W,{name:"Panel configuration",desc:"Configure the visibility and position of control panels on your diagrams",setHeading:!0,noBorder:!0}),x(W,{name:"Available panels",addMultiDesc:n=>(n.addDesc("\u2022 Move Panel: By default located at bottom right - Contains 8 directional buttons for diagram movement"),n.addDesc("\u2022 Zoom Panel: By default located at center right - Features zoom in/out and reset controls"),n.addDesc("\u2022 Service Panel: By default located at upper right - Contains additional functionality buttons"),n),noBorder:!0}),x(W,{name:"How to customize panels",addMultiDesc:n=>(n.addDesc("1. Use checkboxes below to toggle panel visibility on/off"),n.addDesc("2. Click and drag any panel to reposition it on the diagram"),n.addDesc("3. Panel positions are saved automatically"),n.addDesc("4. Reload the view to see your changes take effect"),n)}),x(od,{})]}),ld=()=>{const{plugin:e}=me(),[t,n]=Ee.useState(!1),[i,r]=Ee.useState(!1),a=we(!1),o={mobile:{zoom:{in:!0,out:!0,reset:!1},move:{up:!1,down:!1,left:!1,right:!1,upRight:!1,downRight:!1,upLeft:!1,downLeft:!1},service:{hide:!0,fullscreen:!1}},desktop:{zoom:{in:!0,out:!0,reset:!0},move:{up:!0,down:!0,left:!0,right:!0,upRight:!0,downRight:!0,upLeft:!0,downLeft:!0},service:{hide:!0,fullscreen:!0}},presentation:{zoom:{in:!0,out:!0,reset:!0},move:{up:!1,down:!1,left:!1,right:!1,upRight:!1,downRight:!1,upLeft:!1,downLeft:!1},service:{hide:!0,fullscreen:!0}}};fe(()=>{const l=async c=>{a.current||(e.settings.data.panels.local.preset="",await e.settings.saveSettings())};return e.settings.eventBus.on(`${e.settings.events.panels.local.panels.$path}.**`,l),()=>{e.settings.eventBus.off(`${e.settings.events.panels.local.panels.$path}.**`,l)}},[e,a]);const s=async l=>{a.current=!0;const{zoom:c,move:m,service:d}=e.settings.data.panels.local.panels,p=o[l];Object.assign(c.buttons,p.zoom),Object.assign(m.buttons,p.move),Object.assign(d.buttons,p.service),await e.settings.saveSettings(),a.current=!1};return x(oe,{children:[x(W,{name:"Apply preset",desc:"Apply button visibility preset",addDropdowns:[l=>(l.addOption("","Select preset...").addOption("mobile","Mobile minimal").addOption("desktop","Desktop full").addOption("presentation","Presentation mode").setValue(e.settings.data.panels.local.preset).onChange(async c=>{c&&(e.settings.data.panels.local.preset=c,await s(c))}),l)]}),x(W,{name:"Panel layout",desc:"Adjust panel positions and visibility",addButtons:[l=>(l.setIcon("layout"),l.setTooltip("Open panel layout editor"),l.onClick(()=>{n(!0)}),l)]}),x(W,{name:"Buttons layout",desc:"Configure which buttons are shown on each panel",addButtons:[l=>(l.setIcon("panels-top-left"),l.setTooltip("Open panel buttons editor"),l.onClick(()=>{r(!0)}),l)]}),t&&x(sd,{onClose:()=>n(!1),title:"Panel layout editor"}),i&&x(Qc,{onClose:()=>r(!1),title:"Panels buttons"})]})},_o=()=>{const{plugin:e}=me(),[t,n]=Q(e.settings.data.panels.global.triggering.mode!==He.ALWAYS),[i,r]=Q(""),a=de(()=>({always:"Panels are always visible when this option is selected.",hover:"Panels become visible when hovering the mouse over the diagram. The service panel may remain hidden if the ignore option is enabled.",focus:"Panels become visible when the diagram is focused (e.g., clicked). The service panel may remain hidden if the ignore option is enabled."}),[e]),o=Se(s=>{const l=s.selectEl.options[s.selectEl.options.selectedIndex].value,c=a[l];r(c)},[e]);return x(oe,{children:[x(W,{name:"Panels behavior",setHeading:!0}),x(W,{name:"Panels visibility",desc:"Control when panels will be visible",addDropdowns:[s=>(s.addOptions({always:"Always",hover:"On hover",focus:"On focus"}),s.setValue(e.settings.data.panels.global.triggering.mode),o(s),s.onChange(async l=>{e.settings.data.panels.global.triggering.mode=l,n(l!==He.ALWAYS),o(s),await e.settings.saveSettings()}),s)],addButtons:[s=>(s.setIcon("message-circle-question"),s.setTooltip(i),s)]}),t&&x(W,{name:"Ignore panel visibility rule for service panel",desc:"Service panel will always be visible regardless of visibility mode",addToggles:[s=>(s.setValue(e.settings.data.panels.global.triggering.ignoreService),s.onChange(async l=>{e.settings.data.panels.global.triggering.ignoreService=l,await e.settings.saveSettings()}),s)]})]})},ud=()=>{const e=ti(),t=Le(),n=t.pathname==="/panel-section/settings"||t.pathname==="/panel-section",i=t.pathname==="/panel-section/management";return x(oe,{children:[x(Jc,{children:x(W,{addButtons:[r=>(r.setIcon("settings"),r.setTooltip("Panels Settings"),r.onClick(async()=>{await e("/panel-section/settings")}),n&&r.setClass("button-active"),r),r=>(r.setIcon("folder-plus"),r.setTooltip("Panels Management"),r.onClick(async()=>{await e("/panel-section/management")}),i&&r.setClass("button-active"),r)]})}),x(ri,{children:[x(Re,{index:!0,element:x(_o,{})}),x(Re,{path:"settings",element:x(_o,{})}),x(Re,{path:"management",element:x(ld,{})})]})]})},cd=se.div` &.fadeIn { animation: 0.25s routeFadeIn forwards; } &.fadeOut { animation: 0.2s routeFadeOut forwards; } @keyframes routeFadeIn { from { opacity: 0; transform: translateY(10px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes routeFadeOut { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-5px) scale(0.99); } } `,dd=se.nav` display: flex; justify-content: center; align-items: center; padding: 16px; background-color: var(--background-primary); color: var(--text-normal); border-bottom: 2px solid var(--background-modifier-border); `,hd=se.div` display: flex; gap: 16px; `,xn=se.button` display: flex; align-items: center; background: none; border: none; text-decoration: none; color: var(--text-normal); font-size: 16px; padding: 8px 12px; gap: 10px; border-radius: 4px; transition: background-color 0.3s, color 0.3s; cursor: pointer; position: relative; &:hover { background-color: var(--background-modifier-hover); color: var(--text-accent-hover); } &.active { background-color: var(--background-modifier-active-hover); color: var(--text-accent); } &.active::after { content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 3px; background-color: var(--text-accent); border-radius: 2px 2px 0 0; } `,bo=()=>x(dd,{children:x(hd,{children:[x(xn,{as:It,to:"/diagram-section",draggable:!1,children:"Diagram"}),x(xn,{as:It,to:"/panel-section",draggable:!1,children:"Panel"}),x(xn,{as:It,to:"/Debug/",draggable:!1,children:"Debug"}),x(xn,{as:It,to:"/about",draggable:!1,children:"About"})]})}),wo=()=>{const{plugin:e,forceReload:t,setCurrentPath:n}=me(),i=Le();return x(W,{addButtons:[r=>(r.setIcon("rotate-ccw"),r.setTooltip("Reset settings to default"),r.onClick(async()=>{n(i.pathname),await e.settings.resetSettings(),e.settings.eventBus.emit("settings-reset"),t(),e.showNotice("Settings have been reset to default.")}),r)]})},pd=se.div` display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: 100%; &::before { content: ''; } `,gd=se.div` justify-self: end; display: flex; align-items: center; margin-top: 35px; `,fd=se.div` display: flex; justify-content: flex-end; margin-top: -50px; margin-right: 0; padding: 0; width: 100%; margin-bottom: 0; `,md=()=>Y.Platform.isDesktopApp?x(pd,{children:[x(bo,{}),x(gd,{children:x(wo,{})})]}):x(oe,{children:[x(fd,{children:x(wo,{})}),x(bo,{})]}),vd=()=>{const e=Le(),[t,n]=Q(e),[i,r]=Q("fadeIn");return fe(()=>{e!==t&&r("fadeOut")},[e,t]),x(oe,{children:[x(md,{}),x(cd,{$stage:i,className:i,onAnimationEnd:()=>{i==="fadeOut"&&(r("fadeIn"),n(e))},children:x(ri,{location:t,children:[x(Re,{path:"/diagram-section/*",element:x(Zc,{})}),x(Re,{path:"/panel-section/*",element:x(ud,{})}),x(Re,{path:"/debug/*",element:x(gc,{})}),x(Re,{path:"/about",element:x(pc,{})})]})})]})},yd=()=>{const{reloadCount:e,currentPath:t}=me();return x($l,{initialEntries:[t],children:x(vd,{})},e)},_d=({app:e,plugin:t})=>x(zs,{app:e,plugin:t,children:x(yd,{})});class bd extends Y.PluginSettingTab{constructor(t,n){super(t,n),this.app=t,this.plugin=n,this.containerEl.addClass("diagram-zoom-drag-settings")}root=void 0;display(){this.root=Ms(this.containerEl),this.root.render(x(_d,{app:this.app,plugin:this.plugin}))}hide(){this.plugin.settings.eventBus.removeAllListeners(),this.root?.unmount(),this.containerEl.empty()}}class wd{constructor(t){this.plugin=t}leaf;view;get leafID(){return this.leaf&&this.leaf.id}get active(){return this.leaf!==void 0&&this.view!==void 0&&this.view.file!==null}get inPreviewMode(){return this.view?.getState()?.mode==="preview"}get inLivePreviewMode(){const t=this.view?.getState();return!t?.source&&t?.mode==="source"}initialize(t){const n=this.plugin.app.workspace.getActiveViewOfType(Y.MarkdownView);n&&(this.leaf=n.leaf,this.view=n,t(this.leafID))}cleanup(t){this.leaf&&this.plugin.app.workspace.getLeafById(this.leafID)===null&&(t(this.leafID),this.view=void 0,this.leaf=void 0)}}class xd{constructor(t){this.plugin=t}async isFirstPluginStart(){const t=await this.getPluginMetadata(),n=localStorage.getItem("diagram-zoom-drag-metadata");if(!n)return localStorage.setItem("diagram-zoom-drag-metadata",t.toString()),!0;const i=Number.parseInt(n,10);return Number.isNaN(i)||t!==i?(localStorage.setItem("diagram-zoom-drag-metadata",t.toString()),!0):!1}async getPluginMetadata(){const{dir:t}=this.plugin.manifest;if(!t)throw new Error("No plugin dir found.");return(await this.plugin.app.vault.adapter.stat(t))?.ctime??0}}class Sd{constructor(t){this.plugin=t}data=new Map;initializeLeaf(t){this.data.get(t)||(this.data.set(t,{diagrams:[],livePreviewObserver:void 0}),this.plugin.logger.debug(`Initialized data for leaf width id: ${t}...`))}cleanupLeaf(t){const n=this.data.get(t);if(!n){this.plugin.logger.error("No data for leaf",{leafID:t});return}n.diagrams.forEach((i,r)=>{i.unload(),this.plugin.logger.debug("Unloaded diagram",{diagramName:i.context.diagramData.name})}),n.livePreviewObserver?.disconnect(),n.livePreviewObserver=void 0,this.data.delete(t),this.plugin.logger.debug(`Data for leaf with id ${t} was cleaned successfully.`)}clear(){this.plugin.logger.debug("Started to clear state...");for(const t of this.data.keys())this.cleanupLeaf(t);this.plugin.logger.debug("State was cleared successfully.")}getLivePreviewObserver(t){return this.data.get(t)?.livePreviewObserver}setLivePreviewObserver(t,n){const i=this.data.get(t);i&&(i.livePreviewObserver=n)}hasObserver(t){return!!this.getLivePreviewObserver(t)}getDiagrams(t){return this.data.get(t)?.diagrams??[]}pushDiagram(t,n){const i=this.data.get(t);if(!i){this.plugin.logger.error(`No data for leafID: ${t}`);return}i.diagrams.push(n)}async cleanupDiagramsOnFileChange(t,n){const i=this.data.get(t);if(!i){this.plugin.logger.error(`No data for leafID: ${t}`);return}const r=n.ctime;i.diagrams=i.diagrams.filter(a=>r!==a.fileStats.ctime?(a.unload(),this.plugin.logger.debug(`Cleaned up diagram with id ${a.id} due to file change`),!1):!0)}}class Ed extends Y.Plugin{context;state;settings;pluginStateChecker;diagram;logger;eventBus;async onload(){await this.initializePlugin(),this.logger.info("Plugin loaded successfully")}onunload(){this.logger.debug("Plugin unloading..."),this.state.clear(),this.eventBus.removeAllListeners(),this.logger.info("Plugin unloaded successfully")}async initializePlugin(){await this.initializeCore(),await this.initializeUtils(),await this.initializeEventSystem(),await this.initializeUI(),this.logger.info("Plugin initialized successfully.")}async initializeCore(){this.settings=new ts(this),await this.settings.loadSettings(),this.logger=new Jo(this),await this.logger.init(),this.context=new wd(this),this.state=new Sd(this),this.addSettingTab(new bd(this.app,this)),this.logger.debug("Core initialized")}async initializeEventSystem(){this.eventBus=new Ni({wildcard:!0,delimiter:"."}),this.setupInternalEventHandlers(),this.setupObsidianEventHandlers(),this.logger.debug("Event system initialized")}async initializeUI(){this.setupCommands(),this.logger.debug("UI initialized")}async initializeUtils(){this.pluginStateChecker=new xd(this),this.logger.debug("Utils initialized")}setupInternalEventHandlers(){this.eventBus.on("diagram.created",t=>{const n=this.context.leafID;if(!n){this.logger.error("No active leaf found.");return}this.state.pushDiagram(n,t),this.logger.debug("Diagram added to state",{leafID:n,diagramName:t.context.diagramData.name})})}setupObsidianEventHandlers(){this.app.workspace.onLayoutReady(()=>{this.app.workspace.getActiveViewOfType(Y.MarkdownView)!==null&&this.showNotice("Diagram Zoom Drag: Please reload this view to enable diagram functionality.")}),this.registerMarkdownPostProcessor(async(t,n)=>{this.context.initialize(i=>this.state.initializeLeaf(i)),this.context.active&&this.context.inPreviewMode&&(this.logger.debug("Calling withing the Markdown PostProcessor..."),await new Zo(this,{...this.context.view.file.stat}).initialize(this.context.leafID,t,n),this.logger.debug("Initialized adapter for Preview Mode..."))}),this.registerEvent(this.app.workspace.on("layout-change",async()=>{this.context.cleanup(t=>this.state.cleanupLeaf(t)),this.context.initialize(t=>this.state.initializeLeaf(t)),this.context.active&&(await this.state.cleanupDiagramsOnFileChange(this.context.leafID,this.context.view.file.stat),this.context.inLivePreviewMode&&(this.logger.debug("Calling withing the layout-change-event..."),await new ir(this,{...this.context.view.file.stat}).initialize(this.context.leafID,this.context.view.containerEl,void 0,this.state.hasObserver(this.context.leafID)),this.logger.debug("Initialized adapter for Live Preview Mode...")))})),this.registerEvent(this.app.workspace.on("active-leaf-change",async()=>{this.context.cleanup(t=>this.state.cleanupLeaf(t)),this.context.initialize(t=>this.state.initializeLeaf(t)),this.context.active&&this.context.inLivePreviewMode&&(this.logger.debug("Called withing the active-leaf-change event..."),await new ir(this,{...this.context.view.file.stat}).initialize(this.context.leafID,this.context.view.containerEl,void 0,this.state.hasObserver(this.context.leafID)),this.logger.debug("Initialized adapter for Live Preview Mode..."))}))}setupCommands(){this.addCommand({id:"diagram-zoom-drag-toggle-panels-management-state",name:"Toggle control panels visibility for all diagrams in current note",checkCallback:t=>{if(t)return(this.context.inLivePreviewMode||this.context.inPreviewMode)&&this.context.active;if(!this.context.active){this.showNotice("This command can only be used when a Markdown view is open.");return}const n=this.state.getDiagrams(this.context.leafID),i=n.some(a=>a.controlPanel.hasVisiblePanels);n.forEach(a=>i?a.controlPanel.hide(ie.FORCE):a.controlPanel.show(ie.FORCE));const r=i?"Control panels hidden":"Control panels shown";return this.showNotice(r),this.logger.debug("Called command `diagram-zoom-drag-toggle-panels-management-state`"),!0}})}showNotice(t,n){new Y.Notice(t,n)}}module.exports=Ed; /* nosourcemap */

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DollhouseMCP/DollhouseMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server