2026-08-21 15:44:03 +08:00
"use strict" ; var obsidian_module = require ( "obsidian" ), view = require ( "@codemirror/view" ), commands = require ( "@codemirror/commands" ), lr = require ( "@lezer/lr" ), language = require ( "@codemirror/language" ), highlight = require ( "@lezer/highlight" ), common = require ( "@lezer/common" ), state = require ( "@codemirror/state" );; const INITIAL_TIMESTAMP = Date . now ();
const pako = ( function () {
const module = { exports : {} };
const exports = module . exports ;
/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
! function ( t , e ){ "object" == typeof exports && "undefined" != typeof module ? e ( exports ) : "function" == typeof define && define . amd ? define ([ "exports" ], e ) : e (( t = "undefined" != typeof globalThis ? globalThis : t || self ). pako = {})}( this ,( function ( t ){ "use strict" ; function e ( t ){ let e = t . length ; for (; -- e >= 0 ;) t [ e ] = 0 } const a = 256 , i = 286 , n = 30 , s = 15 , r = new Uint8Array ([ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 5 , 5 , 5 , 5 , 0 ]), o = new Uint8Array ([ 0 , 0 , 0 , 0 , 1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 6 , 6 , 7 , 7 , 8 , 8 , 9 , 9 , 10 , 10 , 11 , 11 , 12 , 12 , 13 , 13 ]), l = new Uint8Array ([ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 3 , 7 ]), h = new Uint8Array ([ 16 , 17 , 18 , 0 , 8 , 7 , 9 , 6 , 10 , 5 , 11 , 4 , 12 , 3 , 13 , 2 , 14 , 1 , 15 ]), d = new Array ( 576 ); e ( d ); const _ = new Array ( 60 ); e ( _ ); const f = new Array ( 512 ); e ( f ); const c = new Array ( 256 ); e ( c ); const u = new Array ( 29 ); e ( u ); const w = new Array ( n ); function m ( t , e , a , i , n ){ this . static_tree = t , this . extra_bits = e , this . extra_base = a , this . elems = i , this . max_length = n , this . has_stree = t && t . length } let b , g , p ; function k ( t , e ){ this . dyn_tree = t , this . max_code = 0 , this . stat_desc = e } e ( w ); const v = t => t < 256 ? f [ t ] : f [ 256 + ( t >>> 7 )], y = ( t , e )=>{ t . pending_buf [ t . pending ++ ] = 255 & e , t . pending_buf [ t . pending ++ ] = e >>> 8 & 255 }, x = ( t , e , a )=>{ t . bi_valid > 16 - a ? ( t . bi_buf |= e << t . bi_valid & 65535 , y ( t , t . bi_buf ), t . bi_buf = e >> 16 - t . bi_valid , t . bi_valid += a - 16 ) : ( t . bi_buf |= e << t . bi_valid & 65535 , t . bi_valid += a )}, z = ( t , e , a )=>{ x ( t , a [ 2 * e ], a [ 2 * e + 1 ])}, A = ( t , e )=>{ let a = 0 ; do { a |= 1 & t , t >>>= 1 , a <<= 1 } while ( -- e > 0 ); return a >>> 1 }, E = ( t , e , a )=>{ const i = new Array ( 16 ); let n , r , o = 0 ; for ( n = 1 ; n <= s ; n ++ ) o = o + a [ n - 1 ] << 1 , i [ n ] = o ; for ( r = 0 ; r <= e ; r ++ ){ let e = t [ 2 * r + 1 ]; 0 !== e && ( t [ 2 * r ] = A ( i [ e ] ++ , e ))}}, R = t =>{ let e ; for ( e = 0 ; e < i ; e ++ ) t . dyn_ltree [ 2 * e ] = 0 ; for ( e = 0 ; e < n ; e ++ ) t . dyn_dtree [ 2 * e ] = 0 ; for ( e = 0 ; e < 19 ; e ++ ) t . bl_tree [ 2 * e ] = 0 ; t . dyn_ltree [ 512 ] = 1 , t . opt_len = t . static_len = 0 , t . sym_next = t . matches = 0 }, Z = t =>{ t . bi_valid > 8 ? y ( t , t . bi_buf ) : t . bi_valid > 0 && ( t . pending_buf [ t . pending ++ ] = t . bi_buf ), t . bi_buf = 0 , t . bi_valid = 0 }, U = ( t , e , a , i )=>{ const n = 2 * e , s = 2 * a ; return t [ n ] < t [ s ] || t [ n ] === t [ s ] && i [ e ] <= i [ a ]}, S = ( t , e , a )=>{ const i = t . heap [ a ]; let n = a << 1 ; for (; n <= t . heap_len && ( n < t . heap_len && U ( e , t . heap [ n + 1 ], t . heap [ n ], t . depth ) && n ++ , ! U ( e , i , t . heap [ n ], t . depth ));) t . heap [ a ] = t . heap [ n ], a = n , n <<= 1 ; t . heap [ a ] = i }, D = ( t , e , i )=>{ let n , s , l , h , d = 0 ; if ( 0 !== t . sym_next ) do { n = 255 & t . pending_buf [ t . sym_buf + d ++ ], n += ( 255 & t . pending_buf [ t . sym_buf + d ++ ]) << 8 , s = t . pending_buf [ t . sym_buf + d ++ ], 0 === n ? z ( t , s , e ) : ( l = c [ s ], z ( t , l + a + 1 , e ), h = r [ l ], 0 !== h && ( s -= u [ l ], x ( t , s , h )), n -- , l = v ( n ), z ( t , l , i ), h = o [ l ], 0 !== h && ( n -= w [ l ], x ( t , n , h )))} while ( d < t . sym_next ); z ( t , 256 , e )}, T = ( t , e )=>{ const a = e . dyn_tree , i = e . stat_desc . static_tree , n = e . stat_desc . has_stree , r = e . stat_desc . elems ; let o , l , h , d =- 1 ; for ( t . heap_len = 0 , t . heap_max = 573 , o = 0 ; o < r ; o ++ ) 0 !== a [ 2 * o ] ? ( t . heap [ ++ t . heap_len ] = d = o , t . depth [ o ] = 0 ) : a [ 2 * o + 1 ] = 0 ; for (; t . heap_len < 2 ;) h = t . heap [ ++ t . heap_len ] = d < 2 ?++ d : 0 , a [ 2 * h ] = 1 , t . depth [ h ] = 0 , t . opt_len -- , n && ( t . static_len -= i [ 2 * h + 1 ]); for ( e . max_code = d , o = t . heap_len >> 1 ; o >= 1 ; o -- ) S ( t , a , o ); h = r ; do { o = t . heap [ 1 ], t . heap [ 1 ] = t . heap [ t . heap_len -- ], S ( t , a , 1 ), l = t . heap [ 1 ], t . heap [ -- t . heap_max ] = o , t . heap [ -- t . heap_max ] = l , a [ 2 * h ] = a [ 2 * o ] + a [ 2 * l ], t . depth [ h ] = ( t . depth [ o ] >= t . depth [ l ] ? t . depth [ o ] : t . depth [ l ]) + 1 , a [ 2 * o + 1 ] = a [ 2 * l + 1 ] = h , t . heap [ 1 ] = h ++ , S ( t , a , 1 )} while ( t . heap_len >= 2 ); t . heap [ -- t . heap_max ] = t . heap [ 1 ],(( t , e )=>{ const a = e . dyn_tree , i = e . max_code , n = e . stat_desc . static_tree , r = e . stat_desc . has_stree , o = e . stat_desc . extra_bits , l = e . stat_desc . extra_base , h = e . stat_desc . max_length ; let d , _ , f , c , u , w , m = 0 ; for ( c = 0 ; c <= s ; c ++ ) t . bl_count [ c ] = 0 ; for ( a [ 2 * t . heap [ t . heap_max ] + 1 ] = 0 , d = t . heap_max + 1 ; d < 573 ; d ++ ) _ = t . heap [ d ], c = a [ 2 * a [ 2 * _ + 1 ] + 1 ] + 1 , c > h && ( c = h , m ++ ), a [ 2 * _ + 1 ] = c , _ > i || ( t . bl_count [ c ] ++ , u = 0 , _ >= l && ( u = o [ _ - l ]), w = a [ 2 * _ ], t . opt_len += w * ( c + u ), r && ( t . static_len += w * ( n [ 2 * _ + 1 ] + u ))); if ( 0 !== m ){ do { for ( c = h - 1 ; 0 === t . bl_count [ c ];) c -- ; t . bl_count [ c ] -- , t . bl_count [ c + 1 ] += 2 , t . bl_count [ h ] -- , m -= 2 } while ( m > 0 ); for ( c = h ; 0 !== c ; c -- ) for ( _ = t . bl_count [ c ]; 0 !== _ ;) f = t . heap [ -- d ], f > i || ( a [ 2 * f + 1 ] !== c && ( t . opt_len += ( c - a [ 2 * f + 1 ]) * a [ 2 * f ], a [ 2 * f + 1 ] = c ), _ -- )}})( t , e ), E ( a , d , t . bl_count )}, O = ( t , e , a )=>{ let i , n , s =- 1 , r = e [ 1 ], o = 0 , l = 7 , h = 4 ; for ( 0 === r && ( l = 138 , h = 3 ), e [ 2 * ( a + 1 ) + 1 ] = 65535 , i = 0 ; i <= a ; i ++ ) n = r , r = e [ 2 * ( i + 1 ) + 1 ], ++ o < l && n === r || ( o < h ? t . bl_tree [ 2 * n ] += o : 0 !== n ? ( n !== s && t . bl_tree [ 2 * n ] ++ , t . bl_tree [ 32 ] ++ ) : o <= 10 ? t . bl_tree [ 34 ] ++: t . bl_tree [ 36 ] ++ , o = 0 , s = n , 0 === r ? ( l = 138 , h = 3 ) : n === r ? ( l = 6 , h = 3 ) : ( l = 7 , h = 4 ))}, I = ( t , e , a )=>{ let i , n , s =- 1 , r = e [ 1 ], o = 0 , l = 7 , h = 4 ;
return module . exports ;
})();
2026-01-05 13:03:55 +08:00
let REACT_PACKAGES = `!function(){var e,t;e=this,t=function(e){function M(e){return null!==e&&"object"==typeof e&&"function"==typeof(e=te&&e[te]||e["@@iterator"])?e:null}function t(e,t,n){this.props=e,this.context=t,this.refs=oe,this.updater=n||ne}function n(){}function r(e,t,n){this.props=e,this.context=t,this.refs=oe,this.updater=n||ne}function o(e,t,n){var r,o={},u=null,a=null;if(null!=t)for(r in void 0!==t.ref&&(a=t.ref),void 0!==t.key&&(u=""+t.key),t)ae.call(t,r)&&!ie.hasOwnProperty(r)&&(o[r]=t[r]);var i=arguments.length-2;if(1===i)o.children=n;else if(1<i){for(var l=Array(i),c=0;c<i;c++)l[c]=arguments[c+2];o.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===o[r]&&(o[r]=i[r]);return{$$typeof:g,type:e,key:u,ref:a,props:o,_owner:w.current}}function D(e,t){return{$$typeof:g,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function c(e){return"object"==typeof e&&null!==e&&e.$$typeof===g}function U(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(e){return t[e]})}function f(e,t){return"object"==typeof e&&null!==e&&null!=e.key?U(""+e.key):t.toString(36)}function s(e,t,n,r,o){var u=!1;if(null===(e="undefined"!==(i=typeof e)&&"boolean"!==i?e:null))u=!0;else switch(i){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case g:case H:u=!0}}if(u)return o=o(u=e),e=""===r?"."+f(u,0):r,ue(o)?(n="",s(o,t,n=null!=e?e.replace(le,"$&/")+"/":n,"",function(e){return e})):null!=o&&(c(o)&&(o=D(o,n+(!o.key||u&&u.key===o.key?"":(""+o.key).replace(le,"$&/")+"/")+e)),t.push(o)),1;if(u=0,r=""===r?".":r+":",ue(e))for(var a=0;a<e.length;a++){var i,l=r+f(i=e[a],a);u+=s(i,t,n,l,o)}else if("function"==typeof(l=M(e)))for(e=l.call(e),a=0;!(i=e.next()).done;)u+=s(i=i.value,t,n,l=r+f(i,a++),o);else if("object"===i)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return u}function u(e,t,n){var r;return null==e||(r=0,s(e,e=[],"","",function(e){return t.call(n,e,r++)})),e}function V(t){var e;if(-1===t._status&&((e=(e=t._result)()).then(function(e){0!==t._status&&-1!==t._status||(t._status=1,t._result=e)},function(e){0!==t._status&&-1!==t._status||(t._status=2,t._result=e)}),-1===t._status)&&(t._status=0,t._result=e),1===t._status)return t._result.default;throw t._result}function a(e,t){var n=e.length;for(e.push(t);0<n;){var r=n-1>>>1,o=e[r];if(!(0<p(o,t)))break;e[r]=t,e[n]=o,n=r}}function i(e){return 0===e.length?null:e[0]}function l(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;for(var r=0,o=e.length,u=o>>>1;r<u;){var a=2*(r+1)-1,i=e[a],l=a+1,c=e[l];if(p(i,n)<0)r=l<o&&p(c,i)<0?(e[r]=c,e[l]=n,l):(e[r]=i,e[a]=n,a);else{if(!(l<o&&p(c,n)<0))break;e[r]=c,e[l]=n,r=l}}}return t}function p(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}function y(e){for(var t=i(E);null!==t;){if(null===t.callback)l(E);else{if(!(t.startTime<=e))break;l(E),t.sortIndex=t.expirationTime,a(C,t)}t=i(E)}}function d(e){var t;j=!1,y(e),I||(null!==i(C)?(I=!0,m(b)):null!==(t=i(E))&&_(d,t.startTime-e))}function b(e,t){I=!1,j&&(j=!1,se(L),L=-1),$=!0;var n=P;try{for(y(t),R=i(C);null!==R&&(!(R.expirationTime>t)||e&&!q());){var r,o=R.callback;"function"==typeof o?(R.callback=null,P=R.priorityLevel,r=o(R.expirationTime<=t),t=v(),"function"==typeof r?R.callback=r:R===i(C)&&l(C),y(t)):l(C),R=i(C)}var u,a=null!==R||(null!==(u=i(E))&&_(d,u.startTime-t),!1);return a}finally{R=null,P=n,$=!1}}function q(){return!(v()-de<ye)}function m(e){O=e,T||(T=!0,be())}function _(e,t){L=fe(function(){e(v())},t)}function A(e){throw Error("act(...) is not supported in production builds of React.")}var N,h,B,v,z,g=Symbol.for("react.element"),H=Symbol.for("react.portal"),W=Symbol.for("react.fragment"),Y=Symbol.for("react.strict_mode"),G=Symbol.for("react.profiler"),J=Symbol.for("react.provider"),K=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),X=Symbol.for("react.suspense"),Z=Symbol.for("react.memo"),ee=Symbol.for("react.lazy"),te=S
2026-08-21 15:44:03 +08:00
const unpackBase64Deflate = (b64) => {
const binStr = atob(b64);
const len = binStr.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) bytes[i] = binStr.charCodeAt(i);
return new TextDecoder().decode(pako.inflate(bytes));
};
window.unpackBase64Deflate = unpackBase64Deflate;
const unpackExcalidraw = () => unpackBase64Deflate("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
2026-01-05 13:03:55 +08:00
let {react, reactDOM } = new Function( ` $ { REACT_PACKAGES }; return { react : React , reactDOM : ReactDOM }; `)();
let excalidrawLib = {};
2026-08-21 15:44:03 +08:00
const PLUGIN_LANGUAGES = {"ru": "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
const getCaretRangeFromPoint = (doc, x, y) => doc.caretRangeFromPoint?.(x, y);
const mainDocument = document;
const deliberateFetch = async (payload, init) => await fetch(payload, init);
const PLUGIN_VERSION="2.26.4";
const consoleLog = console["log"].bind(console);
const deliberateCreateElement = (doc, tagName) => doc.createElement(tagName);
function _interopNamespaceDefault(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:function(){return e[i]}})}}),t.default=e,Object.freeze(t)}var obsidian_module__namespace=_interopNamespaceDefault(obsidian_module),React__namespace=_interopNamespaceDefault(React);let urlAlphabet="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",random$3=e=>crypto.getRandomValues(new Uint8Array(e)),customRandom=(e,t,i)=>{let n=256-256%e.length;if(256===n){let n=e.length-1;return(a=t)=>{if(!a)return"";let s="";for(;;){let t=i(a),r=a;for(;r--;)if(s+=e[t[r]&n],s.length>=a)return s}}}let a=Math.ceil(409.6*t/n);return(s=t)=>{if(!s)return"";let r="";for(;;){let t=i(a),o=a;for(;o--;)if(t[o]<n&&(r+=e[t[o]%e.length],r.length>=s))return r}}},customAlphabet=(e,t=21)=>customRandom(e,0|t,random$3),nanoid$1=(e=21)=>{let t="",i=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=urlAlphabet[63&i[e]];return t};class ErrorHandler{static instance;errorLog=[];errorNoticeTimeout=1e4;maxLogEntries=100;constructor(){}static getInstance(){return ErrorHandler.instance||(ErrorHandler.instance=new ErrorHandler),ErrorHandler.instance}handleError(e,t,i=!0,n){const a="string"==typeof e?new Error(e):e;if(console.error(` [ Excalidraw Error ] in $ { t } : `,a),this.errorLog.push({error:a,context:t,timestamp:Date.now()}),this.errorLog.length>this.maxLogEntries&&(this.errorLog=this.errorLog.slice(this.errorLog.length-this.maxLogEntries)),i){const e=this.formatErrorForUser(a,t);new obsidian_module.Notice(e,n||this.errorNoticeTimeout)}}safeEval(e,t,i,n){try{return i.eval.call(i,e)}catch(e){if(this.handleError(e,` SafeEval in $ { t } `),void 0!==n)return n;throw e}}wrapWithTryCatch(e,t,i){try{return e()}catch(e){if(this.handleError(e,t),void 0!==i)return i;throw e}}formatErrorForUser(e,t){let i=e.message;return i.includes("Cannot read properties of undefined")?i="A required object was not available. This might be due to a plugin loading issue.":i.includes("is not a function")?i="A required function was not available. This might be due to a plugin version mismatch.":i.length>100&&(i=` $ { i . substring ( 0 , 100 )}... `),` Excalidraw Error : $ { i } ( in $ { t }) `}getErrorLog(){return[...this.errorLog]}clearErrorLog(){this.errorLog=[]}}const errorHandler=ErrorHandler.getInstance(),UrlPurpose={AI_API:"AI API Endpoint (User Opt-in)",TASKBONE:"Taskbone OCR Endpoint",SUPPORT:"Support link, contact, or Ko-Fi button",DOCS:"Background information in Settings or Code Suggester",RELEASE_LOG:"Referencing issues, changes, or contributors in release log",VIDEO:"Supporting video tutorial or thumbnail",APP_LOGIC:"Internal application logic (embeddables, UI renders, asset fetching)",TRANSLATION:"One-time support message translation"},defineUrl=(e,t)=>({url:e,purpose:t}),URL_REGISTRY={RAW_GITHUBUSERCONTENT_COM_ZSVICZIAN_OBSIDIAN_EXCALIDRAW_PLUGIN_MASTER_EA_SCRIPTS_DIRECTORY_INFO_JSON:defineUrl("https://raw.githubusercontent.com/zsviczian/obsidian-excalidraw-plugin/master/ea-scripts/directory-info.json",UrlPurpose.APP_LOGIC),API_GITHUB_COM_REPOS_ZSVICZIAN_OBSIDIAN_EXCALIDRAW_PLUGIN_RELEASES:defineUrl("https://api.github.com/repos/zsviczian/obsidian-excalidraw-plugin/releases?per_page=15&page=1",UrlPurpose.APP_LOGIC),GITHUB_COM_ZSVICZIAN_OBSIDIAN_EXCALIDRAW_PLUGIN_ISSUES:defineUrl("https://github.com/zsviczian/obsidian-excalidraw-plugin/issues",UrlPurpose.DOCS),API_OPENAI_COM_V1:defineUrl("https://api.openai.com/v1",UrlPurpose.AI_API),API_ANTHROPIC_COM_V1:defineUrl("https://api.anthropic.com/v1",UrlPurpose.AI_API),GENERATIVELANGUAGE_GOOGLEAPIS_COM_V1BETA:defineUrl("https://generativelanguage.googleapis.com/v1beta",UrlPurpose.AI_API),API_X_AI_V1:defineUrl("https://api.x.ai/v1",UrlPurpose.AI_API),API_OPENAI_COM_V1_CHAT_COMPLETIONS:defineUrl("https://api.openai.com/v1/chat/completions",UrlPurpose.AI_API),API_OPENAI_COM_V1_IMAGES_GENERATIONS:defineUrl("https://api.openai.com/v1/images/generations",UrlPurpose.AI_API),API_OPENAI_COM_V1_IMAGES_EDITS:defineUrl("https://api.o
2026-01-05 13:03:55 +08:00
/* nosourcemap */