@tensorix/metahub 0.2.2 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/cli.js +1309 -275
- package/dist/cli.js.map +21 -17
- package/dist/core/databases.d.ts +5 -1
- package/dist/core/databases.d.ts.map +1 -1
- package/dist/core/documents.d.ts +22 -0
- package/dist/core/documents.d.ts.map +1 -1
- package/dist/core/md/grammar.d.ts +77 -0
- package/dist/core/md/grammar.d.ts.map +1 -0
- package/dist/core/md/heal.d.ts +2 -0
- package/dist/core/md/heal.d.ts.map +1 -0
- package/dist/core/md/inline.d.ts +20 -0
- package/dist/core/md/inline.d.ts.map +1 -0
- package/dist/core/schema-init.d.ts +13 -0
- package/dist/core/schema-init.d.ts.map +1 -1
- package/dist/core/schema.d.ts +1 -1
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/sync/auth.d.ts +3 -1
- package/dist/core/sync/auth.d.ts.map +1 -1
- package/dist/core/sync/share-render.d.ts +3 -1
- package/dist/core/sync/share-render.d.ts.map +1 -1
- package/dist/db-worker.js +51 -41
- package/dist/index.js +1201 -260
- package/dist/index.js.map +16 -12
- package/dist/mh-runtime.js +1 -1
- package/dist/sw.js +1 -1
- package/dist/webui/fmt/manifest.d.ts +17 -0
- package/dist/webui/fmt/manifest.d.ts.map +1 -0
- package/dist/webui/server/assets.d.ts +5 -0
- package/dist/webui/server/assets.d.ts.map +1 -1
- package/dist/webui-fmt-clang.js +1 -0
- package/dist/webui-fmt-clang.wasm +0 -0
- package/dist/webui-fmt-gofmt.js +1 -0
- package/dist/webui-fmt-gofmt.wasm +0 -0
- package/dist/webui-fmt-lua.js +2 -0
- package/dist/webui-fmt-lua.wasm +0 -0
- package/dist/webui-fmt-ruff.js +2 -0
- package/dist/webui-fmt-ruff.wasm +0 -0
- package/dist/webui-fmt-sh.js +8 -0
- package/dist/webui-fmt-taplo.js +2 -0
- package/dist/webui-fmt-taplo.wasm +0 -0
- package/dist/webui-fmt.js +425 -0
- package/dist/webui.js +148 -75
- package/package.json +15 -1
package/dist/webui.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var L2=Object.create;var{getPrototypeOf:P2,defineProperty:PJ,getOwnPropertyNames:B2}=Object;var O2=Object.prototype.hasOwnProperty;function A2(Z){return this[Z]}var N2,w2,M2=(Z,J,Q)=>{var X=Z!=null&&typeof Z==="object";if(X){var z=J?N2??=new WeakMap:w2??=new WeakMap,W=z.get(Z);if(W)return W}Q=Z!=null?L2(P2(Z)):{};let G=J||!Z||!Z.__esModule?PJ(Q,"default",{value:Z,enumerable:!0}):Q;for(let q of B2(Z))if(!O2.call(G,q))PJ(G,q,{get:A2.bind(Z,q),enumerable:!0});if(X)z.set(Z,G);return G};var C0=(Z,J)=>()=>(J||Z((J={exports:{}}).exports,J),J.exports);var B7=C0((wY,P7)=>{function Z7(Z){if(Z instanceof Map)Z.clear=Z.delete=Z.set=function(){throw Error("map is read-only")};else if(Z instanceof Set)Z.add=Z.clear=Z.delete=function(){throw Error("set is read-only")};return Object.freeze(Z),Object.getOwnPropertyNames(Z).forEach((J)=>{let Q=Z[J],X=typeof Q;if((X==="object"||X==="function")&&!Object.isFrozen(Q))Z7(Q)}),Z}class z1{constructor(Z){if(Z.data===void 0)Z.data={};this.data=Z.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function J7(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function b9(Z,...J){let Q=Object.create(null);for(let X in Z)Q[X]=Z[X];return J.forEach(function(X){for(let z in X)Q[z]=X[z]}),Q}var pQ="</span>",l5=(Z)=>{return!!Z.scope},dQ=(Z,{prefix:J})=>{if(Z.startsWith("language:"))return Z.replace("language:","language-");if(Z.includes(".")){let Q=Z.split(".");return[`${J}${Q.shift()}`,...Q.map((X,z)=>`${X}${"_".repeat(z+1)}`)].join(" ")}return`${J}${Z}`};class $7{constructor(Z,J){this.buffer="",this.classPrefix=J.classPrefix,Z.walk(this)}addText(Z){this.buffer+=J7(Z)}openNode(Z){if(!l5(Z))return;let J=dQ(Z.scope,{prefix:this.classPrefix});this.span(J)}closeNode(Z){if(!l5(Z))return;this.buffer+=pQ}value(){return this.buffer}span(Z){this.buffer+=`<span class="${Z}">`}}var r5=(Z={})=>{let J={children:[]};return Object.assign(J,Z),J};class W1{constructor(){this.rootNode=r5(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Z){this.top.children.push(Z)}openNode(Z){let J=r5({scope:Z});this.add(J),this.stack.push(J)}closeNode(){if(this.stack.length>1)return this.stack.pop();return}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Z){return this.constructor._walk(Z,this.rootNode)}static _walk(Z,J){if(typeof J==="string")Z.addText(J);else if(J.children)Z.openNode(J),J.children.forEach((Q)=>this._walk(Z,Q)),Z.closeNode(J);return Z}static _collapse(Z){if(typeof Z==="string")return;if(!Z.children)return;if(Z.children.every((J)=>typeof J==="string"))Z.children=[Z.children.join("")];else Z.children.forEach((J)=>{W1._collapse(J)})}}class Q7 extends W1{constructor(Z){super();this.options=Z}addText(Z){if(Z==="")return;this.add(Z)}startScope(Z){this.openNode(Z)}endScope(){this.closeNode()}__addSublanguage(Z,J){let Q=Z.root;if(J)Q.scope=`language:${J}`;this.add(Q)}toHTML(){return new $7(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function iZ(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function X7(Z){return XZ("(?=",Z,")")}function cQ(Z){return XZ("(?:",Z,")*")}function iQ(Z){return XZ("(?:",Z,")?")}function XZ(...Z){return Z.map((Q)=>iZ(Q)).join("")}function aQ(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function G1(...Z){return"("+(aQ(Z).capture?"":"?:")+Z.map((X)=>iZ(X)).join("|")+")"}function z7(Z){return new RegExp(Z.toString()+"|").exec("").length-1}function nQ(Z,J){let Q=Z&&Z.exec(J);return Q&&Q.index===0}var lQ=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function q1(Z,{joinWith:J}){let Q=0;return Z.map((X)=>{Q+=1;let z=Q,W=iZ(X),G="";while(W.length>0){let q=lQ.exec(W);if(!q){G+=W;break}if(G+=W.substring(0,q.index),W=W.substring(q.index+q[0].length),q[0][0]==="\\"&&q[1])G+="\\"+String(Number(q[1])+z);else if(G+=q[0],q[0]==="(")Q++}return G}).map((X)=>`(${X})`).join(J)}var rQ=/\b\B/,W7="[a-zA-Z]\\w*",H1="[a-zA-Z_]\\w*",G7="\\b\\d+(\\.\\d+)?",q7="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",H7="\\b(0b[01]+)",oQ="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",tQ=(Z={})=>{let J=/^#![ ]*\//;if(Z.binary)Z.begin=XZ(J,/.*\b/,Z.binary,/\b.*/);return b9({scope:"meta",begin:J,end:/$/,relevance:0,"on:begin":(Q,X)=>{if(Q.index!==0)X.ignoreMatch()}},Z)},aZ={begin:"\\\\[\\s\\S]",relevance:0},sQ={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[aZ]},eQ={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[aZ]},ZX={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},p8=function(Z,J,Q={}){let X=b9({scope:"comment",begin:Z,end:J,contains:[]},Q);X.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let z=G1("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return X.contains.push({begin:XZ(/[ ]+/,"(",z,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),X},JX=p8("//","$"),$X=p8("/\\*","\\*/"),QX=p8("#","$"),XX={scope:"number",begin:G7,relevance:0},zX={scope:"number",begin:q7,relevance:0},WX={scope:"number",begin:H7,relevance:0},GX={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[aZ,{begin:/\[/,end:/\]/,relevance:0,contains:[aZ]}]},qX={scope:"title",begin:W7,relevance:0},HX={scope:"title",begin:H1,relevance:0},YX={begin:"\\.\\s*"+H1,relevance:0},KX=function(Z){return Object.assign(Z,{"on:begin":(J,Q)=>{Q.data._beginMatch=J[1]},"on:end":(J,Q)=>{if(Q.data._beginMatch!==J[1])Q.ignoreMatch()}})},u8=Object.freeze({__proto__:null,APOS_STRING_MODE:sQ,BACKSLASH_ESCAPE:aZ,BINARY_NUMBER_MODE:WX,BINARY_NUMBER_RE:H7,COMMENT:p8,C_BLOCK_COMMENT_MODE:$X,C_LINE_COMMENT_MODE:JX,C_NUMBER_MODE:zX,C_NUMBER_RE:q7,END_SAME_AS_BEGIN:KX,HASH_COMMENT_MODE:QX,IDENT_RE:W7,MATCH_NOTHING_RE:rQ,METHOD_GUARD:YX,NUMBER_MODE:XX,NUMBER_RE:G7,PHRASAL_WORDS_MODE:ZX,QUOTE_STRING_MODE:eQ,REGEXP_MODE:GX,RE_STARTERS_RE:oQ,SHEBANG:tQ,TITLE_MODE:qX,UNDERSCORE_IDENT_RE:H1,UNDERSCORE_TITLE_MODE:HX});function FX(Z,J){if(Z.input[Z.index-1]===".")J.ignoreMatch()}function UX(Z,J){if(Z.className!==void 0)Z.scope=Z.className,delete Z.className}function LX(Z,J){if(!J)return;if(!Z.beginKeywords)return;if(Z.begin="\\b("+Z.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",Z.__beforeBegin=FX,Z.keywords=Z.keywords||Z.beginKeywords,delete Z.beginKeywords,Z.relevance===void 0)Z.relevance=0}function PX(Z,J){if(!Array.isArray(Z.illegal))return;Z.illegal=G1(...Z.illegal)}function BX(Z,J){if(!Z.match)return;if(Z.begin||Z.end)throw Error("begin & end are not supported with match");Z.begin=Z.match,delete Z.match}function OX(Z,J){if(Z.relevance===void 0)Z.relevance=1}var AX=(Z,J)=>{if(!Z.beforeMatch)return;if(Z.starts)throw Error("beforeMatch cannot be used with starts");let Q=Object.assign({},Z);Object.keys(Z).forEach((X)=>{delete Z[X]}),Z.keywords=Q.keywords,Z.begin=XZ(Q.beforeMatch,X7(Q.begin)),Z.starts={relevance:0,contains:[Object.assign(Q,{endsParent:!0})]},Z.relevance=0,delete Q.beforeMatch},NX=["of","and","for","in","not","or","if","then","parent","list","value"],wX="keyword";function Y7(Z,J,Q=wX){let X=Object.create(null);if(typeof Z==="string")z(Q,Z.split(" "));else if(Array.isArray(Z))z(Q,Z);else Object.keys(Z).forEach(function(W){Object.assign(X,Y7(Z[W],J,W))});return X;function z(W,G){if(J)G=G.map((q)=>q.toLowerCase());G.forEach(function(q){let H=q.split("|");X[H[0]]=[W,MX(H[0],H[1])]})}}function MX(Z,J){if(J)return Number(J);return CX(Z)?0:1}function CX(Z){return NX.includes(Z.toLowerCase())}var o5={},QZ=(Z)=>{console.error(Z)},t5=(Z,...J)=>{console.log(`WARN: ${Z}`,...J)},wZ=(Z,J)=>{if(o5[`${Z}/${J}`])return;console.log(`Deprecated as of ${Z}. ${J}`),o5[`${Z}/${J}`]=!0},E8=Error();function K7(Z,J,{key:Q}){let X=0,z=Z[Q],W={},G={};for(let q=1;q<=J.length;q++)G[q+X]=z[q],W[q+X]=!0,X+=z7(J[q-1]);Z[Q]=G,Z[Q]._emit=W,Z[Q]._multi=!0}function yX(Z){if(!Array.isArray(Z.begin))return;if(Z.skip||Z.excludeBegin||Z.returnBegin)throw QZ("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),E8;if(typeof Z.beginScope!=="object"||Z.beginScope===null)throw QZ("beginScope must be object"),E8;K7(Z,Z.begin,{key:"beginScope"}),Z.begin=q1(Z.begin,{joinWith:""})}function _X(Z){if(!Array.isArray(Z.end))return;if(Z.skip||Z.excludeEnd||Z.returnEnd)throw QZ("skip, excludeEnd, returnEnd not compatible with endScope: {}"),E8;if(typeof Z.endScope!=="object"||Z.endScope===null)throw QZ("endScope must be object"),E8;K7(Z,Z.end,{key:"endScope"}),Z.end=q1(Z.end,{joinWith:""})}function vX(Z){if(Z.scope&&typeof Z.scope==="object"&&Z.scope!==null)Z.beginScope=Z.scope,delete Z.scope}function TX(Z){if(vX(Z),typeof Z.beginScope==="string")Z.beginScope={_wrap:Z.beginScope};if(typeof Z.endScope==="string")Z.endScope={_wrap:Z.endScope};yX(Z),_X(Z)}function RX(Z){function J(G,q){return new RegExp(iZ(G),"m"+(Z.case_insensitive?"i":"")+(Z.unicodeRegex?"u":"")+(q?"g":""))}class Q{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(G,q){q.position=this.position++,this.matchIndexes[this.matchAt]=q,this.regexes.push([q,G]),this.matchAt+=z7(G)+1}compile(){if(this.regexes.length===0)this.exec=()=>null;let G=this.regexes.map((q)=>q[1]);this.matcherRe=J(q1(G,{joinWith:"|"}),!0),this.lastIndex=0}exec(G){this.matcherRe.lastIndex=this.lastIndex;let q=this.matcherRe.exec(G);if(!q)return null;let H=q.findIndex((F,K)=>K>0&&F!==void 0),Y=this.matchIndexes[H];return q.splice(0,H),Object.assign(q,Y)}}class X{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(G){if(this.multiRegexes[G])return this.multiRegexes[G];let q=new Q;return this.rules.slice(G).forEach(([H,Y])=>q.addRule(H,Y)),q.compile(),this.multiRegexes[G]=q,q}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(G,q){if(this.rules.push([G,q]),q.type==="begin")this.count++}exec(G){let q=this.getMatcher(this.regexIndex);q.lastIndex=this.lastIndex;let H=q.exec(G);if(this.resumingScanAtSamePosition())if(H&&H.index===this.lastIndex);else{let Y=this.getMatcher(0);Y.lastIndex=this.lastIndex+1,H=Y.exec(G)}if(H){if(this.regexIndex+=H.position+1,this.regexIndex===this.count)this.considerAll()}return H}}function z(G){let q=new X;if(G.contains.forEach((H)=>q.addRule(H.begin,{rule:H,type:"begin"})),G.terminatorEnd)q.addRule(G.terminatorEnd,{type:"end"});if(G.illegal)q.addRule(G.illegal,{type:"illegal"});return q}function W(G,q){let H=G;if(G.isCompiled)return H;[UX,BX,TX,AX].forEach((F)=>F(G,q)),Z.compilerExtensions.forEach((F)=>F(G,q)),G.__beforeBegin=null,[LX,PX,OX].forEach((F)=>F(G,q)),G.isCompiled=!0;let Y=null;if(typeof G.keywords==="object"&&G.keywords.$pattern)G.keywords=Object.assign({},G.keywords),Y=G.keywords.$pattern,delete G.keywords.$pattern;if(Y=Y||/\w+/,G.keywords)G.keywords=Y7(G.keywords,Z.case_insensitive);if(H.keywordPatternRe=J(Y,!0),q){if(!G.begin)G.begin=/\B|\b/;if(H.beginRe=J(H.begin),!G.end&&!G.endsWithParent)G.end=/\B|\b/;if(G.end)H.endRe=J(H.end);if(H.terminatorEnd=iZ(H.end)||"",G.endsWithParent&&q.terminatorEnd)H.terminatorEnd+=(G.end?"|":"")+q.terminatorEnd}if(G.illegal)H.illegalRe=J(G.illegal);if(!G.contains)G.contains=[];if(G.contains=[].concat(...G.contains.map(function(F){return kX(F==="self"?G:F)})),G.contains.forEach(function(F){W(F,H)}),G.starts)W(G.starts,q);return H.matcher=z(H),H}if(!Z.compilerExtensions)Z.compilerExtensions=[];if(Z.contains&&Z.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return Z.classNameAliases=b9(Z.classNameAliases||{}),W(Z)}function F7(Z){if(!Z)return!1;return Z.endsWithParent||F7(Z.starts)}function kX(Z){if(Z.variants&&!Z.cachedVariants)Z.cachedVariants=Z.variants.map(function(J){return b9(Z,{variants:null},J)});if(Z.cachedVariants)return Z.cachedVariants;if(F7(Z))return b9(Z,{starts:Z.starts?b9(Z.starts):null});if(Object.isFrozen(Z))return b9(Z);return Z}var IX="11.11.1";class U7 extends Error{constructor(Z,J){super(Z);this.name="HTMLInjectionError",this.html=J}}var X1=J7,s5=b9,e5=Symbol("nomatch"),SX=7,L7=function(Z){let J=Object.create(null),Q=Object.create(null),X=[],z=!0,W="Could not find the language '{}', did you forget to load/include a language module?",G={disableAutodetect:!0,name:"Plain text",contains:[]},q={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Q7};function H(m){return q.noHighlightRe.test(m)}function Y(m){let g=m.className+" ";g+=m.parentNode?m.parentNode.className:"";let u=q.languageDetectRe.exec(g);if(u){let I=L(u[1]);if(!I)t5(W.replace("{}",u[1])),t5("Falling back to no-highlight mode for this block.",m);return I?u[1]:"no-highlight"}return g.split(/\s+/).find((I)=>H(I)||L(I))}function F(m,g,u){let I="",n="";if(typeof g==="object")I=m,u=g.ignoreIllegals,n=g.language;else wZ("10.7.0","highlight(lang, code, ...args) has been deprecated."),wZ("10.7.0",`Please use highlight(code, options) instead.
|
|
2
|
-
https://github.com/highlightjs/highlight.js/issues/2277`),
|
|
3
|
-
`,1;if(i>1e5&&i>e.index*3)throw Error("potential infinite loop, way more iterations than matches");return h+=X0,X0.length}let u0=L(m);if(!u0)throw QZ(W.replace("{}",m)),Error('Unknown language: "'+m+'"');let Y0=RX(u0),r0="",K0=I||Y0,l0={},w0=new q.__emitter(q);_0();let h="",T=0,p=0,i=0,F0=!1;try{if(!u0.__emitTokens){K0.matcher.considerAll();for(;;){if(i++,F0)F0=!1;else K0.matcher.considerAll();K0.matcher.lastIndex=p;let t=K0.matcher.exec(g);if(!t)break;let e=g.substring(p,t.index),X0=O0(e,t);p=t.index+X0}O0(g.substring(p))}else u0.__emitTokens(g,w0);return w0.finalize(),r0=w0.toHTML(),{language:m,value:r0,relevance:T,illegal:!1,_emitter:w0,_top:K0}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:m,value:X1(g),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:p,context:g.slice(p-100,p+100),mode:t.mode,resultSoFar:r0},_emitter:w0};else if(z)return{language:m,value:X1(g),illegal:!1,relevance:0,errorRaised:t,_emitter:w0,_top:K0};else throw t}}function w(m){let g={value:X1(m),illegal:!1,relevance:0,_top:G,_emitter:new q.__emitter(q)};return g._emitter.addText(m),g}function P(m,g){g=g||q.languages||Object.keys(J);let u=w(m),I=g.filter(L).filter(M).map((J0)=>K(J0,m,!1));I.unshift(u);let n=I.sort((J0,B0)=>{if(J0.relevance!==B0.relevance)return B0.relevance-J0.relevance;if(J0.language&&B0.language){if(L(J0.language).supersetOf===B0.language)return 1;else if(L(B0.language).supersetOf===J0.language)return-1}return 0}),[Z0,q0]=n,Q0=Z0;return Q0.secondBest=q0,Q0}function A(m,g,u){let I=g&&Q[g]||u;m.classList.add("hljs"),m.classList.add(`language-${I}`)}function _(m){let g=null,u=Y(m);if(H(u))return;if(r("before:highlightElement",{el:m,language:u}),m.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",m);return}if(m.children.length>0){if(!q.ignoreUnescapedHTML)console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(m);if(q.throwUnescapedHTML)throw new U7("One of your code blocks includes unescaped HTML.",m.innerHTML)}g=m;let I=g.textContent,n=u?F(I,{language:u,ignoreIllegals:!0}):P(I);if(m.innerHTML=n.value,m.dataset.highlighted="yes",A(m,u,n.language),m.result={language:n.language,re:n.relevance,relevance:n.relevance},n.secondBest)m.secondBest={language:n.secondBest.language,relevance:n.secondBest.relevance};r("after:highlightElement",{el:m,result:n,text:I})}function V(m){q=s5(q,m)}let D=()=>{x(),wZ("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function v(){x(),wZ("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let R=!1;function x(){function m(){x()}if(document.readyState==="loading"){if(!R)window.addEventListener("DOMContentLoaded",m,!1);R=!0;return}document.querySelectorAll(q.cssSelector).forEach(_)}function S(m,g){let u=null;try{u=g(Z)}catch(I){if(QZ("Language definition for '{}' could not be registered.".replace("{}",m)),!z)throw I;else QZ(I);u=G}if(!u.name)u.name=m;if(J[m]=u,u.rawDefinition=g.bind(null,Z),u.aliases)B(u.aliases,{languageName:m})}function O(m){delete J[m];for(let g of Object.keys(Q))if(Q[g]===m)delete Q[g]}function N(){return Object.keys(J)}function L(m){return m=(m||"").toLowerCase(),J[m]||J[Q[m]]}function B(m,{languageName:g}){if(typeof m==="string")m=[m];m.forEach((u)=>{Q[u.toLowerCase()]=g})}function M(m){let g=L(m);return g&&!g.disableAutodetect}function y(m){if(m["before:highlightBlock"]&&!m["before:highlightElement"])m["before:highlightElement"]=(g)=>{m["before:highlightBlock"](Object.assign({block:g.el},g))};if(m["after:highlightBlock"]&&!m["after:highlightElement"])m["after:highlightElement"]=(g)=>{m["after:highlightBlock"](Object.assign({block:g.el},g))}}function E(m){y(m),X.push(m)}function c(m){let g=X.indexOf(m);if(g!==-1)X.splice(g,1)}function r(m,g){let u=m;X.forEach(function(I){if(I[u])I[u](g)})}function $0(m){return wZ("10.7.0","highlightBlock will be removed entirely in v12.0"),wZ("10.7.0","Please use highlightElement now."),_(m)}Object.assign(Z,{highlight:F,highlightAuto:P,highlightAll:x,highlightElement:_,highlightBlock:$0,configure:V,initHighlighting:D,initHighlightingOnLoad:v,registerLanguage:S,unregisterLanguage:O,listLanguages:N,getLanguage:L,registerAliases:B,autoDetection:M,inherit:s5,addPlugin:E,removePlugin:c}),Z.debugMode=function(){z=!1},Z.safeMode=function(){z=!0},Z.versionString=IX,Z.regex={concat:XZ,lookahead:X7,either:G1,optional:iQ,anyNumberOfTimes:cQ};for(let m in u8)if(typeof u8[m]==="object")Z7(u8[m]);return Object.assign(Z,u8),Z},MZ=L7({});MZ.newInstance=()=>L7({});P7.exports=MZ;MZ.HighlightJS=MZ;MZ.default=MZ});var A7=C0((MY,O7)=>{function VX(Z){let J=Z.regex,Q=J.concat(/[\p{L}_]/u,J.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),X=/[\p{L}0-9._:-]+/u,z={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},W={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},G=Z.inherit(W,{begin:/\(/,end:/\)/}),q=Z.inherit(Z.APOS_STRING_MODE,{className:"string"}),H=Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),Y={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:X,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[z]},{begin:/'/,end:/'/,contains:[z]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[W,H,q,G,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[W,G,H,q]}]}]},Z.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},z,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[H]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[Y],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[Y],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:J.concat(/</,J.lookahead(J.concat(Q,J.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:Q,relevance:0,starts:Y}]},{className:"tag",begin:J.concat(/<\//,J.lookahead(J.concat(Q,/>/))),contains:[{className:"name",begin:Q,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}O7.exports=VX});var w7=C0((CY,N7)=>{function fX(Z){let J=Z.regex,Q={},X={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[Q]}]};Object.assign(Q,{className:"variable",variants:[{begin:J.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},X]});let z={className:"subst",begin:/\$\(/,end:/\)/,contains:[Z.BACKSLASH_ESCAPE]},W=Z.inherit(Z.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),G={begin:/<<-?\s*(?=\w+)/,starts:{contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},q={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,Q,z]};z.contains.push(q);let H={match:/\\"/},Y={className:"string",begin:/'/,end:/'/},F={match:/\\'/},K={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},Z.NUMBER_MODE,Q]},w=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],P=Z.SHEBANG({binary:`(${w.join("|")})`,relevance:10}),A={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[Z.inherit(Z.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},_=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],V=["true","false"],D={match:/(\/[a-z._-]+)+/},v=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],R=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],x=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],S=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:_,literal:V,built_in:[...v,...R,"set","shopt",...x,...S]},contains:[P,Z.SHEBANG(),A,K,W,G,D,q,H,Y,F,Q]}}N7.exports=fX});var C7=C0((yY,M7)=>{function gX(Z){let J=Z.regex,Q=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),X="decltype\\(auto\\)",z="[a-zA-Z_]\\w*::",W="<[^<>]+>",G="(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",q={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},H="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",Y={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},F={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},K={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(Y,{className:"string"}),{className:"string",begin:/<.*?>/},Q,Z.C_BLOCK_COMMENT_MODE]},w={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},P=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",V={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},D=[K,q,Q,Z.C_BLOCK_COMMENT_MODE,F,Y],v={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:V,contains:D.concat([{begin:/\(/,end:/\)/,keywords:V,contains:D.concat(["self"]),relevance:0}]),relevance:0},R={begin:"("+G+"[\\*&\\s]+)+"+P,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:V,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:V,relevance:0},{begin:P,returnBegin:!0,contains:[Z.inherit(w,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:V,relevance:0,contains:[Q,Z.C_BLOCK_COMMENT_MODE,Y,F,q,{begin:/\(/,end:/\)/,keywords:V,relevance:0,contains:["self",Q,Z.C_BLOCK_COMMENT_MODE,Y,F,q]}]},q,Q,Z.C_BLOCK_COMMENT_MODE,K]};return{name:"C",aliases:["h"],keywords:V,disableAutodetect:!0,illegal:"</",contains:[].concat(v,R,D,[K,{begin:Z.IDENT_RE+"::",keywords:V},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},Z.TITLE_MODE]}]),exports:{preprocessor:K,strings:Y,keywords:V}}}M7.exports=gX});var _7=C0((_Y,y7)=>{function bX(Z){let J=Z.regex,Q=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),X="decltype\\(auto\\)",z="[a-zA-Z_]\\w*::",W="<[^<>]+>",G="(?!struct)(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",q={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},H="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",Y={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},F={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},K={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(Y,{className:"string"}),{className:"string",begin:/<.*?>/},Q,Z.C_BLOCK_COMMENT_MODE]},w={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},P=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",A=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],_=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],V=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],D=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],x={type:_,keyword:A,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:V},S={className:"function.dispatch",relevance:0,keywords:{_hint:D},begin:J.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,Z.IDENT_RE,J.lookahead(/(<[^<>]+>|)\s*\(/))},O=[S,K,q,Q,Z.C_BLOCK_COMMENT_MODE,F,Y],N={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:x,contains:O.concat([{begin:/\(/,end:/\)/,keywords:x,contains:O.concat(["self"]),relevance:0}]),relevance:0},L={className:"function",begin:"("+G+"[\\*&\\s]+)+"+P,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:x,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:x,relevance:0},{begin:P,returnBegin:!0,contains:[w],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[Y,F]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:[Q,Z.C_BLOCK_COMMENT_MODE,Y,F,q,{begin:/\(/,end:/\)/,keywords:x,relevance:0,contains:["self",Q,Z.C_BLOCK_COMMENT_MODE,Y,F,q]}]},q,Q,Z.C_BLOCK_COMMENT_MODE,K]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:x,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(N,L,S,O,[K,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:x,contains:["self",q]},{begin:Z.IDENT_RE+"::",keywords:x},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}y7.exports=bX});var T7=C0((vY,v7)=>{function jX(Z){let J=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],Q=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],X=["default","false","null","true"],z=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],W=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],G={keyword:z.concat(W),built_in:J,literal:X},q=Z.inherit(Z.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),H={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},Y={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},F={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},K=Z.inherit(F,{illegal:/\n/}),w={className:"subst",begin:/\{/,end:/\}/,keywords:G},P=Z.inherit(w,{illegal:/\n/}),A={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},Z.BACKSLASH_ESCAPE,P]},_={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},w]},V=Z.inherit(_,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},P]});w.contains=[_,A,F,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,H,Z.C_BLOCK_COMMENT_MODE],P.contains=[V,A,K,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,H,Z.inherit(Z.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let D={variants:[Y,_,A,F,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},v={begin:"<",end:">",contains:[{beginKeywords:"in out"},q]},R=Z.IDENT_RE+"(<"+Z.IDENT_RE+"(\\s*,\\s*"+Z.IDENT_RE+")*>)?(\\[\\])?",x={begin:"@"+Z.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:G,illegal:/::/,contains:[Z.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},D,H,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},q,v,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[q,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[q,v,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+R+"\\s+)+"+Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:G,contains:[{beginKeywords:Q.join(" "),relevance:0},{begin:Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[Z.TITLE_MODE,v],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:G,relevance:0,contains:[D,H,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},x]}}v7.exports=jX});var k7=C0((TY,R7)=>{var hX=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}},DX=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],xX=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],mX=[...DX,...xX],uX=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),EX=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),pX=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),dX=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function cX(Z){let J=Z.regex,Q=hX(Z),X={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},z="and or not only",W=/@-?\w[\w]*(-\w+)*/,G="[a-zA-Z-][a-zA-Z0-9_-]*",q=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[Q.BLOCK_COMMENT,X,Q.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},Q.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+EX.join("|")+")"},{begin:":(:)?("+pX.join("|")+")"}]},Q.CSS_VARIABLE,{className:"attribute",begin:"\\b("+dX.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[Q.BLOCK_COMMENT,Q.HEXCOLOR,Q.IMPORTANT,Q.CSS_NUMBER_MODE,...q,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...q,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},Q.FUNCTION_DISPATCH]},{begin:J.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:W},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:uX.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...q,Q.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+mX.join("|")+")\\b"}]}}R7.exports=cX});var S7=C0((RY,I7)=>{function iX(Z){let J=Z.regex,Q={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},X={begin:"^[-\\*]{3,}",end:"$"},z={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},W={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},G={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},q=/[A-Za-z][A-Za-z0-9+.-]*/,H={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:J.concat(/\[.+?\]\(/,q,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},Y={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},F={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},K=Z.inherit(Y,{contains:[]}),w=Z.inherit(F,{contains:[]});Y.contains.push(w),F.contains.push(K);let P=[Q,H];return[Y,F,K,w].forEach((D)=>{D.contains=D.contains.concat(P)}),P=P.concat(Y,F),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:P},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:P}]}]},Q,W,Y,F,{className:"quote",begin:"^>\\s+",contains:P,end:"$"},z,X,H,G,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}I7.exports=iX});var f7=C0((kY,V7)=>{function aX(Z){let J=Z.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:J.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:J.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}V7.exports=aX});var b7=C0((IY,g7)=>{function nX(Z){let J=Z.regex,Q="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",X=J.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),z=J.concat(X,/(::\w+)*/),G={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},q={className:"doctag",begin:"@[A-Za-z]+"},H={begin:"#<",end:">"},Y=[Z.COMMENT("#","$",{contains:[q]}),Z.COMMENT("^=begin","^=end",{contains:[q],relevance:10}),Z.COMMENT("^__END__",Z.MATCH_NOTHING_RE)],F={className:"subst",begin:/#\{/,end:/\}/,keywords:G},K={className:"string",contains:[Z.BACKSLASH_ESCAPE,F],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:J.concat(/<<[-~]?'?/,J.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[Z.BACKSLASH_ESCAPE,F]})]}]},w="[1-9](_?[0-9])*|0",P="[0-9](_?[0-9])*",A={className:"number",relevance:0,variants:[{begin:"\\b([1-9](_?[0-9])*|0)(\\.([0-9](_?[0-9])*))?([eE][+-]?([0-9](_?[0-9])*)|r)?i?\\b"},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},_={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:G}]},O=[K,{variants:[{match:[/class\s+/,z,/\s+<\s+/,z]},{match:[/\b(class|module)\s+/,z]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:G},{match:[/(include|extend)\s+/,z],scope:{2:"title.class"},keywords:G},{relevance:0,match:[z,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:X,scope:"title.class"},{match:[/def/,/\s+/,"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"],scope:{1:"keyword",3:"title.function"},contains:[_]},{begin:Z.IDENT_RE+"::"},{className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[K,{begin:"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"}],relevance:0},A,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:G},{begin:"("+Z.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[Z.BACKSLASH_ESCAPE,F],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(H,Y),relevance:0}].concat(H,Y);F.contains=O,_.contains=O;let N="[>?]>",L="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",B="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",M=[{begin:/^\s*=>/,starts:{end:"$",contains:O}},{className:"meta.prompt",begin:"^("+N+"|"+L+"|"+B+")(?=[ ])",starts:{end:"$",keywords:G,contains:O}}];return Y.unshift(H),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:G,illegal:/\/\*/,contains:[Z.SHEBANG({binary:"ruby"})].concat(M).concat(Y).concat(O)}}g7.exports=nX});var h7=C0((SY,j7)=>{function lX(Z){let W={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:W,illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"string",variants:[Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[Z.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:W,illegal:/["']/}]}]}}j7.exports=lX});var x7=C0((VY,D7)=>{function rX(Z){let J=Z.regex,Q=/[_A-Za-z][_0-9A-Za-z]*/;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[Z.HASH_COMMENT_MODE,Z.QUOTE_STRING_MODE,Z.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:J.concat(Q,J.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}D7.exports=rX});var u7=C0((fY,m7)=>{function oX(Z){let J=Z.regex,Q={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:Z.NUMBER_RE}]},X=Z.COMMENT();X.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let z={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},W={className:"literal",begin:/\bon|off|true|false|yes|no\b/},G={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},q={begin:/\[/,end:/\]/,contains:[X,W,z,G,Q,"self"],relevance:0},H=/[A-Za-z0-9_-]+/,Y=/"(\\"|[^"])*"/,F=/'[^']*'/,K=J.either(H,Y,F),w=J.concat(K,"(\\s*\\.\\s*",K,")*",J.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[X,{className:"section",begin:/\[+/,end:/\]+/},{begin:w,className:"attr",starts:{end:/$/,contains:[X,q,W,z,G,Q]}}]}}m7.exports=oX});var c7=C0((gY,d7)=>{var CZ="[0-9](_*[0-9])*",d8=`\\.(${CZ})`,c8="[0-9a-fA-F](_*[0-9a-fA-F])*",E7={className:"number",variants:[{begin:`(\\b(${CZ})((${d8})|\\.)?|(${d8}))[eE][+-]?(${CZ})[fFdD]?\\b`},{begin:`\\b(${CZ})((${d8})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${d8})[fFdD]?\\b`},{begin:`\\b(${CZ})[fFdD]\\b`},{begin:`\\b0[xX]((${c8})\\.?|(${c8})?\\.(${c8}))[pP][+-]?(${CZ})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${c8})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function p7(Z,J,Q){if(Q===-1)return"";return Z.replace(J,(X)=>{return p7(Z,J,Q-1)})}function tX(Z){let J=Z.regex,Q="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",X="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+p7("(?:<"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~(?:\\s*,\\s*"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~)*>)?",/~~~/g,2),H={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},Y={className:"meta",begin:"@"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},F={className:"params",begin:/\(/,end:/\)/,keywords:H,relevance:0,contains:[Z.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:H,illegal:/<\/|#/,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[Z.BACKSLASH_ESCAPE]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[J.concat(/(?!else)/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"),/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"},contains:[F,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+X+"\\s+)",Z.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:H,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:H,relevance:0,contains:[Y,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,E7,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},E7,Y]}}d7.exports=tX});var r7=C0((bY,l7)=>{var sX=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],eX=["true","false","null","undefined","NaN","Infinity"],i7=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a7=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],n7=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Zz=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Jz=[].concat(n7,i7,a7);function $z(Z){let J=Z.regex,Q=(u,{after:I})=>{let n="</"+u[0].slice(1);return u.input.indexOf(n,I)!==-1},X="[A-Za-z$_][0-9A-Za-z$_]*",z={begin:"<>",end:"</>"},W=/<[A-Za-z0-9\\._:-]+\s*\/>/,G={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(u,I)=>{let n=u[0].length+u.index,Z0=u.input[n];if(Z0==="<"||Z0===","){I.ignoreMatch();return}if(Z0===">"){if(!Q(u,{after:n}))I.ignoreMatch()}let q0,Q0=u.input.substring(n);if(q0=Q0.match(/^\s*=/)){I.ignoreMatch();return}if(q0=Q0.match(/^\s+extends\s+/)){if(q0.index===0){I.ignoreMatch();return}}}},q={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:sX,literal:eX,built_in:Jz,"variable.language":Zz},H="[0-9](_?[0-9])*",Y="\\.([0-9](_?[0-9])*)",F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",K={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\b"},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},w={className:"subst",begin:"\\$\\{",end:"\\}",keywords:q,contains:[]},P={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,w],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,w],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,w],subLanguage:"graphql"}},V={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,w]},v={className:"comment",variants:[Z.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},R=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,P,A,_,V,{match:/\$\d+/},K];w.contains=R.concat({begin:/\{/,end:/\}/,keywords:q,contains:["self"].concat(R)});let x=[].concat(v,w.contains),S=x.concat([{begin:/(\s*)\(/,end:/\)/,keywords:q,contains:["self"].concat(x)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:S},N={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:J.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...i7,...a7]}},B={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},M={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},y={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function E(u){return J.concat("(?!",u.join("|"),")")}let c={match:J.concat(/\b/,E([...n7,"super","import"].map((u)=>`${u}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},r={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},m="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",g={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(m)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:q,exports:{PARAMS_CONTAINS:S,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),B,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,P,A,_,V,v,{match:/\$\d+/},K,L,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},g,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,Z.REGEXP_MODE,{className:"function",begin:m,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:S}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:z.begin,end:z.end},{match:W},{begin:G.begin,"on:begin":G.isTrulyOpeningTag,end:G.end}],subLanguage:"xml",contains:[{begin:G.begin,end:G.end,skip:!0,contains:["self"]}]}]},M,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},r,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},c,y,N,$0,{match:/\$[(.]/}]}}l7.exports=$z});var t7=C0((jY,o7)=>{function Qz(Z){let J={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},Q={match:/[{}[\],:]/,className:"punctuation",relevance:0},X=["true","false","null"],z={scope:"literal",beginKeywords:X.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:X},contains:[J,Q,Z.QUOTE_STRING_MODE,z,Z.C_NUMBER_MODE,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}o7.exports=Qz});var e7=C0((hY,s7)=>{var yZ="[0-9](_*[0-9])*",i8=`\\.(${yZ})`,a8="[0-9a-fA-F](_*[0-9a-fA-F])*",Xz={className:"number",variants:[{begin:`(\\b(${yZ})((${i8})|\\.)?|(${i8}))[eE][+-]?(${yZ})[fFdD]?\\b`},{begin:`\\b(${yZ})((${i8})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${i8})[fFdD]?\\b`},{begin:`\\b(${yZ})[fFdD]\\b`},{begin:`\\b0[xX]((${a8})\\.?|(${a8})?\\.(${a8}))[pP][+-]?(${yZ})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${a8})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function zz(Z){let J={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},Q={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},X={className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"@"},z={className:"subst",begin:/\$\{/,end:/\}/,contains:[Z.C_NUMBER_MODE]},W={className:"variable",begin:"\\$"+Z.UNDERSCORE_IDENT_RE},G={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[W,z]},{begin:"'",end:"'",illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE,W,z]}]};z.contains.push(G);let q={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+Z.UNDERSCORE_IDENT_RE+")?"},H={className:"meta",begin:"@"+Z.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[Z.inherit(G,{className:"string"}),"self"]}]},Y=Xz,F=Z.COMMENT("/\\*","\\*/",{contains:[Z.C_BLOCK_COMMENT_MODE]}),K={variants:[{className:"type",begin:Z.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},w=K;return w.variants[1].contains=[K],K.variants[1].contains=[w],{name:"Kotlin",aliases:["kt","kts"],keywords:J,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),Z.C_LINE_COMMENT_MODE,F,Q,X,q,H,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:J,relevance:5,contains:[{begin:Z.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[Z.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:J,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[K,Z.C_LINE_COMMENT_MODE,F],relevance:0},Z.C_LINE_COMMENT_MODE,F,q,H,G,Z.C_NUMBER_MODE]},F]},{begin:[/class|interface|trait/,/\s+/,Z.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},Z.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},q,H]},G,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
4
|
-
`},Y]}}s7.exports=zz});var Q4=C0((DY,$4)=>{var Wz=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}},Gz=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],qz=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Hz=[...Gz,...qz],Yz=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Z4=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),J4=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Kz=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),Fz=Z4.concat(J4).sort().reverse();function Uz(Z){let J=Wz(Z),Q=Fz,X="and or not only",z="[\\w-]+",W="([\\w-]+|@\\{[\\w-]+\\})",G=[],q=[],H=function(R){return{className:"string",begin:"~?"+R+".*?"+R}},Y=function(R,x,S){return{className:R,begin:x,relevance:S}},F={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Yz.join(" ")},K={begin:"\\(",end:"\\)",contains:q,keywords:F,relevance:0};q.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,H("'"),H('"'),J.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},J.HEXCOLOR,K,Y("variable","@@?[\\w-]+",10),Y("variable","@\\{[\\w-]+\\}"),Y("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},J.IMPORTANT,{beginKeywords:"and not"},J.FUNCTION_DISPATCH);let w=q.concat({begin:/\{/,end:/\}/,contains:G}),P={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(q)},A={begin:W+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Kz.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:q}}]},_={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:F,returnEnd:!0,contains:q,relevance:0}},V={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:w}},D={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:W,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,P,Y("keyword","all\\b"),Y("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+Hz.join("|")+")\\b",className:"selector-tag"},J.CSS_NUMBER_MODE,Y("selector-tag",W,0),Y("selector-id","#"+W),Y("selector-class","\\."+W,0),Y("selector-tag","&",0),J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+Z4.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+J4.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:w},{begin:"!important"},J.FUNCTION_DISPATCH]},v={begin:`[\\w-]+:(:)?(${Q.join("|")})`,returnBegin:!0,contains:[D]};return G.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,_,V,v,A,D,P,J.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:G}}$4.exports=Uz});var z4=C0((xY,X4)=>{function Lz(Z){let X={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},z=[Z.COMMENT("--(?!\\[=*\\[)","$"),Z.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[X],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:Z.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:z.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[Z.inherit(Z.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:z}].concat(z)},Z.C_NUMBER_MODE,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[X],relevance:5}])}}X4.exports=Lz});var G4=C0((mY,W4)=>{function Pz(Z){let J={className:"variable",variants:[{begin:"\\$\\("+Z.UNDERSCORE_IDENT_RE+"\\)",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},Q={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,J]},X={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[J,Q]},z={begin:"^"+Z.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},W={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},G={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[J]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[Z.HASH_COMMENT_MODE,J,Q,X,z,W,G]}}W4.exports=Pz});var H4=C0((uY,q4)=>{function Bz(Z){let J=Z.regex,Q=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],X=/[dualxmsipngr]{0,12}/,z={$pattern:/[\w.]+/,keyword:Q.join(" ")},W={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:z},G={begin:/->\{/,end:/\}/},q={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},H={scope:"variable",variants:[{begin:/\$\d/},{begin:J.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[q]},Y={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},F=[Z.BACKSLASH_ESCAPE,W,H],K=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],w=(_,V,D="\\1")=>{let v=D==="\\1"?D:J.concat(D,V);return J.concat(J.concat("(?:",_,")"),V,/(?:\\.|[^\\\/])*?/,v,/(?:\\.|[^\\\/])*?/,D,X)},P=(_,V,D)=>{return J.concat(J.concat("(?:",_,")"),V,/(?:\\.|[^\\\/])*?/,D,X)},A=[H,Z.HASH_COMMENT_MODE,Z.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),G,{className:"string",contains:F,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},Y,{begin:"(\\/\\/|"+Z.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[Z.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:w("s|tr|y",J.either(...K,{capture:!0}))},{begin:w("s|tr|y","\\(","\\)")},{begin:w("s|tr|y","\\[","\\]")},{begin:w("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:P("(?:m|qr)?",/\//,/\//)},{begin:P("m|qr",J.either(...K,{capture:!0}),/\1/)},{begin:P("m|qr",/\(/,/\)/)},{begin:P("m|qr",/\[/,/\]/)},{begin:P("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,q]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,q,Y]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return W.contains=A,G.contains=A,{name:"Perl",aliases:["pl","pm"],keywords:z,contains:A}}q4.exports=Bz});var K4=C0((EY,Y4)=>{function Oz(Z){let J={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},Q=/[a-zA-Z@][a-zA-Z0-9_]*/,q={"variable.language":["this","super"],$pattern:Q,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},H={$pattern:Q,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:q,illegal:"</",contains:[J,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,Z.C_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+H.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:H,contains:[Z.UNDERSCORE_TITLE_MODE]},{begin:"\\."+Z.UNDERSCORE_IDENT_RE,relevance:0}]}}Y4.exports=Oz});var U4=C0((pY,F4)=>{function Az(Z){let J=Z.regex,Q=/(?![A-Za-z0-9])(?![$])/,X=J.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,Q),z=J.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,Q),W=J.concat(/[A-Z]+/,Q),G={scope:"variable",match:"\\$+"+X},q={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:0.1},{begin:/\?>/}]},H={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},Y=Z.inherit(Z.APOS_STRING_MODE,{illegal:null}),F=Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,contains:Z.QUOTE_STRING_MODE.contains.concat(H)}),K={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:Z.QUOTE_STRING_MODE.contains.concat(H),"on:begin":(r,$0)=>{$0.data._beginMatch=r[1]||r[2]},"on:end":(r,$0)=>{if($0.data._beginMatch!==r[1])$0.ignoreMatch()}},w=Z.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),P=`[
|
|
5
|
-
]`,
|
|
6
|
-
]`,"+"),J.concat("(?!",
|
|
7
|
-
]`,"*"),J.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[M]};M.contains.push(y);let E=[B,L,Z.C_BLOCK_COMMENT_MODE,A,_,O],c={begin:J.concat(/#\[\s*\\?/,J.either(z,W)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:V,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:V,keyword:["new","array"]},contains:["self",...E]},...E,{scope:"meta",variants:[{match:z},{match:W}]}]};return{case_insensitive:!1,keywords:x,contains:[c,Z.HASH_COMMENT_MODE,Z.COMMENT("//","$"),Z.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:Z.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},q,{scope:"variable.language",match:/\$this\b/},G,y,L,{match:[/const/,/\s/,X],scope:{1:"keyword",3:"variable.constant"}},O,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},Z.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:x,contains:["self",c,G,L,Z.C_BLOCK_COMMENT_MODE,A,_]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},Z.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[Z.inherit(Z.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},Z.UNDERSCORE_TITLE_MODE]},A,_]}}F4.exports=Az});var P4=C0((dY,L4)=>{function Nz(Z){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},Z.inherit(Z.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}L4.exports=Nz});var O4=C0((cY,B4)=>{function wz(Z){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}B4.exports=wz});var N4=C0((iY,A4)=>{function Mz(Z){let J=Z.regex,Q=/[\p{XID_Start}_]\p{XID_Continue}*/u,X=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],q={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:X,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},H={className:"meta",begin:/^(>>>|\.\.\.) /},Y={className:"subst",begin:/\{/,end:/\}/,keywords:q,illegal:/#/},F={begin:/\{\{/,relevance:0},K={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,H],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,H],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,H,F,Y]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,H,F,Y]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[Z.BACKSLASH_ESCAPE,F,Y]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,F,Y]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},w="[0-9](_?[0-9])*",P="(\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.",A=`\\b|${X.join("|")}`,_={className:"number",relevance:0,variants:[{begin:`(\\b([0-9](_?[0-9])*)|((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.))[eE][+-]?([0-9](_?[0-9])*)[jJ]?(?=${A})`},{begin:"((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.)[jJ]?"},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${A})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${A})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${A})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${A})`},{begin:`\\b([0-9](_?[0-9])*)[jJ](?=${A})`}]},V={className:"comment",begin:J.lookahead(/# type:/),end:/$/,keywords:q,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},D={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:["self",H,_,K,Z.HASH_COMMENT_MODE]}]};return Y.contains=[K,_,H],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:q,illegal:/(<\/|\?)|=>/,contains:[H,_,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},K,V,Z.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,Q],scope:{1:"keyword",3:"title.function"},contains:[D]},{variants:[{match:[/\bclass/,/\s+/,Q,/\s*/,/\(\s*/,Q,/\s*\)/]},{match:[/\bclass/,/\s+/,Q]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[_,D,K]}]}}A4.exports=Mz});var M4=C0((aY,w4)=>{function Cz(Z){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}w4.exports=Cz});var y4=C0((nY,C4)=>{function yz(Z){let J=Z.regex,Q=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,X=J.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),z=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,W=J.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:Q,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[Z.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:J.lookahead(J.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:Q},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),Z.HASH_COMMENT_MODE,{scope:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[z,X]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,X]},{scope:{1:"punctuation",2:"number"},match:[W,X]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,X]}]},{scope:{3:"operator"},match:[Q,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:z},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:W},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}C4.exports=yz});var v4=C0((lY,_4)=>{function _z(Z){let J=Z.regex,Q=/(r#)?/,X=J.concat(Q,Z.UNDERSCORE_IDENT_RE),z=J.concat(Q,Z.IDENT_RE),W={className:"title.function.invoke",relevance:0,begin:J.concat(/\b/,/(?!let|for|while|if|else|match\b)/,z,J.lookahead(/\s*\(/))},G="([ui](8|16|32|64|128|size)|f(32|64))?",q=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],H=["true","false","Some","None","Ok","Err"],Y=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],F=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:Z.IDENT_RE+"!?",type:F,keyword:q,literal:H,built_in:Y},illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.COMMENT("/\\*","\\*/",{contains:["self"]}),Z.inherit(Z.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?"}],relevance:0},{begin:[/fn/,/\s+/,X],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,X],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,X,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,X],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,X],className:{1:"keyword",3:"title.class"}},{begin:Z.IDENT_RE+"::",keywords:{keyword:"Self",built_in:Y,type:F}},{className:"punctuation",begin:"->"},W]}}_4.exports=_z});var R4=C0((rY,T4)=>{var vz=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}},Tz=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Rz=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],kz=[...Tz,...Rz],Iz=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Sz=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Vz=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),fz=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function gz(Z){let J=vz(Z),Q=Vz,X=Sz,z="@[a-z-]+",W="and or not only",G="[a-zA-Z-][a-zA-Z0-9_-]*",q={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,J.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+kz.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+X.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+Q.join("|")+")"},q,{begin:/\(/,end:/\)/,contains:[J.CSS_NUMBER_MODE]},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+fz.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[J.BLOCK_COMMENT,q,J.HEXCOLOR,J.CSS_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.IMPORTANT,J.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:"@[a-z-]+",keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:Iz.join(" ")},contains:[{begin:"@[a-z-]+",className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},q,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.HEXCOLOR,J.CSS_NUMBER_MODE]},J.FUNCTION_DISPATCH]}}T4.exports=gz});var I4=C0((oY,k4)=>{function bz(Z){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}k4.exports=bz});var V4=C0((tY,S4)=>{function jz(Z){let J=Z.regex,Q=Z.COMMENT("--","$"),X={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},z={begin:/"/,end:/"/,contains:[{match:/""/}]},W=["true","false","unknown"],G=["double precision","large object","with timezone","without timezone"],q=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],H=["add","asc","collation","desc","final","first","last","view"],Y=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],F=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],K=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],w=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],P=F,A=[...Y,...H].filter((S)=>{return!F.includes(S)}),_={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},V={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},D={match:J.concat(/\b/,J.either(...P),/\s*\(/),relevance:0,keywords:{built_in:P}};function v(S){return J.concat(/\b/,J.either(...S.map((O)=>{return O.replace(/\s+/,"\\s+")})),/\b/)}let R={scope:"keyword",match:v(w),relevance:0};function x(S,{exceptions:O,when:N}={}){let L=N;return O=O||[],S.map((B)=>{if(B.match(/\|\d+$/)||O.includes(B))return B;else if(L(B))return`${B}|0`;else return B})}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:x(A,{when:(S)=>S.length<3}),literal:W,type:q,built_in:K},contains:[{scope:"type",match:v(G)},R,D,_,X,z,Z.C_NUMBER_MODE,Z.C_BLOCK_COMMENT_MODE,Q,V]}}S4.exports=jz});var u4=C0((sY,m4)=>{function j4(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function nZ(Z){return I0("(?=",Z,")")}function I0(...Z){return Z.map((Q)=>j4(Q)).join("")}function hz(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function $9(...Z){return"("+(hz(Z).capture?"":"?:")+Z.map((X)=>j4(X)).join("|")+")"}var F1=(Z)=>I0(/\b/,Z,/\w$/.test(Z)?/\b/:/\B/),Dz=["Protocol","Type"].map(F1),f4=["init","self"].map(F1),xz=["Any","Self"],Y1=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],g4=["false","nil","true"],mz=["assignment","associativity","higherThan","left","lowerThan","none","right"],uz=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],b4=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],h4=$9(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),D4=$9(h4,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),K1=I0(h4,D4,"*"),x4=$9(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),l8=$9(x4,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w9=I0(x4,l8,"*"),n8=I0(/[A-Z]/,l8,"*"),Ez=["attached","autoclosure",I0(/convention\(/,$9("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",I0(/objc\(/,w9,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],pz=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function dz(Z){let J={match:/\s+/,relevance:0},Q=Z.COMMENT("/\\*","\\*/",{contains:["self"]}),X=[Z.C_LINE_COMMENT_MODE,Q],z={match:[/\./,$9(...Dz,...f4)],className:{2:"keyword"}},W={match:I0(/\./,$9(...Y1)),relevance:0},G=Y1.filter((Y0)=>typeof Y0==="string").concat(["_|0"]),q=Y1.filter((Y0)=>typeof Y0!=="string").concat(xz).map(F1),H={variants:[{className:"keyword",match:$9(...q,...f4)}]},Y={$pattern:$9(/\b\w+/,/#\w+/),keyword:G.concat(uz),literal:g4},F=[z,W,H],K={match:I0(/\./,$9(...b4)),relevance:0},w={className:"built_in",match:I0(/\b/,$9(...b4),/(?=\()/)},P=[K,w],A={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:K1},{match:`\\.(\\.|${D4})+`}]},V=[A,_],D="([0-9]_*)+",v="([0-9a-fA-F]_*)+",R={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:"\\b0x(([0-9a-fA-F]_*)+)(\\.(([0-9a-fA-F]_*)+))?([pP][+-]?(([0-9]_*)+))?\\b"},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},x=(Y0="")=>({className:"subst",variants:[{match:I0(/\\/,Y0,/[0\\tnr"']/)},{match:I0(/\\/,Y0,/u\{[0-9a-fA-F]{1,8}\}/)}]}),S=(Y0="")=>({className:"subst",match:I0(/\\/,Y0,/[\t ]*(?:[\r\n]|\r\n)/)}),O=(Y0="")=>({className:"subst",label:"interpol",begin:I0(/\\/,Y0,/\(/),end:/\)/}),N=(Y0="")=>({begin:I0(Y0,/"""/),end:I0(/"""/,Y0),contains:[x(Y0),S(Y0),O(Y0)]}),L=(Y0="")=>({begin:I0(Y0,/"/),end:I0(/"/,Y0),contains:[x(Y0),O(Y0)]}),B={className:"string",variants:[N(),N("#"),N("##"),N("###"),L(),L("#"),L("##"),L("###")]},M=[Z.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[Z.BACKSLASH_ESCAPE]}],y={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:M},E=(Y0)=>{let r0=I0(Y0,/\//),K0=I0(/\//,Y0);return{begin:r0,end:K0,contains:[...M,{scope:"comment",begin:`#(?!.*${K0})`,end:/$/}]}},c={scope:"regexp",variants:[E("###"),E("##"),E("#"),y]},r={match:I0(/`/,w9,/`/)},$0={className:"variable",match:/\$\d+/},m={className:"variable",match:`\\$${l8}+`},g=[r,$0,m],u={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:pz,contains:[...V,R,B]}]}},I={scope:"keyword",match:I0(/@/,$9(...Ez),nZ($9(/\(/,/\s+/)))},n={scope:"meta",match:I0(/@/,w9)},Z0=[u,I,n],q0={match:nZ(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:I0(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,l8,"+")},{className:"type",match:n8,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:I0(/\s+&\s+/,nZ(n8)),relevance:0}]},Q0={begin:/</,end:/>/,keywords:Y,contains:[...X,...F,...Z0,A,q0]};q0.contains.push(Q0);let J0={match:I0(w9,/\s*:/),keywords:"_|0",relevance:0},B0={begin:/\(/,end:/\)/,relevance:0,keywords:Y,contains:["self",J0,...X,c,...F,...P,...V,R,B,...g,...Z0,q0]},p0={begin:/</,end:/>/,keywords:"repeat each",contains:[...X,q0]},i0={begin:$9(nZ(I0(w9,/\s*:/)),nZ(I0(w9,/\s+/,w9,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w9}]},m0={begin:/\(/,end:/\)/,keywords:Y,contains:[i0,...X,...F,...V,R,B,...Z0,q0,B0],endsParent:!0,illegal:/["']/},d0={match:[/(func|macro)/,/\s+/,$9(r.match,w9,K1)],className:{1:"keyword",3:"title.function"},contains:[p0,m0,J],illegal:[/\[/,/%/]},g0={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[p0,m0,J],illegal:/\[|%/},h0={match:[/operator/,/\s+/,K1],className:{1:"keyword",3:"title"}},_0={begin:[/precedencegroup/,/\s+/,n8],className:{1:"keyword",3:"title"},contains:[q0],keywords:[...mz,...g4],end:/}/},a0={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},O0={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},u0={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,w9,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:Y,contains:[p0,...F,{begin:/:/,end:/\{/,keywords:Y,contains:[{scope:"title.class.inherited",match:n8},...F],relevance:0}]};for(let Y0 of B.variants){let r0=Y0.contains.find((l0)=>l0.label==="interpol");r0.keywords=Y;let K0=[...F,...P,...V,R,B,...g];r0.contains=[...K0,{begin:/\(/,end:/\)/,contains:["self",...K0]}]}return{name:"Swift",keywords:Y,contains:[...X,d0,g0,a0,O0,u0,h0,_0,{beginKeywords:"import",end:/$/,contains:[...X],relevance:0},c,...F,...P,...V,R,B,...g,...Z0,q0,B0]}}m4.exports=dz});var p4=C0((eY,E4)=>{function cz(Z){let X={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},z={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},W={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},G={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[Z.BACKSLASH_ESCAPE,z]},q=Z.inherit(G,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),H="[0-9]{4}(-[0-9][0-9]){0,2}",Y="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",F="(\\.[0-9]*)?",K="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",w={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},P={end:",",endsWithParent:!0,excludeEnd:!0,keywords:"true false yes no null",relevance:0},A={begin:/\{/,end:/\}/,contains:[P],illegal:"\\n",relevance:0},_={begin:"\\[",end:"\\]",contains:[P],illegal:"\\n",relevance:0},V=[X,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!<[\\w#;/?:@&=+$,.~*'()[\\]]+>"},{className:"type",begin:"![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"meta",begin:"&"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},Z.HASH_COMMENT_MODE,{beginKeywords:"true false yes no null",keywords:{literal:"true false yes no null"}},w,{className:"number",begin:Z.C_NUMBER_RE+"\\b",relevance:0},A,_,W,G],D=[...V];return D.pop(),D.push(q),P.contains=D,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:V}}E4.exports=cz});var t4=C0((ZK,o4)=>{var d4=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],c4=["true","false","null","undefined","NaN","Infinity"],i4=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],a4=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],n4=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],l4=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],r4=[].concat(n4,i4,a4);function iz(Z){let J=Z.regex,Q=(u,{after:I})=>{let n="</"+u[0].slice(1);return u.input.indexOf(n,I)!==-1},X="[A-Za-z$_][0-9A-Za-z$_]*",z={begin:"<>",end:"</>"},W=/<[A-Za-z0-9\\._:-]+\s*\/>/,G={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(u,I)=>{let n=u[0].length+u.index,Z0=u.input[n];if(Z0==="<"||Z0===","){I.ignoreMatch();return}if(Z0===">"){if(!Q(u,{after:n}))I.ignoreMatch()}let q0,Q0=u.input.substring(n);if(q0=Q0.match(/^\s*=/)){I.ignoreMatch();return}if(q0=Q0.match(/^\s+extends\s+/)){if(q0.index===0){I.ignoreMatch();return}}}},q={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:d4,literal:c4,built_in:r4,"variable.language":l4},H="[0-9](_?[0-9])*",Y="\\.([0-9](_?[0-9])*)",F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",K={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\b"},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},w={className:"subst",begin:"\\$\\{",end:"\\}",keywords:q,contains:[]},P={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,w],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,w],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,w],subLanguage:"graphql"}},V={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,w]},v={className:"comment",variants:[Z.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},R=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,P,A,_,V,{match:/\$\d+/},K];w.contains=R.concat({begin:/\{/,end:/\}/,keywords:q,contains:["self"].concat(R)});let x=[].concat(v,w.contains),S=x.concat([{begin:/(\s*)\(/,end:/\)/,keywords:q,contains:["self"].concat(x)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:S},N={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:J.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...i4,...a4]}},B={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},M={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},y={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function E(u){return J.concat("(?!",u.join("|"),")")}let c={match:J.concat(/\b/,E([...n4,"super","import"].map((u)=>`${u}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},r={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},$0={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},m="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",g={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(m)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:q,exports:{PARAMS_CONTAINS:S,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),B,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,P,A,_,V,v,{match:/\$\d+/},K,L,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},g,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[v,Z.REGEXP_MODE,{className:"function",begin:m,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:q,contains:S}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:z.begin,end:z.end},{match:W},{begin:G.begin,"on:begin":G.isTrulyOpeningTag,end:G.end}],subLanguage:"xml",contains:[{begin:G.begin,end:G.end,skip:!0,contains:["self"]}]}]},M,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},r,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},c,y,N,$0,{match:/\$[(.]/}]}}function az(Z){let J=Z.regex,Q=iz(Z),X="[A-Za-z$_][0-9A-Za-z$_]*",z=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],W={begin:[/namespace/,/\s+/,Z.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},G={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:z},contains:[Q.exports.CLASS_REFERENCE]},q={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},H=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],Y={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:d4.concat(H),literal:c4,built_in:r4.concat(z),"variable.language":l4},F={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},K=(_,V,D)=>{let v=_.contains.findIndex((R)=>R.label===V);if(v===-1)throw Error("can not find mode to replace");_.contains.splice(v,1,D)};Object.assign(Q.keywords,Y),Q.exports.PARAMS_CONTAINS.push(F);let w=Q.contains.find((_)=>_.scope==="attr"),P=Object.assign({},w,{match:J.concat("[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\?:/))});Q.exports.PARAMS_CONTAINS.push([Q.exports.CLASS_REFERENCE,w,P]),Q.contains=Q.contains.concat([F,W,G,P]),K(Q,"shebang",Z.SHEBANG()),K(Q,"use_strict",q);let A=Q.contains.find((_)=>_.label==="func.def");return A.relevance=0,Object.assign(Q,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),Q}o4.exports=az});var e4=C0((JK,s4)=>{function nz(Z){let J=Z.regex,Q={className:"string",begin:/"(""|[^/n])"C\b/},X={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},z=/\d{1,2}\/\d{1,2}\/\d{4}/,W=/\d{4}-\d{1,2}-\d{1,2}/,G=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,q=/\d{1,2}(:\d{1,2}){1,2}/,H={className:"literal",variants:[{begin:J.concat(/# */,J.either(W,z),/ *#/)},{begin:J.concat(/# */,q,/ *#/)},{begin:J.concat(/# */,G,/ *#/)},{begin:J.concat(/# */,J.either(W,z),/ +/,J.either(G,q),/ *#/)}]},Y={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},F={className:"label",begin:/^\w+:/},K=Z.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),w=Z.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[Q,X,H,Y,F,K,w,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[w]}]}}s4.exports=nz});var J$=C0(($K,Z$)=>{function lz(Z){Z.regex;let J=Z.COMMENT(/\(;/,/;\)/);J.contains.push("self");let Q=Z.COMMENT(/;;/,/$/),X=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],z={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},W={className:"variable",begin:/\$[\w_]+/},G={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},q={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},H={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},Y={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:X},contains:[Q,J,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},W,G,z,Z.QUOTE_STRING_MODE,H,Y,q]}}Z$.exports=lz});var Q$=C0((QK,$$)=>{var N0=B7();N0.registerLanguage("xml",A7());N0.registerLanguage("bash",w7());N0.registerLanguage("c",C7());N0.registerLanguage("cpp",_7());N0.registerLanguage("csharp",T7());N0.registerLanguage("css",k7());N0.registerLanguage("markdown",S7());N0.registerLanguage("diff",f7());N0.registerLanguage("ruby",b7());N0.registerLanguage("go",h7());N0.registerLanguage("graphql",x7());N0.registerLanguage("ini",u7());N0.registerLanguage("java",c7());N0.registerLanguage("javascript",r7());N0.registerLanguage("json",t7());N0.registerLanguage("kotlin",e7());N0.registerLanguage("less",Q4());N0.registerLanguage("lua",z4());N0.registerLanguage("makefile",G4());N0.registerLanguage("perl",H4());N0.registerLanguage("objectivec",K4());N0.registerLanguage("php",U4());N0.registerLanguage("php-template",P4());N0.registerLanguage("plaintext",O4());N0.registerLanguage("python",N4());N0.registerLanguage("python-repl",M4());N0.registerLanguage("r",y4());N0.registerLanguage("rust",v4());N0.registerLanguage("scss",R4());N0.registerLanguage("shell",I4());N0.registerLanguage("sql",V4());N0.registerLanguage("swift",u4());N0.registerLanguage("yaml",p4());N0.registerLanguage("typescript",t4());N0.registerLanguage("vbnet",e4());N0.registerLanguage("wasm",J$());N0.HighlightJS=N0;N0.default=N0;$$.exports=N0});var M8,k0,wJ,C2,S9,BJ,MJ,CJ,B6,P8,VZ,yJ,w6,O6,A6,y2,A8={},N8=[],_2=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,C8=Array.isArray;function y9(Z,J){for(var Q in J)Z[Q]=J[Q];return Z}function M6(Z){Z&&Z.parentNode&&Z.parentNode.removeChild(Z)}function v2(Z,J,Q){var X,z,W,G={};for(W in J)W=="key"?X=J[W]:W=="ref"?z=J[W]:G[W]=J[W];if(arguments.length>2&&(G.children=arguments.length>3?M8.call(arguments,2):Q),typeof Z=="function"&&Z.defaultProps!=null)for(W in Z.defaultProps)G[W]===void 0&&(G[W]=Z.defaultProps[W]);return B8(Z,G,X,z,null)}function B8(Z,J,Q,X,z){var W={type:Z,props:J,key:Q,ref:X,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:z==null?++wJ:z,__i:-1,__u:0};return z==null&&k0.vnode!=null&&k0.vnode(W),W}function o(Z){return Z.children}function O8(Z,J){this.props=Z,this.context=J}function YZ(Z,J){if(J==null)return Z.__?YZ(Z.__,Z.__i+1):null;for(var Q;J<Z.__k.length;J++)if((Q=Z.__k[J])!=null&&Q.__e!=null)return Q.__e;return typeof Z.type=="function"?YZ(Z):null}function T2(Z){if(Z.__P&&Z.__d){var J=Z.__v,Q=J.__e,X=[],z=[],W=y9({},J);W.__v=J.__v+1,k0.vnode&&k0.vnode(W),C6(Z.__P,W,J,Z.__n,Z.__P.namespaceURI,32&J.__u?[Q]:null,X,Q==null?YZ(J):Q,!!(32&J.__u),z),W.__v=J.__v,W.__.__k[W.__i]=W,RJ(X,W,z),J.__e=J.__=null,W.__e!=Q&&_J(W)}}function _J(Z){if((Z=Z.__)!=null&&Z.__c!=null)return Z.__e=Z.__c.base=null,Z.__k.some(function(J){if(J!=null&&J.__e!=null)return Z.__e=Z.__c.base=J.__e}),_J(Z)}function OJ(Z){(!Z.__d&&(Z.__d=!0)&&S9.push(Z)&&!w8.__r++||BJ!=k0.debounceRendering)&&((BJ=k0.debounceRendering)||MJ)(w8)}function w8(){try{for(var Z,J=1;S9.length;)S9.length>J&&S9.sort(CJ),Z=S9.shift(),J=S9.length,T2(Z)}finally{S9.length=w8.__r=0}}function vJ(Z,J,Q,X,z,W,G,q,H,Y,F){var K,w,P,A,_,V,D,v=X&&X.__k||N8,R=J.length;for(H=R2(Q,J,v,H,R),K=0;K<R;K++)(P=Q.__k[K])!=null&&(w=P.__i!=-1&&v[P.__i]||A8,P.__i=K,V=C6(Z,P,w,z,W,G,q,H,Y,F),A=P.__e,P.ref&&w.ref!=P.ref&&(w.ref&&y6(w.ref,null,P),F.push(P.ref,P.__c||A,P)),_==null&&A!=null&&(_=A),(D=!!(4&P.__u))||w.__k===P.__k?(H=TJ(P,H,Z,D),D&&w.__e&&(w.__e=null)):typeof P.type=="function"&&V!==void 0?H=V:A&&(H=A.nextSibling),P.__u&=-7);return Q.__e=_,H}function R2(Z,J,Q,X,z){var W,G,q,H,Y,F=Q.length,K=F,w=0;for(Z.__k=Array(z),W=0;W<z;W++)(G=J[W])!=null&&typeof G!="boolean"&&typeof G!="function"?(typeof G=="string"||typeof G=="number"||typeof G=="bigint"||G.constructor==String?G=Z.__k[W]=B8(null,G,null,null,null):C8(G)?G=Z.__k[W]=B8(o,{children:G},null,null,null):G.constructor===void 0&&G.__b>0?G=Z.__k[W]=B8(G.type,G.props,G.key,G.ref?G.ref:null,G.__v):Z.__k[W]=G,H=W+w,G.__=Z,G.__b=Z.__b+1,q=null,(Y=G.__i=k2(G,Q,H,K))!=-1&&(K--,(q=Q[Y])&&(q.__u|=2)),q==null||q.__v==null?(Y==-1&&(z>F?w--:z<F&&w++),typeof G.type!="function"&&(G.__u|=4)):Y!=H&&(Y==H-1?w--:Y==H+1?w++:(Y>H?w--:w++,G.__u|=4))):Z.__k[W]=null;if(K)for(W=0;W<F;W++)(q=Q[W])!=null&&(2&q.__u)==0&&(q.__e==X&&(X=YZ(q)),IJ(q,q));return X}function TJ(Z,J,Q,X){var z,W;if(typeof Z.type=="function"){for(z=Z.__k,W=0;z&&W<z.length;W++)z[W]&&(z[W].__=Z,J=TJ(z[W],J,Q,X));return J}Z.__e!=J&&(X&&(J&&Z.type&&!J.parentNode&&(J=YZ(Z)),Q.insertBefore(Z.__e,J||null)),J=Z.__e);do J=J&&J.nextSibling;while(J!=null&&J.nodeType==8);return J}function k2(Z,J,Q,X){var z,W,G,q=Z.key,H=Z.type,Y=J[Q],F=Y!=null&&(2&Y.__u)==0;if(Y===null&&q==null||F&&q==Y.key&&H==Y.type)return Q;if(X>(F?1:0)){for(z=Q-1,W=Q+1;z>=0||W<J.length;)if((Y=J[G=z>=0?z--:W++])!=null&&(2&Y.__u)==0&&q==Y.key&&H==Y.type)return G}return-1}function AJ(Z,J,Q){J[0]=="-"?Z.setProperty(J,Q==null?"":Q):Z[J]=Q==null?"":typeof Q!="number"||_2.test(J)?Q:Q+"px"}function L8(Z,J,Q,X,z){var W,G;Z:if(J=="style")if(typeof Q=="string")Z.style.cssText=Q;else{if(typeof X=="string"&&(Z.style.cssText=X=""),X)for(J in X)Q&&J in Q||AJ(Z.style,J,"");if(Q)for(J in Q)X&&Q[J]==X[J]||AJ(Z.style,J,Q[J])}else if(J[0]=="o"&&J[1]=="n")W=J!=(J=J.replace(yJ,"$1")),G=J.toLowerCase(),J=G in Z||J=="onFocusOut"||J=="onFocusIn"?G.slice(2):J.slice(2),Z.l||(Z.l={}),Z.l[J+W]=Q,Q?X?Q[VZ]=X[VZ]:(Q[VZ]=w6,Z.addEventListener(J,W?A6:O6,W)):Z.removeEventListener(J,W?A6:O6,W);else{if(z=="http://www.w3.org/2000/svg")J=J.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(J!="width"&&J!="height"&&J!="href"&&J!="list"&&J!="form"&&J!="tabIndex"&&J!="download"&&J!="rowSpan"&&J!="colSpan"&&J!="role"&&J!="popover"&&J in Z)try{Z[J]=Q==null?"":Q;break Z}catch(q){}typeof Q=="function"||(Q==null||Q===!1&&J[4]!="-"?Z.removeAttribute(J):Z.setAttribute(J,J=="popover"&&Q==1?"":Q))}}function NJ(Z){return function(J){if(this.l){var Q=this.l[J.type+Z];if(J[P8]==null)J[P8]=w6++;else if(J[P8]<Q[VZ])return;return Q(k0.event?k0.event(J):J)}}}function C6(Z,J,Q,X,z,W,G,q,H,Y){var F,K,w,P,A,_,V,D,v,R,x,S,O,N,L,B=J.type;if(J.constructor!==void 0)return null;128&Q.__u&&(H=!!(32&Q.__u),W=[q=J.__e=Q.__e]),(F=k0.__b)&&F(J);Z:if(typeof B=="function")try{if(D=J.props,v=B.prototype&&B.prototype.render,R=(F=B.contextType)&&X[F.__c],x=F?R?R.props.value:F.__:X,Q.__c?V=(K=J.__c=Q.__c).__=K.__E:(v?J.__c=K=new B(D,x):(J.__c=K=new O8(D,x),K.constructor=B,K.render=S2),R&&R.sub(K),K.state||(K.state={}),K.__n=X,w=K.__d=!0,K.__h=[],K._sb=[]),v&&K.__s==null&&(K.__s=K.state),v&&B.getDerivedStateFromProps!=null&&(K.__s==K.state&&(K.__s=y9({},K.__s)),y9(K.__s,B.getDerivedStateFromProps(D,K.__s))),P=K.props,A=K.state,K.__v=J,w)v&&B.getDerivedStateFromProps==null&&K.componentWillMount!=null&&K.componentWillMount(),v&&K.componentDidMount!=null&&K.__h.push(K.componentDidMount);else{if(v&&B.getDerivedStateFromProps==null&&D!==P&&K.componentWillReceiveProps!=null&&K.componentWillReceiveProps(D,x),J.__v==Q.__v||!K.__e&&K.shouldComponentUpdate!=null&&K.shouldComponentUpdate(D,K.__s,x)===!1){J.__v!=Q.__v&&(K.props=D,K.state=K.__s,K.__d=!1),J.__e=Q.__e,J.__k=Q.__k,J.__k.some(function(M){M&&(M.__=J)}),N8.push.apply(K.__h,K._sb),K._sb=[],K.__h.length&&G.push(K);break Z}K.componentWillUpdate!=null&&K.componentWillUpdate(D,K.__s,x),v&&K.componentDidUpdate!=null&&K.__h.push(function(){K.componentDidUpdate(P,A,_)})}if(K.context=x,K.props=D,K.__P=Z,K.__e=!1,S=k0.__r,O=0,v)K.state=K.__s,K.__d=!1,S&&S(J),F=K.render(K.props,K.state,K.context),N8.push.apply(K.__h,K._sb),K._sb=[];else do K.__d=!1,S&&S(J),F=K.render(K.props,K.state,K.context),K.state=K.__s;while(K.__d&&++O<25);K.state=K.__s,K.getChildContext!=null&&(X=y9(y9({},X),K.getChildContext())),v&&!w&&K.getSnapshotBeforeUpdate!=null&&(_=K.getSnapshotBeforeUpdate(P,A)),N=F!=null&&F.type===o&&F.key==null?kJ(F.props.children):F,q=vJ(Z,C8(N)?N:[N],J,Q,X,z,W,G,q,H,Y),K.base=J.__e,J.__u&=-161,K.__h.length&&G.push(K),V&&(K.__E=K.__=null)}catch(M){if(J.__v=null,H||W!=null)if(M.then){for(J.__u|=H?160:128;q&&q.nodeType==8&&q.nextSibling;)q=q.nextSibling;W[W.indexOf(q)]=null,J.__e=q}else{for(L=W.length;L--;)M6(W[L]);N6(J)}else J.__e=Q.__e,J.__k=Q.__k,M.then||N6(J);k0.__e(M,J,Q)}else W==null&&J.__v==Q.__v?(J.__k=Q.__k,J.__e=Q.__e):q=J.__e=I2(Q.__e,J,Q,X,z,W,G,H,Y);return(F=k0.diffed)&&F(J),128&J.__u?void 0:q}function N6(Z){Z&&(Z.__c&&(Z.__c.__e=!0),Z.__k&&Z.__k.some(N6))}function RJ(Z,J,Q){for(var X=0;X<Q.length;X++)y6(Q[X],Q[++X],Q[++X]);k0.__c&&k0.__c(J,Z),Z.some(function(z){try{Z=z.__h,z.__h=[],Z.some(function(W){W.call(z)})}catch(W){k0.__e(W,z.__v)}})}function kJ(Z){return typeof Z!="object"||Z==null||Z.__b>0?Z:C8(Z)?Z.map(kJ):Z.constructor!==void 0?null:y9({},Z)}function I2(Z,J,Q,X,z,W,G,q,H){var Y,F,K,w,P,A,_,V=Q.props||A8,D=J.props,v=J.type;if(v=="svg"?z="http://www.w3.org/2000/svg":v=="math"?z="http://www.w3.org/1998/Math/MathML":z||(z="http://www.w3.org/1999/xhtml"),W!=null){for(Y=0;Y<W.length;Y++)if((P=W[Y])&&"setAttribute"in P==!!v&&(v?P.localName==v:P.nodeType==3)){Z=P,W[Y]=null;break}}if(Z==null){if(v==null)return document.createTextNode(D);Z=document.createElementNS(z,v,D.is&&D),q&&(k0.__m&&k0.__m(J,W),q=!1),W=null}if(v==null)V===D||q&&Z.data==D||(Z.data=D);else{if(W=v=="textarea"&&D.defaultValue!=null?null:W&&M8.call(Z.childNodes),!q&&W!=null)for(V={},Y=0;Y<Z.attributes.length;Y++)V[(P=Z.attributes[Y]).name]=P.value;for(Y in V)P=V[Y],Y=="dangerouslySetInnerHTML"?K=P:Y=="children"||(Y in D)||Y=="value"&&("defaultValue"in D)||Y=="checked"&&("defaultChecked"in D)||L8(Z,Y,null,P,z);for(Y in D)P=D[Y],Y=="children"?w=P:Y=="dangerouslySetInnerHTML"?F=P:Y=="value"?A=P:Y=="checked"?_=P:q&&typeof P!="function"||V[Y]===P||L8(Z,Y,P,V[Y],z);if(F)q||K&&(F.__html==K.__html||F.__html==Z.innerHTML)||(Z.innerHTML=F.__html),J.__k=[];else if(K&&(Z.innerHTML=""),vJ(J.type=="template"?Z.content:Z,C8(w)?w:[w],J,Q,X,v=="foreignObject"?"http://www.w3.org/1999/xhtml":z,W,G,W?W[0]:Q.__k&&YZ(Q,0),q,H),W!=null)for(Y=W.length;Y--;)M6(W[Y]);q&&v!="textarea"||(Y="value",v=="progress"&&A==null?Z.removeAttribute("value"):A!=null&&(A!==Z[Y]||v=="progress"&&!A||v=="option"&&A!=V[Y])&&L8(Z,Y,A,V[Y],z),Y="checked",_!=null&&_!=Z[Y]&&L8(Z,Y,_,V[Y],z))}return Z}function y6(Z,J,Q){try{if(typeof Z=="function"){var X=typeof Z.__u=="function";X&&Z.__u(),X&&J==null||(Z.__u=Z(J))}else Z.current=J}catch(z){k0.__e(z,Q)}}function IJ(Z,J,Q){var X,z;if(k0.unmount&&k0.unmount(Z),(X=Z.ref)&&(X.current&&X.current!=Z.__e||y6(X,null,J)),(X=Z.__c)!=null){if(X.componentWillUnmount)try{X.componentWillUnmount()}catch(W){k0.__e(W,J)}X.base=X.__P=null}if(X=Z.__k)for(z=0;z<X.length;z++)X[z]&&IJ(X[z],J,Q||typeof Z.type!="function");Q||M6(Z.__e),Z.__c=Z.__=Z.__e=void 0}function S2(Z,J,Q){return this.constructor(Z,Q)}function a9(Z,J,Q){var X,z,W,G;J==document&&(J=document.documentElement),k0.__&&k0.__(Z,J),z=(X=typeof Q=="function")?null:Q&&Q.__k||J.__k,W=[],G=[],C6(J,Z=(!X&&Q||J).__k=v2(o,null,[Z]),z||A8,A8,J.namespaceURI,!X&&Q?[Q]:z?null:J.firstChild?M8.call(J.childNodes):null,W,!X&&Q?Q:z?z.__e:J.firstChild,X,G),RJ(W,Z,G)}M8=N8.slice,k0={__e:function(Z,J,Q,X){for(var z,W,G;J=J.__;)if((z=J.__c)&&!z.__)try{if((W=z.constructor)&&W.getDerivedStateFromError!=null&&(z.setState(W.getDerivedStateFromError(Z)),G=z.__d),z.componentDidCatch!=null&&(z.componentDidCatch(Z,X||{}),G=z.__d),G)return z.__E=z}catch(q){Z=q}throw Z}},wJ=0,C2=function(Z){return Z!=null&&Z.constructor===void 0},O8.prototype.setState=function(Z,J){var Q;Q=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=y9({},this.state),typeof Z=="function"&&(Z=Z(y9({},Q),this.props)),Z&&y9(Q,Z),Z!=null&&this.__v&&(J&&this._sb.push(J),OJ(this))},O8.prototype.forceUpdate=function(Z){this.__v&&(this.__e=!0,Z&&this.__h.push(Z),OJ(this))},O8.prototype.render=o,S9=[],MJ=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,CJ=function(Z,J){return Z.__v.__b-J.__v.__b},w8.__r=0,B6=Math.random().toString(8),P8="__d"+B6,VZ="__a"+B6,yJ=/(PointerCapture)$|Capture$/i,w6=0,O6=NJ(!1),A6=NJ(!0),y2=0;var KZ,D0,_6,SJ,fZ=0,xJ=[],E0=k0,VJ=E0.__b,fJ=E0.__r,gJ=E0.diffed,bJ=E0.__c,jJ=E0.unmount,hJ=E0.__;function _8(Z,J){E0.__h&&E0.__h(D0,Z,fZ||J),fZ=0;var Q=D0.__H||(D0.__H={__:[],__h:[]});return Z>=Q.__.length&&Q.__.push({}),Q.__[Z]}function k(Z){return fZ=1,V2(uJ,Z)}function V2(Z,J,Q){var X=_8(KZ++,2);if(X.t=Z,!X.__c&&(X.__=[Q?Q(J):uJ(void 0,J),function(q){var H=X.__N?X.__N[0]:X.__[0],Y=X.t(H,q);H!==Y&&(X.__N=[Y,X.__[1]],X.__c.setState({}))}],X.__c=D0,!D0.__f)){var z=function(q,H,Y){if(!X.__c.__H)return!0;var F=X.__c.__H.__.filter(function(w){return w.__c});if(F.every(function(w){return!w.__N}))return!W||W.call(this,q,H,Y);var K=X.__c.props!==q;return F.some(function(w){if(w.__N){var P=w.__[0];w.__=w.__N,w.__N=void 0,P!==w.__[0]&&(K=!0)}}),W&&W.call(this,q,H,Y)||K};D0.__f=!0;var{shouldComponentUpdate:W,componentWillUpdate:G}=D0;D0.componentWillUpdate=function(q,H,Y){if(this.__e){var F=W;W=void 0,z(q,H,Y),W=F}G&&G.call(this,q,H,Y)},D0.shouldComponentUpdate=z}return X.__N||X.__}function l(Z,J){var Q=_8(KZ++,3);!E0.__s&&T6(Q.__H,J)&&(Q.__=Z,Q.u=J,D0.__H.__h.push(Q))}function mJ(Z,J){var Q=_8(KZ++,4);!E0.__s&&T6(Q.__H,J)&&(Q.__=Z,Q.u=J,D0.__h.push(Q))}function W0(Z){return fZ=5,_9(function(){return{current:Z}},[])}function _9(Z,J){var Q=_8(KZ++,7);return T6(Q.__H,J)&&(Q.__=Z(),Q.__H=J,Q.__h=Z),Q.__}function n9(Z,J){return fZ=8,_9(function(){return Z},J)}function f2(){for(var Z;Z=xJ.shift();){var J=Z.__H;if(Z.__P&&J)try{J.__h.some(y8),J.__h.some(v6),J.__h=[]}catch(Q){J.__h=[],E0.__e(Q,Z.__v)}}}E0.__b=function(Z){D0=null,VJ&&VJ(Z)},E0.__=function(Z,J){Z&&J.__k&&J.__k.__m&&(Z.__m=J.__k.__m),hJ&&hJ(Z,J)},E0.__r=function(Z){fJ&&fJ(Z),KZ=0;var J=(D0=Z.__c).__H;J&&(_6===D0?(J.__h=[],D0.__h=[],J.__.some(function(Q){Q.__N&&(Q.__=Q.__N),Q.u=Q.__N=void 0})):(J.__h.some(y8),J.__h.some(v6),J.__h=[],KZ=0)),_6=D0},E0.diffed=function(Z){gJ&&gJ(Z);var J=Z.__c;J&&J.__H&&(J.__H.__h.length&&(xJ.push(J)!==1&&SJ===E0.requestAnimationFrame||((SJ=E0.requestAnimationFrame)||g2)(f2)),J.__H.__.some(function(Q){Q.u&&(Q.__H=Q.u),Q.u=void 0})),_6=D0=null},E0.__c=function(Z,J){J.some(function(Q){try{Q.__h.some(y8),Q.__h=Q.__h.filter(function(X){return!X.__||v6(X)})}catch(X){J.some(function(z){z.__h&&(z.__h=[])}),J=[],E0.__e(X,Q.__v)}}),bJ&&bJ(Z,J)},E0.unmount=function(Z){jJ&&jJ(Z);var J,Q=Z.__c;Q&&Q.__H&&(Q.__H.__.some(function(X){try{y8(X)}catch(z){J=z}}),Q.__H=void 0,J&&E0.__e(J,Q.__v))};var DJ=typeof requestAnimationFrame=="function";function g2(Z){var J,Q=function(){clearTimeout(X),DJ&&cancelAnimationFrame(J),setTimeout(Z)},X=setTimeout(Q,35);DJ&&(J=requestAnimationFrame(Q))}function y8(Z){var J=D0,Q=Z.__c;typeof Q=="function"&&(Z.__c=void 0,Q()),D0=J}function v6(Z){var J=D0;Z.__c=Z.__(),D0=J}function T6(Z,J){return!Z||Z.length!==J.length||J.some(function(Q,X){return Q!==Z[X]})}function uJ(Z,J){return typeof J=="function"?J(Z):J}class l9 extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="BusError"}}class EJ{ch=null;worker=null;started=!1;leader=!1;nextLocal=0;localPending=new Map;remotePending=new Map;listeners=new Set;start(){if(this.started)return;this.started=!0,this.ch=new BroadcastChannel("mh-replica-bus"),this.ch.onmessage=(J)=>this.onChannel(J.data);let Z=navigator.locks;if(Z)Z.request("mh-replica-leader",()=>{return this.becomeLeader(),new Promise(()=>{})}).catch(()=>{});else this.becomeLeader()}onEvent(Z){return this.listeners.add(Z),()=>this.listeners.delete(Z)}call(Z,...J){if(!this.started)this.start();if(this.leader)return this.workerCall(Z,J);return this.remoteCall(Z,J)}becomeLeader(){if(this.leader)return;this.leader=!0,this.spawnWorker();for(let[Z,J]of[...this.remotePending])this.remotePending.delete(Z),clearTimeout(J.timer),this.workerCall(J.op,J.args).then(J.resolve,J.reject)}spawnWorker(){if(this.worker)return;this.worker=new Worker("/db-worker.js",{type:"module"}),this.worker.onmessage=(Z)=>{let J=Z.data;if("id"in J){let Q=this.localPending.get(J.id);if(!Q)return;if(this.localPending.delete(J.id),J.ok)Q.resolve(J.result);else Q.reject(new l9(J.error.message,J.error.code));return}this.emit(J),this.ch?.postMessage({kind:"event",event:J})},this.worker.onerror=()=>{let Z={event:"status",status:{state:"error",paired:!1,node:null,error:"worker crashed"}};this.emit(Z),this.ch?.postMessage({kind:"event",event:Z})}}workerCall(Z,J){if(!this.worker)this.spawnWorker();let Q=++this.nextLocal;return new Promise((X,z)=>{this.localPending.set(Q,{resolve:X,reject:z}),this.worker.postMessage({id:Q,op:Z,args:J})})}remoteCall(Z,J){let Q=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;return new Promise((X,z)=>{let W=setTimeout(()=>{if(this.remotePending.delete(Q),this.leader){this.workerCall(Z,J).then(X,z);return}z(new l9("replica leader unavailable","network"))},1e4);this.remotePending.set(Q,{resolve:X,reject:z,timer:W,op:Z,args:J}),this.ch?.postMessage({kind:"req",id:Q,op:Z,args:J})})}onChannel(Z){if(Z.kind==="req"){if(!this.leader)return;this.workerCall(Z.op,Z.args).then((J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!0,result:J}),(J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!1,error:{message:J.message,code:J.code}}));return}if(Z.kind==="res"){let J=this.remotePending.get(Z.id);if(!J)return;if(this.remotePending.delete(Z.id),clearTimeout(J.timer),Z.ok)J.resolve(Z.result);else J.reject(new l9(Z.error?.message??"replica error",Z.error?.code));return}if(Z.kind==="event"&&!this.leader)this.emit(Z.event)}emit(Z){for(let J of this.listeners)J(Z)}stopWorker(){this.worker?.terminate(),this.worker=null,this.localPending.forEach((Z)=>Z.reject(new l9("replica stopped",void 0))),this.localPending.clear()}}function v8(){let Z=globalThis;return Z.__mhReplicaBus??=new EJ}function b2(Z,J){if(Z===null)return"unknown";if(Z.status>=500)return"unknown";if(Z.ok)return J?.ok===!0?"server":"none";return"none"}async function pJ(){let Z=null,J=null;try{Z=await fetch("/health",{cache:"no-store"}),J=Z.ok?await Z.json().catch(()=>null):null}catch{Z=null}return b2(Z,J)}var t9="mh-synced",bZ="mh_replica",gZ="mh_replica_hydrated",iJ="mh_origin_mode";class T9 extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="ReplicaError"}}var R9=!1,v9={state:"booting",paired:!1,node:null},T8=new Set;function jZ(){return v9}function F9(Z){return T8.add(Z),()=>T8.delete(Z)}function R6(Z){try{return localStorage.getItem(Z)==="1"}catch{return!1}}function r9(Z,J){try{J?localStorage.setItem(Z,"1"):localStorage.removeItem(Z)}catch{}}function H9(){return R6(bZ)}function e0(){return H9()&&R6(gZ)&&R9&&v9.state!=="error"}var FZ=(()=>{try{let Z=localStorage.getItem(iJ);return Z==="server"||Z==="none"?Z:null}catch{return null}})();function U9(){return FZ==="none"}function V9(){let Z=U9();return{surface:typeof window<"u"&&window.metahubDesktop?"desktop":"web",dataHome:Z?"local":"server",hold:Z||H9()?"replica":"window"}}async function k6(){if(FZ)return FZ;let Z=await pJ();if(Z==="unknown")return"server";FZ=Z;try{localStorage.setItem(iJ,FZ)}catch{}return FZ}function dJ(Z){if(Z.event==="status"){if(v9=Z.status,v9.lastSync?.ok&&!R6(gZ))r9(gZ,!0),navigator.storage?.persist?.().catch(()=>{});for(let J of T8)J(v9);return}if(Z.event==="synced"){if(document.dispatchEvent(new CustomEvent(t9,{detail:Z})),Z.datasets.some((J)=>J==="databases"||J==="documents"))document.dispatchEvent(new CustomEvent(L9))}}function hZ(){if(R9||typeof Worker>"u")return;R9=!0;let Z=v8();Z.onEvent(dJ),Z.start(),Z.call("status").then((J)=>dJ({event:"status",status:J})).catch(()=>{}),j2(),window.addEventListener("online",o9),document.addEventListener("visibilitychange",o9)}function f0(Z,...J){if(!R9)return Promise.reject(new T9("replica not running",void 0));return v8().call(Z,...J).catch((Q)=>{throw Q instanceof l9?new T9(Q.message,Q.code):Q})}function o9(){if(R9)f0("sync").catch(()=>{})}function aJ(){if(!R9)return Promise.reject(new T9("replica not running",void 0));return f0("sync")}function I6(Z=30000){if(v9.state==="ready")return Promise.resolve();return new Promise((J,Q)=>{let X=setTimeout(()=>{z(),Q(new T9("本地副本启动超时",void 0))},Z),z=F9((W)=>{if(W.state==="ready")clearTimeout(X),z(),J();else if(W.state==="error")clearTimeout(X),z(),Q(new T9(W.error??"本地副本启动失败",void 0))})})}async function nJ(){if(hZ(),await I6(),!v9.paired){let Z=await DZ("/api/pair/new",{method:"POST"});if(!Z.ok)throw new T9(`无法获取配对码: ${Z.status}`,void 0);let{code:J}=await Z.json();await f0("pair",J)}r9(bZ,!0),R8(),o9()}async function lJ(Z,J){hZ(),await I6();let Q=await f0("addStorageReplica",Z,J);return r9(bZ,!0),R8(),o9(),Q}async function rJ(){r9(bZ,!1),r9(gZ,!1);try{if(R9)await f0("unpair")}catch{}await S6()}async function oJ(){r9(bZ,!1),r9(gZ,!1);try{if(R9)await f0("unpair").catch(()=>{}),await f0("reset")}finally{v8().stopWorker(),S6(),R9=!1,v9={state:"booting",paired:!1,node:null};for(let Z of T8)Z(v9)}}function tJ(){if(H9())hZ(),I6().then(()=>o9()).catch(()=>{})}function j2(){let Z=globalThis;if(Z.__mhSwBridge||!("serviceWorker"in navigator))return;Z.__mhSwBridge=!0,navigator.serviceWorker.addEventListener("message",(J)=>{let Q=J.data,X=J.ports?.[0];if(!Q||Q.kind!=="mh-rpc"||!X||!Q.op)return;if(!e0()){X.postMessage({ok:!1,error:{message:"replica unavailable",code:"unavailable"}});return}f0(Q.op,...Q.args??[]).then((z)=>X.postMessage({ok:!0,result:z}),(z)=>X.postMessage({ok:!1,error:{message:z.message,code:z.code}}))})}var cJ=!1;async function S6(){try{if("serviceWorker"in navigator){let Z=await navigator.serviceWorker.getRegistrations();await Promise.all(Z.map((J)=>J.unregister().catch(()=>!1)))}}catch{}try{if("caches"in globalThis){for(let Z of await caches.keys())if(Z.startsWith("mh-shell-")||Z==="mh-api-v1"||Z==="mh-blob-v1")await caches.delete(Z)}}catch{}}function R8(){if(typeof navigator>"u"||!("serviceWorker"in navigator))return;if(typeof window>"u"||!window.isSecureContext)return;if(V9().surface==="desktop"||V9().hold!=="replica"){S6();return}if(navigator.serviceWorker.register("/sw.js").catch((Q)=>{console.warn("[webui] service worker registration failed —",Q)}),cJ)return;cJ=!0;let Z=navigator.serviceWorker.controller!=null,J=!1;navigator.serviceWorker.addEventListener("controllerchange",()=>{if(!Z){Z=!0;return}if(J)return;J=!0,location.reload()})}var h2={invalid_input:400,not_found:404,ambiguous:400,stale:409,conflict:409,auth:401,network:502};function D2(Z){return/^(create|update|delete|move|duplicate|revert)(Database|Document)/.test(Z)}async function M0(Z,...J){try{let Q=await f0(Z,...J);if(D2(Z))document.dispatchEvent(new CustomEvent(L9));return Q}catch(Q){if(Q instanceof T9)throw new f9(Q.message,Q.code,Q.code?h2[Q.code]??400:0);throw Q}}var V6={listDatabases:()=>M0("listDatabases"),createDatabase:(Z)=>M0("createDatabase",Z),updateDatabase:(Z,J)=>M0("updateDatabase",Z,J),duplicateDatabase:(Z,J)=>M0("duplicateDatabase",Z,J),deleteDatabase:(Z)=>M0("deleteDatabase",Z),databaseActivity:(Z,J)=>M0("listDatabaseActivity",Z,J),listProperties:(Z)=>M0("listProperties",Z),createProperty:(Z)=>{let{db:J,...Q}=Z;return M0("addProperty",J,Q)},updateProperty:(Z,J)=>M0("updateProperty",Z,J),setColumnWidth:(Z,J)=>M0("setPropertyWidth",Z,J),deleteProperty:(Z)=>M0("removeProperty",Z),listRecords:(Z,J={})=>M0("listRecords",Z,J),createRecord:(Z,J)=>M0("createRecord",Z,J),getRecord:(Z)=>M0("getRecord",Z),updateRecord:(Z,J)=>M0("updateRecord",Z,J),moveRecord:(Z,J,Q)=>M0("moveRecord",Z,J,Q),deleteRecord:(Z)=>M0("deleteRecord",Z),recordHistory:(Z)=>M0("listRecordRevisions",Z),recordAt:(Z,J)=>M0("recordAtVersion",Z,J),revertRecord:(Z,J)=>M0("revertRecord",Z,J),listDocuments:(Z)=>M0("listDocuments",Z?{database_id:Z}:void 0),listDocumentsByParent:(Z)=>M0("listDocuments",{parent_id:Z}),createDocument:(Z)=>M0("createDocument",Z),getDocument:(Z)=>M0("getDocument",Z),updateDocument:(Z,J)=>{let{if_match:Q,...X}=J;return M0("updateDocument",Z,X,Q)},moveDocument:(Z,J,Q)=>M0("moveDocument",Z,J,Q),duplicateDocument:(Z,J)=>M0("duplicateDocument",Z,J),deleteDocument:(Z)=>M0("deleteDocument",Z),documentHistory:(Z)=>M0("listDocumentRevisions",Z),documentAt:(Z,J)=>M0("documentAtVersion",Z,J),revertDocument:(Z,J)=>M0("revertDocument",Z,J.to,J.if_match),nodes:()=>M0("nodes"),search:(Z,J)=>M0("search",Z,J)},f6={listSites:()=>M0("listSites"),listSiteFiles:(Z)=>M0("listSiteFiles",Z),createSite:(Z)=>M0("createSite",Z),updateSite:(Z,J)=>M0("updateSite",Z,J),deleteSite:(Z)=>M0("deleteSite",Z),deleteSiteFile:(Z,J)=>M0("deleteSiteFile",Z,J),uploadSiteFile:async(Z,J,Q)=>M0("putSiteFile",Z,J,await Q.arrayBuffer(),Q.type||void 0)};var sJ=209715200,x2=Math.floor(167772160);function m2(Z){if(Z instanceof ArrayBuffer)return Z;let J=new Uint8Array(Z.byteLength);return J.set(Z),J.buffer}async function u2(Z){let J=await crypto.subtle.digest("SHA-256",m2(Z));return[...new Uint8Array(J)].map((Q)=>Q.toString(16).padStart(2,"0")).join("")}async function eJ(Z){return(await u2(Z)).slice(0,32)}var E2={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif",svg:"image/svg+xml",pdf:"application/pdf"};function Z5(Z){let J=Z.toLowerCase().split(";")[0].trim();for(let[Q,X]of Object.entries(E2))if(X===J&&Q!=="jpeg")return Q;return""}var k8=null;function p2(){if(k8)return k8;return k8=new Promise((Z,J)=>{let Q=indexedDB.open("mh-blobs",1);Q.onupgradeneeded=()=>{let X=Q.result;if(!X.objectStoreNames.contains("spool"))X.createObjectStore("spool",{keyPath:"hash"});if(!X.objectStoreNames.contains("meta"))X.createObjectStore("meta",{keyPath:"hash"})},Q.onsuccess=()=>Z(Q.result),Q.onerror=()=>J(Q.error)}),k8}function Z9(Z,J,Q){return p2().then((X)=>new Promise((z,W)=>{let G=Q(X.transaction(Z,J).objectStore(Z));G.onsuccess=()=>z(G.result),G.onerror=()=>W(G.error)}))}async function J5(Z,J,Q){let X={hash:Z,bytes:J,content_type:Q,created:Date.now(),durable:0};await Z9("spool","readwrite",(z)=>z.put(X))}async function xZ(){return(await Z9("spool","readonly",(J)=>J.getAll())??[]).filter((J)=>!J.durable)}async function $5(Z){await Z9("spool","readwrite",(J)=>J.delete(Z))}var mZ=(Z)=>`/blob/${Z}`;async function d2(Z,J,Q){let X=await Z9("meta","readonly",(W)=>W.get(Z)),z={hash:Z,size:J,accessed:Date.now(),pinned:X?.pinned??0,content_type:Q??X?.content_type};await Z9("meta","readwrite",(W)=>W.put(z))}async function Q5(Z,J){let Q=await Z9("meta","readonly",(X)=>X.get(Z));if(!Q)return!1;return Q.pinned=J?1:0,await Z9("meta","readwrite",(X)=>X.put(Q)),!0}async function X5(Z,J,Q){await(await caches.open("mh-blob-v1")).put(mZ(Z),new Response(J,{headers:{"content-type":Q,"cache-control":"public, max-age=31536000, immutable"}})),await d2(Z,J.byteLength,Q),await c2()}async function c2(){let Z=await Z9("meta","readonly",(z)=>z.getAll())??[],J=Z.reduce((z,W)=>z+W.size,0);if(J<=209715200)return;let Q=await caches.open("mh-blob-v1"),X=Z.filter((z)=>!z.pinned).sort((z,W)=>z.accessed-W.accessed);for(let z of X){if(J<=x2)break;await Q.delete(mZ(z.hash)),await Z9("meta","readwrite",(W)=>W.delete(z.hash)),J-=z.size}}async function z5(){let Z=await Z9("meta","readonly",(X)=>X.getAll())??[],J=0,Q=0;for(let X of Z)if(J+=X.size,X.pinned)Q+=X.size;return{count:Z.length,totalBytes:J,pinnedBytes:Q}}async function W5(){let Z=await Z9("meta","readonly",(z)=>z.getAll())??[],J=await caches.open("mh-blob-v1"),Q=0,X=0;for(let z of Z){if(z.pinned)continue;await J.delete(mZ(z.hash)),await Z9("meta","readwrite",(W)=>W.delete(z.hash)),Q++,X+=z.size}return{cleared:Q,freedBytes:X}}async function G5(){let Z=await Z9("meta","readonly",(z)=>z.getAll())??[],J=await caches.open("mh-blob-v1"),Q=[],X=new Set;for(let z of Z){let W=z.content_type??null;if(!W)W=(await J.match(mZ(z.hash)))?.headers.get("content-type")??null;Q.push({hash:z.hash,size:z.size,content_type:W,accessed:z.accessed,pinned:!!z.pinned,pending:!1}),X.add(z.hash)}for(let z of await xZ()){if(X.has(z.hash))continue;Q.push({hash:z.hash,size:z.bytes.byteLength,content_type:z.content_type||null,accessed:z.created,pinned:!1,pending:!0})}return Q}async function g6(Z){let J=await caches.open("mh-blob-v1"),Q=0,X=0;for(let z of new Set(Z)){let W=await Z9("meta","readonly",(G)=>G.get(z));if(!W||W.pinned)continue;await J.delete(mZ(z)),await Z9("meta","readwrite",(G)=>G.delete(z)),Q++,X+=W.size}return{cleared:Q,freedBytes:X}}async function q5(Z){let{cleared:J,freedBytes:Q}=await g6(Z);return{removed:J,freedBytes:Q}}class f9 extends Error{code;status;constructor(Z,J,Q){super(Z);this.code=J;this.status=Q;this.name="ApiError"}}var L9="mh-nav-invalidate";function i2(Z,J){return Z!=="GET"&&(J.startsWith("/api/database")||J.startsWith("/api/document"))}var j6="mh_token",U5="/auth/token";function h6(){try{return localStorage.getItem(j6)}catch{return null}}function L5(Z){try{localStorage.setItem(j6,Z)}catch{}document.cookie=`${j6}=${encodeURIComponent(Z)}; path=/; SameSite=Strict; Max-Age=31536000`}function P5(){return h6()}async function DZ(Z,J={}){let Q=h6(),X=new Headers(J.headers);if(Q&&!X.has("authorization"))X.set("authorization",`Bearer ${Q}`);let z=await fetch(Z,{...J,headers:X});if(z.status!==401||!Q)return z;let W=await fetch(U5,{headers:{authorization:`Bearer ${Q}`}}).catch(()=>null);if(!W?.ok)return z;let G=await W.json().catch(()=>null);if(!G?.token)return z;return L5(G.token),X.set("authorization",`Bearer ${G.token}`),fetch(Z,{...J,headers:X})}function H5(Z,J,Q,X,z){return new Promise((W,G)=>{let q=new XMLHttpRequest;if(q.open("POST",Z),Q)q.setRequestHeader("authorization",`Bearer ${Q}`);if(q.setRequestHeader("content-type",X),z)q.upload.onprogress=(H)=>{if(H.lengthComputable)z(H.loaded,H.total)};q.onload=()=>{let H=null;try{H=JSON.parse(q.responseText)}catch{}W({status:q.status,data:H})},q.onerror=()=>G(Error("network error")),q.ontimeout=()=>G(Error("timeout")),q.send(J)})}async function a2(Z,J,Q,X){let z=h6(),W=await H5(Z,J,z,Q,X);if(W.status===401&&z){let G=await fetch(U5,{headers:{authorization:`Bearer ${z}`}}).catch(()=>null),q=G?.ok?await G.json().catch(()=>null):null;if(q?.token)L5(q.token),W=await H5(Z,J,q.token,Q,X)}if(W.status>=200&&W.status<300&&W.data&&!W.data.error)return W.data;throw Error(W.data&&W.data.error||`${W.status}`)}async function H0(Z,J,Q){let X=await DZ(J,{method:Z,headers:Q!==void 0?{"content-type":"application/json"}:void 0,body:Q!==void 0?JSON.stringify(Q):void 0}),z=await X.json().catch(()=>null);if(!X.ok||z&&z.error)throw new f9(z&&z.error||`${X.status} ${X.statusText}`,z?.code,X.status);if(i2(Z,J))document.dispatchEvent(new CustomEvent(L9));return z}var A0=(Z)=>encodeURIComponent(Z),b6=!1;async function B5(){if(b6||U9())return;b6=!0;try{for(let Z of await xZ()){let J;try{J=await DZ("/api/blob",{method:"POST",headers:{"content-type":Z.content_type},body:Z.bytes})}catch{break}if(!J.ok)break;await X5(Z.hash,Z.bytes,Z.content_type).catch(()=>{}),await $5(Z.hash).catch(()=>{})}}finally{b6=!1}}if(typeof window<"u")window.addEventListener("online",()=>void B5());var O5={image:26214400,video:104857600,audio:104857600,file:104857600};function Y5(Z){let J=Z.split(/[?#]/,1)[0]??Z,Q=J.slice(J.lastIndexOf("/")+1),X=Q.lastIndexOf(".");return X>=0?Q.slice(X+1).toLowerCase():""}function K5(Z,J,Q,X){let z=Y5(J)||Y5(X)||Z5(Q);return`/blob/${Z}${z?"."+z:""}`}async function F5(Z,J){let Q=Z.type||"application/octet-stream",X=Z.name||"";try{let z=await a2("/api/blob",Z,Q,J);B5();let W=z;return{...W,url:K5(W.hash,W.url,Q,X)}}catch(z){if(!(e0()||U9()))throw z;let W=await Z.arrayBuffer(),G=await eJ(W);return await J5(G,W,Q),J?.(W.byteLength,W.byteLength),{hash:G,size:W.byteLength,content_type:Q,url:K5(G,"",Q,X)}}}var n2={listDatabases:()=>H0("GET","/api/databases"),createDatabase:(Z)=>H0("POST","/api/databases",Z),updateDatabase:(Z,J)=>H0("PATCH",`/api/database?id=${A0(Z)}`,J),duplicateDatabase:(Z,J)=>H0("POST",`/api/database/duplicate?id=${A0(Z)}`,J??{}),deleteDatabase:(Z)=>H0("DELETE",`/api/database?id=${A0(Z)}`),listProperties:(Z)=>H0("GET",`/api/properties?db=${A0(Z)}`),createProperty:(Z)=>H0("POST","/api/properties",Z),updateProperty:(Z,J)=>H0("PATCH",`/api/property?id=${A0(Z)}`,J),setColumnWidth:(Z,J)=>H0("PATCH",`/api/property/width?id=${A0(Z)}`,{width:J}),deleteProperty:(Z)=>H0("DELETE",`/api/property?id=${A0(Z)}`),listRecords:(Z,J={})=>{let Q=new URLSearchParams({db:Z});if(J.sort)Q.set("sort",J.sort);if(J.limit!=null)Q.set("limit",String(J.limit));return H0("GET",`/api/records?${Q}`)},createRecord:(Z,J)=>H0("POST",`/api/records?db=${A0(Z)}`,J),getRecord:(Z)=>H0("GET",`/api/record?id=${A0(Z)}`),updateRecord:(Z,J)=>H0("PATCH",`/api/record?id=${A0(Z)}`,J),moveRecord:(Z,J,Q)=>H0("PATCH",`/api/record/order?id=${A0(Z)}`,{target:J,where:Q}),deleteRecord:(Z)=>H0("DELETE",`/api/record?id=${A0(Z)}`),listDocuments:(Z)=>H0("GET",Z?`/api/documents?db=${A0(Z)}`:"/api/documents"),listDocumentsByParent:(Z)=>H0("GET",`/api/documents?parent=${A0(Z)}`),createDocument:(Z)=>H0("POST","/api/documents",Z),getDocument:(Z)=>H0("GET",`/api/document?id=${A0(Z)}`),updateDocument:(Z,J)=>H0("PATCH",`/api/document?id=${A0(Z)}`,J),moveDocument:(Z,J,Q)=>H0("PATCH",`/api/document/move?id=${A0(Z)}`,{target:J,where:Q}),duplicateDocument:(Z,J)=>H0("POST",`/api/document/duplicate?id=${A0(Z)}`,J??{}),deleteDocument:(Z)=>H0("DELETE",`/api/document?id=${A0(Z)}`),documentHistory:(Z)=>H0("GET",`/api/document/history?id=${A0(Z)}`),documentAt:(Z,J)=>H0("GET",`/api/document/at?id=${A0(Z)}&version=${A0(J)}`),revertDocument:(Z,J)=>H0("POST",`/api/document/revert?id=${A0(Z)}`,J),recordHistory:(Z)=>H0("GET",`/api/record/history?id=${A0(Z)}`),databaseActivity:(Z,J)=>H0("GET",`/api/database/activity?db=${A0(Z)}${J!=null?`&limit=${J}`:""}`),recordAt:(Z,J)=>H0("GET",`/api/record/at?id=${A0(Z)}&version=${A0(J)}`),revertRecord:(Z,J)=>H0("POST",`/api/record/revert?id=${A0(Z)}`,{to:J}),nodes:()=>H0("GET","/api/nodes"),search:(Z,J)=>{let Q=new URLSearchParams({q:Z});if(J!=null)Q.set("limit",String(J));return H0("GET",`/api/search?${Q}`)},listPeers:()=>H0("GET","/api/peers"),newPairingCode:()=>H0("POST","/api/pair/new"),addPeerByPairing:(Z)=>H0("POST","/api/peers/pair",Z),updatePeer:(Z,J)=>H0("PATCH",`/api/peer?url=${A0(Z)}`,J),removePeer:(Z)=>H0("DELETE",`/api/peer?url=${A0(Z)}`),syncPeer:(Z)=>H0("POST",`/api/peer/sync?url=${A0(Z)}`),listServerS3Peers:()=>H0("GET","/api/peers/s3"),addServerS3Peer:(Z)=>H0("POST","/api/peer/s3",Z),serverS3Config:(Z)=>H0("GET",`/api/peer/s3/config?url=${A0(Z)}`),listGrants:()=>H0("GET","/api/grants"),revokeGrant:(Z)=>H0("DELETE",`/api/grant?token=${A0(Z)}`),listSites:()=>H0("GET","/api/sites"),listSiteFiles:(Z)=>H0("GET",`/api/site/files?site=${A0(Z)}`),createSite:(Z)=>H0("POST","/api/sites",Z),updateSite:(Z,J)=>H0("PATCH",`/api/site?id=${A0(Z)}`,J),deleteSite:(Z)=>H0("DELETE",`/api/site?id=${A0(Z)}`),deleteSiteFile:(Z,J)=>H0("DELETE",`/api/site/file?site=${A0(Z)}&path=${A0(J)}`),uploadSiteFile:async(Z,J,Q)=>{let X=await DZ(`/api/site/file?site=${A0(Z)}&path=${A0(J)}`,{method:"POST",headers:{"content-type":Q.type||"application/octet-stream"},body:Q}),z=await X.json().catch(()=>null);if(!X.ok||z&&z.error)throw Error(z&&z.error||`${X.status} ${X.statusText}`);return z},uploadDocBlob:F5,uploadDocImage:F5,listShareServers:()=>H0("GET","/api/share/servers"),listShareBuckets:()=>H0("GET","/api/share/buckets"),listShares:(Z={})=>H0("GET",`/api/shares${Z.target?`?target=${A0(Z.target)}`:""}`),createShare:(Z)=>H0("POST","/api/share",Z),revokeShare:(Z)=>H0("DELETE",`/api/share?slug=${A0(Z)}`),renewShare:(Z)=>H0("POST",`/api/share/renew?slug=${A0(Z)}`),blobCache:()=>H0("GET","/api/blob-cache"),verifyBlobCache:()=>H0("POST","/api/blob-cache/verify"),clearBlobCache:()=>H0("POST","/api/blob-cache/clear"),setBlobPolicy:(Z)=>H0("POST","/api/blob-policy",Z),pinBlob:(Z,J)=>H0("POST","/api/blob-cache/pin",{hash:Z,pinned:J}),blobs:()=>H0("GET","/api/blobs"),clearBlobs:(Z)=>H0("POST","/api/blobs/clear",{hashes:Z}),deleteBlobs:(Z)=>H0("POST","/api/blobs/delete",{hashes:Z}),version:()=>H0("GET","/api/version")},a=new Proxy(n2,{get(Z,J,Q){if(e0()){if(J in V6)return V6[J];if(U9()&&J in f6)return f6[J]}return Reflect.get(Z,J,Q)}}),UZ={text:{ic:"text",t:"文本"},number:{ic:"hash",t:"数字"},select:{ic:"select",t:"单选"},multi_select:{ic:"multi",t:"多选"},checkbox:{ic:"checkbox",t:"复选框"},date:{ic:"calendar",t:"日期"},url:{ic:"link",t:"链接"},relation:{ic:"relation",t:"关联"}};class LZ extends Error{code;constructor(Z,J){super(J);this.code=Z;this.name="MhError"}}function l2(Z){let J=new TextEncoder().encode(Z),Q="";for(let X=0;X<J.length;X++)Q+=String.fromCharCode(J[X]);return btoa(Q).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function r2(Z){let J=Z.replace(/-/g,"+").replace(/_/g,"/"),Q=atob(J),X=new Uint8Array(Q.length);for(let z=0;z<Q.length;z++)X[z]=Q.charCodeAt(z);return new TextDecoder().decode(X)}function D6(Z){let J={endpoint:Z.endpoint,region:Z.region,bucket:Z.bucket,prefix:Z.prefix,accessKeyId:Z.accessKeyId,secretAccessKey:Z.secretAccessKey,encrypt:Z.encrypt,virtualHostedStyle:Z.virtualHostedStyle};return l2(JSON.stringify(J))}function A5(Z){let J=(Z??"").trim();if(!J)throw new LZ("invalid_input","empty enroll code");let Q=/(?:[#&?]|^)enroll=([^&\s]+)/.exec(J),X=Q?Q[1]:J,z;try{z=JSON.parse(r2(X))}catch{throw new LZ("invalid_input","invalid enroll code (could not decode)")}if(!z||typeof z!=="object")throw new LZ("invalid_input","invalid enroll code (not an object)");let W=z,G=(q)=>{let H=W[q];if(typeof H!=="string"||H.trim()==="")throw new LZ("invalid_input",`enroll code missing '${q}'`);return H};return{endpoint:G("endpoint"),bucket:G("bucket"),accessKeyId:G("accessKeyId"),secretAccessKey:G("secretAccessKey"),region:typeof W.region==="string"?W.region:void 0,prefix:typeof W.prefix==="string"?W.prefix:void 0,encrypt:typeof W.encrypt==="boolean"?W.encrypt:void 0,virtualHostedStyle:typeof W.virtualHostedStyle==="boolean"?W.virtualHostedStyle:void 0}}var o2=0;function $(Z,J,Q,X,z,W){J||(J={});var G,q,H=J;if("ref"in H)for(q in H={},J)q=="ref"?G=J[q]:H[q]=J[q];var Y={type:Z,props:H,key:Q,ref:G,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--o2,__i:-1,__u:0,__source:z,__self:W};if(typeof Z=="function"&&(G=Z.defaultProps))for(q in G)H[q]===void 0&&(H[q]=G[q]);return k0.vnode&&k0.vnode(Y),Y}var x6="M21 7.5 12 2 3 7.5v9L12 22l9-5.5z",m6="m3 7.5 9 5.5 9-5.5M12 22v-9";var t2={cube:'<path d="M21 7.5 12 2 3 7.5v9L12 22l9-5.5z"/><path d="m3 7.5 9 5.5 9-5.5M12 22v-9"/>',chevron:'<path d="m9 6 6 6-6 6"/>',chevronDown:'<path d="m6 9 6 6 6-6"/>',arrowLeft:'<path d="M15 18l-6-6 6-6"/>',plus:'<path d="M12 5v14M5 12h14"/>',pin:'<path d="M9 4h6l-1 6 3 3v2H7v-2l3-3z"/><path d="M12 16v5"/>',search:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2"/>',dots:'<circle cx="5" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.4" fill="currentColor" stroke="none"/>',grip:'<circle cx="9" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="18" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="18" r="1.3" fill="currentColor" stroke="none"/>',trash:'<path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13M10 11v6M14 11v6"/>',filter:'<path d="M3 5h18l-7 8v6l-4-2v-4z"/>',sort:'<path d="M7 3v14M7 17l-3-3M7 17l3-3M17 21V7M17 7l-3 3M17 7l3 3"/>',group:'<rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/>',check:'<path d="M5 12.5 10 17l9-10"/>',x:'<path d="M6 6 18 18M18 6 6 18"/>',file:'<path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5"/>',database:'<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 1.66 3.58 3 8 3s8-1.34 8-3V5"/><path d="M4 12c0 1.66 3.58 3 8 3s8-1.34 8-3"/>',table:'<rect x="3" y="4" width="18" height="16" rx="1.5"/><path d="M3 10h18M3 15h18M9 4v16M15 4v16"/>',alignLeft:'<path d="M4 6h16M4 12h10M4 18h13"/>',alignCenter:'<path d="M4 6h16M7 12h10M5 18h14"/>',alignRight:'<path d="M4 6h16M10 12h10M7 18h13"/>',share:'<path d="M4 12v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-7"/><path d="M12 3v13M8 7l4-4 4 4"/>',download:'<path d="M12 3v12M8 11l4 4 4-4"/><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"/>',copy:'<rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/>',link:'<path d="M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1"/><path d="M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1"/>',calendar:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>',timeline:'<rect x="3" y="5" width="9" height="3" rx="1.5"/><rect x="8" y="10.5" width="11" height="3" rx="1.5"/><rect x="5" y="16" width="7" height="3" rx="1.5"/>',hash:'<path d="M4 9h16M4 15h16M10 3 8 21M16 3l-2 18"/>',text:'<path d="M4 6h16M4 6v-.5M8 6v13M4 19h8"/><path d="M14 11h6M17 11v8M14 19h6"/>',list:'<path d="M9 6h11M9 12h11M9 18h11M4.5 6h.01M4.5 12h.01M4.5 18h.01"/>',numList:'<path d="M10 6h10M10 12h10M10 18h10M4 5h1v4M4 9h2M4 13.5c0-.8 2-.8 2 0 0 .8-2 1.2-2 2.5h2"/>',checkbox:'<rect x="4" y="4" width="16" height="16" rx="3"/><path d="m9 12 2 2 4-4"/>',select:'<circle cx="12" cy="12" r="8"/><circle cx="12" cy="12" r="3" fill="currentColor" stroke="none"/>',multi:'<path d="M8 6h12M8 12h12M8 18h12M3 6h.01M3 12h.01M3 18h.01"/>',relation:'<path d="M7 7h4v4H7zM13 13h4v4h-4z"/><path d="M11 9h2a2 2 0 0 1 2 2v2"/>',quote:'<path d="M7 7c-2 1-3 3-3 6h3v4H4v-4M17 7c-2 1-3 3-3 6h3v4h-3v-4"/>',code:'<path d="m8 8-4 4 4 4M16 8l4 4-4 4M13 6l-2 12"/>',minus:'<path d="M5 12h14"/>',heading:'<path d="M6 4v16M18 4v16M6 12h12"/>',panelLeft:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M9 4v16"/>',cornerUpRight:'<path d="M5 19V11a4 4 0 0 1 4-4h10M15 3l4 4-4 4"/>',openPeek:'<rect x="3" y="5" width="18" height="14" rx="2.5"/><rect x="6" y="8" width="4" height="8" rx="1" fill="currentColor" stroke="none"/>',settings:'<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>',eyeOff:'<path d="M4 4l16 16M9.5 9.5a3 3 0 0 0 4 4M6.5 6.7C4.5 8 3 10 2 12c2 4 6 7 10 7 1.6 0 3-.4 4.4-1.1M9.5 5.2A9.7 9.7 0 0 1 12 5c4 0 8 3 10 7-.6 1.3-1.5 2.5-2.5 3.5"/>',bold:'<path d="M6 4h7a4 4 0 0 1 0 8H6zM6 12h8a4 4 0 0 1 0 8H6z"/>',italic:'<path d="M19 4h-9M14 20H5M15 4 9 20"/>',underline:'<path d="M6 4v6a6 6 0 0 0 12 0V4M4 21h16"/>',strike:'<path d="M4 12h16M7 7a4 4 0 0 1 7-1M9 17a4 4 0 0 0 7-2"/>',sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/>',moon:'<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/>',history:'<path d="M3 12a9 9 0 1 0 2.6-6.4L3 8"/><path d="M3 3v5h5"/><path d="M12 7v5l3.5 2"/>',monitor:'<rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8M12 17v4"/>',globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.4 2.5 3.7 5.7 3.7 9S14.4 18.5 12 21c-2.4-2.5-3.7-5.7-3.7-9S9.6 5.5 12 3z"/>',eye:'<path d="M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/>',lock:'<rect x="4.5" y="11" width="15" height="9" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/>',upload:'<path d="M12 16V4M8 8l4-4 4 4M5 20h14"/>',spinner:'<path d="M21 12a9 9 0 1 1-6.219-8.56"/>',cloudUp:'<path d="M12 13v8"/><path d="m8 17 4-4 4 4"/><path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"/>',cloudCheck:'<path d="M17 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 0 1 2.86 8"/><path d="m9 14 2 2 4-4"/>',cloudOff:'<path d="m2 2 20 20"/><path d="M5.78 5.78A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.3-.2"/><path d="M21.4 14.4A4.5 4.5 0 0 0 17.5 8h-1.8A7 7 0 0 0 9.4 4.6"/>',externalLink:'<path d="M14 4h6v6M20 4l-9 9M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5"/>',image:'<rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.6"/><path d="m21 15-4.5-4.5L6 21"/>',video:'<rect x="2.5" y="6" width="13" height="12" rx="2"/><path d="m16 10 5.2-3a.5.5 0 0 1 .8.4v9.2a.5.5 0 0 1-.8.4L16 14z"/>',audio:'<path d="M9 18V5l11-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/>',htmlTag:'<path d="m9 8-4 4 4 4M15 8l4 4-4 4"/>',zoomIn:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2M11 8.5v5M8.5 11h5"/>',zoomOut:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2M8.5 11h5"/>',square:'<rect x="4" y="4" width="16" height="16" rx="1.5"/>',arrowUpRight:'<path d="M7 17 17 7M8 7h9v9"/>',type:'<path d="M4 7V5h16v2M9 19h6M12 5v14"/>',maximize:'<path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/>',pencil:'<path d="M12 20h9"/><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z"/>',undo:'<path d="M9 14 4 9l5-5"/><path d="M4 9h11a4 4 0 0 1 0 8h-2"/>'};function f({name:Z,cls:J="ico"}){return $("svg",{class:J,viewBox:"0 0 24 24",dangerouslySetInnerHTML:{__html:t2[Z]??""}},void 0,!1,void 0,this)}var z9={text:"text",number:"hash",select:"select",multi_select:"multi",checkbox:"checkbox",date:"calendar",url:"link",relation:"relation"};function P9(Z,J){let Q=J.threshold??4,X=Q===0,z=(G)=>{if(G.pointerId!==Z.pointerId)return;if(!X){if(Math.hypot(G.clientX-Z.clientX,G.clientY-Z.clientY)<Q)return;X=!0,J.onStart?.(G)}G.preventDefault(),J.onMove(G)},W=(G)=>{if(G.pointerId!==Z.pointerId)return;removeEventListener("pointermove",z),removeEventListener("pointerup",W),removeEventListener("pointercancel",W),J.onEnd?.(G,X)};addEventListener("pointermove",z,{passive:!1}),addEventListener("pointerup",W),addEventListener("pointercancel",W)}function A9(){document.querySelectorAll(".drop-into,.drop-before,.drop-after").forEach((Z)=>Z.classList.remove("drop-into","drop-before","drop-after"))}function I8(Z,J,Q){A9();let X=Z.getBoundingClientRect(),z=Q==="y"?J.clientY<X.top+X.height/2?"before":"after":J.clientX<X.left+X.width/2?"before":"after";return Z.classList.add("drop-"+z),z}function u6(Z,J,Q){let X=document.createElement("div");return X.className="drag-ghost "+Z,X.style.width=`${J.width}px`,X.style.height=`${J.height}px`,X.textContent=Q,document.body.appendChild(X),X}function uZ(Z,J,Q){if(!Z)return;Z.style.transform=`translate3d(${Math.round(J)}px, ${Math.round(Q)}px, 0)`}function N5(Z,J){let Q=J.source.getBoundingClientRect(),X=Z.clientX-Q.left,z=Z.clientY-Q.top,W=null,G=null,q="before";P9(Z,{onStart:()=>{W=u6(J.ghostCls,Q,J.ghostText),J.source.classList.add("drag-source"),document.body.classList.add("table-dragging"),J.onActivate?.()},onMove:(H)=>{uZ(W,H.clientX-X,H.clientY-z);let Y=document.elementFromPoint(H.clientX,H.clientY)?.closest?.(J.targetSelector);if(!Y||J.isSelf(Y)){A9(),G=null;return}G=Y,q=I8(Y,H,J.axis)},onEnd:(H,Y)=>{if(W?.remove(),J.source.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),A9(),Y&&G)J.onDrop(G,q);J.onFinish?.(Y)}})}function S8(Z,J){let Q=Z.currentTarget,X=J.startWidth,z=0;Q.classList.add("dragging"),document.body.classList.add("col-resizing");let W=Q.closest("table");if(W)Q.style.setProperty("--rz-guide-h",W.offsetHeight+"px");P9(Z,{threshold:0,onMove:(G)=>{if(X=Math.max(J.min,J.startWidth+G.clientX-Z.clientX),!z)z=requestAnimationFrame(()=>{if(z=0,J.col)J.col.style.width=X+"px"})},onEnd:()=>{if(z)cancelAnimationFrame(z);if(J.col)J.col.style.width=X+"px";Q.classList.remove("dragging"),Q.style.removeProperty("--rz-guide-h"),document.body.classList.remove("col-resizing"),J.onDone(X)}})}var V8="(max-width: 768px) and (pointer: coarse)";function f8(Z){let J=Z,Q=new Set;return{get:()=>J,set:(X)=>{J=X,Q.forEach((z)=>z(X))},use(){let[X,z]=k(J);return l(()=>{return Q.add(z),()=>void Q.delete(z)},[]),X}}}var EZ=f8([]),s2=0;function s(Z){let J=++s2;EZ.set([...EZ.get(),{id:J,msg:Z}]),setTimeout(()=>EZ.set(EZ.get().filter((Q)=>Q.id!==J)),2600)}var s9=f8([]),e2=0;function E6(Z,J){s9.set(s9.get().map((Q)=>Q.id===Z?{...Q,...J}:Q))}function p6(Z){s9.set(s9.get().filter((J)=>J.id!==Z))}function M5(Z){let J=++e2;return s9.set([...s9.get(),{id:J,name:Z,loaded:0,total:0}]),J}function C5(Z,J,Q){E6(Z,{loaded:J,total:Q})}function d6(Z,J,Q){if(J)E6(Z,{loaded:1,total:1}),setTimeout(()=>p6(Z),900);else E6(Z,{failed:!0,retry:Q})}function ZQ(){let Z=s9.use();if(!Z.length)return null;return $("div",{class:"upload-tray",children:Z.map((J)=>{let Q=J.failed?null:J.total>0?Math.min(100,Math.round(J.loaded/J.total*100)):null;return $("div",{class:"upload-item"+(J.failed?" failed":""),children:[$("span",{class:"up-name",title:J.name,children:J.name},void 0,!1,void 0,this),J.failed?$("span",{class:"up-fail",children:[$("span",{children:"失败"},void 0,!1,void 0,this),J.retry&&$("button",{class:"up-retry",onClick:()=>{J.retry?.(),p6(J.id)},children:"重试"},void 0,!1,void 0,this),$("button",{class:"up-x",title:"移除",onClick:()=>p6(J.id),children:$(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):$("span",{class:"up-prog",children:[$("span",{class:"ver-bar"+(Q==null?" indet":""),children:$("span",{class:"ver-bar-fill",style:Q!=null?{width:`${Q}%`}:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"up-pct",children:Q!=null?`${Q}%`:"…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},J.id,!0,void 0,this)})},void 0,!1,void 0,this)}var c6=f8(null);function y0(Z,J,Q={}){c6.set({render:J,anchor:Z,minWidth:Q.minWidth})}function w5(){c6.set(null)}function JQ(Z){if(Z instanceof MouseEvent)return{x:Z.clientX,y:Z.clientY};if("rect"in Z)return{x:Z.rect.left,y:Z.rect.bottom,bottom:Z.rect.bottom};return{x:Z.x,y:Z.y}}function $Q(){let Z=c6.use(),J=W0(null),[Q,X]=k(null),z=matchMedia(V8).matches;if(mJ(()=>{if(!Z||!J.current||z)return X(null);let{x:W,y:G}=JQ(Z.anchor),q=J.current.getBoundingClientRect();X({left:Math.min(W,innerWidth-q.width-10),top:Math.min(G+4,innerHeight-q.height-10)})},[Z,z]),!Z)return null;return $("div",{class:"menu-layer",onMouseDown:(W)=>W.target===W.currentTarget&&w5(),children:$("div",{ref:J,class:"pop"+(z?" sheet":""),style:z?void 0:{left:Q?.left??-9999,top:Q?.top??-9999,minWidth:Z.minWidth},onMouseDown:(W)=>W.stopPropagation(),children:Z.render(w5)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function j0({children:Z}){return $("div",{class:"lbl",children:Z},void 0,!1,void 0,this)}function S0(){return $("div",{class:"sep"},void 0,!1,void 0,this)}function z0({icon:Z,label:J,sublabel:Q,danger:X,checked:z,onClick:W}){return $("button",{class:"item"+(X?" danger":""),onClick:W,children:[Z&&$("span",{class:"lico plain",children:$(f,{name:Z,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"meta",children:[$("span",{class:"t",children:J},void 0,!1,void 0,this),Q&&$("span",{class:"d",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z&&$("span",{class:"chk",children:$(f,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function e9(Z,J=240){let[Q,X]=k(!1);return l(()=>{let W=requestAnimationFrame(()=>X(!0));return()=>cancelAnimationFrame(W)},[]),{open:Q,close:()=>{X(!1),setTimeout(Z,J)}}}var i6=f8(null);function W9(Z){i6.set(Z)}function c0(){i6.set(null)}function q9({title:Z,sub:J,children:Q,footer:X,width:z}){return $("div",{class:"modal",style:{width:z},onMouseDown:(W)=>W.stopPropagation(),children:[$("div",{class:"modal-head",children:[$("h3",{children:Z},void 0,!1,void 0,this),J&&$("p",{children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"modal-body",children:Q},void 0,!1,void 0,this),X&&$("div",{class:"modal-foot",children:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function QQ(){let Z=i6.use();return l(()=>{if(!Z)return;let J=(Q)=>Q.key==="Escape"&&c0();return addEventListener("keydown",J),()=>removeEventListener("keydown",J)},[Z]),$("div",{class:"modal-scrim"+(Z?" open":""),onMouseDown:(J)=>J.target===J.currentTarget&&c0(),children:Z},void 0,!1,void 0,this)}function R0(Z){return new Promise((J)=>{let Q=(X)=>{c0(),J(X)};W9($(q9,{title:Z.title,footer:$(o,{children:[$("button",{class:"btn btn-secondary",onClick:()=>Q(!1),children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn "+(Z.danger?"btn-danger":"btn-primary"),onClick:()=>Q(!0),children:Z.confirmLabel??"确定"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:$("div",{class:"muted",children:Z.message},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}function Y9(Z){return new Promise((J)=>{let Q=Z.value??"",X=(z)=>{c0(),J(z)};W9($(q9,{title:Z.title,footer:$(o,{children:[$("button",{class:"btn btn-secondary",onClick:()=>X(null),children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:()=>X(Q.trim()||(Z.value??"")),children:Z.confirmLabel??"保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[Z.label&&$("div",{class:"field-label",children:Z.label},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,value:Z.value??"",placeholder:Z.placeholder,onInput:(z)=>Q=z.target.value,onKeyDown:(z)=>{if(z.key==="Enter")X(Q.trim()||(Z.value??""))}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))})}function g8(){let Z=EZ.use();return $(o,{children:[$($Q,{},void 0,!1,void 0,this),$(QQ,{},void 0,!1,void 0,this),$("div",{class:"toasts",children:Z.map((J)=>$("div",{class:"toast",children:[$(f,{name:"check",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:J.msg},void 0,!1,void 0,this)]},J.id,!0,void 0,this))},void 0,!1,void 0,this),$(ZQ,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var a6=null,XQ=/mac/i.test(navigator.userAgentData?.platform??navigator.platform);function _5(Z){let{view:J,navigate:Q}=Z,[X,z]=k(new Set),[W,G]=k(""),[q,H]=k(!1),Y=W0(null),[F,K]=k(null),w=GQ(Z.onResize);l(()=>{a.version().then((S)=>K(S.version)).catch(()=>K(null))},[]),l(()=>{if(q)Y.current?.focus()},[q]);let P=(S)=>{let O=new Set(X);O.has(S)?O.delete(S):O.add(S),z(O)},A=(S)=>S().catch((O)=>Z.onError(String(O.message))),_=(S)=>{if("id"in J&&J.id===S)Q({kind:"empty"},{replace:!0})},V=(S)=>A(async()=>{let O=await a.createDocument({title:"",...S?{parent_id:S}:{}});if(S)X.add(S);Q({kind:"doc",id:O.id})}),D=(S,O,N)=>A(async()=>{if(S===O.id)return;if(WQ(Z.docs,S,O.id))return;if(await a.moveDocument(S,O.id,N),N==="into")X.add(O.id)}),v=(S,O)=>{S.stopPropagation(),y0(S,(N)=>$(o,{children:[$(z0,{icon:"hash",label:"复制 ID",onClick:()=>{N(),navigator.clipboard?.writeText(O.id).then(()=>s("已复制 ID"))}},void 0,!1,void 0,this),$(z0,{icon:"settings",label:"重命名…",onClick:async()=>{N();let L=await Y9({title:"重命名数据库",value:O.name});if(L&&L!==O.name)A(async()=>{await a.updateDatabase(O.id,{name:L})})}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(N(),await R0({title:"删除数据库?",message:`「${O.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))A(async()=>{await a.deleteDatabase(O.id),_(O.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},R=(S,O)=>{S.stopPropagation();let N=Z.docs.filter((L)=>L.parent_id===O.id).length;y0(S,(L)=>$(o,{children:[$(z0,{icon:"plus",label:"新建子页",onClick:()=>{L(),V(O.id)}},void 0,!1,void 0,this),$(z0,{icon:"hash",label:"复制 ID",onClick:()=>{L(),navigator.clipboard?.writeText(O.id).then(()=>s("已复制 ID"))}},void 0,!1,void 0,this),$(z0,{icon:"settings",label:"重命名…",onClick:async()=>{L();let B=await Y9({title:"重命名文档",value:O.title});if(B)A(async()=>{await a.updateDocument(O.id,{title:B})})}},void 0,!1,void 0,this),O.parent_id&&$(z0,{icon:"cornerUpRight",label:"移到顶层",onClick:()=>{L(),A(async()=>{await a.updateDocument(O.id,{parent_id:null})})}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除",danger:!0,onClick:async()=>{if(L(),await R0({title:"删除文档?",message:N?`「${O.title||"无标题"}」及其 ${N} 个子页将被删除。`:`「${O.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))A(async()=>{await T5(Z.docs,O.id),_(O.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},x=(S,O=0)=>{return Z.docs.filter((L)=>L.parent_id===S).map((L)=>{let B=Z.docs.filter((y)=>y.parent_id===L.id),M=B.length>0&&X.has(L.id);return $("div",{class:O?"navchildren":"",children:[$("div",{class:"navitem"+(J.kind==="doc"&&J.id===L.id?" active":""),draggable:!0,onClick:()=>Q({kind:"doc",id:L.id}),onDragStart:(y)=>{y.stopPropagation(),a6=L.id,y.currentTarget.classList.add("dragging")},onDragEnd:(y)=>{y.currentTarget.classList.remove("dragging"),n6()},onDragOver:(y)=>{y.preventDefault(),y.stopPropagation(),zQ(y.currentTarget,y)},onDrop:(y)=>{y.preventDefault(),y.stopPropagation();let E=v5(y.currentTarget,y),c=a6;if(a6=null,n6(),c)D(c,L,E)},children:[$("span",{class:"tw"+(M?" open":""),onClick:(y)=>{if(y.stopPropagation(),B.length)P(L.id)},children:B.length>0&&$(f,{name:"chevron",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"emoji",children:$(f,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"label",children:L.title||"无标题"},void 0,!1,void 0,this),$("span",{class:"acts",children:[$("button",{title:"新建子页",onClick:(y)=>{y.stopPropagation(),V(L.id)},children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{title:"更多",onClick:(y)=>R(y,L),children:$(f,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),M&&x(L.id,O+1)]},L.id,!0,void 0,this)})};return $("div",{class:"sidebar"+(Z.collapsed?" collapsed":""),style:{width:Z.width,marginLeft:Z.collapsed?-Z.width:void 0},children:[$("div",{class:"sb-head",children:[$("div",{class:"brand",children:[$("span",{class:"mark",children:$(f,{name:"cube"},void 0,!1,void 0,this)},void 0,!1,void 0,this),"Metahub"]},void 0,!0,void 0,this),$("button",{class:"sb-act"+(q?" active":""),title:"搜索","aria-label":"搜索",onClick:()=>H((S)=>!S),children:$(f,{name:"search",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>Q({kind:"sites"}),children:$(f,{name:"globe",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"sb-act"+(J.kind==="shares"?" active":""),title:"分享","aria-label":"分享",onClick:()=>Q({kind:"shares"}),children:$(f,{name:"link",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>Q({kind:"settings"}),children:[$(f,{name:"settings",cls:"ico"},void 0,!1,void 0,this),Z.updatePending&&$("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"收起侧栏",onClick:Z.onCollapse,children:$(f,{name:"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-search"+(q?" open":""),onClick:(S)=>S.currentTarget.querySelector("input")?.focus(),children:[$(f,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),$("input",{ref:Y,placeholder:"搜索…",value:W,onInput:(S)=>G(S.target.value),onKeyDown:(S)=>{if(S.key==="Enter"&&W.trim())Q({kind:"search",q:W.trim()},{replace:J.kind==="search"})}},void 0,!1,void 0,this),$("kbd",{children:XQ?"⌘K":"Ctrl K"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-scroll",children:[$("div",{class:"sb-section",children:[$("div",{class:"sb-section-head",children:[$("span",{children:"数据库"},void 0,!1,void 0,this),$("button",{class:"add",title:"新建数据库",onClick:()=>qQ((S)=>Q({kind:"db",id:S}),Z.onError),children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.databases.map((S)=>$("div",{class:"navitem"+(J.kind==="db"&&J.id===S.id?" active":""),onClick:()=>Q({kind:"db",id:S.id}),children:[$("span",{class:"emoji",children:S.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),$("span",{class:"label",children:S.name},void 0,!1,void 0,this),$("span",{class:"acts",children:$("button",{title:"更多",onClick:(O)=>v(O,S),children:$(f,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},S.id,!0,void 0,this)),Z.databases.length===0&&$("div",{class:"navitem muted",children:"暂无"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-section",children:[$("div",{class:"sb-section-head",children:[$("span",{children:"文档"},void 0,!1,void 0,this),$("button",{class:"add",title:"新建文档",onClick:()=>V(null),children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),x(null),Z.docs.length===0&&$("div",{class:"navitem muted",children:"暂无"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-footer",children:[$("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>Q({kind:"settings"}),children:[$(f,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this),Z.updatePending&&$("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>Q({kind:"sites"}),children:$(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"sb-act"+(J.kind==="shares"?" active":""),title:"分享","aria-label":"分享",onClick:()=>Q({kind:"shares"}),children:$(f,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),F&&$("span",{class:"sbf-ver",title:`Metahub Core v${F}`,children:["v",F]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"sb-resizer",onMouseDown:w},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var n6=A9;function v5(Z,J){let Q=Z.getBoundingClientRect(),X=J.clientY-Q.top;return X<Q.height*0.28?"before":X>Q.height*0.72?"after":"into"}function zQ(Z,J){n6(),Z.classList.add("drop-"+v5(Z,J))}function WQ(Z,J,Q){let X=Z.find((z)=>z.id===Q);while(X){if(X.parent_id===J)return!0;X=Z.find((z)=>z.id===X.parent_id)}return!1}async function T5(Z,J){for(let Q of Z.filter((X)=>X.parent_id===J))await T5(Z,Q.id);await a.deleteDocument(J)}function GQ(Z){return(J)=>{J.preventDefault();let Q=J.currentTarget;Q.classList.add("dragging"),document.body.classList.add("col-resizing");let X=(W)=>Z(Math.max(210,Math.min(460,W.clientX))),z=()=>{Q.classList.remove("dragging"),document.body.classList.remove("col-resizing"),removeEventListener("mousemove",X),removeEventListener("mouseup",z)};addEventListener("mousemove",X),addEventListener("mouseup",z)}}var y5={blank:[{name:"名称",type:"text"}],tasks:[{name:"名称",type:"text"},{name:"状态",type:"select",config:{options:["待办","进行中","已完成"]}},{name:"优先级",type:"select",config:{options:["高","中","低"]}},{name:"截止",type:"date"}],crm:[{name:"姓名",type:"text"},{name:"公司",type:"text"},{name:"分类",type:"select",config:{options:["客户","合作","潜在"]}},{name:"邮箱",type:"url"}]};function qQ(Z,J){W9($(HQ,{onOpenDb:Z,onError:J},void 0,!1,void 0,this))}function HQ(Z){let J=["\uD83D\uDDC2️","\uD83C\uDFAF","\uD83E\uDD1D","\uD83D\uDCE6","\uD83D\uDCDA","\uD83D\uDCA1","\uD83E\uDDE9","\uD83D\uDCCA","\uD83D\uDDD3️","✅"],Q=[["blank","空白","仅一个「名称」列"],["tasks","任务","状态·优先级·截止"],["crm","联系人","公司·分类·邮箱"]],[X,z]=k(""),[W,G]=k(J[0]),[q,H]=k("blank"),Y=W0(!1),F=async()=>{if(Y.current)return;Y.current=!0;try{let K=await a.createDatabase({name:X.trim()||"未命名数据库",icon:W});for(let w of y5[q]??y5.blank)await a.createProperty({db:K.id,name:w.name,type:w.type,config:w.config});c0(),Z.onOpenDb(K.id),s(`已创建数据库「${K.name}」`)}catch(K){Z.onError(String(K.message))}finally{Y.current=!1}};return $(q9,{title:"新建数据库",sub:"创建一个带属性列的结构化数据表。",footer:$(o,{children:[$("button",{class:"btn btn-secondary",onClick:c0,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:F,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"field-label",children:"名称"},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,placeholder:"例如:项目、客户、库存…",value:X,onInput:(K)=>z(K.target.value),onKeyDown:(K)=>K.key==="Enter"&&F()},void 0,!1,void 0,this),$("div",{class:"field-label",children:"图标"},void 0,!1,void 0,this),$("div",{class:"icon-pick",children:J.map((K)=>$("button",{class:K===W?"sel":"",onClick:()=>G(K),children:K},K,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"field-label",children:"模板"},void 0,!1,void 0,this),$("div",{class:"tmpl",children:Q.map(([K,w,P])=>$("button",{class:K===q?"sel":"",onClick:()=>H(K),children:[$("div",{class:"tt",children:w},void 0,!1,void 0,this),$("div",{class:"td",children:P},void 0,!1,void 0,this)]},K,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function l6(Z,J,Q){let X=[{id:"server",kind:"server",label:"当前服务器",subtitle:Q,icon:"globe",isDefault:!0,routeOp:{via:"http"},deleteSemantics:"purge"}];for(let z of Z)X.push({id:`server:${z.url}`,kind:"server",label:z.label,subtitle:z.url,icon:"globe",isDefault:!1,routeOp:{via:"http"},deleteSemantics:"purge"});for(let z of J)X.push({id:`bucket:${z.url}`,kind:"bucket",label:"对象存储",subtitle:z.label,icon:"database",isDefault:!1,routeOp:{via:"bucket",url:z.url},deleteSemantics:"evict"});return X}function r6(Z,J){if(Z.routeOp.via==="bucket")return Z.routeOp.url;if(Z.id.startsWith("server:"))return Z.id.slice(7);return J}var PZ="mh-shares-changed";function b8(){document.dispatchEvent(new Event(PZ))}function BZ(){let[Z,J]=k(()=>new Set);return l(()=>{let Q=!0,X=()=>a.listShares().then((z)=>Q&&J(new Set(z.map((W)=>W.target_id)))).catch(()=>{return});return X(),document.addEventListener(PZ,X),()=>{Q=!1,document.removeEventListener(PZ,X)}},[]),Z}function o6(Z,J,Q){return{copyShare:async(G)=>{if(G.url){j8(G.url),J("链接已复制");return}try{let q=await a.renewShare(G.slug);j8(q.url),J("已重新生成并复制链接"),b8(),Z()}catch(q){Q(q.message)}},revoke:async(G)=>{if(!confirm(`撤销这个分享?(${G.source})`))return;try{await a.revokeShare(G.slug),J("已撤销"),b8(),Z()}catch(q){Q(q.message)}},renew:async(G)=>{try{let q=await a.renewShare(G.slug);j8(q.url),J("已续期 7 天,新链接已复制"),b8(),Z()}catch(q){Q(q.message)}}}}function N9(Z){UQ();let J=document.createElement("div");document.body.appendChild(J),a9($(KQ,{target:Z,onClose:()=>{a9(null,J),J.remove()}},void 0,!1,void 0,this),J)}var R5=[{label:"永不过期",ms:null},{label:"1 小时",ms:3600000},{label:"24 小时",ms:86400000},{label:"7 天",ms:604800000},{label:"30 天",ms:2592000000}];function YQ(){let[Z,J]=k(()=>l6([],[],location.origin));return l(()=>{let Q=!0,X=()=>Promise.all([a.listShareServers().catch(()=>[]),a.listShareBuckets().catch(()=>[])]).then(([W,G])=>{if(Q)J(l6(W,G,location.origin))});X();let z=F9(()=>X());return()=>{Q=!1,z()}},[]),Z}function j8(Z){navigator.clipboard?.writeText(Z).catch(()=>{return})}function KQ({target:Z,onClose:J}){let Q=YQ(),[X,z]=k("server"),[W,G]=k("view"),[q,H]=k(""),[Y,F]=k(0),[K,w]=k(!1),[P,A]=k(""),[_,V]=k([]),[D,v]=k("");l(()=>{R()},[]);function R(){a.listShares({target:Z.ref}).then(V).catch(()=>{return})}let x=Q.find((M)=>M.id===X)??Q[0],S=x.kind==="bucket",O=Z.kind==="site";l(()=>{if(S&&W==="edit")G("view")},[S]);let N=S?R5.filter((M)=>M.ms==null||M.ms<=604800000):R5,L=Math.min(Y,N.length-1);async function B(){if(S&&O){A("站点不支持对象存储分享,请选服务器。");return}w(!0),A("");try{let M={kind:Z.kind,ref:Z.ref,transport:S?"s3":"server",permission:W,password:q||null,expiresMs:N[L]?.ms??null,server:S?null:r6(x,location.origin),bucketUrl:S?r6(x,location.origin):null},y=await a.createShare(M);j8(y.url),v(`已通过「${y.source}」创建,链接已复制`),H(""),b8(),R()}catch(M){A(M.message||"创建失败")}finally{w(!1)}}return $("div",{class:"mhshare-overlay",onClick:(M)=>M.target===M.currentTarget&&J(),children:$("div",{class:"mhshare-modal",children:[$("div",{class:"mhshare-head",children:[$("h2",{children:["分享",Z.title?`:${Z.title}`:""]},void 0,!0,void 0,this),$("button",{class:"mhshare-x",onClick:J,"aria-label":"关闭",children:"✕"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"mhshare-body",children:[$("div",{class:"mhshare-section",children:"新建分享"},void 0,!1,void 0,this),$("label",{class:"mhshare-field",children:[$("span",{children:"通过"},void 0,!1,void 0,this),$("select",{value:x.id,onChange:(M)=>z(M.currentTarget.value),children:Q.map((M)=>$("option",{value:M.id,disabled:M.kind==="bucket"&&O,children:[M.label," — ",M.subtitle,M.kind==="bucket"&&O?"(站点不支持)":""]},void 0,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("label",{class:"mhshare-field",children:[$("span",{children:"权限"},void 0,!1,void 0,this),$("select",{value:W,disabled:S,onChange:(M)=>G(M.currentTarget.value),children:[$("option",{value:"view",children:"只读"},void 0,!1,void 0,this),$("option",{value:"edit",children:["可编辑",S?"(仅服务器)":""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("label",{class:"mhshare-field",children:[$("span",{children:"口令"},void 0,!1,void 0,this),$("input",{type:"password",placeholder:"可选",value:q,onInput:(M)=>H(M.currentTarget.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("label",{class:"mhshare-field",children:[$("span",{children:"有效期"},void 0,!1,void 0,this),$("select",{value:String(L),onChange:(M)=>F(Number(M.currentTarget.value)),children:N.map((M,y)=>$("option",{value:String(y),children:M.label},void 0,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P&&$("p",{class:"mhshare-err",children:P},void 0,!1,void 0,this),D&&$("p",{class:"mhshare-ok",children:D},void 0,!1,void 0,this),$("div",{class:"mhshare-foot",children:[$("button",{onClick:J,children:"关闭"},void 0,!1,void 0,this),$("button",{class:"mhshare-primary",disabled:K,onClick:B,children:K?"创建中…":"创建并复制链接"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"mhshare-section",children:["已有分享(",_.length,")"]},void 0,!0,void 0,this),$(FQ,{shares:_,reload:R,onFlash:v,onError:A,empty:"还没有分享这个对象。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function FQ({shares:Z,reload:J,onFlash:Q,onError:X,empty:z}){let{copyShare:W,revoke:G,renew:q}=o6(J,Q,X);if(Z.length===0)return $("p",{class:"mhshare-note",children:z},void 0,!1,void 0,this);return $("ul",{class:"mhshare-list",children:Z.map((H)=>$("li",{children:[$("div",{class:"mhshare-li-main",children:[$("span",{class:"mhshare-badge",children:H.transport==="s3"?"对象存储":"服务器"},void 0,!1,void 0,this),$("span",{class:"mhshare-src",children:H.source},void 0,!1,void 0,this),$("span",{class:"mhshare-meta",children:[H.permission==="edit"?"可编辑":"只读",H.hasPassword?" · \uD83D\uDD12":"",H.expiresAt?` · 至 ${new Date(H.expiresAt).toLocaleString()}`:" · 永久"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"mhshare-li-actions",children:[$("button",{onClick:()=>W(H),children:"复制"},void 0,!1,void 0,this),H.transport==="s3"&&$("button",{onClick:()=>q(H),children:"续期"},void 0,!1,void 0,this),H.url&&$("a",{href:H.url,target:"_blank",rel:"noreferrer",children:"打开"},void 0,!1,void 0,this),$("button",{class:"mhshare-danger",onClick:()=>G(H),children:"撤销"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},H.slug,!0,void 0,this))},void 0,!1,void 0,this)}var k5=!1;function UQ(){if(k5)return;k5=!0;let Z=`
|
|
1
|
+
var jH=Object.create;var{getPrototypeOf:DH,defineProperty:a3,getOwnPropertyNames:SH}=Object;var bH=Object.prototype.hasOwnProperty;function EH(Z){return this[Z]}var wH,xH,i3=(Z,J,$)=>{var Q=Z!=null&&typeof Z==="object";if(Q){var X=J?wH??=new WeakMap:xH??=new WeakMap,z=X.get(Z);if(z)return z}$=Z!=null?jH(DH(Z)):{};let K=J||!Z||!Z.__esModule?a3($,"default",{value:Z,enumerable:!0}):$;for(let Y of SH(Z))if(!bH.call(K,Y))a3(K,Y,{get:EH.bind(Z,Y),enumerable:!0});if(Q)X.set(Z,K);return K};var S0=(Z,J)=>()=>(J||Z((J={exports:{}}).exports,J),J.exports);var s2=S0((n6,T1)=>{(function(J,$){if(typeof n6==="object"&&typeof T1==="object")T1.exports=$();else if(typeof define==="function"&&define.amd)define([],$);else if(typeof n6==="object")n6.jsQR=$();else J.jsQR=$()})(typeof self<"u"?self:n6,function(){return function(Z){var J={};function $(Q){if(J[Q])return J[Q].exports;var X=J[Q]={i:Q,l:!1,exports:{}};return Z[Q].call(X.exports,X,X.exports,$),X.l=!0,X.exports}return $.m=Z,$.c=J,$.d=function(Q,X,z){if(!$.o(Q,X))Object.defineProperty(Q,X,{configurable:!1,enumerable:!0,get:z})},$.n=function(Q){var X=Q&&Q.__esModule?function(){return Q.default}:function(){return Q};return $.d(X,"a",X),X},$.o=function(Q,X){return Object.prototype.hasOwnProperty.call(Q,X)},$.p="",$($.s=3)}([function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=function(){function X(z,K){this.width=K,this.height=z.length/K,this.data=z}return X.createEmpty=function(z,K){return new X(new Uint8ClampedArray(z*K),z)},X.prototype.get=function(z,K){if(z<0||z>=this.width||K<0||K>=this.height)return!1;return!!this.data[K*this.width+z]},X.prototype.set=function(z,K,Y){this.data[K*this.width+z]=Y?1:0},X.prototype.setRegion=function(z,K,Y,q,W){for(var U=K;U<K+q;U++)for(var H=z;H<z+Y;H++)this.set(H,U,!!W)},X}();J.BitMatrix=Q},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(2);function X(K,Y){return K^Y}J.addOrSubtractGF=X;var z=function(){function K(Y,q,W){this.primitive=Y,this.size=q,this.generatorBase=W,this.expTable=Array(this.size),this.logTable=Array(this.size);var U=1;for(var H=0;H<this.size;H++)if(this.expTable[H]=U,U=U*2,U>=this.size)U=(U^this.primitive)&this.size-1;for(var H=0;H<this.size-1;H++)this.logTable[this.expTable[H]]=H;this.zero=new Q.default(this,Uint8ClampedArray.from([0])),this.one=new Q.default(this,Uint8ClampedArray.from([1]))}return K.prototype.multiply=function(Y,q){if(Y===0||q===0)return 0;return this.expTable[(this.logTable[Y]+this.logTable[q])%(this.size-1)]},K.prototype.inverse=function(Y){if(Y===0)throw Error("Can't invert 0");return this.expTable[this.size-this.logTable[Y]-1]},K.prototype.buildMonomial=function(Y,q){if(Y<0)throw Error("Invalid monomial degree less than 0");if(q===0)return this.zero;var W=new Uint8ClampedArray(Y+1);return W[0]=q,new Q.default(this,W)},K.prototype.log=function(Y){if(Y===0)throw Error("Can't take log(0)");return this.logTable[Y]},K.prototype.exp=function(Y){return this.expTable[Y]},K}();J.default=z},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(1),X=function(){function z(K,Y){if(Y.length===0)throw Error("No coefficients.");this.field=K;var q=Y.length;if(q>1&&Y[0]===0){var W=1;while(W<q&&Y[W]===0)W++;if(W===q)this.coefficients=K.zero.coefficients;else{this.coefficients=new Uint8ClampedArray(q-W);for(var U=0;U<this.coefficients.length;U++)this.coefficients[U]=Y[W+U]}}else this.coefficients=Y}return z.prototype.degree=function(){return this.coefficients.length-1},z.prototype.isZero=function(){return this.coefficients[0]===0},z.prototype.getCoefficient=function(K){return this.coefficients[this.coefficients.length-1-K]},z.prototype.addOrSubtract=function(K){var Y;if(this.isZero())return K;if(K.isZero())return this;var q=this.coefficients,W=K.coefficients;if(q.length>W.length)Y=[W,q],q=Y[0],W=Y[1];var U=new Uint8ClampedArray(W.length),H=W.length-q.length;for(var F=0;F<H;F++)U[F]=W[F];for(var F=H;F<W.length;F++)U[F]=Q.addOrSubtractGF(q[F-H],W[F]);return new z(this.field,U)},z.prototype.multiply=function(K){if(K===0)return this.field.zero;if(K===1)return this;var Y=this.coefficients.length,q=new Uint8ClampedArray(Y);for(var W=0;W<Y;W++)q[W]=this.field.multiply(this.coefficients[W],K);return new z(this.field,q)},z.prototype.multiplyPoly=function(K){if(this.isZero()||K.isZero())return this.field.zero;var Y=this.coefficients,q=Y.length,W=K.coefficients,U=W.length,H=new Uint8ClampedArray(q+U-1);for(var F=0;F<q;F++){var O=Y[F];for(var N=0;N<U;N++)H[F+N]=Q.addOrSubtractGF(H[F+N],this.field.multiply(O,W[N]))}return new z(this.field,H)},z.prototype.multiplyByMonomial=function(K,Y){if(K<0)throw Error("Invalid degree less than 0");if(Y===0)return this.field.zero;var q=this.coefficients.length,W=new Uint8ClampedArray(q+K);for(var U=0;U<q;U++)W[U]=this.field.multiply(this.coefficients[U],Y);return new z(this.field,W)},z.prototype.evaluateAt=function(K){var Y=0;if(K===0)return this.getCoefficient(0);var q=this.coefficients.length;if(K===1)return this.coefficients.forEach(function(U){Y=Q.addOrSubtractGF(Y,U)}),Y;Y=this.coefficients[0];for(var W=1;W<q;W++)Y=Q.addOrSubtractGF(this.field.multiply(K,Y),this.coefficients[W]);return Y},z}();J.default=X},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(4),X=$(5),z=$(11),K=$(12);function Y(U){var H=K.locate(U);if(!H)return null;for(var F=0,O=H;F<O.length;F++){var N=O[F],_=z.extract(U,N),A=X.decode(_.matrix);if(A)return{binaryData:A.bytes,data:A.text,chunks:A.chunks,version:A.version,location:{topRightCorner:_.mappingFunction(N.dimension,0),topLeftCorner:_.mappingFunction(0,0),bottomRightCorner:_.mappingFunction(N.dimension,N.dimension),bottomLeftCorner:_.mappingFunction(0,N.dimension),topRightFinderPattern:N.topRight,topLeftFinderPattern:N.topLeft,bottomLeftFinderPattern:N.bottomLeft,bottomRightAlignmentPattern:N.alignmentPattern}}}return null}var q={inversionAttempts:"attemptBoth"};function W(U,H,F,O){if(O===void 0)O={};var N=q;Object.keys(N||{}).forEach(function(R){N[R]=O[R]||N[R]});var _=N.inversionAttempts==="attemptBoth"||N.inversionAttempts==="invertFirst",A=N.inversionAttempts==="onlyInvert"||N.inversionAttempts==="invertFirst",L=Q.binarize(U,H,F,_),B=L.binarized,M=L.inverted,C=Y(A?M:B);if(!C&&(N.inversionAttempts==="attemptBoth"||N.inversionAttempts==="invertFirst"))C=Y(A?B:M);return C}W.default=W,J.default=W},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(0),X=8,z=24;function K(W,U,H){return W<U?U:W>H?H:W}var Y=function(){function W(U,H){this.width=U,this.data=new Uint8ClampedArray(U*H)}return W.prototype.get=function(U,H){return this.data[H*this.width+U]},W.prototype.set=function(U,H,F){this.data[H*this.width+U]=F},W}();function q(W,U,H,F){if(W.length!==U*H*4)throw Error("Malformed data passed to binarizer.");var O=new Y(U,H);for(var N=0;N<U;N++)for(var _=0;_<H;_++){var A=W[(_*U+N)*4+0],L=W[(_*U+N)*4+1],B=W[(_*U+N)*4+2];O.set(N,_,0.2126*A+0.7152*L+0.0722*B)}var M=Math.ceil(U/X),C=Math.ceil(H/X),R=new Y(M,C);for(var I=0;I<C;I++)for(var P=0;P<M;P++){var V=0,y=1/0,k=0;for(var _=0;_<X;_++)for(var N=0;N<X;N++){var j=O.get(P*X+N,I*X+_);V+=j,y=Math.min(y,j),k=Math.max(k,j)}var w=V/Math.pow(X,2);if(k-y<=z){if(w=y/2,I>0&&P>0){var u=(R.get(P,I-1)+2*R.get(P-1,I)+R.get(P-1,I-1))/4;if(y<u)w=u}}R.set(P,I,w)}var l=Q.BitMatrix.createEmpty(U,H),v=null;if(F)v=Q.BitMatrix.createEmpty(U,H);for(var I=0;I<C;I++)for(var P=0;P<M;P++){var S=K(P,2,M-3),D=K(I,2,C-3),V=0;for(var x=-2;x<=2;x++)for(var T=-2;T<=2;T++)V+=R.get(S+x,D+T);var m=V/25;for(var x=0;x<X;x++)for(var T=0;T<X;T++){var N=P*X+x,_=I*X+T,a=O.get(N,_);if(l.set(N,_,a<=m),F)v.set(N,_,!(a<=m))}}if(F)return{binarized:l,inverted:v};return{binarized:l}}J.binarize=q},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(0),X=$(6),z=$(9),K=$(10);function Y(B,M){var C=B^M,R=0;while(C)R++,C&=C-1;return R}function q(B,M){return M<<1|B}var W=[{bits:21522,formatInfo:{errorCorrectionLevel:1,dataMask:0}},{bits:20773,formatInfo:{errorCorrectionLevel:1,dataMask:1}},{bits:24188,formatInfo:{errorCorrectionLevel:1,dataMask:2}},{bits:23371,formatInfo:{errorCorrectionLevel:1,dataMask:3}},{bits:17913,formatInfo:{errorCorrectionLevel:1,dataMask:4}},{bits:16590,formatInfo:{errorCorrectionLevel:1,dataMask:5}},{bits:20375,formatInfo:{errorCorrectionLevel:1,dataMask:6}},{bits:19104,formatInfo:{errorCorrectionLevel:1,dataMask:7}},{bits:30660,formatInfo:{errorCorrectionLevel:0,dataMask:0}},{bits:29427,formatInfo:{errorCorrectionLevel:0,dataMask:1}},{bits:32170,formatInfo:{errorCorrectionLevel:0,dataMask:2}},{bits:30877,formatInfo:{errorCorrectionLevel:0,dataMask:3}},{bits:26159,formatInfo:{errorCorrectionLevel:0,dataMask:4}},{bits:25368,formatInfo:{errorCorrectionLevel:0,dataMask:5}},{bits:27713,formatInfo:{errorCorrectionLevel:0,dataMask:6}},{bits:26998,formatInfo:{errorCorrectionLevel:0,dataMask:7}},{bits:5769,formatInfo:{errorCorrectionLevel:3,dataMask:0}},{bits:5054,formatInfo:{errorCorrectionLevel:3,dataMask:1}},{bits:7399,formatInfo:{errorCorrectionLevel:3,dataMask:2}},{bits:6608,formatInfo:{errorCorrectionLevel:3,dataMask:3}},{bits:1890,formatInfo:{errorCorrectionLevel:3,dataMask:4}},{bits:597,formatInfo:{errorCorrectionLevel:3,dataMask:5}},{bits:3340,formatInfo:{errorCorrectionLevel:3,dataMask:6}},{bits:2107,formatInfo:{errorCorrectionLevel:3,dataMask:7}},{bits:13663,formatInfo:{errorCorrectionLevel:2,dataMask:0}},{bits:12392,formatInfo:{errorCorrectionLevel:2,dataMask:1}},{bits:16177,formatInfo:{errorCorrectionLevel:2,dataMask:2}},{bits:14854,formatInfo:{errorCorrectionLevel:2,dataMask:3}},{bits:9396,formatInfo:{errorCorrectionLevel:2,dataMask:4}},{bits:8579,formatInfo:{errorCorrectionLevel:2,dataMask:5}},{bits:11994,formatInfo:{errorCorrectionLevel:2,dataMask:6}},{bits:11245,formatInfo:{errorCorrectionLevel:2,dataMask:7}}],U=[function(B){return(B.y+B.x)%2===0},function(B){return B.y%2===0},function(B){return B.x%3===0},function(B){return(B.y+B.x)%3===0},function(B){return(Math.floor(B.y/2)+Math.floor(B.x/3))%2===0},function(B){return B.x*B.y%2+B.x*B.y%3===0},function(B){return(B.y*B.x%2+B.y*B.x%3)%2===0},function(B){return((B.y+B.x)%2+B.y*B.x%3)%2===0}];function H(B){var M=17+4*B.versionNumber,C=Q.BitMatrix.createEmpty(M,M);C.setRegion(0,0,9,9,!0),C.setRegion(M-8,0,8,9,!0),C.setRegion(0,M-8,9,8,!0);for(var R=0,I=B.alignmentPatternCenters;R<I.length;R++){var P=I[R];for(var V=0,y=B.alignmentPatternCenters;V<y.length;V++){var k=y[V];if(!(P===6&&k===6||P===6&&k===M-7||P===M-7&&k===6))C.setRegion(P-2,k-2,5,5,!0)}}if(C.setRegion(6,9,1,M-17,!0),C.setRegion(9,6,M-17,1,!0),B.versionNumber>6)C.setRegion(M-11,0,3,6,!0),C.setRegion(0,M-11,6,3,!0);return C}function F(B,M,C){var R=U[C.dataMask],I=B.height,P=H(M),V=[],y=0,k=0,j=!0;for(var w=I-1;w>0;w-=2){if(w===6)w--;for(var u=0;u<I;u++){var l=j?I-1-u:u;for(var v=0;v<2;v++){var S=w-v;if(!P.get(S,l)){k++;var D=B.get(S,l);if(R({y:l,x:S}))D=!D;if(y=q(D,y),k===8)V.push(y),k=0,y=0}}}j=!j}return V}function O(B){var M=B.height,C=Math.floor((M-17)/4);if(C<=6)return K.VERSIONS[C-1];var R=0;for(var I=5;I>=0;I--)for(var P=M-9;P>=M-11;P--)R=q(B.get(P,I),R);var V=0;for(var P=5;P>=0;P--)for(var I=M-9;I>=M-11;I--)V=q(B.get(P,I),V);var y=1/0,k;for(var j=0,w=K.VERSIONS;j<w.length;j++){var u=w[j];if(u.infoBits===R||u.infoBits===V)return u;var l=Y(R,u.infoBits);if(l<y)k=u,y=l;if(l=Y(V,u.infoBits),l<y)k=u,y=l}if(y<=3)return k}function N(B){var M=0;for(var C=0;C<=8;C++)if(C!==6)M=q(B.get(C,8),M);for(var R=7;R>=0;R--)if(R!==6)M=q(B.get(8,R),M);var I=B.height,P=0;for(var R=I-1;R>=I-7;R--)P=q(B.get(8,R),P);for(var C=I-8;C<I;C++)P=q(B.get(C,8),P);var V=1/0,y=null;for(var k=0,j=W;k<j.length;k++){var w=j[k],u=w.bits,l=w.formatInfo;if(u===M||u===P)return l;var v=Y(M,u);if(v<V)y=l,V=v;if(M!==P){if(v=Y(P,u),v<V)y=l,V=v}}if(V<=3)return y;return null}function _(B,M,C){var R=M.errorCorrectionLevels[C],I=[],P=0;if(R.ecBlocks.forEach(function(D){for(var x=0;x<D.numBlocks;x++)I.push({numDataCodewords:D.dataCodewordsPerBlock,codewords:[]}),P+=D.dataCodewordsPerBlock+R.ecCodewordsPerBlock}),B.length<P)return null;B=B.slice(0,P);var V=R.ecBlocks[0].dataCodewordsPerBlock;for(var y=0;y<V;y++)for(var k=0,j=I;k<j.length;k++){var w=j[k];w.codewords.push(B.shift())}if(R.ecBlocks.length>1){var u=R.ecBlocks[0].numBlocks,l=R.ecBlocks[1].numBlocks;for(var y=0;y<l;y++)I[u+y].codewords.push(B.shift())}while(B.length>0)for(var v=0,S=I;v<S.length;v++){var w=S[v];w.codewords.push(B.shift())}return I}function A(B){var M=O(B);if(!M)return null;var C=N(B);if(!C)return null;var R=F(B,M,C),I=_(R,M,C.errorCorrectionLevel);if(!I)return null;var P=I.reduce(function(v,S){return v+S.numDataCodewords},0),V=new Uint8ClampedArray(P),y=0;for(var k=0,j=I;k<j.length;k++){var w=j[k],u=z.decode(w.codewords,w.codewords.length-w.numDataCodewords);if(!u)return null;for(var l=0;l<w.numDataCodewords;l++)V[y++]=u[l]}try{return X.decode(V,M.versionNumber)}catch(v){return null}}function L(B){if(B==null)return null;var M=A(B);if(M)return M;for(var C=0;C<B.width;C++)for(var R=C+1;R<B.height;R++)if(B.get(C,R)!==B.get(R,C))B.set(C,R,!B.get(C,R)),B.set(R,C,!B.get(R,C));return A(B)}J.decode=L},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(7),X=$(8),z;(function(O){O.Numeric="numeric",O.Alphanumeric="alphanumeric",O.Byte="byte",O.Kanji="kanji",O.ECI="eci"})(z=J.Mode||(J.Mode={}));var K;(function(O){O[O.Terminator=0]="Terminator",O[O.Numeric=1]="Numeric",O[O.Alphanumeric=2]="Alphanumeric",O[O.Byte=4]="Byte",O[O.Kanji=8]="Kanji",O[O.ECI=7]="ECI"})(K||(K={}));function Y(O,N){var _=[],A="",L=[10,12,14][N],B=O.readBits(L);while(B>=3){var M=O.readBits(10);if(M>=1000)throw Error("Invalid numeric value above 999");var C=Math.floor(M/100),R=Math.floor(M/10)%10,I=M%10;_.push(48+C,48+R,48+I),A+=C.toString()+R.toString()+I.toString(),B-=3}if(B===2){var M=O.readBits(7);if(M>=100)throw Error("Invalid numeric value above 99");var C=Math.floor(M/10),R=M%10;_.push(48+C,48+R),A+=C.toString()+R.toString()}else if(B===1){var M=O.readBits(4);if(M>=10)throw Error("Invalid numeric value above 9");_.push(48+M),A+=M.toString()}return{bytes:_,text:A}}var q=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function W(O,N){var _=[],A="",L=[9,11,13][N],B=O.readBits(L);while(B>=2){var M=O.readBits(11),C=Math.floor(M/45),R=M%45;_.push(q[C].charCodeAt(0),q[R].charCodeAt(0)),A+=q[C]+q[R],B-=2}if(B===1){var C=O.readBits(6);_.push(q[C].charCodeAt(0)),A+=q[C]}return{bytes:_,text:A}}function U(O,N){var _=[],A="",L=[8,16,16][N],B=O.readBits(L);for(var M=0;M<B;M++){var C=O.readBits(8);_.push(C)}try{A+=decodeURIComponent(_.map(function(R){return"%"+("0"+R.toString(16)).substr(-2)}).join(""))}catch(R){}return{bytes:_,text:A}}function H(O,N){var _=[],A="",L=[8,10,12][N],B=O.readBits(L);for(var M=0;M<B;M++){var C=O.readBits(13),R=Math.floor(C/192)<<8|C%192;if(R<7936)R+=33088;else R+=49472;_.push(R>>8,R&255),A+=String.fromCharCode(X.shiftJISTable[R])}return{bytes:_,text:A}}function F(O,N){var _,A,L,B,M=new Q.BitStream(O),C=N<=9?0:N<=26?1:2,R={text:"",bytes:[],chunks:[],version:N};while(M.available()>=4){var I=M.readBits(4);if(I===K.Terminator)return R;else if(I===K.ECI)if(M.readBits(1)===0)R.chunks.push({type:z.ECI,assignmentNumber:M.readBits(7)});else if(M.readBits(1)===0)R.chunks.push({type:z.ECI,assignmentNumber:M.readBits(14)});else if(M.readBits(1)===0)R.chunks.push({type:z.ECI,assignmentNumber:M.readBits(21)});else R.chunks.push({type:z.ECI,assignmentNumber:-1});else if(I===K.Numeric){var P=Y(M,C);R.text+=P.text,(_=R.bytes).push.apply(_,P.bytes),R.chunks.push({type:z.Numeric,text:P.text})}else if(I===K.Alphanumeric){var V=W(M,C);R.text+=V.text,(A=R.bytes).push.apply(A,V.bytes),R.chunks.push({type:z.Alphanumeric,text:V.text})}else if(I===K.Byte){var y=U(M,C);R.text+=y.text,(L=R.bytes).push.apply(L,y.bytes),R.chunks.push({type:z.Byte,bytes:y.bytes,text:y.text})}else if(I===K.Kanji){var k=H(M,C);R.text+=k.text,(B=R.bytes).push.apply(B,k.bytes),R.chunks.push({type:z.Kanji,bytes:k.bytes,text:k.text})}}if(M.available()===0||M.readBits(M.available())===0)return R}J.decode=F},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=function(){function X(z){this.byteOffset=0,this.bitOffset=0,this.bytes=z}return X.prototype.readBits=function(z){if(z<1||z>32||z>this.available())throw Error("Cannot read "+z.toString()+" bits");var K=0;if(this.bitOffset>0){var Y=8-this.bitOffset,q=z<Y?z:Y,W=Y-q,U=255>>8-q<<W;if(K=(this.bytes[this.byteOffset]&U)>>W,z-=q,this.bitOffset+=q,this.bitOffset===8)this.bitOffset=0,this.byteOffset++}if(z>0){while(z>=8)K=K<<8|this.bytes[this.byteOffset]&255,this.byteOffset++,z-=8;if(z>0){var W=8-z,U=255>>W<<W;K=K<<z|(this.bytes[this.byteOffset]&U)>>W,this.bitOffset+=z}}return K},X.prototype.available=function(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset},X}();J.BitStream=Q},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0}),J.shiftJISTable={32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:64,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:165,93:93,94:94,95:95,96:96,97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:8254,33088:12288,33089:12289,33090:12290,33091:65292,33092:65294,33093:12539,33094:65306,33095:65307,33096:65311,33097:65281,33098:12443,33099:12444,33100:180,33101:65344,33102:168,33103:65342,33104:65507,33105:65343,33106:12541,33107:12542,33108:12445,33109:12446,33110:12291,33111:20189,33112:12293,33113:12294,33114:12295,33115:12540,33116:8213,33117:8208,33118:65295,33119:92,33120:12316,33121:8214,33122:65372,33123:8230,33124:8229,33125:8216,33126:8217,33127:8220,33128:8221,33129:65288,33130:65289,33131:12308,33132:12309,33133:65339,33134:65341,33135:65371,33136:65373,33137:12296,33138:12297,33139:12298,33140:12299,33141:12300,33142:12301,33143:12302,33144:12303,33145:12304,33146:12305,33147:65291,33148:8722,33149:177,33150:215,33152:247,33153:65309,33154:8800,33155:65308,33156:65310,33157:8806,33158:8807,33159:8734,33160:8756,33161:9794,33162:9792,33163:176,33164:8242,33165:8243,33166:8451,33167:65509,33168:65284,33169:162,33170:163,33171:65285,33172:65283,33173:65286,33174:65290,33175:65312,33176:167,33177:9734,33178:9733,33179:9675,33180:9679,33181:9678,33182:9671,33183:9670,33184:9633,33185:9632,33186:9651,33187:9650,33188:9661,33189:9660,33190:8251,33191:12306,33192:8594,33193:8592,33194:8593,33195:8595,33196:12307,33208:8712,33209:8715,33210:8838,33211:8839,33212:8834,33213:8835,33214:8746,33215:8745,33224:8743,33225:8744,33226:172,33227:8658,33228:8660,33229:8704,33230:8707,33242:8736,33243:8869,33244:8978,33245:8706,33246:8711,33247:8801,33248:8786,33249:8810,33250:8811,33251:8730,33252:8765,33253:8733,33254:8757,33255:8747,33256:8748,33264:8491,33265:8240,33266:9839,33267:9837,33268:9834,33269:8224,33270:8225,33271:182,33276:9711,33359:65296,33360:65297,33361:65298,33362:65299,33363:65300,33364:65301,33365:65302,33366:65303,33367:65304,33368:65305,33376:65313,33377:65314,33378:65315,33379:65316,33380:65317,33381:65318,33382:65319,33383:65320,33384:65321,33385:65322,33386:65323,33387:65324,33388:65325,33389:65326,33390:65327,33391:65328,33392:65329,33393:65330,33394:65331,33395:65332,33396:65333,33397:65334,33398:65335,33399:65336,33400:65337,33401:65338,33409:65345,33410:65346,33411:65347,33412:65348,33413:65349,33414:65350,33415:65351,33416:65352,33417:65353,33418:65354,33419:65355,33420:65356,33421:65357,33422:65358,33423:65359,33424:65360,33425:65361,33426:65362,33427:65363,33428:65364,33429:65365,33430:65366,33431:65367,33432:65368,33433:65369,33434:65370,33439:12353,33440:12354,33441:12355,33442:12356,33443:12357,33444:12358,33445:12359,33446:12360,33447:12361,33448:12362,33449:12363,33450:12364,33451:12365,33452:12366,33453:12367,33454:12368,33455:12369,33456:12370,33457:12371,33458:12372,33459:12373,33460:12374,33461:12375,33462:12376,33463:12377,33464:12378,33465:12379,33466:12380,33467:12381,33468:12382,33469:12383,33470:12384,33471:12385,33472:12386,33473:12387,33474:12388,33475:12389,33476:12390,33477:12391,33478:12392,33479:12393,33480:12394,33481:12395,33482:12396,33483:12397,33484:12398,33485:12399,33486:12400,33487:12401,33488:12402,33489:12403,33490:12404,33491:12405,33492:12406,33493:12407,33494:12408,33495:12409,33496:12410,33497:12411,33498:12412,33499:12413,33500:12414,33501:12415,33502:12416,33503:12417,33504:12418,33505:12419,33506:12420,33507:12421,33508:12422,33509:12423,33510:12424,33511:12425,33512:12426,33513:12427,33514:12428,33515:12429,33516:12430,33517:12431,33518:12432,33519:12433,33520:12434,33521:12435,33600:12449,33601:12450,33602:12451,33603:12452,33604:12453,33605:12454,33606:12455,33607:12456,33608:12457,33609:12458,33610:12459,33611:12460,33612:12461,33613:12462,33614:12463,33615:12464,33616:12465,33617:12466,33618:12467,33619:12468,33620:12469,33621:12470,33622:12471,33623:12472,33624:12473,33625:12474,33626:12475,33627:12476,33628:12477,33629:12478,33630:12479,33631:12480,33632:12481,33633:12482,33634:12483,33635:12484,33636:12485,33637:12486,33638:12487,33639:12488,33640:12489,33641:12490,33642:12491,33643:12492,33644:12493,33645:12494,33646:12495,33647:12496,33648:12497,33649:12498,33650:12499,33651:12500,33652:12501,33653:12502,33654:12503,33655:12504,33656:12505,33657:12506,33658:12507,33659:12508,33660:12509,33661:12510,33662:12511,33664:12512,33665:12513,33666:12514,33667:12515,33668:12516,33669:12517,33670:12518,33671:12519,33672:12520,33673:12521,33674:12522,33675:12523,33676:12524,33677:12525,33678:12526,33679:12527,33680:12528,33681:12529,33682:12530,33683:12531,33684:12532,33685:12533,33686:12534,33695:913,33696:914,33697:915,33698:916,33699:917,33700:918,33701:919,33702:920,33703:921,33704:922,33705:923,33706:924,33707:925,33708:926,33709:927,33710:928,33711:929,33712:931,33713:932,33714:933,33715:934,33716:935,33717:936,33718:937,33727:945,33728:946,33729:947,33730:948,33731:949,33732:950,33733:951,33734:952,33735:953,33736:954,33737:955,33738:956,33739:957,33740:958,33741:959,33742:960,33743:961,33744:963,33745:964,33746:965,33747:966,33748:967,33749:968,33750:969,33856:1040,33857:1041,33858:1042,33859:1043,33860:1044,33861:1045,33862:1025,33863:1046,33864:1047,33865:1048,33866:1049,33867:1050,33868:1051,33869:1052,33870:1053,33871:1054,33872:1055,33873:1056,33874:1057,33875:1058,33876:1059,33877:1060,33878:1061,33879:1062,33880:1063,33881:1064,33882:1065,33883:1066,33884:1067,33885:1068,33886:1069,33887:1070,33888:1071,33904:1072,33905:1073,33906:1074,33907:1075,33908:1076,33909:1077,33910:1105,33911:1078,33912:1079,33913:1080,33914:1081,33915:1082,33916:1083,33917:1084,33918:1085,33920:1086,33921:1087,33922:1088,33923:1089,33924:1090,33925:1091,33926:1092,33927:1093,33928:1094,33929:1095,33930:1096,33931:1097,33932:1098,33933:1099,33934:1100,33935:1101,33936:1102,33937:1103,33951:9472,33952:9474,33953:9484,33954:9488,33955:9496,33956:9492,33957:9500,33958:9516,33959:9508,33960:9524,33961:9532,33962:9473,33963:9475,33964:9487,33965:9491,33966:9499,33967:9495,33968:9507,33969:9523,33970:9515,33971:9531,33972:9547,33973:9504,33974:9519,33975:9512,33976:9527,33977:9535,33978:9501,33979:9520,33980:9509,33981:9528,33982:9538,34975:20124,34976:21782,34977:23043,34978:38463,34979:21696,34980:24859,34981:25384,34982:23030,34983:36898,34984:33909,34985:33564,34986:31312,34987:24746,34988:25569,34989:28197,34990:26093,34991:33894,34992:33446,34993:39925,34994:26771,34995:22311,34996:26017,34997:25201,34998:23451,34999:22992,35000:34427,35001:39156,35002:32098,35003:32190,35004:39822,35005:25110,35006:31903,35007:34999,35008:23433,35009:24245,35010:25353,35011:26263,35012:26696,35013:38343,35014:38797,35015:26447,35016:20197,35017:20234,35018:20301,35019:20381,35020:20553,35021:22258,35022:22839,35023:22996,35024:23041,35025:23561,35026:24799,35027:24847,35028:24944,35029:26131,35030:26885,35031:28858,35032:30031,35033:30064,35034:31227,35035:32173,35036:32239,35037:32963,35038:33806,35039:34915,35040:35586,35041:36949,35042:36986,35043:21307,35044:20117,35045:20133,35046:22495,35047:32946,35048:37057,35049:30959,35050:19968,35051:22769,35052:28322,35053:36920,35054:31282,35055:33576,35056:33419,35057:39983,35058:20801,35059:21360,35060:21693,35061:21729,35062:22240,35063:23035,35064:24341,35065:39154,35066:28139,35067:32996,35068:34093,35136:38498,35137:38512,35138:38560,35139:38907,35140:21515,35141:21491,35142:23431,35143:28879,35144:32701,35145:36802,35146:38632,35147:21359,35148:40284,35149:31418,35150:19985,35151:30867,35152:33276,35153:28198,35154:22040,35155:21764,35156:27421,35157:34074,35158:39995,35159:23013,35160:21417,35161:28006,35162:29916,35163:38287,35164:22082,35165:20113,35166:36939,35167:38642,35168:33615,35169:39180,35170:21473,35171:21942,35172:23344,35173:24433,35174:26144,35175:26355,35176:26628,35177:27704,35178:27891,35179:27945,35180:29787,35181:30408,35182:31310,35183:38964,35184:33521,35185:34907,35186:35424,35187:37613,35188:28082,35189:30123,35190:30410,35191:39365,35192:24742,35193:35585,35194:36234,35195:38322,35196:27022,35197:21421,35198:20870,35200:22290,35201:22576,35202:22852,35203:23476,35204:24310,35205:24616,35206:25513,35207:25588,35208:27839,35209:28436,35210:28814,35211:28948,35212:29017,35213:29141,35214:29503,35215:32257,35216:33398,35217:33489,35218:34199,35219:36960,35220:37467,35221:40219,35222:22633,35223:26044,35224:27738,35225:29989,35226:20985,35227:22830,35228:22885,35229:24448,35230:24540,35231:25276,35232:26106,35233:27178,35234:27431,35235:27572,35236:29579,35237:32705,35238:35158,35239:40236,35240:40206,35241:40644,35242:23713,35243:27798,35244:33659,35245:20740,35246:23627,35247:25014,35248:33222,35249:26742,35250:29281,35251:20057,35252:20474,35253:21368,35254:24681,35255:28201,35256:31311,35257:38899,35258:19979,35259:21270,35260:20206,35261:20309,35262:20285,35263:20385,35264:20339,35265:21152,35266:21487,35267:22025,35268:22799,35269:23233,35270:23478,35271:23521,35272:31185,35273:26247,35274:26524,35275:26550,35276:27468,35277:27827,35278:28779,35279:29634,35280:31117,35281:31166,35282:31292,35283:31623,35284:33457,35285:33499,35286:33540,35287:33655,35288:33775,35289:33747,35290:34662,35291:35506,35292:22057,35293:36008,35294:36838,35295:36942,35296:38686,35297:34442,35298:20420,35299:23784,35300:25105,35301:29273,35302:30011,35303:33253,35304:33469,35305:34558,35306:36032,35307:38597,35308:39187,35309:39381,35310:20171,35311:20250,35312:35299,35313:22238,35314:22602,35315:22730,35316:24315,35317:24555,35318:24618,35319:24724,35320:24674,35321:25040,35322:25106,35323:25296,35324:25913,35392:39745,35393:26214,35394:26800,35395:28023,35396:28784,35397:30028,35398:30342,35399:32117,35400:33445,35401:34809,35402:38283,35403:38542,35404:35997,35405:20977,35406:21182,35407:22806,35408:21683,35409:23475,35410:23830,35411:24936,35412:27010,35413:28079,35414:30861,35415:33995,35416:34903,35417:35442,35418:37799,35419:39608,35420:28012,35421:39336,35422:34521,35423:22435,35424:26623,35425:34510,35426:37390,35427:21123,35428:22151,35429:21508,35430:24275,35431:25313,35432:25785,35433:26684,35434:26680,35435:27579,35436:29554,35437:30906,35438:31339,35439:35226,35440:35282,35441:36203,35442:36611,35443:37101,35444:38307,35445:38548,35446:38761,35447:23398,35448:23731,35449:27005,35450:38989,35451:38990,35452:25499,35453:31520,35454:27179,35456:27263,35457:26806,35458:39949,35459:28511,35460:21106,35461:21917,35462:24688,35463:25324,35464:27963,35465:28167,35466:28369,35467:33883,35468:35088,35469:36676,35470:19988,35471:39993,35472:21494,35473:26907,35474:27194,35475:38788,35476:26666,35477:20828,35478:31427,35479:33970,35480:37340,35481:37772,35482:22107,35483:40232,35484:26658,35485:33541,35486:33841,35487:31909,35488:21000,35489:33477,35490:29926,35491:20094,35492:20355,35493:20896,35494:23506,35495:21002,35496:21208,35497:21223,35498:24059,35499:21914,35500:22570,35501:23014,35502:23436,35503:23448,35504:23515,35505:24178,35506:24185,35507:24739,35508:24863,35509:24931,35510:25022,35511:25563,35512:25954,35513:26577,35514:26707,35515:26874,35516:27454,35517:27475,35518:27735,35519:28450,35520:28567,35521:28485,35522:29872,35523:29976,35524:30435,35525:30475,35526:31487,35527:31649,35528:31777,35529:32233,35530:32566,35531:32752,35532:32925,35533:33382,35534:33694,35535:35251,35536:35532,35537:36011,35538:36996,35539:37969,35540:38291,35541:38289,35542:38306,35543:38501,35544:38867,35545:39208,35546:33304,35547:20024,35548:21547,35549:23736,35550:24012,35551:29609,35552:30284,35553:30524,35554:23721,35555:32747,35556:36107,35557:38593,35558:38929,35559:38996,35560:39000,35561:20225,35562:20238,35563:21361,35564:21916,35565:22120,35566:22522,35567:22855,35568:23305,35569:23492,35570:23696,35571:24076,35572:24190,35573:24524,35574:25582,35575:26426,35576:26071,35577:26082,35578:26399,35579:26827,35580:26820,35648:27231,35649:24112,35650:27589,35651:27671,35652:27773,35653:30079,35654:31048,35655:23395,35656:31232,35657:32000,35658:24509,35659:35215,35660:35352,35661:36020,35662:36215,35663:36556,35664:36637,35665:39138,35666:39438,35667:39740,35668:20096,35669:20605,35670:20736,35671:22931,35672:23452,35673:25135,35674:25216,35675:25836,35676:27450,35677:29344,35678:30097,35679:31047,35680:32681,35681:34811,35682:35516,35683:35696,35684:25516,35685:33738,35686:38816,35687:21513,35688:21507,35689:21931,35690:26708,35691:27224,35692:35440,35693:30759,35694:26485,35695:40653,35696:21364,35697:23458,35698:33050,35699:34384,35700:36870,35701:19992,35702:20037,35703:20167,35704:20241,35705:21450,35706:21560,35707:23470,35708:24339,35709:24613,35710:25937,35712:26429,35713:27714,35714:27762,35715:27875,35716:28792,35717:29699,35718:31350,35719:31406,35720:31496,35721:32026,35722:31998,35723:32102,35724:26087,35725:29275,35726:21435,35727:23621,35728:24040,35729:25298,35730:25312,35731:25369,35732:28192,35733:34394,35734:35377,35735:36317,35736:37624,35737:28417,35738:31142,35739:39770,35740:20136,35741:20139,35742:20140,35743:20379,35744:20384,35745:20689,35746:20807,35747:31478,35748:20849,35749:20982,35750:21332,35751:21281,35752:21375,35753:21483,35754:21932,35755:22659,35756:23777,35757:24375,35758:24394,35759:24623,35760:24656,35761:24685,35762:25375,35763:25945,35764:27211,35765:27841,35766:29378,35767:29421,35768:30703,35769:33016,35770:33029,35771:33288,35772:34126,35773:37111,35774:37857,35775:38911,35776:39255,35777:39514,35778:20208,35779:20957,35780:23597,35781:26241,35782:26989,35783:23616,35784:26354,35785:26997,35786:29577,35787:26704,35788:31873,35789:20677,35790:21220,35791:22343,35792:24062,35793:37670,35794:26020,35795:27427,35796:27453,35797:29748,35798:31105,35799:31165,35800:31563,35801:32202,35802:33465,35803:33740,35804:34943,35805:35167,35806:35641,35807:36817,35808:37329,35809:21535,35810:37504,35811:20061,35812:20534,35813:21477,35814:21306,35815:29399,35816:29590,35817:30697,35818:33510,35819:36527,35820:39366,35821:39368,35822:39378,35823:20855,35824:24858,35825:34398,35826:21936,35827:31354,35828:20598,35829:23507,35830:36935,35831:38533,35832:20018,35833:27355,35834:37351,35835:23633,35836:23624,35904:25496,35905:31391,35906:27795,35907:38772,35908:36705,35909:31402,35910:29066,35911:38536,35912:31874,35913:26647,35914:32368,35915:26705,35916:37740,35917:21234,35918:21531,35919:34219,35920:35347,35921:32676,35922:36557,35923:37089,35924:21350,35925:34952,35926:31041,35927:20418,35928:20670,35929:21009,35930:20804,35931:21843,35932:22317,35933:29674,35934:22411,35935:22865,35936:24418,35937:24452,35938:24693,35939:24950,35940:24935,35941:25001,35942:25522,35943:25658,35944:25964,35945:26223,35946:26690,35947:28179,35948:30054,35949:31293,35950:31995,35951:32076,35952:32153,35953:32331,35954:32619,35955:33550,35956:33610,35957:34509,35958:35336,35959:35427,35960:35686,35961:36605,35962:38938,35963:40335,35964:33464,35965:36814,35966:39912,35968:21127,35969:25119,35970:25731,35971:28608,35972:38553,35973:26689,35974:20625,35975:27424,35976:27770,35977:28500,35978:31348,35979:32080,35980:34880,35981:35363,35982:26376,35983:20214,35984:20537,35985:20518,35986:20581,35987:20860,35988:21048,35989:21091,35990:21927,35991:22287,35992:22533,35993:23244,35994:24314,35995:25010,35996:25080,35997:25331,35998:25458,35999:26908,36000:27177,36001:29309,36002:29356,36003:29486,36004:30740,36005:30831,36006:32121,36007:30476,36008:32937,36009:35211,36010:35609,36011:36066,36012:36562,36013:36963,36014:37749,36015:38522,36016:38997,36017:39443,36018:40568,36019:20803,36020:21407,36021:21427,36022:24187,36023:24358,36024:28187,36025:28304,36026:29572,36027:29694,36028:32067,36029:33335,36030:35328,36031:35578,36032:38480,36033:20046,36034:20491,36035:21476,36036:21628,36037:22266,36038:22993,36039:23396,36040:24049,36041:24235,36042:24359,36043:25144,36044:25925,36045:26543,36046:28246,36047:29392,36048:31946,36049:34996,36050:32929,36051:32993,36052:33776,36053:34382,36054:35463,36055:36328,36056:37431,36057:38599,36058:39015,36059:40723,36060:20116,36061:20114,36062:20237,36063:21320,36064:21577,36065:21566,36066:23087,36067:24460,36068:24481,36069:24735,36070:26791,36071:27278,36072:29786,36073:30849,36074:35486,36075:35492,36076:35703,36077:37264,36078:20062,36079:39881,36080:20132,36081:20348,36082:20399,36083:20505,36084:20502,36085:20809,36086:20844,36087:21151,36088:21177,36089:21246,36090:21402,36091:21475,36092:21521,36160:21518,36161:21897,36162:22353,36163:22434,36164:22909,36165:23380,36166:23389,36167:23439,36168:24037,36169:24039,36170:24055,36171:24184,36172:24195,36173:24218,36174:24247,36175:24344,36176:24658,36177:24908,36178:25239,36179:25304,36180:25511,36181:25915,36182:26114,36183:26179,36184:26356,36185:26477,36186:26657,36187:26775,36188:27083,36189:27743,36190:27946,36191:28009,36192:28207,36193:28317,36194:30002,36195:30343,36196:30828,36197:31295,36198:31968,36199:32005,36200:32024,36201:32094,36202:32177,36203:32789,36204:32771,36205:32943,36206:32945,36207:33108,36208:33167,36209:33322,36210:33618,36211:34892,36212:34913,36213:35611,36214:36002,36215:36092,36216:37066,36217:37237,36218:37489,36219:30783,36220:37628,36221:38308,36222:38477,36224:38917,36225:39321,36226:39640,36227:40251,36228:21083,36229:21163,36230:21495,36231:21512,36232:22741,36233:25335,36234:28640,36235:35946,36236:36703,36237:40633,36238:20811,36239:21051,36240:21578,36241:22269,36242:31296,36243:37239,36244:40288,36245:40658,36246:29508,36247:28425,36248:33136,36249:29969,36250:24573,36251:24794,36252:39592,36253:29403,36254:36796,36255:27492,36256:38915,36257:20170,36258:22256,36259:22372,36260:22718,36261:23130,36262:24680,36263:25031,36264:26127,36265:26118,36266:26681,36267:26801,36268:28151,36269:30165,36270:32058,36271:33390,36272:39746,36273:20123,36274:20304,36275:21449,36276:21766,36277:23919,36278:24038,36279:24046,36280:26619,36281:27801,36282:29811,36283:30722,36284:35408,36285:37782,36286:35039,36287:22352,36288:24231,36289:25387,36290:20661,36291:20652,36292:20877,36293:26368,36294:21705,36295:22622,36296:22971,36297:23472,36298:24425,36299:25165,36300:25505,36301:26685,36302:27507,36303:28168,36304:28797,36305:37319,36306:29312,36307:30741,36308:30758,36309:31085,36310:25998,36311:32048,36312:33756,36313:35009,36314:36617,36315:38555,36316:21092,36317:22312,36318:26448,36319:32618,36320:36001,36321:20916,36322:22338,36323:38442,36324:22586,36325:27018,36326:32948,36327:21682,36328:23822,36329:22524,36330:30869,36331:40442,36332:20316,36333:21066,36334:21643,36335:25662,36336:26152,36337:26388,36338:26613,36339:31364,36340:31574,36341:32034,36342:37679,36343:26716,36344:39853,36345:31545,36346:21273,36347:20874,36348:21047,36416:23519,36417:25334,36418:25774,36419:25830,36420:26413,36421:27578,36422:34217,36423:38609,36424:30352,36425:39894,36426:25420,36427:37638,36428:39851,36429:30399,36430:26194,36431:19977,36432:20632,36433:21442,36434:23665,36435:24808,36436:25746,36437:25955,36438:26719,36439:29158,36440:29642,36441:29987,36442:31639,36443:32386,36444:34453,36445:35715,36446:36059,36447:37240,36448:39184,36449:26028,36450:26283,36451:27531,36452:20181,36453:20180,36454:20282,36455:20351,36456:21050,36457:21496,36458:21490,36459:21987,36460:22235,36461:22763,36462:22987,36463:22985,36464:23039,36465:23376,36466:23629,36467:24066,36468:24107,36469:24535,36470:24605,36471:25351,36472:25903,36473:23388,36474:26031,36475:26045,36476:26088,36477:26525,36478:27490,36480:27515,36481:27663,36482:29509,36483:31049,36484:31169,36485:31992,36486:32025,36487:32043,36488:32930,36489:33026,36490:33267,36491:35222,36492:35422,36493:35433,36494:35430,36495:35468,36496:35566,36497:36039,36498:36060,36499:38604,36500:39164,36501:27503,36502:20107,36503:20284,36504:20365,36505:20816,36506:23383,36507:23546,36508:24904,36509:25345,36510:26178,36511:27425,36512:28363,36513:27835,36514:29246,36515:29885,36516:30164,36517:30913,36518:31034,36519:32780,36520:32819,36521:33258,36522:33940,36523:36766,36524:27728,36525:40575,36526:24335,36527:35672,36528:40235,36529:31482,36530:36600,36531:23437,36532:38635,36533:19971,36534:21489,36535:22519,36536:22833,36537:23241,36538:23460,36539:24713,36540:28287,36541:28422,36542:30142,36543:36074,36544:23455,36545:34048,36546:31712,36547:20594,36548:26612,36549:33437,36550:23649,36551:34122,36552:32286,36553:33294,36554:20889,36555:23556,36556:25448,36557:36198,36558:26012,36559:29038,36560:31038,36561:32023,36562:32773,36563:35613,36564:36554,36565:36974,36566:34503,36567:37034,36568:20511,36569:21242,36570:23610,36571:26451,36572:28796,36573:29237,36574:37196,36575:37320,36576:37675,36577:33509,36578:23490,36579:24369,36580:24825,36581:20027,36582:21462,36583:23432,36584:25163,36585:26417,36586:27530,36587:29417,36588:29664,36589:31278,36590:33131,36591:36259,36592:37202,36593:39318,36594:20754,36595:21463,36596:21610,36597:23551,36598:25480,36599:27193,36600:32172,36601:38656,36602:22234,36603:21454,36604:21608,36672:23447,36673:23601,36674:24030,36675:20462,36676:24833,36677:25342,36678:27954,36679:31168,36680:31179,36681:32066,36682:32333,36683:32722,36684:33261,36685:33311,36686:33936,36687:34886,36688:35186,36689:35728,36690:36468,36691:36655,36692:36913,36693:37195,36694:37228,36695:38598,36696:37276,36697:20160,36698:20303,36699:20805,36700:21313,36701:24467,36702:25102,36703:26580,36704:27713,36705:28171,36706:29539,36707:32294,36708:37325,36709:37507,36710:21460,36711:22809,36712:23487,36713:28113,36714:31069,36715:32302,36716:31899,36717:22654,36718:29087,36719:20986,36720:34899,36721:36848,36722:20426,36723:23803,36724:26149,36725:30636,36726:31459,36727:33308,36728:39423,36729:20934,36730:24490,36731:26092,36732:26991,36733:27529,36734:28147,36736:28310,36737:28516,36738:30462,36739:32020,36740:24033,36741:36981,36742:37255,36743:38918,36744:20966,36745:21021,36746:25152,36747:26257,36748:26329,36749:28186,36750:24246,36751:32210,36752:32626,36753:26360,36754:34223,36755:34295,36756:35576,36757:21161,36758:21465,36759:22899,36760:24207,36761:24464,36762:24661,36763:37604,36764:38500,36765:20663,36766:20767,36767:21213,36768:21280,36769:21319,36770:21484,36771:21736,36772:21830,36773:21809,36774:22039,36775:22888,36776:22974,36777:23100,36778:23477,36779:23558,36780:23567,36781:23569,36782:23578,36783:24196,36784:24202,36785:24288,36786:24432,36787:25215,36788:25220,36789:25307,36790:25484,36791:25463,36792:26119,36793:26124,36794:26157,36795:26230,36796:26494,36797:26786,36798:27167,36799:27189,36800:27836,36801:28040,36802:28169,36803:28248,36804:28988,36805:28966,36806:29031,36807:30151,36808:30465,36809:30813,36810:30977,36811:31077,36812:31216,36813:31456,36814:31505,36815:31911,36816:32057,36817:32918,36818:33750,36819:33931,36820:34121,36821:34909,36822:35059,36823:35359,36824:35388,36825:35412,36826:35443,36827:35937,36828:36062,36829:37284,36830:37478,36831:37758,36832:37912,36833:38556,36834:38808,36835:19978,36836:19976,36837:19998,36838:20055,36839:20887,36840:21104,36841:22478,36842:22580,36843:22732,36844:23330,36845:24120,36846:24773,36847:25854,36848:26465,36849:26454,36850:27972,36851:29366,36852:30067,36853:31331,36854:33976,36855:35698,36856:37304,36857:37664,36858:22065,36859:22516,36860:39166,36928:25325,36929:26893,36930:27542,36931:29165,36932:32340,36933:32887,36934:33394,36935:35302,36936:39135,36937:34645,36938:36785,36939:23611,36940:20280,36941:20449,36942:20405,36943:21767,36944:23072,36945:23517,36946:23529,36947:24515,36948:24910,36949:25391,36950:26032,36951:26187,36952:26862,36953:27035,36954:28024,36955:28145,36956:30003,36957:30137,36958:30495,36959:31070,36960:31206,36961:32051,36962:33251,36963:33455,36964:34218,36965:35242,36966:35386,36967:36523,36968:36763,36969:36914,36970:37341,36971:38663,36972:20154,36973:20161,36974:20995,36975:22645,36976:22764,36977:23563,36978:29978,36979:23613,36980:33102,36981:35338,36982:36805,36983:38499,36984:38765,36985:31525,36986:35535,36987:38920,36988:37218,36989:22259,36990:21416,36992:36887,36993:21561,36994:22402,36995:24101,36996:25512,36997:27700,36998:28810,36999:30561,37000:31883,37001:32736,37002:34928,37003:36930,37004:37204,37005:37648,37006:37656,37007:38543,37008:29790,37009:39620,37010:23815,37011:23913,37012:25968,37013:26530,37014:36264,37015:38619,37016:25454,37017:26441,37018:26905,37019:33733,37020:38935,37021:38592,37022:35070,37023:28548,37024:25722,37025:23544,37026:19990,37027:28716,37028:30045,37029:26159,37030:20932,37031:21046,37032:21218,37033:22995,37034:24449,37035:24615,37036:25104,37037:25919,37038:25972,37039:26143,37040:26228,37041:26866,37042:26646,37043:27491,37044:28165,37045:29298,37046:29983,37047:30427,37048:31934,37049:32854,37050:22768,37051:35069,37052:35199,37053:35488,37054:35475,37055:35531,37056:36893,37057:37266,37058:38738,37059:38745,37060:25993,37061:31246,37062:33030,37063:38587,37064:24109,37065:24796,37066:25114,37067:26021,37068:26132,37069:26512,37070:30707,37071:31309,37072:31821,37073:32318,37074:33034,37075:36012,37076:36196,37077:36321,37078:36447,37079:30889,37080:20999,37081:25305,37082:25509,37083:25666,37084:25240,37085:35373,37086:31363,37087:31680,37088:35500,37089:38634,37090:32118,37091:33292,37092:34633,37093:20185,37094:20808,37095:21315,37096:21344,37097:23459,37098:23554,37099:23574,37100:24029,37101:25126,37102:25159,37103:25776,37104:26643,37105:26676,37106:27849,37107:27973,37108:27927,37109:26579,37110:28508,37111:29006,37112:29053,37113:26059,37114:31359,37115:31661,37116:32218,37184:32330,37185:32680,37186:33146,37187:33307,37188:33337,37189:34214,37190:35438,37191:36046,37192:36341,37193:36984,37194:36983,37195:37549,37196:37521,37197:38275,37198:39854,37199:21069,37200:21892,37201:28472,37202:28982,37203:20840,37204:31109,37205:32341,37206:33203,37207:31950,37208:22092,37209:22609,37210:23720,37211:25514,37212:26366,37213:26365,37214:26970,37215:29401,37216:30095,37217:30094,37218:30990,37219:31062,37220:31199,37221:31895,37222:32032,37223:32068,37224:34311,37225:35380,37226:38459,37227:36961,37228:40736,37229:20711,37230:21109,37231:21452,37232:21474,37233:20489,37234:21930,37235:22766,37236:22863,37237:29245,37238:23435,37239:23652,37240:21277,37241:24803,37242:24819,37243:25436,37244:25475,37245:25407,37246:25531,37248:25805,37249:26089,37250:26361,37251:24035,37252:27085,37253:27133,37254:28437,37255:29157,37256:20105,37257:30185,37258:30456,37259:31379,37260:31967,37261:32207,37262:32156,37263:32865,37264:33609,37265:33624,37266:33900,37267:33980,37268:34299,37269:35013,37270:36208,37271:36865,37272:36973,37273:37783,37274:38684,37275:39442,37276:20687,37277:22679,37278:24974,37279:33235,37280:34101,37281:36104,37282:36896,37283:20419,37284:20596,37285:21063,37286:21363,37287:24687,37288:25417,37289:26463,37290:28204,37291:36275,37292:36895,37293:20439,37294:23646,37295:36042,37296:26063,37297:32154,37298:21330,37299:34966,37300:20854,37301:25539,37302:23384,37303:23403,37304:23562,37305:25613,37306:26449,37307:36956,37308:20182,37309:22810,37310:22826,37311:27760,37312:35409,37313:21822,37314:22549,37315:22949,37316:24816,37317:25171,37318:26561,37319:33333,37320:26965,37321:38464,37322:39364,37323:39464,37324:20307,37325:22534,37326:23550,37327:32784,37328:23729,37329:24111,37330:24453,37331:24608,37332:24907,37333:25140,37334:26367,37335:27888,37336:28382,37337:32974,37338:33151,37339:33492,37340:34955,37341:36024,37342:36864,37343:36910,37344:38538,37345:40667,37346:39899,37347:20195,37348:21488,37349:22823,37350:31532,37351:37261,37352:38988,37353:40441,37354:28381,37355:28711,37356:21331,37357:21828,37358:23429,37359:25176,37360:25246,37361:25299,37362:27810,37363:28655,37364:29730,37365:35351,37366:37944,37367:28609,37368:35582,37369:33592,37370:20967,37371:34552,37372:21482,37440:21481,37441:20294,37442:36948,37443:36784,37444:22890,37445:33073,37446:24061,37447:31466,37448:36799,37449:26842,37450:35895,37451:29432,37452:40008,37453:27197,37454:35504,37455:20025,37456:21336,37457:22022,37458:22374,37459:25285,37460:25506,37461:26086,37462:27470,37463:28129,37464:28251,37465:28845,37466:30701,37467:31471,37468:31658,37469:32187,37470:32829,37471:32966,37472:34507,37473:35477,37474:37723,37475:22243,37476:22727,37477:24382,37478:26029,37479:26262,37480:27264,37481:27573,37482:30007,37483:35527,37484:20516,37485:30693,37486:22320,37487:24347,37488:24677,37489:26234,37490:27744,37491:30196,37492:31258,37493:32622,37494:33268,37495:34584,37496:36933,37497:39347,37498:31689,37499:30044,37500:31481,37501:31569,37502:33988,37504:36880,37505:31209,37506:31378,37507:33590,37508:23265,37509:30528,37510:20013,37511:20210,37512:23449,37513:24544,37514:25277,37515:26172,37516:26609,37517:27880,37518:34411,37519:34935,37520:35387,37521:37198,37522:37619,37523:39376,37524:27159,37525:28710,37526:29482,37527:33511,37528:33879,37529:36015,37530:19969,37531:20806,37532:20939,37533:21899,37534:23541,37535:24086,37536:24115,37537:24193,37538:24340,37539:24373,37540:24427,37541:24500,37542:25074,37543:25361,37544:26274,37545:26397,37546:28526,37547:29266,37548:30010,37549:30522,37550:32884,37551:33081,37552:33144,37553:34678,37554:35519,37555:35548,37556:36229,37557:36339,37558:37530,37559:38263,37560:38914,37561:40165,37562:21189,37563:25431,37564:30452,37565:26389,37566:27784,37567:29645,37568:36035,37569:37806,37570:38515,37571:27941,37572:22684,37573:26894,37574:27084,37575:36861,37576:37786,37577:30171,37578:36890,37579:22618,37580:26626,37581:25524,37582:27131,37583:20291,37584:28460,37585:26584,37586:36795,37587:34086,37588:32180,37589:37716,37590:26943,37591:28528,37592:22378,37593:22775,37594:23340,37595:32044,37596:29226,37597:21514,37598:37347,37599:40372,37600:20141,37601:20302,37602:20572,37603:20597,37604:21059,37605:35998,37606:21576,37607:22564,37608:23450,37609:24093,37610:24213,37611:24237,37612:24311,37613:24351,37614:24716,37615:25269,37616:25402,37617:25552,37618:26799,37619:27712,37620:30855,37621:31118,37622:31243,37623:32224,37624:33351,37625:35330,37626:35558,37627:36420,37628:36883,37696:37048,37697:37165,37698:37336,37699:40718,37700:27877,37701:25688,37702:25826,37703:25973,37704:28404,37705:30340,37706:31515,37707:36969,37708:37841,37709:28346,37710:21746,37711:24505,37712:25764,37713:36685,37714:36845,37715:37444,37716:20856,37717:22635,37718:22825,37719:23637,37720:24215,37721:28155,37722:32399,37723:29980,37724:36028,37725:36578,37726:39003,37727:28857,37728:20253,37729:27583,37730:28593,37731:30000,37732:38651,37733:20814,37734:21520,37735:22581,37736:22615,37737:22956,37738:23648,37739:24466,37740:26007,37741:26460,37742:28193,37743:30331,37744:33759,37745:36077,37746:36884,37747:37117,37748:37709,37749:30757,37750:30778,37751:21162,37752:24230,37753:22303,37754:22900,37755:24594,37756:20498,37757:20826,37758:20908,37760:20941,37761:20992,37762:21776,37763:22612,37764:22616,37765:22871,37766:23445,37767:23798,37768:23947,37769:24764,37770:25237,37771:25645,37772:26481,37773:26691,37774:26812,37775:26847,37776:30423,37777:28120,37778:28271,37779:28059,37780:28783,37781:29128,37782:24403,37783:30168,37784:31095,37785:31561,37786:31572,37787:31570,37788:31958,37789:32113,37790:21040,37791:33891,37792:34153,37793:34276,37794:35342,37795:35588,37796:35910,37797:36367,37798:36867,37799:36879,37800:37913,37801:38518,37802:38957,37803:39472,37804:38360,37805:20685,37806:21205,37807:21516,37808:22530,37809:23566,37810:24999,37811:25758,37812:27934,37813:30643,37814:31461,37815:33012,37816:33796,37817:36947,37818:37509,37819:23776,37820:40199,37821:21311,37822:24471,37823:24499,37824:28060,37825:29305,37826:30563,37827:31167,37828:31716,37829:27602,37830:29420,37831:35501,37832:26627,37833:27233,37834:20984,37835:31361,37836:26932,37837:23626,37838:40182,37839:33515,37840:23493,37841:37193,37842:28702,37843:22136,37844:23663,37845:24775,37846:25958,37847:27788,37848:35930,37849:36929,37850:38931,37851:21585,37852:26311,37853:37389,37854:22856,37855:37027,37856:20869,37857:20045,37858:20970,37859:34201,37860:35598,37861:28760,37862:25466,37863:37707,37864:26978,37865:39348,37866:32260,37867:30071,37868:21335,37869:26976,37870:36575,37871:38627,37872:27741,37873:20108,37874:23612,37875:24336,37876:36841,37877:21250,37878:36049,37879:32905,37880:34425,37881:24319,37882:26085,37883:20083,37884:20837,37952:22914,37953:23615,37954:38894,37955:20219,37956:22922,37957:24525,37958:35469,37959:28641,37960:31152,37961:31074,37962:23527,37963:33905,37964:29483,37965:29105,37966:24180,37967:24565,37968:25467,37969:25754,37970:29123,37971:31896,37972:20035,37973:24316,37974:20043,37975:22492,37976:22178,37977:24745,37978:28611,37979:32013,37980:33021,37981:33075,37982:33215,37983:36786,37984:35223,37985:34468,37986:24052,37987:25226,37988:25773,37989:35207,37990:26487,37991:27874,37992:27966,37993:29750,37994:30772,37995:23110,37996:32629,37997:33453,37998:39340,37999:20467,38000:24259,38001:25309,38002:25490,38003:25943,38004:26479,38005:30403,38006:29260,38007:32972,38008:32954,38009:36649,38010:37197,38011:20493,38012:22521,38013:23186,38014:26757,38016:26995,38017:29028,38018:29437,38019:36023,38020:22770,38021:36064,38022:38506,38023:36889,38024:34687,38025:31204,38026:30695,38027:33833,38028:20271,38029:21093,38030:21338,38031:25293,38032:26575,38033:27850,38034:30333,38035:31636,38036:31893,38037:33334,38038:34180,38039:36843,38040:26333,38041:28448,38042:29190,38043:32283,38044:33707,38045:39361,38046:40614,38047:20989,38048:31665,38049:30834,38050:31672,38051:32903,38052:31560,38053:27368,38054:24161,38055:32908,38056:30033,38057:30048,38058:20843,38059:37474,38060:28300,38061:30330,38062:37271,38063:39658,38064:20240,38065:32624,38066:25244,38067:31567,38068:38309,38069:40169,38070:22138,38071:22617,38072:34532,38073:38588,38074:20276,38075:21028,38076:21322,38077:21453,38078:21467,38079:24070,38080:25644,38081:26001,38082:26495,38083:27710,38084:27726,38085:29256,38086:29359,38087:29677,38088:30036,38089:32321,38090:33324,38091:34281,38092:36009,38093:31684,38094:37318,38095:29033,38096:38930,38097:39151,38098:25405,38099:26217,38100:30058,38101:30436,38102:30928,38103:34115,38104:34542,38105:21290,38106:21329,38107:21542,38108:22915,38109:24199,38110:24444,38111:24754,38112:25161,38113:25209,38114:25259,38115:26000,38116:27604,38117:27852,38118:30130,38119:30382,38120:30865,38121:31192,38122:32203,38123:32631,38124:32933,38125:34987,38126:35513,38127:36027,38128:36991,38129:38750,38130:39131,38131:27147,38132:31800,38133:20633,38134:23614,38135:24494,38136:26503,38137:27608,38138:29749,38139:30473,38140:32654,38208:40763,38209:26570,38210:31255,38211:21305,38212:30091,38213:39661,38214:24422,38215:33181,38216:33777,38217:32920,38218:24380,38219:24517,38220:30050,38221:31558,38222:36924,38223:26727,38224:23019,38225:23195,38226:32016,38227:30334,38228:35628,38229:20469,38230:24426,38231:27161,38232:27703,38233:28418,38234:29922,38235:31080,38236:34920,38237:35413,38238:35961,38239:24287,38240:25551,38241:30149,38242:31186,38243:33495,38244:37672,38245:37618,38246:33948,38247:34541,38248:39981,38249:21697,38250:24428,38251:25996,38252:27996,38253:28693,38254:36007,38255:36051,38256:38971,38257:25935,38258:29942,38259:19981,38260:20184,38261:22496,38262:22827,38263:23142,38264:23500,38265:20904,38266:24067,38267:24220,38268:24598,38269:25206,38270:25975,38272:26023,38273:26222,38274:28014,38275:29238,38276:31526,38277:33104,38278:33178,38279:33433,38280:35676,38281:36000,38282:36070,38283:36212,38284:38428,38285:38468,38286:20398,38287:25771,38288:27494,38289:33310,38290:33889,38291:34154,38292:37096,38293:23553,38294:26963,38295:39080,38296:33914,38297:34135,38298:20239,38299:21103,38300:24489,38301:24133,38302:26381,38303:31119,38304:33145,38305:35079,38306:35206,38307:28149,38308:24343,38309:25173,38310:27832,38311:20175,38312:29289,38313:39826,38314:20998,38315:21563,38316:22132,38317:22707,38318:24996,38319:25198,38320:28954,38321:22894,38322:31881,38323:31966,38324:32027,38325:38640,38326:25991,38327:32862,38328:19993,38329:20341,38330:20853,38331:22592,38332:24163,38333:24179,38334:24330,38335:26564,38336:20006,38337:34109,38338:38281,38339:38491,38340:31859,38341:38913,38342:20731,38343:22721,38344:30294,38345:30887,38346:21029,38347:30629,38348:34065,38349:31622,38350:20559,38351:22793,38352:29255,38353:31687,38354:32232,38355:36794,38356:36820,38357:36941,38358:20415,38359:21193,38360:23081,38361:24321,38362:38829,38363:20445,38364:33303,38365:37610,38366:22275,38367:25429,38368:27497,38369:29995,38370:35036,38371:36628,38372:31298,38373:21215,38374:22675,38375:24917,38376:25098,38377:26286,38378:27597,38379:31807,38380:33769,38381:20515,38382:20472,38383:21253,38384:21574,38385:22577,38386:22857,38387:23453,38388:23792,38389:23791,38390:23849,38391:24214,38392:25265,38393:25447,38394:25918,38395:26041,38396:26379,38464:27861,38465:27873,38466:28921,38467:30770,38468:32299,38469:32990,38470:33459,38471:33804,38472:34028,38473:34562,38474:35090,38475:35370,38476:35914,38477:37030,38478:37586,38479:39165,38480:40179,38481:40300,38482:20047,38483:20129,38484:20621,38485:21078,38486:22346,38487:22952,38488:24125,38489:24536,38490:24537,38491:25151,38492:26292,38493:26395,38494:26576,38495:26834,38496:20882,38497:32033,38498:32938,38499:33192,38500:35584,38501:35980,38502:36031,38503:37502,38504:38450,38505:21536,38506:38956,38507:21271,38508:20693,38509:21340,38510:22696,38511:25778,38512:26420,38513:29287,38514:30566,38515:31302,38516:37350,38517:21187,38518:27809,38519:27526,38520:22528,38521:24140,38522:22868,38523:26412,38524:32763,38525:20961,38526:30406,38528:25705,38529:30952,38530:39764,38531:40635,38532:22475,38533:22969,38534:26151,38535:26522,38536:27598,38537:21737,38538:27097,38539:24149,38540:33180,38541:26517,38542:39850,38543:26622,38544:40018,38545:26717,38546:20134,38547:20451,38548:21448,38549:25273,38550:26411,38551:27819,38552:36804,38553:20397,38554:32365,38555:40639,38556:19975,38557:24930,38558:28288,38559:28459,38560:34067,38561:21619,38562:26410,38563:39749,38564:24051,38565:31637,38566:23724,38567:23494,38568:34588,38569:28234,38570:34001,38571:31252,38572:33032,38573:22937,38574:31885,38575:27665,38576:30496,38577:21209,38578:22818,38579:28961,38580:29279,38581:30683,38582:38695,38583:40289,38584:26891,38585:23167,38586:23064,38587:20901,38588:21517,38589:21629,38590:26126,38591:30431,38592:36855,38593:37528,38594:40180,38595:23018,38596:29277,38597:28357,38598:20813,38599:26825,38600:32191,38601:32236,38602:38754,38603:40634,38604:25720,38605:27169,38606:33538,38607:22916,38608:23391,38609:27611,38610:29467,38611:30450,38612:32178,38613:32791,38614:33945,38615:20786,38616:26408,38617:40665,38618:30446,38619:26466,38620:21247,38621:39173,38622:23588,38623:25147,38624:31870,38625:36016,38626:21839,38627:24758,38628:32011,38629:38272,38630:21249,38631:20063,38632:20918,38633:22812,38634:29242,38635:32822,38636:37326,38637:24357,38638:30690,38639:21380,38640:24441,38641:32004,38642:34220,38643:35379,38644:36493,38645:38742,38646:26611,38647:34222,38648:37971,38649:24841,38650:24840,38651:27833,38652:30290,38720:35565,38721:36664,38722:21807,38723:20305,38724:20778,38725:21191,38726:21451,38727:23461,38728:24189,38729:24736,38730:24962,38731:25558,38732:26377,38733:26586,38734:28263,38735:28044,38736:29494,38737:29495,38738:30001,38739:31056,38740:35029,38741:35480,38742:36938,38743:37009,38744:37109,38745:38596,38746:34701,38747:22805,38748:20104,38749:20313,38750:19982,38751:35465,38752:36671,38753:38928,38754:20653,38755:24188,38756:22934,38757:23481,38758:24248,38759:25562,38760:25594,38761:25793,38762:26332,38763:26954,38764:27096,38765:27915,38766:28342,38767:29076,38768:29992,38769:31407,38770:32650,38771:32768,38772:33865,38773:33993,38774:35201,38775:35617,38776:36362,38777:36965,38778:38525,38779:39178,38780:24958,38781:25233,38782:27442,38784:27779,38785:28020,38786:32716,38787:32764,38788:28096,38789:32645,38790:34746,38791:35064,38792:26469,38793:33713,38794:38972,38795:38647,38796:27931,38797:32097,38798:33853,38799:37226,38800:20081,38801:21365,38802:23888,38803:27396,38804:28651,38805:34253,38806:34349,38807:35239,38808:21033,38809:21519,38810:23653,38811:26446,38812:26792,38813:29702,38814:29827,38815:30178,38816:35023,38817:35041,38818:37324,38819:38626,38820:38520,38821:24459,38822:29575,38823:31435,38824:33870,38825:25504,38826:30053,38827:21129,38828:27969,38829:28316,38830:29705,38831:30041,38832:30827,38833:31890,38834:38534,38835:31452,38836:40845,38837:20406,38838:24942,38839:26053,38840:34396,38841:20102,38842:20142,38843:20698,38844:20001,38845:20940,38846:23534,38847:26009,38848:26753,38849:28092,38850:29471,38851:30274,38852:30637,38853:31260,38854:31975,38855:33391,38856:35538,38857:36988,38858:37327,38859:38517,38860:38936,38861:21147,38862:32209,38863:20523,38864:21400,38865:26519,38866:28107,38867:29136,38868:29747,38869:33256,38870:36650,38871:38563,38872:40023,38873:40607,38874:29792,38875:22593,38876:28057,38877:32047,38878:39006,38879:20196,38880:20278,38881:20363,38882:20919,38883:21169,38884:23994,38885:24604,38886:29618,38887:31036,38888:33491,38889:37428,38890:38583,38891:38646,38892:38666,38893:40599,38894:40802,38895:26278,38896:27508,38897:21015,38898:21155,38899:28872,38900:35010,38901:24265,38902:24651,38903:24976,38904:28451,38905:29001,38906:31806,38907:32244,38908:32879,38976:34030,38977:36899,38978:37676,38979:21570,38980:39791,38981:27347,38982:28809,38983:36034,38984:36335,38985:38706,38986:21172,38987:23105,38988:24266,38989:24324,38990:26391,38991:27004,38992:27028,38993:28010,38994:28431,38995:29282,38996:29436,38997:31725,38998:32769,38999:32894,39000:34635,39001:37070,39002:20845,39003:40595,39004:31108,39005:32907,39006:37682,39007:35542,39008:20525,39009:21644,39010:35441,39011:27498,39012:36036,39013:33031,39014:24785,39015:26528,39016:40434,39017:20121,39018:20120,39019:39952,39020:35435,39021:34241,39022:34152,39023:26880,39024:28286,39025:30871,39026:33109,39071:24332,39072:19984,39073:19989,39074:20010,39075:20017,39076:20022,39077:20028,39078:20031,39079:20034,39080:20054,39081:20056,39082:20098,39083:20101,39084:35947,39085:20106,39086:33298,39087:24333,39088:20110,39089:20126,39090:20127,39091:20128,39092:20130,39093:20144,39094:20147,39095:20150,39096:20174,39097:20173,39098:20164,39099:20166,39100:20162,39101:20183,39102:20190,39103:20205,39104:20191,39105:20215,39106:20233,39107:20314,39108:20272,39109:20315,39110:20317,39111:20311,39112:20295,39113:20342,39114:20360,39115:20367,39116:20376,39117:20347,39118:20329,39119:20336,39120:20369,39121:20335,39122:20358,39123:20374,39124:20760,39125:20436,39126:20447,39127:20430,39128:20440,39129:20443,39130:20433,39131:20442,39132:20432,39133:20452,39134:20453,39135:20506,39136:20520,39137:20500,39138:20522,39139:20517,39140:20485,39141:20252,39142:20470,39143:20513,39144:20521,39145:20524,39146:20478,39147:20463,39148:20497,39149:20486,39150:20547,39151:20551,39152:26371,39153:20565,39154:20560,39155:20552,39156:20570,39157:20566,39158:20588,39159:20600,39160:20608,39161:20634,39162:20613,39163:20660,39164:20658,39232:20681,39233:20682,39234:20659,39235:20674,39236:20694,39237:20702,39238:20709,39239:20717,39240:20707,39241:20718,39242:20729,39243:20725,39244:20745,39245:20737,39246:20738,39247:20758,39248:20757,39249:20756,39250:20762,39251:20769,39252:20794,39253:20791,39254:20796,39255:20795,39256:20799,39257:20800,39258:20818,39259:20812,39260:20820,39261:20834,39262:31480,39263:20841,39264:20842,39265:20846,39266:20864,39267:20866,39268:22232,39269:20876,39270:20873,39271:20879,39272:20881,39273:20883,39274:20885,39275:20886,39276:20900,39277:20902,39278:20898,39279:20905,39280:20906,39281:20907,39282:20915,39283:20913,39284:20914,39285:20912,39286:20917,39287:20925,39288:20933,39289:20937,39290:20955,39291:20960,39292:34389,39293:20969,39294:20973,39296:20976,39297:20981,39298:20990,39299:20996,39300:21003,39301:21012,39302:21006,39303:21031,39304:21034,39305:21038,39306:21043,39307:21049,39308:21071,39309:21060,39310:21067,39311:21068,39312:21086,39313:21076,39314:21098,39315:21108,39316:21097,39317:21107,39318:21119,39319:21117,39320:21133,39321:21140,39322:21138,39323:21105,39324:21128,39325:21137,39326:36776,39327:36775,39328:21164,39329:21165,39330:21180,39331:21173,39332:21185,39333:21197,39334:21207,39335:21214,39336:21219,39337:21222,39338:39149,39339:21216,39340:21235,39341:21237,39342:21240,39343:21241,39344:21254,39345:21256,39346:30008,39347:21261,39348:21264,39349:21263,39350:21269,39351:21274,39352:21283,39353:21295,39354:21297,39355:21299,39356:21304,39357:21312,39358:21318,39359:21317,39360:19991,39361:21321,39362:21325,39363:20950,39364:21342,39365:21353,39366:21358,39367:22808,39368:21371,39369:21367,39370:21378,39371:21398,39372:21408,39373:21414,39374:21413,39375:21422,39376:21424,39377:21430,39378:21443,39379:31762,39380:38617,39381:21471,39382:26364,39383:29166,39384:21486,39385:21480,39386:21485,39387:21498,39388:21505,39389:21565,39390:21568,39391:21548,39392:21549,39393:21564,39394:21550,39395:21558,39396:21545,39397:21533,39398:21582,39399:21647,39400:21621,39401:21646,39402:21599,39403:21617,39404:21623,39405:21616,39406:21650,39407:21627,39408:21632,39409:21622,39410:21636,39411:21648,39412:21638,39413:21703,39414:21666,39415:21688,39416:21669,39417:21676,39418:21700,39419:21704,39420:21672,39488:21675,39489:21698,39490:21668,39491:21694,39492:21692,39493:21720,39494:21733,39495:21734,39496:21775,39497:21780,39498:21757,39499:21742,39500:21741,39501:21754,39502:21730,39503:21817,39504:21824,39505:21859,39506:21836,39507:21806,39508:21852,39509:21829,39510:21846,39511:21847,39512:21816,39513:21811,39514:21853,39515:21913,39516:21888,39517:21679,39518:21898,39519:21919,39520:21883,39521:21886,39522:21912,39523:21918,39524:21934,39525:21884,39526:21891,39527:21929,39528:21895,39529:21928,39530:21978,39531:21957,39532:21983,39533:21956,39534:21980,39535:21988,39536:21972,39537:22036,39538:22007,39539:22038,39540:22014,39541:22013,39542:22043,39543:22009,39544:22094,39545:22096,39546:29151,39547:22068,39548:22070,39549:22066,39550:22072,39552:22123,39553:22116,39554:22063,39555:22124,39556:22122,39557:22150,39558:22144,39559:22154,39560:22176,39561:22164,39562:22159,39563:22181,39564:22190,39565:22198,39566:22196,39567:22210,39568:22204,39569:22209,39570:22211,39571:22208,39572:22216,39573:22222,39574:22225,39575:22227,39576:22231,39577:22254,39578:22265,39579:22272,39580:22271,39581:22276,39582:22281,39583:22280,39584:22283,39585:22285,39586:22291,39587:22296,39588:22294,39589:21959,39590:22300,39591:22310,39592:22327,39593:22328,39594:22350,39595:22331,39596:22336,39597:22351,39598:22377,39599:22464,39600:22408,39601:22369,39602:22399,39603:22409,39604:22419,39605:22432,39606:22451,39607:22436,39608:22442,39609:22448,39610:22467,39611:22470,39612:22484,39613:22482,39614:22483,39615:22538,39616:22486,39617:22499,39618:22539,39619:22553,39620:22557,39621:22642,39622:22561,39623:22626,39624:22603,39625:22640,39626:27584,39627:22610,39628:22589,39629:22649,39630:22661,39631:22713,39632:22687,39633:22699,39634:22714,39635:22750,39636:22715,39637:22712,39638:22702,39639:22725,39640:22739,39641:22737,39642:22743,39643:22745,39644:22744,39645:22757,39646:22748,39647:22756,39648:22751,39649:22767,39650:22778,39651:22777,39652:22779,39653:22780,39654:22781,39655:22786,39656:22794,39657:22800,39658:22811,39659:26790,39660:22821,39661:22828,39662:22829,39663:22834,39664:22840,39665:22846,39666:31442,39667:22869,39668:22864,39669:22862,39670:22874,39671:22872,39672:22882,39673:22880,39674:22887,39675:22892,39676:22889,39744:22904,39745:22913,39746:22941,39747:20318,39748:20395,39749:22947,39750:22962,39751:22982,39752:23016,39753:23004,39754:22925,39755:23001,39756:23002,39757:23077,39758:23071,39759:23057,39760:23068,39761:23049,39762:23066,39763:23104,39764:23148,39765:23113,39766:23093,39767:23094,39768:23138,39769:23146,39770:23194,39771:23228,39772:23230,39773:23243,39774:23234,39775:23229,39776:23267,39777:23255,39778:23270,39779:23273,39780:23254,39781:23290,39782:23291,39783:23308,39784:23307,39785:23318,39786:23346,39787:23248,39788:23338,39789:23350,39790:23358,39791:23363,39792:23365,39793:23360,39794:23377,39795:23381,39796:23386,39797:23387,39798:23397,39799:23401,39800:23408,39801:23411,39802:23413,39803:23416,39804:25992,39805:23418,39806:23424,39808:23427,39809:23462,39810:23480,39811:23491,39812:23495,39813:23497,39814:23508,39815:23504,39816:23524,39817:23526,39818:23522,39819:23518,39820:23525,39821:23531,39822:23536,39823:23542,39824:23539,39825:23557,39826:23559,39827:23560,39828:23565,39829:23571,39830:23584,39831:23586,39832:23592,39833:23608,39834:23609,39835:23617,39836:23622,39837:23630,39838:23635,39839:23632,39840:23631,39841:23409,39842:23660,39843:23662,39844:20066,39845:23670,39846:23673,39847:23692,39848:23697,39849:23700,39850:22939,39851:23723,39852:23739,39853:23734,39854:23740,39855:23735,39856:23749,39857:23742,39858:23751,39859:23769,39860:23785,39861:23805,39862:23802,39863:23789,39864:23948,39865:23786,39866:23819,39867:23829,39868:23831,39869:23900,39870:23839,39871:23835,39872:23825,39873:23828,39874:23842,39875:23834,39876:23833,39877:23832,39878:23884,39879:23890,39880:23886,39881:23883,39882:23916,39883:23923,39884:23926,39885:23943,39886:23940,39887:23938,39888:23970,39889:23965,39890:23980,39891:23982,39892:23997,39893:23952,39894:23991,39895:23996,39896:24009,39897:24013,39898:24019,39899:24018,39900:24022,39901:24027,39902:24043,39903:24050,39904:24053,39905:24075,39906:24090,39907:24089,39908:24081,39909:24091,39910:24118,39911:24119,39912:24132,39913:24131,39914:24128,39915:24142,39916:24151,39917:24148,39918:24159,39919:24162,39920:24164,39921:24135,39922:24181,39923:24182,39924:24186,39925:40636,39926:24191,39927:24224,39928:24257,39929:24258,39930:24264,39931:24272,39932:24271,40000:24278,40001:24291,40002:24285,40003:24282,40004:24283,40005:24290,40006:24289,40007:24296,40008:24297,40009:24300,40010:24305,40011:24307,40012:24304,40013:24308,40014:24312,40015:24318,40016:24323,40017:24329,40018:24413,40019:24412,40020:24331,40021:24337,40022:24342,40023:24361,40024:24365,40025:24376,40026:24385,40027:24392,40028:24396,40029:24398,40030:24367,40031:24401,40032:24406,40033:24407,40034:24409,40035:24417,40036:24429,40037:24435,40038:24439,40039:24451,40040:24450,40041:24447,40042:24458,40043:24456,40044:24465,40045:24455,40046:24478,40047:24473,40048:24472,40049:24480,40050:24488,40051:24493,40052:24508,40053:24534,40054:24571,40055:24548,40056:24568,40057:24561,40058:24541,40059:24755,40060:24575,40061:24609,40062:24672,40064:24601,40065:24592,40066:24617,40067:24590,40068:24625,40069:24603,40070:24597,40071:24619,40072:24614,40073:24591,40074:24634,40075:24666,40076:24641,40077:24682,40078:24695,40079:24671,40080:24650,40081:24646,40082:24653,40083:24675,40084:24643,40085:24676,40086:24642,40087:24684,40088:24683,40089:24665,40090:24705,40091:24717,40092:24807,40093:24707,40094:24730,40095:24708,40096:24731,40097:24726,40098:24727,40099:24722,40100:24743,40101:24715,40102:24801,40103:24760,40104:24800,40105:24787,40106:24756,40107:24560,40108:24765,40109:24774,40110:24757,40111:24792,40112:24909,40113:24853,40114:24838,40115:24822,40116:24823,40117:24832,40118:24820,40119:24826,40120:24835,40121:24865,40122:24827,40123:24817,40124:24845,40125:24846,40126:24903,40127:24894,40128:24872,40129:24871,40130:24906,40131:24895,40132:24892,40133:24876,40134:24884,40135:24893,40136:24898,40137:24900,40138:24947,40139:24951,40140:24920,40141:24921,40142:24922,40143:24939,40144:24948,40145:24943,40146:24933,40147:24945,40148:24927,40149:24925,40150:24915,40151:24949,40152:24985,40153:24982,40154:24967,40155:25004,40156:24980,40157:24986,40158:24970,40159:24977,40160:25003,40161:25006,40162:25036,40163:25034,40164:25033,40165:25079,40166:25032,40167:25027,40168:25030,40169:25018,40170:25035,40171:32633,40172:25037,40173:25062,40174:25059,40175:25078,40176:25082,40177:25076,40178:25087,40179:25085,40180:25084,40181:25086,40182:25088,40183:25096,40184:25097,40185:25101,40186:25100,40187:25108,40188:25115,40256:25118,40257:25121,40258:25130,40259:25134,40260:25136,40261:25138,40262:25139,40263:25153,40264:25166,40265:25182,40266:25187,40267:25179,40268:25184,40269:25192,40270:25212,40271:25218,40272:25225,40273:25214,40274:25234,40275:25235,40276:25238,40277:25300,40278:25219,40279:25236,40280:25303,40281:25297,40282:25275,40283:25295,40284:25343,40285:25286,40286:25812,40287:25288,40288:25308,40289:25292,40290:25290,40291:25282,40292:25287,40293:25243,40294:25289,40295:25356,40296:25326,40297:25329,40298:25383,40299:25346,40300:25352,40301:25327,40302:25333,40303:25424,40304:25406,40305:25421,40306:25628,40307:25423,40308:25494,40309:25486,40310:25472,40311:25515,40312:25462,40313:25507,40314:25487,40315:25481,40316:25503,40317:25525,40318:25451,40320:25449,40321:25534,40322:25577,40323:25536,40324:25542,40325:25571,40326:25545,40327:25554,40328:25590,40329:25540,40330:25622,40331:25652,40332:25606,40333:25619,40334:25638,40335:25654,40336:25885,40337:25623,40338:25640,40339:25615,40340:25703,40341:25711,40342:25718,40343:25678,40344:25898,40345:25749,40346:25747,40347:25765,40348:25769,40349:25736,40350:25788,40351:25818,40352:25810,40353:25797,40354:25799,40355:25787,40356:25816,40357:25794,40358:25841,40359:25831,40360:33289,40361:25824,40362:25825,40363:25260,40364:25827,40365:25839,40366:25900,40367:25846,40368:25844,40369:25842,40370:25850,40371:25856,40372:25853,40373:25880,40374:25884,40375:25861,40376:25892,40377:25891,40378:25899,40379:25908,40380:25909,40381:25911,40382:25910,40383:25912,40384:30027,40385:25928,40386:25942,40387:25941,40388:25933,40389:25944,40390:25950,40391:25949,40392:25970,40393:25976,40394:25986,40395:25987,40396:35722,40397:26011,40398:26015,40399:26027,40400:26039,40401:26051,40402:26054,40403:26049,40404:26052,40405:26060,40406:26066,40407:26075,40408:26073,40409:26080,40410:26081,40411:26097,40412:26482,40413:26122,40414:26115,40415:26107,40416:26483,40417:26165,40418:26166,40419:26164,40420:26140,40421:26191,40422:26180,40423:26185,40424:26177,40425:26206,40426:26205,40427:26212,40428:26215,40429:26216,40430:26207,40431:26210,40432:26224,40433:26243,40434:26248,40435:26254,40436:26249,40437:26244,40438:26264,40439:26269,40440:26305,40441:26297,40442:26313,40443:26302,40444:26300,40512:26308,40513:26296,40514:26326,40515:26330,40516:26336,40517:26175,40518:26342,40519:26345,40520:26352,40521:26357,40522:26359,40523:26383,40524:26390,40525:26398,40526:26406,40527:26407,40528:38712,40529:26414,40530:26431,40531:26422,40532:26433,40533:26424,40534:26423,40535:26438,40536:26462,40537:26464,40538:26457,40539:26467,40540:26468,40541:26505,40542:26480,40543:26537,40544:26492,40545:26474,40546:26508,40547:26507,40548:26534,40549:26529,40550:26501,40551:26551,40552:26607,40553:26548,40554:26604,40555:26547,40556:26601,40557:26552,40558:26596,40559:26590,40560:26589,40561:26594,40562:26606,40563:26553,40564:26574,40565:26566,40566:26599,40567:27292,40568:26654,40569:26694,40570:26665,40571:26688,40572:26701,40573:26674,40574:26702,40576:26803,40577:26667,40578:26713,40579:26723,40580:26743,40581:26751,40582:26783,40583:26767,40584:26797,40585:26772,40586:26781,40587:26779,40588:26755,40589:27310,40590:26809,40591:26740,40592:26805,40593:26784,40594:26810,40595:26895,40596:26765,40597:26750,40598:26881,40599:26826,40600:26888,40601:26840,40602:26914,40603:26918,40604:26849,40605:26892,40606:26829,40607:26836,40608:26855,40609:26837,40610:26934,40611:26898,40612:26884,40613:26839,40614:26851,40615:26917,40616:26873,40617:26848,40618:26863,40619:26920,40620:26922,40621:26906,40622:26915,40623:26913,40624:26822,40625:27001,40626:26999,40627:26972,40628:27000,40629:26987,40630:26964,40631:27006,40632:26990,40633:26937,40634:26996,40635:26941,40636:26969,40637:26928,40638:26977,40639:26974,40640:26973,40641:27009,40642:26986,40643:27058,40644:27054,40645:27088,40646:27071,40647:27073,40648:27091,40649:27070,40650:27086,40651:23528,40652:27082,40653:27101,40654:27067,40655:27075,40656:27047,40657:27182,40658:27025,40659:27040,40660:27036,40661:27029,40662:27060,40663:27102,40664:27112,40665:27138,40666:27163,40667:27135,40668:27402,40669:27129,40670:27122,40671:27111,40672:27141,40673:27057,40674:27166,40675:27117,40676:27156,40677:27115,40678:27146,40679:27154,40680:27329,40681:27171,40682:27155,40683:27204,40684:27148,40685:27250,40686:27190,40687:27256,40688:27207,40689:27234,40690:27225,40691:27238,40692:27208,40693:27192,40694:27170,40695:27280,40696:27277,40697:27296,40698:27268,40699:27298,40700:27299,40768:27287,40769:34327,40770:27323,40771:27331,40772:27330,40773:27320,40774:27315,40775:27308,40776:27358,40777:27345,40778:27359,40779:27306,40780:27354,40781:27370,40782:27387,40783:27397,40784:34326,40785:27386,40786:27410,40787:27414,40788:39729,40789:27423,40790:27448,40791:27447,40792:30428,40793:27449,40794:39150,40795:27463,40796:27459,40797:27465,40798:27472,40799:27481,40800:27476,40801:27483,40802:27487,40803:27489,40804:27512,40805:27513,40806:27519,40807:27520,40808:27524,40809:27523,40810:27533,40811:27544,40812:27541,40813:27550,40814:27556,40815:27562,40816:27563,40817:27567,40818:27570,40819:27569,40820:27571,40821:27575,40822:27580,40823:27590,40824:27595,40825:27603,40826:27615,40827:27628,40828:27627,40829:27635,40830:27631,40832:40638,40833:27656,40834:27667,40835:27668,40836:27675,40837:27684,40838:27683,40839:27742,40840:27733,40841:27746,40842:27754,40843:27778,40844:27789,40845:27802,40846:27777,40847:27803,40848:27774,40849:27752,40850:27763,40851:27794,40852:27792,40853:27844,40854:27889,40855:27859,40856:27837,40857:27863,40858:27845,40859:27869,40860:27822,40861:27825,40862:27838,40863:27834,40864:27867,40865:27887,40866:27865,40867:27882,40868:27935,40869:34893,40870:27958,40871:27947,40872:27965,40873:27960,40874:27929,40875:27957,40876:27955,40877:27922,40878:27916,40879:28003,40880:28051,40881:28004,40882:27994,40883:28025,40884:27993,40885:28046,40886:28053,40887:28644,40888:28037,40889:28153,40890:28181,40891:28170,40892:28085,40893:28103,40894:28134,40895:28088,40896:28102,40897:28140,40898:28126,40899:28108,40900:28136,40901:28114,40902:28101,40903:28154,40904:28121,40905:28132,40906:28117,40907:28138,40908:28142,40909:28205,40910:28270,40911:28206,40912:28185,40913:28274,40914:28255,40915:28222,40916:28195,40917:28267,40918:28203,40919:28278,40920:28237,40921:28191,40922:28227,40923:28218,40924:28238,40925:28196,40926:28415,40927:28189,40928:28216,40929:28290,40930:28330,40931:28312,40932:28361,40933:28343,40934:28371,40935:28349,40936:28335,40937:28356,40938:28338,40939:28372,40940:28373,40941:28303,40942:28325,40943:28354,40944:28319,40945:28481,40946:28433,40947:28748,40948:28396,40949:28408,40950:28414,40951:28479,40952:28402,40953:28465,40954:28399,40955:28466,40956:28364,161:65377,162:65378,163:65379,164:65380,165:65381,166:65382,167:65383,168:65384,169:65385,170:65386,171:65387,172:65388,173:65389,174:65390,175:65391,176:65392,177:65393,178:65394,179:65395,180:65396,181:65397,182:65398,183:65399,184:65400,185:65401,186:65402,187:65403,188:65404,189:65405,190:65406,191:65407,192:65408,193:65409,194:65410,195:65411,196:65412,197:65413,198:65414,199:65415,200:65416,201:65417,202:65418,203:65419,204:65420,205:65421,206:65422,207:65423,208:65424,209:65425,210:65426,211:65427,212:65428,213:65429,214:65430,215:65431,216:65432,217:65433,218:65434,219:65435,220:65436,221:65437,222:65438,223:65439,57408:28478,57409:28435,57410:28407,57411:28550,57412:28538,57413:28536,57414:28545,57415:28544,57416:28527,57417:28507,57418:28659,57419:28525,57420:28546,57421:28540,57422:28504,57423:28558,57424:28561,57425:28610,57426:28518,57427:28595,57428:28579,57429:28577,57430:28580,57431:28601,57432:28614,57433:28586,57434:28639,57435:28629,57436:28652,57437:28628,57438:28632,57439:28657,57440:28654,57441:28635,57442:28681,57443:28683,57444:28666,57445:28689,57446:28673,57447:28687,57448:28670,57449:28699,57450:28698,57451:28532,57452:28701,57453:28696,57454:28703,57455:28720,57456:28734,57457:28722,57458:28753,57459:28771,57460:28825,57461:28818,57462:28847,57463:28913,57464:28844,57465:28856,57466:28851,57467:28846,57468:28895,57469:28875,57470:28893,57472:28889,57473:28937,57474:28925,57475:28956,57476:28953,57477:29029,57478:29013,57479:29064,57480:29030,57481:29026,57482:29004,57483:29014,57484:29036,57485:29071,57486:29179,57487:29060,57488:29077,57489:29096,57490:29100,57491:29143,57492:29113,57493:29118,57494:29138,57495:29129,57496:29140,57497:29134,57498:29152,57499:29164,57500:29159,57501:29173,57502:29180,57503:29177,57504:29183,57505:29197,57506:29200,57507:29211,57508:29224,57509:29229,57510:29228,57511:29232,57512:29234,57513:29243,57514:29244,57515:29247,57516:29248,57517:29254,57518:29259,57519:29272,57520:29300,57521:29310,57522:29314,57523:29313,57524:29319,57525:29330,57526:29334,57527:29346,57528:29351,57529:29369,57530:29362,57531:29379,57532:29382,57533:29380,57534:29390,57535:29394,57536:29410,57537:29408,57538:29409,57539:29433,57540:29431,57541:20495,57542:29463,57543:29450,57544:29468,57545:29462,57546:29469,57547:29492,57548:29487,57549:29481,57550:29477,57551:29502,57552:29518,57553:29519,57554:40664,57555:29527,57556:29546,57557:29544,57558:29552,57559:29560,57560:29557,57561:29563,57562:29562,57563:29640,57564:29619,57565:29646,57566:29627,57567:29632,57568:29669,57569:29678,57570:29662,57571:29858,57572:29701,57573:29807,57574:29733,57575:29688,57576:29746,57577:29754,57578:29781,57579:29759,57580:29791,57581:29785,57582:29761,57583:29788,57584:29801,57585:29808,57586:29795,57587:29802,57588:29814,57589:29822,57590:29835,57591:29854,57592:29863,57593:29898,57594:29903,57595:29908,57596:29681,57664:29920,57665:29923,57666:29927,57667:29929,57668:29934,57669:29938,57670:29936,57671:29937,57672:29944,57673:29943,57674:29956,57675:29955,57676:29957,57677:29964,57678:29966,57679:29965,57680:29973,57681:29971,57682:29982,57683:29990,57684:29996,57685:30012,57686:30020,57687:30029,57688:30026,57689:30025,57690:30043,57691:30022,57692:30042,57693:30057,57694:30052,57695:30055,57696:30059,57697:30061,57698:30072,57699:30070,57700:30086,57701:30087,57702:30068,57703:30090,57704:30089,57705:30082,57706:30100,57707:30106,57708:30109,57709:30117,57710:30115,57711:30146,57712:30131,57713:30147,57714:30133,57715:30141,57716:30136,57717:30140,57718:30129,57719:30157,57720:30154,57721:30162,57722:30169,57723:30179,57724:30174,57725:30206,57726:30207,57728:30204,57729:30209,57730:30192,57731:30202,57732:30194,57733:30195,57734:30219,57735:30221,57736:30217,57737:30239,57738:30247,57739:30240,57740:30241,57741:30242,57742:30244,57743:30260,57744:30256,57745:30267,57746:30279,57747:30280,57748:30278,57749:30300,57750:30296,57751:30305,57752:30306,57753:30312,57754:30313,57755:30314,57756:30311,57757:30316,57758:30320,57759:30322,57760:30326,57761:30328,57762:30332,57763:30336,57764:30339,57765:30344,57766:30347,57767:30350,57768:30358,57769:30355,57770:30361,57771:30362,57772:30384,57773:30388,57774:30392,57775:30393,57776:30394,57777:30402,57778:30413,57779:30422,57780:30418,57781:30430,57782:30433,57783:30437,57784:30439,57785:30442,57786:34351,57787:30459,57788:30472,57789:30471,57790:30468,57791:30505,57792:30500,57793:30494,57794:30501,57795:30502,57796:30491,57797:30519,57798:30520,57799:30535,57800:30554,57801:30568,57802:30571,57803:30555,57804:30565,57805:30591,57806:30590,57807:30585,57808:30606,57809:30603,57810:30609,57811:30624,57812:30622,57813:30640,57814:30646,57815:30649,57816:30655,57817:30652,57818:30653,57819:30651,57820:30663,57821:30669,57822:30679,57823:30682,57824:30684,57825:30691,57826:30702,57827:30716,57828:30732,57829:30738,57830:31014,57831:30752,57832:31018,57833:30789,57834:30862,57835:30836,57836:30854,57837:30844,57838:30874,57839:30860,57840:30883,57841:30901,57842:30890,57843:30895,57844:30929,57845:30918,57846:30923,57847:30932,57848:30910,57849:30908,57850:30917,57851:30922,57852:30956,57920:30951,57921:30938,57922:30973,57923:30964,57924:30983,57925:30994,57926:30993,57927:31001,57928:31020,57929:31019,57930:31040,57931:31072,57932:31063,57933:31071,57934:31066,57935:31061,57936:31059,57937:31098,57938:31103,57939:31114,57940:31133,57941:31143,57942:40779,57943:31146,57944:31150,57945:31155,57946:31161,57947:31162,57948:31177,57949:31189,57950:31207,57951:31212,57952:31201,57953:31203,57954:31240,57955:31245,57956:31256,57957:31257,57958:31264,57959:31263,57960:31104,57961:31281,57962:31291,57963:31294,57964:31287,57965:31299,57966:31319,57967:31305,57968:31329,57969:31330,57970:31337,57971:40861,57972:31344,57973:31353,57974:31357,57975:31368,57976:31383,57977:31381,57978:31384,57979:31382,57980:31401,57981:31432,57982:31408,57984:31414,57985:31429,57986:31428,57987:31423,57988:36995,57989:31431,57990:31434,57991:31437,57992:31439,57993:31445,57994:31443,57995:31449,57996:31450,57997:31453,57998:31457,57999:31458,58000:31462,58001:31469,58002:31472,58003:31490,58004:31503,58005:31498,58006:31494,58007:31539,58008:31512,58009:31513,58010:31518,58011:31541,58012:31528,58013:31542,58014:31568,58015:31610,58016:31492,58017:31565,58018:31499,58019:31564,58020:31557,58021:31605,58022:31589,58023:31604,58024:31591,58025:31600,58026:31601,58027:31596,58028:31598,58029:31645,58030:31640,58031:31647,58032:31629,58033:31644,58034:31642,58035:31627,58036:31634,58037:31631,58038:31581,58039:31641,58040:31691,58041:31681,58042:31692,58043:31695,58044:31668,58045:31686,58046:31709,58047:31721,58048:31761,58049:31764,58050:31718,58051:31717,58052:31840,58053:31744,58054:31751,58055:31763,58056:31731,58057:31735,58058:31767,58059:31757,58060:31734,58061:31779,58062:31783,58063:31786,58064:31775,58065:31799,58066:31787,58067:31805,58068:31820,58069:31811,58070:31828,58071:31823,58072:31808,58073:31824,58074:31832,58075:31839,58076:31844,58077:31830,58078:31845,58079:31852,58080:31861,58081:31875,58082:31888,58083:31908,58084:31917,58085:31906,58086:31915,58087:31905,58088:31912,58089:31923,58090:31922,58091:31921,58092:31918,58093:31929,58094:31933,58095:31936,58096:31941,58097:31938,58098:31960,58099:31954,58100:31964,58101:31970,58102:39739,58103:31983,58104:31986,58105:31988,58106:31990,58107:31994,58108:32006,58176:32002,58177:32028,58178:32021,58179:32010,58180:32069,58181:32075,58182:32046,58183:32050,58184:32063,58185:32053,58186:32070,58187:32115,58188:32086,58189:32078,58190:32114,58191:32104,58192:32110,58193:32079,58194:32099,58195:32147,58196:32137,58197:32091,58198:32143,58199:32125,58200:32155,58201:32186,58202:32174,58203:32163,58204:32181,58205:32199,58206:32189,58207:32171,58208:32317,58209:32162,58210:32175,58211:32220,58212:32184,58213:32159,58214:32176,58215:32216,58216:32221,58217:32228,58218:32222,58219:32251,58220:32242,58221:32225,58222:32261,58223:32266,58224:32291,58225:32289,58226:32274,58227:32305,58228:32287,58229:32265,58230:32267,58231:32290,58232:32326,58233:32358,58234:32315,58235:32309,58236:32313,58237:32323,58238:32311,58240:32306,58241:32314,58242:32359,58243:32349,58244:32342,58245:32350,58246:32345,58247:32346,58248:32377,58249:32362,58250:32361,58251:32380,58252:32379,58253:32387,58254:32213,58255:32381,58256:36782,58257:32383,58258:32392,58259:32393,58260:32396,58261:32402,58262:32400,58263:32403,58264:32404,58265:32406,58266:32398,58267:32411,58268:32412,58269:32568,58270:32570,58271:32581,58272:32588,58273:32589,58274:32590,58275:32592,58276:32593,58277:32597,58278:32596,58279:32600,58280:32607,58281:32608,58282:32616,58283:32617,58284:32615,58285:32632,58286:32642,58287:32646,58288:32643,58289:32648,58290:32647,58291:32652,58292:32660,58293:32670,58294:32669,58295:32666,58296:32675,58297:32687,58298:32690,58299:32697,58300:32686,58301:32694,58302:32696,58303:35697,58304:32709,58305:32710,58306:32714,58307:32725,58308:32724,58309:32737,58310:32742,58311:32745,58312:32755,58313:32761,58314:39132,58315:32774,58316:32772,58317:32779,58318:32786,58319:32792,58320:32793,58321:32796,58322:32801,58323:32808,58324:32831,58325:32827,58326:32842,58327:32838,58328:32850,58329:32856,58330:32858,58331:32863,58332:32866,58333:32872,58334:32883,58335:32882,58336:32880,58337:32886,58338:32889,58339:32893,58340:32895,58341:32900,58342:32902,58343:32901,58344:32923,58345:32915,58346:32922,58347:32941,58348:20880,58349:32940,58350:32987,58351:32997,58352:32985,58353:32989,58354:32964,58355:32986,58356:32982,58357:33033,58358:33007,58359:33009,58360:33051,58361:33065,58362:33059,58363:33071,58364:33099,58432:38539,58433:33094,58434:33086,58435:33107,58436:33105,58437:33020,58438:33137,58439:33134,58440:33125,58441:33126,58442:33140,58443:33155,58444:33160,58445:33162,58446:33152,58447:33154,58448:33184,58449:33173,58450:33188,58451:33187,58452:33119,58453:33171,58454:33193,58455:33200,58456:33205,58457:33214,58458:33208,58459:33213,58460:33216,58461:33218,58462:33210,58463:33225,58464:33229,58465:33233,58466:33241,58467:33240,58468:33224,58469:33242,58470:33247,58471:33248,58472:33255,58473:33274,58474:33275,58475:33278,58476:33281,58477:33282,58478:33285,58479:33287,58480:33290,58481:33293,58482:33296,58483:33302,58484:33321,58485:33323,58486:33336,58487:33331,58488:33344,58489:33369,58490:33368,58491:33373,58492:33370,58493:33375,58494:33380,58496:33378,58497:33384,58498:33386,58499:33387,58500:33326,58501:33393,58502:33399,58503:33400,58504:33406,58505:33421,58506:33426,58507:33451,58508:33439,58509:33467,58510:33452,58511:33505,58512:33507,58513:33503,58514:33490,58515:33524,58516:33523,58517:33530,58518:33683,58519:33539,58520:33531,58521:33529,58522:33502,58523:33542,58524:33500,58525:33545,58526:33497,58527:33589,58528:33588,58529:33558,58530:33586,58531:33585,58532:33600,58533:33593,58534:33616,58535:33605,58536:33583,58537:33579,58538:33559,58539:33560,58540:33669,58541:33690,58542:33706,58543:33695,58544:33698,58545:33686,58546:33571,58547:33678,58548:33671,58549:33674,58550:33660,58551:33717,58552:33651,58553:33653,58554:33696,58555:33673,58556:33704,58557:33780,58558:33811,58559:33771,58560:33742,58561:33789,58562:33795,58563:33752,58564:33803,58565:33729,58566:33783,58567:33799,58568:33760,58569:33778,58570:33805,58571:33826,58572:33824,58573:33725,58574:33848,58575:34054,58576:33787,58577:33901,58578:33834,58579:33852,58580:34138,58581:33924,58582:33911,58583:33899,58584:33965,58585:33902,58586:33922,58587:33897,58588:33862,58589:33836,58590:33903,58591:33913,58592:33845,58593:33994,58594:33890,58595:33977,58596:33983,58597:33951,58598:34009,58599:33997,58600:33979,58601:34010,58602:34000,58603:33985,58604:33990,58605:34006,58606:33953,58607:34081,58608:34047,58609:34036,58610:34071,58611:34072,58612:34092,58613:34079,58614:34069,58615:34068,58616:34044,58617:34112,58618:34147,58619:34136,58620:34120,58688:34113,58689:34306,58690:34123,58691:34133,58692:34176,58693:34212,58694:34184,58695:34193,58696:34186,58697:34216,58698:34157,58699:34196,58700:34203,58701:34282,58702:34183,58703:34204,58704:34167,58705:34174,58706:34192,58707:34249,58708:34234,58709:34255,58710:34233,58711:34256,58712:34261,58713:34269,58714:34277,58715:34268,58716:34297,58717:34314,58718:34323,58719:34315,58720:34302,58721:34298,58722:34310,58723:34338,58724:34330,58725:34352,58726:34367,58727:34381,58728:20053,58729:34388,58730:34399,58731:34407,58732:34417,58733:34451,58734:34467,58735:34473,58736:34474,58737:34443,58738:34444,58739:34486,58740:34479,58741:34500,58742:34502,58743:34480,58744:34505,58745:34851,58746:34475,58747:34516,58748:34526,58749:34537,58750:34540,58752:34527,58753:34523,58754:34543,58755:34578,58756:34566,58757:34568,58758:34560,58759:34563,58760:34555,58761:34577,58762:34569,58763:34573,58764:34553,58765:34570,58766:34612,58767:34623,58768:34615,58769:34619,58770:34597,58771:34601,58772:34586,58773:34656,58774:34655,58775:34680,58776:34636,58777:34638,58778:34676,58779:34647,58780:34664,58781:34670,58782:34649,58783:34643,58784:34659,58785:34666,58786:34821,58787:34722,58788:34719,58789:34690,58790:34735,58791:34763,58792:34749,58793:34752,58794:34768,58795:38614,58796:34731,58797:34756,58798:34739,58799:34759,58800:34758,58801:34747,58802:34799,58803:34802,58804:34784,58805:34831,58806:34829,58807:34814,58808:34806,58809:34807,58810:34830,58811:34770,58812:34833,58813:34838,58814:34837,58815:34850,58816:34849,58817:34865,58818:34870,58819:34873,58820:34855,58821:34875,58822:34884,58823:34882,58824:34898,58825:34905,58826:34910,58827:34914,58828:34923,58829:34945,58830:34942,58831:34974,58832:34933,58833:34941,58834:34997,58835:34930,58836:34946,58837:34967,58838:34962,58839:34990,58840:34969,58841:34978,58842:34957,58843:34980,58844:34992,58845:35007,58846:34993,58847:35011,58848:35012,58849:35028,58850:35032,58851:35033,58852:35037,58853:35065,58854:35074,58855:35068,58856:35060,58857:35048,58858:35058,58859:35076,58860:35084,58861:35082,58862:35091,58863:35139,58864:35102,58865:35109,58866:35114,58867:35115,58868:35137,58869:35140,58870:35131,58871:35126,58872:35128,58873:35148,58874:35101,58875:35168,58876:35166,58944:35174,58945:35172,58946:35181,58947:35178,58948:35183,58949:35188,58950:35191,58951:35198,58952:35203,58953:35208,58954:35210,58955:35219,58956:35224,58957:35233,58958:35241,58959:35238,58960:35244,58961:35247,58962:35250,58963:35258,58964:35261,58965:35263,58966:35264,58967:35290,58968:35292,58969:35293,58970:35303,58971:35316,58972:35320,58973:35331,58974:35350,58975:35344,58976:35340,58977:35355,58978:35357,58979:35365,58980:35382,58981:35393,58982:35419,58983:35410,58984:35398,58985:35400,58986:35452,58987:35437,58988:35436,58989:35426,58990:35461,58991:35458,58992:35460,58993:35496,58994:35489,58995:35473,58996:35493,58997:35494,58998:35482,58999:35491,59000:35524,59001:35533,59002:35522,59003:35546,59004:35563,59005:35571,59006:35559,59008:35556,59009:35569,59010:35604,59011:35552,59012:35554,59013:35575,59014:35550,59015:35547,59016:35596,59017:35591,59018:35610,59019:35553,59020:35606,59021:35600,59022:35607,59023:35616,59024:35635,59025:38827,59026:35622,59027:35627,59028:35646,59029:35624,59030:35649,59031:35660,59032:35663,59033:35662,59034:35657,59035:35670,59036:35675,59037:35674,59038:35691,59039:35679,59040:35692,59041:35695,59042:35700,59043:35709,59044:35712,59045:35724,59046:35726,59047:35730,59048:35731,59049:35734,59050:35737,59051:35738,59052:35898,59053:35905,59054:35903,59055:35912,59056:35916,59057:35918,59058:35920,59059:35925,59060:35938,59061:35948,59062:35960,59063:35962,59064:35970,59065:35977,59066:35973,59067:35978,59068:35981,59069:35982,59070:35988,59071:35964,59072:35992,59073:25117,59074:36013,59075:36010,59076:36029,59077:36018,59078:36019,59079:36014,59080:36022,59081:36040,59082:36033,59083:36068,59084:36067,59085:36058,59086:36093,59087:36090,59088:36091,59089:36100,59090:36101,59091:36106,59092:36103,59093:36111,59094:36109,59095:36112,59096:40782,59097:36115,59098:36045,59099:36116,59100:36118,59101:36199,59102:36205,59103:36209,59104:36211,59105:36225,59106:36249,59107:36290,59108:36286,59109:36282,59110:36303,59111:36314,59112:36310,59113:36300,59114:36315,59115:36299,59116:36330,59117:36331,59118:36319,59119:36323,59120:36348,59121:36360,59122:36361,59123:36351,59124:36381,59125:36382,59126:36368,59127:36383,59128:36418,59129:36405,59130:36400,59131:36404,59132:36426,59200:36423,59201:36425,59202:36428,59203:36432,59204:36424,59205:36441,59206:36452,59207:36448,59208:36394,59209:36451,59210:36437,59211:36470,59212:36466,59213:36476,59214:36481,59215:36487,59216:36485,59217:36484,59218:36491,59219:36490,59220:36499,59221:36497,59222:36500,59223:36505,59224:36522,59225:36513,59226:36524,59227:36528,59228:36550,59229:36529,59230:36542,59231:36549,59232:36552,59233:36555,59234:36571,59235:36579,59236:36604,59237:36603,59238:36587,59239:36606,59240:36618,59241:36613,59242:36629,59243:36626,59244:36633,59245:36627,59246:36636,59247:36639,59248:36635,59249:36620,59250:36646,59251:36659,59252:36667,59253:36665,59254:36677,59255:36674,59256:36670,59257:36684,59258:36681,59259:36678,59260:36686,59261:36695,59262:36700,59264:36706,59265:36707,59266:36708,59267:36764,59268:36767,59269:36771,59270:36781,59271:36783,59272:36791,59273:36826,59274:36837,59275:36834,59276:36842,59277:36847,59278:36999,59279:36852,59280:36869,59281:36857,59282:36858,59283:36881,59284:36885,59285:36897,59286:36877,59287:36894,59288:36886,59289:36875,59290:36903,59291:36918,59292:36917,59293:36921,59294:36856,59295:36943,59296:36944,59297:36945,59298:36946,59299:36878,59300:36937,59301:36926,59302:36950,59303:36952,59304:36958,59305:36968,59306:36975,59307:36982,59308:38568,59309:36978,59310:36994,59311:36989,59312:36993,59313:36992,59314:37002,59315:37001,59316:37007,59317:37032,59318:37039,59319:37041,59320:37045,59321:37090,59322:37092,59323:25160,59324:37083,59325:37122,59326:37138,59327:37145,59328:37170,59329:37168,59330:37194,59331:37206,59332:37208,59333:37219,59334:37221,59335:37225,59336:37235,59337:37234,59338:37259,59339:37257,59340:37250,59341:37282,59342:37291,59343:37295,59344:37290,59345:37301,59346:37300,59347:37306,59348:37312,59349:37313,59350:37321,59351:37323,59352:37328,59353:37334,59354:37343,59355:37345,59356:37339,59357:37372,59358:37365,59359:37366,59360:37406,59361:37375,59362:37396,59363:37420,59364:37397,59365:37393,59366:37470,59367:37463,59368:37445,59369:37449,59370:37476,59371:37448,59372:37525,59373:37439,59374:37451,59375:37456,59376:37532,59377:37526,59378:37523,59379:37531,59380:37466,59381:37583,59382:37561,59383:37559,59384:37609,59385:37647,59386:37626,59387:37700,59388:37678,59456:37657,59457:37666,59458:37658,59459:37667,59460:37690,59461:37685,59462:37691,59463:37724,59464:37728,59465:37756,59466:37742,59467:37718,59468:37808,59469:37804,59470:37805,59471:37780,59472:37817,59473:37846,59474:37847,59475:37864,59476:37861,59477:37848,59478:37827,59479:37853,59480:37840,59481:37832,59482:37860,59483:37914,59484:37908,59485:37907,59486:37891,59487:37895,59488:37904,59489:37942,59490:37931,59491:37941,59492:37921,59493:37946,59494:37953,59495:37970,59496:37956,59497:37979,59498:37984,59499:37986,59500:37982,59501:37994,59502:37417,59503:38000,59504:38005,59505:38007,59506:38013,59507:37978,59508:38012,59509:38014,59510:38017,59511:38015,59512:38274,59513:38279,59514:38282,59515:38292,59516:38294,59517:38296,59518:38297,59520:38304,59521:38312,59522:38311,59523:38317,59524:38332,59525:38331,59526:38329,59527:38334,59528:38346,59529:28662,59530:38339,59531:38349,59532:38348,59533:38357,59534:38356,59535:38358,59536:38364,59537:38369,59538:38373,59539:38370,59540:38433,59541:38440,59542:38446,59543:38447,59544:38466,59545:38476,59546:38479,59547:38475,59548:38519,59549:38492,59550:38494,59551:38493,59552:38495,59553:38502,59554:38514,59555:38508,59556:38541,59557:38552,59558:38549,59559:38551,59560:38570,59561:38567,59562:38577,59563:38578,59564:38576,59565:38580,59566:38582,59567:38584,59568:38585,59569:38606,59570:38603,59571:38601,59572:38605,59573:35149,59574:38620,59575:38669,59576:38613,59577:38649,59578:38660,59579:38662,59580:38664,59581:38675,59582:38670,59583:38673,59584:38671,59585:38678,59586:38681,59587:38692,59588:38698,59589:38704,59590:38713,59591:38717,59592:38718,59593:38724,59594:38726,59595:38728,59596:38722,59597:38729,59598:38748,59599:38752,59600:38756,59601:38758,59602:38760,59603:21202,59604:38763,59605:38769,59606:38777,59607:38789,59608:38780,59609:38785,59610:38778,59611:38790,59612:38795,59613:38799,59614:38800,59615:38812,59616:38824,59617:38822,59618:38819,59619:38835,59620:38836,59621:38851,59622:38854,59623:38856,59624:38859,59625:38876,59626:38893,59627:40783,59628:38898,59629:31455,59630:38902,59631:38901,59632:38927,59633:38924,59634:38968,59635:38948,59636:38945,59637:38967,59638:38973,59639:38982,59640:38991,59641:38987,59642:39019,59643:39023,59644:39024,59712:39025,59713:39028,59714:39027,59715:39082,59716:39087,59717:39089,59718:39094,59719:39108,59720:39107,59721:39110,59722:39145,59723:39147,59724:39171,59725:39177,59726:39186,59727:39188,59728:39192,59729:39201,59730:39197,59731:39198,59732:39204,59733:39200,59734:39212,59735:39214,59736:39229,59737:39230,59738:39234,59739:39241,59740:39237,59741:39248,59742:39243,59743:39249,59744:39250,59745:39244,59746:39253,59747:39319,59748:39320,59749:39333,59750:39341,59751:39342,59752:39356,59753:39391,59754:39387,59755:39389,59756:39384,59757:39377,59758:39405,59759:39406,59760:39409,59761:39410,59762:39419,59763:39416,59764:39425,59765:39439,59766:39429,59767:39394,59768:39449,59769:39467,59770:39479,59771:39493,59772:39490,59773:39488,59774:39491,59776:39486,59777:39509,59778:39501,59779:39515,59780:39511,59781:39519,59782:39522,59783:39525,59784:39524,59785:39529,59786:39531,59787:39530,59788:39597,59789:39600,59790:39612,59791:39616,59792:39631,59793:39633,59794:39635,59795:39636,59796:39646,59797:39647,59798:39650,59799:39651,59800:39654,59801:39663,59802:39659,59803:39662,59804:39668,59805:39665,59806:39671,59807:39675,59808:39686,59809:39704,59810:39706,59811:39711,59812:39714,59813:39715,59814:39717,59815:39719,59816:39720,59817:39721,59818:39722,59819:39726,59820:39727,59821:39730,59822:39748,59823:39747,59824:39759,59825:39757,59826:39758,59827:39761,59828:39768,59829:39796,59830:39827,59831:39811,59832:39825,59833:39830,59834:39831,59835:39839,59836:39840,59837:39848,59838:39860,59839:39872,59840:39882,59841:39865,59842:39878,59843:39887,59844:39889,59845:39890,59846:39907,59847:39906,59848:39908,59849:39892,59850:39905,59851:39994,59852:39922,59853:39921,59854:39920,59855:39957,59856:39956,59857:39945,59858:39955,59859:39948,59860:39942,59861:39944,59862:39954,59863:39946,59864:39940,59865:39982,59866:39963,59867:39973,59868:39972,59869:39969,59870:39984,59871:40007,59872:39986,59873:40006,59874:39998,59875:40026,59876:40032,59877:40039,59878:40054,59879:40056,59880:40167,59881:40172,59882:40176,59883:40201,59884:40200,59885:40171,59886:40195,59887:40198,59888:40234,59889:40230,59890:40367,59891:40227,59892:40223,59893:40260,59894:40213,59895:40210,59896:40257,59897:40255,59898:40254,59899:40262,59900:40264,59968:40285,59969:40286,59970:40292,59971:40273,59972:40272,59973:40281,59974:40306,59975:40329,59976:40327,59977:40363,59978:40303,59979:40314,59980:40346,59981:40356,59982:40361,59983:40370,59984:40388,59985:40385,59986:40379,59987:40376,59988:40378,59989:40390,59990:40399,59991:40386,59992:40409,59993:40403,59994:40440,59995:40422,59996:40429,59997:40431,59998:40445,59999:40474,60000:40475,60001:40478,60002:40565,60003:40569,60004:40573,60005:40577,60006:40584,60007:40587,60008:40588,60009:40594,60010:40597,60011:40593,60012:40605,60013:40613,60014:40617,60015:40632,60016:40618,60017:40621,60018:38753,60019:40652,60020:40654,60021:40655,60022:40656,60023:40660,60024:40668,60025:40670,60026:40669,60027:40672,60028:40677,60029:40680,60030:40687,60032:40692,60033:40694,60034:40695,60035:40697,60036:40699,60037:40700,60038:40701,60039:40711,60040:40712,60041:30391,60042:40725,60043:40737,60044:40748,60045:40766,60046:40778,60047:40786,60048:40788,60049:40803,60050:40799,60051:40800,60052:40801,60053:40806,60054:40807,60055:40812,60056:40810,60057:40823,60058:40818,60059:40822,60060:40853,60061:40860,60062:40864,60063:22575,60064:27079,60065:36953,60066:29796,60067:20956,60068:29081}},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(1),X=$(2);function z(W,U,H,F){var O;if(U.degree()<H.degree())O=[H,U],U=O[0],H=O[1];var N=U,_=H,A=W.zero,L=W.one;while(_.degree()>=F/2){var B=N,M=A;if(N=_,A=L,N.isZero())return null;_=B;var C=W.zero,R=N.getCoefficient(N.degree()),I=W.inverse(R);while(_.degree()>=N.degree()&&!_.isZero()){var P=_.degree()-N.degree(),V=W.multiply(_.getCoefficient(_.degree()),I);C=C.addOrSubtract(W.buildMonomial(P,V)),_=_.addOrSubtract(N.multiplyByMonomial(P,V))}if(L=C.multiplyPoly(A).addOrSubtract(M),_.degree()>=N.degree())return null}var y=L.getCoefficient(0);if(y===0)return null;var k=W.inverse(y);return[L.multiply(k),_.multiply(k)]}function K(W,U){var H=U.degree();if(H===1)return[U.getCoefficient(1)];var F=Array(H),O=0;for(var N=1;N<W.size&&O<H;N++)if(U.evaluateAt(N)===0)F[O]=W.inverse(N),O++;if(O!==H)return null;return F}function Y(W,U,H){var F=H.length,O=Array(F);for(var N=0;N<F;N++){var _=W.inverse(H[N]),A=1;for(var L=0;L<F;L++)if(N!==L)A=W.multiply(A,Q.addOrSubtractGF(1,W.multiply(H[L],_)));if(O[N]=W.multiply(U.evaluateAt(_),W.inverse(A)),W.generatorBase!==0)O[N]=W.multiply(O[N],_)}return O}function q(W,U){var H=new Uint8ClampedArray(W.length);H.set(W);var F=new Q.default(285,256,0),O=new X.default(F,H),N=new Uint8ClampedArray(U),_=!1;for(var A=0;A<U;A++){var L=O.evaluateAt(F.exp(A+F.generatorBase));if(N[N.length-1-A]=L,L!==0)_=!0}if(!_)return H;var B=new X.default(F,N),M=z(F,F.buildMonomial(U,1),B,U);if(M===null)return null;var C=K(F,M[0]);if(C==null)return null;var R=Y(F,M[1],C);for(var I=0;I<C.length;I++){var P=H.length-1-F.log(C[I]);if(P<0)return null;H[P]=Q.addOrSubtractGF(H[P],R[I])}return H}J.decode=q},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0}),J.VERSIONS=[{infoBits:null,versionNumber:1,alignmentPatternCenters:[],errorCorrectionLevels:[{ecCodewordsPerBlock:7,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:13,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:13}]},{ecCodewordsPerBlock:17,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:2,alignmentPatternCenters:[6,18],errorCorrectionLevels:[{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:34}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:28}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]}]},{infoBits:null,versionNumber:3,alignmentPatternCenters:[6,22],errorCorrectionLevels:[{ecCodewordsPerBlock:15,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:55}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:13}]}]},{infoBits:null,versionNumber:4,alignmentPatternCenters:[6,26],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:80}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:32}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:5,alignmentPatternCenters:[6,30],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:43}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:11},{numBlocks:2,dataCodewordsPerBlock:12}]}]},{infoBits:null,versionNumber:6,alignmentPatternCenters:[6,34],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:27}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:31892,versionNumber:7,alignmentPatternCenters:[6,22,38],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:78}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:31}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:13},{numBlocks:1,dataCodewordsPerBlock:14}]}]},{infoBits:34236,versionNumber:8,alignmentPatternCenters:[6,24,42],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:97}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:38},{numBlocks:2,dataCodewordsPerBlock:39}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:18},{numBlocks:2,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:14},{numBlocks:2,dataCodewordsPerBlock:15}]}]},{infoBits:39577,versionNumber:9,alignmentPatternCenters:[6,26,46],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:12},{numBlocks:4,dataCodewordsPerBlock:13}]}]},{infoBits:42195,versionNumber:10,alignmentPatternCenters:[6,28,50],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68},{numBlocks:2,dataCodewordsPerBlock:69}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:43},{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]}]},{infoBits:48118,versionNumber:11,alignmentPatternCenters:[6,30,54],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:81}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:50},{numBlocks:4,dataCodewordsPerBlock:51}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:22},{numBlocks:4,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:12},{numBlocks:8,dataCodewordsPerBlock:13}]}]},{infoBits:51042,versionNumber:12,alignmentPatternCenters:[6,32,58],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:92},{numBlocks:2,dataCodewordsPerBlock:93}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:20},{numBlocks:6,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:55367,versionNumber:13,alignmentPatternCenters:[6,34,62],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:37},{numBlocks:1,dataCodewordsPerBlock:38}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:20},{numBlocks:4,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:11},{numBlocks:4,dataCodewordsPerBlock:12}]}]},{infoBits:58893,versionNumber:14,alignmentPatternCenters:[6,26,46,66],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:40},{numBlocks:5,dataCodewordsPerBlock:41}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:16},{numBlocks:5,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:5,dataCodewordsPerBlock:13}]}]},{infoBits:63784,versionNumber:15,alignmentPatternCenters:[6,26,48,70],errorCorrectionLevels:[{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:87},{numBlocks:1,dataCodewordsPerBlock:88}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:41},{numBlocks:5,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:7,dataCodewordsPerBlock:13}]}]},{infoBits:68472,versionNumber:16,alignmentPatternCenters:[6,26,50,74],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:98},{numBlocks:1,dataCodewordsPerBlock:99}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:70749,versionNumber:17,alignmentPatternCenters:[6,30,54,78],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:1,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22},{numBlocks:15,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:17,dataCodewordsPerBlock:15}]}]},{infoBits:76311,versionNumber:18,alignmentPatternCenters:[6,30,56,82],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:120},{numBlocks:1,dataCodewordsPerBlock:121}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:43},{numBlocks:4,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:1,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:19,dataCodewordsPerBlock:15}]}]},{infoBits:79154,versionNumber:19,alignmentPatternCenters:[6,30,58,86],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:113},{numBlocks:4,dataCodewordsPerBlock:114}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:44},{numBlocks:11,dataCodewordsPerBlock:45}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:21},{numBlocks:4,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:13},{numBlocks:16,dataCodewordsPerBlock:14}]}]},{infoBits:84390,versionNumber:20,alignmentPatternCenters:[6,34,62,90],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:41},{numBlocks:13,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:5,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:15},{numBlocks:10,dataCodewordsPerBlock:16}]}]},{infoBits:87683,versionNumber:21,alignmentPatternCenters:[6,28,50,72,94],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:116},{numBlocks:4,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:16},{numBlocks:6,dataCodewordsPerBlock:17}]}]},{infoBits:92361,versionNumber:22,alignmentPatternCenters:[6,26,50,74,98],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:111},{numBlocks:7,dataCodewordsPerBlock:112}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:13}]}]},{infoBits:96236,versionNumber:23,alignmentPatternCenters:[6,30,54,74,102],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:121},{numBlocks:5,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:47},{numBlocks:14,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:16,dataCodewordsPerBlock:15},{numBlocks:14,dataCodewordsPerBlock:16}]}]},{infoBits:102084,versionNumber:24,alignmentPatternCenters:[6,28,54,80,106],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:45},{numBlocks:14,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:30,dataCodewordsPerBlock:16},{numBlocks:2,dataCodewordsPerBlock:17}]}]},{infoBits:102881,versionNumber:25,alignmentPatternCenters:[6,32,58,84,110],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:106},{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:47},{numBlocks:13,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:110507,versionNumber:26,alignmentPatternCenters:[6,30,58,86,114],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:114},{numBlocks:2,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:46},{numBlocks:4,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:28,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:33,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]}]},{infoBits:110734,versionNumber:27,alignmentPatternCenters:[6,34,62,90,118],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:23},{numBlocks:26,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:117786,versionNumber:28,alignmentPatternCenters:[6,26,50,74,98,122],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:117},{numBlocks:10,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:45},{numBlocks:23,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:24},{numBlocks:31,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:31,dataCodewordsPerBlock:16}]}]},{infoBits:119615,versionNumber:29,alignmentPatternCenters:[6,30,54,78,102,126],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:116},{numBlocks:7,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:21,dataCodewordsPerBlock:45},{numBlocks:7,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:23},{numBlocks:37,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:26,dataCodewordsPerBlock:16}]}]},{infoBits:126325,versionNumber:30,alignmentPatternCenters:[6,26,52,78,104,130],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:115},{numBlocks:10,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:47},{numBlocks:10,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:25,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:25,dataCodewordsPerBlock:16}]}]},{infoBits:127568,versionNumber:31,alignmentPatternCenters:[6,30,56,82,108,134],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:3,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:46},{numBlocks:29,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:24},{numBlocks:1,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:133589,versionNumber:32,alignmentPatternCenters:[6,34,60,86,112,138],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:24},{numBlocks:35,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:35,dataCodewordsPerBlock:16}]}]},{infoBits:136944,versionNumber:33,alignmentPatternCenters:[6,30,58,86,114,142],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:21,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:24},{numBlocks:19,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:141498,versionNumber:34,alignmentPatternCenters:[6,34,62,90,118,146],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:6,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:44,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:59,dataCodewordsPerBlock:16},{numBlocks:1,dataCodewordsPerBlock:17}]}]},{infoBits:145311,versionNumber:35,alignmentPatternCenters:[6,30,54,78,102,126,150],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:121},{numBlocks:7,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:47},{numBlocks:26,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:39,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:41,dataCodewordsPerBlock:16}]}]},{infoBits:150283,versionNumber:36,alignmentPatternCenters:[6,24,50,76,102,128,154],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:121},{numBlocks:14,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:47},{numBlocks:34,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:46,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:64,dataCodewordsPerBlock:16}]}]},{infoBits:152622,versionNumber:37,alignmentPatternCenters:[6,28,54,80,106,132,158],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:46},{numBlocks:14,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:49,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:24,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:158308,versionNumber:38,alignmentPatternCenters:[6,32,58,84,110,136,162],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:122},{numBlocks:18,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:46},{numBlocks:32,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:48,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:15},{numBlocks:32,dataCodewordsPerBlock:16}]}]},{infoBits:161089,versionNumber:39,alignmentPatternCenters:[6,26,54,82,110,138,166],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:40,dataCodewordsPerBlock:47},{numBlocks:7,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:43,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:15},{numBlocks:67,dataCodewordsPerBlock:16}]}]},{infoBits:167017,versionNumber:40,alignmentPatternCenters:[6,30,58,86,114,142,170],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:118},{numBlocks:6,dataCodewordsPerBlock:119}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:18,dataCodewordsPerBlock:47},{numBlocks:31,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:24},{numBlocks:34,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:15},{numBlocks:61,dataCodewordsPerBlock:16}]}]}]},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=$(0);function X(q,W,U,H){var F=q.x-W.x+U.x-H.x,O=q.y-W.y+U.y-H.y;if(F===0&&O===0)return{a11:W.x-q.x,a12:W.y-q.y,a13:0,a21:U.x-W.x,a22:U.y-W.y,a23:0,a31:q.x,a32:q.y,a33:1};else{var N=W.x-U.x,_=H.x-U.x,A=W.y-U.y,L=H.y-U.y,B=N*L-_*A,M=(F*L-_*O)/B,C=(N*O-F*A)/B;return{a11:W.x-q.x+M*W.x,a12:W.y-q.y+M*W.y,a13:M,a21:H.x-q.x+C*H.x,a22:H.y-q.y+C*H.y,a23:C,a31:q.x,a32:q.y,a33:1}}}function z(q,W,U,H){var F=X(q,W,U,H);return{a11:F.a22*F.a33-F.a23*F.a32,a12:F.a13*F.a32-F.a12*F.a33,a13:F.a12*F.a23-F.a13*F.a22,a21:F.a23*F.a31-F.a21*F.a33,a22:F.a11*F.a33-F.a13*F.a31,a23:F.a13*F.a21-F.a11*F.a23,a31:F.a21*F.a32-F.a22*F.a31,a32:F.a12*F.a31-F.a11*F.a32,a33:F.a11*F.a22-F.a12*F.a21}}function K(q,W){return{a11:q.a11*W.a11+q.a21*W.a12+q.a31*W.a13,a12:q.a12*W.a11+q.a22*W.a12+q.a32*W.a13,a13:q.a13*W.a11+q.a23*W.a12+q.a33*W.a13,a21:q.a11*W.a21+q.a21*W.a22+q.a31*W.a23,a22:q.a12*W.a21+q.a22*W.a22+q.a32*W.a23,a23:q.a13*W.a21+q.a23*W.a22+q.a33*W.a23,a31:q.a11*W.a31+q.a21*W.a32+q.a31*W.a33,a32:q.a12*W.a31+q.a22*W.a32+q.a32*W.a33,a33:q.a13*W.a31+q.a23*W.a32+q.a33*W.a33}}function Y(q,W){var U=z({x:3.5,y:3.5},{x:W.dimension-3.5,y:3.5},{x:W.dimension-6.5,y:W.dimension-6.5},{x:3.5,y:W.dimension-3.5}),H=X(W.topLeft,W.topRight,W.alignmentPattern,W.bottomLeft),F=K(H,U),O=Q.BitMatrix.createEmpty(W.dimension,W.dimension),N=function(C,R){var I=F.a13*C+F.a23*R+F.a33;return{x:(F.a11*C+F.a21*R+F.a31)/I,y:(F.a12*C+F.a22*R+F.a32)/I}};for(var _=0;_<W.dimension;_++)for(var A=0;A<W.dimension;A++){var L=A+0.5,B=_+0.5,M=N(L,B);O.set(A,_,q.get(Math.floor(M.x),Math.floor(M.y)))}return{matrix:O,mappingFunction:N}}J.extract=Y},function(Z,J,$){Object.defineProperty(J,"__esModule",{value:!0});var Q=4,X=0.5,z=1.5,K=function(L,B){return Math.sqrt(Math.pow(B.x-L.x,2)+Math.pow(B.y-L.y,2))};function Y(L){return L.reduce(function(B,M){return B+M})}function q(L,B,M){var C,R,I,P,V=K(L,B),y=K(B,M),k=K(L,M),j,w,u;if(y>=V&&y>=k)C=[B,L,M],j=C[0],w=C[1],u=C[2];else if(k>=y&&k>=V)R=[L,B,M],j=R[0],w=R[1],u=R[2];else I=[L,M,B],j=I[0],w=I[1],u=I[2];if((u.x-w.x)*(j.y-w.y)-(u.y-w.y)*(j.x-w.x)<0)P=[u,j],j=P[0],u=P[1];return{bottomLeft:j,topLeft:w,topRight:u}}function W(L,B,M,C){var R=(Y(H(L,M,C,5))/7+Y(H(L,B,C,5))/7+Y(H(M,L,C,5))/7+Y(H(B,L,C,5))/7)/4;if(R<1)throw Error("Invalid module size");var I=Math.round(K(L,B)/R),P=Math.round(K(L,M)/R),V=Math.floor((I+P)/2)+7;switch(V%4){case 0:V++;break;case 2:V--;break}return{dimension:V,moduleSize:R}}function U(L,B,M,C){var R=[{x:Math.floor(L.x),y:Math.floor(L.y)}],I=Math.abs(B.y-L.y)>Math.abs(B.x-L.x),P,V,y,k;if(I)P=Math.floor(L.y),V=Math.floor(L.x),y=Math.floor(B.y),k=Math.floor(B.x);else P=Math.floor(L.x),V=Math.floor(L.y),y=Math.floor(B.x),k=Math.floor(B.y);var j=Math.abs(y-P),w=Math.abs(k-V),u=Math.floor(-j/2),l=P<y?1:-1,v=V<k?1:-1,S=!0;for(var D=P,x=V;D!==y+l;D+=l){var T=I?x:D,m=I?D:x;if(M.get(T,m)!==S){if(S=!S,R.push({x:T,y:m}),R.length===C+1)break}if(u+=w,u>0){if(x===k)break;x+=v,u-=j}}var a=[];for(var h=0;h<C;h++)if(R[h]&&R[h+1])a.push(K(R[h],R[h+1]));else a.push(0);return a}function H(L,B,M,C){var R,I=B.y-L.y,P=B.x-L.x,V=U(L,B,M,Math.ceil(C/2)),y=U(L,{x:L.x-P,y:L.y-I},M,Math.ceil(C/2)),k=V.shift()+y.shift()-1;return(R=y.concat(k)).concat.apply(R,V)}function F(L,B){var M=Y(L)/Y(B),C=0;return B.forEach(function(R,I){C+=Math.pow(L[I]-R*M,2)}),{averageSize:M,error:C}}function O(L,B,M){try{var C=H(L,{x:-1,y:L.y},M,B.length),R=H(L,{x:L.x,y:-1},M,B.length),I={x:Math.max(0,L.x-L.y)-1,y:Math.max(0,L.y-L.x)-1},P=H(L,I,M,B.length),V={x:Math.min(M.width,L.x+L.y)+1,y:Math.min(M.height,L.y+L.x)+1},y=H(L,V,M,B.length),k=F(C,B),j=F(R,B),w=F(P,B),u=F(y,B),l=Math.sqrt(k.error*k.error+j.error*j.error+w.error*w.error+u.error*u.error),v=(k.averageSize+j.averageSize+w.averageSize+u.averageSize)/4,S=(Math.pow(k.averageSize-v,2)+Math.pow(j.averageSize-v,2)+Math.pow(w.averageSize-v,2)+Math.pow(u.averageSize-v,2))/v;return l+S}catch(D){return 1/0}}function N(L,B){var M=Math.round(B.x);while(L.get(M,Math.round(B.y)))M--;var C=Math.round(B.x);while(L.get(C,Math.round(B.y)))C++;var R=(M+C)/2,I=Math.round(B.y);while(L.get(Math.round(R),I))I--;var P=Math.round(B.y);while(L.get(Math.round(R),P))P++;var V=(I+P)/2;return{x:R,y:V}}function _(L){var B=[],M=[],C=[],R=[],I=function(T){var m=0,a=!1,h=[0,0,0,0,0],s=function(p){var X0=L.get(p,T);if(X0===a)m++;else{h=[h[1],h[2],h[3],h[4],m],m=1,a=X0;var F0=Y(h)/7,j0=Math.abs(h[0]-F0)<F0&&Math.abs(h[1]-F0)<F0&&Math.abs(h[2]-3*F0)<3*F0&&Math.abs(h[3]-F0)<F0&&Math.abs(h[4]-F0)<F0&&!X0,C0=Y(h.slice(-3))/3,p0=Math.abs(h[2]-C0)<C0&&Math.abs(h[3]-C0)<C0&&Math.abs(h[4]-C0)<C0&&X0;if(j0){var w0=p-h[3]-h[4],o0=w0-h[2],c0={startX:o0,endX:w0,y:T},R0=M.filter(function(K0){return o0>=K0.bottom.startX&&o0<=K0.bottom.endX||w0>=K0.bottom.startX&&o0<=K0.bottom.endX||o0<=K0.bottom.startX&&w0>=K0.bottom.endX&&(h[2]/(K0.bottom.endX-K0.bottom.startX)<z&&h[2]/(K0.bottom.endX-K0.bottom.startX)>X)});if(R0.length>0)R0[0].bottom=c0;else M.push({top:c0,bottom:c0})}if(p0){var d=p-h[4],i=d-h[3],c0={startX:i,y:T,endX:d},R0=R.filter(function(P0){return i>=P0.bottom.startX&&i<=P0.bottom.endX||d>=P0.bottom.startX&&i<=P0.bottom.endX||i<=P0.bottom.startX&&d>=P0.bottom.endX&&(h[2]/(P0.bottom.endX-P0.bottom.startX)<z&&h[2]/(P0.bottom.endX-P0.bottom.startX)>X)});if(R0.length>0)R0[0].bottom=c0;else R.push({top:c0,bottom:c0})}}};for(var E=-1;E<=L.width;E++)s(E);B.push.apply(B,M.filter(function(p){return p.bottom.y!==T&&p.bottom.y-p.top.y>=2})),M=M.filter(function(p){return p.bottom.y===T}),C.push.apply(C,R.filter(function(p){return p.bottom.y!==T})),R=R.filter(function(p){return p.bottom.y===T})};for(var P=0;P<=L.height;P++)I(P);B.push.apply(B,M.filter(function(T){return T.bottom.y-T.top.y>=2})),C.push.apply(C,R);var V=B.filter(function(T){return T.bottom.y-T.top.y>=2}).map(function(T){var m=(T.top.startX+T.top.endX+T.bottom.startX+T.bottom.endX)/4,a=(T.top.y+T.bottom.y+1)/2;if(!L.get(Math.round(m),Math.round(a)))return;var h=[T.top.endX-T.top.startX,T.bottom.endX-T.bottom.startX,T.bottom.y-T.top.y+1],s=Y(h)/h.length,E=O({x:Math.round(m),y:Math.round(a)},[1,1,3,1,1],L);return{score:E,x:m,y:a,size:s}}).filter(function(T){return!!T}).sort(function(T,m){return T.score-m.score}).map(function(T,m,a){if(m>Q)return null;var h=a.filter(function(E,p){return m!==p}).map(function(E){return{x:E.x,y:E.y,score:E.score+Math.pow(E.size-T.size,2)/T.size,size:E.size}}).sort(function(E,p){return E.score-p.score});if(h.length<2)return null;var s=T.score+h[0].score+h[1].score;return{points:[T].concat(h.slice(0,2)),score:s}}).filter(function(T){return!!T}).sort(function(T,m){return T.score-m.score});if(V.length===0)return null;var y=q(V[0].points[0],V[0].points[1],V[0].points[2]),k=y.topRight,j=y.topLeft,w=y.bottomLeft,u=A(L,C,k,j,w),l=[];if(u)l.push({alignmentPattern:{x:u.alignmentPattern.x,y:u.alignmentPattern.y},bottomLeft:{x:w.x,y:w.y},dimension:u.dimension,topLeft:{x:j.x,y:j.y},topRight:{x:k.x,y:k.y}});var v=N(L,k),S=N(L,j),D=N(L,w),x=A(L,C,v,S,D);if(x)l.push({alignmentPattern:{x:x.alignmentPattern.x,y:x.alignmentPattern.y},bottomLeft:{x:D.x,y:D.y},topLeft:{x:S.x,y:S.y},topRight:{x:v.x,y:v.y},dimension:x.dimension});if(l.length===0)return null;return l}J.locate=_;function A(L,B,M,C,R){var I,P,V;try{I=W(C,M,R,L),P=I.dimension,V=I.moduleSize}catch(v){return null}var y={x:M.x-C.x+R.x,y:M.y-C.y+R.y},k=(K(C,R)+K(C,M))/2/V,j=1-3/k,w={x:C.x+j*(y.x-C.x),y:C.y+j*(y.y-C.y)},u=B.map(function(v){var S=(v.top.startX+v.top.endX+v.bottom.startX+v.bottom.endX)/4,D=(v.top.y+v.bottom.y+1)/2;if(!L.get(Math.floor(S),Math.floor(D)))return;var x=[v.top.endX-v.top.startX,v.bottom.endX-v.bottom.startX,v.bottom.y-v.top.y+1],T=Y(x)/x.length,m=O({x:Math.floor(S),y:Math.floor(D)},[1,1,1],L),a=m+K({x:S,y:D},w);return{x:S,y:D,score:a}}).filter(function(v){return!!v}).sort(function(v,S){return v.score-S.score}),l=k>=15&&u.length?u[0]:w;return{alignmentPattern:l,dimension:P}}}]).default})});var aY=S0((yy,lY)=>{function DY(Z){if(Z instanceof Map)Z.clear=Z.delete=Z.set=function(){throw Error("map is read-only")};else if(Z instanceof Set)Z.add=Z.clear=Z.delete=function(){throw Error("set is read-only")};return Object.freeze(Z),Object.getOwnPropertyNames(Z).forEach((J)=>{let $=Z[J],Q=typeof $;if((Q==="object"||Q==="function")&&!Object.isFrozen($))DY($)}),Z}class E${constructor(Z){if(Z.data===void 0)Z.data={};this.data=Z.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function SY(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function U8(Z,...J){let $=Object.create(null);for(let Q in Z)$[Q]=Z[Q];return J.forEach(function(Q){for(let X in Q)$[X]=Q[X]}),$}var GA="</span>",CY=(Z)=>{return!!Z.scope},qA=(Z,{prefix:J})=>{if(Z.startsWith("language:"))return Z.replace("language:","language-");if(Z.includes(".")){let $=Z.split(".");return[`${J}${$.shift()}`,...$.map((Q,X)=>`${Q}${"_".repeat(X+1)}`)].join(" ")}return`${J}${Z}`};class bY{constructor(Z,J){this.buffer="",this.classPrefix=J.classPrefix,Z.walk(this)}addText(Z){this.buffer+=SY(Z)}openNode(Z){if(!CY(Z))return;let J=qA(Z.scope,{prefix:this.classPrefix});this.span(J)}closeNode(Z){if(!CY(Z))return;this.buffer+=GA}value(){return this.buffer}span(Z){this.buffer+=`<span class="${Z}">`}}var VY=(Z={})=>{let J={children:[]};return Object.assign(J,Z),J};class w${constructor(){this.rootNode=VY(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(Z){this.top.children.push(Z)}openNode(Z){let J=VY({scope:Z});this.add(J),this.stack.push(J)}closeNode(){if(this.stack.length>1)return this.stack.pop();return}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(Z){return this.constructor._walk(Z,this.rootNode)}static _walk(Z,J){if(typeof J==="string")Z.addText(J);else if(J.children)Z.openNode(J),J.children.forEach(($)=>this._walk(Z,$)),Z.closeNode(J);return Z}static _collapse(Z){if(typeof Z==="string")return;if(!Z.children)return;if(Z.children.every((J)=>typeof J==="string"))Z.children=[Z.children.join("")];else Z.children.forEach((J)=>{w$._collapse(J)})}}class EY extends w${constructor(Z){super();this.options=Z}addText(Z){if(Z==="")return;this.add(Z)}startScope(Z){this.openNode(Z)}endScope(){this.closeNode()}__addSublanguage(Z,J){let $=Z.root;if(J)$.scope=`language:${J}`;this.add($)}toHTML(){return new bY(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function x5(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function wY(Z){return l8("(?=",Z,")")}function WA(Z){return l8("(?:",Z,")*")}function UA(Z){return l8("(?:",Z,")?")}function l8(...Z){return Z.map(($)=>x5($)).join("")}function HA(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function x$(...Z){return"("+(HA(Z).capture?"":"?:")+Z.map((Q)=>x5(Q)).join("|")+")"}function xY(Z){return new RegExp(Z.toString()+"|").exec("").length-1}function FA(Z,J){let $=Z&&Z.exec(J);return $&&$.index===0}var OA=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function v$(Z,{joinWith:J}){let $=0;return Z.map((Q)=>{$+=1;let X=$,z=x5(Q),K="";while(z.length>0){let Y=OA.exec(z);if(!Y){K+=z;break}if(K+=z.substring(0,Y.index),z=z.substring(Y.index+Y[0].length),Y[0][0]==="\\"&&Y[1])K+="\\"+String(Number(Y[1])+X);else if(K+=Y[0],Y[0]==="(")$++}return K}).map((Q)=>`(${Q})`).join(J)}var NA=/\b\B/,vY="[a-zA-Z]\\w*",h$="[a-zA-Z_]\\w*",hY="\\b\\d+(\\.\\d+)?",fY="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",gY="\\b(0b[01]+)",BA="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",_A=(Z={})=>{let J=/^#![ ]*\//;if(Z.binary)Z.begin=l8(J,/.*\b/,Z.binary,/\b.*/);return U8({scope:"meta",begin:J,end:/$/,relevance:0,"on:begin":($,Q)=>{if($.index!==0)Q.ignoreMatch()}},Z)},v5={begin:"\\\\[\\s\\S]",relevance:0},AA={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[v5]},LA={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[v5]},PA={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},j7=function(Z,J,$={}){let Q=U8({scope:"comment",begin:Z,end:J,contains:[]},$);Q.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let X=x$("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return Q.contains.push({begin:l8(/[ ]+/,"(",X,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),Q},MA=j7("//","$"),IA=j7("/\\*","\\*/"),RA=j7("#","$"),CA={scope:"number",begin:hY,relevance:0},VA={scope:"number",begin:fY,relevance:0},yA={scope:"number",begin:gY,relevance:0},kA={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[v5,{begin:/\[/,end:/\]/,relevance:0,contains:[v5]}]},TA={scope:"title",begin:vY,relevance:0},jA={scope:"title",begin:h$,relevance:0},DA={begin:"\\.\\s*"+h$,relevance:0},SA=function(Z){return Object.assign(Z,{"on:begin":(J,$)=>{$.data._beginMatch=J[1]},"on:end":(J,$)=>{if($.data._beginMatch!==J[1])$.ignoreMatch()}})},k7=Object.freeze({__proto__:null,APOS_STRING_MODE:AA,BACKSLASH_ESCAPE:v5,BINARY_NUMBER_MODE:yA,BINARY_NUMBER_RE:gY,COMMENT:j7,C_BLOCK_COMMENT_MODE:IA,C_LINE_COMMENT_MODE:MA,C_NUMBER_MODE:VA,C_NUMBER_RE:fY,END_SAME_AS_BEGIN:SA,HASH_COMMENT_MODE:RA,IDENT_RE:vY,MATCH_NOTHING_RE:NA,METHOD_GUARD:DA,NUMBER_MODE:CA,NUMBER_RE:hY,PHRASAL_WORDS_MODE:PA,QUOTE_STRING_MODE:LA,REGEXP_MODE:kA,RE_STARTERS_RE:BA,SHEBANG:_A,TITLE_MODE:TA,UNDERSCORE_IDENT_RE:h$,UNDERSCORE_TITLE_MODE:jA});function bA(Z,J){if(Z.input[Z.index-1]===".")J.ignoreMatch()}function EA(Z,J){if(Z.className!==void 0)Z.scope=Z.className,delete Z.className}function wA(Z,J){if(!J)return;if(!Z.beginKeywords)return;if(Z.begin="\\b("+Z.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",Z.__beforeBegin=bA,Z.keywords=Z.keywords||Z.beginKeywords,delete Z.beginKeywords,Z.relevance===void 0)Z.relevance=0}function xA(Z,J){if(!Array.isArray(Z.illegal))return;Z.illegal=x$(...Z.illegal)}function vA(Z,J){if(!Z.match)return;if(Z.begin||Z.end)throw Error("begin & end are not supported with match");Z.begin=Z.match,delete Z.match}function hA(Z,J){if(Z.relevance===void 0)Z.relevance=1}var fA=(Z,J)=>{if(!Z.beforeMatch)return;if(Z.starts)throw Error("beforeMatch cannot be used with starts");let $=Object.assign({},Z);Object.keys(Z).forEach((Q)=>{delete Z[Q]}),Z.keywords=$.keywords,Z.begin=l8($.beforeMatch,wY($.begin)),Z.starts={relevance:0,contains:[Object.assign($,{endsParent:!0})]},Z.relevance=0,delete $.beforeMatch},gA=["of","and","for","in","not","or","if","then","parent","list","value"],mA="keyword";function mY(Z,J,$=mA){let Q=Object.create(null);if(typeof Z==="string")X($,Z.split(" "));else if(Array.isArray(Z))X($,Z);else Object.keys(Z).forEach(function(z){Object.assign(Q,mY(Z[z],J,z))});return Q;function X(z,K){if(J)K=K.map((Y)=>Y.toLowerCase());K.forEach(function(Y){let q=Y.split("|");Q[q[0]]=[z,uA(q[0],q[1])]})}}function uA(Z,J){if(J)return Number(J);return pA(Z)?0:1}function pA(Z){return gA.includes(Z.toLowerCase())}var yY={},d8=(Z)=>{console.error(Z)},kY=(Z,...J)=>{console.log(`WARN: ${Z}`,...J)},T6=(Z,J)=>{if(yY[`${Z}/${J}`])return;console.log(`Deprecated as of ${Z}. ${J}`),yY[`${Z}/${J}`]=!0},T7=Error();function uY(Z,J,{key:$}){let Q=0,X=Z[$],z={},K={};for(let Y=1;Y<=J.length;Y++)K[Y+Q]=X[Y],z[Y+Q]=!0,Q+=xY(J[Y-1]);Z[$]=K,Z[$]._emit=z,Z[$]._multi=!0}function cA(Z){if(!Array.isArray(Z.begin))return;if(Z.skip||Z.excludeBegin||Z.returnBegin)throw d8("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),T7;if(typeof Z.beginScope!=="object"||Z.beginScope===null)throw d8("beginScope must be object"),T7;uY(Z,Z.begin,{key:"beginScope"}),Z.begin=v$(Z.begin,{joinWith:""})}function dA(Z){if(!Array.isArray(Z.end))return;if(Z.skip||Z.excludeEnd||Z.returnEnd)throw d8("skip, excludeEnd, returnEnd not compatible with endScope: {}"),T7;if(typeof Z.endScope!=="object"||Z.endScope===null)throw d8("endScope must be object"),T7;uY(Z,Z.end,{key:"endScope"}),Z.end=v$(Z.end,{joinWith:""})}function lA(Z){if(Z.scope&&typeof Z.scope==="object"&&Z.scope!==null)Z.beginScope=Z.scope,delete Z.scope}function aA(Z){if(lA(Z),typeof Z.beginScope==="string")Z.beginScope={_wrap:Z.beginScope};if(typeof Z.endScope==="string")Z.endScope={_wrap:Z.endScope};cA(Z),dA(Z)}function iA(Z){function J(K,Y){return new RegExp(x5(K),"m"+(Z.case_insensitive?"i":"")+(Z.unicodeRegex?"u":"")+(Y?"g":""))}class ${constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(K,Y){Y.position=this.position++,this.matchIndexes[this.matchAt]=Y,this.regexes.push([Y,K]),this.matchAt+=xY(K)+1}compile(){if(this.regexes.length===0)this.exec=()=>null;let K=this.regexes.map((Y)=>Y[1]);this.matcherRe=J(v$(K,{joinWith:"|"}),!0),this.lastIndex=0}exec(K){this.matcherRe.lastIndex=this.lastIndex;let Y=this.matcherRe.exec(K);if(!Y)return null;let q=Y.findIndex((U,H)=>H>0&&U!==void 0),W=this.matchIndexes[q];return Y.splice(0,q),Object.assign(Y,W)}}class Q{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(K){if(this.multiRegexes[K])return this.multiRegexes[K];let Y=new $;return this.rules.slice(K).forEach(([q,W])=>Y.addRule(q,W)),Y.compile(),this.multiRegexes[K]=Y,Y}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(K,Y){if(this.rules.push([K,Y]),Y.type==="begin")this.count++}exec(K){let Y=this.getMatcher(this.regexIndex);Y.lastIndex=this.lastIndex;let q=Y.exec(K);if(this.resumingScanAtSamePosition())if(q&&q.index===this.lastIndex);else{let W=this.getMatcher(0);W.lastIndex=this.lastIndex+1,q=W.exec(K)}if(q){if(this.regexIndex+=q.position+1,this.regexIndex===this.count)this.considerAll()}return q}}function X(K){let Y=new Q;if(K.contains.forEach((q)=>Y.addRule(q.begin,{rule:q,type:"begin"})),K.terminatorEnd)Y.addRule(K.terminatorEnd,{type:"end"});if(K.illegal)Y.addRule(K.illegal,{type:"illegal"});return Y}function z(K,Y){let q=K;if(K.isCompiled)return q;[EA,vA,aA,fA].forEach((U)=>U(K,Y)),Z.compilerExtensions.forEach((U)=>U(K,Y)),K.__beforeBegin=null,[wA,xA,hA].forEach((U)=>U(K,Y)),K.isCompiled=!0;let W=null;if(typeof K.keywords==="object"&&K.keywords.$pattern)K.keywords=Object.assign({},K.keywords),W=K.keywords.$pattern,delete K.keywords.$pattern;if(W=W||/\w+/,K.keywords)K.keywords=mY(K.keywords,Z.case_insensitive);if(q.keywordPatternRe=J(W,!0),Y){if(!K.begin)K.begin=/\B|\b/;if(q.beginRe=J(q.begin),!K.end&&!K.endsWithParent)K.end=/\B|\b/;if(K.end)q.endRe=J(q.end);if(q.terminatorEnd=x5(q.end)||"",K.endsWithParent&&Y.terminatorEnd)q.terminatorEnd+=(K.end?"|":"")+Y.terminatorEnd}if(K.illegal)q.illegalRe=J(K.illegal);if(!K.contains)K.contains=[];if(K.contains=[].concat(...K.contains.map(function(U){return nA(U==="self"?K:U)})),K.contains.forEach(function(U){z(U,q)}),K.starts)z(K.starts,Y);return q.matcher=X(q),q}if(!Z.compilerExtensions)Z.compilerExtensions=[];if(Z.contains&&Z.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return Z.classNameAliases=U8(Z.classNameAliases||{}),z(Z)}function pY(Z){if(!Z)return!1;return Z.endsWithParent||pY(Z.starts)}function nA(Z){if(Z.variants&&!Z.cachedVariants)Z.cachedVariants=Z.variants.map(function(J){return U8(Z,{variants:null},J)});if(Z.cachedVariants)return Z.cachedVariants;if(pY(Z))return U8(Z,{starts:Z.starts?U8(Z.starts):null});if(Object.isFrozen(Z))return U8(Z);return Z}var sA="11.11.1";class cY extends Error{constructor(Z,J){super(Z);this.name="HTMLInjectionError",this.html=J}}var b$=SY,TY=U8,jY=Symbol("nomatch"),rA=7,dY=function(Z){let J=Object.create(null),$=Object.create(null),Q=[],X=!0,z="Could not find the language '{}', did you forget to load/include a language module?",K={disableAutodetect:!0,name:"Plain text",contains:[]},Y={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:EY};function q(S){return Y.noHighlightRe.test(S)}function W(S){let D=S.className+" ";D+=S.parentNode?S.parentNode.className:"";let x=Y.languageDetectRe.exec(D);if(x){let T=V(x[1]);if(!T)kY(z.replace("{}",x[1])),kY("Falling back to no-highlight mode for this block.",S);return T?x[1]:"no-highlight"}return D.split(/\s+/).find((T)=>q(T)||V(T))}function U(S,D,x){let T="",m="";if(typeof D==="object")T=S,x=D.ignoreIllegals,m=D.language;else T6("10.7.0","highlight(lang, code, ...args) has been deprecated."),T6("10.7.0",`Please use highlight(code, options) instead.
|
|
2
|
+
https://github.com/highlightjs/highlight.js/issues/2277`),m=S,T=D;if(x===void 0)x=!0;let a={code:T,language:m};l("before:highlight",a);let h=a.result?a.result:H(a.language,a.code,x);return h.code=a.code,l("after:highlight",h),h}function H(S,D,x,T){let m=Object.create(null);function a(c,o){return c.keywords[o]}function h(){if(!e.keywords){_0.addText(f);return}let c=0;e.keywordPatternRe.lastIndex=0;let o=e.keywordPatternRe.exec(f),W0="";while(o){W0+=f.substring(c,o.index);let A0=d.case_insensitive?o[0].toLowerCase():o[0],D0=a(e,A0);if(D0){let[y0,FZ]=D0;if(_0.addText(W0),W0="",m[A0]=(m[A0]||0)+1,m[A0]<=rA)n+=FZ;if(y0.startsWith("_"))W0+=o[0];else{let dZ=d.classNameAliases[y0]||y0;p(o[0],dZ)}}else W0+=o[0];c=e.keywordPatternRe.lastIndex,o=e.keywordPatternRe.exec(f)}W0+=f.substring(c),_0.addText(W0)}function s(){if(f==="")return;let c=null;if(typeof e.subLanguage==="string"){if(!J[e.subLanguage]){_0.addText(f);return}c=H(e.subLanguage,f,!0,P0[e.subLanguage]),P0[e.subLanguage]=c._top}else c=O(f,e.subLanguage.length?e.subLanguage:null);if(e.relevance>0)n+=c.relevance;_0.__addSublanguage(c._emitter,c.language)}function E(){if(e.subLanguage!=null)s();else h();f=""}function p(c,o){if(c==="")return;_0.startScope(o),_0.addText(c),_0.endScope()}function X0(c,o){let W0=1,A0=o.length-1;while(W0<=A0){if(!c._emit[W0]){W0++;continue}let D0=d.classNameAliases[c[W0]]||c[W0],y0=o[W0];if(D0)p(y0,D0);else f=y0,h(),f="";W0++}}function F0(c,o){if(c.scope&&typeof c.scope==="string")_0.openNode(d.classNameAliases[c.scope]||c.scope);if(c.beginScope){if(c.beginScope._wrap)p(f,d.classNameAliases[c.beginScope._wrap]||c.beginScope._wrap),f="";else if(c.beginScope._multi)X0(c.beginScope,o),f=""}return e=Object.create(c,{parent:{value:e}}),e}function j0(c,o,W0){let A0=FA(c.endRe,W0);if(A0){if(c["on:end"]){let D0=new E$(c);if(c["on:end"](o,D0),D0.isMatchIgnored)A0=!1}if(A0){while(c.endsParent&&c.parent)c=c.parent;return c}}if(c.endsWithParent)return j0(c.parent,o,W0)}function C0(c){if(e.matcher.regexIndex===0)return f+=c[0],1;else return r=!0,0}function p0(c){let o=c[0],W0=c.rule,A0=new E$(W0),D0=[W0.__beforeBegin,W0["on:begin"]];for(let y0 of D0){if(!y0)continue;if(y0(c,A0),A0.isMatchIgnored)return C0(o)}if(W0.skip)f+=o;else{if(W0.excludeBegin)f+=o;if(E(),!W0.returnBegin&&!W0.excludeBegin)f=o}return F0(W0,c),W0.returnBegin?0:o.length}function w0(c){let o=c[0],W0=D.substring(c.index),A0=j0(e,c,W0);if(!A0)return jY;let D0=e;if(e.endScope&&e.endScope._wrap)E(),p(o,e.endScope._wrap);else if(e.endScope&&e.endScope._multi)E(),X0(e.endScope,c);else if(D0.skip)f+=o;else{if(!(D0.returnEnd||D0.excludeEnd))f+=o;if(E(),D0.excludeEnd)f=o}do{if(e.scope)_0.closeNode();if(!e.skip&&!e.subLanguage)n+=e.relevance;e=e.parent}while(e!==A0.parent);if(A0.starts)F0(A0.starts,c);return D0.returnEnd?0:o.length}function o0(){let c=[];for(let o=e;o!==d;o=o.parent)if(o.scope)c.unshift(o.scope);c.forEach((o)=>_0.openNode(o))}let c0={};function R0(c,o){let W0=o&&o[0];if(f+=c,W0==null)return E(),0;if(c0.type==="begin"&&o.type==="end"&&c0.index===o.index&&W0===""){if(f+=D.slice(o.index,o.index+1),!X){let A0=Error(`0 width match regex (${S})`);throw A0.languageName=S,A0.badRule=c0.rule,A0}return 1}if(c0=o,o.type==="begin")return p0(o);else if(o.type==="illegal"&&!x){let A0=Error('Illegal lexeme "'+W0+'" for mode "'+(e.scope||"<unnamed>")+'"');throw A0.mode=e,A0}else if(o.type==="end"){let A0=w0(o);if(A0!==jY)return A0}if(o.type==="illegal"&&W0==="")return f+=`
|
|
3
|
+
`,1;if(Y0>1e5&&Y0>o.index*3)throw Error("potential infinite loop, way more iterations than matches");return f+=W0,W0.length}let d=V(S);if(!d)throw d8(z.replace("{}",S)),Error('Unknown language: "'+S+'"');let i=iA(d),K0="",e=T||i,P0={},_0=new Y.__emitter(Y);o0();let f="",n=0,z0=0,Y0=0,r=!1;try{if(!d.__emitTokens){e.matcher.considerAll();for(;;){if(Y0++,r)r=!1;else e.matcher.considerAll();e.matcher.lastIndex=z0;let c=e.matcher.exec(D);if(!c)break;let o=D.substring(z0,c.index),W0=R0(o,c);z0=c.index+W0}R0(D.substring(z0))}else d.__emitTokens(D,_0);return _0.finalize(),K0=_0.toHTML(),{language:S,value:K0,relevance:n,illegal:!1,_emitter:_0,_top:e}}catch(c){if(c.message&&c.message.includes("Illegal"))return{language:S,value:b$(D),illegal:!0,relevance:0,_illegalBy:{message:c.message,index:z0,context:D.slice(z0-100,z0+100),mode:c.mode,resultSoFar:K0},_emitter:_0};else if(X)return{language:S,value:b$(D),illegal:!1,relevance:0,errorRaised:c,_emitter:_0,_top:e};else throw c}}function F(S){let D={value:b$(S),illegal:!1,relevance:0,_top:K,_emitter:new Y.__emitter(Y)};return D._emitter.addText(S),D}function O(S,D){D=D||Y.languages||Object.keys(J);let x=F(S),T=D.filter(V).filter(k).map((E)=>H(E,S,!1));T.unshift(x);let m=T.sort((E,p)=>{if(E.relevance!==p.relevance)return p.relevance-E.relevance;if(E.language&&p.language){if(V(E.language).supersetOf===p.language)return 1;else if(V(p.language).supersetOf===E.language)return-1}return 0}),[a,h]=m,s=a;return s.secondBest=h,s}function N(S,D,x){let T=D&&$[D]||x;S.classList.add("hljs"),S.classList.add(`language-${T}`)}function _(S){let D=null,x=W(S);if(q(x))return;if(l("before:highlightElement",{el:S,language:x}),S.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",S);return}if(S.children.length>0){if(!Y.ignoreUnescapedHTML)console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(S);if(Y.throwUnescapedHTML)throw new cY("One of your code blocks includes unescaped HTML.",S.innerHTML)}D=S;let T=D.textContent,m=x?U(T,{language:x,ignoreIllegals:!0}):O(T);if(S.innerHTML=m.value,S.dataset.highlighted="yes",N(S,x,m.language),S.result={language:m.language,re:m.relevance,relevance:m.relevance},m.secondBest)S.secondBest={language:m.secondBest.language,relevance:m.secondBest.relevance};l("after:highlightElement",{el:S,result:m,text:T})}function A(S){Y=TY(Y,S)}let L=()=>{C(),T6("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function B(){C(),T6("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let M=!1;function C(){function S(){C()}if(document.readyState==="loading"){if(!M)window.addEventListener("DOMContentLoaded",S,!1);M=!0;return}document.querySelectorAll(Y.cssSelector).forEach(_)}function R(S,D){let x=null;try{x=D(Z)}catch(T){if(d8("Language definition for '{}' could not be registered.".replace("{}",S)),!X)throw T;else d8(T);x=K}if(!x.name)x.name=S;if(J[S]=x,x.rawDefinition=D.bind(null,Z),x.aliases)y(x.aliases,{languageName:S})}function I(S){delete J[S];for(let D of Object.keys($))if($[D]===S)delete $[D]}function P(){return Object.keys(J)}function V(S){return S=(S||"").toLowerCase(),J[S]||J[$[S]]}function y(S,{languageName:D}){if(typeof S==="string")S=[S];S.forEach((x)=>{$[x.toLowerCase()]=D})}function k(S){let D=V(S);return D&&!D.disableAutodetect}function j(S){if(S["before:highlightBlock"]&&!S["before:highlightElement"])S["before:highlightElement"]=(D)=>{S["before:highlightBlock"](Object.assign({block:D.el},D))};if(S["after:highlightBlock"]&&!S["after:highlightElement"])S["after:highlightElement"]=(D)=>{S["after:highlightBlock"](Object.assign({block:D.el},D))}}function w(S){j(S),Q.push(S)}function u(S){let D=Q.indexOf(S);if(D!==-1)Q.splice(D,1)}function l(S,D){let x=S;Q.forEach(function(T){if(T[x])T[x](D)})}function v(S){return T6("10.7.0","highlightBlock will be removed entirely in v12.0"),T6("10.7.0","Please use highlightElement now."),_(S)}Object.assign(Z,{highlight:U,highlightAuto:O,highlightAll:C,highlightElement:_,highlightBlock:v,configure:A,initHighlighting:L,initHighlightingOnLoad:B,registerLanguage:R,unregisterLanguage:I,listLanguages:P,getLanguage:V,registerAliases:y,autoDetection:k,inherit:TY,addPlugin:w,removePlugin:u}),Z.debugMode=function(){X=!1},Z.safeMode=function(){X=!0},Z.versionString=sA,Z.regex={concat:l8,lookahead:wY,either:x$,optional:UA,anyNumberOfTimes:WA};for(let S in k7)if(typeof k7[S]==="object")DY(k7[S]);return Object.assign(Z,k7),Z},j6=dY({});j6.newInstance=()=>dY({});lY.exports=j6;j6.HighlightJS=j6;j6.default=j6});var nY=S0((ky,iY)=>{function oA(Z){let J=Z.regex,$=J.concat(/[\p{L}_]/u,J.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),Q=/[\p{L}0-9._:-]+/u,X={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},z={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},K=Z.inherit(z,{begin:/\(/,end:/\)/}),Y=Z.inherit(Z.APOS_STRING_MODE,{className:"string"}),q=Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),W={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:Q,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[X]},{begin:/'/,end:/'/,contains:[X]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[z,q,Y,K,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[z,K,q,Y]}]}]},Z.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},X,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[q]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[W],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[W],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:J.concat(/</,J.lookahead(J.concat($,J.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:$,relevance:0,starts:W}]},{className:"tag",begin:J.concat(/<\//,J.lookahead(J.concat($,/>/))),contains:[{className:"name",begin:$,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}iY.exports=oA});var rY=S0((Ty,sY)=>{function tA(Z){let J=Z.regex,$={},Q={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[$]}]};Object.assign($,{className:"variable",variants:[{begin:J.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},Q]});let X={className:"subst",begin:/\$\(/,end:/\)/,contains:[Z.BACKSLASH_ESCAPE]},z=Z.inherit(Z.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),K={begin:/<<-?\s*(?=\w+)/,starts:{contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},Y={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,$,X]};X.contains.push(Y);let q={match:/\\"/},W={className:"string",begin:/'/,end:/'/},U={match:/\\'/},H={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},Z.NUMBER_MODE,$]},F=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],O=Z.SHEBANG({binary:`(${F.join("|")})`,relevance:10}),N={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[Z.inherit(Z.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},_=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],A=["true","false"],L={match:/(\/[a-z._-]+)+/},B=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],M=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],C=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],R=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:_,literal:A,built_in:[...B,...M,"set","shopt",...C,...R]},contains:[O,Z.SHEBANG(),N,H,z,K,L,Y,q,W,U,$]}}sY.exports=tA});var tY=S0((jy,oY)=>{function eA(Z){let J=Z.regex,$=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),Q="decltype\\(auto\\)",X="[a-zA-Z_]\\w*::",z="<[^<>]+>",K="(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",Y={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},q="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",W={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},U={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},H={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(W,{className:"string"}),{className:"string",begin:/<.*?>/},$,Z.C_BLOCK_COMMENT_MODE]},F={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},O=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",A={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},L=[H,Y,$,Z.C_BLOCK_COMMENT_MODE,U,W],B={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:A,contains:L.concat([{begin:/\(/,end:/\)/,keywords:A,contains:L.concat(["self"]),relevance:0}]),relevance:0},M={begin:"("+K+"[\\*&\\s]+)+"+O,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:A,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:A,relevance:0},{begin:O,returnBegin:!0,contains:[Z.inherit(F,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:A,relevance:0,contains:[$,Z.C_BLOCK_COMMENT_MODE,W,U,Y,{begin:/\(/,end:/\)/,keywords:A,relevance:0,contains:["self",$,Z.C_BLOCK_COMMENT_MODE,W,U,Y]}]},Y,$,Z.C_BLOCK_COMMENT_MODE,H]};return{name:"C",aliases:["h"],keywords:A,disableAutodetect:!0,illegal:"</",contains:[].concat(B,M,L,[H,{begin:Z.IDENT_RE+"::",keywords:A},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},Z.TITLE_MODE]}]),exports:{preprocessor:H,strings:W,keywords:A}}}oY.exports=eA});var ZG=S0((Dy,eY)=>{function ZL(Z){let J=Z.regex,$=Z.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),Q="decltype\\(auto\\)",X="[a-zA-Z_]\\w*::",z="<[^<>]+>",K="(?!struct)(decltype\\(auto\\)|"+J.optional("[a-zA-Z_]\\w*::")+"[a-zA-Z_]\\w*"+J.optional("<[^<>]+>")+")",Y={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},q="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",W={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",end:"'",illegal:"."},Z.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},U={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},H={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(W,{className:"string"}),{className:"string",begin:/<.*?>/},$,Z.C_BLOCK_COMMENT_MODE]},F={className:"title",begin:J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE,relevance:0},O=J.optional("[a-zA-Z_]\\w*::")+Z.IDENT_RE+"\\s*\\(",N=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],_=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],A=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],L=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],C={type:_,keyword:N,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:A},R={className:"function.dispatch",relevance:0,keywords:{_hint:L},begin:J.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,Z.IDENT_RE,J.lookahead(/(<[^<>]+>|)\s*\(/))},I=[R,H,Y,$,Z.C_BLOCK_COMMENT_MODE,U,W],P={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:C,contains:I.concat([{begin:/\(/,end:/\)/,keywords:C,contains:I.concat(["self"]),relevance:0}]),relevance:0},V={className:"function",begin:"("+K+"[\\*&\\s]+)+"+O,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:C,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:"decltype\\(auto\\)",keywords:C,relevance:0},{begin:O,returnBegin:!0,contains:[F],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[W,U]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:[$,Z.C_BLOCK_COMMENT_MODE,W,U,Y,{begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:["self",$,Z.C_BLOCK_COMMENT_MODE,W,U,Y]}]},Y,$,Z.C_BLOCK_COMMENT_MODE,H]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:C,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(P,V,R,I,[H,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:C,contains:["self",Y]},{begin:Z.IDENT_RE+"::",keywords:C},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}eY.exports=ZL});var $G=S0((Sy,JG)=>{function JL(Z){let J=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],$=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],Q=["default","false","null","true"],X=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],z=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],K={keyword:X.concat(z),built_in:J,literal:Q},Y=Z.inherit(Z.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),q={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},W={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},U={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},H=Z.inherit(U,{illegal:/\n/}),F={className:"subst",begin:/\{/,end:/\}/,keywords:K},O=Z.inherit(F,{illegal:/\n/}),N={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},Z.BACKSLASH_ESCAPE,O]},_={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},F]},A=Z.inherit(_,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},O]});F.contains=[_,N,U,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,q,Z.C_BLOCK_COMMENT_MODE],O.contains=[A,N,H,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,q,Z.inherit(Z.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];let L={variants:[W,_,N,U,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},B={begin:"<",end:">",contains:[{beginKeywords:"in out"},Y]},M=Z.IDENT_RE+"(<"+Z.IDENT_RE+"(\\s*,\\s*"+Z.IDENT_RE+")*>)?(\\[\\])?",C={begin:"@"+Z.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:K,illegal:/::/,contains:[Z.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},L,q,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},Y,B,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[Y,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[Y,B,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+M+"\\s+)+"+Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:K,contains:[{beginKeywords:$.join(" "),relevance:0},{begin:Z.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[Z.TITLE_MODE,B],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:K,relevance:0,contains:[L,q,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},C]}}JG.exports=JL});var XG=S0((by,QG)=>{var $L=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}},QL=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],XL=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],zL=[...QL,...XL],KL=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),YL=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),GL=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),qL=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function WL(Z){let J=Z.regex,$=$L(Z),Q={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},X="and or not only",z=/@-?\w[\w]*(-\w+)*/,K="[a-zA-Z-][a-zA-Z0-9_-]*",Y=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[$.BLOCK_COMMENT,Q,$.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},$.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+YL.join("|")+")"},{begin:":(:)?("+GL.join("|")+")"}]},$.CSS_VARIABLE,{className:"attribute",begin:"\\b("+qL.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[$.BLOCK_COMMENT,$.HEXCOLOR,$.IMPORTANT,$.CSS_NUMBER_MODE,...Y,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...Y,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},$.FUNCTION_DISPATCH]},{begin:J.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:z},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:KL.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...Y,$.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+zL.join("|")+")\\b"}]}}QG.exports=WL});var KG=S0((Ey,zG)=>{function UL(Z){let J=Z.regex,$={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},Q={begin:"^[-\\*]{3,}",end:"$"},X={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},z={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},K={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},Y=/[A-Za-z][A-Za-z0-9+.-]*/,q={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:J.concat(/\[.+?\]\(/,Y,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},W={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},U={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},H=Z.inherit(W,{contains:[]}),F=Z.inherit(U,{contains:[]});W.contains.push(F),U.contains.push(H);let O=[$,q];return[W,U,H,F].forEach((L)=>{L.contains=L.contains.concat(O)}),O=O.concat(W,U),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:O},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:O}]}]},$,z,W,U,{className:"quote",begin:"^>\\s+",contains:O,end:"$"},X,Q,q,K,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}zG.exports=UL});var GG=S0((wy,YG)=>{function HL(Z){let J=Z.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:J.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:J.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}YG.exports=HL});var WG=S0((xy,qG)=>{function FL(Z){let J=Z.regex,$="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",Q=J.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),X=J.concat(Q,/(::\w+)*/),K={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},Y={className:"doctag",begin:"@[A-Za-z]+"},q={begin:"#<",end:">"},W=[Z.COMMENT("#","$",{contains:[Y]}),Z.COMMENT("^=begin","^=end",{contains:[Y],relevance:10}),Z.COMMENT("^__END__",Z.MATCH_NOTHING_RE)],U={className:"subst",begin:/#\{/,end:/\}/,keywords:K},H={className:"string",contains:[Z.BACKSLASH_ESCAPE,U],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:J.concat(/<<[-~]?'?/,J.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[Z.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[Z.BACKSLASH_ESCAPE,U]})]}]},F="[1-9](_?[0-9])*|0",O="[0-9](_?[0-9])*",N={className:"number",relevance:0,variants:[{begin:"\\b([1-9](_?[0-9])*|0)(\\.([0-9](_?[0-9])*))?([eE][+-]?([0-9](_?[0-9])*)|r)?i?\\b"},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},_={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:K}]},I=[H,{variants:[{match:[/class\s+/,X,/\s+<\s+/,X]},{match:[/\b(class|module)\s+/,X]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:K},{match:[/(include|extend)\s+/,X],scope:{2:"title.class"},keywords:K},{relevance:0,match:[X,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:Q,scope:"title.class"},{match:[/def/,/\s+/,"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"],scope:{1:"keyword",3:"title.function"},contains:[_]},{begin:Z.IDENT_RE+"::"},{className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[H,{begin:"([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)"}],relevance:0},N,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:K},{begin:"("+Z.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[Z.BACKSLASH_ESCAPE,U],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(q,W),relevance:0}].concat(q,W);U.contains=I,_.contains=I;let P="[>?]>",V="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",y="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",k=[{begin:/^\s*=>/,starts:{end:"$",contains:I}},{className:"meta.prompt",begin:"^("+P+"|"+V+"|"+y+")(?=[ ])",starts:{end:"$",keywords:K,contains:I}}];return W.unshift(q),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:K,illegal:/\/\*/,contains:[Z.SHEBANG({binary:"ruby"})].concat(k).concat(W).concat(I)}}qG.exports=FL});var HG=S0((vy,UG)=>{function OL(Z){let z={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:z,illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{className:"string",variants:[Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[Z.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:z,illegal:/["']/}]}]}}UG.exports=OL});var OG=S0((hy,FG)=>{function NL(Z){let J=Z.regex,$=/[_A-Za-z][_0-9A-Za-z]*/;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[Z.HASH_COMMENT_MODE,Z.QUOTE_STRING_MODE,Z.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:J.concat($,J.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}FG.exports=NL});var BG=S0((fy,NG)=>{function BL(Z){let J=Z.regex,$={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:Z.NUMBER_RE}]},Q=Z.COMMENT();Q.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let X={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},z={className:"literal",begin:/\bon|off|true|false|yes|no\b/},K={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},Y={begin:/\[/,end:/\]/,contains:[Q,z,X,K,$,"self"],relevance:0},q=/[A-Za-z0-9_-]+/,W=/"(\\"|[^"])*"/,U=/'[^']*'/,H=J.either(q,W,U),F=J.concat(H,"(\\s*\\.\\s*",H,")*",J.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[Q,{className:"section",begin:/\[+/,end:/\]+/},{begin:F,className:"attr",starts:{end:/$/,contains:[Q,Y,z,X,K,$]}}]}}NG.exports=BL});var PG=S0((gy,LG)=>{var D6="[0-9](_*[0-9])*",D7=`\\.(${D6})`,S7="[0-9a-fA-F](_*[0-9a-fA-F])*",_G={className:"number",variants:[{begin:`(\\b(${D6})((${D7})|\\.)?|(${D7}))[eE][+-]?(${D6})[fFdD]?\\b`},{begin:`\\b(${D6})((${D7})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${D7})[fFdD]?\\b`},{begin:`\\b(${D6})[fFdD]\\b`},{begin:`\\b0[xX]((${S7})\\.?|(${S7})?\\.(${S7}))[pP][+-]?(${D6})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${S7})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function AG(Z,J,$){if($===-1)return"";return Z.replace(J,(Q)=>{return AG(Z,J,$-1)})}function _L(Z){let J=Z.regex,$="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",Q="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+AG("(?:<"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~(?:\\s*,\\s*"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"+"~~~)*>)?",/~~~/g,2),q={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},W={className:"meta",begin:"@"+"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},U={className:"params",begin:/\(/,end:/\)/,keywords:q,relevance:0,contains:[Z.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:q,illegal:/<\/|#/,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[Z.BACKSLASH_ESCAPE]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[J.concat(/(?!else)/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"),/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,"[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*"],className:{1:"keyword",3:"title.class"},contains:[U,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+Q+"\\s+)",Z.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:q,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:q,relevance:0,contains:[W,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,_G,Z.C_BLOCK_COMMENT_MODE]},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},_G,W]}}LG.exports=_L});var VG=S0((my,CG)=>{var AL=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],LL=["true","false","null","undefined","NaN","Infinity"],MG=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],IG=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],RG=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],PL=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ML=[].concat(RG,MG,IG);function IL(Z){let J=Z.regex,$=(x,{after:T})=>{let m="</"+x[0].slice(1);return x.input.indexOf(m,T)!==-1},Q="[A-Za-z$_][0-9A-Za-z$_]*",X={begin:"<>",end:"</>"},z=/<[A-Za-z0-9\\._:-]+\s*\/>/,K={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(x,T)=>{let m=x[0].length+x.index,a=x.input[m];if(a==="<"||a===","){T.ignoreMatch();return}if(a===">"){if(!$(x,{after:m}))T.ignoreMatch()}let h,s=x.input.substring(m);if(h=s.match(/^\s*=/)){T.ignoreMatch();return}if(h=s.match(/^\s+extends\s+/)){if(h.index===0){T.ignoreMatch();return}}}},Y={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:AL,literal:LL,built_in:ML,"variable.language":PL},q="[0-9](_?[0-9])*",W="\\.([0-9](_?[0-9])*)",U="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",H={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\b"},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},F={className:"subst",begin:"\\$\\{",end:"\\}",keywords:Y,contains:[]},O={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,F],subLanguage:"xml"}},N={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,F],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,F],subLanguage:"graphql"}},A={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,F]},B={className:"comment",variants:[Z.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},M=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,O,N,_,A,{match:/\$\d+/},H];F.contains=M.concat({begin:/\{/,end:/\}/,keywords:Y,contains:["self"].concat(M)});let C=[].concat(B,F.contains),R=C.concat([{begin:/(\s*)\(/,end:/\)/,keywords:Y,contains:["self"].concat(C)}]),I={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:R},P={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},V={relevance:0,match:J.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...MG,...IG]}},y={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},k={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[I],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function w(x){return J.concat("(?!",x.join("|"),")")}let u={match:J.concat(/\b/,w([...RG,"super","import"].map((x)=>`${x}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},l={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},v={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},I]},S="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",D={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(S)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[I]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:Y,exports:{PARAMS_CONTAINS:R,CLASS_REFERENCE:V},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),y,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,O,N,_,A,B,{match:/\$\d+/},H,V,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},D,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[B,Z.REGEXP_MODE,{className:"function",begin:S,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:R}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:X.begin,end:X.end},{match:z},{begin:K.begin,"on:begin":K.isTrulyOpeningTag,end:K.end}],subLanguage:"xml",contains:[{begin:K.begin,end:K.end,skip:!0,contains:["self"]}]}]},k,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[I,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},l,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[I]},u,j,P,v,{match:/\$[(.]/}]}}CG.exports=IL});var kG=S0((uy,yG)=>{function RL(Z){let J={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},$={match:/[{}[\],:]/,className:"punctuation",relevance:0},Q=["true","false","null"],X={scope:"literal",beginKeywords:Q.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:Q},contains:[J,$,Z.QUOTE_STRING_MODE,X,Z.C_NUMBER_MODE,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}yG.exports=RL});var jG=S0((py,TG)=>{var S6="[0-9](_*[0-9])*",b7=`\\.(${S6})`,E7="[0-9a-fA-F](_*[0-9a-fA-F])*",CL={className:"number",variants:[{begin:`(\\b(${S6})((${b7})|\\.)?|(${b7}))[eE][+-]?(${S6})[fFdD]?\\b`},{begin:`\\b(${S6})((${b7})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${b7})[fFdD]?\\b`},{begin:`\\b(${S6})[fFdD]\\b`},{begin:`\\b0[xX]((${E7})\\.?|(${E7})?\\.(${E7}))[pP][+-]?(${S6})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${E7})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function VL(Z){let J={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},$={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},Q={className:"symbol",begin:Z.UNDERSCORE_IDENT_RE+"@"},X={className:"subst",begin:/\$\{/,end:/\}/,contains:[Z.C_NUMBER_MODE]},z={className:"variable",begin:"\\$"+Z.UNDERSCORE_IDENT_RE},K={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[z,X]},{begin:"'",end:"'",illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[Z.BACKSLASH_ESCAPE,z,X]}]};X.contains.push(K);let Y={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+Z.UNDERSCORE_IDENT_RE+")?"},q={className:"meta",begin:"@"+Z.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[Z.inherit(K,{className:"string"}),"self"]}]},W=CL,U=Z.COMMENT("/\\*","\\*/",{contains:[Z.C_BLOCK_COMMENT_MODE]}),H={variants:[{className:"type",begin:Z.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},F=H;return F.variants[1].contains=[H],H.variants[1].contains=[F],{name:"Kotlin",aliases:["kt","kts"],keywords:J,contains:[Z.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),Z.C_LINE_COMMENT_MODE,U,$,Q,Y,q,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:J,relevance:5,contains:[{begin:Z.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[Z.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:J,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[H,Z.C_LINE_COMMENT_MODE,U],relevance:0},Z.C_LINE_COMMENT_MODE,U,Y,q,K,Z.C_NUMBER_MODE]},U]},{begin:[/class|interface|trait/,/\s+/,Z.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},Z.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},Y,q]},K,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
4
|
+
`},W]}}TG.exports=VL});var EG=S0((cy,bG)=>{var yL=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}},kL=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],TL=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],jL=[...kL,...TL],DL=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),DG=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),SG=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),SL=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),bL=DG.concat(SG).sort().reverse();function EL(Z){let J=yL(Z),$=bL,Q="and or not only",X="[\\w-]+",z="([\\w-]+|@\\{[\\w-]+\\})",K=[],Y=[],q=function(M){return{className:"string",begin:"~?"+M+".*?"+M}},W=function(M,C,R){return{className:M,begin:C,relevance:R}},U={$pattern:/[a-z-]+/,keyword:"and or not only",attribute:DL.join(" ")},H={begin:"\\(",end:"\\)",contains:Y,keywords:U,relevance:0};Y.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,q("'"),q('"'),J.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},J.HEXCOLOR,H,W("variable","@@?[\\w-]+",10),W("variable","@\\{[\\w-]+\\}"),W("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},J.IMPORTANT,{beginKeywords:"and not"},J.FUNCTION_DISPATCH);let F=Y.concat({begin:/\{/,end:/\}/,contains:K}),O={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(Y)},N={begin:z+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+SL.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:Y}}]},_={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:U,returnEnd:!0,contains:Y,relevance:0}},A={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:F}},L={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:z,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,O,W("keyword","all\\b"),W("variable","@\\{[\\w-]+\\}"),{begin:"\\b("+jL.join("|")+")\\b",className:"selector-tag"},J.CSS_NUMBER_MODE,W("selector-tag",z,0),W("selector-id","#"+z),W("selector-class","\\."+z,0),W("selector-tag","&",0),J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+DG.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+SG.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:F},{begin:"!important"},J.FUNCTION_DISPATCH]},B={begin:`[\\w-]+:(:)?(${$.join("|")})`,returnBegin:!0,contains:[L]};return K.push(Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,_,A,B,N,L,O,J.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:K}}bG.exports=EL});var xG=S0((dy,wG)=>{function wL(Z){let Q={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},X=[Z.COMMENT("--(?!\\[=*\\[)","$"),Z.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[Q],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:Z.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:X.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[Z.inherit(Z.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:X}].concat(X)},Z.C_NUMBER_MODE,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[Q],relevance:5}])}}wG.exports=wL});var hG=S0((ly,vG)=>{function xL(Z){let J={className:"variable",variants:[{begin:"\\$\\("+Z.UNDERSCORE_IDENT_RE+"\\)",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},$={className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,J]},Q={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[J,$]},X={begin:"^"+Z.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},z={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},K={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[J]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[Z.HASH_COMMENT_MODE,J,$,Q,X,z,K]}}vG.exports=xL});var gG=S0((ay,fG)=>{function vL(Z){let J=Z.regex,$=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],Q=/[dualxmsipngr]{0,12}/,X={$pattern:/[\w.]+/,keyword:$.join(" ")},z={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:X},K={begin:/->\{/,end:/\}/},Y={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},q={scope:"variable",variants:[{begin:/\$\d/},{begin:J.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[Y]},W={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},U=[Z.BACKSLASH_ESCAPE,z,q],H=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],F=(_,A,L="\\1")=>{let B=L==="\\1"?L:J.concat(L,A);return J.concat(J.concat("(?:",_,")"),A,/(?:\\.|[^\\\/])*?/,B,/(?:\\.|[^\\\/])*?/,L,Q)},O=(_,A,L)=>{return J.concat(J.concat("(?:",_,")"),A,/(?:\\.|[^\\\/])*?/,L,Q)},N=[q,Z.HASH_COMMENT_MODE,Z.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),K,{className:"string",contains:U,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[Z.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},W,{begin:"(\\/\\/|"+Z.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[Z.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:F("s|tr|y",J.either(...H,{capture:!0}))},{begin:F("s|tr|y","\\(","\\)")},{begin:F("s|tr|y","\\[","\\]")},{begin:F("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:O("(?:m|qr)?",/\//,/\//)},{begin:O("m|qr",J.either(...H,{capture:!0}),/\1/)},{begin:O("m|qr",/\(/,/\)/)},{begin:O("m|qr",/\[/,/\]/)},{begin:O("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,Y]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[Z.TITLE_MODE,Y,W]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return z.contains=N,K.contains=N,{name:"Perl",aliases:["pl","pm"],keywords:X,contains:N}}fG.exports=vL});var uG=S0((iy,mG)=>{function hL(Z){let J={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},$=/[a-zA-Z@][a-zA-Z0-9_]*/,Y={"variable.language":["this","super"],$pattern:$,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},q={$pattern:$,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:Y,illegal:"</",contains:[J,Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,Z.C_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[Z.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},Z.inherit(Z.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+q.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:q,contains:[Z.UNDERSCORE_TITLE_MODE]},{begin:"\\."+Z.UNDERSCORE_IDENT_RE,relevance:0}]}}mG.exports=hL});var cG=S0((ny,pG)=>{function fL(Z){let J=Z.regex,$=/(?![A-Za-z0-9])(?![$])/,Q=J.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,$),X=J.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,$),z=J.concat(/[A-Z]+/,$),K={scope:"variable",match:"\\$+"+Q},Y={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:0.1},{begin:/\?>/}]},q={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},W=Z.inherit(Z.APOS_STRING_MODE,{illegal:null}),U=Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,contains:Z.QUOTE_STRING_MODE.contains.concat(q)}),H={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:Z.QUOTE_STRING_MODE.contains.concat(q),"on:begin":(l,v)=>{v.data._beginMatch=l[1]||l[2]},"on:end":(l,v)=>{if(v.data._beginMatch!==l[1])v.ignoreMatch()}},F=Z.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),O=`[
|
|
5
|
+
]`,N={scope:"string",variants:[U,W,H,F]},_={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},A=["false","null","true"],L=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],B=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],C={keyword:L,literal:((l)=>{let v=[];return l.forEach((S)=>{if(v.push(S),S.toLowerCase()===S)v.push(S.toUpperCase());else v.push(S.toLowerCase())}),v})(A),built_in:B},R=(l)=>{return l.map((v)=>{return v.replace(/\|\d+$/,"")})},I={variants:[{match:[/new/,J.concat(`[
|
|
6
|
+
]`,"+"),J.concat("(?!",R(B).join("\\b|"),"\\b)"),X],scope:{1:"keyword",4:"title.class"}}]},P=J.concat(Q,"\\b(?!\\()"),V={variants:[{match:[J.concat(/::/,J.lookahead(/(?!class\b)/)),P],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[X,J.concat(/::/,J.lookahead(/(?!class\b)/)),P],scope:{1:"title.class",3:"variable.constant"}},{match:[X,J.concat("::",J.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[X,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},y={scope:"attr",match:J.concat(Q,J.lookahead(":"),J.lookahead(/(?!::)/))},k={relevance:0,begin:/\(/,end:/\)/,keywords:C,contains:[y,K,V,Z.C_BLOCK_COMMENT_MODE,N,_,I]},j={relevance:0,match:[/\b/,J.concat("(?!fn\\b|function\\b|",R(L).join("\\b|"),"|",R(B).join("\\b|"),"\\b)"),Q,J.concat(`[
|
|
7
|
+
]`,"*"),J.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[k]};k.contains.push(j);let w=[y,V,Z.C_BLOCK_COMMENT_MODE,N,_,I],u={begin:J.concat(/#\[\s*\\?/,J.either(X,z)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:A,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:A,keyword:["new","array"]},contains:["self",...w]},...w,{scope:"meta",variants:[{match:X},{match:z}]}]};return{case_insensitive:!1,keywords:C,contains:[u,Z.HASH_COMMENT_MODE,Z.COMMENT("//","$"),Z.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:Z.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},Y,{scope:"variable.language",match:/\$this\b/},K,j,V,{match:[/const/,/\s/,Q],scope:{1:"keyword",3:"variable.constant"}},I,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},Z.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:C,contains:["self",u,K,V,Z.C_BLOCK_COMMENT_MODE,N,_]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},Z.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[Z.inherit(Z.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},Z.UNDERSCORE_TITLE_MODE]},N,_]}}pG.exports=fL});var lG=S0((sy,dG)=>{function gL(Z){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},Z.inherit(Z.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),Z.inherit(Z.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}dG.exports=gL});var iG=S0((ry,aG)=>{function mL(Z){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}aG.exports=mL});var sG=S0((oy,nG)=>{function uL(Z){let J=Z.regex,$=/[\p{XID_Start}_]\p{XID_Continue}*/u,Q=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],Y={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:Q,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},q={className:"meta",begin:/^(>>>|\.\.\.) /},W={className:"subst",begin:/\{/,end:/\}/,keywords:Y,illegal:/#/},U={begin:/\{\{/,relevance:0},H={className:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,q],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,q],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[Z.BACKSLASH_ESCAPE,q,U,W]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[Z.BACKSLASH_ESCAPE,q,U,W]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[Z.BACKSLASH_ESCAPE,U,W]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE,U,W]},Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},F="[0-9](_?[0-9])*",O="(\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.",N=`\\b|${Q.join("|")}`,_={className:"number",relevance:0,variants:[{begin:`(\\b([0-9](_?[0-9])*)|((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.))[eE][+-]?([0-9](_?[0-9])*)[jJ]?(?=${N})`},{begin:"((\\b([0-9](_?[0-9])*))?\\.([0-9](_?[0-9])*)|\\b([0-9](_?[0-9])*)\\.)[jJ]?"},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${N})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${N})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${N})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${N})`},{begin:`\\b([0-9](_?[0-9])*)[jJ](?=${N})`}]},A={className:"comment",begin:J.lookahead(/# type:/),end:/$/,keywords:Y,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},L={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:["self",q,_,H,Z.HASH_COMMENT_MODE]}]};return W.contains=[H,_,q],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:Y,illegal:/(<\/|\?)|=>/,contains:[q,_,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},H,A,Z.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,$],scope:{1:"keyword",3:"title.function"},contains:[L]},{variants:[{match:[/\bclass/,/\s+/,$,/\s*/,/\(\s*/,$,/\s*\)/]},{match:[/\bclass/,/\s+/,$]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[_,L,H]}]}}nG.exports=uL});var oG=S0((ty,rG)=>{function pL(Z){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}rG.exports=pL});var eG=S0((ey,tG)=>{function cL(Z){let J=Z.regex,$=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,Q=J.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),X=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,z=J.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:$,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[Z.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:J.lookahead(J.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:$},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),Z.HASH_COMMENT_MODE,{scope:"string",contains:[Z.BACKSLASH_ESCAPE],variants:[Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),Z.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[X,Q]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,Q]},{scope:{1:"punctuation",2:"number"},match:[z,Q]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,Q]}]},{scope:{3:"operator"},match:[$,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:X},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:z},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}tG.exports=cL});var Jq=S0((Zk,Zq)=>{function dL(Z){let J=Z.regex,$=/(r#)?/,Q=J.concat($,Z.UNDERSCORE_IDENT_RE),X=J.concat($,Z.IDENT_RE),z={className:"title.function.invoke",relevance:0,begin:J.concat(/\b/,/(?!let|for|while|if|else|match\b)/,X,J.lookahead(/\s*\(/))},K="([ui](8|16|32|64|128|size)|f(32|64))?",Y=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],q=["true","false","Some","None","Ok","Err"],W=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],U=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:Z.IDENT_RE+"!?",type:U,keyword:Y,literal:q,built_in:W},illegal:"</",contains:[Z.C_LINE_COMMENT_MODE,Z.COMMENT("/\\*","\\*/",{contains:["self"]}),Z.inherit(Z.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0o([0-7_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b0x([A-Fa-f0-9_]+)([ui](8|16|32|64|128|size)|f(32|64))?"},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)([ui](8|16|32|64|128|size)|f(32|64))?"}],relevance:0},{begin:[/fn/,/\s+/,Q],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[Z.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,Q],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,Q,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,Q],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,Q],className:{1:"keyword",3:"title.class"}},{begin:Z.IDENT_RE+"::",keywords:{keyword:"Self",built_in:W,type:U}},{className:"punctuation",begin:"->"},z]}}Zq.exports=dL});var Qq=S0((Jk,$q)=>{var lL=(Z)=>{return{IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:Z.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:Z.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}},aL=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],iL=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],nL=[...aL,...iL],sL=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),rL=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),oL=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),tL=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function eL(Z){let J=lL(Z),$=oL,Q=rL,X="@[a-z-]+",z="and or not only",K="[a-zA-Z-][a-zA-Z0-9_-]*",Y={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[Z.C_LINE_COMMENT_MODE,Z.C_BLOCK_COMMENT_MODE,J.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},J.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+nL.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+Q.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+$.join("|")+")"},Y,{begin:/\(/,end:/\)/,contains:[J.CSS_NUMBER_MODE]},J.CSS_VARIABLE,{className:"attribute",begin:"\\b("+tL.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[J.BLOCK_COMMENT,Y,J.HEXCOLOR,J.CSS_NUMBER_MODE,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.IMPORTANT,J.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:"@[a-z-]+",keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:sL.join(" ")},contains:[{begin:"@[a-z-]+",className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},Y,Z.QUOTE_STRING_MODE,Z.APOS_STRING_MODE,J.HEXCOLOR,J.CSS_NUMBER_MODE]},J.FUNCTION_DISPATCH]}}$q.exports=eL});var zq=S0(($k,Xq)=>{function ZP(Z){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}Xq.exports=ZP});var Yq=S0((Qk,Kq)=>{function JP(Z){let J=Z.regex,$=Z.COMMENT("--","$"),Q={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},X={begin:/"/,end:/"/,contains:[{match:/""/}]},z=["true","false","unknown"],K=["double precision","large object","with timezone","without timezone"],Y=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],q=["add","asc","collation","desc","final","first","last","view"],W=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],U=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],H=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],F=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],O=U,N=[...W,...q].filter((R)=>{return!U.includes(R)}),_={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},A={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},L={match:J.concat(/\b/,J.either(...O),/\s*\(/),relevance:0,keywords:{built_in:O}};function B(R){return J.concat(/\b/,J.either(...R.map((I)=>{return I.replace(/\s+/,"\\s+")})),/\b/)}let M={scope:"keyword",match:B(F),relevance:0};function C(R,{exceptions:I,when:P}={}){let V=P;return I=I||[],R.map((y)=>{if(y.match(/\|\d+$/)||I.includes(y))return y;else if(V(y))return`${y}|0`;else return y})}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:C(N,{when:(R)=>R.length<3}),literal:z,type:Y,built_in:H},contains:[{scope:"type",match:B(K)},M,L,_,Q,X,Z.C_NUMBER_MODE,Z.C_BLOCK_COMMENT_MODE,$,A]}}Kq.exports=JP});var Bq=S0((Xk,Nq)=>{function Uq(Z){if(!Z)return null;if(typeof Z==="string")return Z;return Z.source}function h5(Z){return l0("(?=",Z,")")}function l0(...Z){return Z.map(($)=>Uq($)).join("")}function $P(Z){let J=Z[Z.length-1];if(typeof J==="object"&&J.constructor===Object)return Z.splice(Z.length-1,1),J;else return{}}function k9(...Z){return"("+($P(Z).capture?"":"?:")+Z.map((Q)=>Uq(Q)).join("|")+")"}var m$=(Z)=>l0(/\b/,Z,/\w$/.test(Z)?/\b/:/\B/),QP=["Protocol","Type"].map(m$),Gq=["init","self"].map(m$),XP=["Any","Self"],f$=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],qq=["false","nil","true"],zP=["assignment","associativity","higherThan","left","lowerThan","none","right"],KP=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Wq=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Hq=k9(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Fq=k9(Hq,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),g$=l0(Hq,Fq,"*"),Oq=k9(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),x7=k9(Oq,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),CZ=l0(Oq,x7,"*"),w7=l0(/[A-Z]/,x7,"*"),YP=["attached","autoclosure",l0(/convention\(/,k9("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",l0(/objc\(/,CZ,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],GP=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function qP(Z){let J={match:/\s+/,relevance:0},$=Z.COMMENT("/\\*","\\*/",{contains:["self"]}),Q=[Z.C_LINE_COMMENT_MODE,$],X={match:[/\./,k9(...QP,...Gq)],className:{2:"keyword"}},z={match:l0(/\./,k9(...f$)),relevance:0},K=f$.filter((i)=>typeof i==="string").concat(["_|0"]),Y=f$.filter((i)=>typeof i!=="string").concat(XP).map(m$),q={variants:[{className:"keyword",match:k9(...Y,...Gq)}]},W={$pattern:k9(/\b\w+/,/#\w+/),keyword:K.concat(KP),literal:qq},U=[X,z,q],H={match:l0(/\./,k9(...Wq)),relevance:0},F={className:"built_in",match:l0(/\b/,k9(...Wq),/(?=\()/)},O=[H,F],N={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:g$},{match:`\\.(\\.|${Fq})+`}]},A=[N,_],L="([0-9]_*)+",B="([0-9a-fA-F]_*)+",M={className:"number",relevance:0,variants:[{match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{match:"\\b0x(([0-9a-fA-F]_*)+)(\\.(([0-9a-fA-F]_*)+))?([pP][+-]?(([0-9]_*)+))?\\b"},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},C=(i="")=>({className:"subst",variants:[{match:l0(/\\/,i,/[0\\tnr"']/)},{match:l0(/\\/,i,/u\{[0-9a-fA-F]{1,8}\}/)}]}),R=(i="")=>({className:"subst",match:l0(/\\/,i,/[\t ]*(?:[\r\n]|\r\n)/)}),I=(i="")=>({className:"subst",label:"interpol",begin:l0(/\\/,i,/\(/),end:/\)/}),P=(i="")=>({begin:l0(i,/"""/),end:l0(/"""/,i),contains:[C(i),R(i),I(i)]}),V=(i="")=>({begin:l0(i,/"/),end:l0(/"/,i),contains:[C(i),I(i)]}),y={className:"string",variants:[P(),P("#"),P("##"),P("###"),V(),V("#"),V("##"),V("###")]},k=[Z.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[Z.BACKSLASH_ESCAPE]}],j={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:k},w=(i)=>{let K0=l0(i,/\//),e=l0(/\//,i);return{begin:K0,end:e,contains:[...k,{scope:"comment",begin:`#(?!.*${e})`,end:/$/}]}},u={scope:"regexp",variants:[w("###"),w("##"),w("#"),j]},l={match:l0(/`/,CZ,/`/)},v={className:"variable",match:/\$\d+/},S={className:"variable",match:`\\$${x7}+`},D=[l,v,S],x={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:GP,contains:[...A,M,y]}]}},T={scope:"keyword",match:l0(/@/,k9(...YP),h5(k9(/\(/,/\s+/)))},m={scope:"meta",match:l0(/@/,CZ)},a=[x,T,m],h={match:h5(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:l0(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,x7,"+")},{className:"type",match:w7,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:l0(/\s+&\s+/,h5(w7)),relevance:0}]},s={begin:/</,end:/>/,keywords:W,contains:[...Q,...U,...a,N,h]};h.contains.push(s);let E={match:l0(CZ,/\s*:/),keywords:"_|0",relevance:0},p={begin:/\(/,end:/\)/,relevance:0,keywords:W,contains:["self",E,...Q,u,...U,...O,...A,M,y,...D,...a,h]},X0={begin:/</,end:/>/,keywords:"repeat each",contains:[...Q,h]},F0={begin:k9(h5(l0(CZ,/\s*:/)),h5(l0(CZ,/\s+/,CZ,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:CZ}]},j0={begin:/\(/,end:/\)/,keywords:W,contains:[F0,...Q,...U,...A,M,y,...a,h,p],endsParent:!0,illegal:/["']/},C0={match:[/(func|macro)/,/\s+/,k9(l.match,CZ,g$)],className:{1:"keyword",3:"title.function"},contains:[X0,j0,J],illegal:[/\[/,/%/]},p0={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[X0,j0,J],illegal:/\[|%/},w0={match:[/operator/,/\s+/,g$],className:{1:"keyword",3:"title"}},o0={begin:[/precedencegroup/,/\s+/,w7],className:{1:"keyword",3:"title"},contains:[h],keywords:[...zP,...qq],end:/}/},c0={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},R0={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},d={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,CZ,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:W,contains:[X0,...U,{begin:/:/,end:/\{/,keywords:W,contains:[{scope:"title.class.inherited",match:w7},...U],relevance:0}]};for(let i of y.variants){let K0=i.contains.find((P0)=>P0.label==="interpol");K0.keywords=W;let e=[...U,...O,...A,M,y,...D];K0.contains=[...e,{begin:/\(/,end:/\)/,contains:["self",...e]}]}return{name:"Swift",keywords:W,contains:[...Q,C0,p0,c0,R0,d,w0,o0,{beginKeywords:"import",end:/$/,contains:[...Q],relevance:0},u,...U,...O,...A,M,y,...D,...a,h,p]}}Nq.exports=qP});var Aq=S0((zk,_q)=>{function WP(Z){let Q={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},X={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},z={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},K={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[Z.BACKSLASH_ESCAPE,X]},Y=Z.inherit(K,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),q="[0-9]{4}(-[0-9][0-9]){0,2}",W="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",U="(\\.[0-9]*)?",H="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",F={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},O={end:",",endsWithParent:!0,excludeEnd:!0,keywords:"true false yes no null",relevance:0},N={begin:/\{/,end:/\}/,contains:[O],illegal:"\\n",relevance:0},_={begin:"\\[",end:"\\]",contains:[O],illegal:"\\n",relevance:0},A=[Q,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!<[\\w#;/?:@&=+$,.~*'()[\\]]+>"},{className:"type",begin:"![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"type",begin:"!![\\w#;/?:@&=+$,.~*'()[\\]]+"},{className:"meta",begin:"&"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+Z.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},Z.HASH_COMMENT_MODE,{beginKeywords:"true false yes no null",keywords:{literal:"true false yes no null"}},F,{className:"number",begin:Z.C_NUMBER_RE+"\\b",relevance:0},N,_,z,K],L=[...A];return L.pop(),L.push(Y),O.contains=L,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:A}}_q.exports=WP});var kq=S0((Kk,yq)=>{var Lq=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Pq=["true","false","null","undefined","NaN","Infinity"],Mq=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Iq=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Rq=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Cq=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Vq=[].concat(Rq,Mq,Iq);function UP(Z){let J=Z.regex,$=(x,{after:T})=>{let m="</"+x[0].slice(1);return x.input.indexOf(m,T)!==-1},Q="[A-Za-z$_][0-9A-Za-z$_]*",X={begin:"<>",end:"</>"},z=/<[A-Za-z0-9\\._:-]+\s*\/>/,K={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(x,T)=>{let m=x[0].length+x.index,a=x.input[m];if(a==="<"||a===","){T.ignoreMatch();return}if(a===">"){if(!$(x,{after:m}))T.ignoreMatch()}let h,s=x.input.substring(m);if(h=s.match(/^\s*=/)){T.ignoreMatch();return}if(h=s.match(/^\s+extends\s+/)){if(h.index===0){T.ignoreMatch();return}}}},Y={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:Lq,literal:Pq,built_in:Vq,"variable.language":Cq},q="[0-9](_?[0-9])*",W="\\.([0-9](_?[0-9])*)",U="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",H={className:"number",variants:[{begin:"(\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)((\\.([0-9](_?[0-9])*))|\\.)?|(\\.([0-9](_?[0-9])*)))[eE][+-]?([0-9](_?[0-9])*)\\b"},{begin:"\\b(0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*)\\b((\\.([0-9](_?[0-9])*))\\b|\\.)?|(\\.([0-9](_?[0-9])*))\\b"},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},F={className:"subst",begin:"\\$\\{",end:"\\}",keywords:Y,contains:[]},O={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,F],subLanguage:"xml"}},N={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,F],subLanguage:"css"}},_={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[Z.BACKSLASH_ESCAPE,F],subLanguage:"graphql"}},A={className:"string",begin:"`",end:"`",contains:[Z.BACKSLASH_ESCAPE,F]},B={className:"comment",variants:[Z.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:"[A-Za-z$_][0-9A-Za-z$_]*(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),Z.C_BLOCK_COMMENT_MODE,Z.C_LINE_COMMENT_MODE]},M=[Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,O,N,_,A,{match:/\$\d+/},H];F.contains=M.concat({begin:/\{/,end:/\}/,keywords:Y,contains:["self"].concat(M)});let C=[].concat(B,F.contains),R=C.concat([{begin:/(\s*)\(/,end:/\)/,keywords:Y,contains:["self"].concat(C)}]),I={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:R},P={variants:[{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s+/,/extends/,/\s+/,J.concat("[A-Za-z$_][0-9A-Za-z$_]*","(",J.concat(/\./,"[A-Za-z$_][0-9A-Za-z$_]*"),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*"],scope:{1:"keyword",3:"title.class"}}]},V={relevance:0,match:J.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Mq,...Iq]}},y={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},k={variants:[{match:[/function/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[I],illegal:/%/},j={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function w(x){return J.concat("(?!",x.join("|"),")")}let u={match:J.concat(/\b/,w([...Rq,"super","import"].map((x)=>`${x}\\s*\\(`)),"[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\(/)),className:"title.function",relevance:0},l={begin:J.concat(/\./,J.lookahead(J.concat("[A-Za-z$_][0-9A-Za-z$_]*",/(?![0-9A-Za-z$_(])/))),end:"[A-Za-z$_][0-9A-Za-z$_]*",excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},v={match:[/get|set/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},I]},S="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+Z.UNDERSCORE_IDENT_RE+")\\s*=>",D={match:[/const|var|let/,/\s+/,"[A-Za-z$_][0-9A-Za-z$_]*",/\s*/,/=\s*/,/(async\s*)?/,J.lookahead(S)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[I]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:Y,exports:{PARAMS_CONTAINS:R,CLASS_REFERENCE:V},illegal:/#(?![$_A-z])/,contains:[Z.SHEBANG({label:"shebang",binary:"node",relevance:5}),y,Z.APOS_STRING_MODE,Z.QUOTE_STRING_MODE,O,N,_,A,B,{match:/\$\d+/},H,V,{scope:"attr",match:"[A-Za-z$_][0-9A-Za-z$_]*"+J.lookahead(":"),relevance:0},D,{begin:"("+Z.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[B,Z.REGEXP_MODE,{className:"function",begin:S,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:Z.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Y,contains:R}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:X.begin,end:X.end},{match:z},{begin:K.begin,"on:begin":K.isTrulyOpeningTag,end:K.end}],subLanguage:"xml",contains:[{begin:K.begin,end:K.end,skip:!0,contains:["self"]}]}]},k,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+Z.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[I,Z.inherit(Z.TITLE_MODE,{begin:"[A-Za-z$_][0-9A-Za-z$_]*",className:"title.function"})]},{match:/\.\.\./,relevance:0},l,{match:"\\$[A-Za-z$_][0-9A-Za-z$_]*",relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[I]},u,j,P,v,{match:/\$[(.]/}]}}function HP(Z){let J=Z.regex,$=UP(Z),Q="[A-Za-z$_][0-9A-Za-z$_]*",X=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],z={begin:[/namespace/,/\s+/,Z.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},K={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:X},contains:[$.exports.CLASS_REFERENCE]},Y={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},q=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],W={$pattern:"[A-Za-z$_][0-9A-Za-z$_]*",keyword:Lq.concat(q),literal:Pq,built_in:Vq.concat(X),"variable.language":Cq},U={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},H=(_,A,L)=>{let B=_.contains.findIndex((M)=>M.label===A);if(B===-1)throw Error("can not find mode to replace");_.contains.splice(B,1,L)};Object.assign($.keywords,W),$.exports.PARAMS_CONTAINS.push(U);let F=$.contains.find((_)=>_.scope==="attr"),O=Object.assign({},F,{match:J.concat("[A-Za-z$_][0-9A-Za-z$_]*",J.lookahead(/\s*\?:/))});$.exports.PARAMS_CONTAINS.push([$.exports.CLASS_REFERENCE,F,O]),$.contains=$.contains.concat([U,z,K,O]),H($,"shebang",Z.SHEBANG()),H($,"use_strict",Y);let N=$.contains.find((_)=>_.label==="func.def");return N.relevance=0,Object.assign($,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),$}yq.exports=HP});var jq=S0((Yk,Tq)=>{function FP(Z){let J=Z.regex,$={className:"string",begin:/"(""|[^/n])"C\b/},Q={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},X=/\d{1,2}\/\d{1,2}\/\d{4}/,z=/\d{4}-\d{1,2}-\d{1,2}/,K=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,Y=/\d{1,2}(:\d{1,2}){1,2}/,q={className:"literal",variants:[{begin:J.concat(/# */,J.either(z,X),/ *#/)},{begin:J.concat(/# */,Y,/ *#/)},{begin:J.concat(/# */,K,/ *#/)},{begin:J.concat(/# */,J.either(z,X),/ +/,J.either(K,Y),/ *#/)}]},W={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},U={className:"label",begin:/^\w+:/},H=Z.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),F=Z.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[$,Q,q,W,U,H,F,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[F]}]}}Tq.exports=FP});var Sq=S0((Gk,Dq)=>{function OP(Z){Z.regex;let J=Z.COMMENT(/\(;/,/;\)/);J.contains.push("self");let $=Z.COMMENT(/;;/,/$/),Q=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],X={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},z={className:"variable",begin:/\$[\w_]+/},K={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},Y={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},q={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},W={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:Q},contains:[$,J,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},z,K,X,Z.QUOTE_STRING_MODE,q,W,Y]}}Dq.exports=OP});var Eq=S0((qk,bq)=>{var k0=aY();k0.registerLanguage("xml",nY());k0.registerLanguage("bash",rY());k0.registerLanguage("c",tY());k0.registerLanguage("cpp",ZG());k0.registerLanguage("csharp",$G());k0.registerLanguage("css",XG());k0.registerLanguage("markdown",KG());k0.registerLanguage("diff",GG());k0.registerLanguage("ruby",WG());k0.registerLanguage("go",HG());k0.registerLanguage("graphql",OG());k0.registerLanguage("ini",BG());k0.registerLanguage("java",PG());k0.registerLanguage("javascript",VG());k0.registerLanguage("json",kG());k0.registerLanguage("kotlin",jG());k0.registerLanguage("less",EG());k0.registerLanguage("lua",xG());k0.registerLanguage("makefile",hG());k0.registerLanguage("perl",gG());k0.registerLanguage("objectivec",uG());k0.registerLanguage("php",cG());k0.registerLanguage("php-template",lG());k0.registerLanguage("plaintext",iG());k0.registerLanguage("python",sG());k0.registerLanguage("python-repl",oG());k0.registerLanguage("r",eG());k0.registerLanguage("rust",Jq());k0.registerLanguage("scss",Qq());k0.registerLanguage("shell",zq());k0.registerLanguage("sql",Yq());k0.registerLanguage("swift",Bq());k0.registerLanguage("yaml",Aq());k0.registerLanguage("typescript",kq());k0.registerLanguage("vbnet",jq());k0.registerLanguage("wasm",Sq());k0.HighlightJS=k0;k0.default=k0;bq.exports=k0});var G4,u0,t3,vH,aZ,n3,e3,Z2,Y1,$4,g6,J2,U1,G1,q1,hH,z4={},K4=[],fH=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,q4=Array.isArray;function yZ(Z,J){for(var $ in J)Z[$]=J[$];return Z}function H1(Z){Z&&Z.parentNode&&Z.parentNode.removeChild(Z)}function gH(Z,J,$){var Q,X,z,K={};for(z in J)z=="key"?Q=J[z]:z=="ref"?X=J[z]:K[z]=J[z];if(arguments.length>2&&(K.children=arguments.length>3?G4.call(arguments,2):$),typeof Z=="function"&&Z.defaultProps!=null)for(z in Z.defaultProps)K[z]===void 0&&(K[z]=Z.defaultProps[z]);return Q4(Z,K,Q,X,null)}function Q4(Z,J,$,Q,X){var z={type:Z,props:J,key:$,ref:Q,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:X==null?++t3:X,__i:-1,__u:0};return X==null&&u0.vnode!=null&&u0.vnode(z),z}function t(Z){return Z.children}function X4(Z,J){this.props=Z,this.context=J}function s8(Z,J){if(J==null)return Z.__?s8(Z.__,Z.__i+1):null;for(var $;J<Z.__k.length;J++)if(($=Z.__k[J])!=null&&$.__e!=null)return $.__e;return typeof Z.type=="function"?s8(Z):null}function mH(Z){if(Z.__P&&Z.__d){var J=Z.__v,$=J.__e,Q=[],X=[],z=yZ({},J);z.__v=J.__v+1,u0.vnode&&u0.vnode(z),F1(Z.__P,z,J,Z.__n,Z.__P.namespaceURI,32&J.__u?[$]:null,Q,$==null?s8(J):$,!!(32&J.__u),X),z.__v=J.__v,z.__.__k[z.__i]=z,z2(Q,z,X),J.__e=J.__=null,z.__e!=$&&$2(z)}}function $2(Z){if((Z=Z.__)!=null&&Z.__c!=null)return Z.__e=Z.__c.base=null,Z.__k.some(function(J){if(J!=null&&J.__e!=null)return Z.__e=Z.__c.base=J.__e}),$2(Z)}function s3(Z){(!Z.__d&&(Z.__d=!0)&&aZ.push(Z)&&!Y4.__r++||n3!=u0.debounceRendering)&&((n3=u0.debounceRendering)||e3)(Y4)}function Y4(){try{for(var Z,J=1;aZ.length;)aZ.length>J&&aZ.sort(Z2),Z=aZ.shift(),J=aZ.length,mH(Z)}finally{aZ.length=Y4.__r=0}}function Q2(Z,J,$,Q,X,z,K,Y,q,W,U){var H,F,O,N,_,A,L,B=Q&&Q.__k||K4,M=J.length;for(q=uH($,J,B,q,M),H=0;H<M;H++)(O=$.__k[H])!=null&&(F=O.__i!=-1&&B[O.__i]||z4,O.__i=H,A=F1(Z,O,F,X,z,K,Y,q,W,U),N=O.__e,O.ref&&F.ref!=O.ref&&(F.ref&&O1(F.ref,null,O),U.push(O.ref,O.__c||N,O)),_==null&&N!=null&&(_=N),(L=!!(4&O.__u))||F.__k===O.__k?(q=X2(O,q,Z,L),L&&F.__e&&(F.__e=null)):typeof O.type=="function"&&A!==void 0?q=A:N&&(q=N.nextSibling),O.__u&=-7);return $.__e=_,q}function uH(Z,J,$,Q,X){var z,K,Y,q,W,U=$.length,H=U,F=0;for(Z.__k=Array(X),z=0;z<X;z++)(K=J[z])!=null&&typeof K!="boolean"&&typeof K!="function"?(typeof K=="string"||typeof K=="number"||typeof K=="bigint"||K.constructor==String?K=Z.__k[z]=Q4(null,K,null,null,null):q4(K)?K=Z.__k[z]=Q4(t,{children:K},null,null,null):K.constructor===void 0&&K.__b>0?K=Z.__k[z]=Q4(K.type,K.props,K.key,K.ref?K.ref:null,K.__v):Z.__k[z]=K,q=z+F,K.__=Z,K.__b=Z.__b+1,Y=null,(W=K.__i=pH(K,$,q,H))!=-1&&(H--,(Y=$[W])&&(Y.__u|=2)),Y==null||Y.__v==null?(W==-1&&(X>U?F--:X<U&&F++),typeof K.type!="function"&&(K.__u|=4)):W!=q&&(W==q-1?F--:W==q+1?F++:(W>q?F--:F++,K.__u|=4))):Z.__k[z]=null;if(H)for(z=0;z<U;z++)(Y=$[z])!=null&&(2&Y.__u)==0&&(Y.__e==Q&&(Q=s8(Y)),Y2(Y,Y));return Q}function X2(Z,J,$,Q){var X,z;if(typeof Z.type=="function"){for(X=Z.__k,z=0;X&&z<X.length;z++)X[z]&&(X[z].__=Z,J=X2(X[z],J,$,Q));return J}Z.__e!=J&&(Q&&(J&&Z.type&&!J.parentNode&&(J=s8(Z)),$.insertBefore(Z.__e,J||null)),J=Z.__e);do J=J&&J.nextSibling;while(J!=null&&J.nodeType==8);return J}function pH(Z,J,$,Q){var X,z,K,Y=Z.key,q=Z.type,W=J[$],U=W!=null&&(2&W.__u)==0;if(W===null&&Y==null||U&&Y==W.key&&q==W.type)return $;if(Q>(U?1:0)){for(X=$-1,z=$+1;X>=0||z<J.length;)if((W=J[K=X>=0?X--:z++])!=null&&(2&W.__u)==0&&Y==W.key&&q==W.type)return K}return-1}function r3(Z,J,$){J[0]=="-"?Z.setProperty(J,$==null?"":$):Z[J]=$==null?"":typeof $!="number"||fH.test(J)?$:$+"px"}function J4(Z,J,$,Q,X){var z,K;Z:if(J=="style")if(typeof $=="string")Z.style.cssText=$;else{if(typeof Q=="string"&&(Z.style.cssText=Q=""),Q)for(J in Q)$&&J in $||r3(Z.style,J,"");if($)for(J in $)Q&&$[J]==Q[J]||r3(Z.style,J,$[J])}else if(J[0]=="o"&&J[1]=="n")z=J!=(J=J.replace(J2,"$1")),K=J.toLowerCase(),J=K in Z||J=="onFocusOut"||J=="onFocusIn"?K.slice(2):J.slice(2),Z.l||(Z.l={}),Z.l[J+z]=$,$?Q?$[g6]=Q[g6]:($[g6]=U1,Z.addEventListener(J,z?q1:G1,z)):Z.removeEventListener(J,z?q1:G1,z);else{if(X=="http://www.w3.org/2000/svg")J=J.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(J!="width"&&J!="height"&&J!="href"&&J!="list"&&J!="form"&&J!="tabIndex"&&J!="download"&&J!="rowSpan"&&J!="colSpan"&&J!="role"&&J!="popover"&&J in Z)try{Z[J]=$==null?"":$;break Z}catch(Y){}typeof $=="function"||($==null||$===!1&&J[4]!="-"?Z.removeAttribute(J):Z.setAttribute(J,J=="popover"&&$==1?"":$))}}function o3(Z){return function(J){if(this.l){var $=this.l[J.type+Z];if(J[$4]==null)J[$4]=U1++;else if(J[$4]<$[g6])return;return $(u0.event?u0.event(J):J)}}}function F1(Z,J,$,Q,X,z,K,Y,q,W){var U,H,F,O,N,_,A,L,B,M,C,R,I,P,V,y=J.type;if(J.constructor!==void 0)return null;128&$.__u&&(q=!!(32&$.__u),z=[Y=J.__e=$.__e]),(U=u0.__b)&&U(J);Z:if(typeof y=="function")try{if(L=J.props,B=y.prototype&&y.prototype.render,M=(U=y.contextType)&&Q[U.__c],C=U?M?M.props.value:U.__:Q,$.__c?A=(H=J.__c=$.__c).__=H.__E:(B?J.__c=H=new y(L,C):(J.__c=H=new X4(L,C),H.constructor=y,H.render=dH),M&&M.sub(H),H.state||(H.state={}),H.__n=Q,F=H.__d=!0,H.__h=[],H._sb=[]),B&&H.__s==null&&(H.__s=H.state),B&&y.getDerivedStateFromProps!=null&&(H.__s==H.state&&(H.__s=yZ({},H.__s)),yZ(H.__s,y.getDerivedStateFromProps(L,H.__s))),O=H.props,N=H.state,H.__v=J,F)B&&y.getDerivedStateFromProps==null&&H.componentWillMount!=null&&H.componentWillMount(),B&&H.componentDidMount!=null&&H.__h.push(H.componentDidMount);else{if(B&&y.getDerivedStateFromProps==null&&L!==O&&H.componentWillReceiveProps!=null&&H.componentWillReceiveProps(L,C),J.__v==$.__v||!H.__e&&H.shouldComponentUpdate!=null&&H.shouldComponentUpdate(L,H.__s,C)===!1){J.__v!=$.__v&&(H.props=L,H.state=H.__s,H.__d=!1),J.__e=$.__e,J.__k=$.__k,J.__k.some(function(k){k&&(k.__=J)}),K4.push.apply(H.__h,H._sb),H._sb=[],H.__h.length&&K.push(H);break Z}H.componentWillUpdate!=null&&H.componentWillUpdate(L,H.__s,C),B&&H.componentDidUpdate!=null&&H.__h.push(function(){H.componentDidUpdate(O,N,_)})}if(H.context=C,H.props=L,H.__P=Z,H.__e=!1,R=u0.__r,I=0,B)H.state=H.__s,H.__d=!1,R&&R(J),U=H.render(H.props,H.state,H.context),K4.push.apply(H.__h,H._sb),H._sb=[];else do H.__d=!1,R&&R(J),U=H.render(H.props,H.state,H.context),H.state=H.__s;while(H.__d&&++I<25);H.state=H.__s,H.getChildContext!=null&&(Q=yZ(yZ({},Q),H.getChildContext())),B&&!F&&H.getSnapshotBeforeUpdate!=null&&(_=H.getSnapshotBeforeUpdate(O,N)),P=U!=null&&U.type===t&&U.key==null?K2(U.props.children):U,Y=Q2(Z,q4(P)?P:[P],J,$,Q,X,z,K,Y,q,W),H.base=J.__e,J.__u&=-161,H.__h.length&&K.push(H),A&&(H.__E=H.__=null)}catch(k){if(J.__v=null,q||z!=null)if(k.then){for(J.__u|=q?160:128;Y&&Y.nodeType==8&&Y.nextSibling;)Y=Y.nextSibling;z[z.indexOf(Y)]=null,J.__e=Y}else{for(V=z.length;V--;)H1(z[V]);W1(J)}else J.__e=$.__e,J.__k=$.__k,k.then||W1(J);u0.__e(k,J,$)}else z==null&&J.__v==$.__v?(J.__k=$.__k,J.__e=$.__e):Y=J.__e=cH($.__e,J,$,Q,X,z,K,q,W);return(U=u0.diffed)&&U(J),128&J.__u?void 0:Y}function W1(Z){Z&&(Z.__c&&(Z.__c.__e=!0),Z.__k&&Z.__k.some(W1))}function z2(Z,J,$){for(var Q=0;Q<$.length;Q++)O1($[Q],$[++Q],$[++Q]);u0.__c&&u0.__c(J,Z),Z.some(function(X){try{Z=X.__h,X.__h=[],Z.some(function(z){z.call(X)})}catch(z){u0.__e(z,X.__v)}})}function K2(Z){return typeof Z!="object"||Z==null||Z.__b>0?Z:q4(Z)?Z.map(K2):Z.constructor!==void 0?null:yZ({},Z)}function cH(Z,J,$,Q,X,z,K,Y,q){var W,U,H,F,O,N,_,A=$.props||z4,L=J.props,B=J.type;if(B=="svg"?X="http://www.w3.org/2000/svg":B=="math"?X="http://www.w3.org/1998/Math/MathML":X||(X="http://www.w3.org/1999/xhtml"),z!=null){for(W=0;W<z.length;W++)if((O=z[W])&&"setAttribute"in O==!!B&&(B?O.localName==B:O.nodeType==3)){Z=O,z[W]=null;break}}if(Z==null){if(B==null)return document.createTextNode(L);Z=document.createElementNS(X,B,L.is&&L),Y&&(u0.__m&&u0.__m(J,z),Y=!1),z=null}if(B==null)A===L||Y&&Z.data==L||(Z.data=L);else{if(z=B=="textarea"&&L.defaultValue!=null?null:z&&G4.call(Z.childNodes),!Y&&z!=null)for(A={},W=0;W<Z.attributes.length;W++)A[(O=Z.attributes[W]).name]=O.value;for(W in A)O=A[W],W=="dangerouslySetInnerHTML"?H=O:W=="children"||(W in L)||W=="value"&&("defaultValue"in L)||W=="checked"&&("defaultChecked"in L)||J4(Z,W,null,O,X);for(W in L)O=L[W],W=="children"?F=O:W=="dangerouslySetInnerHTML"?U=O:W=="value"?N=O:W=="checked"?_=O:Y&&typeof O!="function"||A[W]===O||J4(Z,W,O,A[W],X);if(U)Y||H&&(U.__html==H.__html||U.__html==Z.innerHTML)||(Z.innerHTML=U.__html),J.__k=[];else if(H&&(Z.innerHTML=""),Q2(J.type=="template"?Z.content:Z,q4(F)?F:[F],J,$,Q,B=="foreignObject"?"http://www.w3.org/1999/xhtml":X,z,K,z?z[0]:$.__k&&s8($,0),Y,q),z!=null)for(W=z.length;W--;)H1(z[W]);Y&&B!="textarea"||(W="value",B=="progress"&&N==null?Z.removeAttribute("value"):N!=null&&(N!==Z[W]||B=="progress"&&!N||B=="option"&&N!=A[W])&&J4(Z,W,N,A[W],X),W="checked",_!=null&&_!=Z[W]&&J4(Z,W,_,A[W],X))}return Z}function O1(Z,J,$){try{if(typeof Z=="function"){var Q=typeof Z.__u=="function";Q&&Z.__u(),Q&&J==null||(Z.__u=Z(J))}else Z.current=J}catch(X){u0.__e(X,$)}}function Y2(Z,J,$){var Q,X;if(u0.unmount&&u0.unmount(Z),(Q=Z.ref)&&(Q.current&&Q.current!=Z.__e||O1(Q,null,J)),(Q=Z.__c)!=null){if(Q.componentWillUnmount)try{Q.componentWillUnmount()}catch(z){u0.__e(z,J)}Q.base=Q.__P=null}if(Q=Z.__k)for(X=0;X<Q.length;X++)Q[X]&&Y2(Q[X],J,$||typeof Z.type!="function");$||H1(Z.__e),Z.__c=Z.__=Z.__e=void 0}function dH(Z,J,$){return this.constructor(Z,$)}function g0(Z,J,$){var Q,X,z,K;J==document&&(J=document.documentElement),u0.__&&u0.__(Z,J),X=(Q=typeof $=="function")?null:$&&$.__k||J.__k,z=[],K=[],F1(J,Z=(!Q&&$||J).__k=gH(t,null,[Z]),X||z4,z4,J.namespaceURI,!Q&&$?[$]:X?null:J.firstChild?G4.call(J.childNodes):null,z,!Q&&$?$:X?X.__e:J.firstChild,Q,K),z2(z,Z,K)}G4=K4.slice,u0={__e:function(Z,J,$,Q){for(var X,z,K;J=J.__;)if((X=J.__c)&&!X.__)try{if((z=X.constructor)&&z.getDerivedStateFromError!=null&&(X.setState(z.getDerivedStateFromError(Z)),K=X.__d),X.componentDidCatch!=null&&(X.componentDidCatch(Z,Q||{}),K=X.__d),K)return X.__E=X}catch(Y){Z=Y}throw Z}},t3=0,vH=function(Z){return Z!=null&&Z.constructor===void 0},X4.prototype.setState=function(Z,J){var $;$=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=yZ({},this.state),typeof Z=="function"&&(Z=Z(yZ({},$),this.props)),Z&&yZ($,Z),Z!=null&&this.__v&&(J&&this._sb.push(J),s3(this))},X4.prototype.forceUpdate=function(Z){this.__v&&(this.__e=!0,Z&&this.__h.push(Z),s3(this))},X4.prototype.render=t,aZ=[],e3=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Z2=function(Z,J){return Z.__v.__b-J.__v.__b},Y4.__r=0,Y1=Math.random().toString(8),$4="__d"+Y1,g6="__a"+Y1,J2=/(PointerCapture)$|Capture$/i,U1=0,G1=o3(!1),q1=o3(!0),hH=0;var r8,$9,N1,G2,m6=0,B2=[],z9=u0,q2=z9.__b,W2=z9.__r,U2=z9.diffed,H2=z9.__c,F2=z9.unmount,O2=z9.__;function U4(Z,J){z9.__h&&z9.__h($9,Z,m6||J),m6=0;var $=$9.__H||($9.__H={__:[],__h:[]});return Z>=$.__.length&&$.__.push({}),$.__[Z]}function b(Z){return m6=1,lH(_2,Z)}function lH(Z,J,$){var Q=U4(r8++,2);if(Q.t=Z,!Q.__c&&(Q.__=[$?$(J):_2(void 0,J),function(Y){var q=Q.__N?Q.__N[0]:Q.__[0],W=Q.t(q,Y);q!==W&&(Q.__N=[W,Q.__[1]],Q.__c.setState({}))}],Q.__c=$9,!$9.__f)){var X=function(Y,q,W){if(!Q.__c.__H)return!0;var U=Q.__c.__H.__.filter(function(F){return F.__c});if(U.every(function(F){return!F.__N}))return!z||z.call(this,Y,q,W);var H=Q.__c.props!==Y;return U.some(function(F){if(F.__N){var O=F.__[0];F.__=F.__N,F.__N=void 0,O!==F.__[0]&&(H=!0)}}),z&&z.call(this,Y,q,W)||H};$9.__f=!0;var{shouldComponentUpdate:z,componentWillUpdate:K}=$9;$9.componentWillUpdate=function(Y,q,W){if(this.__e){var U=z;z=void 0,X(Y,q,W),z=U}K&&K.call(this,Y,q,W)},$9.shouldComponentUpdate=X}return Q.__N||Q.__}function J0(Z,J){var $=U4(r8++,3);!z9.__s&&_1($.__H,J)&&($.__=Z,$.u=J,$9.__H.__h.push($))}function H4(Z,J){var $=U4(r8++,4);!z9.__s&&_1($.__H,J)&&($.__=Z,$.u=J,$9.__h.push($))}function G0(Z){return m6=5,kZ(function(){return{current:Z}},[])}function kZ(Z,J){var $=U4(r8++,7);return _1($.__H,J)&&($.__=Z(),$.__H=J,$.__h=Z),$.__}function A8(Z,J){return m6=8,kZ(function(){return Z},J)}function aH(){for(var Z;Z=B2.shift();){var J=Z.__H;if(Z.__P&&J)try{J.__h.some(W4),J.__h.some(B1),J.__h=[]}catch($){J.__h=[],z9.__e($,Z.__v)}}}z9.__b=function(Z){$9=null,q2&&q2(Z)},z9.__=function(Z,J){Z&&J.__k&&J.__k.__m&&(Z.__m=J.__k.__m),O2&&O2(Z,J)},z9.__r=function(Z){W2&&W2(Z),r8=0;var J=($9=Z.__c).__H;J&&(N1===$9?(J.__h=[],$9.__h=[],J.__.some(function($){$.__N&&($.__=$.__N),$.u=$.__N=void 0})):(J.__h.some(W4),J.__h.some(B1),J.__h=[],r8=0)),N1=$9},z9.diffed=function(Z){U2&&U2(Z);var J=Z.__c;J&&J.__H&&(J.__H.__h.length&&(B2.push(J)!==1&&G2===z9.requestAnimationFrame||((G2=z9.requestAnimationFrame)||iH)(aH)),J.__H.__.some(function($){$.u&&($.__H=$.u),$.u=void 0})),N1=$9=null},z9.__c=function(Z,J){J.some(function($){try{$.__h.some(W4),$.__h=$.__h.filter(function(Q){return!Q.__||B1(Q)})}catch(Q){J.some(function(X){X.__h&&(X.__h=[])}),J=[],z9.__e(Q,$.__v)}}),H2&&H2(Z,J)},z9.unmount=function(Z){F2&&F2(Z);var J,$=Z.__c;$&&$.__H&&($.__H.__.some(function(Q){try{W4(Q)}catch(X){J=X}}),$.__H=void 0,J&&z9.__e(J,$.__v))};var N2=typeof requestAnimationFrame=="function";function iH(Z){var J,$=function(){clearTimeout(Q),N2&&cancelAnimationFrame(J),setTimeout(Z)},Q=setTimeout($,35);N2&&(J=requestAnimationFrame($))}function W4(Z){var J=$9,$=Z.__c;typeof $=="function"&&(Z.__c=void 0,$()),$9=J}function B1(Z){var J=$9;Z.__c=Z.__(),$9=J}function _1(Z,J){return!Z||Z.length!==J.length||J.some(function($,Q){return $!==Z[Q]})}function _2(Z,J){return typeof J=="function"?J(Z):J}class L8 extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="BusError"}}class A2{ch=null;worker=null;started=!1;leader=!1;nextLocal=0;localPending=new Map;remotePending=new Map;listeners=new Set;start(){if(this.started)return;this.started=!0,this.ch=new BroadcastChannel("mh-replica-bus"),this.ch.onmessage=(J)=>this.onChannel(J.data);let Z=navigator.locks;if(Z)Z.request("mh-replica-leader",()=>{return this.becomeLeader(),new Promise(()=>{})}).catch(()=>{});else this.becomeLeader()}onEvent(Z){return this.listeners.add(Z),()=>this.listeners.delete(Z)}call(Z,...J){if(!this.started)this.start();if(this.leader)return this.workerCall(Z,J);return this.remoteCall(Z,J)}becomeLeader(){if(this.leader)return;this.leader=!0,this.spawnWorker();for(let[Z,J]of[...this.remotePending])this.remotePending.delete(Z),clearTimeout(J.timer),this.workerCall(J.op,J.args).then(J.resolve,J.reject)}spawnWorker(){if(this.worker)return;this.worker=new Worker("/db-worker.js",{type:"module"}),this.worker.onmessage=(Z)=>{let J=Z.data;if("id"in J){let $=this.localPending.get(J.id);if(!$)return;if(this.localPending.delete(J.id),J.ok)$.resolve(J.result);else $.reject(new L8(J.error.message,J.error.code));return}this.emit(J),this.ch?.postMessage({kind:"event",event:J})},this.worker.onerror=()=>{let Z={event:"status",status:{state:"error",paired:!1,node:null,error:"worker crashed"}};this.emit(Z),this.ch?.postMessage({kind:"event",event:Z})}}workerCall(Z,J){if(!this.worker)this.spawnWorker();let $=++this.nextLocal;return new Promise((Q,X)=>{this.localPending.set($,{resolve:Q,reject:X}),this.worker.postMessage({id:$,op:Z,args:J})})}remoteCall(Z,J){let $=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,10)}`;return new Promise((Q,X)=>{let z=setTimeout(()=>{if(this.remotePending.delete($),this.leader){this.workerCall(Z,J).then(Q,X);return}X(new L8("replica leader unavailable","network"))},1e4);this.remotePending.set($,{resolve:Q,reject:X,timer:z,op:Z,args:J}),this.ch?.postMessage({kind:"req",id:$,op:Z,args:J})})}onChannel(Z){if(Z.kind==="req"){if(!this.leader)return;this.workerCall(Z.op,Z.args).then((J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!0,result:J}),(J)=>this.ch?.postMessage({kind:"res",id:Z.id,ok:!1,error:{message:J.message,code:J.code}}));return}if(Z.kind==="res"){let J=this.remotePending.get(Z.id);if(!J)return;if(this.remotePending.delete(Z.id),clearTimeout(J.timer),Z.ok)J.resolve(Z.result);else J.reject(new L8(Z.error?.message??"replica error",Z.error?.code));return}if(Z.kind==="event"&&!this.leader)this.emit(Z.event)}emit(Z){for(let J of this.listeners)J(Z)}stopWorker(){this.worker?.terminate(),this.worker=null,this.localPending.forEach((Z)=>Z.reject(new L8("replica stopped",void 0))),this.localPending.clear()}}function F4(){let Z=globalThis;return Z.__mhReplicaBus??=new A2}function nH(Z,J){if(Z===null)return"unknown";if(Z.status>=500)return"unknown";if(Z.ok)return J?.ok===!0?"server":"none";return"none"}async function L2(){let Z=null,J=null;try{Z=await fetch("/health",{cache:"no-store"}),J=Z.ok?await Z.json().catch(()=>null):null}catch{Z=null}return nH(Z,J)}var I8="mh-synced",p6="mh_replica",u6="mh_replica_hydrated",I2="mh_origin_mode";class jZ extends Error{code;constructor(Z,J){super(Z);this.code=J;this.name="ReplicaError"}}var DZ=!1,TZ={state:"booting",paired:!1,node:null},O4=new Set;function R8(){return TZ}function x9(Z){return O4.add(Z),()=>O4.delete(Z)}function A1(Z){try{return localStorage.getItem(Z)==="1"}catch{return!1}}function P8(Z,J){try{J?localStorage.setItem(Z,"1"):localStorage.removeItem(Z)}catch{}}function m9(){return A1(p6)}function M9(){return m9()&&A1(u6)&&DZ&&TZ.state!=="error"}var o8=(()=>{try{let Z=localStorage.getItem(I2);return Z==="server"||Z==="none"?Z:null}catch{return null}})();function n9(){return o8==="none"}function OZ(){let Z=n9();return{surface:typeof window<"u"&&window.metahubDesktop?"desktop":"web",dataHome:Z?"local":"server",hold:Z||m9()?"replica":"window"}}async function L1(){if(o8)return o8;let Z=await L2();if(Z==="unknown")return"server";o8=Z;try{localStorage.setItem(I2,o8)}catch{}return o8}function P2(Z){if(Z.event==="status"){if(TZ=Z.status,TZ.lastSync?.ok&&!A1(u6))P8(u6,!0),navigator.storage?.persist?.().catch(()=>{});for(let J of O4)J(TZ);return}if(Z.event==="synced"){if(document.dispatchEvent(new CustomEvent(I8,{detail:Z})),Z.datasets.some((J)=>J==="databases"||J==="documents"))document.dispatchEvent(new CustomEvent(s9))}}function c6(){if(DZ||typeof Worker>"u")return;DZ=!0;let Z=F4();Z.onEvent(P2),Z.start(),Z.call("status").then((J)=>P2({event:"status",status:J})).catch(()=>{}),sH(),window.addEventListener("online",M8),document.addEventListener("visibilitychange",M8)}function s0(Z,...J){if(!DZ)return Promise.reject(new jZ("replica not running",void 0));return F4().call(Z,...J).catch(($)=>{throw $ instanceof L8?new jZ($.message,$.code):$})}function M8(){if(DZ)s0("sync").catch(()=>{})}function R2(){if(!DZ)return Promise.reject(new jZ("replica not running",void 0));return s0("sync")}function P1(Z=30000){if(TZ.state==="ready")return Promise.resolve();return new Promise((J,$)=>{let Q=setTimeout(()=>{X(),$(new jZ("本地副本启动超时",void 0))},Z),X=x9((z)=>{if(z.state==="ready")clearTimeout(Q),X(),J();else if(z.state==="error")clearTimeout(Q),X(),$(new jZ(z.error??"本地副本启动失败",void 0))})})}async function C2(){if(c6(),await P1(),!TZ.paired){let Z=await l6("/api/pair/new",{method:"POST"});if(!Z.ok)throw new jZ(`无法获取配对码: ${Z.status}`,void 0);let{code:J}=await Z.json();await s0("pair",J)}P8(p6,!0),d6(),M8()}async function V2(Z,J){c6(),await P1();let $=await s0("addStorageReplica",Z,J);return P8(p6,!0),d6(),M8(),$}async function y2(){P8(p6,!1),P8(u6,!1);try{if(DZ)await s0("unpair")}catch{}await M1()}async function k2(){P8(p6,!1),P8(u6,!1);try{if(DZ)await s0("unpair").catch(()=>{}),await s0("reset")}finally{F4().stopWorker(),M1(),DZ=!1,TZ={state:"booting",paired:!1,node:null};for(let Z of O4)Z(TZ)}}function T2(){if(m9())c6(),P1().then(()=>M8()).catch(()=>{})}function sH(){let Z=globalThis;if(Z.__mhSwBridge||!("serviceWorker"in navigator))return;Z.__mhSwBridge=!0,navigator.serviceWorker.addEventListener("message",(J)=>{let $=J.data,Q=J.ports?.[0];if(!$||$.kind!=="mh-rpc"||!Q||!$.op)return;if(!M9()){Q.postMessage({ok:!1,error:{message:"replica unavailable",code:"unavailable"}});return}s0($.op,...$.args??[]).then((X)=>Q.postMessage({ok:!0,result:X}),(X)=>Q.postMessage({ok:!1,error:{message:X.message,code:X.code}}))})}var M2=!1;async function M1(){try{if("serviceWorker"in navigator){let Z=await navigator.serviceWorker.getRegistrations();await Promise.all(Z.map((J)=>J.unregister().catch(()=>!1)))}}catch{}try{if("caches"in globalThis){for(let Z of await caches.keys())if(Z.startsWith("mh-shell-")||Z==="mh-api-v1"||Z==="mh-blob-v1")await caches.delete(Z)}}catch{}}function d6(){if(typeof navigator>"u"||!("serviceWorker"in navigator))return;if(typeof window>"u"||!window.isSecureContext)return;if(OZ().surface==="desktop"||OZ().hold!=="replica"){M1();return}if(navigator.serviceWorker.register("/sw.js").catch(($)=>{console.warn("[webui] service worker registration failed —",$)}),M2)return;M2=!0;let Z=navigator.serviceWorker.controller!=null,J=!1;navigator.serviceWorker.addEventListener("controllerchange",()=>{if(!Z){Z=!0;return}if(J)return;J=!0,location.reload()})}var rH={invalid_input:400,not_found:404,ambiguous:400,stale:409,conflict:409,auth:401,network:502};function oH(Z){return/^(create|update|delete|move|duplicate|revert)(Database|Document)/.test(Z)}async function T0(Z,...J){try{let $=await s0(Z,...J);if(oH(Z))document.dispatchEvent(new CustomEvent(s9));return $}catch($){if($ instanceof jZ)throw new iZ($.message,$.code,$.code?rH[$.code]??400:0);throw $}}var I1={listDatabases:()=>T0("listDatabases"),createDatabase:(Z)=>T0("createDatabase",Z),updateDatabase:(Z,J)=>T0("updateDatabase",Z,J),duplicateDatabase:(Z,J)=>T0("duplicateDatabase",Z,J),deleteDatabase:(Z)=>T0("deleteDatabase",Z),databaseActivity:(Z,J)=>T0("listDatabaseActivity",Z,J),listProperties:(Z)=>T0("listProperties",Z),createProperty:(Z)=>{let{db:J,...$}=Z;return T0("addProperty",J,$)},updateProperty:(Z,J)=>T0("updateProperty",Z,J),setColumnWidth:(Z,J)=>T0("setPropertyWidth",Z,J),deleteProperty:(Z)=>T0("removeProperty",Z),listRecords:(Z,J={})=>T0("listRecords",Z,J),createRecord:(Z,J)=>T0("createRecord",Z,J),getRecord:(Z)=>T0("getRecord",Z),updateRecord:(Z,J)=>T0("updateRecord",Z,J),moveRecord:(Z,J,$)=>T0("moveRecord",Z,J,$),deleteRecord:(Z)=>T0("deleteRecord",Z),recordHistory:(Z)=>T0("listRecordRevisions",Z),recordAt:(Z,J)=>T0("recordAtVersion",Z,J),revertRecord:(Z,J)=>T0("revertRecord",Z,J),listDocuments:(Z)=>T0("listDocuments",Z?{database_id:Z}:void 0),listDocumentsByParent:(Z)=>T0("listDocuments",{parent_id:Z}),createDocument:(Z)=>T0("createDocument",Z),getDocument:(Z)=>T0("getDocument",Z),updateDocument:(Z,J)=>{let{if_match:$,...Q}=J;return T0("updateDocument",Z,Q,$)},moveDocument:(Z,J,$)=>T0("moveDocument",Z,J,$),duplicateDocument:(Z,J)=>T0("duplicateDocument",Z,J),deleteDocument:(Z)=>T0("deleteDocument",Z),documentHistory:(Z)=>T0("listDocumentRevisions",Z),documentAt:(Z,J)=>T0("documentAtVersion",Z,J),revertDocument:(Z,J)=>T0("revertDocument",Z,J.to,J.if_match),nodes:()=>T0("nodes"),search:(Z,J)=>T0("search",Z,J)},R1={listSites:()=>T0("listSites"),listSiteFiles:(Z)=>T0("listSiteFiles",Z),createSite:(Z)=>T0("createSite",Z),updateSite:(Z,J)=>T0("updateSite",Z,J),deleteSite:(Z)=>T0("deleteSite",Z),deleteSiteFile:(Z,J)=>T0("deleteSiteFile",Z,J),uploadSiteFile:async(Z,J,$)=>T0("putSiteFile",Z,J,await $.arrayBuffer(),$.type||void 0)};var j2=209715200,tH=Math.floor(167772160);function eH(Z){if(Z instanceof ArrayBuffer)return Z;let J=new Uint8Array(Z.byteLength);return J.set(Z),J.buffer}async function ZF(Z){let J=await crypto.subtle.digest("SHA-256",eH(Z));return[...new Uint8Array(J)].map(($)=>$.toString(16).padStart(2,"0")).join("")}async function D2(Z){return(await ZF(Z)).slice(0,32)}var JF={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif",svg:"image/svg+xml",pdf:"application/pdf"};function S2(Z){let J=Z.toLowerCase().split(";")[0].trim();for(let[$,Q]of Object.entries(JF))if(Q===J&&$!=="jpeg")return $;return""}var N4=null;function $F(){if(N4)return N4;return N4=new Promise((Z,J)=>{let $=indexedDB.open("mh-blobs",1);$.onupgradeneeded=()=>{let Q=$.result;if(!Q.objectStoreNames.contains("spool"))Q.createObjectStore("spool",{keyPath:"hash"});if(!Q.objectStoreNames.contains("meta"))Q.createObjectStore("meta",{keyPath:"hash"})},$.onsuccess=()=>Z($.result),$.onerror=()=>J($.error)}),N4}function I9(Z,J,$){return $F().then((Q)=>new Promise((X,z)=>{let K=$(Q.transaction(Z,J).objectStore(Z));K.onsuccess=()=>X(K.result),K.onerror=()=>z(K.error)}))}async function b2(Z,J,$){let Q={hash:Z,bytes:J,content_type:$,created:Date.now(),durable:0};await I9("spool","readwrite",(X)=>X.put(Q))}async function a6(){return(await I9("spool","readonly",(J)=>J.getAll())??[]).filter((J)=>!J.durable)}async function E2(Z){await I9("spool","readwrite",(J)=>J.delete(Z))}var i6=(Z)=>`/blob/${Z}`;async function QF(Z,J,$){let Q=await I9("meta","readonly",(z)=>z.get(Z)),X={hash:Z,size:J,accessed:Date.now(),pinned:Q?.pinned??0,content_type:$??Q?.content_type};await I9("meta","readwrite",(z)=>z.put(X))}async function w2(Z,J){let $=await I9("meta","readonly",(Q)=>Q.get(Z));if(!$)return!1;return $.pinned=J?1:0,await I9("meta","readwrite",(Q)=>Q.put($)),!0}async function x2(Z,J,$){await(await caches.open("mh-blob-v1")).put(i6(Z),new Response(J,{headers:{"content-type":$,"cache-control":"public, max-age=31536000, immutable"}})),await QF(Z,J.byteLength,$),await XF()}async function XF(){let Z=await I9("meta","readonly",(X)=>X.getAll())??[],J=Z.reduce((X,z)=>X+z.size,0);if(J<=209715200)return;let $=await caches.open("mh-blob-v1"),Q=Z.filter((X)=>!X.pinned).sort((X,z)=>X.accessed-z.accessed);for(let X of Q){if(J<=tH)break;await $.delete(i6(X.hash)),await I9("meta","readwrite",(z)=>z.delete(X.hash)),J-=X.size}}async function v2(){let Z=await I9("meta","readonly",(Q)=>Q.getAll())??[],J=0,$=0;for(let Q of Z)if(J+=Q.size,Q.pinned)$+=Q.size;return{count:Z.length,totalBytes:J,pinnedBytes:$}}async function h2(){let Z=await I9("meta","readonly",(X)=>X.getAll())??[],J=await caches.open("mh-blob-v1"),$=0,Q=0;for(let X of Z){if(X.pinned)continue;await J.delete(i6(X.hash)),await I9("meta","readwrite",(z)=>z.delete(X.hash)),$++,Q+=X.size}return{cleared:$,freedBytes:Q}}async function f2(){let Z=await I9("meta","readonly",(X)=>X.getAll())??[],J=await caches.open("mh-blob-v1"),$=[],Q=new Set;for(let X of Z){let z=X.content_type??null;if(!z)z=(await J.match(i6(X.hash)))?.headers.get("content-type")??null;$.push({hash:X.hash,size:X.size,content_type:z,accessed:X.accessed,pinned:!!X.pinned,pending:!1}),Q.add(X.hash)}for(let X of await a6()){if(Q.has(X.hash))continue;$.push({hash:X.hash,size:X.bytes.byteLength,content_type:X.content_type||null,accessed:X.created,pinned:!1,pending:!0})}return $}async function C1(Z){let J=await caches.open("mh-blob-v1"),$=0,Q=0;for(let X of new Set(Z)){let z=await I9("meta","readonly",(K)=>K.get(X));if(!z||z.pinned)continue;await J.delete(i6(X)),await I9("meta","readwrite",(K)=>K.delete(X)),$++,Q+=z.size}return{cleared:$,freedBytes:Q}}async function g2(Z){let{cleared:J,freedBytes:$}=await C1(Z);return{removed:J,freedBytes:$}}class iZ extends Error{code;status;constructor(Z,J,$){super(Z);this.code=J;this.status=$;this.name="ApiError"}}var s9="mh-nav-invalidate";function zF(Z,J){return Z!=="GET"&&(J.startsWith("/api/database")||J.startsWith("/api/document"))}var y1="mh_token",d2="/auth/token";function k1(){try{return localStorage.getItem(y1)}catch{return null}}function l2(Z){try{localStorage.setItem(y1,Z)}catch{}document.cookie=`${y1}=${encodeURIComponent(Z)}; path=/; SameSite=Strict; Max-Age=31536000`}function a2(){return k1()}async function l6(Z,J={}){let $=k1(),Q=new Headers(J.headers);if($&&!Q.has("authorization"))Q.set("authorization",`Bearer ${$}`);let X=await fetch(Z,{...J,headers:Q});if(X.status!==401||!$)return X;let z=await fetch(d2,{headers:{authorization:`Bearer ${$}`}}).catch(()=>null);if(!z?.ok)return X;let K=await z.json().catch(()=>null);if(!K?.token)return X;return l2(K.token),Q.set("authorization",`Bearer ${K.token}`),fetch(Z,{...J,headers:Q})}function m2(Z,J,$,Q,X){return new Promise((z,K)=>{let Y=new XMLHttpRequest;if(Y.open("POST",Z),$)Y.setRequestHeader("authorization",`Bearer ${$}`);if(Y.setRequestHeader("content-type",Q),X)Y.upload.onprogress=(q)=>{if(q.lengthComputable)X(q.loaded,q.total)};Y.onload=()=>{let q=null;try{q=JSON.parse(Y.responseText)}catch{}z({status:Y.status,data:q})},Y.onerror=()=>K(Error("network error")),Y.ontimeout=()=>K(Error("timeout")),Y.send(J)})}async function KF(Z,J,$,Q){let X=k1(),z=await m2(Z,J,X,$,Q);if(z.status===401&&X){let K=await fetch(d2,{headers:{authorization:`Bearer ${X}`}}).catch(()=>null),Y=K?.ok?await K.json().catch(()=>null):null;if(Y?.token)l2(Y.token),z=await m2(Z,J,Y.token,$,Q)}if(z.status>=200&&z.status<300&&z.data&&!z.data.error)return z.data;throw Error(z.data&&z.data.error||`${z.status}`)}async function B0(Z,J,$){let Q=await l6(J,{method:Z,headers:$!==void 0?{"content-type":"application/json"}:void 0,body:$!==void 0?JSON.stringify($):void 0}),X=await Q.json().catch(()=>null);if(!Q.ok||X&&X.error)throw new iZ(X&&X.error||`${Q.status} ${Q.statusText}`,X?.code,Q.status);if(zF(Z,J))document.dispatchEvent(new CustomEvent(s9));return X}var V0=(Z)=>encodeURIComponent(Z),V1=!1;async function i2(){if(V1||n9())return;V1=!0;try{for(let Z of await a6()){let J;try{J=await l6("/api/blob",{method:"POST",headers:{"content-type":Z.content_type},body:Z.bytes})}catch{break}if(!J.ok)break;await x2(Z.hash,Z.bytes,Z.content_type).catch(()=>{}),await E2(Z.hash).catch(()=>{})}}finally{V1=!1}}if(typeof window<"u")window.addEventListener("online",()=>void i2());var n2={image:26214400,video:104857600,audio:104857600,file:104857600};function u2(Z){let J=Z.split(/[?#]/,1)[0]??Z,$=J.slice(J.lastIndexOf("/")+1),Q=$.lastIndexOf(".");return Q>=0?$.slice(Q+1).toLowerCase():""}function p2(Z,J,$,Q){let X=u2(J)||u2(Q)||S2($);return`/blob/${Z}${X?"."+X:""}`}async function c2(Z,J){let $=Z.type||"application/octet-stream",Q=Z.name||"";try{let X=await KF("/api/blob",Z,$,J);i2();let z=X;return{...z,url:p2(z.hash,z.url,$,Q)}}catch(X){if(!(M9()||n9()))throw X;let z=await Z.arrayBuffer(),K=await D2(z);return await b2(K,z,$),J?.(z.byteLength,z.byteLength),{hash:K,size:z.byteLength,content_type:$,url:p2(K,"",$,Q)}}}var YF={listDatabases:()=>B0("GET","/api/databases"),createDatabase:(Z)=>B0("POST","/api/databases",Z),updateDatabase:(Z,J)=>B0("PATCH",`/api/database?id=${V0(Z)}`,J),duplicateDatabase:(Z,J)=>B0("POST",`/api/database/duplicate?id=${V0(Z)}`,J??{}),deleteDatabase:(Z)=>B0("DELETE",`/api/database?id=${V0(Z)}`),listProperties:(Z)=>B0("GET",`/api/properties?db=${V0(Z)}`),createProperty:(Z)=>B0("POST","/api/properties",Z),updateProperty:(Z,J)=>B0("PATCH",`/api/property?id=${V0(Z)}`,J),setColumnWidth:(Z,J)=>B0("PATCH",`/api/property/width?id=${V0(Z)}`,{width:J}),deleteProperty:(Z)=>B0("DELETE",`/api/property?id=${V0(Z)}`),listRecords:(Z,J={})=>{let $=new URLSearchParams({db:Z});if(J.sort)$.set("sort",J.sort);if(J.limit!=null)$.set("limit",String(J.limit));return B0("GET",`/api/records?${$}`)},createRecord:(Z,J)=>B0("POST",`/api/records?db=${V0(Z)}`,J),getRecord:(Z)=>B0("GET",`/api/record?id=${V0(Z)}`),updateRecord:(Z,J)=>B0("PATCH",`/api/record?id=${V0(Z)}`,J),moveRecord:(Z,J,$)=>B0("PATCH",`/api/record/order?id=${V0(Z)}`,{target:J,where:$}),deleteRecord:(Z)=>B0("DELETE",`/api/record?id=${V0(Z)}`),listDocuments:(Z)=>B0("GET",Z?`/api/documents?db=${V0(Z)}`:"/api/documents"),listDocumentsByParent:(Z)=>B0("GET",`/api/documents?parent=${V0(Z)}`),createDocument:(Z)=>B0("POST","/api/documents",Z),getDocument:(Z)=>B0("GET",`/api/document?id=${V0(Z)}`),updateDocument:(Z,J)=>B0("PATCH",`/api/document?id=${V0(Z)}`,J),moveDocument:(Z,J,$)=>B0("PATCH",`/api/document/move?id=${V0(Z)}`,{target:J,where:$}),duplicateDocument:(Z,J)=>B0("POST",`/api/document/duplicate?id=${V0(Z)}`,J??{}),deleteDocument:(Z)=>B0("DELETE",`/api/document?id=${V0(Z)}`),documentHistory:(Z)=>B0("GET",`/api/document/history?id=${V0(Z)}`),documentAt:(Z,J)=>B0("GET",`/api/document/at?id=${V0(Z)}&version=${V0(J)}`),revertDocument:(Z,J)=>B0("POST",`/api/document/revert?id=${V0(Z)}`,J),recordHistory:(Z)=>B0("GET",`/api/record/history?id=${V0(Z)}`),databaseActivity:(Z,J)=>B0("GET",`/api/database/activity?db=${V0(Z)}${J!=null?`&limit=${J}`:""}`),recordAt:(Z,J)=>B0("GET",`/api/record/at?id=${V0(Z)}&version=${V0(J)}`),revertRecord:(Z,J)=>B0("POST",`/api/record/revert?id=${V0(Z)}`,{to:J}),nodes:()=>B0("GET","/api/nodes"),search:(Z,J)=>{let $=new URLSearchParams({q:Z});if(J!=null)$.set("limit",String(J));return B0("GET",`/api/search?${$}`)},listPeers:()=>B0("GET","/api/peers"),newPairingCode:()=>B0("POST","/api/pair/new"),addPeerByPairing:(Z)=>B0("POST","/api/peers/pair",Z),updatePeer:(Z,J)=>B0("PATCH",`/api/peer?url=${V0(Z)}`,J),removePeer:(Z)=>B0("DELETE",`/api/peer?url=${V0(Z)}`),syncPeer:(Z)=>B0("POST",`/api/peer/sync?url=${V0(Z)}`),listServerS3Peers:()=>B0("GET","/api/peers/s3"),addServerS3Peer:(Z)=>B0("POST","/api/peer/s3",Z),serverS3Config:(Z)=>B0("GET",`/api/peer/s3/config?url=${V0(Z)}`),listGrants:()=>B0("GET","/api/grants"),revokeGrant:(Z)=>B0("DELETE",`/api/grant?token=${V0(Z)}`),listSites:()=>B0("GET","/api/sites"),listSiteFiles:(Z)=>B0("GET",`/api/site/files?site=${V0(Z)}`),createSite:(Z)=>B0("POST","/api/sites",Z),updateSite:(Z,J)=>B0("PATCH",`/api/site?id=${V0(Z)}`,J),deleteSite:(Z)=>B0("DELETE",`/api/site?id=${V0(Z)}`),deleteSiteFile:(Z,J)=>B0("DELETE",`/api/site/file?site=${V0(Z)}&path=${V0(J)}`),uploadSiteFile:async(Z,J,$)=>{let Q=await l6(`/api/site/file?site=${V0(Z)}&path=${V0(J)}`,{method:"POST",headers:{"content-type":$.type||"application/octet-stream"},body:$}),X=await Q.json().catch(()=>null);if(!Q.ok||X&&X.error)throw Error(X&&X.error||`${Q.status} ${Q.statusText}`);return X},uploadDocBlob:c2,uploadDocImage:c2,listShareServers:()=>B0("GET","/api/share/servers"),listShareBuckets:()=>B0("GET","/api/share/buckets"),listShares:(Z={})=>B0("GET",`/api/shares${Z.target?`?target=${V0(Z.target)}`:""}`),createShare:(Z)=>B0("POST","/api/share",Z),revokeShare:(Z)=>B0("DELETE",`/api/share?slug=${V0(Z)}`),renewShare:(Z)=>B0("POST",`/api/share/renew?slug=${V0(Z)}`),blobCache:()=>B0("GET","/api/blob-cache"),verifyBlobCache:()=>B0("POST","/api/blob-cache/verify"),clearBlobCache:()=>B0("POST","/api/blob-cache/clear"),setBlobPolicy:(Z)=>B0("POST","/api/blob-policy",Z),pinBlob:(Z,J)=>B0("POST","/api/blob-cache/pin",{hash:Z,pinned:J}),blobs:()=>B0("GET","/api/blobs"),clearBlobs:(Z)=>B0("POST","/api/blobs/clear",{hashes:Z}),deleteBlobs:(Z)=>B0("POST","/api/blobs/delete",{hashes:Z}),version:()=>B0("GET","/api/version")},Z0=new Proxy(YF,{get(Z,J,$){if(M9()){if(J in I1)return I1[J];if(n9()&&J in R1)return R1[J]}return Reflect.get(Z,J,$)}}),t8={text:{ic:"text",t:"文本"},number:{ic:"hash",t:"数字"},select:{ic:"select",t:"单选"},multi_select:{ic:"multi",t:"多选"},checkbox:{ic:"checkbox",t:"复选框"},date:{ic:"calendar",t:"日期"},url:{ic:"link",t:"链接"},relation:{ic:"relation",t:"关联"}};var r2=i3(s2(),1);class e8 extends Error{code;constructor(Z,J){super(J);this.code=Z;this.name="MhError"}}function GF(Z){let J=new TextEncoder().encode(Z),$="";for(let Q=0;Q<J.length;Q++)$+=String.fromCharCode(J[Q]);return btoa($).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function qF(Z){let J=Z.replace(/-/g,"+").replace(/_/g,"/"),$=atob(J),Q=new Uint8Array($.length);for(let X=0;X<$.length;X++)Q[X]=$.charCodeAt(X);return new TextDecoder().decode(Q)}function j1(Z){let J={endpoint:Z.endpoint,region:Z.region,bucket:Z.bucket,prefix:Z.prefix,accessKeyId:Z.accessKeyId,secretAccessKey:Z.secretAccessKey,encrypt:Z.encrypt,virtualHostedStyle:Z.virtualHostedStyle};return GF(JSON.stringify(J))}function D1(Z){let J=(Z??"").trim();if(!J)throw new e8("invalid_input","empty enroll code");let $=/(?:[#&?]|^)enroll=([^&\s]+)/.exec(J),Q=$?$[1]:J,X;try{X=JSON.parse(qF(Q))}catch{throw new e8("invalid_input","invalid enroll code (could not decode)")}if(!X||typeof X!=="object")throw new e8("invalid_input","invalid enroll code (not an object)");let z=X,K=(Y)=>{let q=z[Y];if(typeof q!=="string"||q.trim()==="")throw new e8("invalid_input",`enroll code missing '${Y}'`);return q};return{endpoint:K("endpoint"),bucket:K("bucket"),accessKeyId:K("accessKeyId"),secretAccessKey:K("secretAccessKey"),region:typeof z.region==="string"?z.region:void 0,prefix:typeof z.prefix==="string"?z.prefix:void 0,encrypt:typeof z.encrypt==="boolean"?z.encrypt:void 0,virtualHostedStyle:typeof z.virtualHostedStyle==="boolean"?z.virtualHostedStyle:void 0}}var WF=0;function G(Z,J,$,Q,X,z){J||(J={});var K,Y,q=J;if("ref"in q)for(Y in q={},J)Y=="ref"?K=J[Y]:q[Y]=J[Y];var W={type:Z,props:q,key:$,ref:K,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--WF,__i:-1,__u:0,__source:X,__self:z};if(typeof Z=="function"&&(K=Z.defaultProps))for(Y in K)q[Y]===void 0&&(q[Y]=K[Y]);return u0.vnode&&u0.vnode(W),W}var S1="M21 7.5 12 2 3 7.5v9L12 22l9-5.5z",b1="m3 7.5 9 5.5 9-5.5M12 22v-9";var UF={cube:'<path d="M21 7.5 12 2 3 7.5v9L12 22l9-5.5z"/><path d="m3 7.5 9 5.5 9-5.5M12 22v-9"/>',chevron:'<path d="m9 6 6 6-6 6"/>',chevronDown:'<path d="m6 9 6 6 6-6"/>',arrowLeft:'<path d="M15 18l-6-6 6-6"/>',arrowUp:'<path d="m6 15 6-6 6 6"/>',plus:'<path d="M12 5v14M5 12h14"/>',pin:'<path d="M9 4h6l-1 6 3 3v2H7v-2l3-3z"/><path d="M12 16v5"/>',search:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2"/>',dots:'<circle cx="5" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.4" fill="currentColor" stroke="none"/>',grip:'<circle cx="9" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="18" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="18" r="1.3" fill="currentColor" stroke="none"/>',gripH:'<circle cx="6" cy="9" r="1.3" fill="currentColor" stroke="none"/><circle cx="12" cy="9" r="1.3" fill="currentColor" stroke="none"/><circle cx="18" cy="9" r="1.3" fill="currentColor" stroke="none"/><circle cx="6" cy="15" r="1.3" fill="currentColor" stroke="none"/><circle cx="12" cy="15" r="1.3" fill="currentColor" stroke="none"/><circle cx="18" cy="15" r="1.3" fill="currentColor" stroke="none"/>',trash:'<path d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13M10 11v6M14 11v6"/>',filter:'<path d="M3 5h18l-7 8v6l-4-2v-4z"/>',sort:'<path d="M7 3v14M7 17l-3-3M7 17l3-3M17 21V7M17 7l-3 3M17 7l3 3"/>',group:'<rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/>',check:'<path d="M5 12.5 10 17l9-10"/>',x:'<path d="M6 6 18 18M18 6 6 18"/>',file:'<path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5"/>',fileText:'<path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/><path d="M14 3v5h5M9 13h6M9 17h4"/>',database:'<ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 1.66 3.58 3 8 3s8-1.34 8-3V5"/><path d="M4 12c0 1.66 3.58 3 8 3s8-1.34 8-3"/>',table:'<rect x="3" y="4" width="18" height="16" rx="1.5"/><path d="M3 10h18M3 15h18M9 4v16M15 4v16"/>',wand:'<path d="m3 21 9.5-9.5M15 4V2m0 14v-2M8 9h2m10 0h2m-4.6 2.4 1.4 1.4m-1.4-7.2L18.4 4m-7.2 1.4L9.6 4"/>',wrapText:'<path d="M3 6h18M3 12h15a3 3 0 1 1 0 6h-4M3 18h7"/><path d="m16 16-2 2 2 2"/>',alignLeft:'<path d="M4 6h16M4 12h10M4 18h13"/>',alignCenter:'<path d="M4 6h16M7 12h10M5 18h14"/>',alignRight:'<path d="M4 6h16M10 12h10M7 18h13"/>',share:'<path d="M4 12v7a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-7"/><path d="M12 3v13M8 7l4-4 4 4"/>',download:'<path d="M12 3v12M8 11l4 4 4-4"/><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"/>',copy:'<rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/>',link:'<path d="M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1"/><path d="M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1"/>',calendar:'<rect x="3" y="4" width="18" height="17" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/>',timeline:'<rect x="3" y="5" width="9" height="3" rx="1.5"/><rect x="8" y="10.5" width="11" height="3" rx="1.5"/><rect x="5" y="16" width="7" height="3" rx="1.5"/>',hash:'<path d="M4 9h16M4 15h16M10 3 8 21M16 3l-2 18"/>',text:'<path d="M4 6h16M4 6v-.5M8 6v13M4 19h8"/><path d="M14 11h6M17 11v8M14 19h6"/>',list:'<path d="M9 6h11M9 12h11M9 18h11M4.5 6h.01M4.5 12h.01M4.5 18h.01"/>',numList:'<path d="M10 6h10M10 12h10M10 18h10M4 5h1v4M4 9h2M4 13.5c0-.8 2-.8 2 0 0 .8-2 1.2-2 2.5h2"/>',checkbox:'<rect x="4" y="4" width="16" height="16" rx="3"/><path d="m9 12 2 2 4-4"/>',select:'<circle cx="12" cy="12" r="8"/><circle cx="12" cy="12" r="3" fill="currentColor" stroke="none"/>',multi:'<path d="M8 6h12M8 12h12M8 18h12M3 6h.01M3 12h.01M3 18h.01"/>',relation:'<path d="M7 7h4v4H7zM13 13h4v4h-4z"/><path d="M11 9h2a2 2 0 0 1 2 2v2"/>',quote:'<path d="M7 7c-2 1-3 3-3 6h3v4H4v-4M17 7c-2 1-3 3-3 6h3v4h-3v-4"/>',code:'<path d="m8 8-4 4 4 4M16 8l4 4-4 4M13 6l-2 12"/>',minus:'<path d="M5 12h14"/>',heading:'<path d="M6 4v16M18 4v16M6 12h12"/>',panelLeft:'<rect x="3" y="4" width="18" height="16" rx="2"/><path d="M9 4v16"/>',cornerUpRight:'<path d="M5 19V11a4 4 0 0 1 4-4h10M15 3l4 4-4 4"/>',openPeek:'<rect x="3" y="5" width="18" height="14" rx="2.5"/><rect x="6" y="8" width="4" height="8" rx="1" fill="currentColor" stroke="none"/>',settings:'<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>',eyeOff:'<path d="M4 4l16 16M9.5 9.5a3 3 0 0 0 4 4M6.5 6.7C4.5 8 3 10 2 12c2 4 6 7 10 7 1.6 0 3-.4 4.4-1.1M9.5 5.2A9.7 9.7 0 0 1 12 5c4 0 8 3 10 7-.6 1.3-1.5 2.5-2.5 3.5"/>',bold:'<path d="M6 4h7a4 4 0 0 1 0 8H6zM6 12h8a4 4 0 0 1 0 8H6z"/>',italic:'<path d="M19 4h-9M14 20H5M15 4 9 20"/>',underline:'<path d="M6 4v6a6 6 0 0 0 12 0V4M4 21h16"/>',strike:'<path d="M4 12h16M7 7a4 4 0 0 1 7-1M9 17a4 4 0 0 0 7-2"/>',sun:'<circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/>',moon:'<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/>',history:'<path d="M3 12a9 9 0 1 0 2.6-6.4L3 8"/><path d="M3 3v5h5"/><path d="M12 7v5l3.5 2"/>',monitor:'<rect x="3" y="4" width="18" height="13" rx="2"/><path d="M8 21h8M12 17v4"/>',globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.4 2.5 3.7 5.7 3.7 9S14.4 18.5 12 21c-2.4-2.5-3.7-5.7-3.7-9S9.6 5.5 12 3z"/>',eye:'<path d="M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/>',lock:'<rect x="4.5" y="11" width="15" height="9" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/>',upload:'<path d="M12 16V4M8 8l4-4 4 4M5 20h14"/>',spinner:'<path d="M21 12a9 9 0 1 1-6.219-8.56"/>',cloudUp:'<path d="M12 13v8"/><path d="m8 17 4-4 4 4"/><path d="M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3"/>',cloudCheck:'<path d="M17 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 0 1 2.86 8"/><path d="m9 14 2 2 4-4"/>',cloudOff:'<path d="m2 2 20 20"/><path d="M5.78 5.78A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.3-.2"/><path d="M21.4 14.4A4.5 4.5 0 0 0 17.5 8h-1.8A7 7 0 0 0 9.4 4.6"/>',externalLink:'<path d="M14 4h6v6M20 4l-9 9M19 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h5"/>',image:'<rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.6"/><path d="m21 15-4.5-4.5L6 21"/>',video:'<rect x="2.5" y="6" width="13" height="12" rx="2"/><path d="m16 10 5.2-3a.5.5 0 0 1 .8.4v9.2a.5.5 0 0 1-.8.4L16 14z"/>',audio:'<path d="M9 18V5l11-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/>',htmlTag:'<path d="m9 8-4 4 4 4M15 8l4 4-4 4"/>',zoomIn:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2M11 8.5v5M8.5 11h5"/>',zoomOut:'<circle cx="11" cy="11" r="7"/><path d="m20 20-3.2-3.2M8.5 11h5"/>',annotRect:'<rect x="3.5" y="6" width="17" height="12" rx="2.5"/>',annotArrow:'<path d="M6 18 18 6M9.5 6H18v8.5"/>',annotText:'<path d="M5 7V5h14v2M12 5v14M9.5 19h5"/>',maximize:'<path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/>',pencil:'<path d="M12 20h9"/><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z"/>',undo:'<path d="M9 14 4 9l5-5"/><path d="M4 9h11a4 4 0 0 1 0 8h-2"/>',redo:'<path d="m15 14 5-5-5-5"/><path d="M20 9H9a4 4 0 0 0 0 8h2"/>',camera:'<path d="M4 8.5A2.5 2.5 0 0 1 6.5 6h1.6l1.2-1.7a1 1 0 0 1 .8-.4h3.8a1 1 0 0 1 .8.4L15.9 6h1.6A2.5 2.5 0 0 1 20 8.5v8a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 4 16.5z"/><circle cx="12" cy="12.5" r="3.4"/>'};function g({name:Z,cls:J="ico"}){return G("svg",{class:J,viewBox:"0 0 24 24",dangerouslySetInnerHTML:{__html:UF[Z]??""}},void 0,!1,void 0,this)}var T9={text:"text",number:"hash",select:"select",multi_select:"multi",checkbox:"checkbox",date:"calendar",url:"link",relation:"relation"};function HF(){let Z=/[#&]enroll=([^&]+)/.exec(location.hash);if(!Z)return null;try{return D1(Z[1])}catch{return null}}function E1(){return typeof navigator<"u"&&window.isSecureContext&&!!navigator.mediaDevices?.getUserMedia}function FF(){let Z=window.BarcodeDetector;if(!Z)return null;try{return new Z({formats:["qr_code"]})}catch{return null}}function o2(Z,J,$,Q,X){let z=Math.min(1,X/Math.max($,Q)),K=Math.max(1,Math.round($*z)),Y=Math.max(1,Math.round(Q*z));Z.width=K,Z.height=Y;let q=Z.getContext("2d",{willReadFrequently:!0});if(!q)return null;q.drawImage(J,0,0,K,Y);let W=q.getImageData(0,0,K,Y);return r2.default(W.data,K,Y,{inversionAttempts:"attemptBoth"})?.data??null}async function OF(Z){let J=URL.createObjectURL(Z);try{let $=new Image;await new Promise((X,z)=>{$.onload=()=>X(),$.onerror=()=>z(Error("image load failed")),$.src=J});let Q=document.createElement("canvas");for(let X of[1000,1800]){let z=o2(Q,$,$.naturalWidth,$.naturalHeight,X);if(z)return z;if(Math.max($.naturalWidth,$.naturalHeight)<=X)break}return null}finally{URL.revokeObjectURL(J)}}function NF({onDecoded:Z,onError:J}){let $=G0(null),[Q,X]=b(!1);return J0(()=>{let z=!0,K=!1,Y=!1,q=0,W=0,U=null,H=FF(),F=document.createElement("canvas"),O=async(_)=>{if(H)try{return(await H.detect(_))[0]?.rawValue??null}catch{H=null}return o2(F,_,_.videoWidth,_.videoHeight,512)},N=(_)=>{if(K||!z)return;if(W=requestAnimationFrame(N),Y||document.hidden||_-q<150)return;let A=$.current;if(!A||A.readyState<A.HAVE_ENOUGH_DATA||!A.videoWidth)return;q=_,Y=!0,O(A).then((L)=>{if(Y=!1,!L||K||!z)return;if(Z(L))K=!0,cancelAnimationFrame(W)}).catch(()=>{Y=!1})};return(async()=>{try{U=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:"environment"},width:{ideal:1280}},audio:!1});let _=$.current;if(!z||!_){U?.getTracks().forEach((A)=>A.stop());return}if(_.srcObject=U,await _.play(),!z)return;X(!0),W=requestAnimationFrame(N)}catch(_){if(!z)return;let A=_?.name;J(A==="NotAllowedError"||A==="SecurityError"?"denied":"none")}})(),()=>{if(z=!1,K=!0,cancelAnimationFrame(W),U?.getTracks().forEach((_)=>_.stop()),$.current)$.current.srcObject=null}},[]),G(t,{children:[G("video",{ref:$,playsInline:!0,muted:!0,autoPlay:!0},void 0,!1,void 0,this),!Q&&G("div",{class:"enroll-scan-wait",children:G(g,{name:"camera",cls:"ico enroll-scan-waitico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("svg",{class:"enroll-scan-frame",viewBox:"0 0 100 100","aria-hidden":"true",children:G("path",{d:"M8 26V14a6 6 0 0 1 6-6h12M74 8h12a6 6 0 0 1 6 6v12M92 74v12a6 6 0 0 1-6 6H74M26 92H14a6 6 0 0 1-6-6V74"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q&&G("div",{class:"enroll-scan-beam"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function t2({onDone:Z}){let[J]=b(HF),[$,Q]=b(J?"unlock":E1()?"scan":"manual"),[X,z]=b(J),[K,Y]=b(null),[q,W]=b(0),[U,H]=b(!1),[F,O]=b(!1),[N,_]=b(""),[A,L]=b(J?.endpoint??""),[B,M]=b(J?.bucket??""),[C,R]=b(J?.region??"auto"),[I,P]=b(J?.accessKeyId??""),[V,y]=b(J?.secretAccessKey??""),[k,j]=b(J?.prefix??"metahub"),[w,u]=b(""),l=X?X.encrypt!==!1:!0,v=async(m,a)=>{if(m.encrypt!==!1&&!a){_("加密口令必填");return}O(!0),_("");try{if(await V2({endpoint:m.endpoint.trim(),region:(m.region??"").trim()||"auto",bucket:m.bucket.trim(),prefix:(m.prefix??"").trim()||"metahub",accessKeyId:m.accessKeyId.trim(),secretAccessKey:m.secretAccessKey.trim(),encrypt:m.encrypt!==!1,virtualHostedStyle:m.virtualHostedStyle},a),/[#&]enroll=/.test(location.hash))history.replaceState(null,"",location.pathname+location.search);Z()}catch(h){let{code:s,message:E}=h;_(s==="auth"?"加密口令不正确,请输入与其他设备相同的口令。":/failed to fetch|load failed|networkerror|cors/i.test(E)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE。":`连接失败:${E}`),O(!1)}},S=(m,{flash:a=!1}={})=>{let h;try{h=D1(m)}catch{return!1}if(z(h),L(h.endpoint),M(h.bucket),R(h.region??"auto"),P(h.accessKeyId),y(h.secretAccessKey),j(h.prefix??"metahub"),_(""),a)H(!0),navigator.vibrate?.(35),setTimeout(()=>{H(!1),Q("unlock")},380);else Q("unlock");return!0},D=()=>{if(!A.trim()||!B.trim()||!I.trim()||!V.trim()){_("endpoint、bucket、access key、secret key 必填");return}v({endpoint:A,bucket:B,region:C,prefix:k,accessKeyId:I,secretAccessKey:V,encrypt:X?.encrypt,virtualHostedStyle:X?.virtualHostedStyle},w)},x=(m)=>{_(""),Y(null),Q(m)};return G("div",{class:"enroll",children:G("div",{class:"enroll-card",children:[G("div",{class:"enroll-title",children:"连接你的存储桶"},void 0,!1,void 0,this),$==="scan"&&G(t,{children:[G("div",{class:"enroll-sub",children:"扫描主设备上的二维码:在桌面端打开 设置 → 同步 → 手机接入。"},void 0,!1,void 0,this),G("div",{class:`enroll-scan${U?" hit":""}`,children:K==="denied"?G("div",{class:"enroll-cam-err",children:[G(g,{name:"camera",cls:"ico enroll-cam-errico"},void 0,!1,void 0,this),G("div",{children:"相机权限被拒绝"},void 0,!1,void 0,this),G("div",{class:"muted",children:"允许访问相机,或改用下方粘贴/手动方式。"},void 0,!1,void 0,this),G("button",{class:"btn",onClick:()=>{Y(null),W((m)=>m+1)},children:"重试授权"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):G(NF,{onDecoded:(m)=>{let a=S(m,{flash:!0});if(!a)_("这不是有效的接入二维码");return a},onError:(m)=>{if(m==="denied")Y("denied");else x("manual")}},q,!1,void 0,this)},void 0,!1,void 0,this),G(_F,{onRaw:(m)=>S(m)||_("无效的接入链接或代码")},void 0,!1,void 0,this),N&&G("div",{class:"enroll-err",children:N},void 0,!1,void 0,this),G("div",{class:"enroll-switch",children:[G("button",{class:"enroll-link",onClick:()=>{let m=document.createElement("input");m.type="file",m.accept="image/*",m.onchange=async()=>{let a=m.files?.[0];if(!a)return;let h=await OF(a).catch(()=>null);if(!h||!S(h))_("没有在图片中找到有效的接入二维码")},m.click()},children:"从图片识别"},void 0,!1,void 0,this),G("span",{class:"enroll-switch-dot",children:"·"},void 0,!1,void 0,this),G("button",{class:"enroll-link",onClick:()=>x("manual"),children:"手动填写"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$==="unlock"&&X&&G(t,{children:[G("div",{class:"enroll-sub",children:l?"已读取桶信息,输入加密口令即可同步你的数据。":"已读取桶信息,点击连接即可同步你的数据。"},void 0,!1,void 0,this),G("div",{class:"enroll-bucket-card",children:[G(g,{name:"database",cls:"ico enroll-bucket-ico"},void 0,!1,void 0,this),G("div",{class:"enroll-bucket-meta",children:[G("div",{class:"enroll-bucket-name",children:X.bucket},void 0,!1,void 0,this),G("div",{class:"enroll-bucket-host muted",children:BF(X.endpoint)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l&&G("span",{class:"enroll-bucket-badge",children:[G(g,{name:"lock",cls:"ico"},void 0,!1,void 0,this),"端到端加密"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),l&&G(t,{children:[G("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),G("input",{class:"text-input",type:"password",autofocus:!0,placeholder:"与其他设备相同的口令",value:w,onInput:(m)=>u(m.target.value),onKeyDown:(m)=>m.key==="Enter"&&void v(X,w)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),N&&G("div",{class:"enroll-err",children:N},void 0,!1,void 0,this),G("button",{class:"btn btn-primary enroll-go",disabled:F,onClick:()=>void v(X,w),children:F?"连接中…":"连接并同步"},void 0,!1,void 0,this),G("div",{class:"enroll-switch",children:[E1()&&!J&&G(t,{children:[G("button",{class:"enroll-link",onClick:()=>x("scan"),children:"重新扫码"},void 0,!1,void 0,this),G("span",{class:"enroll-switch-dot",children:"·"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"enroll-link",onClick:()=>x("manual"),children:"改为手动填写"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$==="manual"&&G(t,{children:[G("div",{class:"enroll-sub",children:"填入 S3 兼容存储桶(R2/COS/MinIO/S3)的连接信息;数据上传前端到端加密。"},void 0,!1,void 0,this),G("div",{class:"field-label",children:"Endpoint"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"https://<bucket>.cos.<region>.myqcloud.com",value:A,onInput:(m)=>L(m.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"Bucket"},void 0,!1,void 0,this),G("input",{class:"text-input",value:B,onInput:(m)=>M(m.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"Region"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"auto",value:C,onInput:(m)=>R(m.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"Access Key ID"},void 0,!1,void 0,this),G("input",{class:"text-input",value:I,onInput:(m)=>P(m.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"Secret Access Key"},void 0,!1,void 0,this),G("input",{class:"text-input",type:"password",value:V,onInput:(m)=>y(m.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"路径前缀"},void 0,!1,void 0,this),G("input",{class:"text-input",value:k,onInput:(m)=>j(m.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),G("input",{class:"text-input",type:"password",placeholder:"与其他设备相同的口令",value:w,onInput:(m)=>u(m.target.value),onKeyDown:(m)=>m.key==="Enter"&&D()},void 0,!1,void 0,this),N&&G("div",{class:"enroll-err",children:N},void 0,!1,void 0,this),G("button",{class:"btn btn-primary enroll-go",disabled:F,onClick:D,children:F?"连接中…":"连接并同步"},void 0,!1,void 0,this),E1()&&G("div",{class:"enroll-switch",children:G("button",{class:"enroll-link",onClick:()=>x("scan"),children:"改为扫码"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"enroll-hint muted",children:"提示:iPhone 请用 Safari 的「分享 → 添加到主屏」装成 App,离线与持久存储才生效。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function BF(Z){try{return new URL(Z).host}catch{return Z}}function _F({onRaw:Z}){let[J,$]=b("");return G("input",{class:"text-input enroll-paste",placeholder:"或粘贴接入链接 / 接入码…",value:J,onInput:(Q)=>$(Q.target.value),onPaste:(Q)=>{let X=Q.clipboardData?.getData("text")??"";if(X.trim())setTimeout(()=>Z(X),0)},onKeyDown:(Q)=>{if(Q.key==="Enter"&&J.trim())Z(J)}},void 0,!1,void 0,this)}function u9(Z,J){let $=J.threshold??4,Q=$===0,X=(K)=>{if(K.pointerId!==Z.pointerId)return;if(!Q){if(Math.hypot(K.clientX-Z.clientX,K.clientY-Z.clientY)<$)return;Q=!0,J.onStart?.(K)}K.preventDefault(),J.onMove(K)},z=(K)=>{if(K.pointerId!==Z.pointerId)return;removeEventListener("pointermove",X),removeEventListener("pointerup",z),removeEventListener("pointercancel",z),J.onEnd?.(K,Q)};addEventListener("pointermove",X,{passive:!1}),addEventListener("pointerup",z),addEventListener("pointercancel",z)}function nZ(){document.querySelectorAll(".drop-into,.drop-before,.drop-after").forEach((Z)=>Z.classList.remove("drop-into","drop-before","drop-after"))}function AF(Z,J,$){nZ();let Q=Z.getBoundingClientRect(),X=$==="y"?J.clientY<Q.top+Q.height/2?"before":"after":J.clientX<Q.left+Q.width/2?"before":"after";return Z.classList.add("drop-"+X),X}function w1(Z,J,$){let Q=document.createElement("div");return Q.className="drag-ghost "+Z,Q.style.width=`${J.width}px`,Q.style.height=`${J.height}px`,Q.textContent=$,document.body.appendChild(Q),Q}function s6(Z,J,$){if(!Z)return;Z.style.transform=`translate3d(${Math.round(J)}px, ${Math.round($)}px, 0)`}function e2(Z,J){let $=J.source.getBoundingClientRect(),Q=Z.clientX-$.left,X=Z.clientY-$.top,z=null,K=null,Y="before";u9(Z,{onStart:()=>{z=w1(J.ghostCls,$,J.ghostText),J.source.classList.add("drag-source"),document.body.classList.add("table-dragging"),J.onActivate?.()},onMove:(q)=>{s6(z,q.clientX-Q,q.clientY-X);let W=document.elementFromPoint(q.clientX,q.clientY)?.closest?.(J.targetSelector);if(!W||J.isSelf(W)){nZ(),K=null;return}K=W,Y=AF(W,q,J.axis)},onEnd:(q,W)=>{if(z?.remove(),J.source.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),nZ(),W&&K)J.onDrop(K,Y);J.onFinish?.(W)}})}function B4(Z,J){let $=Z.currentTarget,Q=J.startWidth,X=0;$.classList.add("dragging"),document.body.classList.add("col-resizing");let z=$.closest("table");if(z)$.style.setProperty("--rz-guide-h",z.offsetHeight+"px");u9(Z,{threshold:0,onMove:(K)=>{if(Q=Math.max(J.min,J.startWidth+K.clientX-Z.clientX),!X)X=requestAnimationFrame(()=>{if(X=0,J.col)J.col.style.width=Q+"px"})},onEnd:()=>{if(X)cancelAnimationFrame(X);if(J.col)J.col.style.width=Q+"px";$.classList.remove("dragging"),$.style.removeProperty("--rz-guide-h"),document.body.classList.remove("col-resizing"),J.onDone(Q)}})}var _4="(max-width: 768px) and (pointer: coarse)";function A4(Z){let J=Z,$=new Set;return{get:()=>J,set:(Q)=>{J=Q,$.forEach((X)=>X(Q))},use(){let[Q,X]=b(J);return J0(()=>{return $.add(X),()=>void $.delete(X)},[]),Q}}}var r6=A4([]),LF=0;function Q0(Z){let J=++LF;r6.set([...r6.get(),{id:J,msg:Z}]),setTimeout(()=>r6.set(r6.get().filter(($)=>$.id!==J)),2600)}var C8=A4([]),PF=0;function x1(Z,J){C8.set(C8.get().map(($)=>$.id===Z?{...$,...J}:$))}function v1(Z){C8.set(C8.get().filter((J)=>J.id!==Z))}function JQ(Z){let J=++PF;return C8.set([...C8.get(),{id:J,name:Z,loaded:0,total:0}]),J}function $Q(Z,J,$){x1(Z,{loaded:J,total:$})}function h1(Z,J,$){if(J)x1(Z,{loaded:1,total:1}),setTimeout(()=>v1(Z),900);else x1(Z,{failed:!0,retry:$})}function MF(){let Z=C8.use();if(!Z.length)return null;return G("div",{class:"upload-tray",children:Z.map((J)=>{let $=J.failed?null:J.total>0?Math.min(100,Math.round(J.loaded/J.total*100)):null;return G("div",{class:"upload-item"+(J.failed?" failed":""),children:[G("span",{class:"up-name",title:J.name,children:J.name},void 0,!1,void 0,this),J.failed?G("span",{class:"up-fail",children:[G("span",{children:"失败"},void 0,!1,void 0,this),J.retry&&G("button",{class:"up-retry",onClick:()=>{J.retry?.(),v1(J.id)},children:"重试"},void 0,!1,void 0,this),G("button",{class:"up-x",title:"移除",onClick:()=>v1(J.id),children:G(g,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):G("span",{class:"up-prog",children:[G("span",{class:"ver-bar"+($==null?" indet":""),children:G("span",{class:"ver-bar-fill",style:$!=null?{width:`${$}%`}:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"up-pct",children:$!=null?`${$}%`:"…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},J.id,!0,void 0,this)})},void 0,!1,void 0,this)}var f1=A4(null);function b0(Z,J,$={}){f1.set({render:J,anchor:Z,minWidth:$.minWidth})}function ZQ(){f1.set(null)}function IF(Z){if(Z instanceof MouseEvent)return{x:Z.clientX,y:Z.clientY};if("rect"in Z)return{x:Z.rect.left,y:Z.rect.bottom,bottom:Z.rect.bottom};return{x:Z.x,y:Z.y}}function RF(){let Z=f1.use(),J=G0(null),[$,Q]=b(null),X=matchMedia(_4).matches;if(H4(()=>{if(!Z||!J.current||X)return Q(null);let{x:z,y:K}=IF(Z.anchor),Y=J.current.getBoundingClientRect();Q({left:Math.min(z,innerWidth-Y.width-10),top:Math.min(K+4,innerHeight-Y.height-10)})},[Z,X]),!Z)return null;return G("div",{class:"menu-layer",onMouseDown:(z)=>z.target===z.currentTarget&&ZQ(),children:G("div",{ref:J,class:"pop"+(X?" sheet":""),style:X?void 0:{left:$?.left??-9999,top:$?.top??-9999,minWidth:Z.minWidth},onMouseDown:(z)=>z.stopPropagation(),children:Z.render(ZQ)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function i0({children:Z}){return G("div",{class:"lbl",children:Z},void 0,!1,void 0,this)}function d0(){return G("div",{class:"sep"},void 0,!1,void 0,this)}function q0({icon:Z,label:J,sublabel:$,kbd:Q,danger:X,checked:z,onClick:K}){return G("button",{class:"item"+(X?" danger":""),onClick:K,children:[Z&&G("span",{class:"lico plain",children:G(g,{name:Z,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"meta",children:[G("span",{class:"t",children:J},void 0,!1,void 0,this),$&&G("span",{class:"d",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q&&G("kbd",{children:Q},void 0,!1,void 0,this),z&&G("span",{class:"chk",children:G(g,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function V8(Z,J=240){let[$,Q]=b(!1);return J0(()=>{let z=requestAnimationFrame(()=>Q(!0));return()=>cancelAnimationFrame(z)},[]),{open:$,close:()=>{Q(!1),setTimeout(Z,J)}}}var g1=A4(null);function j9(Z){g1.set(Z)}function q9(){g1.set(null)}function v9({title:Z,sub:J,children:$,footer:Q,width:X}){return G("div",{class:"modal",style:{width:X},onMouseDown:(z)=>z.stopPropagation(),children:[G("div",{class:"modal-head",children:[G("h3",{children:Z},void 0,!1,void 0,this),J&&G("p",{children:J},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"modal-body",children:$},void 0,!1,void 0,this),Q&&G("div",{class:"modal-foot",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function CF(){let Z=g1.use();return J0(()=>{if(!Z)return;let J=($)=>$.key==="Escape"&&q9();return addEventListener("keydown",J),()=>removeEventListener("keydown",J)},[Z]),G("div",{class:"modal-scrim"+(Z?" open":""),onMouseDown:(J)=>J.target===J.currentTarget&&q9(),children:Z},void 0,!1,void 0,this)}function m0(Z){return new Promise((J)=>{let $=(Q)=>{q9(),J(Q)};j9(G(v9,{title:Z.title,footer:G(t,{children:[G("button",{class:"btn btn-secondary",onClick:()=>$(!1),children:"取消"},void 0,!1,void 0,this),G("button",{class:"btn "+(Z.danger?"btn-danger":"btn-primary"),onClick:()=>$(!0),children:Z.confirmLabel??"确定"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:G("div",{class:"muted",children:Z.message},void 0,!1,void 0,this)},void 0,!1,void 0,this))})}function NZ(Z){return new Promise((J)=>{let $=Z.value??"",Q=(X)=>{q9(),J(X)};j9(G(v9,{title:Z.title,footer:G(t,{children:[G("button",{class:"btn btn-secondary",onClick:()=>Q(null),children:"取消"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:()=>Q($.trim()||(Z.value??"")),children:Z.confirmLabel??"保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[Z.label&&G("div",{class:"field-label",children:Z.label},void 0,!1,void 0,this),G("input",{class:"text-input",autofocus:!0,value:Z.value??"",placeholder:Z.placeholder,onInput:(X)=>$=X.target.value,onKeyDown:(X)=>{if(X.key==="Enter")Q($.trim()||(Z.value??""))}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))})}function L4(){let Z=r6.use();return G(t,{children:[G(RF,{},void 0,!1,void 0,this),G(CF,{},void 0,!1,void 0,this),G("div",{class:"toasts",children:Z.map((J)=>G("div",{class:"toast",children:[G(g,{name:"check",cls:"ico sm"},void 0,!1,void 0,this),G("span",{children:J.msg},void 0,!1,void 0,this)]},J.id,!0,void 0,this))},void 0,!1,void 0,this),G(MF,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var m1=null,XQ="mh.sb.sections";function VF(){try{return JSON.parse(localStorage.getItem(XQ)||"{}")}catch{return{}}}var yF=[{key:"docs",icon:"fileText",label:"文档"},{key:"db",icon:"table",label:"数据表"}];function y8(Z){return Z.meta?.collapsed===!0}var kF=/mac/i.test(navigator.userAgentData?.platform??navigator.platform);function zQ(Z){let{view:J,navigate:$}=Z,[Q,X]=b(new Set),[z,K]=b(""),[Y,q]=b(!1),W=G0(null),[U,H]=b(null),F=DF(Z.onResize);J0(()=>{Z0.version().then((v)=>H(v.version)).catch(()=>H(null))},[]),J0(()=>{if(Y)W.current?.focus()},[Y]);let O=(v)=>{let S=new Set(Q);S.has(v)?S.delete(v):S.add(v),X(S)},[N,_]=b(VF),A=(v)=>{let S={...N,...v};_(S);try{localStorage.setItem(XQ,JSON.stringify(S))}catch{}},L=N.tab??"docs",B=G0("r"),M=G0(!1),C=(v)=>{if(v===L)return;B.current=v==="db"?"r":"l",M.current=!0,A({tab:v})};J0(()=>{if(J.kind==="doc")C("docs");else if(J.kind==="db")C("db")},[J.kind,"id"in J?J.id:""]);let R=G0(null),I=G0(!1);H4(()=>{let v=R.current,S=v?.querySelector(".sb-tab-ind");if(!v||!S)return;let D=()=>{let T=v.querySelector(".sb-tab.on");if(!T)return;S.style.transform=`translateX(${T.offsetLeft}px)`,S.style.width=`${T.offsetWidth}px`};if(I.current)D();else S.style.transition="none",D(),requestAnimationFrame(()=>{S.style.transition="",I.current=!0});let x=new ResizeObserver(D);return v.querySelectorAll(".sb-tab").forEach((T)=>x.observe(T)),()=>x.disconnect()},[L]);let P=(v)=>v().catch((S)=>Z.onError(String(S.message))),V=(v)=>{if("id"in J&&J.id===v)$({kind:"empty"},{replace:!0})},y=(v)=>P(async()=>{let S=await Z0.createDocument({title:"",...v?{parent_id:v}:{}});if(v)Q.add(v);$({kind:"doc",id:S.id})}),k=(v,S,D)=>P(async()=>{if(v===S.id)return;if(jF(Z.docs,v,S.id))return;if(await Z0.moveDocument(v,S.id,D),D==="into")Q.add(S.id)}),j=(v,S)=>{v.stopPropagation(),b0(v,(D)=>G(t,{children:[G(q0,{icon:"hash",label:"复制 ID",onClick:()=>{D(),navigator.clipboard?.writeText(S.id).then(()=>Q0("已复制 ID"))}},void 0,!1,void 0,this),G(q0,{icon:"settings",label:"重命名…",onClick:async()=>{D();let x=await NZ({title:"重命名数据库",value:S.name});if(x&&x!==S.name)P(async()=>{await Z0.updateDatabase(S.id,{name:x})})}},void 0,!1,void 0,this),G(q0,{icon:y8(S)?"chevronDown":"chevron",label:y8(S)?"移出折叠组":"折叠此数据库",onClick:()=>{D(),P(async()=>{await Z0.updateDatabase(S.id,{meta:{...S.meta??{},collapsed:!y8(S)}})})}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(D(),await m0({title:"删除数据库?",message:`「${S.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))P(async()=>{await Z0.deleteDatabase(S.id),V(S.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},w=(v,S=!1)=>G("div",{class:"navitem"+(S?" dim":"")+(J.kind==="db"&&J.id===v.id?" active":""),onClick:()=>$({kind:"db",id:v.id}),children:[G("span",{class:"emoji",children:v.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),G("span",{class:"label",children:v.name},void 0,!1,void 0,this),G("span",{class:"acts",children:G("button",{title:"更多",onClick:(D)=>j(D,v),children:G(g,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},v.id,!0,void 0,this),u=(v,S)=>{v.stopPropagation();let D=Z.docs.filter((x)=>x.parent_id===S.id).length;b0(v,(x)=>G(t,{children:[G(q0,{icon:"plus",label:"新建子页",onClick:()=>{x(),y(S.id)}},void 0,!1,void 0,this),G(q0,{icon:"hash",label:"复制 ID",onClick:()=>{x(),navigator.clipboard?.writeText(S.id).then(()=>Q0("已复制 ID"))}},void 0,!1,void 0,this),G(q0,{icon:"settings",label:"重命名…",onClick:async()=>{x();let T=await NZ({title:"重命名文档",value:S.title});if(T)P(async()=>{await Z0.updateDocument(S.id,{title:T})})}},void 0,!1,void 0,this),S.parent_id&&G(q0,{icon:"cornerUpRight",label:"移到顶层",onClick:()=>{x(),P(async()=>{await Z0.updateDocument(S.id,{parent_id:null})})}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除",danger:!0,onClick:async()=>{if(x(),await m0({title:"删除文档?",message:D?`「${S.title||"无标题"}」及其 ${D} 个子页将被删除。`:`「${S.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))P(async()=>{await YQ(Z.docs,S.id),V(S.id)})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},l=(v,S=0)=>{return Z.docs.filter((x)=>x.parent_id===v).map((x)=>{let T=Z.docs.filter((a)=>a.parent_id===x.id),m=T.length>0&&Q.has(x.id);return G("div",{class:S?"navchildren":"",children:[G("div",{class:"navitem"+(J.kind==="doc"&&J.id===x.id?" active":""),draggable:!0,onClick:()=>$({kind:"doc",id:x.id}),onDragStart:(a)=>{a.stopPropagation(),m1=x.id,a.currentTarget.classList.add("dragging")},onDragEnd:(a)=>{a.currentTarget.classList.remove("dragging"),u1()},onDragOver:(a)=>{a.preventDefault(),a.stopPropagation(),TF(a.currentTarget,a)},onDrop:(a)=>{a.preventDefault(),a.stopPropagation();let h=KQ(a.currentTarget,a),s=m1;if(m1=null,u1(),s)k(s,x,h)},children:[G("span",{class:"tw"+(m?" open":""),onClick:(a)=>{if(a.stopPropagation(),T.length)O(x.id)},children:T.length>0&&G(g,{name:"chevron",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"emoji",children:G(g,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"label",children:x.title||"无标题"},void 0,!1,void 0,this),G("span",{class:"acts",children:[G("button",{title:"新建子页",onClick:(a)=>{a.stopPropagation(),y(x.id)},children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{title:"更多",onClick:(a)=>u(a,x),children:G(g,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),m&&l(x.id,S+1)]},x.id,!0,void 0,this)})};return G("div",{class:"sidebar"+(Z.collapsed?" collapsed":""),style:{width:Z.width,marginLeft:Z.collapsed?-Z.width:void 0},children:[G("div",{class:"sb-head",children:[G("div",{class:"brand",children:[G("span",{class:"mark",children:G(g,{name:"cube"},void 0,!1,void 0,this)},void 0,!1,void 0,this),"Metahub"]},void 0,!0,void 0,this),G("button",{class:"sb-act"+(Y?" active":""),title:"搜索","aria-label":"搜索",onClick:()=>q((v)=>!v),children:G(g,{name:"search",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>$({kind:"sites"}),children:G(g,{name:"globe",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"sb-act"+(J.kind==="shares"?" active":""),title:"分享","aria-label":"分享",onClick:()=>$({kind:"shares"}),children:G(g,{name:"link",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>$({kind:"settings"}),children:[G(g,{name:"settings",cls:"ico"},void 0,!1,void 0,this),Z.updatePending&&G("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"iconbtn",title:"收起侧栏",onClick:Z.onCollapse,children:G(g,{name:"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"sb-tabs",role:"tablist",ref:R,children:[G("span",{class:"sb-tab-ind","aria-hidden":"true"},void 0,!1,void 0,this),yF.map((v)=>G("button",{role:"tab","aria-selected":L===v.key,class:"sb-tab"+(L===v.key?" on":""),title:v.label,onClick:()=>C(v.key),children:[G(g,{name:v.icon,cls:"ico sm"},void 0,!1,void 0,this),G("span",{class:"tab-label",children:G("span",{children:v.label},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},v.key,!0,void 0,this)),G("button",{class:"add",title:L==="docs"?"新建文档":"新建数据库",onClick:()=>L==="docs"?y(null):SF((v)=>$({kind:"db",id:v}),Z.onError),children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"sb-search"+(Y?" open":""),onClick:(v)=>v.currentTarget.querySelector("input")?.focus(),children:[G(g,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),G("input",{ref:W,placeholder:"搜索…",value:z,onInput:(v)=>K(v.target.value),onKeyDown:(v)=>{if(v.key==="Enter"&&z.trim())$({kind:"search",q:z.trim()},{replace:J.kind==="search"})}},void 0,!1,void 0,this),G("kbd",{children:kF?"⌘K":"Ctrl K"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"sb-scroll",children:G("div",{class:"sb-pane"+(M.current?B.current==="r"?" in-r":" in-l":""),children:L==="docs"?G(t,{children:[l(null),Z.docs.length===0&&G("div",{class:"navitem muted",children:"暂无文档"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):G(t,{children:[Z.databases.filter((v)=>!y8(v)).map((v)=>w(v)),Z.databases.length===0&&G("div",{class:"navitem muted",children:"暂无数据表"},void 0,!1,void 0,this),Z.databases.some(y8)&&G(t,{children:[G("button",{class:"sb-subfold",onClick:()=>A({dbHidden:!N.dbHidden}),"aria-expanded":!!N.dbHidden,children:[G(g,{name:"chevron",cls:"ico sm chev"+(N.dbHidden?" open":"")},void 0,!1,void 0,this),G("span",{children:["已折叠 · ",Z.databases.filter(y8).length]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),N.dbHidden&&Z.databases.filter(y8).map((v)=>w(v,!0))]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},L,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"sb-footer",children:[G("button",{class:"sb-act"+(J.kind==="settings"?" active":""),title:"设置","aria-label":"设置",onClick:()=>$({kind:"settings"}),children:[G(g,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this),Z.updatePending&&G("span",{class:"nav-dot",title:"有可用更新"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"sb-act"+(J.kind==="sites"?" active":""),title:"站点","aria-label":"站点",onClick:()=>$({kind:"sites"}),children:G(g,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"sb-act"+(J.kind==="shares"?" active":""),title:"分享","aria-label":"分享",onClick:()=>$({kind:"shares"}),children:G(g,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),U&&G("span",{class:"sbf-ver",title:`Metahub Core v${U}`,children:["v",U]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"sb-resizer",onMouseDown:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var u1=nZ;function KQ(Z,J){let $=Z.getBoundingClientRect(),Q=J.clientY-$.top;return Q<$.height*0.28?"before":Q>$.height*0.72?"after":"into"}function TF(Z,J){u1(),Z.classList.add("drop-"+KQ(Z,J))}function jF(Z,J,$){let Q=Z.find((X)=>X.id===$);while(Q){if(Q.parent_id===J)return!0;Q=Z.find((X)=>X.id===Q.parent_id)}return!1}async function YQ(Z,J){for(let $ of Z.filter((Q)=>Q.parent_id===J))await YQ(Z,$.id);await Z0.deleteDocument(J)}function DF(Z){return(J)=>{J.preventDefault();let $=J.currentTarget;$.classList.add("dragging"),document.body.classList.add("col-resizing");let Q=(z)=>Z(Math.max(210,Math.min(460,z.clientX))),X=()=>{$.classList.remove("dragging"),document.body.classList.remove("col-resizing"),removeEventListener("mousemove",Q),removeEventListener("mouseup",X)};addEventListener("mousemove",Q),addEventListener("mouseup",X)}}var QQ={blank:[{name:"名称",type:"text"}],tasks:[{name:"名称",type:"text"},{name:"状态",type:"select",config:{options:["待办","进行中","已完成"]}},{name:"优先级",type:"select",config:{options:["高","中","低"]}},{name:"截止",type:"date"}],crm:[{name:"姓名",type:"text"},{name:"公司",type:"text"},{name:"分类",type:"select",config:{options:["客户","合作","潜在"]}},{name:"邮箱",type:"url"}]};function SF(Z,J){j9(G(bF,{onOpenDb:Z,onError:J},void 0,!1,void 0,this))}function bF(Z){let J=["\uD83D\uDDC2️","\uD83C\uDFAF","\uD83E\uDD1D","\uD83D\uDCE6","\uD83D\uDCDA","\uD83D\uDCA1","\uD83E\uDDE9","\uD83D\uDCCA","\uD83D\uDDD3️","✅"],$=[["blank","空白","仅一个「名称」列"],["tasks","任务","状态·优先级·截止"],["crm","联系人","公司·分类·邮箱"]],[Q,X]=b(""),[z,K]=b(J[0]),[Y,q]=b("blank"),W=G0(!1),U=async()=>{if(W.current)return;W.current=!0;try{let H=await Z0.createDatabase({name:Q.trim()||"未命名数据库",icon:z});for(let F of QQ[Y]??QQ.blank)await Z0.createProperty({db:H.id,name:F.name,type:F.type,config:F.config});q9(),Z.onOpenDb(H.id),Q0(`已创建数据库「${H.name}」`)}catch(H){Z.onError(String(H.message))}finally{W.current=!1}};return G(v9,{title:"新建数据库",sub:"创建一个带属性列的结构化数据表。",footer:G(t,{children:[G("button",{class:"btn btn-secondary",onClick:q9,children:"取消"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:U,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[G("div",{class:"field-label",children:"名称"},void 0,!1,void 0,this),G("input",{class:"text-input",autofocus:!0,placeholder:"例如:项目、客户、库存…",value:Q,onInput:(H)=>X(H.target.value),onKeyDown:(H)=>H.key==="Enter"&&U()},void 0,!1,void 0,this),G("div",{class:"field-label",children:"图标"},void 0,!1,void 0,this),G("div",{class:"icon-pick",children:J.map((H)=>G("button",{class:H===z?"sel":"",onClick:()=>K(H),children:H},H,!1,void 0,this))},void 0,!1,void 0,this),G("div",{class:"field-label",children:"模板"},void 0,!1,void 0,this),G("div",{class:"tmpl",children:$.map(([H,F,O])=>G("button",{class:H===Y?"sel":"",onClick:()=>q(H),children:[G("div",{class:"tt",children:F},void 0,!1,void 0,this),G("div",{class:"td",children:O},void 0,!1,void 0,this)]},H,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function p1(Z,J,$){let Q=[{id:"server",kind:"server",label:"当前服务器",subtitle:$,icon:"globe",isDefault:!0,routeOp:{via:"http"},deleteSemantics:"purge"}];for(let X of Z)Q.push({id:`server:${X.url}`,kind:"server",label:X.label,subtitle:X.url,icon:"globe",isDefault:!1,routeOp:{via:"http"},deleteSemantics:"purge"});for(let X of J)Q.push({id:`bucket:${X.url}`,kind:"bucket",label:"对象存储",subtitle:X.label,icon:"database",isDefault:!1,routeOp:{via:"bucket",url:X.url},deleteSemantics:"evict"});return Q}function c1(Z,J){if(Z.routeOp.via==="bucket")return Z.routeOp.url;if(Z.id.startsWith("server:"))return Z.id.slice(7);return J}var Z6="mh-shares-changed";function P4(){document.dispatchEvent(new Event(Z6))}function J6(){let[Z,J]=b(()=>new Set);return J0(()=>{let $=!0,Q=()=>Z0.listShares().then((X)=>$&&J(new Set(X.map((z)=>z.target_id)))).catch(()=>{return});return Q(),document.addEventListener(Z6,Q),()=>{$=!1,document.removeEventListener(Z6,Q)}},[]),Z}function d1(Z,J,$){return{copyShare:async(K)=>{if(K.url){M4(K.url),J("链接已复制");return}try{let Y=await Z0.renewShare(K.slug);M4(Y.url),J("已重新生成并复制链接"),P4(),Z()}catch(Y){$(Y.message)}},revoke:async(K)=>{if(!confirm(`撤销这个分享?(${K.source})`))return;try{await Z0.revokeShare(K.slug),J("已撤销"),P4(),Z()}catch(Y){$(Y.message)}},renew:async(K)=>{try{let Y=await Z0.renewShare(K.slug);M4(Y.url),J("已续期 7 天,新链接已复制"),P4(),Z()}catch(Y){$(Y.message)}}}}function BZ(Z){vF();let J=document.createElement("div");document.body.appendChild(J),g0(G(wF,{target:Z,onClose:()=>{g0(null,J),J.remove()}},void 0,!1,void 0,this),J)}var GQ=[{label:"永不过期",ms:null},{label:"1 小时",ms:3600000},{label:"24 小时",ms:86400000},{label:"7 天",ms:604800000},{label:"30 天",ms:2592000000}];function EF(){let[Z,J]=b(()=>p1([],[],location.origin));return J0(()=>{let $=!0,Q=()=>Promise.all([Z0.listShareServers().catch(()=>[]),Z0.listShareBuckets().catch(()=>[])]).then(([z,K])=>{if($)J(p1(z,K,location.origin))});Q();let X=x9(()=>Q());return()=>{$=!1,X()}},[]),Z}function M4(Z){navigator.clipboard?.writeText(Z).catch(()=>{return})}function wF({target:Z,onClose:J}){let $=EF(),[Q,X]=b("server"),[z,K]=b("view"),[Y,q]=b(""),[W,U]=b(0),[H,F]=b(!1),[O,N]=b(""),[_,A]=b([]),[L,B]=b("");J0(()=>{M()},[]);function M(){Z0.listShares({target:Z.ref}).then(A).catch(()=>{return})}let C=$.find((k)=>k.id===Q)??$[0],R=C.kind==="bucket",I=Z.kind==="site";J0(()=>{if(R&&z==="edit")K("view")},[R]);let P=R?GQ.filter((k)=>k.ms==null||k.ms<=604800000):GQ,V=Math.min(W,P.length-1);async function y(){if(R&&I){N("站点不支持对象存储分享,请选服务器。");return}F(!0),N("");try{let k={kind:Z.kind,ref:Z.ref,transport:R?"s3":"server",permission:z,password:Y||null,expiresMs:P[V]?.ms??null,server:R?null:c1(C,location.origin),bucketUrl:R?c1(C,location.origin):null},j=await Z0.createShare(k);M4(j.url),B(`已通过「${j.source}」创建,链接已复制`),q(""),P4(),M()}catch(k){N(k.message||"创建失败")}finally{F(!1)}}return G("div",{class:"mhshare-overlay",onClick:(k)=>k.target===k.currentTarget&&J(),children:G("div",{class:"mhshare-modal",children:[G("div",{class:"mhshare-head",children:[G("h2",{children:["分享",Z.title?`:${Z.title}`:""]},void 0,!0,void 0,this),G("button",{class:"mhshare-x",onClick:J,"aria-label":"关闭",children:"✕"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"mhshare-body",children:[G("div",{class:"mhshare-section",children:"新建分享"},void 0,!1,void 0,this),G("label",{class:"mhshare-field",children:[G("span",{children:"通过"},void 0,!1,void 0,this),G("select",{value:C.id,onChange:(k)=>X(k.currentTarget.value),children:$.map((k)=>G("option",{value:k.id,disabled:k.kind==="bucket"&&I,children:[k.label," — ",k.subtitle,k.kind==="bucket"&&I?"(站点不支持)":""]},void 0,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("label",{class:"mhshare-field",children:[G("span",{children:"权限"},void 0,!1,void 0,this),G("select",{value:z,disabled:R,onChange:(k)=>K(k.currentTarget.value),children:[G("option",{value:"view",children:"只读"},void 0,!1,void 0,this),G("option",{value:"edit",children:["可编辑",R?"(仅服务器)":""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("label",{class:"mhshare-field",children:[G("span",{children:"口令"},void 0,!1,void 0,this),G("input",{type:"password",placeholder:"可选",value:Y,onInput:(k)=>q(k.currentTarget.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("label",{class:"mhshare-field",children:[G("span",{children:"有效期"},void 0,!1,void 0,this),G("select",{value:String(V),onChange:(k)=>U(Number(k.currentTarget.value)),children:P.map((k,j)=>G("option",{value:String(j),children:k.label},void 0,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),O&&G("p",{class:"mhshare-err",children:O},void 0,!1,void 0,this),L&&G("p",{class:"mhshare-ok",children:L},void 0,!1,void 0,this),G("div",{class:"mhshare-foot",children:[G("button",{onClick:J,children:"关闭"},void 0,!1,void 0,this),G("button",{class:"mhshare-primary",disabled:H,onClick:y,children:H?"创建中…":"创建并复制链接"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"mhshare-section",children:["已有分享(",_.length,")"]},void 0,!0,void 0,this),G(xF,{shares:_,reload:M,onFlash:B,onError:N,empty:"还没有分享这个对象。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function xF({shares:Z,reload:J,onFlash:$,onError:Q,empty:X}){let{copyShare:z,revoke:K,renew:Y}=d1(J,$,Q);if(Z.length===0)return G("p",{class:"mhshare-note",children:X},void 0,!1,void 0,this);return G("ul",{class:"mhshare-list",children:Z.map((q)=>G("li",{children:[G("div",{class:"mhshare-li-main",children:[G("span",{class:"mhshare-badge",children:q.transport==="s3"?"对象存储":"服务器"},void 0,!1,void 0,this),G("span",{class:"mhshare-src",children:q.source},void 0,!1,void 0,this),G("span",{class:"mhshare-meta",children:[q.permission==="edit"?"可编辑":"只读",q.hasPassword?" · \uD83D\uDD12":"",q.expiresAt?` · 至 ${new Date(q.expiresAt).toLocaleString()}`:" · 永久"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"mhshare-li-actions",children:[G("button",{onClick:()=>z(q),children:"复制"},void 0,!1,void 0,this),q.transport==="s3"&&G("button",{onClick:()=>Y(q),children:"续期"},void 0,!1,void 0,this),q.url&&G("a",{href:q.url,target:"_blank",rel:"noreferrer",children:"打开"},void 0,!1,void 0,this),G("button",{class:"mhshare-danger",onClick:()=>K(q),children:"撤销"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},q.slug,!0,void 0,this))},void 0,!1,void 0,this)}var qQ=!1;function vF(){if(qQ)return;qQ=!0;let Z=`
|
|
8
8
|
.mhshare-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9999}
|
|
9
9
|
.mhshare-modal{background:var(--mh-bg,#fff);color:var(--mh-fg,#1f2328);width:min(480px,94vw);max-height:88vh;overflow:auto;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.3);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC",sans-serif}
|
|
10
10
|
.mhshare-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--mh-line,#e5e7eb);position:sticky;top:0;background:inherit}
|
|
@@ -32,117 +32,190 @@ https://github.com/highlightjs/highlight.js/issues/2277`),n=m,I=g;if(u===void 0)
|
|
|
32
32
|
.mhshare-li-actions button,.mhshare-li-actions a{font-size:13px;padding:4px 10px;border:1px solid var(--mh-line,#d0d7de);border-radius:6px;background:var(--mh-card,#f6f8fa);color:inherit;cursor:pointer;text-decoration:none}
|
|
33
33
|
.mhshare-danger{color:#cf222e!important}
|
|
34
34
|
@media (prefers-color-scheme: dark){.mhshare-modal{--mh-bg:#161b22;--mh-fg:#e6edf3;--mh-line:#30363d;--mh-muted:#8b949e;--mh-card:#0d1117}}
|
|
35
|
-
`,J=document.createElement("style");J.textContent=Z,document.head.appendChild(J)}var
|
|
36
|
-
`).filter((J)=>J.trim()!==""):[];function OQ(Z,J){for(let Q=0;Q<Math.min(Z.length,J.length);Q++){let X=Z[Q].text,z=J[Q].text,W=0;while(W<X.length&&W<z.length&&X[W]===z[W])W++;let G=0;while(G<X.length-W&&G<z.length-W&&X[X.length-1-G]===z[z.length-1-G])G++;if(W+G<Math.max(X.length,z.length)*0.3)continue;Z[Q].seg=[X.slice(0,W),X.slice(W,X.length-G),X.slice(X.length-G)],J[Q].seg=[z.slice(0,W),z.slice(W,z.length-G),z.slice(z.length-G)]}}function AQ(Z,J){let Q=f5(Z),X=f5(J),z=PQ(Q,X),W=[],G=0,q=0;for(let[H,Y]of[...z,[Q.length,X.length]]){let F=[],K=[];for(;G<H;G++)F.push({kind:"del",text:Q[G]});for(;q<Y;q++)K.push({kind:"add",text:X[q]});if(OQ(F,K),W.push(...F,...K),H<Q.length)W.push({kind:"same",text:Q[H]});G=H+1,q=Y+1}return W}function NQ(Z){let J=[];if(Z.created)J.push("创建");if(Z.deleted)J.push("删除");if(Z.title_changed)J.push("标题");if(Z.blocks_changed)J.push(`${Z.blocks_changed} 块修改`);if(Z.blocks_deleted)J.push(`${Z.blocks_deleted} 块删除`);return J.join("、")||"元数据"}function g5({docId:Z,onClose:J,onReverted:Q}){let{open:X,close:z}=e9(J),[W,G]=k(null),[q,H]=k(null),[Y,F]=k(null),[K,w]=k(null),[P,A]=k(!1),[_,V]=k(!1),[D,v]=k(!1),R=Z1(),x=()=>Promise.all([a.documentHistory(Z),a.getDocument(Z)]).then(([L,B])=>{G(L),H(B),F((M)=>M??L[0]?.version??null)}).catch((L)=>s(String(L.message)));l(()=>{x()},[Z]),l(()=>{if(!Y)return w(null);a.documentAt(Z,Y).then(w).catch(()=>w(null))},[Z,Y]);let S=_9(()=>(W??[]).filter((L)=>P||L.kind!=="repair"),[W,P]),O=Y!=null&&W?.[0]?.version===Y,N=async()=>{if(!Y||!K)return;if(!await R0({title:"恢复到此版本?",message:`标题和正文将恢复到 ${new Date(K.version?wQ(K.version):Date.now()).toLocaleString()} 的状态。此操作会作为一次新修订记录,任何版本都仍可从历史找回。`,confirmLabel:"恢复"}))return;v(!0);try{await a.revertDocument(Z,{to:Y,if_match:q?.version}),s("已恢复"),Q(),z()}catch(B){if(B instanceof f9&&B.code==="stale")s("文档刚被其他端修改,已刷新,请重试"),await x();else s(String(B.message))}finally{v(!1)}};return $(o,{children:[$("div",{class:"scrim"+(X?" open":""),onClick:z},void 0,!1,void 0,this),$("div",{class:"peek hist-peek"+(X?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:z,children:$(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"hist-title",children:[$(f,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"版本历史"]},void 0,!0,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:_,onInput:()=>V(!_)},void 0,!1,void 0,this),"对比当前"]},void 0,!0,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:P,onInput:()=>A(!P)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"hist-split",children:[$("div",{class:"hist-list",children:[W===null&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),S.map((L)=>$("div",{class:"hist-item"+(Y===L.version?" sel":""),onClick:()=>F(L.version),children:[$("div",{class:"row1",children:[$("span",{class:"when",title:new Date(L.at).toLocaleString(),children:e6(L.at)},void 0,!1,void 0,this),$(J1,{kind:L.kind},void 0,!1,void 0,this),W?.[0]?.version===L.version&&$("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"row2",children:[$("span",{class:"who",children:R(L.node_id)},void 0,!1,void 0,this),$("span",{class:"what",children:NQ(L)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},L.version,!0,void 0,this))]},void 0,!0,void 0,this),$("div",{class:"hist-preview",children:[K&&$(o,{children:[$("div",{class:"hist-doc-title",children:K.title||"无标题"},void 0,!1,void 0,this),_&&!O?AQ(q?.body??"",K.body).map((L,B)=>$("div",{class:"hist-line "+L.kind,children:L.seg?$(o,{children:[L.seg[0],$("span",{class:"seg",children:L.seg[1]},void 0,!1,void 0,this),L.seg[2]]},void 0,!0,void 0,this):L.text},B,!1,void 0,this)):BQ(K.body).map((L,B)=>$("div",{class:"hist-block",children:L},B,!1,void 0,this)),!K.body&&$("div",{class:"muted",children:"(空文档)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!K&&Y&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"hist-foot",children:$("button",{class:"btn btn-primary",disabled:!Y||O||D,onClick:N,children:"恢复到此版本"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function wQ(Z){return Number(Z.slice(0,15))||Date.now()}function MQ(Z){if(Z.deleted)return"已删除";if(Z.created)return"创建";if(Z.moved&&!Z.diffs.length)return"调整排序";return""}var s6=3;function b5({dbId:Z,onClose:J}){let{open:Q,close:X}=e9(J),[z,W]=k(null),[G,q]=k(new Map),[H,Y]=k(!1),[F,K]=k(new Set),w=Z1();l(()=>{Promise.all([a.databaseActivity(Z),a.listProperties(Z)]).then(([A,_])=>{W(A),q(new Map(_.map((V)=>[V.id,V.name])))}).catch((A)=>s(String(A.message)))},[Z]);let P=(z??[]).filter((A)=>H||A.kind!=="repair");return $(o,{children:[$("div",{class:"scrim"+(Q?" open":""),onClick:X},void 0,!1,void 0,this),$("div",{class:"peek"+(Q?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:X,children:$(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"hist-title",children:[$(f,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"最近动态"]},void 0,!0,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:H,onInput:()=>Y(!H)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peek-body hist-feed",children:[z===null&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),z!==null&&P.length===0&&$("div",{class:"muted pad",children:"暂无动态。"},void 0,!1,void 0,this),P.map((A)=>{let _=A.record_id+A.version,V=F.has(_),D=V?A.diffs:A.diffs.slice(0,s6),v=MQ(A);return $("div",{class:"hist-item static",children:[$("div",{class:"row1",children:[$("span",{class:"when",title:new Date(A.at).toLocaleString(),children:e6(A.at)},void 0,!1,void 0,this),$(J1,{kind:A.kind},void 0,!1,void 0,this),$("span",{class:"hist-recname",children:A.record_title||A.record_id},void 0,!1,void 0,this),v&&$("span",{class:"hist-status",children:v},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"row2",children:$("span",{class:"who",children:w(A.node_id)},void 0,!1,void 0,this)},void 0,!1,void 0,this),D.length>0&&$("div",{class:"hist-fields",children:[D.map((R)=>$("div",{class:"hist-field",children:[$("span",{class:"fname",children:G.get(R.prop)??"(已删字段)"},void 0,!1,void 0,this),!A.created&&$("span",{class:"old",title:AZ(R.before),children:AZ(R.before)},void 0,!1,void 0,this),!A.created&&$("span",{class:"arr",children:"→"},void 0,!1,void 0,this),$("span",{class:"new",title:AZ(R.after),children:AZ(R.after)},void 0,!1,void 0,this)]},R.prop,!0,void 0,this)),A.diffs.length>s6&&!V&&$("button",{class:"hist-more",onClick:()=>K(new Set(F).add(_)),children:["…还有 ",A.diffs.length-s6," 项"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},_,!0,void 0,this)})]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function CQ(Z,J){let Q=[];if(Z.created)Q.push("创建");if(Z.deleted)Q.push("删除");if(Z.fields.length)Q.push(Z.fields.map((X)=>J.get(X)??"(已删字段)").join("、"));if(Z.moved&&!Q.length)Q.push("排序");return Q.join(";")||"元数据"}function AZ(Z){if(Z===void 0)return"(空)";if(Z===null)return"(空)";if(typeof Z==="string")return Z===""?"(空)":Z;return JSON.stringify(Z)}function j5({rec:Z,props:J,onReverted:Q}){let[X,z]=k(null),[W,G]=k(null),[q,H]=k(!1),Y=W0(new Map),[,F]=k(0),K=Z1(),w=_9(()=>new Map(J.map((v)=>[v.id,v.name])),[J]),P=()=>a.recordHistory(Z.id).then(z).catch((v)=>s(String(v.message)));l(()=>{P()},[Z.id]);let A=async(v)=>{let R=Y.current.get(v);if(R)return R;let x=await a.recordAt(Z.id,v);return Y.current.set(v,x),F((S)=>S+1),x},_=(v,R)=>{if(W===v.version)return G(null);if(G(v.version),A(v.version),R)A(R.version)},V=async(v)=>{if(!await R0({title:"恢复到此版本?",message:"记录字段将恢复到该修订时的值。此操作会作为一次新修订记录。",confirmLabel:"恢复"}))return;try{await a.revertRecord(Z.id,v.version),s("已恢复"),Y.current.clear(),Q(),await P()}catch(x){s(String(x.message))}},D=(X??[]).filter((v)=>q||v.kind!=="repair");return $("div",{class:"hist-rec",children:[$("div",{class:"hist-rec-head",children:[$("span",{class:"hist-title",children:[$(f,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"修改历史"]},void 0,!0,void 0,this),$("label",{class:"hist-toggle",children:[$("input",{type:"checkbox",checked:q,onInput:()=>H(!q)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X===null&&$("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),X!==null&&D.length===0&&$("div",{class:"muted pad",children:"暂无历史。"},void 0,!1,void 0,this),D.map((v,R)=>{let x=D[R+1],S=Y.current.get(v.version),O=x?Y.current.get(x.version):void 0,N=v.created&&S?Object.keys(S.data):v.fields;return $("div",{class:"hist-item static",children:[$("div",{class:"row1",onClick:()=>_(v,x),children:[$("span",{class:"when",title:new Date(v.at).toLocaleString(),children:e6(v.at)},void 0,!1,void 0,this),$(J1,{kind:v.kind},void 0,!1,void 0,this),R===0&&$("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$(f,{name:W===v.version?"chevronDown":"chevron",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"row2",onClick:()=>_(v,x),children:[$("span",{class:"who",children:K(v.node_id)},void 0,!1,void 0,this),$("span",{class:"what",children:CQ(v,w)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W===v.version&&$("div",{class:"hist-fields",children:[!S&&$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this),S&&N.map((L)=>{let B=O?O.data[L]:void 0,M=S.data[L];return $("div",{class:"hist-field",children:[$("span",{class:"fname",children:w.get(L)??"(已删字段)"},void 0,!1,void 0,this),x&&$("span",{class:"old",children:AZ(B)},void 0,!1,void 0,this),x&&$("span",{class:"arr",children:"→"},void 0,!1,void 0,this),$("span",{class:"new",children:AZ(M)},void 0,!1,void 0,this)]},L,!0,void 0,this)}),S&&R!==0&&$("button",{class:"btn btn-secondary hist-restore",onClick:()=>V(v),children:"恢复到此版本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},v.version,!0,void 0,this)})]},void 0,!0,void 0,this)}var JZ="\x00__ungrouped__";function h5({props:Z,records:J,onCommitValue:Q,onCreate:X,onOpenRecord:z,onMove:W}){let G=Z.filter((v)=>v.type==="select"||v.type==="multi_select"),[q,H]=k(null),Y=Z.find((v)=>v.id===q)??G.find((v)=>v.type==="select")??G[0]??null;if(!Y)return $("div",{class:"view-placeholder",children:"看板视图需要一个「单选」或「多选」属性来分组。请在表格视图中添加一个单选列后再切换到看板。"},void 0,!1,void 0,this);let F=Z[0],K=Y.type==="multi_select",w=Y.config?.options??[],P=(v)=>{let R=v.cells[Y.id];if(K){let S=(Array.isArray(R)?R:[]).map(String).filter((O)=>w.includes(O));return S.length?S:[JZ]}let x=R==null?"":String(R);return x&&w.includes(x)?[x]:[JZ]},A=new Map;for(let v of w)A.set(v,[]);A.set(JZ,[]);for(let v of J)for(let R of P(v))A.get(R)?.push(v);let _=[...w];if((A.get(JZ)?.length??0)>0)_.push(JZ);let V=(v,R)=>{if(v.button!==0)return;if(v.target.closest("button,a,input"))return;let x=v.currentTarget.closest(".kcard");if(!x)return;let S=x.getBoundingClientRect();v.preventDefault();let O=v.clientX-S.left,N=v.clientY-S.top,L=null;P9(v,{onStart:()=>{L=x.cloneNode(!0),L.classList.add("dragging-ghost"),L.style.width=`${S.width}px`,document.body.appendChild(L),x.classList.add("drag-source"),document.body.classList.add("table-dragging")},onMove:(B)=>{uZ(L,B.clientX-O,B.clientY-N),A9(),document.elementFromPoint(B.clientX,B.clientY)?.closest?.(".board-col")?.classList.add("drop-into")},onEnd:(B,M)=>{if(L?.remove(),x.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),A9(),!M){z(R.id);return}let y=document.elementFromPoint(B.clientX,B.clientY)?.closest?.(".board-col");if(!y)return;if(!K){let r=y.dataset.colKey,$0=String(R.cells[Y.id]??""),m=r===JZ?null:r;if(String(m??"")!==$0)Q(R,Y,m)}let E=document.elementFromPoint(B.clientX,B.clientY)?.closest?.(".kcard"),c=E?.dataset.recId;if(c&&c!==R.id){let r=E.getBoundingClientRect();W(R.id,c,B.clientY<r.top+r.height/2?"before":"after")}}})};return $("div",{class:"board-wrap",children:[$("div",{class:"board-bar",children:[$("button",{class:"tbtn",onClick:(v)=>y0(v,(R)=>$(o,{children:[$(j0,{children:"按属性分组"},void 0,!1,void 0,this),G.map((x)=>$(z0,{icon:z9[x.type],label:x.name,onClick:()=>{H(x.id),R()}},x.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[$(f,{name:"group",cls:"ico sm"},void 0,!1,void 0,this),"分组:",Y.name]},void 0,!0,void 0,this),K&&$("span",{class:"muted",style:{fontSize:12},children:"多选分组不支持拖拽改值"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"board",children:_.map((v)=>{let R=A.get(v)??[],x=v===JZ;return $("div",{class:"board-col","data-col-key":v,children:[$("div",{class:"board-col-head",children:[x?$("span",{class:"muted",style:{fontWeight:600},children:"未分组"},void 0,!1,void 0,this):$(ZZ,{text:v},void 0,!1,void 0,this),$("span",{class:"board-count",children:R.length},void 0,!1,void 0,this),$("div",{class:"spacer"},void 0,!1,void 0,this),$("button",{class:"iconbtn sm",title:"新建记录",onClick:()=>X(x?{}:{[Y.id]:v}),children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"board-col-body",children:[R.map((S)=>$("div",{class:"kcard","data-rec-id":S.id,onPointerDown:(O)=>V(O,S),children:[$("div",{class:"kcard-title",children:yQ(S,F)||$("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Z.filter((O)=>O!==F&&O.id!==Y.id&&!_Q(S.cells[O.id])).slice(0,4).map((O)=>$("div",{class:"kcard-field",children:[$(f,{name:z9[O.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),$(OZ,{prop:O,val:S.cells[O.id]},void 0,!1,void 0,this)]},O.id,!0,void 0,this))]},S.id,!0,void 0,this)),$("button",{class:"board-add",onClick:()=>X(x?{}:{[Y.id]:v}),children:[$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},v,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function yQ(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}function _Q(Z){return Z==null||Z===""||Array.isArray(Z)&&Z.length===0}function pZ(Z){if(Z==null)return null;let J=String(Z).trim();if(!J)return null;let Q=/^(\d{4})-(\d{2})-(\d{2})/.exec(J);if(Q)return new Date(Number(Q[1]),Number(Q[2])-1,Number(Q[3]));let X=new Date(J);return Number.isNaN(X.getTime())?null:new Date(X.getFullYear(),X.getMonth(),X.getDate())}function B9(Z){let J=Z.getFullYear(),Q=String(Z.getMonth()+1).padStart(2,"0"),X=String(Z.getDate()).padStart(2,"0");return`${J}-${Q}-${X}`}function o0(Z,J){return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate()+J)}function $1(Z,J){return Z.getFullYear()===J.getFullYear()&&Z.getMonth()===J.getMonth()&&Z.getDate()===J.getDate()}function vQ(Z,J){return new Date(Z,J,1)}function TQ(Z,J){return new Date(Z,J+1,0)}function NZ(Z,J){let Q=Date.UTC(Z.getFullYear(),Z.getMonth(),Z.getDate()),X=Date.UTC(J.getFullYear(),J.getMonth(),J.getDate());return Math.round((X-Q)/86400000)}function h8(){let Z=new Date;return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate())}function RQ(Z){let J=(Z.getDay()+6)%7;return o0(Z,-J)}function D5(Z,J){let Q=RQ(vQ(Z,J)),X=TQ(Z,J),z=[],W=Q;while(W<=X||z.length===0||W.getDay()!==1){let G=[];for(let q=0;q<7;q++)G.push(o0(W,q));if(z.push(G),W=o0(W,7),z.length>=6)break}return z}var kQ=["一","二","三","四","五","六","日"],Q1=3;function x5({props:Z,records:J,onCommitValue:Q,onCreate:X,onOpenRecord:z}){let W=Z.filter((O)=>O.type==="date"),[G,q]=k(null),H=Z.find((O)=>O.id===G)??W[0]??null,Y=h8(),[F,K]=k({y:Y.getFullYear(),m:Y.getMonth()}),w=W0(null);if(!H)return $("div",{class:"view-placeholder",children:"日历视图需要一个「日期」属性。请在表格视图中添加一个日期列后再切换到日历。"},void 0,!1,void 0,this);let P=Z[0],A=D5(F.y,F.m),_=J.map((O)=>({rec:O,date:pZ(O.cells[H.id])})).filter((O)=>O.date!=null),V=(O)=>_.filter((N)=>$1(N.date,O)),D=(O)=>{let N=F.m+O;K({y:F.y+Math.floor(N/12),m:(N%12+12)%12})},v=()=>K({y:Y.getFullYear(),m:Y.getMonth()}),R=()=>document.querySelectorAll(".cal-day.drop-into").forEach((O)=>O.classList.remove("drop-into")),x=(O,N)=>{if(O.button!==0)return;O.preventDefault(),O.stopPropagation(),w.current={id:N.id,pointerId:O.pointerId,startX:O.clientX,startY:O.clientY,active:!1,ghost:null};let L=(M)=>{let y=w.current;if(!y||y.pointerId!==M.pointerId)return;if(!y.active){if(Math.hypot(M.clientX-y.startX,M.clientY-y.startY)<4)return;y.active=!0,y.ghost=IQ(D8(N,P)),document.body.classList.add("table-dragging")}if(M.preventDefault(),y.ghost)y.ghost.style.transform=`translate3d(${Math.round(M.clientX+8)}px, ${Math.round(M.clientY+8)}px, 0)`;R(),document.elementFromPoint(M.clientX,M.clientY)?.closest?.(".cal-day")?.classList.add("drop-into")},B=(M)=>{let y=w.current;if(!y||y.pointerId!==M.pointerId)return;if(removeEventListener("pointermove",L),removeEventListener("pointerup",B),removeEventListener("pointercancel",B),y.ghost?.remove(),document.body.classList.remove("table-dragging"),R(),w.current=null,!y.active){z(N.id);return}let c=document.elementFromPoint(M.clientX,M.clientY)?.closest?.(".cal-day")?.dataset.iso;if(c&&c!==String(N.cells[H.id]??""))Q(N,H,c)};addEventListener("pointermove",L,{passive:!1}),addEventListener("pointerup",B),addEventListener("pointercancel",B)},S=(O)=>y0(O,(N)=>$(o,{children:[$(j0,{children:"按日期属性"},void 0,!1,void 0,this),W.map((L)=>$(z0,{icon:z9[L.type],label:L.name,onClick:()=>{q(L.id),N()}},L.id,!1,void 0,this))]},void 0,!0,void 0,this));return $("div",{class:"cal",children:[$("div",{class:"cal-nav",children:[$("button",{class:"iconbtn",title:"上个月",onClick:()=>D(-1),children:$(f,{name:"chevron",cls:"ico flip"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"cal-title",children:[F.y," 年 ",F.m+1," 月"]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"下个月",onClick:()=>D(1),children:$(f,{name:"chevron",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"tbtn",onClick:v,children:"今天"},void 0,!1,void 0,this),$("div",{class:"spacer"},void 0,!1,void 0,this),W.length>1&&$("button",{class:"tbtn",onClick:S,children:[$(f,{name:"calendar",cls:"ico sm"},void 0,!1,void 0,this),H.name]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"cal-grid cal-head",children:kQ.map((O)=>$("div",{class:"cal-wd",children:O},O,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"cal-body",children:A.map((O,N)=>$("div",{class:"cal-grid cal-week",children:O.map((L)=>{let B=L.getMonth()!==F.m,M=$1(L,Y),y=V(L),E=B9(L);return $("div",{class:"cal-day"+(B?" dim":"")+(M?" today":""),"data-iso":E,onClick:(c)=>{if(c.target.closest(".cal-ev,.cal-add,.cal-more"))return;X({[H.id]:E})},children:[$("div",{class:"cal-daynum",children:[$("span",{children:L.getDate()},void 0,!1,void 0,this),$("button",{class:"cal-add",title:"新建记录",onClick:(c)=>{c.stopPropagation(),X({[H.id]:E})},children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"cal-events",children:[y.slice(0,Q1).map(({rec:c})=>$("div",{class:"cal-ev",style:{["--c"]:t6(D8(c,P)||c.id)},onPointerDown:(r)=>x(r,c),children:D8(c,P)||"无标题"},c.id,!1,void 0,this)),y.length>Q1&&$("button",{class:"cal-more",onClick:(c)=>{c.stopPropagation(),y0(c,(r)=>$(o,{children:[$(j0,{children:[E," · ",y.length," 条记录"]},void 0,!0,void 0,this),y.map(({rec:$0})=>$(z0,{label:D8($0,P)||"无标题",onClick:()=>{r(),z($0.id)}},$0.id,!1,void 0,this))]},void 0,!0,void 0,this))},children:["+",y.length-Q1," 更多"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},E,!0,void 0,this)})},N,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function D8(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}function IQ(Z){let J=document.createElement("div");return J.className="drag-ghost",J.textContent=Z||"移动记录",document.body.appendChild(J),J}var g9=200,dZ=36,cZ=44,J9=28,m5=3;function E5({props:Z,records:J,onCommitValue:Q,onOpenRecord:X}){let z=Z.filter((g)=>g.type==="date"),[W,G]=k(null),[q,H]=k(null),Y=Z.find((g)=>g.id===W)??z[0]??null,F=q==="none"?null:Z.find((g)=>g.id===q)??z.find((g)=>g!==Y)??null,K=W0(null),w=W0(null);if(!Y)return $("div",{class:"view-placeholder",children:"时间轴视图需要一个「日期」属性作为开始日期。请在表格视图中添加一个日期列后再切换到时间轴。"},void 0,!1,void 0,this);let P=Z[0],A=h8(),_=J.map((g)=>{let u=pZ(g.cells[Y.id]),I=F?pZ(g.cells[F.id]):null;return{rec:g,s:u,e:I&&u&&I<u?u:I}}),V=_.filter((g)=>g.s),D=A,v=A;if(V.length){D=V[0].s,v=V[0].s;for(let g of V){if(g.s<D)D=g.s;let u=g.e??g.s;if(u>v)v=u}}else D=o0(A,-10),v=o0(A,14);let R=o0(D,-m5),x=o0(v,m5),S=NZ(R,x)+1,O=g9+S*J9,N=(g)=>g9+g*J9,L=NZ(R,A),B=[];for(let g=0;g<S;g++)B.push(o0(R,g));let M=(g,u,I,n,Z0)=>{if(Z0===0)return;if(n==="move"){if(u)Q(g,Y,B9(o0(u,Z0)));if(F&&I)Q(g,F,B9(o0(I,Z0)))}else if(n==="l"&&u){let q0=o0(u,Z0);Q(g,Y,B9(I&&q0>I?I:q0))}else if(n==="r"&&F&&I){let q0=o0(I,Z0);Q(g,F,B9(u&&q0<u?u:q0))}},y=(g,u)=>{let I=w.current;if(!I)return;I.style.left=g+"px",I.style.display="block";let n=I.firstElementChild;if(n)n.textContent=u},E=()=>{if(w.current)w.current.style.display="none"},c=(g,u,I,n,Z0,q0)=>{if(g.button!==0||!I)return;g.preventDefault(),g.stopPropagation();let{offsetLeft:Q0,offsetWidth:J0}=q0,B0=!1,p0=Z0==="move"?null:g.currentTarget;p0?.classList.add("dragging"),K.current={pointerId:g.pointerId,startX:g.clientX};let i0=(d0)=>{let g0=K.current;if(!g0||g0.pointerId!==d0.pointerId)return;let h0=Math.round((d0.clientX-g0.startX)/J9);if(Math.abs(d0.clientX-g0.startX)>3)B0=!0;let _0,a0;if(Z0==="move"){let O0=Q0+h0*J9;q0.style.left=O0+"px",_0=O0,a0=o0(I,h0)}else if(Z0==="l"){let O0=Q0+h0*J9;q0.style.left=O0+"px",q0.style.width=Math.max(J9,J0-h0*J9)+"px",_0=O0,a0=o0(I,h0)}else{let O0=Math.max(J9,J0+h0*J9);q0.style.width=O0+"px",_0=Q0+O0,a0=o0(I,Math.round(O0/J9)-1)}y(_0,B9(a0))},m0=(d0)=>{let g0=K.current;if(!g0||g0.pointerId!==d0.pointerId)return;removeEventListener("pointermove",i0),removeEventListener("pointerup",m0),removeEventListener("pointercancel",m0),K.current=null,p0?.classList.remove("dragging"),E();let h0=Math.round((d0.clientX-g0.startX)/J9);if(!B0){X(u.id);return}M(u,I,n,Z0,h0)};addEventListener("pointermove",i0,{passive:!1}),addEventListener("pointerup",m0),addEventListener("pointercancel",m0)},r=(g,u)=>{if(Q(g,Y,B9(u)),F)Q(g,F,B9(u))},$0=(g,u)=>{let I=g.currentTarget.closest(".tl-row");if(!I)return;let n=g.clientX-I.getBoundingClientRect().left;if(n<g9)return;let Z0=Math.max(0,Math.min(S-1,Math.round((n-g9)/J9)));r(u,o0(R,Z0))};return $("div",{class:"tl",children:[$("div",{class:"tl-toolbar",children:$("button",{class:"tbtn",onClick:(g)=>y0(g,(u)=>$(o,{children:[$(j0,{children:"开始日期"},void 0,!1,void 0,this),z.map((I)=>$(z0,{icon:z9[I.type],label:I.name,checked:I===Y,onClick:()=>{G(I.id),u()}},I.id,!1,void 0,this)),$(S0,{},void 0,!1,void 0,this),$(j0,{children:"结束日期(可选)"},void 0,!1,void 0,this),$(z0,{icon:"x",label:"无(里程碑)",checked:!F,onClick:()=>{H("none"),u()}},void 0,!1,void 0,this),z.map((I)=>$(z0,{icon:z9[I.type],label:I.name,checked:I===F,onClick:()=>{H(I.id),u()}},I.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[$(f,{name:"timeline",cls:"ico sm"},void 0,!1,void 0,this),Y.name,F?` → ${F.name}`:"(里程碑)"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"tl-scroll",children:$("div",{class:"tl-canvas",style:{width:O,height:cZ+_.length*dZ+8},children:[$("div",{class:"tl-axis",style:{height:cZ},children:[$("div",{class:"tl-corner",style:{width:g9},children:"记录"},void 0,!1,void 0,this),B.map((g,u)=>{let I=g.getDate()===1;return $("div",{class:"tl-tick"+(I?" mstart":"")+(NZ(g,A)===0?" today":""),style:{left:N(u),width:J9},children:[I&&$("span",{class:"tl-month",children:[g.getMonth()+1,"月"]},void 0,!0,void 0,this),$("span",{class:"tl-dnum",children:g.getDate()},void 0,!1,void 0,this)]},u,!0,void 0,this)})]},void 0,!0,void 0,this),_.map(({rec:g,s:u,e:I},n)=>{let Z0=u?NZ(R,u):0,q0=u&&I?NZ(u,I)+1:1;return $("div",{class:"tl-row",style:{top:cZ+n*dZ,height:dZ},children:[$("div",{class:"tl-rowlabel",style:{width:g9},children:u5(g,P)||$("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!u?$("div",{class:"tl-track-empty",style:{left:g9},onClick:(Q0)=>$0(Q0,g),title:"点击空白处排期",children:$("button",{class:"tl-schedule",style:{left:g9+8},onClick:(Q0)=>{Q0.stopPropagation(),r(g,A)},children:"未排期 · 排到今天"},void 0,!1,void 0,this)},void 0,!1,void 0,this):I?$("div",{class:"tl-item",style:{left:N(Z0),width:q0*J9},onPointerDown:(Q0)=>c(Q0,g,u,I,"move",Q0.currentTarget),children:[$("span",{class:"tl-h l",onPointerDown:(Q0)=>c(Q0,g,u,I,"l",Q0.currentTarget.parentElement)},void 0,!1,void 0,this),$("span",{class:"tl-label",children:u5(g,P)},void 0,!1,void 0,this),$("span",{class:"tl-h r",onPointerDown:(Q0)=>c(Q0,g,u,I,"r",Q0.currentTarget.parentElement)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):$("div",{class:"tl-milestone",style:{left:N(Z0)},title:B9(u),onPointerDown:(Q0)=>c(Q0,g,u,null,"move",Q0.currentTarget)},void 0,!1,void 0,this)]},g.id,!0,void 0,this)}),L>=0&&L<S&&$("div",{class:"tl-today",style:{left:N(L)+J9/2,height:cZ+_.length*dZ}},void 0,!1,void 0,this),$("div",{class:"tl-guide",ref:w,style:{display:"none",height:cZ+_.length*dZ},children:$("span",{class:"tl-guide-label"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function u5(Z,J){if(!J)return"";let Q=Z.cells[J.id];return Q==null?"":Array.isArray(Q)?Q.join(", "):String(Q)}function $Z(Z){return{r0:Math.min(Z.a.r,Z.b.r),r1:Math.max(Z.a.r,Z.b.r),c0:Math.min(Z.a.c,Z.b.c),c1:Math.max(Z.a.c,Z.b.c)}}function x8(Z,J,Q){return J>=Z.r0&&J<=Z.r1&&Q>=Z.c0&&Q<=Z.c1}function m8(Z,J,Q){if(!x8(Z,J,Q))return;let X=[];if(J===Z.r0)X.push("inset 0 2px 0 0 var(--accent)");if(J===Z.r1)X.push("inset 0 -2px 0 0 var(--accent)");if(Q===Z.c0)X.push("inset 2px 0 0 0 var(--accent)");if(Q===Z.c1)X.push("inset -2px 0 0 0 var(--accent)");return X.join(",")||void 0}function p5(Z,J){let Q=[];for(let X=J.r0;X<=J.r1;X++){let z=Z[X]??[],W=[];for(let G=J.c0;G<=J.c1;G++)W.push(z[G]??"");Q.push(W.join("\t"))}return Q.join(`
|
|
37
|
-
`)}var
|
|
38
|
-
`);try{await navigator.clipboard.writeText(t)}catch{}},Y0=K?Q.find((h)=>h.id===K.id):void 0,r0=(h)=>{let T=h==null||h===""?NaN:Number(h);return Number.isFinite(T)?T:Number.NEGATIVE_INFINITY},K0=K?[...z].sort((h,T)=>{let p=h.cells[K.id],i=T.cells[K.id],F0=Y0?.type==="number"?r0(p)-r0(i):String(p??"").localeCompare(String(i??""),"zh");return(K.desc?-1:1)*F0}):z,l0=z.find((h)=>h.id===V)??null,w0=v?$Z(v):null;return l(()=>{let h=(T)=>{if(!v||P)return;let p=document.activeElement,i=(p?.tagName||"").toLowerCase();if(i==="input"||i==="textarea"||p?.isContentEditable)return;let F0=v.a.r===v.b.r&&v.a.c===v.b.c,{r:t,c:e}=v.b,X0={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]};if(T.key in X0){T.preventDefault();let[L0,v0]=X0[T.key],V0={r:d0(t+L0,0,K0.length-1),c:d0(e+v0,0,Q.length-1)};R(T.shiftKey?{a:v.a,b:V0}:{a:V0,b:V0}),g0(V0.r,V0.c)}else if((T.metaKey||T.ctrlKey)&&T.key.toLowerCase()==="c")T.preventDefault(),u0();else if(T.key==="Escape")R(null);else if(T.key==="Delete"||T.key==="Backspace")T.preventDefault(),O0(()=>null);else if(F0&&(T.key==="Enter"||T.key==="F2"))T.preventDefault(),_0(t,e);else if(F0&&T.key.length===1&&!T.metaKey&&!T.ctrlKey&&!T.altKey&&!T.isComposing&&T.keyCode!==229){let L0=Q[e];if(!L0||!m0(L0.type)||L0.type==="date")return;if(L0.type==="number"&&!/[0-9.+-]/.test(T.key))return;T.preventDefault(),_0(t,e,T.key)}};return addEventListener("keydown",h),()=>removeEventListener("keydown",h)},[v,P,z,Q,K]),$("div",{class:"db",onPointerDown:(h)=>{if(!h.target.closest("td.cell-td, .cellselbar"))R(null)},children:[$("div",{class:"db-head",children:[$("div",{class:"db-icon",children:Z.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),$("div",{children:$("div",{class:"db-title",contentEditable:!0,onBlur:(h)=>{let T=h.target.textContent?.trim()||Z.name;if(T!==Z.name)r(async()=>{await a.updateDatabase(Z.id,{name:T})})},children:Z.name},void 0,!1,void 0,this)},void 0,!1,void 0,this),G.has(Z.id)&&$("span",{class:"db-title-share",title:"已分享 · 管理分享",onClick:()=>N9({kind:"database",ref:Z.id,title:Z.name}),children:$(f,{name:"link"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"views",children:[SQ.map(([h,T],p)=>$("div",{class:"view-tab"+(p===q?" active":""),onClick:()=>H(p),children:[$(f,{name:T},void 0,!1,void 0,this),h]},h,!0,void 0,this)),$("div",{class:"spacer",style:{flex:1}},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:u,children:[$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),q===0&&$("div",{class:"toolbar",children:$("button",{class:"tbtn",onClick:(h)=>xQ(h,Q,K,w),children:[$(f,{name:"sort",cls:"ico sm"},void 0,!1,void 0,this),"排序"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),q===1?$(h5,{props:Q,records:z,onCommitValue:m,onCreate:g,onOpenRecord:D,onMove:q0},void 0,!1,void 0,this):q===2?$(x5,{props:Q,records:z,onCommitValue:m,onCreate:g,onOpenRecord:D},void 0,!1,void 0,this):q===3?$(E5,{props:Q,records:z,onCommitValue:m,onCreate:g,onOpenRecord:D},void 0,!1,void 0,this):$("div",{class:"gridhost",ref:N,onMouseMove:(h)=>c(h.clientY),onMouseLeave:()=>{if(!document.body.classList.contains("table-dragging"))B(null)},children:[L&&$("button",{class:"rowgrip-ext"+(K?" is-disabled":""),style:{top:L.top+L.height/2},title:K?"清除排序后可拖拽移动":"拖拽移动","aria-disabled":K?"true":void 0,onPointerDown:(h)=>B0(h,L.id),children:$(f,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),M!=null&&$("div",{class:"rowdrop",style:{top:M}},void 0,!1,void 0,this),$("div",{class:"tablewrap",children:[$("div",{class:"tablescroll",children:$("table",{class:"grid",ref:O,children:[$("colgroup",{children:[$("col",{style:{width:38}},void 0,!1,void 0,this),Q.map((h)=>$("col",{"data-col-id":h.id,style:{width:x(h)}},h.id,!1,void 0,this)),$("col",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("thead",{children:$("tr",{children:[$("th",{class:"selcell",children:$("input",{type:"checkbox",checked:Y.size>0&&Y.size===z.length,onChange:(h)=>F(h.target.checked?new Set(z.map((T)=>T.id)):new Set)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q.map((h)=>$("th",{"data-col-id":h.id,children:[$("div",{class:"colhead",onPointerDown:(T)=>p0(T,h),onClick:(T)=>{if(S.current){S.current=!1,T.preventDefault(),T.stopPropagation();return}jQ(T,h,Z.id,$0,Q)},children:[$("span",{class:"ti",children:$(f,{name:z9[h.type]??"text",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"nm",children:h.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(gQ,{colId:h.id,startWidth:x(h),onCommit:(T)=>{X((p)=>p.map((i)=>i.id===h.id?{...i,config:{...i.config??{},width:T}}:i)),a.setColumnWidth(h.id,T).catch((p)=>{J(String(p.message)),$0().catch(()=>{})})}},void 0,!1,void 0,this)]},h.id,!0,void 0,this)),$("th",{class:"addcol",children:$("div",{class:"colhead",title:"新建属性",onClick:(h)=>DQ(h,Z.id,Q,$0),children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("tbody",{children:K0.map((h,T)=>$("tr",{"data-row-id":h.id,class:Y.has(h.id)?"sel":"",children:[$("td",{class:"selcell",children:$("input",{type:"checkbox",checked:Y.has(h.id),onChange:()=>F((p)=>{let i=new Set(p);return i.has(h.id)?i.delete(h.id):i.add(h.id),i})},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q.map((p,i)=>{let F0=w0!=null&&T>=w0.r0&&T<=w0.r1&&i>=w0.c0&&i<=w0.c1,t=w0?m8(w0,T,i):void 0;return $("td",{class:"cell-td"+(F0?" cellsel":""),"data-r":T,"data-c":i,style:t?{boxShadow:t}:void 0,onPointerDown:(e)=>i0(e,T,i),children:$(VQ,{rec:h,prop:p,first:i===0,editing:P?.rec===h.id&&P?.prop===p.id,seed:P?.rec===h.id&&P?.prop===p.id?P.seed:void 0,onEdit:()=>{h0(T,i),A({rec:h.id,prop:p.id})},onCommit:(e)=>m(h,p,e),onDone:(e)=>{if(A(null),e.reason!=="cancel"&&e.changed)m(h,p,e.value);if(e.reason==="tab")a0(T,i,1);else if(e.reason==="shifttab")a0(T,i,-1);else if(e.reason==="enter")h0(d0(T+1,0,K0.length-1),i)},onOpen:()=>D(h.id),onRowMenu:(e)=>mQ(e,h,()=>D(h.id),()=>n(h),()=>I([h.id]))},void 0,!1,void 0,this)},p.id,!1,void 0,this)}),$("td",{class:"filler"},void 0,!1,void 0,this)]},h.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"addrow",onClick:u,children:[$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建记录"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"gridfoot",children:[$("span",{children:["共 ",z.length," 条记录"]},void 0,!0,void 0,this),$("span",{children:[Q.length," 个属性"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y.size>0&&$("div",{class:"selbar",children:[$("span",{class:"cnt",children:[Y.size," 已选"]},void 0,!0,void 0,this),$("button",{onClick:()=>r(async()=>{for(let h of Y)await n(z.find((T)=>T.id===h))}),children:[$(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),$("button",{class:"del",onClick:async()=>{if(await R0({title:"删除记录?",message:`确定删除选中的 ${Y.size} 条记录?`,confirmLabel:"删除",danger:!0}))I([...Y])},children:[$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"删除"]},void 0,!0,void 0,this),$("button",{onClick:()=>F(new Set),children:$(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w0&&(w0.r0!==w0.r1||w0.c0!==w0.c1)&&$("div",{class:"selbar cellselbar",children:[$("span",{class:"cnt",children:[(w0.r1-w0.r0+1)*(w0.c1-w0.c0+1)," 个单元格"]},void 0,!0,void 0,this),$("button",{onClick:u0,children:[$(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),$("button",{onClick:()=>O0((h)=>K0[w0.r0].cells[h.id]??null),children:[$(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"填充"]},void 0,!0,void 0,this),$("button",{class:"del",onClick:()=>O0(()=>null),children:[$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"清空"]},void 0,!0,void 0,this),$("button",{onClick:()=>R(null),children:$(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),l0&&$(uQ,{db:Z,props:Q,rec:l0,onClose:()=>D(null),onCommit:(h,T)=>m(l0,h,T),onDelete:()=>I([l0.id]),onDuplicate:()=>n(l0),onReverted:()=>$0().catch((h)=>J(String(h.message)))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function i5({prop:Z,val:J,seed:Q,captureTab:X,onDone:z}){let W=Array.isArray(J)?J.join(", "):J==null?"":String(J),G=W0(null),q=W0(!1);l(()=>{let Y=G.current;Y.value=Q??W,Y.focus();try{Y.setSelectionRange(Y.value.length,Y.value.length)}catch{}},[]);let H=(Y)=>{if(q.current)return;if(q.current=!0,Y==="cancel")return z({reason:"cancel"});let F=G.current.value;z({reason:Y,changed:F!==W,value:S5(Z.type,F)})};return $("input",{ref:G,class:"inlineedit",type:Z.type==="number"?"number":Z.type==="date"?"date":"text",onBlur:()=>H("blur"),onKeyDown:(Y)=>{if(Y.isComposing||Y.keyCode===229)return;if(Y.key==="Enter")Y.preventDefault(),H("enter");else if(Y.key==="Escape")Y.preventDefault(),Y.stopPropagation(),H("cancel");else if(Y.key==="Tab"&&X)Y.preventDefault(),H(Y.shiftKey?"shifttab":"tab")}},void 0,!1,void 0,this)}function VQ({rec:Z,prop:J,first:Q,editing:X,seed:z,onEdit:W,onCommit:G,onDone:q,onOpen:H,onRowMenu:Y}){let F=Z.cells[J.id];if(J.type==="checkbox")return $("div",{class:"cell center",children:$("input",{type:"checkbox",checked:!!F,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>G(!F)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let K=(A)=>{if(J.type==="select"||J.type==="multi_select")a5(A,J,F,G);else W()},w=$(OZ,{prop:J,val:F},void 0,!1,void 0,this);return $(o,{children:[Q?$("div",{class:"cell",onDblClick:K,onContextMenu:(A)=>{A.preventDefault(),Y(A)},children:$("div",{class:"firstcell",children:[w,$("div",{class:"rowactions",children:$("button",{class:"rowopen",title:"打开",onClick:(A)=>{A.stopPropagation(),H()},children:$(f,{name:"openPeek",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):$("div",{class:"cell",onDblClick:K,children:w},void 0,!1,void 0,this),X&&J.type!=="select"&&J.type!=="multi_select"&&$("div",{class:"celledit",children:$(i5,{prop:J,val:F,seed:z,captureTab:!0,onDone:q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function d5(Z,J,Q,X){let z=[...Z],W=z.findIndex((H)=>H.id===J);if(W<0)return Z;let G=z.splice(W,1)[0],q=z.findIndex((H)=>H.id===Q);if(q<0)return Z;if(X==="after")q+=1;return z.splice(q,0,G),z}function fQ(Z){return Array.from(Z.querySelectorAll("td")).map((Q)=>(Q.textContent??"").trim()).filter(Boolean).join(" ")||"移动记录"}function gQ({colId:Z,startWidth:J,onCommit:Q}){return $("div",{class:"col-resizer",onPointerDown:(z)=>{z.preventDefault(),z.stopPropagation(),S8(z,{col:document.querySelector(`col[data-col-id="${CSS.escape(Z)}"]`),startWidth:J,min:80,onDone:Q})}},void 0,!1,void 0,this)}function a5(Z,J,Q,X){Z.stopPropagation();let z=J.type==="multi_select",W=J.config?.options??[];y0(Z,(G)=>$(bQ,{multi:z,options:W,value:Q,onPick:(q)=>{if(X(q),!z)G()}},void 0,!1,void 0,this))}function bQ({multi:Z,options:J,value:Q,onPick:X}){let[z,W]=k(Q),G=(H)=>Z?Array.isArray(z)?z.includes(H):!1:z===H,q=(H)=>{if(Z){let Y=new Set(Array.isArray(z)?z:[]);Y.has(H)?Y.delete(H):Y.add(H);let F=[...Y];W(F),X(F)}else W(H),X(H)};return $(o,{children:[$(j0,{children:Z?"多选 — 点选切换":"单选"},void 0,!1,void 0,this),J.map((H)=>$("button",{class:"item",onClick:()=>q(H),children:[$(ZZ,{text:H},void 0,!1,void 0,this),G(H)&&$("span",{class:"chk",children:$(f,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},H,!0,void 0,this)),Z&&Array.isArray(z)&&z.length>0&&$(o,{children:[$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"x",label:"清空",onClick:()=>{W([]),X([])}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function jQ(Z,J,Q,X,z){Z.stopPropagation(),y0(Z,(W)=>$(hQ,{prop:J,dbId:Q,reload:X,close:W,allProps:z},void 0,!1,void 0,this),{minWidth:252})}function hQ({prop:Z,dbId:J,reload:Q,close:X,allProps:z}){let[W,G]=k(Z.name),[q,H]=k(Z.type),[Y,F]=k(Z.config?.options??[]),K=(A)=>a.updateProperty(Z.id,A).then(Q).catch((_)=>s(`更新属性失败:${_.message}`)),w=(A)=>{H(A);let _=Y;if((A==="select"||A==="multi_select")&&_.length===0)_=["选项 1","选项 2"],F(_);K({type:A,...A==="select"||A==="multi_select"?{config:{options:_}}:{}})},P=(A)=>{F(A),K({config:{options:A}})};return $(o,{children:[$("input",{class:"field",value:W,onInput:(A)=>G(A.target.value),onBlur:()=>W&&W!==Z.name&&K({name:W}),onKeyDown:(A)=>{if(A.key==="Enter")A.target.blur(),X()}},void 0,!1,void 0,this),$(j0,{children:"属性类型"},void 0,!1,void 0,this),$("div",{class:"typegrid",children:Object.keys(UZ).map((A)=>$("button",{class:"item"+(A===q?" sel":""),onClick:()=>w(A),children:[$("span",{class:"lico",children:$(f,{name:z9[A],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"d",children:UZ[A].t},void 0,!1,void 0,this)]},A,!0,void 0,this))},void 0,!1,void 0,this),(q==="select"||q==="multi_select")&&$(o,{children:[$(S0,{},void 0,!1,void 0,this),$(j0,{children:"选项"},void 0,!1,void 0,this),Y.map((A,_)=>$("div",{class:"optrow",children:[$(ZZ,{text:A},void 0,!1,void 0,this),$("button",{class:"x",onClick:()=>P(Y.filter((V,D)=>D!==_)),children:$(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},A+_,!0,void 0,this)),$(z0,{icon:"plus",label:"添加选项",onClick:()=>P([...Y,"选项 "+(Y.length+1)])},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{X(),a.createProperty({db:J,name:n5("新属性",z),type:"text"}).then(Q).catch((A)=>s(`新建属性失败:${A.message}`))}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除属性",danger:!0,onClick:async()=>{if(X(),await R0({title:"删除属性?",message:`「${Z.name}」及其所有单元格数据将被移除。`,confirmLabel:"删除",danger:!0}))a.deleteProperty(Z.id).then(Q)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function n5(Z,J){let Q=new Set(J.map((X)=>X.name.toLowerCase()));if(!Q.has(Z.toLowerCase()))return Z;for(let X=2;;X++){let z=`${Z} ${X}`;if(!Q.has(z.toLowerCase()))return z}}function DQ(Z,J,Q,X){Z.stopPropagation(),y0(Z,(z)=>$(o,{children:[$(j0,{children:"新建属性 · 选择类型"},void 0,!1,void 0,this),$("div",{class:"typegrid",children:Object.keys(UZ).map((W)=>$("button",{class:"item",onClick:()=>{z();let G=W==="select"||W==="multi_select"?{options:["选项 1","选项 2"]}:void 0;a.createProperty({db:J,name:n5(UZ[W].t,Q),type:W,config:G}).then(X).catch((q)=>s(`新建属性失败:${q.message}`))},children:[$("span",{class:"lico",children:$(f,{name:z9[W],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"d",children:UZ[W].t},void 0,!1,void 0,this)]},W,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function xQ(Z,J,Q,X){y0(Z,(z)=>$(o,{children:[$(j0,{children:"排序依据"},void 0,!1,void 0,this),J.map((W)=>$(z0,{icon:z9[W.type],label:W.name,onClick:()=>{X({id:W.id,desc:Q?.id===W.id?!Q.desc:!1}),z()}},W.id,!1,void 0,this)),Q&&$(o,{children:[$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"x",label:"清除排序",onClick:()=>{X(null),z()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this))}function mQ(Z,J,Q,X,z){Z.stopPropagation(),y0(Z,(W)=>$(o,{children:[$(z0,{icon:"cornerUpRight",label:"打开记录",onClick:()=>{W(),Q()}},void 0,!1,void 0,this),$(z0,{icon:"copy",label:"复制记录",onClick:()=>{W(),X()}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(W(),await R0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))z()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function uQ({db:Z,props:J,rec:Q,onClose:X,onCommit:z,onDelete:W,onDuplicate:G,onReverted:q}){let[H,Y]=k(null),[F,K]=k(!1),{open:w,close:P}=e9(X),A=J[0];return $(o,{children:[$("div",{class:"scrim"+(w?" open":""),onClick:P},void 0,!1,void 0,this),$("div",{class:"peek"+(w?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:P,children:$(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),F&&$("button",{class:"iconbtn",title:"返回字段",onClick:()=>K(!1),children:$(f,{name:"arrowLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{style:{flex:1}},void 0,!1,void 0,this),$("button",{class:"iconbtn",title:"更多",onClick:(_)=>y0(_,(V)=>$(o,{children:[$(z0,{icon:"history",label:"版本历史",checked:F,onClick:()=>{V(),K(!F)}},void 0,!1,void 0,this),$(z0,{icon:"copy",label:"复制记录",onClick:()=>{V(),G()}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(V(),await R0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))W()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)),children:$(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peek-body",children:F?$(j5,{rec:Q,props:J,onReverted:q},void 0,!1,void 0,this):$(o,{children:[$("h2",{contentEditable:!0,onBlur:(_)=>A&&z(A,_.target.textContent??""),children:A?String(Q.cells[A.id]??"无标题"):"无标题"},void 0,!1,void 0,this),J.map((_)=>$("div",{class:"proprow",children:[$("div",{class:"k",children:[$(f,{name:z9[_.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:_.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(EQ,{prop:_,rec:Q,editing:H===_.id,onEdit:()=>Y(_.id),onCommit:(V)=>{z(_,V),Y(null)},onCloseEdit:()=>Y(null)},void 0,!1,void 0,this)]},_.id,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function EQ({prop:Z,rec:J,editing:Q,onEdit:X,onCommit:z,onCloseEdit:W}){let G=J.cells[Z.id];if(Z.type==="checkbox")return $("div",{class:"v",children:$("input",{type:"checkbox",checked:!!G,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>z(!G)},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(Z.type==="select"||Z.type==="multi_select")return $("div",{class:"v",onClick:(q)=>a5(q,Z,G,z),children:$(OZ,{prop:Z,val:G},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(Q)return $("div",{class:"v",children:$(i5,{prop:Z,val:G,onDone:(q)=>{if(q.reason!=="cancel"&&q.changed)z(q.value);else W()}},void 0,!1,void 0,this)},void 0,!1,void 0,this);return $("div",{class:"v",onClick:X,children:$(OZ,{prop:Z,val:G},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var X$=M2(Q$(),1);var r8=X$.default;function rz(Z){for(var J=1;J<arguments.length;J++){var Q=arguments[J];for(var X in Q)if(Object.prototype.hasOwnProperty.call(Q,X))Z[X]=Q[X]}return Z}function B1(Z,J){return Array(J+1).join(Z)}function G$(Z){return Z.replace(/^\n*/,"")}function q$(Z){var J=Z.length;while(J>0&&Z[J-1]===`
|
|
39
|
-
`)J
|
|
35
|
+
`,J=document.createElement("style");J.textContent=Z,document.head.appendChild(J)}var WQ=[4,28,45,130,165,200,220,255,290,330];function l1(Z){let J=0;for(let $=0;$<Z.length;$++)J=J*31+Z.charCodeAt($)>>>0;return`hsl(${WQ[J%WQ.length]} 65% 45%)`}function k8({text:Z}){return G("span",{class:"chip",style:{["--c"]:l1(Z)},children:Z},void 0,!1,void 0,this)}function $6({prop:Z,val:J}){if(J==null||J===""||Array.isArray(J)&&J.length===0)return G("span",{class:"muted",children:" "},void 0,!1,void 0,this);if(Z.type==="select")return G(k8,{text:String(J)},void 0,!1,void 0,this);if(Z.type==="multi_select"||Z.type==="relation")return G(t,{children:J.map(($)=>G(k8,{text:String($)},String($),!1,void 0,this))},void 0,!1,void 0,this);if(Z.type==="url")return G("a",{href:String(J),target:"_blank",rel:"noreferrer",onClick:($)=>$.stopPropagation(),children:String(J)},void 0,!1,void 0,this);return G("span",{children:String(J)},void 0,!1,void 0,this)}function UQ(Z,J){if(Z==="relation")return J.split(",").map(($)=>$.trim()).filter(Boolean);return J}function HQ(Z,J){if(J==null)return"";if(Array.isArray(J))return J.join(", ");return String(J)}function o6(Z){if(Z==null)return null;let J=String(Z).trim();if(!J)return null;let $=/^(\d{4})-(\d{2})-(\d{2})/.exec(J);if($)return new Date(Number($[1]),Number($[2])-1,Number($[3]));let Q=new Date(J);return Number.isNaN(Q.getTime())?null:new Date(Q.getFullYear(),Q.getMonth(),Q.getDate())}function r9(Z){let J=Z.getFullYear(),$=String(Z.getMonth()+1).padStart(2,"0"),Q=String(Z.getDate()).padStart(2,"0");return`${J}-${$}-${Q}`}function F9(Z,J){return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate()+J)}function t6(Z,J){return Z.getFullYear()===J.getFullYear()&&Z.getMonth()===J.getMonth()&&Z.getDate()===J.getDate()}function hF(Z,J){return new Date(Z,J,1)}function fF(Z,J){return new Date(Z,J+1,0)}function Q6(Z,J){let $=Date.UTC(Z.getFullYear(),Z.getMonth(),Z.getDate()),Q=Date.UTC(J.getFullYear(),J.getMonth(),J.getDate());return Math.round((Q-$)/86400000)}function I4(){let Z=new Date;return new Date(Z.getFullYear(),Z.getMonth(),Z.getDate())}function gF(Z){let J=(Z.getDay()+6)%7;return F9(Z,-J)}function FQ(Z,J){let $=gF(hF(Z,J)),Q=fF(Z,J),X=[],z=$;while(z<=Q||X.length===0||z.getDay()!==1){let K=[];for(let Y=0;Y<7;Y++)K.push(F9(z,Y));if(X.push(K),z=F9(z,7),X.length>=6)break}return X}function sZ(Z){let J=Z instanceof Date?Z.getTime():typeof Z==="number"?Z:new Date(Z).getTime(),$=Date.now()-J;if($<60000)return"刚刚";if($<3600000)return`${Math.floor($/60000)} 分钟前`;if($<86400000)return`${Math.floor($/3600000)} 小时前`;if($<2592000000)return`${Math.floor($/86400000)} 天前`;return new Date(J).toLocaleDateString()}var mF={user:"",repair:"修复",revert:"回滚"};function i1(){let[Z,J]=b([]);return J0(()=>{Z0.nodes().then(J).catch(()=>{})},[]),($)=>{let Q=Z.find((X)=>X.node_id===$);if(Q?.self)return"本设备";return Q?.label||$.slice(0,8)}}function n1({kind:Z}){if(Z==="user")return null;return G("span",{class:"hist-kind "+Z,children:mF[Z]},void 0,!1,void 0,this)}function uF(Z,J){let $=Array.from({length:Z.length+1},()=>Array(J.length+1).fill(0));for(let K=Z.length-1;K>=0;K--)for(let Y=J.length-1;Y>=0;Y--)$[K][Y]=Z[K]===J[Y]?$[K+1][Y+1]+1:Math.max($[K+1][Y],$[K][Y+1]);let Q=[],X=0,z=0;while(X<Z.length&&z<J.length)if(Z[X]===J[z])Q.push([X,z]),X++,z++;else if($[X+1][z]>=$[X][z+1])X++;else z++;return Q}var pF=(Z)=>Z?Z.split(/\n{2,}/):[],OQ=(Z)=>Z?Z.split(`
|
|
36
|
+
`).filter((J)=>J.trim()!==""):[];function cF(Z,J){for(let $=0;$<Math.min(Z.length,J.length);$++){let Q=Z[$].text,X=J[$].text,z=0;while(z<Q.length&&z<X.length&&Q[z]===X[z])z++;let K=0;while(K<Q.length-z&&K<X.length-z&&Q[Q.length-1-K]===X[X.length-1-K])K++;if(z+K<Math.max(Q.length,X.length)*0.3)continue;Z[$].seg=[Q.slice(0,z),Q.slice(z,Q.length-K),Q.slice(Q.length-K)],J[$].seg=[X.slice(0,z),X.slice(z,X.length-K),X.slice(X.length-K)]}}function dF(Z,J){let $=OQ(Z),Q=OQ(J),X=uF($,Q),z=[],K=0,Y=0;for(let[q,W]of[...X,[$.length,Q.length]]){let U=[],H=[];for(;K<q;K++)U.push({kind:"del",text:$[K]});for(;Y<W;Y++)H.push({kind:"add",text:Q[Y]});if(cF(U,H),z.push(...U,...H),q<$.length)z.push({kind:"same",text:$[q]});K=q+1,Y=W+1}return z}function lF(Z){let J=[];if(Z.created)J.push("创建");if(Z.deleted)J.push("删除");if(Z.title_changed)J.push("标题");if(Z.blocks_changed)J.push(`${Z.blocks_changed} 块修改`);if(Z.blocks_deleted)J.push(`${Z.blocks_deleted} 块删除`);return J.join("、")||"元数据"}function NQ({docId:Z,onClose:J,onReverted:$}){let{open:Q,close:X}=V8(J),[z,K]=b(null),[Y,q]=b(null),[W,U]=b(null),[H,F]=b(null),[O,N]=b(!1),[_,A]=b(!1),[L,B]=b(!1),M=i1(),C=()=>Promise.all([Z0.documentHistory(Z),Z0.getDocument(Z)]).then(([V,y])=>{K(V),q(y),U((k)=>k??V[0]?.version??null)}).catch((V)=>Q0(String(V.message)));J0(()=>{C()},[Z]),J0(()=>{if(!W)return F(null);Z0.documentAt(Z,W).then(F).catch(()=>F(null))},[Z,W]);let R=kZ(()=>(z??[]).filter((V)=>O||V.kind!=="repair"),[z,O]),I=W!=null&&z?.[0]?.version===W,P=async()=>{if(!W||!H)return;if(!await m0({title:"恢复到此版本?",message:`标题和正文将恢复到 ${new Date(H.version?aF(H.version):Date.now()).toLocaleString()} 的状态。此操作会作为一次新修订记录,任何版本都仍可从历史找回。`,confirmLabel:"恢复"}))return;B(!0);try{await Z0.revertDocument(Z,{to:W,if_match:Y?.version}),Q0("已恢复"),$(),X()}catch(y){if(y instanceof iZ&&y.code==="stale")Q0("文档刚被其他端修改,已刷新,请重试"),await C();else Q0(String(y.message))}finally{B(!1)}};return G(t,{children:[G("div",{class:"scrim"+(Q?" open":""),onClick:X},void 0,!1,void 0,this),G("div",{class:"peek hist-peek"+(Q?" open":""),children:[G("div",{class:"peek-head",children:[G("button",{class:"iconbtn",onClick:X,children:G(g,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"hist-title",children:[G(g,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"版本历史"]},void 0,!0,void 0,this),G("div",{style:{flex:1}},void 0,!1,void 0,this),G("label",{class:"hist-toggle",children:[G("input",{type:"checkbox",checked:_,onInput:()=>A(!_)},void 0,!1,void 0,this),"对比当前"]},void 0,!0,void 0,this),G("label",{class:"hist-toggle",children:[G("input",{type:"checkbox",checked:O,onInput:()=>N(!O)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"hist-split",children:[G("div",{class:"hist-list",children:[z===null&&G("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),R.map((V)=>G("div",{class:"hist-item"+(W===V.version?" sel":""),onClick:()=>U(V.version),children:[G("div",{class:"row1",children:[G("span",{class:"when",title:new Date(V.at).toLocaleString(),children:sZ(V.at)},void 0,!1,void 0,this),G(n1,{kind:V.kind},void 0,!1,void 0,this),z?.[0]?.version===V.version&&G("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"row2",children:[G("span",{class:"who",children:M(V.node_id)},void 0,!1,void 0,this),G("span",{class:"what",children:lF(V)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},V.version,!0,void 0,this))]},void 0,!0,void 0,this),G("div",{class:"hist-preview",children:[H&&G(t,{children:[G("div",{class:"hist-doc-title",children:H.title||"无标题"},void 0,!1,void 0,this),_&&!I?dF(Y?.body??"",H.body).map((V,y)=>G("div",{class:"hist-line "+V.kind,children:V.seg?G(t,{children:[V.seg[0],G("span",{class:"seg",children:V.seg[1]},void 0,!1,void 0,this),V.seg[2]]},void 0,!0,void 0,this):V.text},y,!1,void 0,this)):pF(H.body).map((V,y)=>G("div",{class:"hist-block",children:V},y,!1,void 0,this)),!H.body&&G("div",{class:"muted",children:"(空文档)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!H&&W&&G("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"hist-foot",children:G("button",{class:"btn btn-primary",disabled:!W||I||L,onClick:P,children:"恢复到此版本"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function aF(Z){return Number(Z.slice(0,15))||Date.now()}function iF(Z){if(Z.deleted)return"已删除";if(Z.created)return"创建";if(Z.moved&&!Z.diffs.length)return"调整排序";return""}var a1=3;function BQ({dbId:Z,onClose:J}){let{open:$,close:Q}=V8(J),[X,z]=b(null),[K,Y]=b(new Map),[q,W]=b(!1),[U,H]=b(new Set),F=i1();J0(()=>{Promise.all([Z0.databaseActivity(Z),Z0.listProperties(Z)]).then(([N,_])=>{z(N),Y(new Map(_.map((A)=>[A.id,A.name])))}).catch((N)=>Q0(String(N.message)))},[Z]);let O=(X??[]).filter((N)=>q||N.kind!=="repair");return G(t,{children:[G("div",{class:"scrim"+($?" open":""),onClick:Q},void 0,!1,void 0,this),G("div",{class:"peek"+($?" open":""),children:[G("div",{class:"peek-head",children:[G("button",{class:"iconbtn",onClick:Q,children:G(g,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"hist-title",children:[G(g,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"最近动态"]},void 0,!0,void 0,this),G("div",{style:{flex:1}},void 0,!1,void 0,this),G("label",{class:"hist-toggle",children:[G("input",{type:"checkbox",checked:q,onInput:()=>W(!q)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"peek-body hist-feed",children:[X===null&&G("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),X!==null&&O.length===0&&G("div",{class:"muted pad",children:"暂无动态。"},void 0,!1,void 0,this),O.map((N)=>{let _=N.record_id+N.version,A=U.has(_),L=A?N.diffs:N.diffs.slice(0,a1),B=iF(N);return G("div",{class:"hist-item static",children:[G("div",{class:"row1",children:[G("span",{class:"when",title:new Date(N.at).toLocaleString(),children:sZ(N.at)},void 0,!1,void 0,this),G(n1,{kind:N.kind},void 0,!1,void 0,this),G("span",{class:"hist-recname",children:N.record_title||N.record_id},void 0,!1,void 0,this),B&&G("span",{class:"hist-status",children:B},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"row2",children:G("span",{class:"who",children:F(N.node_id)},void 0,!1,void 0,this)},void 0,!1,void 0,this),L.length>0&&G("div",{class:"hist-fields",children:[L.map((M)=>G("div",{class:"hist-field",children:[G("span",{class:"fname",children:K.get(M.prop)??"(已删字段)"},void 0,!1,void 0,this),!N.created&&G("span",{class:"old",title:X6(M.before),children:X6(M.before)},void 0,!1,void 0,this),!N.created&&G("span",{class:"arr",children:"→"},void 0,!1,void 0,this),G("span",{class:"new",title:X6(M.after),children:X6(M.after)},void 0,!1,void 0,this)]},M.prop,!0,void 0,this)),N.diffs.length>a1&&!A&&G("button",{class:"hist-more",onClick:()=>H(new Set(U).add(_)),children:["…还有 ",N.diffs.length-a1," 项"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},_,!0,void 0,this)})]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function nF(Z,J){let $=[];if(Z.created)$.push("创建");if(Z.deleted)$.push("删除");if(Z.fields.length)$.push(Z.fields.map((Q)=>J.get(Q)??"(已删字段)").join("、"));if(Z.moved&&!$.length)$.push("排序");return $.join(";")||"元数据"}function X6(Z){if(Z===void 0)return"(空)";if(Z===null)return"(空)";if(typeof Z==="string")return Z===""?"(空)":Z;return JSON.stringify(Z)}function _Q({rec:Z,props:J,onReverted:$}){let[Q,X]=b(null),[z,K]=b(null),[Y,q]=b(!1),W=G0(new Map),[,U]=b(0),H=i1(),F=kZ(()=>new Map(J.map((B)=>[B.id,B.name])),[J]),O=()=>Z0.recordHistory(Z.id).then(X).catch((B)=>Q0(String(B.message)));J0(()=>{O()},[Z.id]);let N=async(B)=>{let M=W.current.get(B);if(M)return M;let C=await Z0.recordAt(Z.id,B);return W.current.set(B,C),U((R)=>R+1),C},_=(B,M)=>{if(z===B.version)return K(null);if(K(B.version),N(B.version),M)N(M.version)},A=async(B)=>{if(!await m0({title:"恢复到此版本?",message:"记录字段将恢复到该修订时的值。此操作会作为一次新修订记录。",confirmLabel:"恢复"}))return;try{await Z0.revertRecord(Z.id,B.version),Q0("已恢复"),W.current.clear(),$(),await O()}catch(C){Q0(String(C.message))}},L=(Q??[]).filter((B)=>Y||B.kind!=="repair");return G("div",{class:"hist-rec",children:[G("div",{class:"hist-rec-head",children:[G("span",{class:"hist-title",children:[G(g,{name:"history",cls:"ico sm"},void 0,!1,void 0,this),"修改历史"]},void 0,!0,void 0,this),G("label",{class:"hist-toggle",children:[G("input",{type:"checkbox",checked:Y,onInput:()=>q(!Y)},void 0,!1,void 0,this),"显示修复"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q===null&&G("div",{class:"muted pad",children:"加载中…"},void 0,!1,void 0,this),Q!==null&&L.length===0&&G("div",{class:"muted pad",children:"暂无历史。"},void 0,!1,void 0,this),L.map((B,M)=>{let C=L[M+1],R=W.current.get(B.version),I=C?W.current.get(C.version):void 0,P=B.created&&R?Object.keys(R.data):B.fields;return G("div",{class:"hist-item static",children:[G("div",{class:"row1",onClick:()=>_(B,C),children:[G("span",{class:"when",title:new Date(B.at).toLocaleString(),children:sZ(B.at)},void 0,!1,void 0,this),G(n1,{kind:B.kind},void 0,!1,void 0,this),M===0&&G("span",{class:"hist-now",children:"当前"},void 0,!1,void 0,this),G("div",{style:{flex:1}},void 0,!1,void 0,this),G(g,{name:z===B.version?"chevronDown":"chevron",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"row2",onClick:()=>_(B,C),children:[G("span",{class:"who",children:H(B.node_id)},void 0,!1,void 0,this),G("span",{class:"what",children:nF(B,F)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z===B.version&&G("div",{class:"hist-fields",children:[!R&&G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this),R&&P.map((V)=>{let y=I?I.data[V]:void 0,k=R.data[V];return G("div",{class:"hist-field",children:[G("span",{class:"fname",children:F.get(V)??"(已删字段)"},void 0,!1,void 0,this),C&&G("span",{class:"old",children:X6(y)},void 0,!1,void 0,this),C&&G("span",{class:"arr",children:"→"},void 0,!1,void 0,this),G("span",{class:"new",children:X6(k)},void 0,!1,void 0,this)]},V,!0,void 0,this)}),R&&M!==0&&G("button",{class:"btn btn-secondary hist-restore",onClick:()=>A(B),children:"恢复到此版本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},B.version,!0,void 0,this)})]},void 0,!0,void 0,this)}var T8="\x00__ungrouped__";function AQ({props:Z,records:J,onCommitValue:$,onCreate:Q,onOpenRecord:X,onMove:z}){let K=Z.filter((B)=>B.type==="select"||B.type==="multi_select"),[Y,q]=b(null),W=Z.find((B)=>B.id===Y)??K.find((B)=>B.type==="select")??K[0]??null;if(!W)return G("div",{class:"view-placeholder",children:"看板视图需要一个「单选」或「多选」属性来分组。请在表格视图中添加一个单选列后再切换到看板。"},void 0,!1,void 0,this);let U=Z[0],H=W.type==="multi_select",F=W.config?.options??[],O=(B)=>{let M=B.cells[W.id];if(H){let R=(Array.isArray(M)?M:[]).map(String).filter((I)=>F.includes(I));return R.length?R:[T8]}let C=M==null?"":String(M);return C&&F.includes(C)?[C]:[T8]},N=new Map;for(let B of F)N.set(B,[]);N.set(T8,[]);for(let B of J)for(let M of O(B))N.get(M)?.push(B);let _=[...F];if((N.get(T8)?.length??0)>0)_.push(T8);let A=(B,M)=>{if(B.button!==0)return;if(B.target.closest("button,a,input"))return;let C=B.currentTarget.closest(".kcard");if(!C)return;let R=C.getBoundingClientRect();B.preventDefault();let I=B.clientX-R.left,P=B.clientY-R.top,V=null;u9(B,{onStart:()=>{V=C.cloneNode(!0),V.classList.add("dragging-ghost"),V.style.width=`${R.width}px`,document.body.appendChild(V),C.classList.add("drag-source"),document.body.classList.add("table-dragging")},onMove:(y)=>{s6(V,y.clientX-I,y.clientY-P),nZ(),document.elementFromPoint(y.clientX,y.clientY)?.closest?.(".board-col")?.classList.add("drop-into")},onEnd:(y,k)=>{if(V?.remove(),C.classList.remove("drag-source"),document.body.classList.remove("table-dragging"),nZ(),!k){X(M.id);return}let j=document.elementFromPoint(y.clientX,y.clientY)?.closest?.(".board-col");if(!j)return;if(!H){let l=j.dataset.colKey,v=String(M.cells[W.id]??""),S=l===T8?null:l;if(String(S??"")!==v)$(M,W,S)}let w=document.elementFromPoint(y.clientX,y.clientY)?.closest?.(".kcard"),u=w?.dataset.recId;if(u&&u!==M.id){let l=w.getBoundingClientRect();z(M.id,u,y.clientY<l.top+l.height/2?"before":"after")}}})};return G("div",{class:"board-wrap",children:[G("div",{class:"board-bar",children:[G("button",{class:"tbtn",onClick:(B)=>b0(B,(M)=>G(t,{children:[G(i0,{children:"按属性分组"},void 0,!1,void 0,this),K.map((C)=>G(q0,{icon:T9[C.type],label:C.name,onClick:()=>{q(C.id),M()}},C.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[G(g,{name:"group",cls:"ico sm"},void 0,!1,void 0,this),"分组:",W.name]},void 0,!0,void 0,this),H&&G("span",{class:"muted",style:{fontSize:12},children:"多选分组不支持拖拽改值"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"board",children:_.map((B)=>{let M=N.get(B)??[],C=B===T8;return G("div",{class:"board-col","data-col-key":B,children:[G("div",{class:"board-col-head",children:[C?G("span",{class:"muted",style:{fontWeight:600},children:"未分组"},void 0,!1,void 0,this):G(k8,{text:B},void 0,!1,void 0,this),G("span",{class:"board-count",children:M.length},void 0,!1,void 0,this),G("div",{class:"spacer"},void 0,!1,void 0,this),G("button",{class:"iconbtn sm",title:"新建记录",onClick:()=>Q(C?{}:{[W.id]:B}),children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"board-col-body",children:[M.map((R)=>G("div",{class:"kcard","data-rec-id":R.id,onPointerDown:(I)=>A(I,R),children:[G("div",{class:"kcard-title",children:sF(R,U)||G("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Z.filter((I)=>I!==U&&I.id!==W.id&&!rF(R.cells[I.id])).slice(0,4).map((I)=>G("div",{class:"kcard-field",children:[G(g,{name:T9[I.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),G($6,{prop:I,val:R.cells[I.id]},void 0,!1,void 0,this)]},I.id,!0,void 0,this))]},R.id,!0,void 0,this)),G("button",{class:"board-add",onClick:()=>Q(C?{}:{[W.id]:B}),children:[G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},B,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function sF(Z,J){if(!J)return"";let $=Z.cells[J.id];return $==null?"":Array.isArray($)?$.join(", "):String($)}function rF(Z){return Z==null||Z===""||Array.isArray(Z)&&Z.length===0}var oF=["一","二","三","四","五","六","日"],s1=3;function LQ({props:Z,records:J,onCommitValue:$,onCreate:Q,onOpenRecord:X}){let z=Z.filter((I)=>I.type==="date"),[K,Y]=b(null),q=Z.find((I)=>I.id===K)??z[0]??null,W=I4(),[U,H]=b({y:W.getFullYear(),m:W.getMonth()}),F=G0(null);if(!q)return G("div",{class:"view-placeholder",children:"日历视图需要一个「日期」属性。请在表格视图中添加一个日期列后再切换到日历。"},void 0,!1,void 0,this);let O=Z[0],N=FQ(U.y,U.m),_=J.map((I)=>({rec:I,date:o6(I.cells[q.id])})).filter((I)=>I.date!=null),A=(I)=>_.filter((P)=>t6(P.date,I)),L=(I)=>{let P=U.m+I;H({y:U.y+Math.floor(P/12),m:(P%12+12)%12})},B=()=>H({y:W.getFullYear(),m:W.getMonth()}),M=()=>document.querySelectorAll(".cal-day.drop-into").forEach((I)=>I.classList.remove("drop-into")),C=(I,P)=>{if(I.button!==0)return;I.preventDefault(),I.stopPropagation(),F.current={id:P.id,pointerId:I.pointerId,startX:I.clientX,startY:I.clientY,active:!1,ghost:null};let V=(k)=>{let j=F.current;if(!j||j.pointerId!==k.pointerId)return;if(!j.active){if(Math.hypot(k.clientX-j.startX,k.clientY-j.startY)<4)return;j.active=!0,j.ghost=tF(R4(P,O)),document.body.classList.add("table-dragging")}if(k.preventDefault(),j.ghost)j.ghost.style.transform=`translate3d(${Math.round(k.clientX+8)}px, ${Math.round(k.clientY+8)}px, 0)`;M(),document.elementFromPoint(k.clientX,k.clientY)?.closest?.(".cal-day")?.classList.add("drop-into")},y=(k)=>{let j=F.current;if(!j||j.pointerId!==k.pointerId)return;if(removeEventListener("pointermove",V),removeEventListener("pointerup",y),removeEventListener("pointercancel",y),j.ghost?.remove(),document.body.classList.remove("table-dragging"),M(),F.current=null,!j.active){X(P.id);return}let u=document.elementFromPoint(k.clientX,k.clientY)?.closest?.(".cal-day")?.dataset.iso;if(u&&u!==String(P.cells[q.id]??""))$(P,q,u)};addEventListener("pointermove",V,{passive:!1}),addEventListener("pointerup",y),addEventListener("pointercancel",y)},R=(I)=>b0(I,(P)=>G(t,{children:[G(i0,{children:"按日期属性"},void 0,!1,void 0,this),z.map((V)=>G(q0,{icon:T9[V.type],label:V.name,onClick:()=>{Y(V.id),P()}},V.id,!1,void 0,this))]},void 0,!0,void 0,this));return G("div",{class:"cal",children:[G("div",{class:"cal-nav",children:[G("button",{class:"iconbtn",title:"上个月",onClick:()=>L(-1),children:G(g,{name:"chevron",cls:"ico flip"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"cal-title",children:[U.y," 年 ",U.m+1," 月"]},void 0,!0,void 0,this),G("button",{class:"iconbtn",title:"下个月",onClick:()=>L(1),children:G(g,{name:"chevron",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"tbtn",onClick:B,children:"今天"},void 0,!1,void 0,this),G("div",{class:"spacer"},void 0,!1,void 0,this),z.length>1&&G("button",{class:"tbtn",onClick:R,children:[G(g,{name:"calendar",cls:"ico sm"},void 0,!1,void 0,this),q.name]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"cal-grid cal-head",children:oF.map((I)=>G("div",{class:"cal-wd",children:I},I,!1,void 0,this))},void 0,!1,void 0,this),G("div",{class:"cal-body",children:N.map((I,P)=>G("div",{class:"cal-grid cal-week",children:I.map((V)=>{let y=V.getMonth()!==U.m,k=t6(V,W),j=A(V),w=r9(V);return G("div",{class:"cal-day"+(y?" dim":"")+(k?" today":""),"data-iso":w,onClick:(u)=>{if(u.target.closest(".cal-ev,.cal-add,.cal-more"))return;Q({[q.id]:w})},children:[G("div",{class:"cal-daynum",children:[G("span",{children:V.getDate()},void 0,!1,void 0,this),G("button",{class:"cal-add",title:"新建记录",onClick:(u)=>{u.stopPropagation(),Q({[q.id]:w})},children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"cal-events",children:[j.slice(0,s1).map(({rec:u})=>G("div",{class:"cal-ev",style:{["--c"]:l1(R4(u,O)||u.id)},onPointerDown:(l)=>C(l,u),children:R4(u,O)||"无标题"},u.id,!1,void 0,this)),j.length>s1&&G("button",{class:"cal-more",onClick:(u)=>{u.stopPropagation(),b0(u,(l)=>G(t,{children:[G(i0,{children:[w," · ",j.length," 条记录"]},void 0,!0,void 0,this),j.map(({rec:v})=>G(q0,{label:R4(v,O)||"无标题",onClick:()=>{l(),X(v.id)}},v.id,!1,void 0,this))]},void 0,!0,void 0,this))},children:["+",j.length-s1," 更多"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},w,!0,void 0,this)})},P,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function R4(Z,J){if(!J)return"";let $=Z.cells[J.id];return $==null?"":Array.isArray($)?$.join(", "):String($)}function tF(Z){let J=document.createElement("div");return J.className="drag-ghost",J.textContent=Z||"移动记录",document.body.appendChild(J),J}var rZ=200,e6=36,Z5=44,R9=28,PQ=3;function IQ({props:Z,records:J,onCommitValue:$,onOpenRecord:Q}){let X=Z.filter((D)=>D.type==="date"),[z,K]=b(null),[Y,q]=b(null),W=Z.find((D)=>D.id===z)??X[0]??null,U=Y==="none"?null:Z.find((D)=>D.id===Y)??X.find((D)=>D!==W)??null,H=G0(null),F=G0(null);if(!W)return G("div",{class:"view-placeholder",children:"时间轴视图需要一个「日期」属性作为开始日期。请在表格视图中添加一个日期列后再切换到时间轴。"},void 0,!1,void 0,this);let O=Z[0],N=I4(),_=J.map((D)=>{let x=o6(D.cells[W.id]),T=U?o6(D.cells[U.id]):null;return{rec:D,s:x,e:T&&x&&T<x?x:T}}),A=_.filter((D)=>D.s),L=N,B=N;if(A.length){L=A[0].s,B=A[0].s;for(let D of A){if(D.s<L)L=D.s;let x=D.e??D.s;if(x>B)B=x}}else L=F9(N,-10),B=F9(N,14);let M=F9(L,-PQ),C=F9(B,PQ),R=Q6(M,C)+1,I=rZ+R*R9,P=(D)=>rZ+D*R9,V=Q6(M,N),y=[];for(let D=0;D<R;D++)y.push(F9(M,D));let k=(D,x,T,m,a)=>{if(a===0)return;if(m==="move"){if(x)$(D,W,r9(F9(x,a)));if(U&&T)$(D,U,r9(F9(T,a)))}else if(m==="l"&&x){let h=F9(x,a);$(D,W,r9(T&&h>T?T:h))}else if(m==="r"&&U&&T){let h=F9(T,a);$(D,U,r9(x&&h<x?x:h))}},j=(D,x)=>{let T=F.current;if(!T)return;T.style.left=D+"px",T.style.display="block";let m=T.firstElementChild;if(m)m.textContent=x},w=()=>{if(F.current)F.current.style.display="none"},u=(D,x,T,m,a,h)=>{if(D.button!==0||!T)return;D.preventDefault(),D.stopPropagation();let{offsetLeft:s,offsetWidth:E}=h,p=!1,X0=a==="move"?null:D.currentTarget;X0?.classList.add("dragging"),H.current={pointerId:D.pointerId,startX:D.clientX};let F0=(C0)=>{let p0=H.current;if(!p0||p0.pointerId!==C0.pointerId)return;let w0=Math.round((C0.clientX-p0.startX)/R9);if(Math.abs(C0.clientX-p0.startX)>3)p=!0;let o0,c0;if(a==="move"){let R0=s+w0*R9;h.style.left=R0+"px",o0=R0,c0=F9(T,w0)}else if(a==="l"){let R0=s+w0*R9;h.style.left=R0+"px",h.style.width=Math.max(R9,E-w0*R9)+"px",o0=R0,c0=F9(T,w0)}else{let R0=Math.max(R9,E+w0*R9);h.style.width=R0+"px",o0=s+R0,c0=F9(T,Math.round(R0/R9)-1)}j(o0,r9(c0))},j0=(C0)=>{let p0=H.current;if(!p0||p0.pointerId!==C0.pointerId)return;removeEventListener("pointermove",F0),removeEventListener("pointerup",j0),removeEventListener("pointercancel",j0),H.current=null,X0?.classList.remove("dragging"),w();let w0=Math.round((C0.clientX-p0.startX)/R9);if(!p){Q(x.id);return}k(x,T,m,a,w0)};addEventListener("pointermove",F0,{passive:!1}),addEventListener("pointerup",j0),addEventListener("pointercancel",j0)},l=(D,x)=>{if($(D,W,r9(x)),U)$(D,U,r9(x))},v=(D,x)=>{let T=D.currentTarget.closest(".tl-row");if(!T)return;let m=D.clientX-T.getBoundingClientRect().left;if(m<rZ)return;let a=Math.max(0,Math.min(R-1,Math.round((m-rZ)/R9)));l(x,F9(M,a))};return G("div",{class:"tl",children:[G("div",{class:"tl-toolbar",children:G("button",{class:"tbtn",onClick:(D)=>b0(D,(x)=>G(t,{children:[G(i0,{children:"开始日期"},void 0,!1,void 0,this),X.map((T)=>G(q0,{icon:T9[T.type],label:T.name,checked:T===W,onClick:()=>{K(T.id),x()}},T.id,!1,void 0,this)),G(d0,{},void 0,!1,void 0,this),G(i0,{children:"结束日期(可选)"},void 0,!1,void 0,this),G(q0,{icon:"x",label:"无(里程碑)",checked:!U,onClick:()=>{q("none"),x()}},void 0,!1,void 0,this),X.map((T)=>G(q0,{icon:T9[T.type],label:T.name,checked:T===U,onClick:()=>{q(T.id),x()}},T.id,!1,void 0,this))]},void 0,!0,void 0,this)),children:[G(g,{name:"timeline",cls:"ico sm"},void 0,!1,void 0,this),W.name,U?` → ${U.name}`:"(里程碑)"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G("div",{class:"tl-scroll",children:G("div",{class:"tl-canvas",style:{width:I,height:Z5+_.length*e6+8},children:[G("div",{class:"tl-axis",style:{height:Z5},children:[G("div",{class:"tl-corner",style:{width:rZ},children:"记录"},void 0,!1,void 0,this),y.map((D,x)=>{let T=D.getDate()===1;return G("div",{class:"tl-tick"+(T?" mstart":"")+(Q6(D,N)===0?" today":""),style:{left:P(x),width:R9},children:[T&&G("span",{class:"tl-month",children:[D.getMonth()+1,"月"]},void 0,!0,void 0,this),G("span",{class:"tl-dnum",children:D.getDate()},void 0,!1,void 0,this)]},x,!0,void 0,this)})]},void 0,!0,void 0,this),_.map(({rec:D,s:x,e:T},m)=>{let a=x?Q6(M,x):0,h=x&&T?Q6(x,T)+1:1;return G("div",{class:"tl-row",style:{top:Z5+m*e6,height:e6},children:[G("div",{class:"tl-rowlabel",style:{width:rZ},children:MQ(D,O)||G("span",{class:"muted",children:"无标题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!x?G("div",{class:"tl-track-empty",style:{left:rZ},onClick:(s)=>v(s,D),title:"点击空白处排期",children:G("button",{class:"tl-schedule",style:{left:rZ+8},onClick:(s)=>{s.stopPropagation(),l(D,N)},children:"未排期 · 排到今天"},void 0,!1,void 0,this)},void 0,!1,void 0,this):T?G("div",{class:"tl-item",style:{left:P(a),width:h*R9},onPointerDown:(s)=>u(s,D,x,T,"move",s.currentTarget),children:[G("span",{class:"tl-h l",onPointerDown:(s)=>u(s,D,x,T,"l",s.currentTarget.parentElement)},void 0,!1,void 0,this),G("span",{class:"tl-label",children:MQ(D,O)},void 0,!1,void 0,this),G("span",{class:"tl-h r",onPointerDown:(s)=>u(s,D,x,T,"r",s.currentTarget.parentElement)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):G("div",{class:"tl-milestone",style:{left:P(a)},title:r9(x),onPointerDown:(s)=>u(s,D,x,null,"move",s.currentTarget)},void 0,!1,void 0,this)]},D.id,!0,void 0,this)}),V>=0&&V<R&&G("div",{class:"tl-today",style:{left:P(V)+R9/2,height:Z5+_.length*e6}},void 0,!1,void 0,this),G("div",{class:"tl-guide",ref:F,style:{display:"none",height:Z5+_.length*e6},children:G("span",{class:"tl-guide-label"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function MQ(Z,J){if(!J)return"";let $=Z.cells[J.id];return $==null?"":Array.isArray($)?$.join(", "):String($)}function SZ(Z){return{r0:Math.min(Z.a.r,Z.b.r),r1:Math.max(Z.a.r,Z.b.r),c0:Math.min(Z.a.c,Z.b.c),c1:Math.max(Z.a.c,Z.b.c)}}function C4(Z,J,$){return J>=Z.r0&&J<=Z.r1&&$>=Z.c0&&$<=Z.c1}function V4(Z,J,$){if(!C4(Z,J,$))return;let Q=[];if(J===Z.r0)Q.push("inset 0 2px 0 0 var(--accent)");if(J===Z.r1)Q.push("inset 0 -2px 0 0 var(--accent)");if($===Z.c0)Q.push("inset 2px 0 0 0 var(--accent)");if($===Z.c1)Q.push("inset -2px 0 0 0 var(--accent)");return Q.join(",")||void 0}function RQ(Z,J,$,Q,X){let K={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]}[J];if(!K||Q<1||X<1)return null;let Y=(W,U)=>Math.max(0,Math.min(U,W)),q={r:Y(Z.b.r+K[0],Q-1),c:Y(Z.b.c+K[1],X-1)};return $?{a:Z.a,b:q}:{a:q,b:q}}function y4(Z,J){return Z.map(($,Q)=>$.map((X,z)=>C4(J,Q,z)?"":X))}function k4(Z,J){let $=[];for(let Q=J.r0;Q<=J.r1;Q++){let X=Z[Q]??[],z=[];for(let K=J.c0;K<=J.c1;K++)z.push(X[K]??"");$.push(z.join("\t"))}return $.join(`
|
|
37
|
+
`)}var eF=[["表格","list"],["看板","group"],["日历","calendar"],["时间轴","timeline"]];function VQ({db:Z,onError:J}){let[$,Q]=b([]),[X,z]=b([]),K=J6(),[Y,q]=b(0),[W,U]=b(new Set),[H,F]=b(null),[O,N]=b(null),_=G0(O);_.current=O;let[A,L]=b(null),[B,M]=b(null),C=(f)=>f.config?.width??180,R=G0(!1),I=G0(null),P=G0(null),[V,y]=b(null),[k,j]=b(null),w=G0(null),u=(f)=>{if(document.body.classList.contains("table-dragging"))return;let n=P.current,z0=I.current;if(!n||!z0)return;let Y0=V&&z0.querySelector(`tbody tr[data-row-id="${V.id}"]`);if(Y0){let c=Y0.getBoundingClientRect();if(f>=c.top&&f<c.bottom)return}let r=n.getBoundingClientRect().top;for(let c of Array.from(z0.querySelectorAll("tbody tr[data-row-id]"))){let o=c.getBoundingClientRect();if(f>=o.top&&f<o.bottom){y({id:c.dataset.rowId,top:o.top-r,height:o.height});return}}if(V)y(null)},l=(f)=>f().catch((n)=>J(String(n.message))),v=async()=>{let[f,n]=await Promise.all([Z0.listProperties(Z.id),Z0.listRecords(Z.id)]);Q(f),z(n)};J0(()=>{U(new Set),L(null),q(0),M(null),N(null),v().catch((f)=>J(String(f.message)))},[Z.id]),J0(()=>{let f=(n)=>{if(!n.detail?.datasets?.some((Y0)=>Y0==="records"||Y0==="properties"))return;if(_.current)return;v().catch(()=>{})};return document.addEventListener(I8,f),()=>document.removeEventListener(I8,f)},[Z.id]);let S=(f,n,z0)=>{N(null),z((Y0)=>Y0.map((r)=>r.id===f.id?{...r,cells:{...r.cells,[n.id]:z0},values:{...r.values,[n.name]:z0}}:r)),Z0.updateRecord(f.id,{[n.id]:z0}).then((Y0)=>z((r)=>r.map((c)=>c.id===Y0.id?Y0:c))).catch((Y0)=>{J(String(Y0.message)),v().catch((r)=>J(String(r.message)))})},D=(f)=>l(async()=>{let n=await Z0.createRecord(Z.id,f);z((z0)=>[...z0,n])}),x=()=>D({}),T=(f)=>l(async()=>{if(await Promise.all(f.map((n)=>Z0.deleteRecord(n))),z((n)=>n.filter((z0)=>!f.includes(z0.id))),U(new Set),A&&f.includes(A))L(null)}),m=(f)=>l(async()=>{let n=await Z0.createRecord(Z.id,f.cells);z((z0)=>{let Y0=z0.findIndex((r)=>r.id===f.id);return[...z0.slice(0,Y0+1),n,...z0.slice(Y0+1)]})}),a=(f,n,z0)=>{if(f===n||H)return;z((Y0)=>CQ(Y0,f,n,z0))},h=(f,n,z0)=>{if(f===n||H)return;a(f,n,z0),Z0.moveRecord(f,n,z0).catch((Y0)=>{J(String(Y0.message)),v().catch((r)=>J(String(r.message)))})},s=(f,n,z0)=>{if(f===n)return;Q((Y0)=>{let r=CQ(Y0,f,n,z0).map((W0,A0)=>({...W0,position:A0+1})),c=new Map(Y0.map((W0)=>[W0.id,W0.position])),o=r.filter((W0)=>c.get(W0.id)!==W0.position);if(o.length)Promise.all(o.map((W0)=>Z0.updateProperty(W0.id,{position:W0.position}))).catch((W0)=>{J(String(W0.message)),v().catch((A0)=>J(String(A0.message)))});return r})},E=(f,n)=>{let z0=P.current,Y0=I.current;if(!z0||!Y0)return null;let r=Array.from(Y0.querySelectorAll("tbody tr[data-row-id]"));if(!r.length)return null;let c=z0.getBoundingClientRect().top,o=r[r.length-1],W0="after";for(let D0 of r){let y0=D0.getBoundingClientRect();if(f<y0.top+y0.height/2){o=D0,W0="before";break}if(f<=y0.bottom){o=D0,W0="after";break}}if(o.dataset.rowId===n)return null;let A0=o.getBoundingClientRect();return{id:o.dataset.rowId,where:W0,y:(W0==="before"?A0.top:A0.bottom)-c}},p=(f,n)=>{if(H||f.button!==0)return;let z0=I.current?.querySelector(`tr[data-row-id="${n}"]`);if(!z0)return;f.preventDefault();let Y0=z0.getBoundingClientRect(),r=f.clientX-Y0.left,c=f.clientY-Y0.top,o=null;u9(f,{onStart:()=>{o=w1("row-ghost",Y0,JO(z0)),z0.classList.add("drag-source"),document.body.classList.add("table-dragging")},onMove:(W0)=>{s6(o,W0.clientX-r,W0.clientY-c);let A0=E(W0.clientY,n);w.current=A0,j(A0?A0.y:null)},onEnd:(W0,A0)=>{o?.remove(),z0.classList.remove("drag-source"),document.body.classList.remove("table-dragging");let D0=w.current;if(w.current=null,j(null),A0&&D0)h(n,D0.id,D0.where)}})},X0=(f,n)=>{if(f.button!==0)return;let z0=f.currentTarget.closest("th");if(!z0)return;e2(f,{source:z0,axis:"x",ghostCls:"col-ghost",ghostText:z0.textContent?.trim()||"移动属性",targetSelector:"th[data-col-id]",isSelf:(Y0)=>Y0.dataset.colId===n.id,onActivate:()=>{R.current=!0},onDrop:(Y0,r)=>s(n.id,Y0.dataset.colId,r),onFinish:(Y0)=>{if(Y0)setTimeout(()=>{R.current=!1},0)}})},F0=(f,n,z0)=>{if(f.button!==0)return;if(f.target.closest("input,button,a"))return;let Y0=f.shiftKey&&B?B.a:{r:n,c:z0};M({a:Y0,b:{r:n,c:z0}}),u9(f,{onStart:()=>document.body.classList.add("cell-selecting"),onMove:(r)=>{let c=document.elementFromPoint(r.clientX,r.clientY)?.closest?.("td.cell-td");if(!c||c.dataset.r==null)return;M({a:Y0,b:{r:Number(c.dataset.r),c:Number(c.dataset.c)}})},onEnd:()=>document.body.classList.remove("cell-selecting")})},j0=(f)=>f!=="checkbox"&&f!=="select"&&f!=="multi_select",C0=(f,n,z0)=>Math.max(n,Math.min(z0,f)),p0=(f,n)=>requestAnimationFrame(()=>{document.querySelector(`td.cell-td[data-r="${f}"][data-c="${n}"]`)?.scrollIntoView({block:"nearest",inline:"nearest"})}),w0=(f,n)=>{M({a:{r:f,c:n},b:{r:f,c:n}}),p0(f,n)},o0=(f,n,z0)=>{let Y0=e[f],r=$[n];if(!Y0||!r)return;if(w0(f,n),j0(r.type))N({rec:Y0.id,prop:r.id,seed:z0})},c0=(f,n,z0)=>{let Y0=n+z0;if(Y0<0||Y0>=$.length){w0(f,n);return}o0(f,Y0)},R0=(f)=>l(async()=>{if(!B)return;let{r0:n,r1:z0,c0:Y0,c1:r}=SZ(B),c=$.slice(Y0,r+1),o=e.slice(n,z0+1),W0=await Promise.all(o.map((A0)=>{let D0={};for(let y0 of c)D0[y0.id]=f(y0);return Z0.updateRecord(A0.id,D0)}));z((A0)=>A0.map((D0)=>W0.find((y0)=>y0.id===D0.id)??D0))}),d=async()=>{if(!B)return;let{r0:f,r1:n,c0:z0,c1:Y0}=SZ(B),r=$.slice(z0,Y0+1),c=e.slice(f,n+1).map((o)=>r.map((W0)=>HQ(W0,o.cells[W0.id])).join("\t")).join(`
|
|
38
|
+
`);try{await navigator.clipboard.writeText(c)}catch{}},i=H?$.find((f)=>f.id===H.id):void 0,K0=(f)=>{let n=f==null||f===""?NaN:Number(f);return Number.isFinite(n)?n:Number.NEGATIVE_INFINITY},e=H?[...X].sort((f,n)=>{let z0=f.cells[H.id],Y0=n.cells[H.id],r=i?.type==="number"?K0(z0)-K0(Y0):String(z0??"").localeCompare(String(Y0??""),"zh");return(H.desc?-1:1)*r}):X,P0=X.find((f)=>f.id===A)??null,_0=B?SZ(B):null;return J0(()=>{let f=(n)=>{if(!B||O)return;let z0=document.activeElement,Y0=(z0?.tagName||"").toLowerCase();if(Y0==="input"||Y0==="textarea"||z0?.isContentEditable)return;let r=B.a.r===B.b.r&&B.a.c===B.b.c,{r:c,c:o}=B.b,W0={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]};if(n.key in W0){n.preventDefault();let[A0,D0]=W0[n.key],y0={r:C0(c+A0,0,e.length-1),c:C0(o+D0,0,$.length-1)};M(n.shiftKey?{a:B.a,b:y0}:{a:y0,b:y0}),p0(y0.r,y0.c)}else if((n.metaKey||n.ctrlKey)&&n.key.toLowerCase()==="c")n.preventDefault(),d();else if(n.key==="Escape")M(null);else if(n.key==="Delete"||n.key==="Backspace")n.preventDefault(),R0(()=>null);else if(r&&(n.key==="Enter"||n.key==="F2"))n.preventDefault(),o0(c,o);else if(r&&n.key.length===1&&!n.metaKey&&!n.ctrlKey&&!n.altKey&&!n.isComposing&&n.keyCode!==229){let A0=$[o];if(!A0||!j0(A0.type)||A0.type==="date")return;if(A0.type==="number"&&!/[0-9.+-]/.test(n.key))return;n.preventDefault(),o0(c,o,n.key)}};return addEventListener("keydown",f),()=>removeEventListener("keydown",f)},[B,O,X,$,H]),G("div",{class:"db",onPointerDown:(f)=>{if(!f.target.closest("td.cell-td, .cellselbar"))M(null)},children:[G("div",{class:"db-head",children:[G("div",{class:"db-icon",children:Z.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),G("div",{children:G("div",{class:"db-title",contentEditable:!0,onBlur:(f)=>{let n=f.target.textContent?.trim()||Z.name;if(n!==Z.name)l(async()=>{await Z0.updateDatabase(Z.id,{name:n})})},children:Z.name},void 0,!1,void 0,this)},void 0,!1,void 0,this),K.has(Z.id)&&G("span",{class:"db-title-share",title:"已分享 · 管理分享",onClick:()=>BZ({kind:"database",ref:Z.id,title:Z.name}),children:G(g,{name:"link"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"views",children:[eF.map(([f,n],z0)=>G("div",{class:"view-tab"+(z0===Y?" active":""),onClick:()=>q(z0),children:[G(g,{name:n},void 0,!1,void 0,this),f]},f,!0,void 0,this)),G("div",{class:"spacer",style:{flex:1}},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:x,children:[G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y===0&&G("div",{class:"toolbar",children:G("button",{class:"tbtn",onClick:(f)=>YO(f,$,H,F),children:[G(g,{name:"sort",cls:"ico sm"},void 0,!1,void 0,this),"排序"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Y===1?G(AQ,{props:$,records:X,onCommitValue:S,onCreate:D,onOpenRecord:L,onMove:h},void 0,!1,void 0,this):Y===2?G(LQ,{props:$,records:X,onCommitValue:S,onCreate:D,onOpenRecord:L},void 0,!1,void 0,this):Y===3?G(IQ,{props:$,records:X,onCommitValue:S,onCreate:D,onOpenRecord:L},void 0,!1,void 0,this):G("div",{class:"gridhost",ref:P,onMouseMove:(f)=>u(f.clientY),onMouseLeave:()=>{if(!document.body.classList.contains("table-dragging"))y(null)},children:[V&&G("button",{class:"rowgrip-ext"+(H?" is-disabled":""),style:{top:V.top+V.height/2},title:H?"清除排序后可拖拽移动":"拖拽移动","aria-disabled":H?"true":void 0,onPointerDown:(f)=>p(f,V.id),children:G(g,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),k!=null&&G("div",{class:"rowdrop",style:{top:k}},void 0,!1,void 0,this),G("div",{class:"tablewrap",children:[G("div",{class:"tablescroll",children:G("table",{class:"grid",ref:I,children:[G("colgroup",{children:[G("col",{style:{width:38}},void 0,!1,void 0,this),$.map((f)=>G("col",{"data-col-id":f.id,style:{width:C(f)}},f.id,!1,void 0,this)),G("col",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("thead",{children:G("tr",{children:[G("th",{class:"selcell",children:G("input",{type:"checkbox",checked:W.size>0&&W.size===X.length,onChange:(f)=>U(f.target.checked?new Set(X.map((n)=>n.id)):new Set)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$.map((f)=>G("th",{"data-col-id":f.id,children:[G("div",{class:"colhead",onPointerDown:(n)=>X0(n,f),onClick:(n)=>{if(R.current){R.current=!1,n.preventDefault(),n.stopPropagation();return}XO(n,f,Z.id,v,$)},children:[G("span",{class:"ti",children:G(g,{name:T9[f.type]??"text",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"nm",children:f.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G($O,{colId:f.id,startWidth:C(f),onCommit:(n)=>{Q((z0)=>z0.map((Y0)=>Y0.id===f.id?{...Y0,config:{...Y0.config??{},width:n}}:Y0)),Z0.setColumnWidth(f.id,n).catch((z0)=>{J(String(z0.message)),v().catch(()=>{})})}},void 0,!1,void 0,this)]},f.id,!0,void 0,this)),G("th",{class:"addcol",children:G("div",{class:"colhead",title:"新建属性",onClick:(f)=>KO(f,Z.id,$,v),children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G("tbody",{children:e.map((f,n)=>G("tr",{"data-row-id":f.id,class:W.has(f.id)?"sel":"",children:[G("td",{class:"selcell",children:G("input",{type:"checkbox",checked:W.has(f.id),onChange:()=>U((z0)=>{let Y0=new Set(z0);return Y0.has(f.id)?Y0.delete(f.id):Y0.add(f.id),Y0})},void 0,!1,void 0,this)},void 0,!1,void 0,this),$.map((z0,Y0)=>{let r=_0!=null&&n>=_0.r0&&n<=_0.r1&&Y0>=_0.c0&&Y0<=_0.c1,c=_0?V4(_0,n,Y0):void 0;return G("td",{class:"cell-td"+(r?" cellsel":""),"data-r":n,"data-c":Y0,style:c?{boxShadow:c}:void 0,onPointerDown:(o)=>F0(o,n,Y0),children:G(ZO,{rec:f,prop:z0,first:Y0===0,editing:O?.rec===f.id&&O?.prop===z0.id,seed:O?.rec===f.id&&O?.prop===z0.id?O.seed:void 0,onEdit:()=>{w0(n,Y0),N({rec:f.id,prop:z0.id})},onCommit:(o)=>S(f,z0,o),onDone:(o)=>{if(N(null),o.reason!=="cancel"&&o.changed)S(f,z0,o.value);if(o.reason==="tab")c0(n,Y0,1);else if(o.reason==="shifttab")c0(n,Y0,-1);else if(o.reason==="enter")w0(C0(n+1,0,e.length-1),Y0)},onOpen:()=>L(f.id),onRowMenu:(o)=>GO(o,f,()=>L(f.id),()=>m(f),()=>T([f.id]))},void 0,!1,void 0,this)},z0.id,!1,void 0,this)}),G("td",{class:"filler"},void 0,!1,void 0,this)]},f.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G("div",{class:"addrow",onClick:x,children:[G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建记录"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"gridfoot",children:[G("span",{children:["共 ",X.length," 条记录"]},void 0,!0,void 0,this),G("span",{children:[$.length," 个属性"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W.size>0&&G("div",{class:"selbar",children:[G("span",{class:"cnt",children:[W.size," 已选"]},void 0,!0,void 0,this),G("button",{onClick:()=>l(async()=>{for(let f of W)await m(X.find((n)=>n.id===f))}),children:[G(g,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),G("button",{class:"del",onClick:async()=>{if(await m0({title:"删除记录?",message:`确定删除选中的 ${W.size} 条记录?`,confirmLabel:"删除",danger:!0}))T([...W])},children:[G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"删除"]},void 0,!0,void 0,this),G("button",{onClick:()=>U(new Set),children:G(g,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_0&&(_0.r0!==_0.r1||_0.c0!==_0.c1)&&G("div",{class:"selbar cellselbar",children:[G("span",{class:"cnt",children:[(_0.r1-_0.r0+1)*(_0.c1-_0.c0+1)," 个单元格"]},void 0,!0,void 0,this),G("button",{onClick:d,children:[G(g,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"复制"]},void 0,!0,void 0,this),G("button",{onClick:()=>R0((f)=>e[_0.r0].cells[f.id]??null),children:[G(g,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this),"填充"]},void 0,!0,void 0,this),G("button",{class:"del",onClick:()=>R0(()=>null),children:[G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"清空"]},void 0,!0,void 0,this),G("button",{onClick:()=>M(null),children:G(g,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P0&&G(qO,{db:Z,props:$,rec:P0,onClose:()=>L(null),onCommit:(f,n)=>S(P0,f,n),onDelete:()=>T([P0.id]),onDuplicate:()=>m(P0),onReverted:()=>v().catch((f)=>J(String(f.message)))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function yQ({prop:Z,val:J,seed:$,captureTab:Q,onDone:X}){let z=Array.isArray(J)?J.join(", "):J==null?"":String(J),K=G0(null),Y=G0(!1);J0(()=>{let W=K.current;W.value=$??z,W.focus();try{W.setSelectionRange(W.value.length,W.value.length)}catch{}},[]);let q=(W)=>{if(Y.current)return;if(Y.current=!0,W==="cancel")return X({reason:"cancel"});let U=K.current.value;X({reason:W,changed:U!==z,value:UQ(Z.type,U)})};return G("input",{ref:K,class:"inlineedit",type:Z.type==="number"?"number":Z.type==="date"?"date":"text",onBlur:()=>q("blur"),onKeyDown:(W)=>{if(W.isComposing||W.keyCode===229)return;if(W.key==="Enter")W.preventDefault(),q("enter");else if(W.key==="Escape")W.preventDefault(),W.stopPropagation(),q("cancel");else if(W.key==="Tab"&&Q)W.preventDefault(),q(W.shiftKey?"shifttab":"tab")}},void 0,!1,void 0,this)}function ZO({rec:Z,prop:J,first:$,editing:Q,seed:X,onEdit:z,onCommit:K,onDone:Y,onOpen:q,onRowMenu:W}){let U=Z.cells[J.id];if(J.type==="checkbox")return G("div",{class:"cell center",children:G("input",{type:"checkbox",checked:!!U,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>K(!U)},void 0,!1,void 0,this)},void 0,!1,void 0,this);let H=(N)=>{if(J.type==="select"||J.type==="multi_select")kQ(N,J,U,K);else z()},F=G($6,{prop:J,val:U},void 0,!1,void 0,this);return G(t,{children:[$?G("div",{class:"cell",onDblClick:H,onContextMenu:(N)=>{N.preventDefault(),W(N)},children:G("div",{class:"firstcell",children:[F,G("div",{class:"rowactions",children:G("button",{class:"rowopen",title:"打开",onClick:(N)=>{N.stopPropagation(),q()},children:G(g,{name:"openPeek",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this):G("div",{class:"cell",onDblClick:H,children:F},void 0,!1,void 0,this),Q&&J.type!=="select"&&J.type!=="multi_select"&&G("div",{class:"celledit",children:G(yQ,{prop:J,val:U,seed:X,captureTab:!0,onDone:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function CQ(Z,J,$,Q){let X=[...Z],z=X.findIndex((q)=>q.id===J);if(z<0)return Z;let K=X.splice(z,1)[0],Y=X.findIndex((q)=>q.id===$);if(Y<0)return Z;if(Q==="after")Y+=1;return X.splice(Y,0,K),X}function JO(Z){return Array.from(Z.querySelectorAll("td")).map(($)=>($.textContent??"").trim()).filter(Boolean).join(" ")||"移动记录"}function $O({colId:Z,startWidth:J,onCommit:$}){return G("div",{class:"col-resizer",onPointerDown:(X)=>{X.preventDefault(),X.stopPropagation(),B4(X,{col:document.querySelector(`col[data-col-id="${CSS.escape(Z)}"]`),startWidth:J,min:80,onDone:$})}},void 0,!1,void 0,this)}function kQ(Z,J,$,Q){Z.stopPropagation();let X=J.type==="multi_select",z=J.config?.options??[];b0(Z,(K)=>G(QO,{multi:X,options:z,value:$,onPick:(Y)=>{if(Q(Y),!X)K()}},void 0,!1,void 0,this))}function QO({multi:Z,options:J,value:$,onPick:Q}){let[X,z]=b($),K=(q)=>Z?Array.isArray(X)?X.includes(q):!1:X===q,Y=(q)=>{if(Z){let W=new Set(Array.isArray(X)?X:[]);W.has(q)?W.delete(q):W.add(q);let U=[...W];z(U),Q(U)}else z(q),Q(q)};return G(t,{children:[G(i0,{children:Z?"多选 — 点选切换":"单选"},void 0,!1,void 0,this),J.map((q)=>G("button",{class:"item",onClick:()=>Y(q),children:[G(k8,{text:q},void 0,!1,void 0,this),K(q)&&G("span",{class:"chk",children:G(g,{name:"check",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},q,!0,void 0,this)),Z&&Array.isArray(X)&&X.length>0&&G(t,{children:[G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"x",label:"清空",onClick:()=>{z([]),Q([])}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function XO(Z,J,$,Q,X){Z.stopPropagation(),b0(Z,(z)=>G(zO,{prop:J,dbId:$,reload:Q,close:z,allProps:X},void 0,!1,void 0,this),{minWidth:252})}function zO({prop:Z,dbId:J,reload:$,close:Q,allProps:X}){let[z,K]=b(Z.name),[Y,q]=b(Z.type),[W,U]=b(Z.config?.options??[]),H=(N)=>Z0.updateProperty(Z.id,N).then($).catch((_)=>Q0(`更新属性失败:${_.message}`)),F=(N)=>{q(N);let _=W;if((N==="select"||N==="multi_select")&&_.length===0)_=["选项 1","选项 2"],U(_);H({type:N,...N==="select"||N==="multi_select"?{config:{options:_}}:{}})},O=(N)=>{U(N),H({config:{options:N}})};return G(t,{children:[G("input",{class:"field",value:z,onInput:(N)=>K(N.target.value),onBlur:()=>z&&z!==Z.name&&H({name:z}),onKeyDown:(N)=>{if(N.key==="Enter")N.target.blur(),Q()}},void 0,!1,void 0,this),G(i0,{children:"属性类型"},void 0,!1,void 0,this),G("div",{class:"typegrid",children:Object.keys(t8).map((N)=>G("button",{class:"item"+(N===Y?" sel":""),onClick:()=>F(N),children:[G("span",{class:"lico",children:G(g,{name:T9[N],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"d",children:t8[N].t},void 0,!1,void 0,this)]},N,!0,void 0,this))},void 0,!1,void 0,this),(Y==="select"||Y==="multi_select")&&G(t,{children:[G(d0,{},void 0,!1,void 0,this),G(i0,{children:"选项"},void 0,!1,void 0,this),W.map((N,_)=>G("div",{class:"optrow",children:[G(k8,{text:N},void 0,!1,void 0,this),G("button",{class:"x",onClick:()=>O(W.filter((A,L)=>L!==_)),children:G(g,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},N+_,!0,void 0,this)),G(q0,{icon:"plus",label:"添加选项",onClick:()=>O([...W,"选项 "+(W.length+1)])},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{Q(),Z0.createProperty({db:J,name:TQ("新属性",X),type:"text"}).then($).catch((N)=>Q0(`新建属性失败:${N.message}`))}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除属性",danger:!0,onClick:async()=>{if(Q(),await m0({title:"删除属性?",message:`「${Z.name}」及其所有单元格数据将被移除。`,confirmLabel:"删除",danger:!0}))Z0.deleteProperty(Z.id).then($)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function TQ(Z,J){let $=new Set(J.map((Q)=>Q.name.toLowerCase()));if(!$.has(Z.toLowerCase()))return Z;for(let Q=2;;Q++){let X=`${Z} ${Q}`;if(!$.has(X.toLowerCase()))return X}}function KO(Z,J,$,Q){Z.stopPropagation(),b0(Z,(X)=>G(t,{children:[G(i0,{children:"新建属性 · 选择类型"},void 0,!1,void 0,this),G("div",{class:"typegrid",children:Object.keys(t8).map((z)=>G("button",{class:"item",onClick:()=>{X();let K=z==="select"||z==="multi_select"?{options:["选项 1","选项 2"]}:void 0;Z0.createProperty({db:J,name:TQ(t8[z].t,$),type:z,config:K}).then(Q).catch((Y)=>Q0(`新建属性失败:${Y.message}`))},children:[G("span",{class:"lico",children:G(g,{name:T9[z],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"d",children:t8[z].t},void 0,!1,void 0,this)]},z,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function YO(Z,J,$,Q){b0(Z,(X)=>G(t,{children:[G(i0,{children:"排序依据"},void 0,!1,void 0,this),J.map((z)=>G(q0,{icon:T9[z.type],label:z.name,onClick:()=>{Q({id:z.id,desc:$?.id===z.id?!$.desc:!1}),X()}},z.id,!1,void 0,this)),$&&G(t,{children:[G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"x",label:"清除排序",onClick:()=>{Q(null),X()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this))}function GO(Z,J,$,Q,X){Z.stopPropagation(),b0(Z,(z)=>G(t,{children:[G(q0,{icon:"cornerUpRight",label:"打开记录",onClick:()=>{z(),$()}},void 0,!1,void 0,this),G(q0,{icon:"copy",label:"复制记录",onClick:()=>{z(),Q()}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(z(),await m0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))X()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}function qO({db:Z,props:J,rec:$,onClose:Q,onCommit:X,onDelete:z,onDuplicate:K,onReverted:Y}){let[q,W]=b(null),[U,H]=b(!1),{open:F,close:O}=V8(Q),N=J[0];return G(t,{children:[G("div",{class:"scrim"+(F?" open":""),onClick:O},void 0,!1,void 0,this),G("div",{class:"peek"+(F?" open":""),children:[G("div",{class:"peek-head",children:[G("button",{class:"iconbtn",onClick:O,children:G(g,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),U&&G("button",{class:"iconbtn",title:"返回字段",onClick:()=>H(!1),children:G(g,{name:"arrowLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{style:{flex:1}},void 0,!1,void 0,this),G("button",{class:"iconbtn",title:"更多",onClick:(_)=>b0(_,(A)=>G(t,{children:[G(q0,{icon:"history",label:"版本历史",checked:U,onClick:()=>{A(),H(!U)}},void 0,!1,void 0,this),G(q0,{icon:"copy",label:"复制记录",onClick:()=>{A(),K()}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除记录",danger:!0,onClick:async()=>{if(A(),await m0({title:"删除记录?",message:"确定删除这条记录?",confirmLabel:"删除",danger:!0}))z()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)),children:G(g,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"peek-body",children:U?G(_Q,{rec:$,props:J,onReverted:Y},void 0,!1,void 0,this):G(t,{children:[G("h2",{contentEditable:!0,onBlur:(_)=>N&&X(N,_.target.textContent??""),children:N?String($.cells[N.id]??"无标题"):"无标题"},void 0,!1,void 0,this),J.map((_)=>G("div",{class:"proprow",children:[G("div",{class:"k",children:[G(g,{name:T9[_.type]??"text",cls:"ico sm"},void 0,!1,void 0,this),G("span",{children:_.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G(WO,{prop:_,rec:$,editing:q===_.id,onEdit:()=>W(_.id),onCommit:(A)=>{X(_,A),W(null)},onCloseEdit:()=>W(null)},void 0,!1,void 0,this)]},_.id,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function WO({prop:Z,rec:J,editing:$,onEdit:Q,onCommit:X,onCloseEdit:z}){let K=J.cells[Z.id];if(Z.type==="checkbox")return G("div",{class:"v",children:G("input",{type:"checkbox",checked:!!K,style:{width:16,height:16,accentColor:"var(--accent)"},onChange:()=>X(!K)},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(Z.type==="select"||Z.type==="multi_select")return G("div",{class:"v",onClick:(Y)=>kQ(Y,Z,K,X),children:G($6,{prop:Z,val:K},void 0,!1,void 0,this)},void 0,!1,void 0,this);if($)return G("div",{class:"v",children:G(yQ,{prop:Z,val:K,onDone:(Y)=>{if(Y.reason!=="cancel"&&Y.changed)X(Y.value);else z()}},void 0,!1,void 0,this)},void 0,!1,void 0,this);return G("div",{class:"v",onClick:Q,children:G($6,{prop:Z,val:K},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var o1=[],bQ=[];(()=>{let Z="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((J)=>J?parseInt(J,36):1);for(let J=0,$=0;J<Z.length;J++)(J%2?bQ:o1).push($=$+Z[J])})();function UO(Z){if(Z<768)return!1;for(let J=0,$=o1.length;;){let Q=J+$>>1;if(Z<o1[Q])$=Q;else if(Z>=bQ[Q])J=Q+1;else return!0;if(J==$)return!1}}function jQ(Z){return Z>=127462&&Z<=127487}var DQ=8205;function EQ(Z,J,$=!0,Q=!0){return($?wQ:HO)(Z,J,Q)}function wQ(Z,J,$){if(J==Z.length)return J;if(J&&xQ(Z.charCodeAt(J))&&vQ(Z.charCodeAt(J-1)))J--;let Q=r1(Z,J);J+=SQ(Q);while(J<Z.length){let X=r1(Z,J);if(Q==DQ||X==DQ||$&&UO(X))J+=SQ(X),Q=X;else if(jQ(X)){let z=0,K=J-2;while(K>=0&&jQ(r1(Z,K)))z++,K-=2;if(z%2==0)break;else J+=2}else break}return J}function HO(Z,J,$){while(J>1){let Q=wQ(Z,J-2,$);if(Q<J)return Q;J--}return 0}function r1(Z,J){let $=Z.charCodeAt(J);if(!vQ($)||J+1==Z.length)return $;let Q=Z.charCodeAt(J+1);if(!xQ(Q))return $;return($-55296<<10)+(Q-56320)+65536}function xQ(Z){return Z>=56320&&Z<57344}function vQ(Z){return Z>=55296&&Z<56320}function SQ(Z){return Z<65536?1:2}class v0{lineAt(Z){if(Z<0||Z>this.length)throw RangeError(`Invalid position ${Z} in document of length ${this.length}`);return this.lineInner(Z,!1,1,0)}line(Z){if(Z<1||Z>this.lines)throw RangeError(`Invalid line number ${Z} in ${this.lines}-line document`);return this.lineInner(Z,!0,1,0)}replace(Z,J,$){[Z,J]=G6(this,Z,J);let Q=[];if(this.decompose(0,Z,Q,2),$.length)$.decompose(0,$.length,Q,3);return this.decompose(J,this.length,Q,1),_Z.from(Q,this.length-(J-Z)+$.length)}append(Z){return this.replace(this.length,this.length,Z)}slice(Z,J=this.length){[Z,J]=G6(this,Z,J);let $=[];return this.decompose(Z,J,$,0),_Z.from($,J-Z)}eq(Z){if(Z==this)return!0;if(Z.length!=this.length||Z.lines!=this.lines)return!1;let J=this.scanIdentical(Z,1),$=this.length-this.scanIdentical(Z,-1),Q=new K6(this),X=new K6(Z);for(let z=J,K=J;;){if(Q.next(z),X.next(z),z=0,Q.lineBreak!=X.lineBreak||Q.done!=X.done||Q.value!=X.value)return!1;if(K+=Q.value.length,Q.done||K>=$)return!0}}iter(Z=1){return new K6(this,Z)}iterRange(Z,J=this.length){return new GJ(this,Z,J)}iterLines(Z,J){let $;if(Z==null)$=this.iter();else{if(J==null)J=this.lines+1;let Q=this.line(Z).from;$=this.iterRange(Q,Math.max(Q,J==this.lines+1?this.length:J<=1?0:this.line(J-1).to))}return new qJ($)}toString(){return this.sliceString(0)}toJSON(){let Z=[];return this.flatten(Z),Z}constructor(){}static of(Z){if(Z.length==0)throw RangeError("A document must have at least one line");if(Z.length==1&&!Z[0])return v0.empty;return Z.length<=32?new K9(Z):_Z.from(K9.split(Z,[]))}}class K9 extends v0{constructor(Z,J=FO(Z)){super();this.text=Z,this.length=J}get lines(){return this.text.length}get children(){return null}lineInner(Z,J,$,Q){for(let X=0;;X++){let z=this.text[X],K=Q+z.length;if((J?$:K)>=Z)return new pQ(Q,K,$,z);Q=K+1,$++}}decompose(Z,J,$,Q){let X=Z<=0&&J>=this.length?this:new K9(hQ(this.text,Z,J),Math.min(J,this.length)-Math.max(0,Z));if(Q&1){let z=$.pop(),K=S4(X.text,z.text.slice(),0,X.length);if(K.length<=32)$.push(new K9(K,z.length+X.length));else{let Y=K.length>>1;$.push(new K9(K.slice(0,Y)),new K9(K.slice(Y)))}}else $.push(X)}replace(Z,J,$){if(!($ instanceof K9))return super.replace(Z,J,$);[Z,J]=G6(this,Z,J);let Q=S4(this.text,S4($.text,hQ(this.text,0,Z)),J),X=this.length+$.length-(J-Z);if(Q.length<=32)return new K9(Q,X);return _Z.from(K9.split(Q,[]),X)}sliceString(Z,J=this.length,$=`
|
|
39
|
+
`){[Z,J]=G6(this,Z,J);let Q="";for(let X=0,z=0;X<=J&&z<this.text.length;z++){let K=this.text[z],Y=X+K.length;if(X>Z&&z)Q+=$;if(Z<Y&&J>X)Q+=K.slice(Math.max(0,Z-X),J-X);X=Y+1}return Q}flatten(Z){for(let J of this.text)Z.push(J)}scanIdentical(){return 0}static split(Z,J){let $=[],Q=-1;for(let X of Z)if($.push(X),Q+=X.length+1,$.length==32)J.push(new K9($,Q)),$=[],Q=-1;if(Q>-1)J.push(new K9($,Q));return J}}class _Z extends v0{constructor(Z,J){super();this.children=Z,this.length=J,this.lines=0;for(let $ of Z)this.lines+=$.lines}lineInner(Z,J,$,Q){for(let X=0;;X++){let z=this.children[X],K=Q+z.length,Y=$+z.lines-1;if((J?Y:K)>=Z)return z.lineInner(Z,J,$,Q);Q=K+1,$=Y+1}}decompose(Z,J,$,Q){for(let X=0,z=0;z<=J&&X<this.children.length;X++){let K=this.children[X],Y=z+K.length;if(Z<=Y&&J>=z){let q=Q&((z<=Z?1:0)|(Y>=J?2:0));if(z>=Z&&Y<=J&&!q)$.push(K);else K.decompose(Z-z,J-z,$,q)}z=Y+1}}replace(Z,J,$){if([Z,J]=G6(this,Z,J),$.lines<this.lines)for(let Q=0,X=0;Q<this.children.length;Q++){let z=this.children[Q],K=X+z.length;if(Z>=X&&J<=K){let Y=z.replace(Z-X,J-X,$),q=this.lines-z.lines+Y.lines;if(Y.lines<q>>4&&Y.lines>q>>6){let W=this.children.slice();return W[Q]=Y,new _Z(W,this.length-(J-Z)+$.length)}return super.replace(X,K,Y)}X=K+1}return super.replace(Z,J,$)}sliceString(Z,J=this.length,$=`
|
|
40
|
+
`){[Z,J]=G6(this,Z,J);let Q="";for(let X=0,z=0;X<this.children.length&&z<=J;X++){let K=this.children[X],Y=z+K.length;if(z>Z&&X)Q+=$;if(Z<Y&&J>z)Q+=K.sliceString(Z-z,J-z,$);z=Y+1}return Q}flatten(Z){for(let J of this.children)J.flatten(Z)}scanIdentical(Z,J){if(!(Z instanceof _Z))return 0;let $=0,[Q,X,z,K]=J>0?[0,0,this.children.length,Z.children.length]:[this.children.length-1,Z.children.length-1,-1,-1];for(;;Q+=J,X+=J){if(Q==z||X==K)return $;let Y=this.children[Q],q=Z.children[X];if(Y!=q)return $+Y.scanIdentical(q,J);$+=Y.length+1}}static from(Z,J=Z.reduce(($,Q)=>$+Q.length+1,-1)){let $=0;for(let F of Z)$+=F.lines;if($<32){let F=[];for(let O of Z)O.flatten(F);return new K9(F,J)}let Q=Math.max(32,$>>5),X=Q<<1,z=Q>>1,K=[],Y=0,q=-1,W=[];function U(F){let O;if(F.lines>X&&F instanceof _Z)for(let N of F.children)U(N);else if(F.lines>z&&(Y>z||!Y))H(),K.push(F);else if(F instanceof K9&&Y&&(O=W[W.length-1])instanceof K9&&F.lines+O.lines<=32)Y+=F.lines,q+=F.length+1,W[W.length-1]=new K9(O.text.concat(F.text),O.length+1+F.length);else{if(Y+F.lines>Q)H();Y+=F.lines,q+=F.length+1,W.push(F)}}function H(){if(Y==0)return;K.push(W.length==1?W[0]:_Z.from(W,q)),q=-1,Y=W.length=0}for(let F of Z)U(F);return H(),K.length==1?K[0]:new _Z(K,J)}}v0.empty=new K9([""],0);function FO(Z){let J=-1;for(let $ of Z)J+=$.length+1;return J}function S4(Z,J,$=0,Q=1e9){for(let X=0,z=0,K=!0;z<Z.length&&X<=Q;z++){let Y=Z[z],q=X+Y.length;if(q>=$){if(q>Q)Y=Y.slice(0,Q-X);if(X<$)Y=Y.slice($-X);if(K)J[J.length-1]+=Y,K=!1;else J.push(Y)}X=q+1}return J}function hQ(Z,J,$){return S4(Z,[""],J,$)}class K6{constructor(Z,J=1){this.dir=J,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[Z],this.offsets=[J>0?1:(Z instanceof K9?Z.text.length:Z.children.length)<<1]}nextInner(Z,J){this.done=this.lineBreak=!1;for(;;){let $=this.nodes.length-1,Q=this.nodes[$],X=this.offsets[$],z=X>>1,K=Q instanceof K9?Q.text.length:Q.children.length;if(z==(J>0?K:0)){if($==0)return this.done=!0,this.value="",this;if(J>0)this.offsets[$-1]++;this.nodes.pop(),this.offsets.pop()}else if((X&1)==(J>0?0:1)){if(this.offsets[$]+=J,Z==0)return this.lineBreak=!0,this.value=`
|
|
41
|
+
`,this;Z--}else if(Q instanceof K9){let Y=Q.text[z+(J<0?-1:0)];if(this.offsets[$]+=J,Y.length>Math.max(0,Z))return this.value=Z==0?Y:J>0?Y.slice(Z):Y.slice(0,Y.length-Z),this;Z-=Y.length}else{let Y=Q.children[z+(J<0?-1:0)];if(Z>Y.length)Z-=Y.length,this.offsets[$]+=J;else{if(J<0)this.offsets[$]--;this.nodes.push(Y),this.offsets.push(J>0?1:(Y instanceof K9?Y.text.length:Y.children.length)<<1)}}}}next(Z=0){if(Z<0)this.nextInner(-Z,-this.dir),Z=this.value.length;return this.nextInner(Z,this.dir)}}class GJ{constructor(Z,J,$){this.value="",this.done=!1,this.cursor=new K6(Z,J>$?-1:1),this.pos=J>$?Z.length:0,this.from=Math.min(J,$),this.to=Math.max(J,$)}nextInner(Z,J){if(J<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;Z+=Math.max(0,J<0?this.pos-this.to:this.from-this.pos);let $=J<0?this.pos-this.from:this.to-this.pos;if(Z>$)Z=$;$-=Z;let{value:Q}=this.cursor.next(Z);return this.pos+=(Q.length+Z)*J,this.value=Q.length<=$?Q:J<0?Q.slice(Q.length-$):Q.slice(0,$),this.done=!this.value,this}next(Z=0){if(Z<0)Z=Math.max(Z,this.from-this.pos);else if(Z>0)Z=Math.min(Z,this.to-this.pos);return this.nextInner(Z,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class qJ{constructor(Z){this.inner=Z,this.afterBreak=!0,this.value="",this.done=!1}next(Z=0){let{done:J,lineBreak:$,value:Q}=this.inner.next(Z);if(J&&this.afterBreak)this.value="",this.afterBreak=!1;else if(J)this.done=!0,this.value="";else if($)if(this.afterBreak)this.value="";else this.afterBreak=!0,this.next();else this.value=Q,this.afterBreak=!1;return this}get lineBreak(){return!1}}if(typeof Symbol<"u")v0.prototype[Symbol.iterator]=function(){return this.iter()},K6.prototype[Symbol.iterator]=GJ.prototype[Symbol.iterator]=qJ.prototype[Symbol.iterator]=function(){return this};class pQ{constructor(Z,J,$,Q){this.from=Z,this.to=J,this.number=$,this.text=Q}get length(){return this.to-this.from}}function G6(Z,J,$){return J=Math.max(0,Math.min(Z.length,J)),[J,Math.max(J,Math.min(Z.length,$))]}function U9(Z,J,$=!0,Q=!0){return EQ(Z,J,$,Q)}function OO(Z){return Z>=56320&&Z<57344}function NO(Z){return Z>=55296&&Z<56320}function cQ(Z,J){let $=Z.charCodeAt(J);if(!NO($)||J+1==Z.length)return $;let Q=Z.charCodeAt(J+1);if(!OO(Q))return $;return($-55296<<10)+(Q-56320)+65536}function dQ(Z){return Z<65536?1:2}var e1=/\r\n?|\n/,D9=function(Z){return Z[Z.Simple=0]="Simple",Z[Z.TrackDel=1]="TrackDel",Z[Z.TrackBefore=2]="TrackBefore",Z[Z.TrackAfter=3]="TrackAfter",Z}(D9||(D9={}));class t9{constructor(Z){this.sections=Z}get length(){let Z=0;for(let J=0;J<this.sections.length;J+=2)Z+=this.sections[J];return Z}get newLength(){let Z=0;for(let J=0;J<this.sections.length;J+=2){let $=this.sections[J+1];Z+=$<0?this.sections[J]:$}return Z}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(Z){for(let J=0,$=0,Q=0;J<this.sections.length;){let X=this.sections[J++],z=this.sections[J++];if(z<0)Z($,Q,X),Q+=X;else Q+=z;$+=X}}iterChangedRanges(Z,J=!1){ZJ(this,Z,J)}get invertedDesc(){let Z=[];for(let J=0;J<this.sections.length;){let $=this.sections[J++],Q=this.sections[J++];if(Q<0)Z.push($,Q);else Z.push(Q,$)}return new t9(Z)}composeDesc(Z){return this.empty?Z:Z.empty?this:lQ(this,Z)}mapDesc(Z,J=!1){return Z.empty?this:JJ(this,Z,J)}mapPos(Z,J=-1,$=D9.Simple){let Q=0,X=0;for(let z=0;z<this.sections.length;){let K=this.sections[z++],Y=this.sections[z++],q=Q+K;if(Y<0){if(q>Z)return X+(Z-Q);X+=K}else{if($!=D9.Simple&&q>=Z&&($==D9.TrackDel&&Q<Z&&q>Z||$==D9.TrackBefore&&Q<Z||$==D9.TrackAfter&&q>Z))return null;if(q>Z||q==Z&&J<0&&!K)return Z==Q||J<0?X:X+Y;X+=Y}Q=q}if(Z>Q)throw RangeError(`Position ${Z} is out of range for changeset of length ${Q}`);return X}touchesRange(Z,J=Z){for(let $=0,Q=0;$<this.sections.length&&Q<=J;){let X=this.sections[$++],z=this.sections[$++],K=Q+X;if(z>=0&&Q<=J&&K>=Z)return Q<Z&&K>J?"cover":!0;Q=K}return!1}toString(){let Z="";for(let J=0;J<this.sections.length;){let $=this.sections[J++],Q=this.sections[J++];Z+=(Z?" ":"")+$+(Q>=0?":"+Q:"")}return Z}toJSON(){return this.sections}static fromJSON(Z){if(!Array.isArray(Z)||Z.length%2||Z.some((J)=>typeof J!="number"))throw RangeError("Invalid JSON representation of ChangeDesc");return new t9(Z)}static create(Z){return new t9(Z)}}class Y9 extends t9{constructor(Z,J){super(Z);this.inserted=J}apply(Z){if(this.length!=Z.length)throw RangeError("Applying change set to a document with the wrong length");return ZJ(this,(J,$,Q,X,z)=>Z=Z.replace(Q,Q+($-J),z),!1),Z}mapDesc(Z,J=!1){return JJ(this,Z,J,!0)}invert(Z){let J=this.sections.slice(),$=[];for(let Q=0,X=0;Q<J.length;Q+=2){let z=J[Q],K=J[Q+1];if(K>=0){J[Q]=K,J[Q+1]=z;let Y=Q>>1;while($.length<Y)$.push(v0.empty);$.push(z?Z.slice(X,X+z):v0.empty)}X+=z}return new Y9(J,$)}compose(Z){return this.empty?Z:Z.empty?this:lQ(this,Z,!0)}map(Z,J=!1){return Z.empty?this:JJ(this,Z,J,!0)}iterChanges(Z,J=!1){ZJ(this,Z,J)}get desc(){return t9.create(this.sections)}filter(Z){let J=[],$=[],Q=[],X=new q6(this);Z:for(let z=0,K=0;;){let Y=z==Z.length?1e9:Z[z++];while(K<Y||K==Y&&X.len==0){if(X.done)break Z;let W=Math.min(X.len,Y-K);_9(Q,W,-1);let U=X.ins==-1?-1:X.off==0?X.ins:0;if(_9(J,W,U),U>0)tZ($,J,X.text);X.forward(W),K+=W}let q=Z[z++];while(K<q){if(X.done)break Z;let W=Math.min(X.len,q-K);_9(J,W,-1),_9(Q,W,X.ins==-1?-1:X.off==0?X.ins:0),X.forward(W),K+=W}}return{changes:new Y9(J,$),filtered:t9.create(Q)}}toJSON(){let Z=[];for(let J=0;J<this.sections.length;J+=2){let $=this.sections[J],Q=this.sections[J+1];if(Q<0)Z.push($);else if(Q==0)Z.push([$]);else Z.push([$].concat(this.inserted[J>>1].toJSON()))}return Z}static of(Z,J,$){let Q=[],X=[],z=0,K=null;function Y(W=!1){if(!W&&!Q.length)return;if(z<J)_9(Q,J-z,-1);let U=new Y9(Q,X);K=K?K.compose(U.map(K)):U,Q=[],X=[],z=0}function q(W){if(Array.isArray(W))for(let U of W)q(U);else if(W instanceof Y9){if(W.length!=J)throw RangeError(`Mismatched change set length (got ${W.length}, expected ${J})`);Y(),K=K?K.compose(W.map(K)):W}else{let{from:U,to:H=U,insert:F}=W;if(U>H||U<0||H>J)throw RangeError(`Invalid change range ${U} to ${H} (in doc of length ${J})`);let O=!F?v0.empty:typeof F=="string"?v0.of(F.split($||e1)):F,N=O.length;if(U==H&&N==0)return;if(U<z)Y();if(U>z)_9(Q,U-z,-1);_9(Q,H-U,N),tZ(X,Q,O),z=H}}return q(Z),Y(!K),K}static empty(Z){return new Y9(Z?[Z,-1]:[],[])}static fromJSON(Z){if(!Array.isArray(Z))throw RangeError("Invalid JSON representation of ChangeSet");let J=[],$=[];for(let Q=0;Q<Z.length;Q++){let X=Z[Q];if(typeof X=="number")J.push(X,-1);else if(!Array.isArray(X)||typeof X[0]!="number"||X.some((z,K)=>K&&typeof z!="string"))throw RangeError("Invalid JSON representation of ChangeSet");else if(X.length==1)J.push(X[0],0);else{while($.length<Q)$.push(v0.empty);$[Q]=v0.of(X.slice(1)),J.push(X[0],$[Q].length)}}return new Y9(J,$)}static createSet(Z,J){return new Y9(Z,J)}}function _9(Z,J,$,Q=!1){if(J==0&&$<=0)return;let X=Z.length-2;if(X>=0&&$<=0&&$==Z[X+1])Z[X]+=J;else if(X>=0&&J==0&&Z[X]==0)Z[X+1]+=$;else if(Q)Z[X]+=J,Z[X+1]+=$;else Z.push(J,$)}function tZ(Z,J,$){if($.length==0)return;let Q=J.length-2>>1;if(Q<Z.length)Z[Z.length-1]=Z[Z.length-1].append($);else{while(Z.length<Q)Z.push(v0.empty);Z.push($)}}function ZJ(Z,J,$){let Q=Z.inserted;for(let X=0,z=0,K=0;K<Z.sections.length;){let Y=Z.sections[K++],q=Z.sections[K++];if(q<0)X+=Y,z+=Y;else{let W=X,U=z,H=v0.empty;for(;;){if(W+=Y,U+=q,q&&Q)H=H.append(Q[K-2>>1]);if($||K==Z.sections.length||Z.sections[K+1]<0)break;Y=Z.sections[K++],q=Z.sections[K++]}J(X,W,z,U,H),X=W,z=U}}}function JJ(Z,J,$,Q=!1){let X=[],z=Q?[]:null,K=new q6(Z),Y=new q6(J);for(let q=-1;;)if(K.done&&Y.len||Y.done&&K.len)throw Error("Mismatched change set lengths");else if(K.ins==-1&&Y.ins==-1){let W=Math.min(K.len,Y.len);_9(X,W,-1),K.forward(W),Y.forward(W)}else if(Y.ins>=0&&(K.ins<0||q==K.i||K.off==0&&(Y.len<K.len||Y.len==K.len&&!$))){let W=Y.len;_9(X,Y.ins,-1);while(W){let U=Math.min(K.len,W);if(K.ins>=0&&q<K.i&&K.len<=U){if(_9(X,0,K.ins),z)tZ(z,X,K.text);q=K.i}K.forward(U),W-=U}Y.next()}else if(K.ins>=0){let W=0,U=K.len;while(U)if(Y.ins==-1){let H=Math.min(U,Y.len);W+=H,U-=H,Y.forward(H)}else if(Y.ins==0&&Y.len<U)U-=Y.len,Y.next();else break;if(_9(X,W,q<K.i?K.ins:0),z&&q<K.i)tZ(z,X,K.text);q=K.i,K.forward(K.len-U)}else if(K.done&&Y.done)return z?Y9.createSet(X,z):t9.create(X);else throw Error("Mismatched change set lengths")}function lQ(Z,J,$=!1){let Q=[],X=$?[]:null,z=new q6(Z),K=new q6(J);for(let Y=!1;;)if(z.done&&K.done)return X?Y9.createSet(Q,X):t9.create(Q);else if(z.ins==0)_9(Q,z.len,0,Y),z.next();else if(K.len==0&&!K.done){if(_9(Q,0,K.ins,Y),X)tZ(X,Q,K.text);K.next()}else if(z.done||K.done)throw Error("Mismatched change set lengths");else{let q=Math.min(z.len2,K.len),W=Q.length;if(z.ins==-1){let U=K.ins==-1?-1:K.off?0:K.ins;if(_9(Q,q,U,Y),X&&U)tZ(X,Q,K.text)}else if(K.ins==-1){if(_9(Q,z.off?0:z.len,q,Y),X)tZ(X,Q,z.textBit(q))}else if(_9(Q,z.off?0:z.len,K.off?0:K.ins,Y),X&&!K.off)tZ(X,Q,K.text);Y=(z.ins>q||K.ins>=0&&K.len>q)&&(Y||Q.length>W),z.forward2(q),K.forward(q)}}class q6{constructor(Z){this.set=Z,this.i=0,this.next()}next(){let{sections:Z}=this.set;if(this.i<Z.length)this.len=Z[this.i++],this.ins=Z[this.i++];else this.len=0,this.ins=-2;this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:Z}=this.set,J=this.i-2>>1;return J>=Z.length?v0.empty:Z[J]}textBit(Z){let{inserted:J}=this.set,$=this.i-2>>1;return $>=J.length&&!Z?v0.empty:J[$].slice(this.off,Z==null?void 0:this.off+Z)}forward(Z){if(Z==this.len)this.next();else this.len-=Z,this.off+=Z}forward2(Z){if(this.ins==-1)this.forward(Z);else if(Z==this.ins)this.next();else this.ins-=Z,this.off+=Z}}class oZ{constructor(Z,J,$,Q){this.from=Z,this.to=J,this.flags=$,this.goalColumn=Q}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let Z=this.flags&7;return Z==7?null:Z}map(Z,J=-1){let $,Q;if(this.empty)$=Q=Z.mapPos(this.from,J);else $=Z.mapPos(this.from,1),Q=Z.mapPos(this.to,-1);return $==this.from&&Q==this.to?this:new oZ($,Q,this.flags,this.goalColumn)}extend(Z,J=Z,$=0){if(Z<=this.anchor&&J>=this.anchor)return $0.range(Z,J,void 0,void 0,$);let Q=Math.abs(Z-this.anchor)>Math.abs(J-this.anchor)?Z:J;return $0.range(this.anchor,Q,void 0,void 0,$)}eq(Z,J=!1){return this.anchor==Z.anchor&&this.head==Z.head&&this.goalColumn==Z.goalColumn&&(!J||!this.empty||this.assoc==Z.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(Z){if(!Z||typeof Z.anchor!="number"||typeof Z.head!="number")throw RangeError("Invalid JSON representation for SelectionRange");return $0.range(Z.anchor,Z.head)}static create(Z,J,$,Q){return new oZ(Z,J,$,Q)}}class $0{constructor(Z,J){this.ranges=Z,this.mainIndex=J}map(Z,J=-1){if(Z.empty)return this;return $0.create(this.ranges.map(($)=>$.map(Z,J)),this.mainIndex)}eq(Z,J=!1){if(this.ranges.length!=Z.ranges.length||this.mainIndex!=Z.mainIndex)return!1;for(let $=0;$<this.ranges.length;$++)if(!this.ranges[$].eq(Z.ranges[$],J))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new $0([this.main],0)}addRange(Z,J=!0){return $0.create([Z].concat(this.ranges),J?0:this.mainIndex+1)}replaceRange(Z,J=this.mainIndex){let $=this.ranges.slice();return $[J]=Z,$0.create($,this.mainIndex)}toJSON(){return{ranges:this.ranges.map((Z)=>Z.toJSON()),main:this.mainIndex}}static fromJSON(Z){if(!Z||!Array.isArray(Z.ranges)||typeof Z.main!="number"||Z.main>=Z.ranges.length)throw RangeError("Invalid JSON representation for EditorSelection");return new $0(Z.ranges.map((J)=>oZ.fromJSON(J)),Z.main)}static single(Z,J=Z){return new $0([$0.range(Z,J)],0)}static create(Z,J=0){if(Z.length==0)throw RangeError("A selection needs at least one range");for(let $=0,Q=0;Q<Z.length;Q++){let X=Z[Q];if(X.empty?X.from<=$:X.from<$)return $0.normalized(Z.slice(),J);$=X.to}return new $0(Z,J)}static cursor(Z,J=0,$,Q){return oZ.create(Z,Z,(J==0?0:J<0?8:16)|($==null?7:Math.min(6,$)),Q)}static range(Z,J,$,Q,X){let z=Q==null?7:Math.min(6,Q);if(!X&&Z!=J)X=J<Z?1:-1;if(X)z|=X<0?8:16;return J<Z?oZ.create(J,Z,z|32,$):oZ.create(Z,J,z,$)}static undirectionalRange(Z,J){return oZ.create(Z,J,64,void 0)}static normalized(Z,J=0){let $=Z[J];Z.sort((Q,X)=>Q.from-X.from),J=Z.indexOf($);for(let Q=1;Q<Z.length;Q++){let X=Z[Q],z=Z[Q-1];if(X.empty?X.from<=z.to:X.from<z.to){let K=z.from,Y=Math.max(X.to,z.to);if(Q<=J)J--;Z.splice(--Q,2,X.anchor>X.head?$0.range(Y,K):$0.range(K,Y))}}return new $0(Z,J)}}function aQ(Z,J){for(let $ of Z.ranges)if($.to>J)throw RangeError("Selection points outside of document")}var WJ=0;class M0{constructor(Z,J,$,Q,X){this.combine=Z,this.compareInput=J,this.compare=$,this.isStatic=Q,this.id=WJ++,this.default=Z([]),this.extensions=typeof X=="function"?X(this):X}get reader(){return this}static define(Z={}){return new M0(Z.combine||((J)=>J),Z.compareInput||((J,$)=>J===$),Z.compare||(!Z.combine?UJ:(J,$)=>J===$),!!Z.static,Z.enables)}of(Z){return new $5([],this,0,Z)}compute(Z,J){if(this.isStatic)throw Error("Can't compute a static facet");return new $5(Z,this,1,J)}computeN(Z,J){if(this.isStatic)throw Error("Can't compute a static facet");return new $5(Z,this,2,J)}from(Z,J){if(!J)J=($)=>$;return this.compute([Z],($)=>J($.field(Z)))}}function UJ(Z,J){return Z==J||Z.length==J.length&&Z.every(($,Q)=>$===J[Q])}class $5{constructor(Z,J,$,Q){this.dependencies=Z,this.facet=J,this.type=$,this.value=Q,this.id=WJ++}dynamicSlot(Z){var J;let $=this.value,Q=this.facet.compareInput,X=this.id,z=Z[X]>>1,K=this.type==2,Y=!1,q=!1,W=[];for(let U of this.dependencies)if(U=="doc")Y=!0;else if(U=="selection")q=!0;else if((((J=Z[U.id])!==null&&J!==void 0?J:1)&1)==0)W.push(Z[U.id]);return{create(U){return U.values[z]=$(U),1},update(U,H){if(Y&&H.docChanged||q&&(H.docChanged||H.selection)||$J(U,W)){let F=$(U);if(K?!fQ(F,U.values[z],Q):!Q(F,U.values[z]))return U.values[z]=F,1}return 0},reconfigure:(U,H)=>{let F,O=H.config.address[X];if(O!=null){let N=w4(H,O);if(this.dependencies.every((_)=>{return _ instanceof M0?H.facet(_)===U.facet(_):_ instanceof t0?H.field(_,!1)==U.field(_,!1):!0})||(K?fQ(F=$(U),N,Q):Q(F=$(U),N)))return U.values[z]=N,0}else F=$(U);return U.values[z]=F,1}}}}function fQ(Z,J,$){if(Z.length!=J.length)return!1;for(let Q=0;Q<Z.length;Q++)if(!$(Z[Q],J[Q]))return!1;return!0}function $J(Z,J){let $=!1;for(let Q of J)if(Q5(Z,Q)&1)$=!0;return $}function BO(Z,J,$){let Q=$.map((q)=>Z[q.id]),X=$.map((q)=>q.type),z=Q.filter((q)=>!(q&1)),K=Z[J.id]>>1;function Y(q){let W=[];for(let U=0;U<Q.length;U++){let H=w4(q,Q[U]);if(X[U]==2)for(let F of H)W.push(F);else W.push(H)}return J.combine(W)}return{create(q){for(let W of Q)Q5(q,W);return q.values[K]=Y(q),1},update(q,W){if(!$J(q,z))return 0;let U=Y(q);if(J.compare(U,q.values[K]))return 0;return q.values[K]=U,1},reconfigure(q,W){let U=$J(q,Q),H=W.config.facets[J.id],F=W.facet(J);if(H&&!U&&UJ($,H))return q.values[K]=F,0;let O=Y(q);if(J.compare(O,F))return q.values[K]=F,0;return q.values[K]=O,1}}}var T4=M0.define({static:!0});class t0{constructor(Z,J,$,Q,X){this.id=Z,this.createF=J,this.updateF=$,this.compareF=Q,this.spec=X,this.provides=void 0}static define(Z){let J=new t0(WJ++,Z.create,Z.update,Z.compare||(($,Q)=>$===Q),Z);if(Z.provide)J.provides=Z.provide(J);return J}create(Z){let J=Z.facet(T4).find(($)=>$.field==this);return((J===null||J===void 0?void 0:J.create)||this.createF)(Z)}slot(Z){let J=Z[this.id]>>1;return{create:($)=>{return $.values[J]=this.create($),1},update:($,Q)=>{let X=$.values[J],z=this.updateF(X,Q);if(this.compareF(X,z))return 0;return $.values[J]=z,1},reconfigure:($,Q)=>{let X=$.facet(T4),z=Q.facet(T4),K;if((K=X.find((Y)=>Y.field==this))&&K!=z.find((Y)=>Y.field==this))return $.values[J]=K.create($),1;if(Q.config.address[this.id]!=null)return $.values[J]=Q.field(this),0;return $.values[J]=this.create($),1}}}init(Z){return[this,T4.of({field:this,create:Z})]}get extension(){return this}}var j8={lowest:4,low:3,default:2,high:1,highest:0};function J5(Z){return(J)=>new HJ(J,Z)}var W6={highest:J5(j8.highest),high:J5(j8.high),default:J5(j8.default),low:J5(j8.low),lowest:J5(j8.lowest)};class HJ{constructor(Z,J){this.inner=Z,this.prec=J}}class U6{of(Z){return new b4(this,Z)}reconfigure(Z){return U6.reconfigure.of({compartment:this,extension:Z})}get(Z){return Z.config.compartments.get(this)}}class b4{constructor(Z,J){this.compartment=Z,this.inner=J}}class E4{constructor(Z,J,$,Q,X,z){this.base=Z,this.compartments=J,this.dynamicSlots=$,this.address=Q,this.staticValues=X,this.facets=z,this.statusTemplate=[];while(this.statusTemplate.length<$.length)this.statusTemplate.push(0)}staticFacet(Z){let J=this.address[Z.id];return J==null?Z.default:this.staticValues[J>>1]}static resolve(Z,J,$){let Q=[],X=Object.create(null),z=new Map;for(let H of _O(Z,J,z))if(H instanceof t0)Q.push(H);else(X[H.facet.id]||(X[H.facet.id]=[])).push(H);let K=Object.create(null),Y=[],q=[];for(let H of Q)K[H.id]=q.length<<1,q.push((F)=>H.slot(F));let W=$===null||$===void 0?void 0:$.config.facets;for(let H in X){let F=X[H],O=F[0].facet,N=W&&W[H]||[];if(F.every((_)=>_.type==0))if(K[O.id]=Y.length<<1|1,UJ(N,F))Y.push($.facet(O));else{let _=O.combine(F.map((A)=>A.value));Y.push($&&O.compare(_,$.facet(O))?$.facet(O):_)}else{for(let _ of F)if(_.type==0)K[_.id]=Y.length<<1|1,Y.push(_.value);else K[_.id]=q.length<<1,q.push((A)=>_.dynamicSlot(A));K[O.id]=q.length<<1,q.push((_)=>BO(_,O,F))}}let U=q.map((H)=>H(K));return new E4(Z,z,U,K,Y,X)}}function _O(Z,J,$){let Q=[[],[],[],[],[]],X=new Map;function z(K,Y){let q=X.get(K);if(q!=null){if(q<=Y)return;let W=Q[q].indexOf(K);if(W>-1)Q[q].splice(W,1);if(K instanceof b4)$.delete(K.compartment)}if(X.set(K,Y),Array.isArray(K))for(let W of K)z(W,Y);else if(K instanceof b4){if($.has(K.compartment))throw RangeError("Duplicate use of compartment in extensions");let W=J.get(K.compartment)||K.inner;$.set(K.compartment,W),z(W,Y)}else if(K instanceof HJ)z(K.inner,K.prec);else if(K instanceof t0){if(Q[Y].push(K),K.provides)z(K.provides,Y)}else if(K instanceof $5){if(Q[Y].push(K),K.facet.extensions)z(K.facet.extensions,j8.default)}else{let W=K.extension;if(!W)throw Error(`Unrecognized extension value in extension set (${K}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);z(W,Y)}}return z(Z,j8.default),Q.reduce((K,Y)=>K.concat(Y))}function Q5(Z,J){if(J&1)return 2;let $=J>>1,Q=Z.status[$];if(Q==4)throw Error("Cyclic dependency between fields and/or facets");if(Q&2)return Q;Z.status[$]=4;let X=Z.computeSlot(Z,Z.config.dynamicSlots[$]);return Z.status[$]=2|X}function w4(Z,J){return J&1?Z.config.staticValues[J>>1]:Z.values[J>>1]}var iQ=M0.define(),QJ=M0.define({combine:(Z)=>Z.some((J)=>J),static:!0}),nQ=M0.define({combine:(Z)=>Z.length?Z[0]:void 0,static:!0}),sQ=M0.define(),rQ=M0.define(),oQ=M0.define(),tQ=M0.define({combine:(Z)=>Z.length?Z[0]:!1});class JZ{constructor(Z,J){this.type=Z,this.value=J}static define(){return new eQ}}class eQ{of(Z){return new JZ(this,Z)}}class ZX{constructor(Z){this.map=Z}of(Z){return new h0(this,Z)}}class h0{constructor(Z,J){this.type=Z,this.value=J}map(Z){let J=this.type.map(this.value,Z);return J===void 0?void 0:J==this.value?this:new h0(this.type,J)}is(Z){return this.type==Z}static define(Z={}){return new ZX(Z.map||((J)=>J))}static mapEffects(Z,J){if(!Z.length)return Z;let $=[];for(let Q of Z){let X=Q.map(J);if(X)$.push(X)}return $}}h0.reconfigure=h0.define();h0.appendConfig=h0.define();class G9{constructor(Z,J,$,Q,X,z){if(this.startState=Z,this.changes=J,this.selection=$,this.effects=Q,this.annotations=X,this.scrollIntoView=z,this._doc=null,this._state=null,$)aQ($,J.newLength);if(!X.some((K)=>K.type==G9.time))this.annotations=X.concat(G9.time.of(Date.now()))}static create(Z,J,$,Q,X,z){return new G9(Z,J,$,Q,X,z)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){if(!this._state)this.startState.applyTransaction(this);return this._state}annotation(Z){for(let J of this.annotations)if(J.type==Z)return J.value;return}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(Z){let J=this.annotation(G9.userEvent);return!!(J&&(J==Z||J.length>Z.length&&J.slice(0,Z.length)==Z&&J[Z.length]=="."))}}G9.time=JZ.define();G9.userEvent=JZ.define();G9.addToHistory=JZ.define();G9.remote=JZ.define();function AO(Z,J){let $=[];for(let Q=0,X=0;;){let z,K;if(Q<Z.length&&(X==J.length||J[X]>=Z[Q]))z=Z[Q++],K=Z[Q++];else if(X<J.length)z=J[X++],K=J[X++];else return $;if(!$.length||$[$.length-1]<z)$.push(z,K);else if($[$.length-1]<K)$[$.length-1]=K}}function JX(Z,J,$){var Q;let X,z,K;if($)X=J.changes,z=Y9.empty(J.changes.length),K=Z.changes.compose(J.changes);else X=J.changes.map(Z.changes),z=Z.changes.mapDesc(J.changes,!0),K=Z.changes.compose(X);return{changes:K,selection:J.selection?J.selection.map(z):(Q=Z.selection)===null||Q===void 0?void 0:Q.map(X),effects:h0.mapEffects(Z.effects,X).concat(h0.mapEffects(J.effects,z)),annotations:Z.annotations.length?Z.annotations.concat(J.annotations):J.annotations,scrollIntoView:Z.scrollIntoView||J.scrollIntoView}}function XJ(Z,J,$){let Q=J.selection,X=Y6(J.annotations);if(J.userEvent)X=X.concat(G9.userEvent.of(J.userEvent));return{changes:J.changes instanceof Y9?J.changes:Y9.of(J.changes||[],$,Z.facet(nQ)),selection:Q&&(Q instanceof $0?Q:$0.single(Q.anchor,Q.head)),effects:Y6(J.effects),annotations:X,scrollIntoView:!!J.scrollIntoView}}function $X(Z,J,$){let Q=XJ(Z,J.length?J[0]:{},Z.doc.length);if(J.length&&J[0].filter===!1)$=!1;for(let z=1;z<J.length;z++){if(J[z].filter===!1)$=!1;let K=!!J[z].sequential;Q=JX(Q,XJ(Z,J[z],K?Q.changes.newLength:Z.doc.length),K)}let X=G9.create(Z,Q.changes,Q.selection,Q.effects,Q.annotations,Q.scrollIntoView);return PO($?LO(X):X)}function LO(Z){let J=Z.startState,$=!0;for(let X of J.facet(sQ)){let z=X(Z);if(z===!1){$=!1;break}if(Array.isArray(z))$=$===!0?z:AO($,z)}if($!==!0){let X,z;if($===!1)z=Z.changes.invertedDesc,X=Y9.empty(J.doc.length);else{let K=Z.changes.filter($);X=K.changes,z=K.filtered.mapDesc(K.changes).invertedDesc}Z=G9.create(J,X,Z.selection&&Z.selection.map(z),h0.mapEffects(Z.effects,z),Z.annotations,Z.scrollIntoView)}let Q=J.facet(rQ);for(let X=Q.length-1;X>=0;X--){let z=Q[X](Z);if(z instanceof G9)Z=z;else if(Array.isArray(z)&&z.length==1&&z[0]instanceof G9)Z=z[0];else Z=$X(J,Y6(z),!1)}return Z}function PO(Z){let J=Z.startState,$=J.facet(oQ),Q=Z;for(let X=$.length-1;X>=0;X--){let z=$[X](Z);if(z&&Object.keys(z).length)Q=JX(Q,XJ(J,z,Z.changes.newLength),!0)}return Q==Z?Z:G9.create(J,Z.changes,Z.selection,Q.effects,Q.annotations,Q.scrollIntoView)}var MO=[];function Y6(Z){return Z==null?MO:Array.isArray(Z)?Z:[Z]}var o9=function(Z){return Z[Z.Word=0]="Word",Z[Z.Space=1]="Space",Z[Z.Other=2]="Other",Z}(o9||(o9={})),IO=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,zJ;try{zJ=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(Z){}function RO(Z){if(zJ)return zJ.test(Z);for(let J=0;J<Z.length;J++){let $=Z[J];if(/\w/.test($)||$>""&&($.toUpperCase()!=$.toLowerCase()||IO.test($)))return!0}return!1}function CO(Z){return(J)=>{if(!/\S/.test(J))return o9.Space;if(RO(J))return o9.Word;for(let $=0;$<Z.length;$++)if(J.indexOf(Z[$])>-1)return o9.Word;return o9.Other}}class x0{constructor(Z,J,$,Q,X,z){if(this.config=Z,this.doc=J,this.selection=$,this.values=Q,this.status=Z.statusTemplate.slice(),this.computeSlot=X,z)z._state=this;for(let K=0;K<this.config.dynamicSlots.length;K++)Q5(this,K<<1);this.computeSlot=null}field(Z,J=!0){let $=this.config.address[Z.id];if($==null){if(J)throw RangeError("Field is not present in this state");return}return Q5(this,$),w4(this,$)}update(...Z){return $X(this,Z,!0)}applyTransaction(Z){let J=this.config,{base:$,compartments:Q}=J;for(let K of Z.effects)if(K.is(U6.reconfigure)){if(J)Q=new Map,J.compartments.forEach((Y,q)=>Q.set(q,Y)),J=null;Q.set(K.value.compartment,K.value.extension)}else if(K.is(h0.reconfigure))J=null,$=K.value;else if(K.is(h0.appendConfig))J=null,$=Y6($).concat(K.value);let X;if(!J)J=E4.resolve($,Q,this),X=new x0(J,this.doc,this.selection,J.dynamicSlots.map(()=>null),(Y,q)=>q.reconfigure(Y,this),null).values;else X=Z.startState.values.slice();let z=Z.startState.facet(QJ)?Z.newSelection:Z.newSelection.asSingle();new x0(J,Z.newDoc,z,X,(K,Y)=>Y.update(K,Z),Z)}replaceSelection(Z){if(typeof Z=="string")Z=this.toText(Z);return this.changeByRange((J)=>({changes:{from:J.from,to:J.to,insert:Z},range:$0.cursor(J.from+Z.length)}))}changeByRange(Z){let J=this.selection,$=Z(J.ranges[0]),Q=this.changes($.changes),X=[$.range],z=Y6($.effects);for(let K=1;K<J.ranges.length;K++){let Y=Z(J.ranges[K]),q=this.changes(Y.changes),W=q.map(Q);for(let H=0;H<K;H++)X[H]=X[H].map(W);let U=Q.mapDesc(q,!0);X.push(Y.range.map(U)),Q=Q.compose(W),z=h0.mapEffects(z,W).concat(h0.mapEffects(Y6(Y.effects),U))}return{changes:Q,selection:$0.create(X,J.mainIndex),effects:z}}changes(Z=[]){if(Z instanceof Y9)return Z;return Y9.of(Z,this.doc.length,this.facet(x0.lineSeparator))}toText(Z){return v0.of(Z.split(this.facet(x0.lineSeparator)||e1))}sliceDoc(Z=0,J=this.doc.length){return this.doc.sliceString(Z,J,this.lineBreak)}facet(Z){let J=this.config.address[Z.id];if(J==null)return Z.default;return Q5(this,J),w4(this,J)}toJSON(Z){let J={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(Z)for(let $ in Z){let Q=Z[$];if(Q instanceof t0&&this.config.address[Q.id]!=null)J[$]=Q.spec.toJSON(this.field(Z[$]),this)}return J}static fromJSON(Z,J={},$){if(!Z||typeof Z.doc!="string")throw RangeError("Invalid JSON representation for EditorState");let Q=[];if($){for(let X in $)if(Object.prototype.hasOwnProperty.call(Z,X)){let z=$[X],K=Z[X];Q.push(z.init((Y)=>z.spec.fromJSON(K,Y)))}}return x0.create({doc:Z.doc,selection:$0.fromJSON(Z.selection),extensions:J.extensions?Q.concat([J.extensions]):Q})}static create(Z={}){let J=E4.resolve(Z.extensions||[],new Map),$=Z.doc instanceof v0?Z.doc:v0.of((Z.doc||"").split(J.staticFacet(x0.lineSeparator)||e1)),Q=!Z.selection?$0.single(0):Z.selection instanceof $0?Z.selection:$0.single(Z.selection.anchor,Z.selection.head);if(aQ(Q,$.length),!J.staticFacet(QJ))Q=Q.asSingle();return new x0(J,$,Q,J.dynamicSlots.map(()=>null),(X,z)=>z.create(X),null)}get tabSize(){return this.facet(x0.tabSize)}get lineBreak(){return this.facet(x0.lineSeparator)||`
|
|
42
|
+
`}get readOnly(){return this.facet(tQ)}phrase(Z,...J){for(let $ of this.facet(x0.phrases))if(Object.prototype.hasOwnProperty.call($,Z)){Z=$[Z];break}if(J.length)Z=Z.replace(/\$(\$|\d*)/g,($,Q)=>{if(Q=="$")return"$";let X=+(Q||1);return!X||X>J.length?$:J[X-1]});return Z}languageDataAt(Z,J,$=-1){let Q=[];for(let X of this.facet(iQ))for(let z of X(this,J,$))if(Object.prototype.hasOwnProperty.call(z,Z))Q.push(z[Z]);return Q}charCategorizer(Z){let J=this.languageDataAt("wordChars",Z);return CO(J.length?J[0]:"")}wordAt(Z){let{text:J,from:$,length:Q}=this.doc.lineAt(Z),X=this.charCategorizer(Z),z=Z-$,K=Z-$;while(z>0){let Y=U9(J,z,!1);if(X(J.slice(Y,z))!=o9.Word)break;z=Y}while(K<Q){let Y=U9(J,K);if(X(J.slice(K,Y))!=o9.Word)break;K=Y}return z==K?null:$0.range(z+$,K+$)}}x0.allowMultipleSelections=QJ;x0.tabSize=M0.define({combine:(Z)=>Z.length?Z[0]:4});x0.lineSeparator=nQ;x0.readOnly=tQ;x0.phrases=M0.define({compare(Z,J){let $=Object.keys(Z),Q=Object.keys(J);return $.length==Q.length&&$.every((X)=>Z[X]==J[X])}});x0.languageData=iQ;x0.changeFilter=sQ;x0.transactionFilter=rQ;x0.transactionExtender=oQ;U6.reconfigure=h0.define();function x4(Z,J,$={}){let Q={};for(let X of Z)for(let z of Object.keys(X)){let K=X[z],Y=Q[z];if(Y===void 0)Q[z]=K;else if(Y===K||K===void 0);else if(Object.hasOwnProperty.call($,z))Q[z]=$[z](Y,K);else throw Error("Config merge conflict for field "+z)}for(let X in J)if(Q[X]===void 0)Q[X]=J[X];return Q}class e9{eq(Z){return this==Z}range(Z,J=Z){return X5.create(Z,J,this)}}e9.prototype.startSide=e9.prototype.endSide=0;e9.prototype.point=!1;e9.prototype.mapMode=D9.TrackDel;function FJ(Z,J){return Z==J||Z.constructor==J.constructor&&Z.eq(J)}class X5{constructor(Z,J,$){this.from=Z,this.to=J,this.value=$}static create(Z,J,$){return new X5(Z,J,$)}}function KJ(Z,J){return Z.from-J.from||Z.value.startSide-J.value.startSide}class OJ{constructor(Z,J,$,Q){this.from=Z,this.to=J,this.value=$,this.maxPoint=Q}get length(){return this.to[this.to.length-1]}findIndex(Z,J,$,Q=0){let X=$?this.to:this.from;for(let z=Q,K=X.length;;){if(z==K)return z;let Y=z+K>>1,q=X[Y]-Z||($?this.value[Y].endSide:this.value[Y].startSide)-J;if(Y==z)return q>=0?z:K;if(q>=0)K=Y;else z=Y+1}}between(Z,J,$,Q){for(let X=this.findIndex(J,-1e9,!0),z=this.findIndex($,1e9,!1,X);X<z;X++)if(Q(this.from[X]+Z,this.to[X]+Z,this.value[X])===!1)return!1}map(Z,J){let $=[],Q=[],X=[],z=-1,K=-1;for(let Y=0;Y<this.value.length;Y++){let q=this.value[Y],W=this.from[Y]+Z,U=this.to[Y]+Z,H,F;if(W==U){let O=J.mapPos(W,q.startSide,q.mapMode);if(O==null)continue;if(H=F=O,q.startSide!=q.endSide){if(F=J.mapPos(W,q.endSide),F<H)continue}}else if(H=J.mapPos(W,q.startSide),F=J.mapPos(U,q.endSide),H>F||H==F&&q.startSide>0&&q.endSide<=0)continue;if((F-H||q.endSide-q.startSide)<0)continue;if(z<0)z=H;if(q.point)K=Math.max(K,F-H);$.push(q),Q.push(H-z),X.push(F-z)}return{mapped:$.length?new OJ(Q,X,$,K):null,pos:z}}}class f0{constructor(Z,J,$,Q){this.chunkPos=Z,this.chunk=J,this.nextLayer=$,this.maxPoint=Q}static create(Z,J,$,Q){return new f0(Z,J,$,Q)}get length(){let Z=this.chunk.length-1;return Z<0?0:Math.max(this.chunkEnd(Z),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let Z=this.nextLayer.size;for(let J of this.chunk)Z+=J.value.length;return Z}chunkEnd(Z){return this.chunkPos[Z]+this.chunk[Z].length}update(Z){let{add:J=[],sort:$=!1,filterFrom:Q=0,filterTo:X=this.length}=Z,z=Z.filter;if(J.length==0&&!z)return this;if($)J=J.slice().sort(KJ);if(this.isEmpty)return J.length?f0.of(J):this;let K=new NJ(this,null,-1).goto(0),Y=0,q=[],W=new ZZ;while(K.value||Y<J.length)if(Y<J.length&&(K.from-J[Y].from||K.startSide-J[Y].value.startSide)>=0){let U=J[Y++];if(!W.addInner(U.from,U.to,U.value))q.push(U)}else if(K.rangeIndex==1&&K.chunkIndex<this.chunk.length&&(Y==J.length||this.chunkEnd(K.chunkIndex)<J[Y].from)&&(!z||Q>this.chunkEnd(K.chunkIndex)||X<this.chunkPos[K.chunkIndex])&&W.addChunk(this.chunkPos[K.chunkIndex],this.chunk[K.chunkIndex]))K.nextChunk();else{if(!z||Q>K.to||X<K.from||z(K.from,K.to,K.value)){if(!W.addInner(K.from,K.to,K.value))q.push(X5.create(K.from,K.to,K.value))}K.next()}return W.finishInner(this.nextLayer.isEmpty&&!q.length?f0.empty:this.nextLayer.update({add:q,filter:z,filterFrom:Q,filterTo:X}))}map(Z){if(Z.empty||this.isEmpty)return this;let J=[],$=[],Q=-1;for(let z=0;z<this.chunk.length;z++){let K=this.chunkPos[z],Y=this.chunk[z],q=Z.touchesRange(K,K+Y.length);if(q===!1)Q=Math.max(Q,Y.maxPoint),J.push(Y),$.push(Z.mapPos(K));else if(q===!0){let{mapped:W,pos:U}=Y.map(K,Z);if(W)Q=Math.max(Q,W.maxPoint),J.push(W),$.push(U)}}let X=this.nextLayer.map(Z);return J.length==0?X:new f0($,J,X||f0.empty,Q)}between(Z,J,$){if(this.isEmpty)return;for(let Q=0;Q<this.chunk.length;Q++){let X=this.chunkPos[Q],z=this.chunk[Q];if(J>=X&&Z<=X+z.length&&z.between(X,Z-X,J-X,$)===!1)return}this.nextLayer.between(Z,J,$)}iter(Z=0){return z5.from([this]).goto(Z)}get isEmpty(){return this.nextLayer==this}static iter(Z,J=0){return z5.from(Z).goto(J)}static compare(Z,J,$,Q,X=-1){let z=Z.filter((U)=>U.maxPoint>0||!U.isEmpty&&U.maxPoint>=X),K=J.filter((U)=>U.maxPoint>0||!U.isEmpty&&U.maxPoint>=X),Y=gQ(z,K,$),q=new z6(z,Y,X),W=new z6(K,Y,X);if($.iterGaps((U,H,F)=>mQ(q,U,W,H,F,Q)),$.empty&&$.length==0)mQ(q,0,W,0,0,Q)}static eq(Z,J,$=0,Q){if(Q==null)Q=999999999;let X=Z.filter((W)=>!W.isEmpty&&J.indexOf(W)<0),z=J.filter((W)=>!W.isEmpty&&Z.indexOf(W)<0);if(X.length!=z.length)return!1;if(!X.length)return!0;let K=gQ(X,z),Y=new z6(X,K,0).goto($),q=new z6(z,K,0).goto($);for(;;){if(Y.to!=q.to||!YJ(Y.active,q.active)||Y.point&&(!q.point||!FJ(Y.point,q.point)))return!1;if(Y.to>Q)return!0;Y.next(),q.next()}}static spans(Z,J,$,Q,X=-1){let z=new z6(Z,null,X).goto(J),K=J,Y=z.openStart;for(;;){let q=Math.min(z.to,$);if(z.point){let W=z.activeForPoint(z.to),U=z.pointFrom<J?W.length+1:z.point.startSide<0?W.length:Math.min(W.length,Y);Q.point(K,q,z.point,W,U,z.pointRank),Y=Math.min(z.openEnd(q),W.length)}else if(q>K)Q.span(K,q,z.active,Y),Y=z.openEnd(q);if(z.to>$)return Y+(z.point&&z.to>$?1:0);K=z.to,z.next()}}static of(Z,J=!1){let $=new ZZ;for(let Q of Z instanceof X5?[Z]:J?VO(Z):Z)$.add(Q.from,Q.to,Q.value);return $.finish()}static join(Z){if(!Z.length)return f0.empty;let J=Z[Z.length-1];for(let $=Z.length-2;$>=0;$--)for(let Q=Z[$];Q!=f0.empty;Q=Q.nextLayer)J=new f0(Q.chunkPos,Q.chunk,J,Math.max(Q.maxPoint,J.maxPoint));return J}}f0.empty=new f0([],[],null,-1);function VO(Z){if(Z.length>1)for(let J=Z[0],$=1;$<Z.length;$++){let Q=Z[$];if(KJ(J,Q)>0)return Z.slice().sort(KJ);J=Q}return Z}f0.empty.nextLayer=f0.empty;class ZZ{finishChunk(Z){if(this.chunks.push(new OJ(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,Z)this.from=[],this.to=[],this.value=[]}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(Z,J,$){if(!this.addInner(Z,J,$))(this.nextLayer||(this.nextLayer=new ZZ)).add(Z,J,$)}addInner(Z,J,$){let Q=Z-this.lastTo||$.startSide-this.last.endSide;if(Q<=0&&(Z-this.lastFrom||$.startSide-this.last.startSide)<0)throw Error("Ranges must be added sorted by `from` position and `startSide`");if(Q<0)return!1;if(this.from.length==250)this.finishChunk(!0);if(this.chunkStart<0)this.chunkStart=Z;if(this.from.push(Z-this.chunkStart),this.to.push(J-this.chunkStart),this.last=$,this.lastFrom=Z,this.lastTo=J,this.value.push($),$.point)this.maxPoint=Math.max(this.maxPoint,J-Z);return!0}addChunk(Z,J){if((Z-this.lastTo||J.value[0].startSide-this.last.endSide)<0)return!1;if(this.from.length)this.finishChunk(!0);this.setMaxPoint=Math.max(this.setMaxPoint,J.maxPoint),this.chunks.push(J),this.chunkPos.push(Z);let $=J.value.length-1;return this.last=J.value[$],this.lastFrom=J.from[$]+Z,this.lastTo=J.to[$]+Z,!0}finish(){return this.finishInner(f0.empty)}finishInner(Z){if(this.from.length)this.finishChunk(!1);if(this.chunks.length==0)return Z;let J=f0.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(Z):Z,this.setMaxPoint);return this.from=null,J}}function gQ(Z,J,$){let Q=new Map;for(let z of Z)for(let K=0;K<z.chunk.length;K++)if(z.chunk[K].maxPoint<=0)Q.set(z.chunk[K],z.chunkPos[K]);let X=new Set;for(let z of J)for(let K=0;K<z.chunk.length;K++){let Y=Q.get(z.chunk[K]);if(Y!=null&&($?$.mapPos(Y):Y)==z.chunkPos[K]&&!($===null||$===void 0?void 0:$.touchesRange(Y,Y+z.chunk[K].length)))X.add(z.chunk[K])}return X}class NJ{constructor(Z,J,$,Q=0){this.layer=Z,this.skip=J,this.minPoint=$,this.rank=Q}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(Z,J=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(Z,J,!1),this}gotoInner(Z,J,$){while(this.chunkIndex<this.layer.chunk.length){let Q=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(Q)||this.layer.chunkEnd(this.chunkIndex)<Z||Q.maxPoint<this.minPoint))break;this.chunkIndex++,$=!1}if(this.chunkIndex<this.layer.chunk.length){let Q=this.layer.chunk[this.chunkIndex].findIndex(Z-this.layer.chunkPos[this.chunkIndex],J,!0);if(!$||this.rangeIndex<Q)this.setRangeIndex(Q)}this.next()}forward(Z,J){if((this.to-Z||this.endSide-J)<0)this.gotoInner(Z,J,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let Z=this.layer.chunkPos[this.chunkIndex],J=this.layer.chunk[this.chunkIndex],$=Z+J.from[this.rangeIndex];if(this.from=$,this.to=Z+J.to[this.rangeIndex],this.value=J.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(Z){if(Z==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)while(this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]))this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=Z}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(Z){return this.from-Z.from||this.startSide-Z.startSide||this.rank-Z.rank||this.to-Z.to||this.endSide-Z.endSide}}class z5{constructor(Z){this.heap=Z}static from(Z,J=null,$=-1){let Q=[];for(let X=0;X<Z.length;X++)for(let z=Z[X];!z.isEmpty;z=z.nextLayer)if(z.maxPoint>=$)Q.push(new NJ(z,J,$,X));return Q.length==1?Q[0]:new z5(Q)}get startSide(){return this.value?this.value.startSide:0}goto(Z,J=-1e9){for(let $ of this.heap)$.goto(Z,J);for(let $=this.heap.length>>1;$>=0;$--)t1(this.heap,$);return this.next(),this}forward(Z,J){for(let $ of this.heap)$.forward(Z,J);for(let $=this.heap.length>>1;$>=0;$--)t1(this.heap,$);if((this.to-Z||this.value.endSide-J)<0)this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let Z=this.heap[0];if(this.from=Z.from,this.to=Z.to,this.value=Z.value,this.rank=Z.rank,Z.value)Z.next();t1(this.heap,0)}}}function t1(Z,J){for(let $=Z[J];;){let Q=(J<<1)+1;if(Q>=Z.length)break;let X=Z[Q];if(Q+1<Z.length&&X.compare(Z[Q+1])>=0)X=Z[Q+1],Q++;if($.compare(X)<0)break;Z[Q]=$,Z[J]=X,J=Q}}class z6{constructor(Z,J,$){this.minPoint=$,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=z5.from(Z,J,$)}goto(Z,J=-1e9){return this.cursor.goto(Z,J),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=Z,this.endSide=J,this.openStart=-1,this.next(),this}forward(Z,J){while(this.minActive>-1&&(this.activeTo[this.minActive]-Z||this.active[this.minActive].endSide-J)<0)this.removeActive(this.minActive);this.cursor.forward(Z,J)}removeActive(Z){j4(this.active,Z),j4(this.activeTo,Z),j4(this.activeRank,Z),this.minActive=uQ(this.active,this.activeTo)}addActive(Z){let J=0,{value:$,to:Q,rank:X}=this.cursor;while(J<this.activeRank.length&&(X-this.activeRank[J]||Q-this.activeTo[J])>0)J++;if(D4(this.active,J,$),D4(this.activeTo,J,Q),D4(this.activeRank,J,X),Z)D4(Z,J,this.cursor.from);this.minActive=uQ(this.active,this.activeTo)}next(){let Z=this.to,J=this.point;this.point=null;let $=this.openStart<0?[]:null;for(;;){let Q=this.minActive;if(Q>-1&&(this.activeTo[Q]-this.cursor.from||this.active[Q].endSide-this.cursor.startSide)<0){if(this.activeTo[Q]>Z){this.to=this.activeTo[Q],this.endSide=this.active[Q].endSide;break}if(this.removeActive(Q),$)j4($,Q)}else if(!this.cursor.value){this.to=this.endSide=1e9;break}else if(this.cursor.from>Z){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let X=this.cursor.value;if(!X.point)this.addActive($),this.cursor.next();else if(J&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=X,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=X.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}}if($){this.openStart=0;for(let Q=$.length-1;Q>=0&&$[Q]<Z;Q--)this.openStart++}}activeForPoint(Z){if(!this.active.length)return this.active;let J=[];for(let $=this.active.length-1;$>=0;$--){if(this.activeRank[$]<this.pointRank)break;if(this.activeTo[$]>Z||this.activeTo[$]==Z&&this.active[$].endSide>=this.point.endSide)J.push(this.active[$])}return J.reverse()}openEnd(Z){let J=0;for(let $=this.activeTo.length-1;$>=0&&this.activeTo[$]>Z;$--)J++;return J}}function mQ(Z,J,$,Q,X,z){Z.goto(J),$.goto(Q);let K=Q+X,Y=Q,q=Q-J,W=!!z.boundChange;for(let U=!1;;){let H=Z.to+q-$.to,F=H||Z.endSide-$.endSide,O=F<0?Z.to+q:$.to,N=Math.min(O,K);if(Z.point||$.point){if(!(Z.point&&$.point&&FJ(Z.point,$.point)&&YJ(Z.activeForPoint(Z.to),$.activeForPoint($.to))))z.comparePoint(Y,N,Z.point,$.point);U=!1}else{if(U)z.boundChange(Y);if(N>Y&&!YJ(Z.active,$.active))z.compareRange(Y,N,Z.active,$.active);if(W&&N<K&&(H||Z.openEnd(O)!=$.openEnd(O)))U=!0}if(O>K)break;if(Y=O,F<=0)Z.next();if(F>=0)$.next()}}function YJ(Z,J){if(Z.length!=J.length)return!1;for(let $=0;$<Z.length;$++)if(Z[$]!=J[$]&&!FJ(Z[$],J[$]))return!1;return!0}function j4(Z,J){for(let $=J,Q=Z.length-1;$<Q;$++)Z[$]=Z[$+1];Z.pop()}function D4(Z,J,$){for(let Q=Z.length-1;Q>=J;Q--)Z[Q+1]=Z[Q];Z[J]=$}function uQ(Z,J){let $=-1,Q=1e9;for(let X=0;X<J.length;X++)if((J[X]-Q||Z[X].endSide-Z[$].endSide)<0)$=X,Q=J[X];return $}function D8(Z,J,$=Z.length){let Q=0;for(let X=0;X<$&&X<Z.length;)if(Z.charCodeAt(X)==9)Q+=J-Q%J,X++;else Q++,X=U9(Z,X);return Q}function QX(Z,J,$,Q){for(let X=0,z=0;;){if(z>=J)return X;if(X==Z.length)break;z+=Z.charCodeAt(X)==9?$-z%$:1,X=U9(Z,X)}return Q===!0?-1:Z.length}var XX=typeof Symbol>"u"?"__"+"ͼ":Symbol.for("ͼ"),BJ=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),zX=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class $Z{constructor(Z,J){this.rules=[];let{finish:$}=J||{};function Q(z){return/^@/.test(z)?[z]:z.split(/,\s*/)}function X(z,K,Y,q){let W=[],U=/^@(\w+)\b/.exec(z[0]),H=U&&U[1]=="keyframes";if(U&&K==null)return Y.push(z[0]+";");for(let F in K){let O=K[F];if(/&/.test(F))X(F.split(/,\s*/).map((N)=>z.map((_)=>N.replace(/&/,_))).reduce((N,_)=>N.concat(_)),O,Y);else if(O&&typeof O=="object"){if(!U)throw RangeError("The value of a property ("+F+") should be a primitive value.");X(Q(F),O,W,H)}else if(O!=null)W.push(F.replace(/_.*/,"").replace(/[A-Z]/g,(N)=>"-"+N.toLowerCase())+": "+O+";")}if(W.length||H)Y.push(($&&!U&&!q?z.map($):z).join(", ")+" {"+W.join(" ")+"}")}for(let z in Z)X(Q(z),Z[z],this.rules)}getRules(){return this.rules.join(`
|
|
43
|
+
`)}static newName(){let Z=zX[XX]||1;return zX[XX]=Z+1,"ͼ"+Z.toString(36)}static mount(Z,J,$){let Q=Z[BJ],X=$&&$.nonce;if(!Q)Q=new YX(Z,X);else if(X)Q.setNonce(X);Q.mount(Array.isArray(J)?J:[J],Z)}}var KX=new Map;class YX{constructor(Z,J){let $=Z.ownerDocument||Z,Q=$.defaultView;if(!Z.head&&Z.adoptedStyleSheets&&Q.CSSStyleSheet){let X=KX.get($);if(X)return Z[BJ]=X;this.sheet=new Q.CSSStyleSheet,KX.set($,this)}else if(this.styleTag=$.createElement("style"),J)this.styleTag.setAttribute("nonce",J);this.modules=[],Z[BJ]=this}mount(Z,J){let $=this.sheet,Q=0,X=0;for(let z=0;z<Z.length;z++){let K=Z[z],Y=this.modules.indexOf(K);if(Y<X&&Y>-1)this.modules.splice(Y,1),X--,Y=-1;if(Y==-1){if(this.modules.splice(X++,0,K),$)for(let q=0;q<K.rules.length;q++)$.insertRule(K.rules[q],Q++)}else{while(X<Y)Q+=this.modules[X++].rules.length;Q+=K.rules.length,X++}}if($){if(J.adoptedStyleSheets.indexOf(this.sheet)<0)J.adoptedStyleSheets=[this.sheet,...J.adoptedStyleSheets]}else{let z="";for(let Y=0;Y<this.modules.length;Y++)z+=this.modules[Y].getRules()+`
|
|
44
|
+
`;this.styleTag.textContent=z;let K=J.head||J;if(this.styleTag.parentNode!=K)K.insertBefore(this.styleTag,K.firstChild)}}setNonce(Z){if(this.styleTag&&this.styleTag.getAttribute("nonce")!=Z)this.styleTag.setAttribute("nonce",Z)}}var bZ={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},H6={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},yO=typeof navigator<"u"&&/Mac/.test(navigator.platform),kO=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Z9=0;Z9<10;Z9++)bZ[48+Z9]=bZ[96+Z9]=String(Z9);var Z9;for(Z9=1;Z9<=24;Z9++)bZ[Z9+111]="F"+Z9;var Z9;for(Z9=65;Z9<=90;Z9++)bZ[Z9]=String.fromCharCode(Z9+32),H6[Z9]=String.fromCharCode(Z9);var Z9;for(K5 in bZ)if(!H6.hasOwnProperty(K5))H6[K5]=bZ[K5];var K5;function GX(Z){var J=yO&&Z.metaKey&&Z.shiftKey&&!Z.ctrlKey&&!Z.altKey||kO&&Z.shiftKey&&Z.key&&Z.key.length==1||Z.key=="Unidentified",$=!J&&Z.key||(Z.shiftKey?H6:bZ)[Z.keyCode]||Z.key||"Unidentified";if($=="Esc")$="Escape";if($=="Del")$="Delete";if($=="Left")$="ArrowLeft";if($=="Up")$="ArrowUp";if($=="Right")$="ArrowRight";if($=="Down")$="ArrowDown";return $}var C9=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},IJ=typeof document<"u"?document:{documentElement:{style:{}}},RJ=/Edge\/(\d+)/.exec(C9.userAgent),vX=/MSIE \d/.test(C9.userAgent),CJ=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(C9.userAgent),$7=!!(vX||CJ||RJ),qX=!$7&&/gecko\/(\d+)/i.test(C9.userAgent),_J=!$7&&/Chrome\/(\d+)/.exec(C9.userAgent),WX="webkitFontSmoothing"in IJ.documentElement.style,VJ=!$7&&/Apple Computer/.test(C9.vendor),UX=VJ&&(/Mobile\/\w+/.test(C9.userAgent)||C9.maxTouchPoints>2),N0={mac:UX||/Mac/.test(C9.platform),windows:/Win/.test(C9.platform),linux:/Linux|X11/.test(C9.platform),ie:$7,ie_version:vX?IJ.documentMode||6:CJ?+CJ[1]:RJ?+RJ[1]:0,gecko:qX,gecko_version:qX?+(/Firefox\/(\d+)/.exec(C9.userAgent)||[0,0])[1]:0,chrome:!!_J,chrome_version:_J?+_J[1]:0,ios:UX,android:/Android\b/.test(C9.userAgent),webkit:WX,webkit_version:WX?+(/\bAppleWebKit\/(\d+)/.exec(C9.userAgent)||[0,0])[1]:0,safari:VJ,safari_version:VJ?+(/\bVersion\/(\d+(\.\d+)?)/.exec(C9.userAgent)||[0,0])[1]:0,tabSize:IJ.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function uJ(Z,J){for(let $ in Z)if($=="class"&&J.class)J.class+=" "+Z.class;else if($=="style"&&J.style)J.style+=";"+Z.style;else J[$]=Z[$];return J}var n4=Object.create(null);function pJ(Z,J,$){if(Z==J)return!0;if(!Z)Z=n4;if(!J)J=n4;let Q=Object.keys(Z),X=Object.keys(J);if(Q.length-($&&Q.indexOf($)>-1?1:0)!=X.length-($&&X.indexOf($)>-1?1:0))return!1;for(let z of Q)if(z!=$&&(X.indexOf(z)==-1||Z[z]!==J[z]))return!1;return!0}function TO(Z,J){for(let $=Z.attributes.length-1;$>=0;$--){let Q=Z.attributes[$].name;if(J[Q]==null)Z.removeAttribute(Q)}for(let $ in J){let Q=J[$];if($=="style")Z.style.cssText=Q;else if(Z.getAttribute($)!=Q)Z.setAttribute($,Q)}}function HX(Z,J,$){let Q=!1;if(J){for(let X in J)if(!($&&(X in $)))if(Q=!0,X=="style")Z.style.cssText="";else Z.removeAttribute(X)}if($){for(let X in $)if(!(J&&J[X]==$[X]))if(Q=!0,X=="style")Z.style.cssText=$[X];else Z.setAttribute(X,$[X])}return Q}function jO(Z){let J=Object.create(null);for(let $=0;$<Z.attributes.length;$++){let Q=Z.attributes[$];J[Q.name]=Q.value}return J}class N9{eq(Z){return!1}updateDOM(Z,J,$){return!1}compare(Z){return this==Z||this.constructor==Z.constructor&&this.eq(Z)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(Z){return!0}coordsAt(Z,J,$){return null}get isHidden(){return!1}get editable(){return!1}destroy(Z){}}var c9=function(Z){return Z[Z.Text=0]="Text",Z[Z.WidgetBefore=1]="WidgetBefore",Z[Z.WidgetAfter=2]="WidgetAfter",Z[Z.WidgetRange=3]="WidgetRange",Z}(c9||(c9={}));class L0 extends e9{constructor(Z,J,$,Q){super();this.startSide=Z,this.endSide=J,this.widget=$,this.spec=Q}get heightRelevant(){return!1}static mark(Z){return new A5(Z)}static widget(Z){let J=Math.max(-1e4,Math.min(1e4,Z.side||0)),$=!!Z.block;return J+=$&&!Z.inlineOrder?J>0?300000000:-400000000:J>0?1e8:-1e8,new E8(Z,J,J,$,Z.widget||null,!1)}static replace(Z){let J=!!Z.block,$,Q;if(Z.isBlockGap)$=-500000000,Q=400000000;else{let{start:X,end:z}=hX(Z,J);$=(X?J?-300000000:-1:500000000)-1,Q=(z?J?200000000:1:-600000000)+1}return new E8(Z,$,Q,J,Z.widget||null,!0)}static line(Z){return new L5(Z)}static set(Z,J=!1){return f0.of(Z,J)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}L0.none=f0.empty;class A5 extends L0{constructor(Z){let{start:J,end:$}=hX(Z);super(J?-1:500000000,$?1:-600000000,null,Z);this.tagName=Z.tagName||"span",this.attrs=Z.class&&Z.attributes?uJ(Z.attributes,{class:Z.class}):Z.class?{class:Z.class}:Z.attributes||n4}eq(Z){return this==Z||Z instanceof A5&&this.tagName==Z.tagName&&pJ(this.attrs,Z.attrs)}range(Z,J=Z){if(Z>=J)throw RangeError("Mark decorations may not be empty");return super.range(Z,J)}}A5.prototype.point=!1;class L5 extends L0{constructor(Z){super(-200000000,-200000000,null,Z)}eq(Z){return Z instanceof L5&&this.spec.class==Z.spec.class&&pJ(this.spec.attributes,Z.spec.attributes)}range(Z,J=Z){if(J!=Z)throw RangeError("Line decoration ranges must be zero-length");return super.range(Z,J)}}L5.prototype.mapMode=D9.TrackBefore;L5.prototype.point=!0;class E8 extends L0{constructor(Z,J,$,Q,X,z){super(J,$,X,Z);this.block=Q,this.isReplace=z,this.mapMode=!Q?D9.TrackDel:J<=0?D9.TrackBefore:D9.TrackAfter}get type(){return this.startSide!=this.endSide?c9.WidgetRange:this.startSide<=0?c9.WidgetBefore:c9.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(Z){return Z instanceof E8&&DO(this.widget,Z.widget)&&this.block==Z.block&&this.startSide==Z.startSide&&this.endSide==Z.endSide}range(Z,J=Z){if(this.isReplace&&(Z>J||Z==J&&this.startSide>0&&this.endSide<=0))throw RangeError("Invalid range for replacement decoration");if(!this.isReplace&&J!=Z)throw RangeError("Widget decorations can only have zero-length ranges");return super.range(Z,J)}}E8.prototype.point=!0;function hX(Z,J=!1){let{inclusiveStart:$,inclusiveEnd:Q}=Z;if($==null)$=Z.inclusive;if(Q==null)Q=Z.inclusive;return{start:$!==null&&$!==void 0?$:J,end:Q!==null&&Q!==void 0?Q:J}}function DO(Z,J){return Z==J||!!(Z&&J&&Z.compare(J))}function N6(Z,J,$,Q=0){let X=$.length-1;if(X>=0&&$[X]+Q>=Z)$[X]=Math.max($[X],J);else $.push(Z,J)}class O5 extends e9{constructor(Z,J,$){super();this.tagName=Z,this.attributes=J,this.rank=$}eq(Z){return Z==this||Z instanceof O5&&this.tagName==Z.tagName&&pJ(this.attributes,Z.attributes)}static create(Z){return new O5(Z.tagName,Z.attributes||n4,Z.rank==null?50:Math.max(0,Math.min(Z.rank,100)))}static set(Z,J=!1){return f0.of(Z,J)}}O5.prototype.startSide=O5.prototype.endSide=-1;function N5(Z){let J;if(Z.nodeType==11)J=Z.getSelection?Z:Z.ownerDocument;else J=Z;return J.getSelection()}function yJ(Z,J){return J?Z==J||Z.contains(J.nodeType!=1?J.parentNode:J):!1}function U5(Z,J){if(!J.anchorNode)return!1;try{return yJ(Z,J.anchorNode)}catch($){return!1}}function c4(Z){if(Z.nodeType==3)return B5(Z,0,Z.nodeValue.length).getClientRects();else if(Z.nodeType==1)return Z.getClientRects();else return[]}function H5(Z,J,$,Q){return $?FX(Z,J,$,Q,-1)||FX(Z,J,$,Q,1):!1}function Z8(Z){for(var J=0;;J++)if(Z=Z.previousSibling,!Z)return J}function s4(Z){return Z.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(Z.nodeName)}function FX(Z,J,$,Q,X){for(;;){if(Z==$&&J==Q)return!0;if(J==(X<0?0:xZ(Z))){if(Z.nodeName=="DIV")return!1;let z=Z.parentNode;if(!z||z.nodeType!=1)return!1;J=Z8(Z)+(X<0?0:1),Z=z}else if(Z.nodeType==1){if(Z=Z.childNodes[J+(X<0?-1:0)],Z.nodeType==1&&Z.contentEditable=="false")return!1;J=X<0?xZ(Z):0}else return!1}}function xZ(Z){return Z.nodeType==3?Z.nodeValue.length:Z.childNodes.length}function r4(Z,J){let $=J?Z.left:Z.right;return{left:$,right:$,top:Z.top,bottom:Z.bottom}}function SO(Z){let J=Z.visualViewport;if(J)return{left:0,right:J.width,top:0,bottom:J.height};return{left:0,right:Z.innerWidth,top:0,bottom:Z.innerHeight}}function fX(Z,J){let $=J.width/Z.offsetWidth,Q=J.height/Z.offsetHeight;if($>0.995&&$<1.005||!isFinite($)||Math.abs(J.width-Z.offsetWidth)<1)$=1;if(Q>0.995&&Q<1.005||!isFinite(Q)||Math.abs(J.height-Z.offsetHeight)<1)Q=1;return{scaleX:$,scaleY:Q}}function bO(Z,J,$,Q,X,z,K,Y){let q=Z.ownerDocument,W=q.defaultView||window;for(let U=Z,H=!1;U&&!H;)if(U.nodeType==1){let F,O=U==q.body,N=1,_=1;if(O)F=SO(W);else{if(/^(fixed|sticky)$/.test(getComputedStyle(U).position))H=!0;if(U.scrollHeight<=U.clientHeight&&U.scrollWidth<=U.clientWidth){U=U.assignedSlot||U.parentNode;continue}let B=U.getBoundingClientRect();({scaleX:N,scaleY:_}=fX(U,B)),F={left:B.left,right:B.left+U.clientWidth*N,top:B.top,bottom:B.top+U.clientHeight*_}}let A=0,L=0;if(X=="nearest"){if(J.top<F.top+K){if(L=J.top-(F.top+K),$>0&&J.bottom>F.bottom+L)L=J.bottom-F.bottom+K}else if(J.bottom>F.bottom-K){if(L=J.bottom-F.bottom+K,$<0&&J.top-L<F.top)L=J.top-(F.top+K)}}else{let B=J.bottom-J.top,M=F.bottom-F.top;L=(X=="center"&&B<=M?J.top+B/2-M/2:X=="start"||X=="center"&&$<0?J.top-K:J.bottom-M+K)-F.top}if(Q=="nearest"){if(J.left<F.left+z){if(A=J.left-(F.left+z),$>0&&J.right>F.right+A)A=J.right-F.right+z}else if(J.right>F.right-z){if(A=J.right-F.right+z,$<0&&J.left<F.left+A)A=J.left-(F.left+z)}}else A=(Q=="center"?J.left+(J.right-J.left)/2-(F.right-F.left)/2:Q=="start"==Y?J.left-z:J.right-(F.right-F.left)+z)-F.left;if(A||L)if(O)W.scrollBy(A,L);else{let B=0,M=0;if(L){let C=U.scrollTop;U.scrollTop+=L/_,M=(U.scrollTop-C)*_}if(A){let C=U.scrollLeft;U.scrollLeft+=A/N,B=(U.scrollLeft-C)*N}if(J={left:J.left-B,top:J.top-M,right:J.right-B,bottom:J.bottom-M},B&&Math.abs(B-A)<1)Q="nearest";if(M&&Math.abs(M-L)<1)X="nearest"}if(O)break;if(J.top<F.top||J.bottom>F.bottom||J.left<F.left||J.right>F.right)J={left:Math.max(J.left,F.left),right:Math.min(J.right,F.right),top:Math.max(J.top,F.top),bottom:Math.min(J.bottom,F.bottom)};U=U.assignedSlot||U.parentNode}else if(U.nodeType==11)U=U.host;else break}function gX(Z,J=!0){let $=Z.ownerDocument,Q=null,X=null;for(let z=Z.parentNode;z;)if(z==$.body||(!J||Q)&&X)break;else if(z.nodeType==1){if(!X&&z.scrollHeight>z.clientHeight)X=z;if(J&&!Q&&z.scrollWidth>z.clientWidth)Q=z;z=z.assignedSlot||z.parentNode}else if(z.nodeType==11)z=z.host;else break;return{x:Q,y:X}}class mX{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(Z){return this.anchorNode==Z.anchorNode&&this.anchorOffset==Z.anchorOffset&&this.focusNode==Z.focusNode&&this.focusOffset==Z.focusOffset}setRange(Z){let{anchorNode:J,focusNode:$}=Z;this.set(J,Math.min(Z.anchorOffset,J?xZ(J):0),$,Math.min(Z.focusOffset,$?xZ($):0))}set(Z,J,$,Q){this.anchorNode=Z,this.anchorOffset=J,this.focusNode=$,this.focusOffset=Q}}var S8=null;if(N0.safari&&N0.safari_version>=26)S8=!1;function uX(Z){if(Z.setActive)return Z.setActive();if(S8)return Z.focus(S8);let J=[];for(let $=Z;$;$=$.parentNode)if(J.push($,$.scrollTop,$.scrollLeft),$==$.ownerDocument)break;if(Z.focus(S8==null?{get preventScroll(){return S8={preventScroll:!0},!0}}:void 0),!S8){S8=!1;for(let $=0;$<J.length;){let Q=J[$++],X=J[$++],z=J[$++];if(Q.scrollTop!=X)Q.scrollTop=X;if(Q.scrollLeft!=z)Q.scrollLeft=z}}}var OX;function B5(Z,J,$=J){let Q=OX||(OX=document.createRange());return Q.setEnd(Z,$),Q.setStart(Z,J),Q}function B6(Z,J,$,Q){let X={key:J,code:J,keyCode:$,which:$,cancelable:!0};if(Q)({altKey:X.altKey,ctrlKey:X.ctrlKey,shiftKey:X.shiftKey,metaKey:X.metaKey}=Q);let z=new KeyboardEvent("keydown",X);z.synthetic=!0,Z.dispatchEvent(z);let K=new KeyboardEvent("keyup",X);return K.synthetic=!0,Z.dispatchEvent(K),z.defaultPrevented||K.defaultPrevented}function EO(Z){while(Z){if(Z&&(Z.nodeType==9||Z.nodeType==11&&Z.host))return Z;Z=Z.assignedSlot||Z.parentNode}return null}function wO(Z,J){let{focusNode:$,focusOffset:Q}=J;if(!$||J.anchorNode!=$||J.anchorOffset!=Q)return!1;Q=Math.min(Q,xZ($));for(;;)if(Q){if($.nodeType!=1)return!1;let X=$.childNodes[Q-1];if(X.contentEditable=="false")Q--;else $=X,Q=xZ($)}else if($==Z)return!0;else Q=Z8($),$=$.parentNode}function pX(Z){if(Z instanceof Window)return Z.pageYOffset>Math.max(0,Z.document.documentElement.scrollHeight-Z.innerHeight-4);return Z.scrollTop>Math.max(1,Z.scrollHeight-Z.clientHeight-4)}function cX(Z,J){for(let $=Z,Q=J;;)if($.nodeType==3&&Q>0)return{node:$,offset:Q};else if($.nodeType==1&&Q>0){if($.contentEditable=="false")return null;$=$.childNodes[Q-1],Q=xZ($)}else if($.parentNode&&!s4($))Q=Z8($),$=$.parentNode;else return null}function dX(Z,J){for(let $=Z,Q=J;;)if($.nodeType==3&&Q<$.nodeValue.length)return{node:$,offset:Q};else if($.nodeType==1&&Q<$.childNodes.length){if($.contentEditable=="false")return null;$=$.childNodes[Q],Q=0}else if($.parentNode&&!s4($))Q=Z8($)+1,$=$.parentNode;else return null}class zZ{constructor(Z,J,$=!0){this.node=Z,this.offset=J,this.precise=$}static before(Z,J){return new zZ(Z.parentNode,Z8(Z),J)}static after(Z,J){return new zZ(Z.parentNode,Z8(Z)+1,J)}}var Q9=function(Z){return Z[Z.LTR=0]="LTR",Z[Z.RTL=1]="RTL",Z}(Q9||(Q9={})),w8=Q9.LTR,cJ=Q9.RTL;function lX(Z){let J=[];for(let $=0;$<Z.length;$++)J.push(1<<+Z[$]);return J}var xO=lX("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),vO=lX("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),kJ=Object.create(null),AZ=[];for(let Z of["()","[]","{}"]){let J=Z.charCodeAt(0),$=Z.charCodeAt(1);kJ[J]=$,kJ[$]=-J}function aX(Z){return Z<=247?xO[Z]:1424<=Z&&Z<=1524?2:1536<=Z&&Z<=1785?vO[Z-1536]:1774<=Z&&Z<=2220?4:8192<=Z&&Z<=8204?256:64336<=Z&&Z<=65023?4:1}var hO=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class KZ{get dir(){return this.level%2?cJ:w8}constructor(Z,J,$){this.from=Z,this.to=J,this.level=$}side(Z,J){return this.dir==J==Z?this.to:this.from}forward(Z,J){return Z==(this.dir==J)}static find(Z,J,$,Q){let X=-1;for(let z=0;z<Z.length;z++){let K=Z[z];if(K.from<=J&&K.to>=J){if(K.level==$)return z;if(X<0||(Q!=0?Q<0?K.from<J:K.to>J:Z[X].level>K.level))X=z}}if(X<0)throw RangeError("Index out of range");return X}}function iX(Z,J){if(Z.length!=J.length)return!1;for(let $=0;$<Z.length;$++){let Q=Z[$],X=J[$];if(Q.from!=X.from||Q.to!=X.to||Q.direction!=X.direction||!iX(Q.inner,X.inner))return!1}return!0}var a0=[];function fO(Z,J,$,Q,X){for(let z=0;z<=Q.length;z++){let K=z?Q[z-1].to:J,Y=z<Q.length?Q[z].from:$,q=z?256:X;for(let W=K,U=q,H=q;W<Y;W++){let F=aX(Z.charCodeAt(W));if(F==512)F=U;else if(F==8&&H==4)F=16;if(a0[W]=F==4?2:F,F&7)H=F;U=F}for(let W=K,U=q,H=q;W<Y;W++){let F=a0[W];if(F==128)if(W<Y-1&&U==a0[W+1]&&U&24)F=a0[W]=U;else a0[W]=256;else if(F==64){let O=W+1;while(O<Y&&a0[O]==64)O++;let N=W&&U==8||O<$&&a0[O]==8?H==1?1:8:256;for(let _=W;_<O;_++)a0[_]=N;W=O-1}else if(F==8&&H==1)a0[W]=1;if(U=F,F&7)H=F}}}function gO(Z,J,$,Q,X){let z=X==1?2:1;for(let K=0,Y=0,q=0;K<=Q.length;K++){let W=K?Q[K-1].to:J,U=K<Q.length?Q[K].from:$;for(let H=W,F,O,N;H<U;H++)if(O=kJ[F=Z.charCodeAt(H)])if(O<0){for(let _=Y-3;_>=0;_-=3)if(AZ[_+1]==-O){let A=AZ[_+2],L=A&2?X:!(A&4)?0:A&1?z:X;if(L)a0[H]=a0[AZ[_]]=L;Y=_;break}}else if(AZ.length==189)break;else AZ[Y++]=H,AZ[Y++]=F,AZ[Y++]=q;else if((N=a0[H])==2||N==1){let _=N==X;q=_?0:1;for(let A=Y-3;A>=0;A-=3){let L=AZ[A+2];if(L&2)break;if(_)AZ[A+2]|=2;else{if(L&4)break;AZ[A+2]|=4}}}}}function mO(Z,J,$,Q){for(let X=0,z=Q;X<=$.length;X++){let K=X?$[X-1].to:Z,Y=X<$.length?$[X].from:J;for(let q=K;q<Y;){let W=a0[q];if(W==256){let U=q+1;for(;;)if(U==Y){if(X==$.length)break;U=$[X++].to,Y=X<$.length?$[X].from:J}else if(a0[U]==256)U++;else break;let H=z==1,F=(U<J?a0[U]:Q)==1,O=H==F?H?1:2:Q;for(let N=U,_=X,A=_?$[_-1].to:Z;N>q;){if(N==A)N=$[--_].from,A=_?$[_-1].to:Z;a0[--N]=O}q=U}else z=W,q++}}}function TJ(Z,J,$,Q,X,z,K){let Y=Q%2?2:1;if(Q%2==X%2)for(let q=J,W=0;q<$;){let U=!0,H=!1;if(W==z.length||q<z[W].from){let _=a0[q];if(_!=Y)U=!1,H=_==16}let F=!U&&Y==1?[]:null,O=U?Q:Q+1,N=q;Z:for(;;)if(W<z.length&&N==z[W].from){if(H)break Z;let _=z[W];if(!U)for(let A=_.to,L=W+1;;){if(A==$)break Z;if(L<z.length&&z[L].from==A)A=z[L++].to;else if(a0[A]==Y)break Z;else break}if(W++,F)F.push(_);else{if(_.from>q)K.push(new KZ(q,_.from,O));let A=_.direction==w8!=!(O%2);jJ(Z,A?Q+1:Q,X,_.inner,_.from,_.to,K),q=_.to}N=_.to}else if(N==$||(U?a0[N]!=Y:a0[N]==Y))break;else N++;if(F)TJ(Z,q,N,Q+1,X,F,K);else if(q<N)K.push(new KZ(q,N,O));q=N}else for(let q=$,W=z.length;q>J;){let U=!0,H=!1;if(!W||q>z[W-1].to){let _=a0[q-1];if(_!=Y)U=!1,H=_==16}let F=!U&&Y==1?[]:null,O=U?Q:Q+1,N=q;Z:for(;;)if(W&&N==z[W-1].to){if(H)break Z;let _=z[--W];if(!U)for(let A=_.from,L=W;;){if(A==J)break Z;if(L&&z[L-1].to==A)A=z[--L].from;else if(a0[A-1]==Y)break Z;else break}if(F)F.push(_);else{if(_.to<q)K.push(new KZ(_.to,q,O));let A=_.direction==w8!=!(O%2);jJ(Z,A?Q+1:Q,X,_.inner,_.from,_.to,K),q=_.from}N=_.from}else if(N==J||(U?a0[N-1]!=Y:a0[N-1]==Y))break;else N--;if(F)TJ(Z,N,q,Q+1,X,F,K);else if(N<q)K.push(new KZ(N,q,O));q=N}}function jJ(Z,J,$,Q,X,z,K){let Y=J%2?2:1;fO(Z,X,z,Q,Y),gO(Z,X,z,Q,Y),mO(X,z,Q,Y),TJ(Z,X,z,J,$,Q,K)}function uO(Z,J,$){if(!Z)return[new KZ(0,0,J==cJ?1:0)];if(J==w8&&!$.length&&!hO.test(Z))return nX(Z.length);if($.length)while(Z.length>a0.length)a0[a0.length]=256;let Q=[],X=J==w8?0:1;return jJ(Z,X,X,$,0,Z.length,Q),Q}function nX(Z){return[new KZ(0,Z,0)]}var sX="";function pO(Z,J,$,Q,X){var z;let K=Q.head-Z.from,Y=KZ.find(J,K,(z=Q.bidiLevel)!==null&&z!==void 0?z:-1,Q.assoc),q=J[Y],W=q.side(X,$);if(K==W){let F=Y+=X?1:-1;if(F<0||F>=J.length)return null;q=J[Y=F],K=q.side(!X,$),W=q.side(X,$)}let U=U9(Z.text,K,q.forward(X,$));if(U<q.from||U>q.to)U=W;sX=Z.text.slice(Math.min(K,U),Math.max(K,U));let H=Y==(X?J.length-1:0)?null:J[Y+(X?1:-1)];if(H&&U==W&&H.level+(X?0:1)<q.level)return $0.cursor(H.side(!X,$)+Z.from,H.forward(X,$)?1:-1,H.level);return $0.cursor(U+Z.from,q.forward(X,$)?-1:1,q.level)}function cO(Z,J,$){for(let Q=J;Q<$;Q++){let X=aX(Z.charCodeAt(Q));if(X==1)return w8;if(X==2||X==4)return cJ}return w8}var rX=M0.define(),oX=M0.define(),tX=M0.define(),eX=M0.define(),DJ=M0.define(),Zz=M0.define(),Jz=M0.define(),dJ=M0.define(),lJ=M0.define(),$z=M0.define({combine:(Z)=>Z.some((J)=>J)}),dO=M0.define({combine:(Z)=>Z.some((J)=>J)}),Qz=M0.define();class _6{constructor(Z,J,$,Q,X,z=!1){this.range=Z,this.y=J,this.x=$,this.yMargin=Q,this.xMargin=X,this.isSnapshot=z}map(Z){return Z.empty?this:new _6(this.range.map(Z),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(Z){return this.range.to<=Z.doc.length?this:new _6($0.cursor(Z.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}var v4=h0.define({map:(Z,J)=>Z.map(J)}),Xz=h0.define();function YZ(Z,J,$){let Q=Z.facet(eX);if(Q.length)Q[0](J);else if(window.onerror&&window.onerror(String(J),$,void 0,void 0,J));else if($)console.error($+":",J);else console.error(J)}var EZ=M0.define({combine:(Z)=>Z.length?Z[0]:!0}),lO=0,O6=M0.define({combine(Z){return Z.filter((J,$)=>{for(let Q=0;Q<$;Q++)if(Z[Q].plugin==J.plugin)return!1;return!0})}});class e0{constructor(Z,J,$,Q,X){this.id=Z,this.create=J,this.domEventHandlers=$,this.domEventObservers=Q,this.baseExtensions=X(this),this.extension=this.baseExtensions.concat(O6.of({plugin:this,arg:void 0}))}of(Z){return this.baseExtensions.concat(O6.of({plugin:this,arg:Z}))}static define(Z,J){let{eventHandlers:$,eventObservers:Q,provide:X,decorations:z}=J||{};return new e0(lO++,Z,$,Q,(K)=>{let Y=[];if(z)Y.push(Q7.of((q)=>{let W=q.plugin(K);return W?z(W):L0.none}));if(X)Y.push(X(K));return Y})}static fromClass(Z,J){return e0.define(($,Q)=>new Z($,Q),J)}}class d4{constructor(Z){this.spec=Z,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(Z){if(!this.value){if(this.spec)try{this.value=this.spec.plugin.create(Z,this.spec.arg)}catch(J){YZ(Z.state,J,"CodeMirror plugin crashed"),this.deactivate()}}else if(this.mustUpdate){let J=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(J)}catch($){if(YZ(J.state,$,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(Q){}this.deactivate()}}return this}destroy(Z){var J;if((J=this.value)===null||J===void 0?void 0:J.destroy)try{this.value.destroy()}catch($){YZ(Z.state,$,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}var zz=M0.define(),aJ=M0.define(),Q7=M0.define(),Kz=M0.define(),iJ=M0.define(),P5=M0.define(),Yz=M0.define();function NX(Z,J){let $=Z.state.facet(Yz);if(!$.length)return $;let Q=$.map((z)=>z instanceof Function?z(Z):z),X=[];return f0.spans(Q,J.from,J.to,{point(){},span(z,K,Y,q){let W=z-J.from,U=K-J.from,H=X;for(let F=Y.length-1;F>=0;F--,q--){let O=Y[F].spec.bidiIsolate,N;if(O==null)O=cO(J.text,W,U);if(q>0&&H.length&&(N=H[H.length-1]).to==W&&N.direction==O)N.to=U,H=N.inner;else{let _={from:W,to:U,direction:O,inner:[]};H.push(_),H=_.inner}}}}),X}var Gz=M0.define();function qz(Z){let J=0,$=0,Q=0,X=0;for(let z of Z.state.facet(Gz)){let K=z(Z);if(K){if(K.left!=null)J=Math.max(J,K.left);if(K.right!=null)$=Math.max($,K.right);if(K.top!=null)Q=Math.max(Q,K.top);if(K.bottom!=null)X=Math.max(X,K.bottom)}}return{left:J,right:$,top:Q,bottom:X}}var Y5=M0.define();class p9{constructor(Z,J,$,Q){this.fromA=Z,this.toA=J,this.fromB=$,this.toB=Q}join(Z){return new p9(Math.min(this.fromA,Z.fromA),Math.max(this.toA,Z.toA),Math.min(this.fromB,Z.fromB),Math.max(this.toB,Z.toB))}addToSet(Z){let J=Z.length,$=this;for(;J>0;J--){let Q=Z[J-1];if(Q.fromA>$.toA)continue;if(Q.toA<$.fromA)break;$=$.join(Q),Z.splice(J-1,1)}return Z.splice(J,0,$),Z}static extendWithRanges(Z,J){if(J.length==0)return Z;let $=[];for(let Q=0,X=0,z=0;;){let K=Q<Z.length?Z[Q].fromB:1e9,Y=X<J.length?J[X]:1e9,q=Math.min(K,Y);if(q==1e9)break;let W=q+z,U=q,H=W;for(;;)if(X<J.length&&J[X]<=U){let F=J[X+1];X+=2,U=Math.max(U,F);for(let O=Q;O<Z.length&&Z[O].fromB<=U;O++)z=Z[O].toA-Z[O].toB;H=Math.max(H,F+z)}else if(Q<Z.length&&Z[Q].fromB<=U){let F=Z[Q++];U=Math.max(U,F.toB),H=Math.max(H,F.toA),z=F.toA-F.toB}else break;$.push(new p9(W,H,q,U))}return $}}class o4{constructor(Z,J,$){this.view=Z,this.state=J,this.transactions=$,this.flags=0,this.startState=Z.state,this.changes=Y9.empty(this.startState.doc.length);for(let X of $)this.changes=this.changes.compose(X.changes);let Q=[];this.changes.iterChangedRanges((X,z,K,Y)=>Q.push(new p9(X,z,K,Y))),this.changedRanges=Q}static create(Z,J,$){return new o4(Z,J,$)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((Z)=>Z.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}var aO=[];class J9{constructor(Z,J,$=0){this.dom=Z,this.length=J,this.flags=$,this.parent=null,Z.cmTile=this}get breakAfter(){return this.flags&1}get children(){return aO}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(Z){if(this.flags|=2,this.flags&4){this.flags&=-5;let J=this.domAttrs;if(J)TO(this.dom,J)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(Z){this.dom=Z,Z.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(Z,J=this.posAtStart){let $=J;for(let Q of this.children){if(Q==Z)return $;$+=Q.length+Q.breakAfter}throw RangeError("Invalid child in posBefore")}posAfter(Z){return this.posBefore(Z)+Z.length}covers(Z){return!0}coordsIn(Z,J){return null}domPosFor(Z,J){let $=Z8(this.dom),Q=this.length?Z>0:J>0;return new zZ(this.parent.dom,$+(Q?1:0),Z==0||Z==this.length)}markDirty(Z){if(this.flags&=-3,Z)this.flags|=4;if(this.parent&&this.parent.flags&2)this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let Z=this;Z;Z=Z.parent)if(Z instanceof I5)return Z;return null}static get(Z){return Z.cmTile}}class M5 extends J9{constructor(Z){super(Z,0);this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(Z){this.children.push(Z),Z.parent=this}sync(Z){if(this.flags&2)return;super.sync(Z);let J=this.dom,$=null,Q,X=(Z===null||Z===void 0?void 0:Z.node)==J?Z:null,z=0;for(let K of this.children){if(K.sync(Z),z+=K.length+K.breakAfter,Q=$?$.nextSibling:J.firstChild,X&&Q!=K.dom)X.written=!0;if(K.dom.parentNode==J)while(Q&&Q!=K.dom)Q=BX(Q);else J.insertBefore(K.dom,Q);$=K.dom}if(Q=$?$.nextSibling:J.firstChild,X&&Q)X.written=!0;while(Q)Q=BX(Q);this.length=z}}function BX(Z){let J=Z.nextSibling;return Z.parentNode.removeChild(Z),J}class I5 extends M5{constructor(Z,J){super(J);this.view=Z}owns(Z){for(;Z;Z=Z.parent)if(Z==this)return!0;return!1}isBlock(){return!0}nearest(Z){for(;;){if(!Z)return null;let J=J9.get(Z);if(J&&this.owns(J))return J;Z=Z.parentNode}}blockTiles(Z){for(let J=[],$=this,Q=0,X=0;;)if(Q==$.children.length){if(!J.length)return;if($=$.parent,$.breakAfter)X++;Q=J.pop()}else{let z=$.children[Q++];if(z instanceof wZ)J.push(Q),$=z,Q=0;else{let K=X+z.length,Y=Z(z,X);if(Y!==void 0)return Y;X=K+z.breakAfter}}}resolveBlock(Z,J){let $,Q=-1,X,z=-1;if(this.blockTiles((K,Y)=>{let q=Y+K.length;if(Z>=Y&&Z<=q){if(K.isWidget()&&J>=-1&&J<=1){if(K.flags&32)return!0;if(K.flags&16)$=void 0}if((Y<Z||Z==q&&(J<-1?K.length:K.covers(1)))&&(!$||!K.isWidget()&&$.isWidget()))$=K,Q=Z-Y;if((q>Z||Z==Y&&(J>1?K.length:K.covers(-1)))&&(!X||!K.isWidget()&&X.isWidget()))X=K,z=Z-Y}}),!$&&!X)throw Error("No tile at position "+Z);return $&&J<0||!X?{tile:$,offset:Q}:{tile:X,offset:z}}}class wZ extends M5{constructor(Z,J){super(Z);this.wrapper=J}isBlock(){return!0}covers(Z){if(!this.children.length)return!1;return Z<0?this.children[0].covers(-1):this.lastChild.covers(1)}get domAttrs(){return this.wrapper.attributes}static of(Z,J){let $=new wZ(J||document.createElement(Z.tagName),Z);if(!J)$.flags|=4;return $}}class A6 extends M5{constructor(Z,J){super(Z);this.attrs=J}isLine(){return!0}static start(Z,J,$){let Q=new A6(J||document.createElement("div"),Z);if(!J||!$)Q.flags|=4;return Q}get domAttrs(){return this.attrs}resolveInline(Z,J,$){let Q=null,X=-1,z=null,K=-1;function Y(W,U){for(let H=0,F=0;H<W.children.length&&F<=U;H++){let O=W.children[H],N=F+O.length;if(N>=U){if(O.isComposite())Y(O,U-F);else if((!z||z.isHidden&&(J>0||$&&nO(z,O)))&&(N>U||O.flags&32))z=O,K=U-F;else if(F<U||O.flags&16&&!O.isHidden)Q=O,X=U-F}F=N}}Y(this,Z);let q=(J<0?Q:z)||Q||z;return q?{tile:q,offset:q==Q?X:K}:null}coordsIn(Z,J){let $=this.resolveInline(Z,J,!0);if(!$)return iO(this);return $.tile.coordsIn(Math.max(0,$.offset),J)}domIn(Z,J){let $=this.resolveInline(Z,J);if($){let{tile:Q,offset:X}=$;if(this.dom.contains(Q.dom)){if(Q.isText())return new zZ(Q.dom,Math.min(Q.dom.nodeValue.length,X));return Q.domPosFor(X,Q.flags&16?1:Q.flags&32?-1:J)}let z=$.tile.parent,K=!1;for(let Y of z.children){if(K)return new zZ(Y.dom,0);if(Y==$.tile)K=!0}}return new zZ(this.dom,0)}}function iO(Z){let J=Z.dom.lastChild;if(!J)return Z.dom.getBoundingClientRect();let $=c4(J);return $[$.length-1]||null}function nO(Z,J){let $=Z.coordsIn(0,1),Q=J.coordsIn(0,1);return $&&Q&&Q.top<$.bottom}class S9 extends M5{constructor(Z,J){super(Z);this.mark=J}get domAttrs(){return this.mark.attrs}static of(Z,J){let $=new S9(J||document.createElement(Z.tagName),Z);if(!J)$.flags|=4;return $}}class b8 extends J9{constructor(Z,J){super(Z,J.length);this.text=J}sync(Z){if(this.flags&2)return;if(super.sync(Z),this.dom.nodeValue!=this.text){if(Z&&Z.node==this.dom)Z.written=!0;this.dom.nodeValue=this.text}}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(Z,J){let $=this.dom.nodeValue.length;if(Z>$)Z=$;let Q=Z,X=Z,z=0;if(Z==0&&J<0||Z==$&&J>=0){if(!(N0.chrome||N0.gecko)){if(Z)Q--,z=1;else if(X<$)X++,z=-1}}else if(J<0)Q--;else if(X<$)X++;let K=B5(this.dom,Q,X).getClientRects();if(!K.length)return null;let Y=K[(z?z<0:J>=0)?0:K.length-1];if(N0.safari&&!z&&Y.width==0)Y=Array.prototype.find.call(K,(q)=>q.width)||Y;return z?r4(Y,z<0):Y||null}static of(Z,J){let $=new b8(J||document.createTextNode(Z),Z);if(!J)$.flags|=2;return $}}class x8 extends J9{constructor(Z,J,$,Q){super(Z,J,Q);this.widget=$}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(Z){if(this.flags&48)return!1;return(this.flags&(Z<0?64:128))>0}coordsIn(Z,J){return this.coordsInWidget(Z,J,!1)}coordsInWidget(Z,J,$){let Q=this.widget.coordsAt(this.dom,Z,J);if(Q)return Q;if($)return r4(this.dom.getBoundingClientRect(),this.length?Z==0:J<=0);else{let X=this.dom.getClientRects(),z=null;if(!X.length)return null;let K=this.flags&16?!0:this.flags&32?!1:Z>0;for(let Y=K?X.length-1:0;;Y+=K?-1:1)if(z=X[Y],Z>0?Y==0:Y==X.length-1||z.top<z.bottom)break;return r4(z,!K)}}get overrideDOMText(){if(!this.length)return v0.empty;let{root:Z}=this;if(!Z)return v0.empty;let J=this.posAtStart;return Z.view.state.doc.slice(J,J+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(Z,J,$,Q,X){if(!X){if(X=Z.toDOM(J),!Z.editable)X.contentEditable="false"}return new x8(X,$,Z,Q)}}class _5 extends J9{constructor(Z){let J=document.createElement("img");J.className="cm-widgetBuffer",J.setAttribute("aria-hidden","true");super(J,0,Z)}get isHidden(){return!0}get overrideDOMText(){return v0.empty}coordsIn(Z){return this.dom.getBoundingClientRect()}}class Wz{constructor(Z){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=Z}advance(Z,J,$){let{tile:Q,index:X,beforeBreak:z,parents:K}=this;while(Z||J>0)if(!Q.isComposite())if(X==Q.length)z=!!Q.breakAfter,{tile:Q,index:X}=K.pop(),X++;else if(!Z)break;else{let Y=Math.min(Z,Q.length-X);if($)$.skip(Q,X,X+Y);Z-=Y,X+=Y}else if(z){if(!Z)break;if($)$.break();Z--,z=!1}else if(X==Q.children.length){if(!Z&&!K.length)break;if($)$.leave(Q);z=!!Q.breakAfter,{tile:Q,index:X}=K.pop(),X++}else{let Y=Q.children[X],q=Y.breakAfter;if((J>0?Y.length<=Z:Y.length<Z)&&(!$||$.skip(Y,0,Y.length)!==!1||!Y.isComposite))z=!!q,X++,Z-=Y.length;else if(K.push({tile:Q,index:X}),Q=Y,X=0,$&&Y.isComposite())$.enter(Y)}return this.tile=Q,this.index=X,this.beforeBreak=z,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class Uz{constructor(Z,J,$,Q){this.from=Z,this.to=J,this.wrapper=$,this.rank=Q}}class Hz{constructor(Z,J,$){this.cache=Z,this.root=J,this.blockWrappers=$,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(Z,J,$,Q){var X;this.flushBuffer();let z=this.ensureMarks(J,$),K=z.lastChild;if(K&&K.isText()&&!(K.flags&8)&&K.length+Z.length<512){this.cache.reused.set(K,2);let Y=z.children[z.children.length-1]=new b8(K.dom,K.text+Z);Y.parent=z}else z.append(Q||b8.of(Z,(X=this.cache.find(b8))===null||X===void 0?void 0:X.dom));this.pos+=Z.length,this.afterWidget=null}addComposition(Z,J){let $=this.curLine;if($.dom!=J.line.dom)$.setDOM(this.cache.reused.has(J.line)?AJ(J.line.dom):J.line.dom),this.cache.reused.set(J.line,2);let Q=$;for(let K=J.marks.length-1;K>=0;K--){let Y=J.marks[K],q=Q.lastChild;if(q instanceof S9&&q.mark.eq(Y.mark)){if(q.dom!=Y.dom)q.setDOM(AJ(Y.dom));Q=q}else{if(this.cache.reused.get(Y)){let U=J9.get(Y.dom);if(U)U.setDOM(AJ(Y.dom))}let W=S9.of(Y.mark,Y.dom);Q.append(W),Q=W}this.cache.reused.set(Y,2)}let X=J9.get(Z.text);if(X)this.cache.reused.set(X,2);let z=new b8(Z.text,Z.text.nodeValue);z.flags|=8,this.pos=Z.range.toB,Q.append(z)}addInlineWidget(Z,J,$){let Q=this.afterWidget&&Z.flags&48&&(this.afterWidget.flags&48)==(Z.flags&48);if(!Q)this.flushBuffer();let X=this.ensureMarks(J,$);if(!Q&&!(Z.flags&16))X.append(this.getBuffer(1));X.append(Z),this.pos+=Z.length,this.afterWidget=Z}addMark(Z,J,$){this.flushBuffer(),this.ensureMarks(J,$).append(Z),this.pos+=Z.length,this.afterWidget=null}addBlockWidget(Z){this.getBlockPos().append(Z),this.pos+=Z.length,this.lastBlock=Z,this.endLine()}continueWidget(Z){let J=this.afterWidget||this.lastBlock;J.length+=Z,this.pos+=Z}addLineStart(Z,J){var $;if(!Z)Z=Bz;let Q=A6.start(Z,J||(($=this.cache.find(A6))===null||$===void 0?void 0:$.dom),!!J);this.getBlockPos().append(this.lastBlock=this.curLine=Q)}addLine(Z){this.getBlockPos().append(Z),this.pos+=Z.length,this.lastBlock=Z,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(Z){if(!this.blockPosCovered())this.addLineStart(Z)}ensureLine(Z){if(!this.curLine)this.addLineStart(Z)}ensureMarks(Z,J){var $;let Q=this.curLine;for(let X=Z.length-1;X>=0;X--){let z=Z[X],K;if(J>0&&(K=Q.lastChild)&&K instanceof S9&&K.mark.eq(z))Q=K,J--;else{let Y=S9.of(z,($=this.cache.find(S9,(q)=>q.mark.eq(z)))===null||$===void 0?void 0:$.dom);Q.append(Y),Q=Y,J=0}}return Q}endLine(){if(this.curLine){this.flushBuffer();let Z=this.curLine.lastChild;if(!Z||!_X(this.curLine,!1)||Z.dom.nodeName!="BR"&&Z.isWidget()&&!(N0.ios&&_X(this.curLine,!0)))this.curLine.append(this.cache.findWidget(LJ,0,32)||new x8(LJ.toDOM(),0,LJ,32));this.curLine=this.afterWidget=null}}updateBlockWrappers(){if(this.wrapperPos>this.pos+1e4)this.blockWrappers.goto(this.pos),this.wrappers.length=0;for(let Z=this.wrappers.length-1;Z>=0;Z--)if(this.wrappers[Z].to<this.pos)this.wrappers.splice(Z,1);for(let Z=this.blockWrappers;Z.value&&Z.from<=this.pos;Z.next())if(Z.to>=this.pos){let J=Z.rank*102+Z.value.rank,$=new Uz(Z.from,Z.to,Z.value,J),Q=this.wrappers.length;while(Q>0&&(this.wrappers[Q-1].rank-$.rank||this.wrappers[Q-1].to-$.to)<0)Q--;this.wrappers.splice(Q,0,$)}this.wrapperPos=this.pos}getBlockPos(){var Z;this.updateBlockWrappers();let J=this.root;for(let $ of this.wrappers){let Q=J.lastChild;if($.from<this.pos&&Q instanceof wZ&&Q.wrapper.eq($.wrapper))J=Q;else{let X=wZ.of($.wrapper,(Z=this.cache.find(wZ,(z)=>z.wrapper.eq($.wrapper)))===null||Z===void 0?void 0:Z.dom);J.append(X),J=X}}return J}blockPosCovered(){let Z=this.lastBlock;return Z!=null&&!Z.breakAfter&&(!Z.isWidget()||(Z.flags&160)>0)}getBuffer(Z){let J=2|(Z<0?16:32),$=this.cache.find(_5,void 0,1);if($)$.flags=J;return $||new _5(J)}flushBuffer(){if(this.afterWidget&&!(this.afterWidget.flags&32))this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null}}class Fz{constructor(Z){this.skipCount=0,this.text="",this.textOff=0,this.cursor=Z.iter()}skip(Z){if(this.textOff+Z<=this.text.length)this.textOff+=Z;else this.skipCount+=Z-(this.text.length-this.textOff),this.text="",this.textOff=0}next(Z){if(this.textOff==this.text.length){let{value:Q,lineBreak:X,done:z}=this.cursor.next(this.skipCount);if(this.skipCount=0,z)throw Error("Ran out of text content when drawing inline views");this.text=Q;let K=this.textOff=Math.min(Z,Q.length);return X?null:Q.slice(0,K)}let J=Math.min(this.text.length,this.textOff+Z),$=this.text.slice(this.textOff,J);return this.textOff=J,$}}var t4=[x8,A6,b8,S9,_5,wZ,I5];for(let Z=0;Z<t4.length;Z++)t4[Z].bucket=Z;class Oz{constructor(Z){this.view=Z,this.buckets=t4.map(()=>[]),this.index=t4.map(()=>0),this.reused=new Map}add(Z){let J=Z.constructor.bucket,$=this.buckets[J];if($.length<6)$.push(Z);else $[this.index[J]=(this.index[J]+1)%6]=Z}find(Z,J,$=2){let Q=Z.bucket,X=this.buckets[Q],z=this.index[Q];for(let K=X.length-1;K>=0;K--){let Y=(K+z)%X.length,q=X[Y];if((!J||J(q))&&!this.reused.has(q)){if(X.splice(Y,1),Y<z)this.index[Q]--;return this.reused.set(q,$),q}}return null}findWidget(Z,J,$){let Q=this.buckets[0];if(Q.length)for(let X=0,z=0;;X++){if(X==Q.length){if(z)return null;z=1,X=0}let K=Q[X];if(!this.reused.has(K)&&(z==0?K.widget.compare(Z):K.widget.constructor==Z.constructor&&Z.updateDOM(K.dom,this.view,K.widget))){if(Q.splice(X,1),X<this.index[0])this.index[0]--;if(K.widget==Z&&K.length==J&&(K.flags&497)==$)return this.reused.set(K,1),K;else return this.reused.set(K,2),new x8(K.dom,J,Z,K.flags&-498|$)}}}reuse(Z){return this.reused.set(Z,1),Z}maybeReuse(Z,J=2){if(this.reused.has(Z))return;return this.reused.set(Z,J),Z.dom}clear(){for(let Z=0;Z<this.buckets.length;Z++)this.buckets[Z].length=this.index[Z]=0}}class Nz{constructor(Z,J,$,Q,X){this.view=Z,this.decorations=Q,this.disallowBlockEffectsFor=X,this.openWidget=!1,this.openMarks=0,this.cache=new Oz(Z),this.text=new Fz(Z.state.doc),this.builder=new Hz(this.cache,new I5(Z,Z.contentDOM),f0.iter($)),this.cache.reused.set(J,2),this.old=new Wz(J),this.reuseWalker={skip:(z,K,Y)=>{if(this.cache.add(z),z.isComposite())return!1},enter:(z)=>this.cache.add(z),leave:()=>{},break:()=>{}}}run(Z,J){let $=J&&this.getCompositionContext(J.text);for(let Q=0,X=0,z=0;;){let K=z<Z.length?Z[z++]:null,Y=K?K.fromA:this.old.root.length;if(Y>Q){let q=Y-Q;this.preserve(q,!z,!K),Q=Y,X+=q}if(!K)break;if(J&&K.fromA<=J.range.fromA&&K.toA>=J.range.toA)this.forward(K.fromA,J.range.fromA,J.range.fromA<J.range.toA?1:-1),this.emit(X,J.range.fromB),this.builder.flushBuffer(),this.cache.clear(),this.builder.addComposition(J,$),this.text.skip(J.range.toB-J.range.fromB),this.forward(J.range.fromA,K.toA),this.emit(J.range.toB,K.toB);else this.forward(K.fromA,K.toA),this.emit(X,K.toB);X=K.toB,Q=K.toA}if(this.builder.curLine)this.builder.endLine();return this.builder.root}preserve(Z,J,$){let Q=oO(this.old),X=this.openMarks;this.old.advance(Z,$?1:-1,{skip:(z,K,Y)=>{if(z.isWidget())if(this.openWidget)this.builder.continueWidget(Y-K);else{let q=Y>0||K<z.length?x8.of(z.widget,this.view,Y-K,z.flags&496,this.cache.maybeReuse(z)):this.cache.reuse(z);if(q.flags&256)q.flags&=-2,this.builder.addBlockWidget(q);else this.builder.ensureLine(null),this.builder.addInlineWidget(q,Q,X),X=Q.length}else if(z.isText()){if(this.builder.ensureLine(null),!K&&Y==z.length&&!this.cache.reused.has(z))this.builder.addText(z.text,Q,X,this.cache.reuse(z));else this.cache.add(z),this.builder.addText(z.text.slice(K,Y),Q,X);X=Q.length}else if(z.isLine())z.flags&=-2,this.cache.reused.set(z,1),this.builder.addLine(z);else if(z instanceof _5)this.cache.add(z);else if(z instanceof S9)this.builder.ensureLine(null),this.builder.addMark(z,Q,X),this.cache.reused.set(z,1),X=Q.length;else return!1;this.openWidget=!1},enter:(z)=>{if(z.isLine())this.builder.addLineStart(z.attrs,this.cache.maybeReuse(z));else if(this.cache.add(z),z instanceof S9)Q.unshift(z.mark);this.openWidget=!1},leave:(z)=>{if(z.isLine()){if(Q.length)Q.length=X=0}else if(z instanceof S9)Q.shift(),X=Math.min(X,Q.length)},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(Z)}emit(Z,J){let $=null,Q=this.builder,X=0,z=f0.spans(this.decorations,Z,J,{point:(K,Y,q,W,U,H)=>{if(q instanceof E8){if(this.disallowBlockEffectsFor[H]){if(q.block)throw RangeError("Block decorations may not be specified via plugins");if(Y>this.view.state.doc.lineAt(K).to)throw RangeError("Decorations that replace line breaks may not be specified via plugins")}if(X=W.length,U>W.length)Q.continueWidget(Y-K);else{let F=q.widget||(q.block?v8.block:v8.inline),O=sO(q),N=this.cache.findWidget(F,Y-K,O)||x8.of(F,this.view,Y-K,O);if(q.block){if(q.startSide>0)Q.addLineStartIfNotCovered($);Q.addBlockWidget(N)}else Q.ensureLine($),Q.addInlineWidget(N,W,U)}$=null}else $=rO($,q);if(Y>K)this.text.skip(Y-K)},span:(K,Y,q,W)=>{for(let U=K;U<Y;){let H=this.text.next(Math.min(512,Y-U));if(H==null)Q.addLineStartIfNotCovered($),Q.addBreak(),U++;else Q.ensureLine($),Q.addText(H,q,U==K?W:q.length),U+=H.length;$=null}X=q.length}});if(this.openWidget=z>X,!this.openWidget)Q.addLineStartIfNotCovered($);this.openMarks=z}forward(Z,J,$=1){if(J-Z<=10)this.old.advance(J-Z,$,this.reuseWalker);else this.old.advance(5,-1,this.reuseWalker),this.old.advance(J-Z-10,-1),this.old.advance(5,$,this.reuseWalker)}getCompositionContext(Z){let J=[],$=null;for(let Q=Z.parentNode;;Q=Q.parentNode){let X=J9.get(Q);if(Q==this.view.contentDOM)break;if(X instanceof S9)J.push(X);else if(X===null||X===void 0?void 0:X.isLine())$=X;else if(X instanceof wZ);else if(Q.nodeName=="DIV"&&!$&&Q!=this.view.contentDOM)$=new A6(Q,Bz);else if(!$)J.push(S9.of(new A5({tagName:Q.nodeName.toLowerCase(),attributes:jO(Q)}),Q))}return{line:$,marks:J}}}function _X(Z,J){let $=(Q)=>{for(let X of Q.children)if((J?X.isText():X.length)||$(X))return!0;return!1};return $(Z)}function sO(Z){let J=Z.isReplace?(Z.startSide<0?64:0)|(Z.endSide>0?128:0):Z.startSide>0?32:16;if(Z.block)J|=256;return J}var Bz={class:"cm-line"};function rO(Z,J){let $=J.spec.attributes,Q=J.spec.class;if(!$&&!Q)return Z;if(!Z)Z={class:"cm-line"};if($)uJ($,Z);if(Q)Z.class+=" "+Q;return Z}function oO(Z){let J=[];for(let $=Z.parents.length;$>1;$--){let Q=$==Z.parents.length?Z.tile:Z.parents[$].tile;if(Q instanceof S9)J.push(Q.mark)}return J}function AJ(Z){let J=J9.get(Z);if(J)J.setDOM(Z.cloneNode());return Z}class v8 extends N9{constructor(Z){super();this.tag=Z}eq(Z){return Z.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(Z){return Z.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}v8.inline=new v8("span");v8.block=new v8("div");var LJ=new class extends N9{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class SJ{constructor(Z){this.view=Z,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=L0.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new I5(Z,Z.contentDOM),this.updateInner([new p9(0,0,0,Z.state.doc.length)],null)}update(Z){var J;let $=Z.changedRanges;if(this.minWidth>0&&$.length)if(!$.every(({fromA:W,toA:U})=>U<this.minWidthFrom||W>this.minWidthTo))this.minWidth=this.minWidthFrom=this.minWidthTo=0;else this.minWidthFrom=Z.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=Z.changes.mapPos(this.minWidthTo,1);this.updateEditContextFormatting(Z);let Q=-1;if(this.view.inputState.composing>=0&&!this.view.observer.editContext){if((J=this.domChanged)===null||J===void 0?void 0:J.newSel)Q=this.domChanged.newSel.head;else if(!zN(Z.changes,this.hasComposition)&&!Z.selectionSet)Q=Z.state.selection.main.head}let X=Q>-1?eO(this.view,Z.changes,Q):null;if(this.domChanged=null,this.hasComposition){let{from:W,to:U}=this.hasComposition;$=new p9(W,U,Z.changes.mapPos(W,-1),Z.changes.mapPos(U,1)).addToSet($.slice())}if(this.hasComposition=X?{from:X.range.fromB,to:X.range.toB}:null,(N0.ie||N0.chrome)&&!X&&Z&&Z.state.doc.lines!=Z.startState.doc.lines)this.forceSelection=!0;let z=this.decorations,K=this.blockWrappers;this.updateDeco();let Y=$N(z,this.decorations,Z.changes);if(Y.length)$=p9.extendWithRanges($,Y);let q=QN(K,this.blockWrappers,Z.changes);if(q.length)$=p9.extendWithRanges($,q);if(X&&!$.some((W)=>W.fromA<=X.range.fromA&&W.toA>=X.range.toA))$=X.range.addToSet($.slice());if(this.tile.flags&2&&$.length==0)return!1;else{if(this.updateInner($,X),Z.transactions.length)this.lastUpdate=Date.now();return!0}}updateInner(Z,J){this.view.viewState.mustMeasureContent=!0;let{observer:$}=this.view;$.ignore(()=>{if(J||Z.length){let z=this.tile,K=new Nz(this.view,z,this.blockWrappers,this.decorations,this.dynamicDecorationMap);if(J&&J9.get(J.text))K.cache.reused.set(J9.get(J.text),2);this.tile=K.run(Z,J),bJ(z,K.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let X=N0.chrome||N0.ios?{node:$.selectionRange.focusNode,written:!1}:void 0;if(this.tile.sync(X),X&&(X.written||$.selectionRange.focusNode!=X.node||!this.tile.dom.contains(X.node)))this.forceSelection=!0;this.tile.dom.style.height=""});let Q=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length){for(let X of this.tile.children)if(X.isWidget()&&X.widget instanceof l4)Q.push(X.dom)}$.updateGaps(Q)}updateEditContextFormatting(Z){this.editContextFormatting=this.editContextFormatting.map(Z.changes);for(let J of Z.transactions)for(let $ of J.effects)if($.is(Xz))this.editContextFormatting=$.value}updateSelection(Z=!1,J=!1){if(Z||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let{dom:$}=this.tile,Q=this.view.root.activeElement,X=Q==$,z=!X&&!(this.view.state.facet(EZ)||$.tabIndex>-1)&&U5($,this.view.observer.selectionRange)&&!(Q&&$.contains(Q));if(!(X||J||z))return;let K=this.forceSelection;this.forceSelection=!1;let Y=this.view.state.selection.main,q,W;if(Y.empty)W=q=this.inlineDOMNearPos(Y.anchor,Y.assoc||1);else W=this.inlineDOMNearPos(Y.head,Y.head==Y.from?1:-1),q=this.inlineDOMNearPos(Y.anchor,Y.anchor==Y.from?1:-1);if(N0.gecko&&Y.empty&&!this.hasComposition&&tO(q)){let H=document.createTextNode("");this.view.observer.ignore(()=>q.node.insertBefore(H,q.node.childNodes[q.offset]||null)),q=W=new zZ(H,0),K=!0}let U=this.view.observer.selectionRange;if(K||!U.focusNode||(!H5(q.node,q.offset,U.anchorNode,U.anchorOffset)||!H5(W.node,W.offset,U.focusNode,U.focusOffset))&&!this.suppressWidgetCursorChange(U,Y))this.view.observer.ignore(()=>{if(N0.android&&N0.chrome&&$.contains(U.focusNode)&&XN(U.focusNode,$))$.blur(),$.focus({preventScroll:!0});let H=N5(this.view.root);if(!H);else if(Y.empty){if(N0.gecko){let F=ZN(q.node,q.offset);if(F&&F!=3){let O=(F==1?cX:dX)(q.node,q.offset);if(O)q=new zZ(O.node,O.offset)}}if(H.collapse(q.node,q.offset),Y.bidiLevel!=null&&H.caretBidiLevel!==void 0)H.caretBidiLevel=Y.bidiLevel}else if(H.extend){H.collapse(q.node,q.offset);try{H.extend(W.node,W.offset)}catch(F){}}else{let F=document.createRange();if(Y.anchor>Y.head)[q,W]=[W,q];F.setEnd(W.node,W.offset),F.setStart(q.node,q.offset),H.removeAllRanges(),H.addRange(F)}if(z&&this.view.root.activeElement==$){if($.blur(),Q)Q.focus()}}),this.view.observer.setSelectionRange(q,W);this.impreciseAnchor=q.precise?null:new zZ(U.anchorNode,U.anchorOffset),this.impreciseHead=W.precise?null:new zZ(U.focusNode,U.focusOffset)}suppressWidgetCursorChange(Z,J){return this.hasComposition&&J.empty&&H5(Z.focusNode,Z.focusOffset,Z.anchorNode,Z.anchorOffset)&&this.posFromDOM(Z.focusNode,Z.focusOffset)==J.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:Z}=this,J=Z.state.selection.main,$=N5(Z.root),{anchorNode:Q,anchorOffset:X}=Z.observer.selectionRange;if(!$||!J.empty||!J.assoc||!$.modify)return;let z=this.lineAt(J.head,J.assoc);if(!z)return;let K=z.posAtStart;if(J.head==K||J.head==K+z.length)return;let Y=this.coordsAt(J.head,-1),q=this.coordsAt(J.head,1);if(!Y||!q||Y.bottom>q.top)return;let W=this.domAtPos(J.head+J.assoc,J.assoc);$.collapse(W.node,W.offset),$.modify("move",J.assoc<0?"forward":"backward","lineboundary"),Z.observer.readSelectionRange();let U=Z.observer.selectionRange;if(Z.docView.posFromDOM(U.anchorNode,U.anchorOffset)!=J.from)$.collapse(Q,X)}posFromDOM(Z,J){let $=this.tile.nearest(Z);if(!$)return this.tile.dom.compareDocumentPosition(Z)&2?0:this.view.state.doc.length;let Q=$.posAtStart;if($.isComposite()){let X;if(Z==$.dom)X=$.dom.childNodes[J];else{let z=xZ(Z)==0?0:J==0?-1:1;for(;;){let K=Z.parentNode;if(K==$.dom)break;if(z==0&&K.firstChild!=K.lastChild)if(Z==K.firstChild)z=-1;else z=1;Z=K}if(z<0)X=Z;else X=Z.nextSibling}if(X==$.dom.firstChild)return Q;while(X&&!J9.get(X))X=X.nextSibling;if(!X)return Q+$.length;for(let z=0,K=Q;;z++){let Y=$.children[z];if(Y.dom==X)return K;K+=Y.length+Y.breakAfter}}else if($.isText())return Z==$.dom?Q+J:Q+(J?$.length:0);else return Q}domAtPos(Z,J){let{tile:$,offset:Q}=this.tile.resolveBlock(Z,J);if($.isWidget())return $.domPosFor(Z,J);return $.domIn(Q,J)}inlineDOMNearPos(Z,J){let $,Q=-1,X=!1,z,K=-1,Y=!1;if(this.tile.blockTiles((q,W)=>{if(q.isWidget()){if(q.flags&32&&W>=Z)return!0;if(q.flags&16)X=!0}else{let U=W+q.length;if(W<=Z)$=q,Q=Z-W,X=U<Z;if(U>=Z&&!z)z=q,K=Z-W,Y=W>Z;if(W>Z&&z)return!0}}),!$&&!z)return this.domAtPos(Z,J);if(X&&z)$=null;else if(Y&&$)z=null;return $&&J<0||!z?$.domIn(Q,J):z.domIn(K,J)}coordsAt(Z,J){let{tile:$,offset:Q}=this.tile.resolveBlock(Z,J);if($.isWidget()){if($.widget instanceof l4)return null;return $.coordsInWidget(Q,J,!0)}return $.coordsIn(Q,J)}lineAt(Z,J){let{tile:$}=this.tile.resolveBlock(Z,J);return $.isLine()?$:null}coordsForChar(Z){let{tile:J,offset:$}=this.tile.resolveBlock(Z,1);if(!J.isLine())return null;function Q(X,z){if(X.isComposite())for(let K of X.children){if(K.length>=z){let Y=Q(K,z);if(Y)return Y}if(z-=K.length,z<0)break}else if(X.isText()&&z<X.length){let K=U9(X.text,z);if(K==z)return null;let Y=B5(X.dom,z,K).getClientRects();for(let q=0;q<Y.length;q++){let W=Y[q];if(q==Y.length-1||W.top<W.bottom&&W.left<W.right)return W}}return null}return Q(J,$)}measureVisibleLineHeights(Z){let J=[],{from:$,to:Q}=Z,X=this.view.contentDOM.clientWidth,z=X>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,K=-1,Y=this.view.textDirection==Q9.LTR,q=0,W=(U,H,F)=>{for(let O=0;O<U.children.length;O++){if(H>Q)break;let N=U.children[O],_=H+N.length,A=N.dom.getBoundingClientRect(),{height:L}=A;if(F&&!O)q+=A.top-F.top;if(N instanceof wZ){if(_>$)W(N,H,A)}else if(H>=$){if(q>0)J.push(-q);if(J.push(L+q),q=0,z){let B=N.dom.lastChild,M=B?c4(B):[];if(M.length){let C=M[M.length-1],R=Y?C.right-A.left:A.right-C.left;if(R>K)K=R,this.minWidth=X,this.minWidthFrom=H,this.minWidthTo=_}}}if(F&&O==U.children.length-1)q+=F.bottom-A.bottom;H=_+N.breakAfter}};return W(this.tile,0,null),J}textDirectionAt(Z){let{tile:J}=this.tile.resolveBlock(Z,1);return getComputedStyle(J.dom).direction=="rtl"?Q9.RTL:Q9.LTR}measureTextSize(){let Z=this.tile.blockTiles((z)=>{if(z.isLine()&&z.children.length&&z.length<=20){let K=0,Y;for(let q of z.children){if(!q.isText()||/[^ -~]/.test(q.text))return;let W=c4(q.dom);if(W.length!=1)return;K+=W[0].width,Y=W[0].height}if(K)return{lineHeight:z.dom.getBoundingClientRect().height,charWidth:K/z.length,textHeight:Y}}});if(Z)return Z;let J=document.createElement("div"),$,Q,X;return J.className="cm-line",J.style.width="99999px",J.style.position="absolute",J.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(J);let z=c4(J.firstChild)[0];$=J.getBoundingClientRect().height,Q=z&&z.width?z.width/27:7,X=z&&z.height?z.height:$,J.remove()}),{lineHeight:$,charWidth:Q,textHeight:X}}computeBlockGapDeco(){let Z=[],J=this.view.viewState;for(let $=0,Q=0;;Q++){let X=Q==J.viewports.length?null:J.viewports[Q],z=X?X.from-1:this.view.state.doc.length;if(z>$){let K=(J.lineBlockAt(z).bottom-J.lineBlockAt($).top)/this.view.scaleY;Z.push(L0.replace({widget:new l4(K),block:!0,inclusive:!0,isBlockGap:!0}).range($,z))}if(!X)break;$=X.to+1}return L0.set(Z)}updateDeco(){let Z=1,J=this.view.state.facet(Q7).map((X)=>{return(this.dynamicDecorationMap[Z++]=typeof X=="function")?X(this.view):X}),$=!1,Q=this.view.state.facet(iJ).map((X,z)=>{let K=typeof X=="function";if(K)$=!0;return K?X(this.view):X});if(Q.length)this.dynamicDecorationMap[Z++]=$,J.push(f0.join(Q));this.decorations=[this.editContextFormatting,...J,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];while(Z<this.decorations.length)this.dynamicDecorationMap[Z++]=!1;this.blockWrappers=this.view.state.facet(Kz).map((X)=>typeof X=="function"?X(this.view):X)}scrollIntoView(Z){var J;if(Z.isSnapshot){let W=this.view.viewState.lineBlockAt(Z.range.head);this.view.scrollDOM.scrollTop=W.top-Z.yMargin,this.view.scrollDOM.scrollLeft=Z.xMargin;return}for(let W of this.view.state.facet(Qz))try{if(W(this.view,Z.range,Z))return!0}catch(U){YZ(this.view.state,U,"scroll handler")}let{range:$}=Z,Q=this.coordsAt($.head,(J=$.assoc)!==null&&J!==void 0?J:$.empty?0:$.head>$.anchor?-1:1),X;if(!Q)return;if(!$.empty&&(X=this.coordsAt($.anchor,$.anchor>$.head?-1:1)))Q={left:Math.min(Q.left,X.left),top:Math.min(Q.top,X.top),right:Math.max(Q.right,X.right),bottom:Math.max(Q.bottom,X.bottom)};let z=qz(this.view),K={left:Q.left-z.left,top:Q.top-z.top,right:Q.right+z.right,bottom:Q.bottom+z.bottom},{offsetWidth:Y,offsetHeight:q}=this.view.scrollDOM;if(bO(this.view.scrollDOM,K,$.head<$.anchor?-1:1,Z.x,Z.y,Math.max(Math.min(Z.xMargin,Y),-Y),Math.max(Math.min(Z.yMargin,q),-q),this.view.textDirection==Q9.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(Q.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||Q.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let W=this.view.docView.lineAt($.head,1);if(W)W.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(Z){let J=($)=>$.isWidget()||$.children.some(J);return J(this.tile.resolveBlock(Z,1).tile)}destroy(){bJ(this.tile)}}function bJ(Z,J){let $=J===null||J===void 0?void 0:J.get(Z);if($!=1){if($==null)Z.destroy();for(let Q of Z.children)bJ(Q,J)}}function tO(Z){return Z.node.nodeType==1&&Z.node.firstChild&&(Z.offset==0||Z.node.childNodes[Z.offset-1].contentEditable=="false")&&(Z.offset==Z.node.childNodes.length||Z.node.childNodes[Z.offset].contentEditable=="false")}function _z(Z,J){let $=Z.observer.selectionRange;if(!$.focusNode)return null;let Q=cX($.focusNode,$.focusOffset),X=dX($.focusNode,$.focusOffset),z=Q||X;if(X&&Q&&X.node!=Q.node){let Y=J9.get(X.node);if(!Y||Y.isText()&&Y.text!=X.node.nodeValue)z=X;else if(Z.docView.lastCompositionAfterCursor){let q=J9.get(Q.node);if(!(!q||q.isText()&&q.text!=Q.node.nodeValue))z=X}}if(Z.docView.lastCompositionAfterCursor=z!=Q,!z)return null;let K=J-z.offset;return{from:K,to:K+z.node.nodeValue.length,node:z.node}}function eO(Z,J,$){let Q=_z(Z,$);if(!Q)return null;let{node:X,from:z,to:K}=Q,Y=X.nodeValue;if(/[\n\r]/.test(Y))return null;if(Z.state.doc.sliceString(Q.from,Q.to)!=Y)return null;let q=J.invertedDesc;return{range:new p9(q.mapPos(z),q.mapPos(K),z,K),text:X}}function ZN(Z,J){if(Z.nodeType!=1)return 0;return(J&&Z.childNodes[J-1].contentEditable=="false"?1:0)|(J<Z.childNodes.length&&Z.childNodes[J].contentEditable=="false"?2:0)}var JN=class{constructor(){this.changes=[]}compareRange(J,$){N6(J,$,this.changes)}comparePoint(J,$){N6(J,$,this.changes)}boundChange(J){N6(J,J,this.changes)}};function $N(Z,J,$){let Q=new JN;return f0.compare(Z,J,$,Q),Q.changes}class Az{constructor(){this.changes=[]}compareRange(Z,J){N6(Z,J,this.changes)}comparePoint(){}boundChange(Z){N6(Z,Z,this.changes)}}function QN(Z,J,$){let Q=new Az;return f0.compare(Z,J,$,Q),Q.changes}function XN(Z,J){for(let $=Z;$&&$!=J;$=$.assignedSlot||$.parentNode)if($.nodeType==1&&$.contentEditable=="false")return!0;return!1}function zN(Z,J){let $=!1;if(J)Z.iterChangedRanges((Q,X)=>{if(Q<J.to&&X>J.from)$=!0});return $}class l4 extends N9{constructor(Z){super();this.height=Z}toDOM(){let Z=document.createElement("div");return Z.className="cm-gap",this.updateDOM(Z),Z}eq(Z){return Z.height==this.height}updateDOM(Z){return Z.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function KN(Z,J,$=1){let Q=Z.charCategorizer(J),X=Z.doc.lineAt(J),z=J-X.from;if(X.length==0)return $0.cursor(J);if(z==0)$=1;else if(z==X.length)$=-1;let K=z,Y=z;if($<0)K=U9(X.text,z,!1);else Y=U9(X.text,z);let q=Q(X.text.slice(K,Y));while(K>0){let W=U9(X.text,K,!1);if(Q(X.text.slice(W,K))!=q)break;K=W}while(Y<X.length){let W=U9(X.text,Y);if(Q(X.text.slice(Y,W))!=q)break;Y=W}return $0.undirectionalRange(K+X.from,Y+X.from)}function YN(Z,J,$,Q,X){let z=Math.round((Q-J.left)*Z.defaultCharacterWidth);if(Z.lineWrapping&&$.height>Z.defaultLineHeight*1.5){let Y=Z.viewState.heightOracle.textHeight,q=Math.floor((X-$.top-(Z.defaultLineHeight-Y)*0.5)/Y);z+=q*Z.viewState.heightOracle.lineLength}let K=Z.state.sliceDoc($.from,$.to);return $.from+QX(K,z,Z.state.tabSize)}function GN(Z,J,$){let Q=Z.lineBlockAt(J);if(Array.isArray(Q.type)){let X;for(let z of Q.type){if(z.from>J)break;if(z.to<J)continue;if(z.from<J&&z.to>J)return z;if(!X||z.type==c9.Text&&(X.type!=z.type||($<0?z.from<J:z.to>J)))X=z}return X||Q}return Q}function qN(Z,J,$,Q){let X=GN(Z,J.head,J.assoc||-1),z=!Q||X.type!=c9.Text||!(Z.lineWrapping||X.widgetLineBreaks)?null:Z.coordsAtPos(J.assoc<0&&J.head>X.from?J.head-1:J.head);if(z){let K=Z.dom.getBoundingClientRect(),Y=Z.textDirectionAt(X.from),q=Z.posAtCoords({x:$==(Y==Q9.LTR)?K.right-1:K.left+1,y:(z.top+z.bottom)/2});if(q!=null)return $0.cursor(q,$?-1:1)}return $0.cursor($?X.to:X.from,$?-1:1)}function AX(Z,J,$,Q){let X=Z.state.doc.lineAt(J.head),z=Z.bidiSpans(X),K=Z.textDirectionAt(X.from);for(let Y=J,q=null;;){let W=pO(X,z,K,Y,$),U=sX;if(!W){if(X.number==($?Z.state.doc.lines:1))return Y;U=`
|
|
45
|
+
`,X=Z.state.doc.line(X.number+($?1:-1)),z=Z.bidiSpans(X),W=Z.visualLineSide(X,!$)}if(!q){if(!Q)return W;q=Q(U)}else if(!q(U))return Y;Y=W}}function WN(Z,J,$){let Q=Z.state.charCategorizer(J),X=Q($);return(z)=>{let K=Q(z);if(X==o9.Space)X=K;return X==K}}function UN(Z,J,$,Q){let X=J.head,z=$?1:-1;if(X==($?Z.state.doc.length:0))return $0.cursor(X,J.assoc);let K=J.goalColumn,Y,q=Z.contentDOM.getBoundingClientRect(),W=Z.coordsAtPos(X,J.assoc||((J.empty?$:J.head==J.from)?1:-1)),U=Z.documentTop;if(W){if(K==null)K=W.left-q.left;Y=z<0?W.top:W.bottom}else{let N=Z.viewState.lineBlockAt(X);if(K==null)K=Math.min(q.right-q.left,Z.defaultCharacterWidth*(X-N.from));Y=(z<0?N.top:N.bottom)+U}let H=q.left+K,F=Z.viewState.heightOracle.textHeight>>1,O=Q!==null&&Q!==void 0?Q:F;for(let N=0;;N+=F){let _=Y+(O+N)*z,A=EJ(Z,{x:H,y:_},!1,z);if($?_>q.bottom:_<q.top)return $0.cursor(A.pos,A.assoc);let L=Z.coordsAtPos(A.pos,A.assoc),B=L?(L.top+L.bottom)/2:0;if(!L||($?B>Y:B<Y))return $0.cursor(A.pos,A.assoc,void 0,K)}}function F5(Z,J,$){for(;;){let Q=0;for(let X of Z)X.between(J-1,J+1,(z,K,Y)=>{if(J>z&&J<K){let q=Q||$||(J-z<K-J?-1:1);J=q<0?z:K,Q=q}});if(!Q)return J}}function Lz(Z,J){let $=null;for(let Q=0;Q<J.ranges.length;Q++){let X=J.ranges[Q],z=null;if(X.empty){let K=F5(Z,X.from,0);if(K!=X.from)z=$0.cursor(K,-1)}else{let K=F5(Z,X.from,-1),Y=F5(Z,X.to,1);if(K!=X.from||Y!=X.to)if(X.undirectional)z=$0.undirectionalRange(X.from,X.to);else z=$0.range(X.from==X.anchor?K:Y,X.from==X.head?K:Y)}if(z){if(!$)$=J.ranges.slice();$[Q]=z}}return $?$0.create($,J.mainIndex):J}function PJ(Z,J,$){let Q=F5(Z.state.facet(P5).map((X)=>X(Z)),$.from,J.head>$.from?-1:1);return Q==$.from?$:$0.cursor(Q,Q<$.from?1:-1)}class QZ{constructor(Z,J){this.pos=Z,this.assoc=J}}function EJ(Z,J,$,Q){let X=Z.contentDOM.getBoundingClientRect(),z=X.top+Z.viewState.paddingTop,{x:K,y:Y}=J,q=Y-z,W;for(;;){if(q<0)return new QZ(0,1);if(q>Z.viewState.docHeight)return new QZ(Z.state.doc.length,-1);if(W=Z.elementAtHeight(q),Q==null)break;if(W.type==c9.Text){if(Q<0?W.to<Z.viewport.from:W.from>Z.viewport.to)break;let F=Z.docView.coordsAt(Q<0?W.from:W.to,Q>0?-1:1);if(F&&(Q<0?F.top<=q+z:F.bottom>=q+z))break}let H=Z.viewState.heightOracle.textHeight/2;q=Q>0?W.bottom+H:W.top-H}if(Z.viewport.from>=W.to||Z.viewport.to<=W.from){if($)return null;if(W.type==c9.Text){let H=YN(Z,X,W,K,Y);return new QZ(H,H==W.from?1:-1)}}if(W.type!=c9.Text)return q<(W.top+W.bottom)/2?new QZ(W.from,1):new QZ(W.to,-1);let U=Z.docView.lineAt(W.from,2);if(!U||U.length!=W.length)U=Z.docView.lineAt(W.from,-2);return new Pz(Z,K,Y,Z.textDirectionAt(W.from)).scanTile(U,W.from)}class Pz{constructor(Z,J,$,Q){this.view=Z,this.x=J,this.y=$,this.baseDir=Q,this.line=null,this.spans=null}bidiSpansAt(Z){if(!this.line||this.line.from>Z||this.line.to<Z)this.line=this.view.state.doc.lineAt(Z),this.spans=this.view.bidiSpans(this.line);return this}baseDirAt(Z,J){let{line:$,spans:Q}=this.bidiSpansAt(Z);return Q[KZ.find(Q,Z-$.from,-1,J)].level==this.baseDir}dirAt(Z,J){let{line:$,spans:Q}=this.bidiSpansAt(Z);return Q[KZ.find(Q,Z-$.from,-1,J)].dir}bidiIn(Z,J){let{spans:$,line:Q}=this.bidiSpansAt(Z);return $.length>1||$.length&&($[0].level!=this.baseDir||$[0].to+Q.from<J)}scan(Z,J,$=!1){let Q=0,X=Z.length-1,z=new Set,K=this.bidiIn(Z[0],Z[X]),Y,q,W=-1,U=1e9,H;Z:while(Q<X){let O=X-Q,N=Q+X>>1;J:if(z.has(N)){let A=Q+Math.floor(Math.random()*O);for(let L=0;L<O;L++){if(!z.has(A)){N=A;break J}if(A++,A==X)A=Q}break Z}z.add(N);let _=J(N);if(_)for(let A=0;A<_.length;A++){let L=_[A],B=0;if(L.width==0&&_.length>1)continue;if(L.bottom<this.y){if(!Y||Y.bottom<L.bottom)Y=L;B=1}else if(L.top>this.y){if(!q||q.top>L.top)q=L;B=-1}else{let M=L.left>this.x?this.x-L.left:L.right<this.x?this.x-L.right:0,C=Math.abs(M);if(C<U)W=N,U=C,H=L;if(M)B=M<0==(this.baseDir==Q9.LTR)?-1:1}if(B==-1&&(!K||this.baseDirAt(Z[N],1)))X=N;else if(B==1&&(!K||this.baseDirAt(Z[N+1],-1)))Q=N+1}}if(!H){if(!q&&!Y)return{i:Z[0],after:!1};let O=Y&&(!q||this.y-Y.bottom<q.top-this.y)?Y:q;return this.y=(O.top+O.bottom)/2,this.scan(Z,J,!0)}if(U&&!$){let{top:O,bottom:N}=H;if(Y&&Y.bottom>(O+O+N)/3)return this.y=Y.bottom-1,this.scan(Z,J,!0);if(q&&q.top<(O+N+N)/3)return this.y=q.top+1,this.scan(Z,J,!0)}let F=(K?this.dirAt(Z[W],1):this.baseDir)==Q9.LTR;return{i:W,after:this.x>(H.left+H.right)/2==F}}scanText(Z,J){let $=[];for(let X=0;X<Z.length;X=U9(Z.text,X))$.push(J+X);$.push(J+Z.length);let Q=this.scan($,(X)=>{let z=$[X]-J,K=$[X+1]-J;return B5(Z.dom,z,K).getClientRects()});return Q.after?new QZ($[Q.i+1],-1):new QZ($[Q.i],1)}scanTile(Z,J){if(!Z.length)return new QZ(J,1);if(Z.children.length==1){let K=Z.children[0];if(K.isText())return this.scanText(K,J);else if(K.isComposite())return this.scanTile(K,J)}let $=[J];for(let K=0,Y=J;K<Z.children.length;K++)$.push(Y+=Z.children[K].length);let Q=this.scan($,(K)=>{let Y=Z.children[K];if(Y.flags&48)return null;return(Y.dom.nodeType==1?Y.dom:B5(Y.dom,0,Y.length)).getClientRects()}),X=Z.children[Q.i],z=$[Q.i];if(X.isText())return this.scanText(X,z);if(X.isComposite())return this.scanTile(X,z);return Q.after?new QZ($[Q.i+1],-1):new QZ(z,1)}}var F6="";class Mz{constructor(Z,J){this.points=Z,this.view=J,this.text="",this.lineSeparator=J.state.facet(x0.lineSeparator)}append(Z){this.text+=Z}lineBreak(){this.text+=F6}readRange(Z,J){if(!Z)return this;let $=Z.parentNode;for(let Q=Z;;){this.findPointBefore($,Q);let X=this.text.length;this.readNode(Q);let z=J9.get(Q),K=Q.nextSibling;if(K==J){if((z===null||z===void 0?void 0:z.breakAfter)&&!K&&$!=this.view.contentDOM)this.lineBreak();break}let Y=J9.get(K);if((z&&Y?z.breakAfter:(z?z.breakAfter:s4(Q))||s4(K)&&(Q.nodeName!="BR"||(z===null||z===void 0?void 0:z.isWidget()))&&this.text.length>X)&&!FN(K,J))this.lineBreak();Q=K}return this.findPointBefore($,J),this}readTextNode(Z){let J=Z.nodeValue;for(let $ of this.points)if($.node==Z)$.pos=this.text.length+Math.min($.offset,J.length);for(let $=0,Q=this.lineSeparator?null:/\r\n?|\n/g;;){let X=-1,z=1,K;if(this.lineSeparator)X=J.indexOf(this.lineSeparator,$),z=this.lineSeparator.length;else if(K=Q.exec(J))X=K.index,z=K[0].length;if(this.append(J.slice($,X<0?J.length:X)),X<0)break;if(this.lineBreak(),z>1){for(let Y of this.points)if(Y.node==Z&&Y.pos>this.text.length)Y.pos-=z-1}$=X+z}}readNode(Z){let J=J9.get(Z),$=J&&J.overrideDOMText;if($!=null){this.findPointInside(Z,$.length);for(let Q=$.iter();!Q.next().done;)if(Q.lineBreak)this.lineBreak();else this.append(Q.value)}else if(Z.nodeType==3)this.readTextNode(Z);else if(Z.nodeName=="BR"){if(Z.nextSibling)this.lineBreak()}else if(Z.nodeType==1)this.readRange(Z.firstChild,null)}findPointBefore(Z,J){for(let $ of this.points)if($.node==Z&&Z.childNodes[$.offset]==J)$.pos=this.text.length}findPointInside(Z,J){for(let $ of this.points)if(Z.nodeType==3?$.node==Z:Z.contains($.node))$.pos=this.text.length+(HN(Z,$.node,$.offset)?J:0)}}function HN(Z,J,$){for(;;){if(!J||$<xZ(J))return!1;if(J==Z)return!0;$=Z8(J)+1,J=J.parentNode}}function FN(Z,J){let $;for(;;Z=Z.nextSibling){if(Z==J||!Z)break;let Q=J9.get(Z);if(!(Q===null||Q===void 0?void 0:Q.isWidget()))return!1;if(Q)($||($=[])).push(Q)}if($)for(let Q of $){let X=Q.overrideDOMText;if(X===null||X===void 0?void 0:X.length)return!1}return!0}class wJ{constructor(Z,J){this.node=Z,this.offset=J,this.pos=-1}}class Iz{constructor(Z,J,$,Q){this.typeOver=Q,this.bounds=null,this.text="",this.domChanged=J>-1;let{impreciseHead:X,impreciseAnchor:z}=Z.docView,K=Z.state.selection;if(Z.state.readOnly&&J>-1)this.newSel=null;else if(J>-1&&(this.bounds=Rz(Z.docView.tile,J,$,0))){let Y=X||z?[]:NN(Z),q=new Mz(Y,Z);q.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=q.text,this.newSel=BN(Y,this.bounds.from)}else{let Y=Z.observer.selectionRange,q=X&&X.node==Y.focusNode&&X.offset==Y.focusOffset||!yJ(Z.contentDOM,Y.focusNode)?K.main.head:Z.docView.posFromDOM(Y.focusNode,Y.focusOffset),W=z&&z.node==Y.anchorNode&&z.offset==Y.anchorOffset||!yJ(Z.contentDOM,Y.anchorNode)?K.main.anchor:Z.docView.posFromDOM(Y.anchorNode,Y.anchorOffset),U=Z.viewport;if((N0.ios||N0.chrome)&&q!=W&&Math.min(q,W)<=K.main.from&&Math.max(q,W)>=K.main.to&&(U.from>0||U.to<Z.state.doc.length)){let H=Math.min(q,W),F=Math.max(q,W),O=U.from-H,N=U.to-F;if((O==0||O==1||H==0)&&(N==0||N==-1||F==Z.state.doc.length))q=0,W=Z.state.doc.length}if(Z.inputState.composing>-1&&K.ranges.length>1)this.newSel=K.replaceRange($0.range(W,q));else if(Z.lineWrapping&&W==q&&!(K.main.empty&&K.main.head==q)&&Z.inputState.lastTouchTime>Date.now()-100){let H=Z.coordsAtPos(q,-1),F=0;if(H)F=Z.inputState.lastTouchY<=H.bottom?-1:1;this.newSel=$0.create([$0.cursor(q,F)])}else this.newSel=$0.single(W,q)}}}function Rz(Z,J,$,Q){if(Z.isComposite()){let X=-1,z=-1,K=-1,Y=-1;for(let q=0,W=Q,U=Q;q<Z.children.length;q++){let H=Z.children[q],F=W+H.length;if(W<J&&F>$)return Rz(H,J,$,W);if(F>=J&&X==-1)X=q,z=W;if(W>$&&H.dom.parentNode==Z.dom){K=q,Y=U;break}U=F,W=F+H.breakAfter}return{from:z,to:Y<0?Q+Z.length:Y,startDOM:(X?Z.children[X-1].dom.nextSibling:null)||Z.dom.firstChild,endDOM:K<Z.children.length&&K>=0?Z.children[K].dom:null}}else if(Z.isText())return{from:Q,to:Q+Z.length,startDOM:Z.dom,endDOM:Z.dom.nextSibling};else return null}function Cz(Z,J){let $,{newSel:Q}=J,{state:X}=Z,z=X.selection.main,K=Z.inputState.lastKeyTime>Date.now()-100?Z.inputState.lastKeyCode:-1;if(J.bounds){let{from:Y,to:q}=J.bounds,W=z.from,U=null;if(K===8||N0.android&&J.text.length<q-Y)W=z.to,U="end";let H=X.doc.sliceString(Y,q,F6),F,O;if(!z.empty&&z.from>=Y&&z.to<=q&&(J.typeOver||H!=J.text)&&H.slice(0,z.from-Y)==J.text.slice(0,z.from-Y)&&H.slice(z.to-Y)==J.text.slice(F=J.text.length-(H.length-(z.to-Y))))$={from:z.from,to:z.to,insert:v0.of(J.text.slice(z.from-Y,F).split(F6))};else if(O=Vz(H,J.text,W-Y,U)){if(N0.chrome&&K==13&&O.toB==O.from+2&&J.text.slice(O.from,O.toB)==F6+F6)O.toB--;$={from:Y+O.from,to:Y+O.toA,insert:v0.of(J.text.slice(O.from,O.toB).split(F6))}}}else if(Q&&(!Z.hasFocus&&X.facet(EZ)||e4(Q,z)))Q=null;if(!$&&!Q)return!1;if((N0.mac||N0.android)&&$&&$.from==$.to&&$.from==z.head-1&&/^\. ?$/.test($.insert.toString())&&Z.contentDOM.getAttribute("autocorrect")=="off"){if(Q&&$.insert.length==2)Q=$0.single(Q.main.anchor-1,Q.main.head-1);$={from:$.from,to:$.to,insert:v0.of([$.insert.toString().replace("."," ")])}}else if(X.doc.lineAt(z.from).to<z.to&&Z.docView.lineHasWidget(z.to)&&Z.inputState.insertingTextAt>Date.now()-50)$={from:z.from,to:z.to,insert:X.toText(Z.inputState.insertingText)};else if(N0.chrome&&$&&$.from==$.to&&$.from==z.head&&$.insert.toString()==`
|
|
46
|
+
`&&Z.lineWrapping){if(Q)Q=$0.single(Q.main.anchor-1,Q.main.head-1);$={from:z.from,to:z.to,insert:v0.of([" "])}}if($)return nJ(Z,$,Q,K);else if(Q&&!e4(Q,z)){let Y=!1,q="select";if(Z.inputState.lastSelectionTime>Date.now()-50){if(Z.inputState.lastSelectionOrigin=="select")Y=!0;if(q=Z.inputState.lastSelectionOrigin,q=="select.pointer")Q=Lz(X.facet(P5).map((W)=>W(Z)),Q)}return Z.dispatch({selection:Q,scrollIntoView:Y,userEvent:q}),!0}else return!1}function nJ(Z,J,$,Q=-1){if(N0.ios&&Z.inputState.flushIOSKey(J))return!0;let X=Z.state.selection.main;if(N0.android&&(J.to==X.to&&(J.from==X.from||J.from==X.from-1&&Z.state.sliceDoc(J.from,X.from)==" ")&&J.insert.length==1&&J.insert.lines==2&&B6(Z.contentDOM,"Enter",13)||(J.from==X.from-1&&J.to==X.to&&J.insert.length==0||Q==8&&J.insert.length<J.to-J.from&&J.to>X.head)&&B6(Z.contentDOM,"Backspace",8)||J.from==X.from&&J.to==X.to+1&&J.insert.length==0&&B6(Z.contentDOM,"Delete",46)))return!0;let z=J.insert.toString();if(Z.inputState.composing>=0)Z.inputState.composing++;let K,Y=()=>K||(K=ON(Z,J,$));if(!Z.state.facet(Zz).some((q)=>q(Z,J.from,J.to,z,Y)))Z.dispatch(Y());return!0}function ON(Z,J,$){let Q,X=Z.state,z=X.selection.main,K=-1;if(J.from==J.to&&J.from<z.from||J.from>z.to){let q=J.from<z.from?-1:1,W=q<0?z.from:z.to,U=F5(X.facet(P5).map((H)=>H(Z)),W,q);if(J.from==U)K=U}if(K>-1)Q={changes:J,selection:$0.cursor(J.from+J.insert.length,-1)};else if(J.from>=z.from&&J.to<=z.to&&J.to-J.from>=(z.to-z.from)/3&&(!$||$.main.empty&&$.main.from==J.from+J.insert.length)&&Z.inputState.composing<0){let q=z.from<J.from?X.sliceDoc(z.from,J.from):"",W=z.to>J.to?X.sliceDoc(J.to,z.to):"";Q=X.replaceSelection(Z.state.toText(q+J.insert.sliceString(0,void 0,Z.state.lineBreak)+W))}else{let q=X.changes(J),W=$&&$.main.to<=q.newLength?$.main:void 0;if(X.selection.ranges.length>1&&(Z.inputState.composing>=0||Z.inputState.compositionPendingChange)&&J.to<=z.to+10&&J.to>=z.to-10){let U=Z.state.sliceDoc(J.from,J.to),H,F=$&&_z(Z,$.main.head);if(F){let N=J.insert.length-(J.to-J.from);H={from:F.from,to:F.to-N}}else H=Z.state.doc.lineAt(z.head);let O=z.to-J.to;Q=X.changeByRange((N)=>{if(N.from==z.from&&N.to==z.to)return{changes:q,range:W||N.map(q)};let _=N.to-O,A=_-U.length;if(Z.state.sliceDoc(A,_)!=U||_>=H.from&&A<=H.to)return{range:N};let L=X.changes({from:A,to:_,insert:J.insert}),B=N.to-z.to;return{changes:L,range:!W?N.map(L):$0.range(Math.max(0,W.anchor+B),Math.max(0,W.head+B))}})}else Q={changes:q,selection:W&&X.selection.replaceRange(W)}}let Y="input.type";if(Z.composing||Z.inputState.compositionPendingChange&&Z.inputState.compositionEndedAt>Date.now()-50){if(Z.inputState.compositionPendingChange=!1,Y+=".compose",Z.inputState.compositionFirstChange)Y+=".start",Z.inputState.compositionFirstChange=!1}return X.update(Q,{userEvent:Y,scrollIntoView:!0})}function Vz(Z,J,$,Q){let X=Math.min(Z.length,J.length),z=0;while(z<X&&Z.charCodeAt(z)==J.charCodeAt(z))z++;if(z==X&&Z.length==J.length)return null;let K=Z.length,Y=J.length;while(K>0&&Y>0&&Z.charCodeAt(K-1)==J.charCodeAt(Y-1))K--,Y--;if(Q=="end"){let q=Math.max(0,z-Math.min(K,Y));$-=K+q-z}if(K<z&&Z.length<J.length){let q=$<=z&&$>=K?z-$:0;z-=q,Y=z+(Y-K),K=z}else if(Y<z){let q=$<=z&&$>=Y?z-$:0;z-=q,K=z+(K-Y),Y=z}return{from:z,toA:K,toB:Y}}function NN(Z){let J=[];if(Z.root.activeElement!=Z.contentDOM)return J;let{anchorNode:$,anchorOffset:Q,focusNode:X,focusOffset:z}=Z.observer.selectionRange;if($){if(J.push(new wJ($,Q)),X!=$||z!=Q)J.push(new wJ(X,z))}return J}function BN(Z,J){if(Z.length==0)return null;let $=Z[0].pos,Q=Z.length==2?Z[1].pos:$;return $>-1&&Q>-1?$0.single($+J,Q+J):null}function e4(Z,J){return J.head==Z.main.head&&J.anchor==Z.main.anchor}class yz{setSelectionOrigin(Z){this.lastSelectionOrigin=Z,this.lastSelectionTime=Date.now()}constructor(Z){if(this.view=Z,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=Z.hasFocus,N0.safari)Z.contentDOM.addEventListener("input",()=>null);if(N0.gecko)SN(Z.contentDOM.ownerDocument)}handleEvent(Z){if(!CN(this.view,Z)||this.ignoreDuringComposition(Z))return;if(Z.type=="keydown"&&this.keydown(Z))return;if(this.view.updateState!=0)Promise.resolve().then(()=>this.runHandlers(Z.type,Z));else this.runHandlers(Z.type,Z)}runHandlers(Z,J){let $=this.handlers[Z];if($){for(let Q of $.observers)Q(this.view,J);for(let Q of $.handlers){if(J.defaultPrevented)break;if(Q(this.view,J)){J.preventDefault();break}}}}ensureHandlers(Z){let J=AN(Z),$=this.handlers,Q=this.view.contentDOM;for(let X in J)if(X!="scroll"){let z=!J[X].handlers.length,K=$[X];if(K&&z!=!K.handlers.length)Q.removeEventListener(X,this.handleEvent),K=null;if(!K)Q.addEventListener(X,this.handleEvent,{passive:z})}for(let X in $)if(X!="scroll"&&!J[X])Q.removeEventListener(X,this.handleEvent);this.handlers=J}keydown(Z){if(this.lastKeyCode=Z.keyCode,this.lastKeyTime=Date.now(),Z.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&Z.keyCode!=27&&Tz.indexOf(Z.keyCode)<0)this.tabFocusMode=-1;if(N0.android&&N0.chrome&&!Z.synthetic&&(Z.keyCode==13||Z.keyCode==8))return this.view.observer.delayAndroidKey(Z.key,Z.keyCode),!0;if(N0.ios&&!Z.synthetic&&!Z.altKey&&!Z.metaKey&&(kz.some((J)=>J.keyCode==Z.keyCode)&&!Z.ctrlKey||LN.indexOf(Z.key)>-1&&Z.ctrlKey)){let J={ctrlKey:Z.ctrlKey,altKey:Z.altKey,metaKey:Z.metaKey,shiftKey:Z.shiftKey};if(J.shiftKey&&N0.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&_N(this.view.win))J.shiftKey=!1;return this.pendingIOSKey={key:Z.key,keyCode:Z.keyCode,mods:J},setTimeout(()=>this.flushIOSKey(),250),!0}if(Z.keyCode!=229)this.view.observer.forceFlush();return!1}flushIOSKey(Z){let J=this.pendingIOSKey;if(!J)return!1;if(J.key=="Enter"&&Z&&Z.from<Z.to&&/^\S+$/.test(Z.insert.toString()))return!1;return this.pendingIOSKey=void 0,B6(this.view.contentDOM,J.key,J.keyCode,J.mods)}ignoreDuringComposition(Z){if(!/^key/.test(Z.type)||Z.synthetic)return!1;if(this.composing>0)return!0;if(N0.safari&&!N0.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)return this.compositionPendingKey=!1,!0;return!1}startMouseSelection(Z){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=Z}update(Z){if(this.view.observer.update(Z),this.mouseSelection)this.mouseSelection.update(Z);if(this.draggedContent&&Z.docChanged)this.draggedContent=this.draggedContent.map(Z.changes);if(Z.transactions.length)this.lastKeyCode=this.lastSelectionTime=0}destroy(){if(this.mouseSelection)this.mouseSelection.destroy()}}function _N(Z){if(!Z.visualViewport)return!1;return Z.visualViewport.height*Z.visualViewport.scale/Z.document.documentElement.clientHeight<0.85}function LX(Z,J){return($,Q)=>{try{return J.call(Z,Q,$)}catch(X){YZ($.state,X)}}}function AN(Z){let J=Object.create(null);function $(Q){return J[Q]||(J[Q]={observers:[],handlers:[]})}for(let Q of Z){let X=Q.spec,z=X&&X.plugin.domEventHandlers,K=X&&X.plugin.domEventObservers;if(z)for(let Y in z){let q=z[Y];if(q)$(Y).handlers.push(LX(Q.value,q))}if(K)for(let Y in K){let q=K[Y];if(q)$(Y).observers.push(LX(Q.value,q))}}for(let Q in GZ)$(Q).handlers.push(GZ[Q]);for(let Q in b9)$(Q).observers.push(b9[Q]);return J}var kz=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],LN="dthko",Tz=[16,17,18,20,91,92,224,225],h4=6;function f4(Z){return Math.max(0,Z)*0.7+8}function PN(Z,J){return Math.max(Math.abs(Z.clientX-J.clientX),Math.abs(Z.clientY-J.clientY))}class jz{constructor(Z,J,$,Q){this.view=Z,this.startEvent=J,this.style=$,this.mustSelect=Q,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=J,this.scrollParents=gX(Z.contentDOM),this.atoms=Z.state.facet(P5).map((z)=>z(Z));let X=Z.contentDOM.ownerDocument;X.addEventListener("mousemove",this.move=this.move.bind(this)),X.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=J.shiftKey,this.multiple=Z.state.facet(x0.allowMultipleSelections)&&MN(Z,J),this.dragging=RN(Z,J)&&bz(J)==1?null:!1}start(Z){if(this.dragging===!1)this.select(Z)}move(Z){if(Z.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&PN(this.startEvent,Z)<10)return;this.select(this.lastEvent=Z);let J=0,$=0,Q=0,X=0,z=this.view.win.innerWidth,K=this.view.win.innerHeight;if(this.scrollParents.x)({left:Q,right:z}=this.scrollParents.x.getBoundingClientRect());if(this.scrollParents.y)({top:X,bottom:K}=this.scrollParents.y.getBoundingClientRect());let Y=qz(this.view);if(Z.clientX-Y.left<=Q+h4)J=-f4(Q-Z.clientX);else if(Z.clientX+Y.right>=z-h4)J=f4(Z.clientX-z);if(Z.clientY-Y.top<=X+h4)$=-f4(X-Z.clientY);else if(Z.clientY+Y.bottom>=K-h4)$=f4(Z.clientY-K);this.setScrollSpeed(J,$)}up(Z){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)Z.preventDefault();this.destroy()}destroy(){this.setScrollSpeed(0,0);let Z=this.view.contentDOM.ownerDocument;Z.removeEventListener("mousemove",this.move),Z.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(Z,J){if(this.scrollSpeed={x:Z,y:J},Z||J){if(this.scrolling<0)this.scrolling=setInterval(()=>this.scroll(),50)}else if(this.scrolling>-1)clearInterval(this.scrolling),this.scrolling=-1}scroll(){let{x:Z,y:J}=this.scrollSpeed;if(Z&&this.scrollParents.x)this.scrollParents.x.scrollLeft+=Z,Z=0;if(J&&this.scrollParents.y)this.scrollParents.y.scrollTop+=J,J=0;if(Z||J)this.view.win.scrollBy(Z,J);if(this.dragging===!1)this.select(this.lastEvent)}select(Z){let{view:J}=this,$=Lz(this.atoms,this.style.get(Z,this.extend,this.multiple));if(this.mustSelect||!$.eq(J.state.selection,this.dragging===!1))this.view.dispatch({selection:$,userEvent:"select.pointer"});this.mustSelect=!1}update(Z){if(Z.transactions.some((J)=>J.isUserEvent("input.type")))this.destroy();else if(this.style.update(Z))setTimeout(()=>this.select(this.lastEvent),20)}}function MN(Z,J){let $=Z.state.facet(rX);return $.length?$[0](J):N0.mac?J.metaKey:J.ctrlKey}function IN(Z,J){let $=Z.state.facet(oX);return $.length?$[0](J):N0.mac?!J.altKey:!J.ctrlKey}function RN(Z,J){let{main:$}=Z.state.selection;if($.empty)return!1;let Q=N5(Z.root);if(!Q||Q.rangeCount==0)return!0;let X=Q.getRangeAt(0).getClientRects();for(let z=0;z<X.length;z++){let K=X[z];if(K.left<=J.clientX&&K.right>=J.clientX&&K.top<=J.clientY&&K.bottom>=J.clientY)return!0}return!1}function CN(Z,J){if(!J.bubbles)return!0;if(J.defaultPrevented)return!1;for(let $=J.target,Q;$!=Z.contentDOM;$=$.parentNode)if(!$||$.nodeType==11||(Q=J9.get($))&&Q.isWidget()&&!Q.isHidden&&Q.widget.ignoreEvent(J))return!1;return!0}var GZ=Object.create(null),b9=Object.create(null),Dz=N0.ie&&N0.ie_version<15||N0.ios&&N0.webkit_version<604;function VN(Z){let J=Z.dom.parentNode;if(!J)return;let $=J.appendChild(document.createElement("textarea"));$.style.cssText="position: fixed; left: -10000px; top: 10px",$.focus(),setTimeout(()=>{Z.focus(),$.remove(),Sz(Z,$.value)},50)}function X7(Z,J,$){for(let Q of Z.facet(J))$=Q($,Z);return $}function Sz(Z,J){J=X7(Z.state,dJ,J);let{state:$}=Z,Q,X=1,z=$.toText(J),K=z.lines==$.selection.ranges.length;if(xJ!=null&&$.selection.ranges.every((q)=>q.empty)&&xJ==z.toString()){let q=-1;Q=$.changeByRange((W)=>{let U=$.doc.lineAt(W.from);if(U.from==q)return{range:W};q=U.from;let H=$.toText((K?z.line(X++).text:J)+$.lineBreak);return{changes:{from:U.from,insert:H},range:$0.cursor(W.from+H.length)}})}else if(K)Q=$.changeByRange((q)=>{let W=z.line(X++);return{changes:{from:q.from,to:q.to,insert:W.text},range:$0.cursor(q.from+W.length)}});else Q=$.replaceSelection(z);Z.dispatch(Q,{userEvent:"input.paste",scrollIntoView:!0})}b9.scroll=(Z)=>{Z.inputState.lastScrollTop=Z.scrollDOM.scrollTop,Z.inputState.lastScrollLeft=Z.scrollDOM.scrollLeft};b9.wheel=b9.mousewheel=(Z)=>{Z.inputState.lastWheelEvent=Date.now()};GZ.keydown=(Z,J)=>{if(Z.inputState.setSelectionOrigin("select"),J.keyCode==27&&Z.inputState.tabFocusMode!=0)Z.inputState.tabFocusMode=Date.now()+2000;return!1};b9.touchstart=(Z,J)=>{let $=Z.inputState,Q=J.targetTouches[0];if($.lastTouchTime=Date.now(),Q)$.lastTouchX=Q.clientX,$.lastTouchY=Q.clientY;$.setSelectionOrigin("select.pointer")};b9.touchmove=(Z)=>{Z.inputState.setSelectionOrigin("select.pointer")};GZ.mousedown=(Z,J)=>{if(Z.observer.flush(),Z.inputState.lastTouchTime>Date.now()-2000)return!1;let $=null;for(let Q of Z.state.facet(tX))if($=Q(Z,J),$)break;if(!$&&J.button==0)$=kN(Z,J);if($){let Q=!Z.hasFocus;if(Z.inputState.startMouseSelection(new jz(Z,J,$,Q)),Q)Z.observer.ignore(()=>{uX(Z.contentDOM);let z=Z.root.activeElement;if(z&&!z.contains(Z.contentDOM))z.blur()});let X=Z.inputState.mouseSelection;if(X)return X.start(J),X.dragging===!1}else Z.inputState.setSelectionOrigin("select.pointer");return!1};function PX(Z,J,$,Q){if(Q==1)return $0.cursor(J,$);else if(Q==2)return KN(Z.state,J,$);else{let X=Z.docView.lineAt(J,$),z=Z.state.doc.lineAt(X?X.posAtEnd:J),K=X?X.posAtStart:z.from,Y=X?X.posAtEnd:z.to;if(Y<Z.state.doc.length&&Y==z.to)Y++;return $0.undirectionalRange(K,Y)}}var yN=N0.ie&&N0.ie_version<=11,MX=null,IX=0,RX=0;function bz(Z){if(!yN)return Z.detail;let J=MX,$=RX;return MX=Z,RX=Date.now(),IX=!J||$>Date.now()-400&&Math.abs(J.clientX-Z.clientX)<2&&Math.abs(J.clientY-Z.clientY)<2?(IX+1)%3:1}function kN(Z,J){let $=Z.posAndSideAtCoords({x:J.clientX,y:J.clientY},!1),Q=bz(J),X=Z.state.selection;return{update(z){if(z.docChanged)$.pos=z.changes.mapPos($.pos),X=X.map(z.changes)},get(z,K,Y){let q=Z.posAndSideAtCoords({x:z.clientX,y:z.clientY},!1),W,U=PX(Z,q.pos,q.assoc,Q);if($.pos!=q.pos&&!K){let H=PX(Z,$.pos,$.assoc,Q),F=Math.min(H.from,U.from),O=Math.max(H.to,U.to);U=F<U.from?$0.range(F,O,U.assoc):$0.range(O,F,U.assoc)}if(K)return X.replaceRange(X.main.extend(U.from,U.to,U.assoc));else if(Y&&Q==1&&X.ranges.length>1&&(W=TN(X,q.pos)))return W;else if(Y)return X.addRange(U);else return $0.create([U])}}}function TN(Z,J){for(let $=0;$<Z.ranges.length;$++){let{from:Q,to:X}=Z.ranges[$];if(Q<=J&&X>=J)return $0.create(Z.ranges.slice(0,$).concat(Z.ranges.slice($+1)),Z.mainIndex==$?0:Z.mainIndex-(Z.mainIndex>$?1:0))}return null}GZ.dragstart=(Z,J)=>{let{selection:{main:$}}=Z.state;if(J.target.draggable){let X=Z.docView.tile.nearest(J.target);if(X&&X.isWidget()){let z=X.posAtStart,K=z+X.length;if(z>=$.to||K<=$.from)$=$0.undirectionalRange(z,K)}}let{inputState:Q}=Z;if(Q.mouseSelection)Q.mouseSelection.dragging=!0;if(Q.draggedContent=$,J.dataTransfer)J.dataTransfer.setData("Text",X7(Z.state,lJ,Z.state.sliceDoc($.from,$.to))),J.dataTransfer.effectAllowed="copyMove";return!1};GZ.dragend=(Z)=>{return Z.inputState.draggedContent=null,!1};function CX(Z,J,$,Q){if($=X7(Z.state,dJ,$),!$)return;let X=Z.posAtCoords({x:J.clientX,y:J.clientY},!1),{draggedContent:z}=Z.inputState,K=Q&&z&&IN(Z,J)?{from:z.from,to:z.to}:null,Y={from:X,insert:$},q=Z.state.changes(K?[K,Y]:Y);Z.focus(),Z.dispatch({changes:q,selection:{anchor:q.mapPos(X,-1),head:q.mapPos(X,1)},userEvent:K?"move.drop":"input.drop"}),Z.inputState.draggedContent=null}GZ.drop=(Z,J)=>{if(!J.dataTransfer)return!1;if(Z.state.readOnly)return!0;let $=J.dataTransfer.files;if($&&$.length){let Q=Array($.length),X=0,z=()=>{if(++X==$.length)CX(Z,J,Q.filter((K)=>K!=null).join(Z.state.lineBreak),!1)};for(let K=0;K<$.length;K++){let Y=new FileReader;Y.onerror=z,Y.onload=()=>{if(!/[\x00-\x08\x0e-\x1f]{2}/.test(Y.result))Q[K]=Y.result;z()},Y.readAsText($[K])}return!0}else{let Q=J.dataTransfer.getData("Text");if(Q)return CX(Z,J,Q,!0),!0}return!1};GZ.paste=(Z,J)=>{if(Z.state.readOnly)return!0;Z.observer.flush();let $=Dz?null:J.clipboardData;if($)return Sz(Z,$.getData("text/plain")||$.getData("text/uri-list")),!0;else return VN(Z),!1};function jN(Z,J){let $=Z.dom.parentNode;if(!$)return;let Q=$.appendChild(document.createElement("textarea"));Q.style.cssText="position: fixed; left: -10000px; top: 10px",Q.value=J,Q.focus(),Q.selectionEnd=J.length,Q.selectionStart=0,setTimeout(()=>{Q.remove(),Z.focus()},50)}function DN(Z){let J=[],$=[],Q=!1;for(let X of Z.selection.ranges)if(!X.empty)J.push(Z.sliceDoc(X.from,X.to)),$.push(X);if(!J.length){let X=-1;for(let{from:z}of Z.selection.ranges){let K=Z.doc.lineAt(z);if(K.number>X)J.push(K.text),$.push({from:K.from,to:Math.min(Z.doc.length,K.to+1)});X=K.number}Q=!0}return{text:X7(Z,lJ,J.join(Z.lineBreak)),ranges:$,linewise:Q}}var xJ=null;GZ.copy=GZ.cut=(Z,J)=>{if(!U5(Z.contentDOM,Z.observer.selectionRange))return!1;let{text:$,ranges:Q,linewise:X}=DN(Z.state);if(!$&&!X)return!1;if(xJ=X?$:null,J.type=="cut"&&!Z.state.readOnly)Z.dispatch({changes:Q,scrollIntoView:!0,userEvent:"delete.cut"});let z=Dz?null:J.clipboardData;if(z)return z.clearData(),z.setData("text/plain",$),!0;else return jN(Z,$),!1};var Ez=JZ.define();function wz(Z,J){let $=[];for(let Q of Z.facet(Jz)){let X=Q(Z,J);if(X)$.push(X)}return $.length?Z.update({effects:$,annotations:Ez.of(!0)}):null}function xz(Z){setTimeout(()=>{let J=Z.hasFocus;if(J!=Z.inputState.notifiedFocused){let $=wz(Z.state,J);if($)Z.dispatch($);else Z.update([])}},10)}b9.focus=(Z)=>{if(Z.inputState.lastFocusTime=Date.now(),!Z.scrollDOM.scrollTop&&(Z.inputState.lastScrollTop||Z.inputState.lastScrollLeft))Z.scrollDOM.scrollTop=Z.inputState.lastScrollTop,Z.scrollDOM.scrollLeft=Z.inputState.lastScrollLeft;xz(Z)};b9.blur=(Z)=>{Z.observer.clearSelectionRange(),xz(Z)};b9.compositionstart=b9.compositionupdate=(Z)=>{if(Z.observer.editContext)return;if(Z.inputState.compositionFirstChange==null)Z.inputState.compositionFirstChange=!0;if(Z.inputState.composing<0)Z.inputState.composing=0};b9.compositionend=(Z)=>{if(Z.observer.editContext)return;if(Z.inputState.composing=-1,Z.inputState.compositionEndedAt=Date.now(),Z.inputState.compositionPendingKey=!0,Z.inputState.compositionPendingChange=Z.observer.pendingRecords().length>0,Z.inputState.compositionFirstChange=null,N0.chrome&&N0.android)Z.observer.flushSoon();else if(Z.inputState.compositionPendingChange)Promise.resolve().then(()=>Z.observer.flush());else setTimeout(()=>{if(Z.inputState.composing<0&&Z.docView.hasComposition)Z.update([])},50)};b9.contextmenu=(Z)=>{Z.inputState.lastContextMenu=Date.now()};GZ.beforeinput=(Z,J)=>{var $,Q;if(J.inputType=="insertText"||J.inputType=="insertCompositionText")Z.inputState.insertingText=J.data,Z.inputState.insertingTextAt=Date.now();if(J.inputType=="insertReplacementText"&&Z.observer.editContext){let z=($=J.dataTransfer)===null||$===void 0?void 0:$.getData("text/plain"),K=J.getTargetRanges();if(z&&K.length){let Y=K[0],q=Z.posAtDOM(Y.startContainer,Y.startOffset),W=Z.posAtDOM(Y.endContainer,Y.endOffset);return nJ(Z,{from:q,to:W,insert:Z.state.toText(z)},null),!0}}let X;if(N0.chrome&&N0.android&&(X=kz.find((z)=>z.inputType==J.inputType))){if(Z.observer.delayAndroidKey(X.key,X.keyCode),X.key=="Backspace"||X.key=="Delete"){let z=((Q=window.visualViewport)===null||Q===void 0?void 0:Q.height)||0;setTimeout(()=>{var K;if((((K=window.visualViewport)===null||K===void 0?void 0:K.height)||0)>z+10&&Z.hasFocus)Z.contentDOM.blur(),Z.focus()},100)}}if(N0.ios&&J.inputType=="deleteContentForward")Z.observer.flushSoon();if(N0.safari&&J.inputType=="insertText"&&Z.inputState.composing>=0)setTimeout(()=>b9.compositionend(Z,J),20);return!1};var VX=new Set;function SN(Z){if(!VX.has(Z))VX.add(Z),Z.addEventListener("copy",()=>{}),Z.addEventListener("cut",()=>{})}var yX=["pre-wrap","normal","pre-line","break-spaces"],L6=!1;function kX(){L6=!1}class vz{constructor(Z){this.lineWrapping=Z,this.doc=v0.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(Z,J){let $=this.doc.lineAt(J).number-this.doc.lineAt(Z).number+1;if(this.lineWrapping)$+=Math.max(0,Math.ceil((J-Z-$*this.lineLength*0.5)/this.lineLength));return this.lineHeight*$}heightForLine(Z){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((Z-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight}setDoc(Z){return this.doc=Z,this}mustRefreshForWrapping(Z){return yX.indexOf(Z)>-1!=this.lineWrapping}mustRefreshForHeights(Z){let J=!1;for(let $=0;$<Z.length;$++){let Q=Z[$];if(Q<0)$++;else if(!this.heightSamples[Math.floor(Q*10)])J=!0,this.heightSamples[Math.floor(Q*10)]=!0}return J}refresh(Z,J,$,Q,X,z){let K=yX.indexOf(Z)>-1,Y=Math.abs(J-this.lineHeight)>0.3||this.lineWrapping!=K;if(this.lineWrapping=K,this.lineHeight=J,this.charWidth=$,this.textHeight=Q,this.lineLength=X,Y){this.heightSamples={};for(let q=0;q<z.length;q++){let W=z[q];if(W<0)q++;else this.heightSamples[Math.floor(W*10)]=!0}}return Y}}class hz{constructor(Z,J){this.from=Z,this.heights=J,this.index=0}get more(){return this.index<this.heights.length}}class XZ{constructor(Z,J,$,Q,X){this.from=Z,this.length=J,this.top=$,this.height=Q,this._content=X}get type(){return typeof this._content=="number"?c9.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof E8?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(Z){let J=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(Z._content)?Z._content:[Z]);return new XZ(this.from,this.length+Z.length,this.top,this.height+Z.height,J)}}var n0=function(Z){return Z[Z.ByPos=0]="ByPos",Z[Z.ByHeight=1]="ByHeight",Z[Z.ByPosNoHeight=2]="ByPosNoHeight",Z}(n0||(n0={})),a4=0.001;class V9{constructor(Z,J,$=2){this.length=Z,this.height=J,this.flags=$}get outdated(){return(this.flags&2)>0}set outdated(Z){this.flags=(Z?2:0)|this.flags&-3}setHeight(Z){if(this.height!=Z){if(Math.abs(this.height-Z)>a4)L6=!0;this.height=Z}}replace(Z,J,$){return V9.of($)}decomposeLeft(Z,J){J.push(this)}decomposeRight(Z,J){J.push(this)}applyChanges(Z,J,$,Q){let X=this,z=$.doc;for(let K=Q.length-1;K>=0;K--){let{fromA:Y,toA:q,fromB:W,toB:U}=Q[K],H=X.lineAt(Y,n0.ByPosNoHeight,$.setDoc(J),0,0),F=H.to>=q?H:X.lineAt(q,n0.ByPosNoHeight,$,0,0);U+=F.to-q,q=F.to;while(K>0&&H.from<=Q[K-1].toA)if(Y=Q[K-1].fromA,W=Q[K-1].fromB,K--,Y<H.from)H=X.lineAt(Y,n0.ByPosNoHeight,$,0,0);W+=H.from-Y,Y=H.from;let O=rJ.build($.setDoc(z),Z,W,U);X=Z7(X,X.replace(Y,q,O))}return X.updateHeight($,0)}static empty(){return new h9(0,0,0)}static of(Z){if(Z.length==1)return Z[0];let J=0,$=Z.length,Q=0,X=0;for(;;)if(J==$)if(Q>X*2){let K=Z[J-1];if(K.break)Z.splice(--J,1,K.left,null,K.right);else Z.splice(--J,1,K.left,K.right);$+=1+K.break,Q-=K.size}else if(X>Q*2){let K=Z[$];if(K.break)Z.splice($,1,K.left,null,K.right);else Z.splice($,1,K.left,K.right);$+=2+K.break,X-=K.size}else break;else if(Q<X){let K=Z[J++];if(K)Q+=K.size}else{let K=Z[--$];if(K)X+=K.size}let z=0;if(Z[J-1]==null)z=1,J--;else if(Z[J]==null)z=1,$++;return new fz(V9.of(Z.slice(0,J)),z,V9.of(Z.slice($)))}}function Z7(Z,J){if(Z==J)return Z;if(Z.constructor!=J.constructor)L6=!0;return J}V9.prototype.size=1;var bN=L0.replace({});class sJ extends V9{constructor(Z,J,$){super(Z,J);this.deco=$,this.spaceAbove=0}mainBlock(Z,J){return new XZ(J,this.length,Z+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(Z,J,$,Q){return this.spaceAbove&&Z<$+this.spaceAbove?new XZ(Q,0,$,this.spaceAbove,bN):this.mainBlock($,Q)}lineAt(Z,J,$,Q,X){let z=this.mainBlock(Q,X);return this.spaceAbove?this.blockAt(0,$,Q,X).join(z):z}forEachLine(Z,J,$,Q,X,z){if(Z<=X+this.length&&J>=X)z(this.lineAt(0,n0.ByPos,$,Q,X))}setMeasuredHeight(Z){let J=Z.heights[Z.index++];if(J<0)this.spaceAbove=-J,J=Z.heights[Z.index++];else this.spaceAbove=0;this.setHeight(J)}updateHeight(Z,J=0,$=!1,Q){if(Q&&Q.from<=J&&Q.more)this.setMeasuredHeight(Q);return this.outdated=!1,this}toString(){return`block(${this.length})`}}class h9 extends sJ{constructor(Z,J,$){super(Z,J,null);this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=$}mainBlock(Z,J){return new XZ(J,this.length,Z+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(Z,J,$){let Q=$[0];if($.length==1&&(Q instanceof h9||Q instanceof O9&&Q.flags&4)&&Math.abs(this.length-Q.length)<10){if(Q instanceof O9)Q=new h9(Q.length,this.height,this.spaceAbove);else Q.height=this.height;if(!this.outdated)Q.outdated=!1;return Q}else return V9.of($)}updateHeight(Z,J=0,$=!1,Q){if(Q&&Q.from<=J&&Q.more)this.setMeasuredHeight(Q);else if($||this.outdated)this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,Z.heightForLine(this.length-this.collapsed))+this.breaks*Z.lineHeight);return this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class O9 extends V9{constructor(Z){super(Z,0)}heightMetrics(Z,J){let $=Z.doc.lineAt(J).number,Q=Z.doc.lineAt(J+this.length).number,X=Q-$+1,z,K=0;if(Z.lineWrapping){let Y=Math.min(this.height,Z.lineHeight*X);if(z=Y/X,this.length>X+1)K=(this.height-Y)/(this.length-X-1)}else z=this.height/X;return{firstLine:$,lastLine:Q,perLine:z,perChar:K}}blockAt(Z,J,$,Q){let{firstLine:X,lastLine:z,perLine:K,perChar:Y}=this.heightMetrics(J,Q);if(J.lineWrapping){let q=Q+(Z<J.lineHeight?0:Math.round(Math.max(0,Math.min(1,(Z-$)/this.height))*this.length)),W=J.doc.lineAt(q),U=K+W.length*Y,H=Math.max($,Z-U/2);return new XZ(W.from,W.length,H,U,0)}else{let q=Math.max(0,Math.min(z-X,Math.floor((Z-$)/K))),{from:W,length:U}=J.doc.line(X+q);return new XZ(W,U,$+K*q,K,0)}}lineAt(Z,J,$,Q,X){if(J==n0.ByHeight)return this.blockAt(Z,$,Q,X);if(J==n0.ByPosNoHeight){let{from:F,to:O}=$.doc.lineAt(Z);return new XZ(F,O-F,0,0,0)}let{firstLine:z,perLine:K,perChar:Y}=this.heightMetrics($,X),q=$.doc.lineAt(Z),W=K+q.length*Y,U=q.number-z,H=Q+K*U+Y*(q.from-X-U);return new XZ(q.from,q.length,Math.max(Q,Math.min(H,Q+this.height-W)),W,0)}forEachLine(Z,J,$,Q,X,z){Z=Math.max(Z,X),J=Math.min(J,X+this.length);let{firstLine:K,perLine:Y,perChar:q}=this.heightMetrics($,X);for(let W=Z,U=Q;W<=J;){let H=$.doc.lineAt(W);if(W==Z){let O=H.number-K;U+=Y*O+q*(Z-X-O)}let F=Y+q*H.length;z(new XZ(H.from,H.length,U,F,0)),U+=F,W=H.to+1}}replace(Z,J,$){let Q=this.length-J;if(Q>0){let X=$[$.length-1];if(X instanceof O9)$[$.length-1]=new O9(X.length+Q);else $.push(null,new O9(Q-1))}if(Z>0){let X=$[0];if(X instanceof O9)$[0]=new O9(Z+X.length);else $.unshift(new O9(Z-1),null)}return V9.of($)}decomposeLeft(Z,J){J.push(new O9(Z-1),null)}decomposeRight(Z,J){J.push(null,new O9(this.length-Z-1))}updateHeight(Z,J=0,$=!1,Q){let X=J+this.length;if(Q&&Q.from<=J+this.length&&Q.more){let z=[],K=Math.max(J,Q.from),Y=-1;if(Q.from>J)z.push(new O9(Q.from-J-1).updateHeight(Z,J));while(K<=X&&Q.more){let W=Z.doc.lineAt(K).length;if(z.length)z.push(null);let U=Q.heights[Q.index++],H=0;if(U<0)H=-U,U=Q.heights[Q.index++];if(Y==-1)Y=U;else if(Math.abs(U-Y)>=a4)Y=-2;let F=new h9(W,U,H);F.outdated=!1,z.push(F),K+=W+1}if(K<=X)z.push(null,new O9(X-K).updateHeight(Z,K));let q=V9.of(z);if(Y<0||Math.abs(q.height-this.height)>=a4||Math.abs(Y-this.heightMetrics(Z,J).perLine)>=a4)L6=!0;return Z7(this,q)}else if($||this.outdated)this.setHeight(Z.heightForGap(J,J+this.length)),this.outdated=!1;return this}toString(){return`gap(${this.length})`}}class fz extends V9{constructor(Z,J,$){super(Z.length+J+$.length,Z.height+$.height,J|(Z.outdated||$.outdated?2:0));this.left=Z,this.right=$,this.size=Z.size+$.size}get break(){return this.flags&1}blockAt(Z,J,$,Q){let X=$+this.left.height;return Z<X?this.left.blockAt(Z,J,$,Q):this.right.blockAt(Z,J,X,Q+this.left.length+this.break)}lineAt(Z,J,$,Q,X){let z=Q+this.left.height,K=X+this.left.length+this.break,Y=J==n0.ByHeight?Z<z:Z<K,q=Y?this.left.lineAt(Z,J,$,Q,X):this.right.lineAt(Z,J,$,z,K);if(this.break||(Y?q.to<K:q.from>K))return q;let W=J==n0.ByPosNoHeight?n0.ByPosNoHeight:n0.ByPos;if(Y)return q.join(this.right.lineAt(K,W,$,z,K));else return this.left.lineAt(K,W,$,Q,X).join(q)}forEachLine(Z,J,$,Q,X,z){let K=Q+this.left.height,Y=X+this.left.length+this.break;if(this.break){if(Z<Y)this.left.forEachLine(Z,J,$,Q,X,z);if(J>=Y)this.right.forEachLine(Z,J,$,K,Y,z)}else{let q=this.lineAt(Y,n0.ByPos,$,Q,X);if(Z<q.from)this.left.forEachLine(Z,q.from-1,$,Q,X,z);if(q.to>=Z&&q.from<=J)z(q);if(J>q.to)this.right.forEachLine(q.to+1,J,$,K,Y,z)}}replace(Z,J,$){let Q=this.left.length+this.break;if(J<Q)return this.balanced(this.left.replace(Z,J,$),this.right);if(Z>this.left.length)return this.balanced(this.left,this.right.replace(Z-Q,J-Q,$));let X=[];if(Z>0)this.decomposeLeft(Z,X);let z=X.length;for(let K of $)X.push(K);if(Z>0)TX(X,z-1);if(J<this.length){let K=X.length;this.decomposeRight(J,X),TX(X,K)}return V9.of(X)}decomposeLeft(Z,J){let $=this.left.length;if(Z<=$)return this.left.decomposeLeft(Z,J);if(J.push(this.left),this.break){if($++,Z>=$)J.push(null)}if(Z>$)this.right.decomposeLeft(Z-$,J)}decomposeRight(Z,J){let $=this.left.length,Q=$+this.break;if(Z>=Q)return this.right.decomposeRight(Z-Q,J);if(Z<$)this.left.decomposeRight(Z,J);if(this.break&&Z<Q)J.push(null);J.push(this.right)}balanced(Z,J){if(Z.size>2*J.size||J.size>2*Z.size)return V9.of(this.break?[Z,null,J]:[Z,J]);return this.left=Z7(this.left,Z),this.right=Z7(this.right,J),this.setHeight(Z.height+J.height),this.outdated=Z.outdated||J.outdated,this.size=Z.size+J.size,this.length=Z.length+this.break+J.length,this}updateHeight(Z,J=0,$=!1,Q){let{left:X,right:z}=this,K=J+X.length+this.break,Y=null;if(Q&&Q.from<=J+X.length&&Q.more)Y=X=X.updateHeight(Z,J,$,Q);else X.updateHeight(Z,J,$);if(Q&&Q.from<=K+z.length&&Q.more)Y=z=z.updateHeight(Z,K,$,Q);else z.updateHeight(Z,K,$);if(Y)return this.balanced(X,z);return this.height=this.left.height+this.right.height,this.outdated=!1,this}toString(){return this.left+(this.break?" ":"-")+this.right}}function TX(Z,J){let $,Q;if(Z[J]==null&&($=Z[J-1])instanceof O9&&(Q=Z[J+1])instanceof O9)Z.splice(J-1,3,new O9($.length+1+Q.length))}var EN=5;class rJ{constructor(Z,J){this.pos=Z,this.oracle=J,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=Z}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(Z,J){if(this.lineStart>-1){let $=Math.min(J,this.lineEnd),Q=this.nodes[this.nodes.length-1];if(Q instanceof h9)Q.length+=$-this.pos;else if($>this.pos||!this.isCovered)this.nodes.push(new h9($-this.pos,-1,0));if(this.writtenTo=$,J>$)this.nodes.push(null),this.writtenTo++,this.lineStart=-1}this.pos=J}point(Z,J,$){if(Z<J||$.heightRelevant){let Q=$.widget?$.widget.estimatedHeight:0,X=$.widget?$.widget.lineBreaks:0;if(Q<0)Q=this.oracle.lineHeight;let z=J-Z;if($.block)this.addBlock(new sJ(z,Q,$));else if(z||X||Q>=EN)this.addLineDeco(Q,X,z)}else if(J>Z)this.span(Z,J);if(this.lineEnd>-1&&this.lineEnd<this.pos)this.lineEnd=this.oracle.doc.lineAt(this.pos).to}enterLine(){if(this.lineStart>-1)return;let{from:Z,to:J}=this.oracle.doc.lineAt(this.pos);if(this.lineStart=Z,this.lineEnd=J,this.writtenTo<Z){if(this.writtenTo<Z-1||this.nodes[this.nodes.length-1]==null)this.nodes.push(this.blankContent(this.writtenTo,Z-1));this.nodes.push(null)}if(this.pos>Z)this.nodes.push(new h9(this.pos-Z,-1,0));this.writtenTo=this.pos}blankContent(Z,J){let $=new O9(J-Z);if(this.oracle.doc.lineAt(Z).to==J)$.flags|=4;return $}ensureLine(){this.enterLine();let Z=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(Z instanceof h9)return Z;let J=new h9(0,-1,0);return this.nodes.push(J),J}addBlock(Z){this.enterLine();let J=Z.deco;if(J&&J.startSide>0&&!this.isCovered)this.ensureLine();if(this.nodes.push(Z),this.writtenTo=this.pos=this.pos+Z.length,J&&J.endSide>0)this.covering=Z}addLineDeco(Z,J,$){let Q=this.ensureLine();Q.length+=$,Q.collapsed+=$,Q.widgetHeight=Math.max(Q.widgetHeight,Z),Q.breaks+=J,this.writtenTo=this.pos=this.pos+$}finish(Z){let J=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(J instanceof h9)&&!this.isCovered)this.nodes.push(new h9(0,-1,0));else if(this.writtenTo<this.pos||J==null)this.nodes.push(this.blankContent(this.writtenTo,this.pos));let $=Z;for(let Q of this.nodes){if(Q instanceof h9)Q.updateHeight(this.oracle,$);$+=Q?Q.length:1}return this.nodes}static build(Z,J,$,Q){let X=new rJ($,Z);return f0.spans(J,$,Q,X,0),X.finish($)}}function wN(Z,J,$){let Q=new gz;return f0.compare(Z,J,$,Q,0),Q.changes}class gz{constructor(){this.changes=[]}compareRange(){}comparePoint(Z,J,$,Q){if(Z<J||$&&$.heightRelevant||Q&&Q.heightRelevant)N6(Z,J,this.changes,5)}}function xN(Z,J){let $=Z.getBoundingClientRect(),Q=Z.ownerDocument,X=Q.defaultView||window,z=Math.max(0,$.left),K=Math.min(X.innerWidth,$.right),Y=Math.max(0,$.top),q=Math.min(X.innerHeight,$.bottom);for(let W=Z.parentNode;W&&W!=Q.body;)if(W.nodeType==1){let U=W,H=window.getComputedStyle(U);if((U.scrollHeight>U.clientHeight||U.scrollWidth>U.clientWidth)&&H.overflow!="visible"){let F=U.getBoundingClientRect();z=Math.max(z,F.left),K=Math.min(K,F.right),Y=Math.max(Y,F.top),q=Math.min(W==Z.parentNode?X.innerHeight:q,F.bottom)}W=H.position=="absolute"||H.position=="fixed"?U.offsetParent:U.parentNode}else if(W.nodeType==11)W=W.host;else break;return{left:z-$.left,right:Math.max(z,K)-$.left,top:Y-($.top+J),bottom:Math.max(Y,q)-($.top+J)}}function vN(Z){let J=Z.getBoundingClientRect(),$=Z.ownerDocument.defaultView||window;return J.left<$.innerWidth&&J.right>0&&J.top<$.innerHeight&&J.bottom>0}function hN(Z,J){let $=Z.getBoundingClientRect();return{left:0,right:$.right-$.left,top:J,bottom:$.bottom-($.top+J)}}class i4{constructor(Z,J,$,Q){this.from=Z,this.to=J,this.size=$,this.displaySize=Q}static same(Z,J){if(Z.length!=J.length)return!1;for(let $=0;$<Z.length;$++){let Q=Z[$],X=J[$];if(Q.from!=X.from||Q.to!=X.to||Q.size!=X.size)return!1}return!0}draw(Z,J){return L0.replace({widget:new mz(this.displaySize*(J?Z.scaleY:Z.scaleX),J)}).range(this.from,this.to)}}class mz extends N9{constructor(Z,J){super();this.size=Z,this.vertical=J}eq(Z){return Z.size==this.size&&Z.vertical==this.vertical}toDOM(){let Z=document.createElement("div");if(this.vertical)Z.style.height=this.size+"px";else Z.style.width=this.size+"px",Z.style.height="2px",Z.style.display="inline-block";return Z}get estimatedHeight(){return this.vertical?this.size:-1}}class vJ{constructor(Z,J){this.view=Z,this.state=J,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scaleX=1,this.scaleY=1,this.scrollOffset=0,this.scrolledToBottom=!1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=jX,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Q9.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let $=J.facet(aJ).some((Q)=>typeof Q!="function"&&Q.class=="cm-lineWrapping");this.heightOracle=new vz($),this.stateDeco=DX(J),this.heightMap=V9.empty().applyChanges(this.stateDeco,v0.empty,this.heightOracle.setDoc(J.doc),[new p9(0,0,0,J.doc.length)]);for(let Q=0;Q<2;Q++)if(this.viewport=this.getViewport(0,null),!this.updateForViewport())break;this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=L0.set(this.lineGaps.map((Q)=>Q.draw(this,!1))),this.scrollParent=Z.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let Z=[this.viewport],{main:J}=this.state.selection;for(let $=0;$<=1;$++){let Q=$?J.head:J.anchor;if(!Z.some(({from:X,to:z})=>Q>=X&&Q<=z)){let{from:X,to:z}=this.lineBlockAt(Q);Z.push(new G5(X,z))}}return this.viewports=Z.sort(($,Q)=>$.from-Q.from),this.updateScaler()}updateScaler(){let Z=this.scaler;return this.scaler=this.heightMap.height<=7000000?jX:new oJ(this.heightOracle,this.heightMap,this.viewports),Z.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(Z)=>{this.viewportLines.push(q5(Z,this.scaler))})}update(Z,J=null){this.state=Z.state;let $=this.stateDeco;this.stateDeco=DX(this.state);let Q=Z.changedRanges,X=p9.extendWithRanges(Q,wN($,this.stateDeco,Z?Z.changes:Y9.empty(this.state.doc.length))),z=this.heightMap.height,K=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);if(kX(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,Z.startState.doc,this.heightOracle.setDoc(this.state.doc),X),this.heightMap.height!=z||L6)Z.flags|=2;if(K)this.scrollAnchorPos=Z.changes.mapPos(K.from,-1),this.scrollAnchorHeight=K.top;else this.scrollAnchorPos=-1,this.scrollAnchorHeight=z;let Y=X.length?this.mapViewport(this.viewport,Z.changes):this.viewport;if(J&&(J.range.head<Y.from||J.range.head>Y.to)||!this.viewportIsAppropriate(Y))Y=this.getViewport(0,J);let q=Y.from!=this.viewport.from||Y.to!=this.viewport.to;if(this.viewport=Y,Z.flags|=this.updateForViewport(),q||!Z.changes.empty||Z.flags&2)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>4000)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,Z.changes)));if(Z.flags|=this.computeVisibleRanges(Z.changes),J)this.scrollTarget=J;if(!this.mustEnforceCursorAssoc&&(Z.selectionSet||Z.focusChanged)&&Z.view.lineWrapping&&Z.state.selection.main.empty&&Z.state.selection.main.assoc&&!Z.state.facet(dO))this.mustEnforceCursorAssoc=!0}measure(){let{view:Z}=this,J=Z.contentDOM,$=window.getComputedStyle(J),Q=this.heightOracle,X=$.whiteSpace;this.defaultTextDirection=$.direction=="rtl"?Q9.RTL:Q9.LTR;let z=this.heightOracle.mustRefreshForWrapping(X)||this.mustMeasureContent==="refresh",K=J.getBoundingClientRect(),Y=z||this.mustMeasureContent||this.contentDOMHeight!=K.height;this.contentDOMHeight=K.height,this.mustMeasureContent=!1;let q=0,W=0;if(K.width&&K.height){let{scaleX:C,scaleY:R}=fX(J,K);if(C>0.005&&Math.abs(this.scaleX-C)>0.005||R>0.005&&Math.abs(this.scaleY-R)>0.005)this.scaleX=C,this.scaleY=R,q|=16,z=Y=!0}let U=(parseInt($.paddingTop)||0)*this.scaleY,H=(parseInt($.paddingBottom)||0)*this.scaleY;if(this.paddingTop!=U||this.paddingBottom!=H)this.paddingTop=U,this.paddingBottom=H,q|=18;if(this.editorWidth!=Z.scrollDOM.clientWidth){if(Q.lineWrapping)Y=!0;this.editorWidth=Z.scrollDOM.clientWidth,q|=16}let F=gX(this.view.contentDOM,!1).y;if(F!=this.scrollParent)this.scrollParent=F,this.scrollAnchorHeight=-1,this.scrollOffset=0;let O=this.getScrollOffset();if(this.scrollOffset!=O)this.scrollAnchorHeight=-1,this.scrollOffset=O;this.scrolledToBottom=pX(this.scrollParent||Z.win);let N=(this.printing?hN:xN)(J,this.paddingTop),_=N.top-this.pixelViewport.top,A=N.bottom-this.pixelViewport.bottom;this.pixelViewport=N;let L=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(L!=this.inView){if(this.inView=L,L)Y=!0}if(!this.inView&&!this.scrollTarget&&!vN(Z.dom))return 0;let B=K.width;if(this.contentDOMWidth!=B||this.editorHeight!=Z.scrollDOM.clientHeight)this.contentDOMWidth=K.width,this.editorHeight=Z.scrollDOM.clientHeight,q|=16;if(Y){let C=Z.docView.measureVisibleLineHeights(this.viewport);if(Q.mustRefreshForHeights(C))z=!0;if(z||Q.lineWrapping&&Math.abs(B-this.contentDOMWidth)>Q.charWidth){let{lineHeight:R,charWidth:I,textHeight:P}=Z.docView.measureTextSize();if(z=R>0&&Q.refresh(X,R,I,P,Math.max(5,B/I),C),z)Z.docView.minWidth=0,q|=16}if(_>0&&A>0)W=Math.max(_,A);else if(_<0&&A<0)W=Math.min(_,A);kX();for(let R of this.viewports){let I=R.from==this.viewport.from?C:Z.docView.measureVisibleLineHeights(R);this.heightMap=(z?V9.empty().applyChanges(this.stateDeco,v0.empty,this.heightOracle,[new p9(0,0,0,Z.state.doc.length)]):this.heightMap).updateHeight(Q,0,z,new hz(R.from,I))}if(L6)q|=2}let M=!this.viewportIsAppropriate(this.viewport,W)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);if(M){if(q&2)q|=this.updateScaler();this.viewport=this.getViewport(W,this.scrollTarget),q|=this.updateForViewport()}if(q&2||M)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>4000)this.updateLineGaps(this.ensureLineGaps(z?[]:this.lineGaps,Z));if(q|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc)this.mustEnforceCursorAssoc=!1,Z.docView.enforceCursorAssoc();return q}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(Z,J){let $=0.5-Math.max(-0.5,Math.min(0.5,Z/1000/2)),Q=this.heightMap,X=this.heightOracle,{visibleTop:z,visibleBottom:K}=this,Y=new G5(Q.lineAt(z-$*1000,n0.ByHeight,X,0,0).from,Q.lineAt(K+(1-$)*1000,n0.ByHeight,X,0,0).to);if(J){let{head:q}=J.range;if(q<Y.from||q>Y.to){let W=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),U=Q.lineAt(q,n0.ByPos,X,0,0),H;if(J.y=="center")H=(U.top+U.bottom)/2-W/2;else if(J.y=="start"||J.y=="nearest"&&q<Y.from)H=U.top;else H=U.bottom-W;Y=new G5(Q.lineAt(H-500,n0.ByHeight,X,0,0).from,Q.lineAt(H+W+500,n0.ByHeight,X,0,0).to)}}return Y}mapViewport(Z,J){let $=J.mapPos(Z.from,-1),Q=J.mapPos(Z.to,1);return new G5(this.heightMap.lineAt($,n0.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(Q,n0.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:Z,to:J},$=0){if(!this.inView)return!0;let{top:Q}=this.heightMap.lineAt(Z,n0.ByPos,this.heightOracle,0,0),{bottom:X}=this.heightMap.lineAt(J,n0.ByPos,this.heightOracle,0,0),{visibleTop:z,visibleBottom:K}=this;return(Z==0||Q<=z-Math.max(10,Math.min(-$,250)))&&(J==this.state.doc.length||X>=K+Math.max(10,Math.min($,250)))&&(Q>z-2000&&X<K+2000)}mapLineGaps(Z,J){if(!Z.length||J.empty)return Z;let $=[];for(let Q of Z)if(!J.touchesRange(Q.from,Q.to))$.push(new i4(J.mapPos(Q.from),J.mapPos(Q.to),Q.size,Q.displaySize));return $}ensureLineGaps(Z,J){let $=this.heightOracle.lineWrapping,Q=$?1e4:2000,X=Q>>1,z=Q<<1;if(this.defaultTextDirection!=Q9.LTR&&!$)return[];let K=[],Y=(W,U,H,F)=>{if(U-W<X)return;let O=this.state.selection.main,N=[O.from];if(!O.empty)N.push(O.to);for(let A of N)if(A>W&&A<U){Y(W,A-10,H,F),Y(A+10,U,H,F);return}let _=gN(Z,(A)=>A.from>=H.from&&A.to<=H.to&&Math.abs(A.from-W)<X&&Math.abs(A.to-U)<X&&!N.some((L)=>A.from<L&&A.to>L));if(!_){if(U<H.to&&J&&$&&J.visibleRanges.some((B)=>B.from<=U&&B.to>=U)){let B=J.moveToLineBoundary($0.cursor(U),!1,!0).head;if(B>W)U=B}let A=this.gapSize(H,W,U,F),L=$||A<2000000?A:2000000;_=new i4(W,U,A,L)}K.push(_)},q=(W)=>{if(W.length<z||W.type!=c9.Text)return;let U=fN(W.from,W.to,this.stateDeco);if(U.total<z)return;let H=this.scrollTarget?this.scrollTarget.range.head:null,F,O;if($){let N=Q/this.heightOracle.lineLength*this.heightOracle.lineHeight,_,A;if(H!=null){let L=m4(U,H),B=((this.visibleBottom-this.visibleTop)/2+N)/W.height;_=L-B,A=L+B}else _=(this.visibleTop-W.top-N)/W.height,A=(this.visibleBottom-W.top+N)/W.height;F=g4(U,_),O=g4(U,A)}else{let N=U.total*this.heightOracle.charWidth,_=Q*this.heightOracle.charWidth,A=0;if(N>2000000){for(let R of Z)if(R.from>=W.from&&R.from<W.to&&R.size!=R.displaySize&&R.from*this.heightOracle.charWidth+A<this.pixelViewport.left)A=R.size-R.displaySize}let L=this.pixelViewport.left+A,B=this.pixelViewport.right+A,M,C;if(H!=null){let R=m4(U,H),I=((B-L)/2+_)/N;M=R-I,C=R+I}else M=(L-_)/N,C=(B+_)/N;F=g4(U,M),O=g4(U,C)}if(F>W.from)Y(W.from,F,W,U);if(O<W.to)Y(O,W.to,W,U)};for(let W of this.viewportLines)if(Array.isArray(W.type))W.type.forEach(q);else q(W);return K}gapSize(Z,J,$,Q){let X=m4(Q,$)-m4(Q,J);if(this.heightOracle.lineWrapping)return Z.height*X;else return Q.total*this.heightOracle.charWidth*X}updateLineGaps(Z){if(!i4.same(Z,this.lineGaps))this.lineGaps=Z,this.lineGapDeco=L0.set(Z.map((J)=>J.draw(this,this.heightOracle.lineWrapping)))}computeVisibleRanges(Z){let J=this.stateDeco;if(this.lineGaps.length)J=J.concat(this.lineGapDeco);let $=[];f0.spans(J,this.viewport.from,this.viewport.to,{span(X,z){$.push({from:X,to:z})},point(){}},20);let Q=0;if($.length!=this.visibleRanges.length)Q=12;else for(let X=0;X<$.length&&!(Q&8);X++){let z=this.visibleRanges[X],K=$[X];if(z.from!=K.from||z.to!=K.to){if(Q|=4,!(Z&&Z.mapPos(z.from,-1)==K.from&&Z.mapPos(z.to,1)==K.to))Q|=8}}return this.visibleRanges=$,Q}lineBlockAt(Z){return Z>=this.viewport.from&&Z<=this.viewport.to&&this.viewportLines.find((J)=>J.from<=Z&&J.to>=Z)||q5(this.heightMap.lineAt(Z,n0.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(Z){return Z>=this.viewportLines[0].top&&Z<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find((J)=>J.top<=Z&&J.bottom>=Z)||q5(this.heightMap.lineAt(this.scaler.fromDOM(Z),n0.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(Z){let J=this.lineBlockAtHeight(Z+8);return J.from>=this.viewport.from||this.viewportLines[0].top-Z>200?J:this.viewportLines[0]}elementAtHeight(Z){return q5(this.heightMap.blockAt(this.scaler.fromDOM(Z),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class G5{constructor(Z,J){this.from=Z,this.to=J}}function fN(Z,J,$){let Q=[],X=Z,z=0;if(f0.spans($,Z,J,{span(){},point(K,Y){if(K>X)Q.push({from:X,to:K}),z+=K-X;X=Y}},20),X<J)Q.push({from:X,to:J}),z+=J-X;return{total:z,ranges:Q}}function g4({total:Z,ranges:J},$){if($<=0)return J[0].from;if($>=1)return J[J.length-1].to;let Q=Math.floor(Z*$);for(let X=0;;X++){let{from:z,to:K}=J[X],Y=K-z;if(Q<=Y)return z+Q;Q-=Y}}function m4(Z,J){let $=0;for(let{from:Q,to:X}of Z.ranges){if(J<=X){$+=J-Q;break}$+=X-Q}return $/Z.total}function gN(Z,J){for(let $ of Z)if(J($))return $;return}var jX={toDOM(Z){return Z},fromDOM(Z){return Z},scale:1,eq(Z){return Z==this}};function DX(Z){let J=Z.facet(Q7).filter((Q)=>typeof Q!="function"),$=Z.facet(iJ).filter((Q)=>typeof Q!="function");if($.length)J.push(f0.join($));return J}class oJ{constructor(Z,J,$){let Q=0,X=0,z=0;this.viewports=$.map(({from:K,to:Y})=>{let q=J.lineAt(K,n0.ByPos,Z,0,0).top,W=J.lineAt(Y,n0.ByPos,Z,0,0).bottom;return Q+=W-q,{from:K,to:Y,top:q,bottom:W,domTop:0,domBottom:0}}),this.scale=(7000000-Q)/(J.height-Q);for(let K of this.viewports)K.domTop=z+(K.top-X)*this.scale,z=K.domBottom=K.domTop+(K.bottom-K.top),X=K.bottom}toDOM(Z){for(let J=0,$=0,Q=0;;J++){let X=J<this.viewports.length?this.viewports[J]:null;if(!X||Z<X.top)return Q+(Z-$)*this.scale;if(Z<=X.bottom)return X.domTop+(Z-X.top);$=X.bottom,Q=X.domBottom}}fromDOM(Z){for(let J=0,$=0,Q=0;;J++){let X=J<this.viewports.length?this.viewports[J]:null;if(!X||Z<X.domTop)return $+(Z-Q)/this.scale;if(Z<=X.domBottom)return X.top+(Z-X.domTop);$=X.bottom,Q=X.domBottom}}eq(Z){if(!(Z instanceof oJ))return!1;return this.scale==Z.scale&&this.viewports.length==Z.viewports.length&&this.viewports.every((J,$)=>J.from==Z.viewports[$].from&&J.to==Z.viewports[$].to)}}function q5(Z,J){if(J.scale==1)return Z;let $=J.toDOM(Z.top),Q=J.toDOM(Z.bottom);return new XZ(Z.from,Z.length,$,Q-$,Array.isArray(Z._content)?Z._content.map((X)=>q5(X,J)):Z._content)}var u4=M0.define({combine:(Z)=>Z.join(" ")}),hJ=M0.define({combine:(Z)=>Z.indexOf(!0)>-1}),fJ=$Z.newName(),uz=$Z.newName(),pz=$Z.newName(),cz={"&light":"."+uz,"&dark":"."+pz};function gJ(Z,J,$){return new $Z(J,{finish(Q){return/&/.test(Q)?Q.replace(/&\w*/,(X)=>{if(X=="&")return Z;if(!$||!$[X])throw RangeError(`Unsupported selector: ${X}`);return $[X]}):Z+" "+Q}})}var mN=gJ("."+fJ,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},cz),uN={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},MJ=N0.ie&&N0.ie_version<=11;class dz{constructor(Z){if(this.view=Z,this.active=!1,this.editContext=null,this.selectionRange=new mX,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=Z.contentDOM,this.observer=new MutationObserver((J)=>{for(let $ of J)this.queue.push($);if((N0.ie&&N0.ie_version<=11||N0.ios&&Z.composing)&&J.some(($)=>$.type=="childList"&&$.removedNodes.length||$.type=="characterData"&&$.oldValue.length>$.target.nodeValue.length))this.flushSoon();else this.flush()}),window.EditContext&&N0.android&&Z.constructor.EDIT_CONTEXT!==!1&&!(N0.chrome&&N0.chrome_version<126)){if(this.editContext=new lz(Z),Z.state.facet(EZ))Z.contentDOM.editContext=this.editContext.editContext}if(MJ)this.onCharData=(J)=>{this.queue.push({target:J.target,type:"characterData",oldValue:J.prevValue}),this.flushSoon()};if(this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia)this.printQuery=window.matchMedia("print");if(typeof ResizeObserver=="function")this.resizeScroll=new ResizeObserver(()=>{var J;if(((J=this.view.docView)===null||J===void 0?void 0:J.lastUpdate)<Date.now()-75)this.onResize()}),this.resizeScroll.observe(Z.scrollDOM);if(this.addWindowListeners(this.win=Z.win),this.start(),typeof IntersectionObserver=="function")this.intersection=new IntersectionObserver((J)=>{if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1000);if(J.length>0&&J[J.length-1].intersectionRatio>0!=this.intersecting){if(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent("Event"))}},{threshold:[0,0.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((J)=>{if(J.length>0&&J[J.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent("Event"))},{});this.listenForScroll(),this.readSelectionRange()}onScrollChanged(Z){if(this.view.inputState.runHandlers("scroll",Z),this.intersecting)this.view.measure()}onScroll(Z){if(this.intersecting)this.flush(!1);if(this.editContext)this.view.requestMeasure(this.editContext.measureReq);this.onScrollChanged(Z)}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50)}onPrint(Z){if((Z.type=="change"||!Z.type)&&!Z.matches)return;this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(Z){if(this.gapIntersection&&(Z.length!=this.gaps.length||this.gaps.some((J,$)=>J!=Z[$]))){this.gapIntersection.disconnect();for(let J of Z)this.gapIntersection.observe(J);this.gaps=Z}}onSelectionChange(Z){let J=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:$}=this,Q=this.selectionRange;if($.state.facet(EZ)?$.root.activeElement!=this.dom:!U5(this.dom,Q))return;let X=Q.anchorNode&&$.docView.tile.nearest(Q.anchorNode);if(X&&X.isWidget()&&X.widget.ignoreEvent(Z)){if(!J)this.selectionChanged=!1;return}if((N0.ie&&N0.ie_version<=11||N0.android&&N0.chrome)&&!$.state.selection.main.empty&&Q.focusNode&&H5(Q.focusNode,Q.focusOffset,Q.anchorNode,Q.anchorOffset))this.flushSoon();else this.flush(!1)}readSelectionRange(){let{view:Z}=this,J=N5(Z.root);if(!J)return!1;let $=N0.safari&&Z.root.nodeType==11&&Z.root.activeElement==this.dom&&pN(this.view,J)||J;if(!$||this.selectionRange.eq($))return!1;let Q=U5(this.dom,$);if(Q&&!this.selectionChanged&&Z.inputState.lastFocusTime>Date.now()-200&&Z.inputState.lastTouchTime<Date.now()-300&&wO(this.dom,$))return this.view.inputState.lastFocusTime=0,Z.docView.updateSelection(),!1;if(this.selectionRange.setRange($),Q)this.selectionChanged=!0;return!0}setSelectionRange(Z,J){this.selectionRange.set(Z.node,Z.offset,J.node,J.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let Z=0,J=null;for(let $=this.dom;$;)if($.nodeType==1){if(!J&&Z<this.scrollTargets.length&&this.scrollTargets[Z]==$)Z++;else if(!J)J=this.scrollTargets.slice(0,Z);if(J)J.push($);$=$.assignedSlot||$.parentNode}else if($.nodeType==11)$=$.host;else break;if(Z<this.scrollTargets.length&&!J)J=this.scrollTargets.slice(0,Z);if(J){for(let $ of this.scrollTargets)$.removeEventListener("scroll",this.onScroll);for(let $ of this.scrollTargets=J)$.addEventListener("scroll",this.onScroll)}}ignore(Z){if(!this.active)return Z();try{return this.stop(),Z()}finally{this.start(),this.clear()}}start(){if(this.active)return;if(this.observer.observe(this.dom,uN),MJ)this.dom.addEventListener("DOMCharacterDataModified",this.onCharData);this.active=!0}stop(){if(!this.active)return;if(this.active=!1,this.observer.disconnect(),MJ)this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData)}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(Z,J){var $;if(!this.delayedAndroidKey){let Q=()=>{let X=this.delayedAndroidKey;if(X){if(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=X.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&X.force)B6(this.dom,X.key,X.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(Q)}if(!this.delayedAndroidKey||Z=="Enter")this.delayedAndroidKey={key:Z,keyCode:J,force:this.lastChange<Date.now()-50||!!(($=this.delayedAndroidKey)===null||$===void 0?void 0:$.force)}}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){if(this.delayedFlush<0)this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()})}forceFlush(){if(this.delayedFlush>=0)this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1;this.flush()}pendingRecords(){for(let Z of this.observer.takeRecords())this.queue.push(Z);return this.queue}processRecords(){let Z=this.pendingRecords();if(Z.length)this.queue=[];let J=-1,$=-1,Q=!1;for(let X of Z){let z=this.readMutation(X);if(!z)continue;if(z.typeOver)Q=!0;if(J==-1)({from:J,to:$}=z);else J=Math.min(z.from,J),$=Math.max(z.to,$)}return{from:J,to:$,typeOver:Q}}readChange(){let{from:Z,to:J,typeOver:$}=this.processRecords(),Q=this.selectionChanged&&U5(this.dom,this.selectionRange);if(Z<0&&!Q)return null;if(Z>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let X=new Iz(this.view,Z,J,$);return this.view.docView.domChanged={newSel:X.newSel?X.newSel.main:null},X}flush(Z=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;if(Z)this.readSelectionRange();let J=this.readChange();if(!J)return this.view.requestMeasure(),!1;let $=this.view.state,Q=Cz(this.view,J);if(this.view.state==$&&(J.domChanged||J.newSel&&!e4(this.view.state.selection,J.newSel.main)))this.view.update([]);return Q}readMutation(Z){let J=this.view.docView.tile.nearest(Z.target);if(!J||J.isWidget())return null;if(J.markDirty(Z.type=="attributes"),Z.type=="childList"){let $=SX(J,Z.previousSibling||Z.target.previousSibling,-1),Q=SX(J,Z.nextSibling||Z.target.nextSibling,1);return{from:$?J.posAfter($):J.posAtStart,to:Q?J.posBefore(Q):J.posAtEnd,typeOver:!1}}else if(Z.type=="characterData")return{from:J.posAtStart,to:J.posAtEnd,typeOver:Z.target.nodeValue==Z.oldValue};else return null}setWindow(Z){if(Z!=this.win)this.removeWindowListeners(this.win),this.win=Z,this.addWindowListeners(this.win)}addWindowListeners(Z){if(Z.addEventListener("resize",this.onResize),this.printQuery)if(this.printQuery.addEventListener)this.printQuery.addEventListener("change",this.onPrint);else this.printQuery.addListener(this.onPrint);else Z.addEventListener("beforeprint",this.onPrint);Z.addEventListener("scroll",this.onScroll),Z.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(Z){if(Z.removeEventListener("scroll",this.onScroll),Z.removeEventListener("resize",this.onResize),this.printQuery)if(this.printQuery.removeEventListener)this.printQuery.removeEventListener("change",this.onPrint);else this.printQuery.removeListener(this.onPrint);else Z.removeEventListener("beforeprint",this.onPrint);Z.document.removeEventListener("selectionchange",this.onSelectionChange)}update(Z){if(this.editContext){if(this.editContext.update(Z),Z.startState.facet(EZ)!=Z.state.facet(EZ))Z.view.contentDOM.editContext=Z.state.facet(EZ)?this.editContext.editContext:null}}destroy(){var Z,J,$;this.stop(),(Z=this.intersection)===null||Z===void 0||Z.disconnect(),(J=this.gapIntersection)===null||J===void 0||J.disconnect(),($=this.resizeScroll)===null||$===void 0||$.disconnect();for(let Q of this.scrollTargets)Q.removeEventListener("scroll",this.onScroll);if(this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext)this.view.contentDOM.editContext=null,this.editContext.destroy()}}function SX(Z,J,$){while(J){let Q=J9.get(J);if(Q&&Q.parent==Z)return Q;let X=J.parentNode;J=X!=Z.dom?X:$>0?J.nextSibling:J.previousSibling}return null}function bX(Z,J){let{startContainer:$,startOffset:Q,endContainer:X,endOffset:z}=J,K=Z.docView.domAtPos(Z.state.selection.main.anchor,1);if(H5(K.node,K.offset,X,z))[$,Q,X,z]=[X,z,$,Q];return{anchorNode:$,anchorOffset:Q,focusNode:X,focusOffset:z}}function pN(Z,J){if(J.getComposedRanges){let X=J.getComposedRanges(Z.root)[0];if(X)return bX(Z,X)}let $=null;function Q(X){X.preventDefault(),X.stopImmediatePropagation(),$=X.getTargetRanges()[0]}return Z.contentDOM.addEventListener("beforeinput",Q,!0),Z.dom.ownerDocument.execCommand("indent"),Z.contentDOM.removeEventListener("beforeinput",Q,!0),$?bX(Z,$):null}class lz{constructor(Z){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(Z.state);let J=this.editContext=new window.EditContext({text:Z.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,Z.state.selection.main.anchor))),selectionEnd:this.toContextPos(Z.state.selection.main.head)});this.handlers.textupdate=($)=>{let Q=Z.state.selection.main,{anchor:X,head:z}=Q,K=this.toEditorPos($.updateRangeStart),Y=this.toEditorPos($.updateRangeEnd);if(Z.inputState.composing>=0&&!this.composing)this.composing={contextBase:$.updateRangeStart,editorBase:K,drifted:!1};let q=Y-K>$.text.length;if(K==this.from&&X<this.from)K=X;else if(Y==this.to&&X>this.to)Y=X;let W=Vz(Z.state.sliceDoc(K,Y),$.text,(q?Q.from:Q.to)-K,q?"end":null);if(!W){let H=$0.single(this.toEditorPos($.selectionStart),this.toEditorPos($.selectionEnd));if(!e4(H,Q))Z.dispatch({selection:H,userEvent:"select"});return}let U={from:W.from+K,to:W.toA+K,insert:v0.of($.text.slice(W.from,W.toB).split(`
|
|
47
|
+
`))};if((N0.mac||N0.android)&&U.from==z-1&&/^\. ?$/.test($.text)&&Z.contentDOM.getAttribute("autocorrect")=="off")U={from:K,to:Y,insert:v0.of([$.text.replace("."," ")])};if(this.pendingContextChange=U,!Z.state.readOnly){let H=this.to-this.from+(U.to-U.from+U.insert.length);nJ(Z,U,$0.single(this.toEditorPos($.selectionStart,H),this.toEditorPos($.selectionEnd,H)))}if(this.pendingContextChange)this.revertPending(Z.state),this.setSelection(Z.state);if(U.from<U.to&&!U.insert.length&&Z.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(J.text.slice(Math.max(0,$.updateRangeStart-1),Math.min(J.text.length,$.updateRangeStart+1))))this.handlers.compositionend($)},this.handlers.characterboundsupdate=($)=>{let Q=[],X=null;for(let z=this.toEditorPos($.rangeStart),K=this.toEditorPos($.rangeEnd);z<K;z++){let Y=Z.coordsForChar(z);X=Y&&new DOMRect(Y.left,Y.top,Y.right-Y.left,Y.bottom-Y.top)||X||new DOMRect,Q.push(X)}J.updateCharacterBounds($.rangeStart,Q)},this.handlers.textformatupdate=($)=>{let Q=[];for(let X of $.getTextFormats()){let{underlineStyle:z,underlineThickness:K}=X;if(!/none/i.test(z)&&!/none/i.test(K)){let Y=this.toEditorPos(X.rangeStart),q=this.toEditorPos(X.rangeEnd);if(Y<q){let W=`text-decoration: underline ${/^[a-z]/.test(z)?z+" ":z=="Dashed"?"dashed ":z=="Squiggle"?"wavy ":""}${/thin/i.test(K)?1:2}px`;Q.push(L0.mark({attributes:{style:W}}).range(Y,q))}}}Z.dispatch({effects:Xz.of(L0.set(Q))})},this.handlers.compositionstart=()=>{if(Z.inputState.composing<0)Z.inputState.composing=0,Z.inputState.compositionFirstChange=!0},this.handlers.compositionend=()=>{if(Z.inputState.composing=-1,Z.inputState.compositionFirstChange=null,this.composing){let{drifted:$}=this.composing;if(this.composing=null,$)this.reset(Z.state)}};for(let $ in this.handlers)J.addEventListener($,this.handlers[$]);this.measureReq={read:($)=>{let Q=N5($.root);if(Q&&Q.rangeCount)this.editContext.updateSelectionBounds(Q.getRangeAt(0).getBoundingClientRect())}}}applyEdits(Z){let J=0,$=!1,Q=this.pendingContextChange;if(Z.changes.iterChanges((X,z,K,Y,q)=>{if($)return;let W=q.length-(z-X);if(Q&&z>=Q.to)if(Q.from==X&&Q.to==z&&Q.insert.eq(q)){Q=this.pendingContextChange=null,J+=W,this.to+=W;return}else Q=null,this.revertPending(Z.state);if(X+=J,z+=J,z<=this.from)this.from+=W,this.to+=W;else if(X<this.to){if(X<this.from||z>this.to||this.to-this.from+q.length>30000){$=!0;return}this.editContext.updateText(this.toContextPos(X),this.toContextPos(z),q.toString()),this.to+=W}J+=W}),Q&&!$)this.revertPending(Z.state);return!$}update(Z){let J=this.pendingContextChange,$=Z.startState.selection.main;if(this.composing&&(this.composing.drifted||!Z.changes.touchesRange($.from,$.to)&&Z.transactions.some((Q)=>!Q.isUserEvent("input.type")&&Q.changes.touchesRange(this.from,this.to))))this.composing.drifted=!0,this.composing.editorBase=Z.changes.mapPos(this.composing.editorBase);else if(!this.applyEdits(Z)||!this.rangeIsValid(Z.state))this.pendingContextChange=null,this.reset(Z.state);else if(Z.docChanged||Z.selectionSet||J)this.setSelection(Z.state);if(Z.geometryChanged||Z.docChanged||Z.selectionSet)Z.view.requestMeasure(this.measureReq)}resetRange(Z){let{head:J}=Z.selection.main;this.from=Math.max(0,J-1e4),this.to=Math.min(Z.doc.length,J+1e4)}reset(Z){this.resetRange(Z),this.editContext.updateText(0,this.editContext.text.length,Z.doc.sliceString(this.from,this.to)),this.setSelection(Z)}revertPending(Z){let J=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(J.from),this.toContextPos(J.from+J.insert.length),Z.doc.sliceString(J.from,J.to))}setSelection(Z){let{main:J}=Z.selection,$=this.toContextPos(Math.max(this.from,Math.min(this.to,J.anchor))),Q=this.toContextPos(J.head);if(this.editContext.selectionStart!=$||this.editContext.selectionEnd!=Q)this.editContext.updateSelection($,Q)}rangeIsValid(Z){let{head:J}=Z.selection.main;return!(this.from>0&&J-this.from<500||this.to<Z.doc.length&&this.to-J<500||this.to-this.from>30000)}toEditorPos(Z,J=this.to-this.from){Z=Math.min(Z,J);let $=this.composing;return $&&$.drifted?$.editorBase+(Z-$.contextBase):Z+this.from}toContextPos(Z){let J=this.composing;return J&&J.drifted?J.contextBase+(Z-J.editorBase):Z-this.from}destroy(){for(let Z in this.handlers)this.editContext.removeEventListener(Z,this.handlers[Z])}}class O0{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(Z={}){var J;if(this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),Z.parent)Z.parent.appendChild(this.dom);let{dispatch:$}=Z;if(this.dispatchTransactions=Z.dispatchTransactions||$&&((Q)=>Q.forEach((X)=>$(X,this)))||((Q)=>this.update(Q)),this.dispatch=this.dispatch.bind(this),this._root=Z.root||EO(Z.parent)||document,this.viewState=new vJ(this,Z.state||x0.create(Z)),Z.scrollTo&&Z.scrollTo.is(v4))this.viewState.scrollTarget=Z.scrollTo.value.clip(this.viewState.state);this.plugins=this.state.facet(O6).map((Q)=>new d4(Q));for(let Q of this.plugins)Q.update(this);if(this.observer=new dz(this),this.inputState=new yz(this),this.inputState.ensureHandlers(this.plugins),this.docView=new SJ(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),(J=document.fonts)===null||J===void 0?void 0:J.ready)document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...Z){let J=Z.length==1&&Z[0]instanceof G9?Z:Z.length==1&&Array.isArray(Z[0])?Z[0]:[this.state.update(...Z)];this.dispatchTransactions(J,this)}update(Z){if(this.updateState!=0)throw Error("Calls to EditorView.update are not allowed while an update is in progress");let J=!1,$=!1,Q,X=this.state;for(let H of Z){if(H.startState!=X)throw RangeError("Trying to update state with a transaction that doesn't start from the previous state.");X=H.state}if(this.destroyed){this.viewState.state=X;return}let z=this.hasFocus,K=0,Y=null;if(Z.some((H)=>H.annotation(Ez)))this.inputState.notifiedFocused=z,K=1;else if(z!=this.inputState.notifiedFocused){if(this.inputState.notifiedFocused=z,Y=wz(X,z),!Y)K=1}let q=this.observer.delayedAndroidKey,W=null;if(q){if(this.observer.clearDelayedAndroidKey(),W=this.observer.readChange(),W&&!this.state.doc.eq(X.doc)||!this.state.selection.eq(X.selection))W=null}else this.observer.clear();if(X.facet(x0.phrases)!=this.state.facet(x0.phrases))return this.setState(X);Q=o4.create(this,X,Z),Q.flags|=K;let U=this.viewState.scrollTarget;try{this.updateState=2;for(let H of Z){if(U)U=U.map(H.changes);if(H.scrollIntoView){let{main:F}=H.state.selection,{x:O,y:N}=this.state.facet(O0.cursorScrollMargin);U=new _6(F.empty?F:$0.cursor(F.head,F.head>F.anchor?-1:1),"nearest","nearest",N,O)}for(let F of H.effects)if(F.is(v4))U=F.value.clip(this.state)}if(this.viewState.update(Q,U),this.bidiCache=J7.update(this.bidiCache,Q.changes),!Q.empty)this.updatePlugins(Q),this.inputState.update(Q);if(J=this.docView.update(Q),this.state.facet(Y5)!=this.styleModules)this.mountStyles();$=this.updateAttrs(),this.showAnnouncements(Z),this.docView.updateSelection(J,Z.some((H)=>H.isUserEvent("select.pointer")))}finally{this.updateState=0}if(Q.startState.facet(u4)!=Q.state.facet(u4))this.viewState.mustMeasureContent=!0;if(J||$||U||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(J)this.docViewUpdate();if(!Q.empty)for(let H of this.state.facet(DJ))try{H(Q)}catch(F){YZ(this.state,F,"update listener")}if(Y||W)Promise.resolve().then(()=>{if(Y&&this.state==Y.startState)this.dispatch(Y);if(W){if(!Cz(this,W)&&q.force)B6(this.contentDOM,q.key,q.keyCode)}})}setState(Z){if(this.updateState!=0)throw Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=Z;return}this.updateState=2;let J=this.hasFocus;try{for(let $ of this.plugins)$.destroy(this);this.viewState=new vJ(this,Z),this.plugins=Z.facet(O6).map(($)=>new d4($)),this.pluginMap.clear();for(let $ of this.plugins)$.update(this);this.docView.destroy(),this.docView=new SJ(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}if(J)this.focus();this.requestMeasure()}updatePlugins(Z){let J=Z.startState.facet(O6),$=Z.state.facet(O6);if(J!=$){let Q=[];for(let X of $){let z=J.indexOf(X);if(z<0)Q.push(new d4(X));else{let K=this.plugins[z];K.mustUpdate=Z,Q.push(K)}}for(let X of this.plugins)if(X.mustUpdate!=Z)X.destroy(this);this.plugins=Q,this.pluginMap.clear()}else for(let Q of this.plugins)Q.mustUpdate=Z;for(let Q=0;Q<this.plugins.length;Q++)this.plugins[Q].update(this);if(J!=$)this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let Z of this.plugins){let J=Z.value;if(J&&J.docViewUpdate)try{J.docViewUpdate(this)}catch($){YZ(this.state,$,"doc view update listener")}}}measure(Z=!0){if(this.destroyed)return;if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);if(this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}if(this.measureScheduled=0,Z)this.observer.forceFlush();let J=null,$=this.viewState.scrollParent,Q=this.viewState.getScrollOffset(),{scrollAnchorPos:X,scrollAnchorHeight:z}=this.viewState;if(Math.abs(Q-this.viewState.scrollOffset)>1)z=-1;this.viewState.scrollAnchorHeight=-1;try{for(let K=0;;K++){if(z<0)if(pX($||this.win))X=-1,z=this.viewState.heightMap.height;else{let F=this.viewState.scrollAnchorAt(Q);X=F.from,z=F.top}this.updateState=1;let Y=this.viewState.measure();if(!Y&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(K>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let q=[];if(!(Y&4))[this.measureRequests,q]=[q,this.measureRequests];let W=q.map((F)=>{try{return F.read(this)}catch(O){return YZ(this.state,O),EX}}),U=o4.create(this,this.state,[]),H=!1;if(U.flags|=Y,!J)J=U;else J.flags|=Y;if(this.updateState=2,!U.empty){if(this.updatePlugins(U),this.inputState.update(U),this.updateAttrs(),H=this.docView.update(U),H)this.docViewUpdate()}for(let F=0;F<q.length;F++)if(W[F]!=EX)try{let O=q[F];if(O.write)O.write(W[F],this)}catch(O){YZ(this.state,O)}if(H)this.docView.updateSelection(!0);if(!U.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,z=-1;continue}else{let O=((X<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(X).top)-z)/this.scaleY;if((O>1||O<-1)&&($==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){if(Q=Q+O,$)$.scrollTop+=O;else this.win.scrollBy(0,O);z=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(J&&!J.empty)for(let K of this.state.facet(DJ))K(J)}get themeClasses(){return fJ+" "+(this.state.facet(hJ)?pz:uz)+" "+this.state.facet(u4)}updateAttrs(){let Z=wX(this,zz,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),J={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:!this.state.facet(EZ)?"false":"true",class:"cm-content",style:`${N0.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};if(this.state.readOnly)J["aria-readonly"]="true";wX(this,aJ,J);let $=this.observer.ignore(()=>{let Q=HX(this.contentDOM,this.contentAttrs,J),X=HX(this.dom,this.editorAttrs,Z);return Q||X});return this.editorAttrs=Z,this.contentAttrs=J,$}showAnnouncements(Z){let J=!0;for(let $ of Z)for(let Q of $.effects)if(Q.is(O0.announce)){if(J)this.announceDOM.textContent="";J=!1;let X=this.announceDOM.appendChild(document.createElement("div"));X.textContent=Q.value}}mountStyles(){this.styleModules=this.state.facet(Y5);let Z=this.state.facet(O0.cspNonce);$Z.mount(this.root,this.styleModules.concat(mN).reverse(),Z?{nonce:Z}:void 0)}readMeasured(){if(this.updateState==2)throw Error("Reading the editor layout isn't allowed during an update");if(this.updateState==0&&this.measureScheduled>-1)this.measure(!1)}requestMeasure(Z){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure());if(Z){if(this.measureRequests.indexOf(Z)>-1)return;if(Z.key!=null){for(let J=0;J<this.measureRequests.length;J++)if(this.measureRequests[J].key===Z.key){this.measureRequests[J]=Z;return}}this.measureRequests.push(Z)}}plugin(Z){let J=this.pluginMap.get(Z);if(J===void 0||J&&J.plugin!=Z)this.pluginMap.set(Z,J=this.plugins.find(($)=>$.plugin==Z)||null);return J&&J.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(Z){return this.readMeasured(),this.viewState.elementAtHeight(Z)}lineBlockAtHeight(Z){return this.readMeasured(),this.viewState.lineBlockAtHeight(Z)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(Z){return this.viewState.lineBlockAt(Z)}get contentHeight(){return this.viewState.contentHeight}moveByChar(Z,J,$){return PJ(this,Z,AX(this,Z,J,$))}moveByGroup(Z,J){return PJ(this,Z,AX(this,Z,J,($)=>WN(this,Z.head,$)))}visualLineSide(Z,J){let $=this.bidiSpans(Z),Q=this.textDirectionAt(Z.from),X=$[J?$.length-1:0];return $0.cursor(X.side(J,Q)+Z.from,X.forward(!J,Q)?1:-1)}moveToLineBoundary(Z,J,$=!0){return qN(this,Z,J,$)}moveVertically(Z,J,$){return PJ(this,Z,UN(this,Z,J,$))}domAtPos(Z,J=1){return this.docView.domAtPos(Z,J)}posAtDOM(Z,J=0){return this.docView.posFromDOM(Z,J)}posAtCoords(Z,J=!0){this.readMeasured();let $=EJ(this,Z,J);return $&&$.pos}posAndSideAtCoords(Z,J=!0){return this.readMeasured(),EJ(this,Z,J)}coordsAtPos(Z,J=1){this.readMeasured();let $=this.docView.coordsAt(Z,J);if(!$||$.left==$.right)return $;let Q=this.state.doc.lineAt(Z),X=this.bidiSpans(Q),z=X[KZ.find(X,Z-Q.from,-1,J)];return r4($,z.dir==Q9.LTR==J>0)}coordsForChar(Z){return this.readMeasured(),this.docView.coordsForChar(Z)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(Z){if(!this.state.facet($z)||Z<this.viewport.from||Z>this.viewport.to)return this.textDirection;return this.readMeasured(),this.docView.textDirectionAt(Z)}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(Z){if(Z.length>cN)return nX(Z.length);let J=this.textDirectionAt(Z.from),$;for(let X of this.bidiCache)if(X.from==Z.from&&X.dir==J&&(X.fresh||iX(X.isolates,$=NX(this,Z))))return X.order;if(!$)$=NX(this,Z);let Q=uO(Z.text,J,$);return this.bidiCache.push(new J7(Z.from,Z.to,J,$,!0,Q)),Q}get hasFocus(){var Z;return(this.dom.ownerDocument.hasFocus()||N0.safari&&((Z=this.inputState)===null||Z===void 0?void 0:Z.lastContextMenu)>Date.now()-30000)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{uX(this.contentDOM),this.docView.updateSelection()})}setRoot(Z){if(this._root!=Z)this._root=Z,this.observer.setWindow((Z.nodeType==9?Z:Z.ownerDocument).defaultView||window),this.mountStyles()}destroy(){if(this.root.activeElement==this.contentDOM)this.contentDOM.blur();for(let Z of this.plugins)Z.destroy(this);if(this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=!0}static scrollIntoView(Z,J={}){var $,Q,X,z;return v4.of(new _6(typeof Z=="number"?$0.cursor(Z):Z,($=J.y)!==null&&$!==void 0?$:"nearest",(Q=J.x)!==null&&Q!==void 0?Q:"nearest",(X=J.yMargin)!==null&&X!==void 0?X:5,(z=J.xMargin)!==null&&z!==void 0?z:5))}scrollSnapshot(){let{scrollTop:Z,scrollLeft:J}=this.scrollDOM,$=this.viewState.scrollAnchorAt(Z);return v4.of(new _6($0.cursor($.from),"start","start",$.top-Z,J,!0))}setTabFocusMode(Z){if(Z==null)this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1;else if(typeof Z=="boolean")this.inputState.tabFocusMode=Z?0:-1;else if(this.inputState.tabFocusMode!=0)this.inputState.tabFocusMode=Date.now()+Z}static domEventHandlers(Z){return e0.define(()=>({}),{eventHandlers:Z})}static domEventObservers(Z){return e0.define(()=>({}),{eventObservers:Z})}static theme(Z,J){let $=$Z.newName(),Q=[u4.of($),Y5.of(gJ(`.${$}`,Z))];if(J&&J.dark)Q.push(hJ.of(!0));return Q}static baseTheme(Z){return W6.lowest(Y5.of(gJ("."+fJ,Z,cz)))}static findFromDOM(Z){var J;let $=Z.querySelector(".cm-content"),Q=$&&J9.get($)||J9.get(Z);return((J=Q===null||Q===void 0?void 0:Q.root)===null||J===void 0?void 0:J.view)||null}}O0.styleModule=Y5;O0.inputHandler=Zz;O0.clipboardInputFilter=dJ;O0.clipboardOutputFilter=lJ;O0.scrollHandler=Qz;O0.focusChangeEffect=Jz;O0.perLineTextDirection=$z;O0.exceptionSink=eX;O0.updateListener=DJ;O0.editable=EZ;O0.mouseSelectionStyle=tX;O0.dragMovesSelection=oX;O0.clickAddsSelectionRange=rX;O0.decorations=Q7;O0.blockWrappers=Kz;O0.outerDecorations=iJ;O0.atomicRanges=P5;O0.bidiIsolatedRanges=Yz;O0.cursorScrollMargin=M0.define({combine:(Z)=>{let J=5,$=5;for(let Q of Z)if(typeof Q=="number")J=$=Q;else({x:J,y:$}=Q);return{x:J,y:$}}});O0.scrollMargins=Gz;O0.darkTheme=hJ;O0.cspNonce=M0.define({combine:(Z)=>Z.length?Z[0]:""});O0.contentAttributes=aJ;O0.editorAttributes=zz;O0.lineWrapping=O0.contentAttributes.of({class:"cm-lineWrapping"});O0.announce=h0.define();var cN=4096,EX={};class J7{constructor(Z,J,$,Q,X,z){this.from=Z,this.to=J,this.dir=$,this.isolates=Q,this.fresh=X,this.order=z}static update(Z,J){if(J.empty&&!Z.some((X)=>X.fresh))return Z;let $=[],Q=Z.length?Z[Z.length-1].dir:Q9.LTR;for(let X=Math.max(0,Z.length-10);X<Z.length;X++){let z=Z[X];if(z.dir==Q&&!J.touchesRange(z.from,z.to))$.push(new J7(J.mapPos(z.from,1),J.mapPos(z.to,-1),z.dir,z.isolates,!1,z.order))}return $}}function wX(Z,J,$){for(let Q=Z.state.facet(J),X=Q.length-1;X>=0;X--){let z=Q[X],K=typeof z=="function"?z(Z):z;if(K)uJ(K,$)}return $}var dN=N0.mac?"mac":N0.windows?"win":N0.linux?"linux":"key";function lN(Z,J){let $=Z.split(/-(?!$)/),Q=$[$.length-1];if(Q=="Space")Q=" ";let X,z,K,Y;for(let q=0;q<$.length-1;++q){let W=$[q];if(/^(cmd|meta|m)$/i.test(W))Y=!0;else if(/^a(lt)?$/i.test(W))X=!0;else if(/^(c|ctrl|control)$/i.test(W))z=!0;else if(/^s(hift)?$/i.test(W))K=!0;else if(/^mod$/i.test(W))if(J=="mac")Y=!0;else z=!0;else throw Error("Unrecognized modifier name: "+W)}if(X)Q="Alt-"+Q;if(z)Q="Ctrl-"+Q;if(Y)Q="Meta-"+Q;if(K)Q="Shift-"+Q;return Q}function p4(Z,J,$){if(J.altKey)Z="Alt-"+Z;if(J.ctrlKey)Z="Ctrl-"+Z;if(J.metaKey)Z="Meta-"+Z;if($!==!1&&J.shiftKey)Z="Shift-"+Z;return Z}var aN=W6.default(O0.domEventHandlers({keydown(Z,J){return rN(iN(J.state),Z,J,"editor")}})),$8=M0.define({enables:aN}),xX=new WeakMap;function iN(Z){let J=Z.facet($8),$=xX.get(J);if(!$)xX.set(J,$=sN(J.reduce((Q,X)=>Q.concat(X),[])));return $}var eZ=null,nN=4000;function sN(Z,J=dN){let $=Object.create(null),Q=Object.create(null),X=(K,Y)=>{let q=Q[K];if(q==null)Q[K]=Y;else if(q!=Y)throw Error("Key binding "+K+" is used both as a regular binding and as a multi-stroke prefix")},z=(K,Y,q,W,U)=>{var H,F;let O=$[K]||($[K]=Object.create(null)),N=Y.split(/ (?!$)/).map((L)=>lN(L,J));for(let L=1;L<N.length;L++){let B=N.slice(0,L).join(" ");if(X(B,!0),!O[B])O[B]={preventDefault:!0,stopPropagation:!1,run:[(M)=>{let C=eZ={view:M,prefix:B,scope:K};return setTimeout(()=>{if(eZ==C)eZ=null},nN),!0}]}}let _=N.join(" ");X(_,!1);let A=O[_]||(O[_]={preventDefault:!1,stopPropagation:!1,run:((F=(H=O._any)===null||H===void 0?void 0:H.run)===null||F===void 0?void 0:F.slice())||[]});if(q)A.run.push(q);if(W)A.preventDefault=!0;if(U)A.stopPropagation=!0};for(let K of Z){let Y=K.scope?K.scope.split(" "):["editor"];if(K.any)for(let W of Y){let U=$[W]||($[W]=Object.create(null));if(!U._any)U._any={preventDefault:!1,stopPropagation:!1,run:[]};let{any:H}=K;for(let F in U)U[F].run.push((O)=>H(O,mJ))}let q=K[J]||K.key;if(!q)continue;for(let W of Y)if(z(W,q,K.run,K.preventDefault,K.stopPropagation),K.shift)z(W,"Shift-"+q,K.shift,K.preventDefault,K.stopPropagation)}return $}var mJ=null;function rN(Z,J,$,Q){mJ=J;let X=GX(J),z=cQ(X,0),K=dQ(z)==X.length&&X!=" ",Y="",q=!1,W=!1,U=!1;if(eZ&&eZ.view==$&&eZ.scope==Q){if(Y=eZ.prefix+" ",Tz.indexOf(J.keyCode)<0)W=!0,eZ=null}let H=new Set,F=(A)=>{if(A){for(let L of A.run)if(!H.has(L)){if(H.add(L),L($)){if(A.stopPropagation)U=!0;return!0}}if(A.preventDefault){if(A.stopPropagation)U=!0;W=!0}}return!1},O=Z[Q],N,_;if(O){if(F(O[Y+p4(X,J,!K)]))q=!0;else if(K&&(J.altKey||J.metaKey||J.ctrlKey)&&!(N0.windows&&J.ctrlKey&&J.altKey)&&!(N0.mac&&J.altKey&&!(J.ctrlKey||J.metaKey))&&(N=bZ[J.keyCode])&&N!=X){if(F(O[Y+p4(N,J,!0)]))q=!0;else if(J.shiftKey&&(_=H6[J.keyCode])!=X&&_!=N&&F(O[Y+p4(_,J,!1)]))q=!0}else if(K&&J.shiftKey&&F(O[Y+p4(X,J,!0)]))q=!0;if(!q&&F(O._any))q=!0}if(W)q=!0;if(q&&U)J.stopPropagation();return mJ=null,q}var az=h0.define({map(Z,J){return Z==null?null:J.mapPos(Z)}}),W5=t0.define({create(){return null},update(Z,J){if(Z!=null)Z=J.changes.mapPos(Z);return J.effects.reduce(($,Q)=>Q.is(az)?Q.value:$,Z)}}),oN=e0.fromClass(class{constructor(Z){this.view=Z,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(Z){var J;let $=Z.state.field(W5);if($==null){if(this.cursor!=null)(J=this.cursor)===null||J===void 0||J.remove(),this.cursor=null}else{if(!this.cursor)this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor";if(Z.startState.field(W5)!=$||Z.docChanged||Z.geometryChanged)this.view.requestMeasure(this.measureReq)}}readPos(){let{view:Z}=this,J=Z.state.field(W5),$=J!=null&&Z.coordsAtPos(J);if(!$)return null;let Q=Z.scrollDOM.getBoundingClientRect();return{left:$.left-Q.left+Z.scrollDOM.scrollLeft*Z.scaleX,top:$.top-Q.top+Z.scrollDOM.scrollTop*Z.scaleY,height:$.bottom-$.top}}drawCursor(Z){if(this.cursor){let{scaleX:J,scaleY:$}=this.view;if(Z)this.cursor.style.left=Z.left/J+"px",this.cursor.style.top=Z.top/$+"px",this.cursor.style.height=Z.height/$+"px";else this.cursor.style.left="-100000px"}}destroy(){if(this.cursor)this.cursor.remove()}setDropPos(Z){if(this.view.state.field(W5)!=Z)this.view.dispatch({effects:az.of(Z)})}},{eventObservers:{dragover(Z){this.setDropPos(this.view.posAtCoords({x:Z.clientX,y:Z.clientY}))},dragleave(Z){if(Z.target==this.view.contentDOM||!this.view.contentDOM.contains(Z.relatedTarget))this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function iz(){return[W5,oN]}var fV=/x/.unicode!=null?"gu":"g";class J8 extends e9{compare(Z){return this==Z||this.constructor==Z.constructor&&this.eq(Z)}eq(Z){return!1}destroy(Z){}}J8.prototype.elementClass="";J8.prototype.toDOM=void 0;J8.prototype.mapMode=D9.TrackBefore;J8.prototype.startSide=J8.prototype.endSide=-1;J8.prototype.point=!0;var tN=0;class K7{constructor(Z,J){this.from=Z,this.to=J}}class E0{constructor(Z={}){this.id=tN++,this.perNode=!!Z.perNode,this.deserialize=Z.deserialize||(()=>{throw Error("This node type doesn't define a deserialize function")}),this.combine=Z.combine||null}add(Z){if(this.perNode)throw RangeError("Can't add per-node props to node types");if(typeof Z!="function")Z=f9.match(Z);return(J)=>{let $=Z(J);return $===void 0?null:[this,$]}}}E0.closedBy=new E0({deserialize:(Z)=>Z.split(" ")});E0.openedBy=new E0({deserialize:(Z)=>Z.split(" ")});E0.group=new E0({deserialize:(Z)=>Z.split(" ")});E0.isolate=new E0({deserialize:(Z)=>{if(Z&&Z!="rtl"&&Z!="ltr"&&Z!="auto")throw RangeError("Invalid value for isolate: "+Z);return Z||"auto"}});E0.contextHash=new E0({perNode:!0});E0.lookAhead=new E0({perNode:!0});E0.mounted=new E0({perNode:!0});class P6{constructor(Z,J,$,Q=!1){this.tree=Z,this.overlay=J,this.parser=$,this.bracketed=Q}static get(Z){return Z&&Z.props&&Z.props[E0.mounted.id]}}var eN=Object.create(null);class f9{constructor(Z,J,$,Q=0){this.name=Z,this.props=J,this.id=$,this.flags=Q}static define(Z){let J=Z.props&&Z.props.length?Object.create(null):eN,$=(Z.top?1:0)|(Z.skipped?2:0)|(Z.error?4:0)|(Z.name==null?8:0),Q=new f9(Z.name||"",J,Z.id,$);if(Z.props)for(let X of Z.props){if(!Array.isArray(X))X=X(Q);if(X){if(X[0].perNode)throw RangeError("Can't store a per-node prop on a node type");J[X[0].id]=X[1]}}return Q}prop(Z){return this.props[Z.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(Z){if(typeof Z=="string"){if(this.name==Z)return!0;let J=this.prop(E0.group);return J?J.indexOf(Z)>-1:!1}return this.id==Z}static match(Z){let J=Object.create(null);for(let $ in Z)for(let Q of $.split(" "))J[Q]=Z[$];return($)=>{for(let Q=$.prop(E0.group),X=-1;X<(Q?Q.length:0);X++){let z=J[X<0?$.name:Q[X]];if(z)return z}}}}f9.none=new f9("",Object.create(null),0,8);var z7=new WeakMap,nz=new WeakMap,X9;(function(Z){Z[Z.ExcludeBuffers=1]="ExcludeBuffers",Z[Z.IncludeAnonymous=2]="IncludeAnonymous",Z[Z.IgnoreMounts=4]="IgnoreMounts",Z[Z.IgnoreOverlays=8]="IgnoreOverlays",Z[Z.EnterBracketed=16]="EnterBracketed"})(X9||(X9={}));class H9{constructor(Z,J,$,Q,X){if(this.type=Z,this.children=J,this.positions=$,this.length=Q,this.props=null,X&&X.length){this.props=Object.create(null);for(let[z,K]of X)this.props[typeof z=="number"?z:z.id]=K}}toString(){let Z=P6.get(this);if(Z&&!Z.overlay)return Z.tree.toString();let J="";for(let $ of this.children){let Q=$.toString();if(Q){if(J)J+=",";J+=Q}}return!this.type.name?J:(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(J.length?"("+J+")":"")}cursor(Z=0){return new G7(this.topNode,Z)}cursorAt(Z,J=0,$=0){let Q=z7.get(this)||this.topNode,X=new G7(Q);return X.moveTo(Z,J),z7.set(this,X._tree),X}get topNode(){return new d9(this,0,0,null)}resolve(Z,J=0){let $=R5(z7.get(this)||this.topNode,Z,J,!1);return z7.set(this,$),$}resolveInner(Z,J=0){let $=R5(nz.get(this)||this.topNode,Z,J,!0);return nz.set(this,$),$}resolveStack(Z,J=0){return ZB(this,Z,J)}iterate(Z){let{enter:J,leave:$,from:Q=0,to:X=this.length}=Z,z=Z.mode||0,K=(z&X9.IncludeAnonymous)>0;for(let Y=this.cursor(z|X9.IncludeAnonymous);;){let q=!1;if(Y.from<=X&&Y.to>=Q&&(!K&&Y.type.isAnonymous||J(Y)!==!1)){if(Y.firstChild())continue;q=!0}for(;;){if(q&&$&&(K||!Y.type.isAnonymous))$(Y);if(Y.nextSibling())break;if(!Y.parent())return;q=!0}}}prop(Z){return!Z.perNode?this.type.prop(Z):this.props?this.props[Z.id]:void 0}get propValues(){let Z=[];if(this.props)for(let J in this.props)Z.push([+J,this.props[J]]);return Z}balance(Z={}){return this.children.length<=8?this:$$(f9.none,this.children,this.positions,0,this.children.length,0,this.length,(J,$,Q)=>new H9(this.type,J,$,Q,this.propValues),Z.makeTree||((J,$,Q)=>new H9(f9.none,J,$,Q)))}static build(Z){return JB(Z)}}H9.empty=new H9(f9.none,[],[],0);class eJ{constructor(Z,J){this.buffer=Z,this.index=J}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new eJ(this.buffer,this.index)}}class X8{constructor(Z,J,$){this.buffer=Z,this.length=J,this.set=$}get type(){return f9.none}toString(){let Z=[];for(let J=0;J<this.buffer.length;)Z.push(this.childString(J)),J=this.buffer[J+3];return Z.join(",")}childString(Z){let J=this.buffer[Z],$=this.buffer[Z+3],Q=this.set.types[J],X=Q.name;if(/\W/.test(X)&&!Q.isError)X=JSON.stringify(X);if(Z+=4,$==Z)return X;let z=[];while(Z<$)z.push(this.childString(Z)),Z=this.buffer[Z+3];return X+"("+z.join(",")+")"}findChild(Z,J,$,Q,X){let{buffer:z}=this,K=-1;for(let Y=Z;Y!=J;Y=z[Y+3])if(oz(X,Q,z[Y+1],z[Y+2])){if(K=Y,$>0)break}return K}slice(Z,J,$){let Q=this.buffer,X=new Uint16Array(J-Z),z=0;for(let K=Z,Y=0;K<J;){X[Y++]=Q[K++],X[Y++]=Q[K++]-$;let q=X[Y++]=Q[K++]-$;X[Y++]=Q[K++]-Z,z=Math.max(z,q)}return new X8(X,z,this.set)}}function oz(Z,J,$,Q){switch(Z){case-2:return $<J;case-1:return Q>=J&&$<J;case 0:return $<J&&Q>J;case 1:return $<=J&&Q>J;case 2:return Q>J;case 4:return!0}}function R5(Z,J,$,Q){var X;while(Z.from==Z.to||($<1?Z.from>=J:Z.from>J)||($>-1?Z.to<=J:Z.to<J)){let K=!Q&&Z instanceof d9&&Z.index<0?null:Z.parent;if(!K)return Z;Z=K}let z=Q?0:X9.IgnoreOverlays;if(Q){for(let K=Z,Y=K.parent;Y;K=Y,Y=K.parent)if(K instanceof d9&&K.index<0&&((X=Y.enter(J,$,z))===null||X===void 0?void 0:X.from)!=K.from)Z=Y}for(;;){let K=Z.enter(J,$,z);if(!K)return Z;Z=K}}class Z${cursor(Z=0){return new G7(this,Z)}getChild(Z,J=null,$=null){let Q=sz(this,Z,J,$);return Q.length?Q[0]:null}getChildren(Z,J=null,$=null){return sz(this,Z,J,$)}resolve(Z,J=0){return R5(this,Z,J,!1)}resolveInner(Z,J=0){return R5(this,Z,J,!0)}matchContext(Z){return tJ(this.parent,Z)}enterUnfinishedNodesBefore(Z){let J=this.childBefore(Z),$=this;while(J){let Q=J.lastChild;if(!Q||Q.to!=J.to)break;if(Q.type.isError&&Q.from==Q.to)$=J,J=Q.prevSibling;else J=Q}return $}get node(){return this}get next(){return this.parent}}class d9 extends Z${constructor(Z,J,$,Q){super();this._tree=Z,this.from=J,this.index=$,this._parent=Q}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(Z,J,$,Q,X=0){for(let z=this;;){for(let{children:K,positions:Y}=z._tree,q=J>0?K.length:-1;Z!=q;Z+=J){let W=K[Z],U=Y[Z]+z.from,H;if(!(X&X9.EnterBracketed&&W instanceof H9&&(H=P6.get(W))&&!H.overlay&&H.bracketed&&$>=U&&$<=U+W.length)&&!oz(Q,$,U,U+W.length))continue;if(W instanceof X8){if(X&X9.ExcludeBuffers)continue;let F=W.findChild(0,W.buffer.length,J,$-U,Q);if(F>-1)return new Q8(new tz(z,W,Z,U),null,F)}else if(X&X9.IncludeAnonymous||(!W.type.isAnonymous||J$(W))){let F;if(!(X&X9.IgnoreMounts)&&(F=P6.get(W))&&!F.overlay)return new d9(F.tree,U,Z,z);let O=new d9(W,U,Z,z);return X&X9.IncludeAnonymous||!O.type.isAnonymous?O:O.nextChild(J<0?W.children.length-1:0,J,$,Q,X)}}if(X&X9.IncludeAnonymous||!z.type.isAnonymous)return null;if(z.index>=0)Z=z.index+J;else Z=J<0?-1:z._parent._tree.children.length;if(z=z._parent,!z)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(Z){return this.nextChild(0,1,Z,2)}childBefore(Z){return this.nextChild(this._tree.children.length-1,-1,Z,-2)}prop(Z){return this._tree.prop(Z)}enter(Z,J,$=0){let Q;if(!($&X9.IgnoreOverlays)&&(Q=P6.get(this._tree))&&Q.overlay){let X=Z-this.from,z=$&X9.EnterBracketed&&Q.bracketed;for(let{from:K,to:Y}of Q.overlay)if((J>0||z?K<=X:K<X)&&(J<0||z?Y>=X:Y>X))return new d9(Q.tree,Q.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,Z,J,$)}nextSignificantParent(){let Z=this;while(Z.type.isAnonymous&&Z._parent)Z=Z._parent;return Z}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function sz(Z,J,$,Q){let X=Z.cursor(),z=[];if(!X.firstChild())return z;if($!=null){for(let K=!1;!K;)if(K=X.type.is($),!X.nextSibling())return z}for(;;){if(Q!=null&&X.type.is(Q))return z;if(X.type.is(J))z.push(X.node);if(!X.nextSibling())return Q==null?z:[]}}function tJ(Z,J,$=J.length-1){for(let Q=Z;$>=0;Q=Q.parent){if(!Q)return!1;if(!Q.type.isAnonymous){if(J[$]&&J[$]!=Q.name)return!1;$--}}return!0}class tz{constructor(Z,J,$,Q){this.parent=Z,this.buffer=J,this.index=$,this.start=Q}}class Q8 extends Z${get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(Z,J,$){super();this.context=Z,this._parent=J,this.index=$,this.type=Z.buffer.set.types[Z.buffer.buffer[$]]}child(Z,J,$){let{buffer:Q}=this.context,X=Q.findChild(this.index+4,Q.buffer[this.index+3],Z,J-this.context.start,$);return X<0?null:new Q8(this.context,this,X)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(Z){return this.child(1,Z,2)}childBefore(Z){return this.child(-1,Z,-2)}prop(Z){return this.type.prop(Z)}enter(Z,J,$=0){if($&X9.ExcludeBuffers)return null;let{buffer:Q}=this.context,X=Q.findChild(this.index+4,Q.buffer[this.index+3],J>0?1:-1,Z-this.context.start,J);return X<0?null:new Q8(this.context,this,X)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(Z){return this._parent?null:this.context.parent.nextChild(this.context.index+Z,Z,0,4)}get nextSibling(){let{buffer:Z}=this.context,J=Z.buffer[this.index+3];if(J<(this._parent?Z.buffer[this._parent.index+3]:Z.buffer.length))return new Q8(this.context,this._parent,J);return this.externalSibling(1)}get prevSibling(){let{buffer:Z}=this.context,J=this._parent?this._parent.index+4:0;if(this.index==J)return this.externalSibling(-1);return new Q8(this.context,this._parent,Z.findChild(J,this.index,-1,0,4))}get tree(){return null}toTree(){let Z=[],J=[],{buffer:$}=this.context,Q=this.index+4,X=$.buffer[this.index+3];if(X>Q){let z=$.buffer[this.index+1];Z.push($.slice(Q,X,z)),J.push(0)}return new H9(this.type,Z,J,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function ez(Z){if(!Z.length)return null;let J=0,$=Z[0];for(let z=1;z<Z.length;z++){let K=Z[z];if(K.from>$.from||K.to<$.to)$=K,J=z}let Q=$ instanceof d9&&$.index<0?null:$.parent,X=Z.slice();if(Q)X[J]=Q;else X.splice(J,1);return new ZK(X,$)}class ZK{constructor(Z,J){this.heads=Z,this.node=J}get next(){return ez(this.heads)}}function ZB(Z,J,$){let Q=Z.resolveInner(J,$),X=null;for(let z=Q instanceof d9?Q:Q.context.parent;z;z=z.parent)if(z.index<0){let K=z.parent;(X||(X=[Q])).push(K.resolve(J,$)),z=K}else{let K=P6.get(z.tree);if(K&&K.overlay&&K.overlay[0].from<=J&&K.overlay[K.overlay.length-1].to>=J){let Y=new d9(K.tree,K.overlay[0].from+z.from,-1,z);(X||(X=[Q])).push(R5(Y,J,$,!1))}}return X?ez(X):Q}class G7{get name(){return this.type.name}constructor(Z,J=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=J&~X9.EnterBracketed,Z instanceof d9)this.yieldNode(Z);else{this._tree=Z.context.parent,this.buffer=Z.context;for(let $=Z._parent;$;$=$._parent)this.stack.unshift($.index);this.bufferNode=Z,this.yieldBuf(Z.index)}}yieldNode(Z){if(!Z)return!1;return this._tree=Z,this.type=Z.type,this.from=Z.from,this.to=Z.to,!0}yieldBuf(Z,J){this.index=Z;let{start:$,buffer:Q}=this.buffer;return this.type=J||Q.set.types[Q.buffer[Z]],this.from=$+Q.buffer[Z+1],this.to=$+Q.buffer[Z+2],!0}yield(Z){if(!Z)return!1;if(Z instanceof d9)return this.buffer=null,this.yieldNode(Z);return this.buffer=Z.context,this.yieldBuf(Z.index,Z.type)}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(Z,J,$){if(!this.buffer)return this.yield(this._tree.nextChild(Z<0?this._tree._tree.children.length-1:0,Z,J,$,this.mode));let{buffer:Q}=this.buffer,X=Q.findChild(this.index+4,Q.buffer[this.index+3],Z,J-this.buffer.start,$);if(X<0)return!1;return this.stack.push(this.index),this.yieldBuf(X)}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(Z){return this.enterChild(1,Z,2)}childBefore(Z){return this.enterChild(-1,Z,-2)}enter(Z,J,$=this.mode){if(!this.buffer)return this.yield(this._tree.enter(Z,J,$));return $&X9.ExcludeBuffers?!1:this.enterChild(1,Z,J)}parent(){if(!this.buffer)return this.yieldNode(this.mode&X9.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let Z=this.mode&X9.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(Z)}sibling(Z){if(!this.buffer)return!this._tree._parent?!1:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+Z,Z,0,4,this.mode));let{buffer:J}=this.buffer,$=this.stack.length-1;if(Z<0){let Q=$<0?0:this.stack[$]+4;if(this.index!=Q)return this.yieldBuf(J.findChild(Q,this.index,-1,0,4))}else{let Q=J.buffer[this.index+3];if(Q<($<0?J.buffer.length:J.buffer[this.stack[$]+3]))return this.yieldBuf(Q)}return $<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+Z,Z,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(Z){let J,$,{buffer:Q}=this;if(Q){if(Z>0){if(this.index<Q.buffer.buffer.length)return!1}else for(let X=0;X<this.index;X++)if(Q.buffer.buffer[X+3]<this.index)return!1;({index:J,parent:$}=Q)}else({index:J,_parent:$}=this._tree);for(;$;{index:J,_parent:$}=$)if(J>-1)for(let X=J+Z,z=Z<0?-1:$._tree.children.length;X!=z;X+=Z){let K=$._tree.children[X];if(this.mode&X9.IncludeAnonymous||K instanceof X8||!K.type.isAnonymous||J$(K))return!1}return!0}move(Z,J){if(J&&this.enterChild(Z,0,4))return!0;for(;;){if(this.sibling(Z))return!0;if(this.atLastNode(Z)||!this.parent())return!1}}next(Z=!0){return this.move(1,Z)}prev(Z=!0){return this.move(-1,Z)}moveTo(Z,J=0){while(this.from==this.to||(J<1?this.from>=Z:this.from>Z)||(J>-1?this.to<=Z:this.to<Z))if(!this.parent())break;while(this.enterChild(1,Z,J));return this}get node(){if(!this.buffer)return this._tree;let Z=this.bufferNode,J=null,$=0;if(Z&&Z.context==this.buffer)Z:for(let Q=this.index,X=this.stack.length;X>=0;){for(let z=Z;z;z=z._parent)if(z.index==Q){if(Q==this.index)return z;J=z,$=X+1;break Z}Q=this.stack[--X]}for(let Q=$;Q<this.stack.length;Q++)J=new Q8(this.buffer,J,this.stack[Q]);return this.bufferNode=new Q8(this.buffer,J,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(Z,J){for(let $=0;;){let Q=!1;if(this.type.isAnonymous||Z(this)!==!1){if(this.firstChild()){$++;continue}if(!this.type.isAnonymous)Q=!0}for(;;){if(Q&&J)J(this);if(Q=this.type.isAnonymous,!$)return;if(this.nextSibling())break;this.parent(),$--,Q=!0}}}matchContext(Z){if(!this.buffer)return tJ(this.node.parent,Z);let{buffer:J}=this.buffer,{types:$}=J.set;for(let Q=Z.length-1,X=this.stack.length-1;Q>=0;X--){if(X<0)return tJ(this._tree,Z,Q);let z=$[J.buffer[this.stack[X]]];if(!z.isAnonymous){if(Z[Q]&&Z[Q]!=z.name)return!1;Q--}}return!0}}function J$(Z){return Z.children.some((J)=>J instanceof X8||!J.type.isAnonymous||J$(J))}function JB(Z){var J;let{buffer:$,nodeSet:Q,maxBufferLength:X=1024,reused:z=[],minRepeatType:K=Q.types.length}=Z,Y=Array.isArray($)?new eJ($,$.length):$,q=Q.types,W=0,U=0;function H(R,I,P,V,y,k){let{id:j,start:w,end:u,size:l}=Y,v=U,S=W;if(l<0)if(Y.next(),l==-1){let a=z[j];P.push(a),V.push(w-R);return}else if(l==-3){W=j;return}else if(l==-4){U=j;return}else throw RangeError(`Unrecognized record size: ${l}`);let D=q[j],x,T,m=w-R;if(u-w<=X&&(T=A(Y.pos-I,y))){let a=new Uint16Array(T.size-T.skip),h=Y.pos-T.size,s=a.length;while(Y.pos>h)s=L(T.start,a,s);x=new X8(a,u-T.start,Q),m=T.start-R}else{let a=Y.pos-l;Y.next();let h=[],s=[],E=j>=K?j:-1,p=0,X0=u;while(Y.pos>a)if(E>=0&&Y.id==E&&Y.size>=0){if(Y.end<=X0-X)N(h,s,w,p,Y.end,X0,E,v,S),p=h.length,X0=Y.end;Y.next()}else if(k>2500)F(w,a,h,s);else H(w,a,h,s,E,k+1);if(E>=0&&p>0&&p<h.length)N(h,s,w,p,w,X0,E,v,S);if(h.reverse(),s.reverse(),E>-1&&p>0){let F0=O(D,S);x=$$(D,h,s,0,h.length,0,u-w,F0,F0)}else x=_(D,h,s,u-w,v-u,S)}P.push(x),V.push(m)}function F(R,I,P,V){let y=[],k=0,j=-1;while(Y.pos>I){let{id:w,start:u,end:l,size:v}=Y;if(v>4)Y.next();else if(j>-1&&u<j)break;else{if(j<0)j=l-X;y.push(w,u,l),k++,Y.next()}}if(k){let w=new Uint16Array(k*4),u=y[y.length-2];for(let l=y.length-3,v=0;l>=0;l-=3)w[v++]=y[l],w[v++]=y[l+1]-u,w[v++]=y[l+2]-u,w[v++]=v;P.push(new X8(w,y[2]-u,Q)),V.push(u-R)}}function O(R,I){return(P,V,y)=>{let k=0,j=P.length-1,w,u;if(j>=0&&(w=P[j])instanceof H9){if(!j&&w.type==R&&w.length==y)return w;if(u=w.prop(E0.lookAhead))k=V[j]+w.length+u}return _(R,P,V,y,k,I)}}function N(R,I,P,V,y,k,j,w,u){let l=[],v=[];while(R.length>V)l.push(R.pop()),v.push(I.pop()+P-y);R.push(_(Q.types[j],l,v,k-y,w-k,u)),I.push(y-P)}function _(R,I,P,V,y,k,j){if(k){let w=[E0.contextHash,k];j=j?[w].concat(j):[w]}if(y>25){let w=[E0.lookAhead,y];j=j?[w].concat(j):[w]}return new H9(R,I,P,V,j)}function A(R,I){let P=Y.fork(),V=0,y=0,k=0,j=P.end-X,w={size:0,start:0,skip:0};Z:for(let u=P.pos-R;P.pos>u;){let l=P.size;if(P.id==I&&l>=0){w.size=V,w.start=y,w.skip=k,k+=4,V+=4,P.next();continue}let v=P.pos-l;if(l<0||v<u||P.start<j)break;let S=P.id>=K?4:0,D=P.start;P.next();while(P.pos>v){if(P.size<0)if(P.size==-3||P.size==-4)S+=4;else break Z;else if(P.id>=K)S+=4;P.next()}y=D,V+=l,k+=S}if(I<0||V==R)w.size=V,w.start=y,w.skip=k;return w.size>4?w:void 0}function L(R,I,P){let{id:V,start:y,end:k,size:j}=Y;if(Y.next(),j>=0&&V<K){let w=P;if(j>4){let u=Y.pos-(j-4);while(Y.pos>u)P=L(R,I,P)}I[--P]=w,I[--P]=k-R,I[--P]=y-R,I[--P]=V}else if(j==-3)W=V;else if(j==-4)U=V;return P}let B=[],M=[];while(Y.pos>0)H(Z.start||0,Z.bufferStart||0,B,M,-1,0);let C=(J=Z.length)!==null&&J!==void 0?J:B.length?M[0]+B[0].length:0;return new H9(q[Z.topID],B.reverse(),M.reverse(),C)}var rz=new WeakMap;function Y7(Z,J){if(!Z.isAnonymous||J instanceof X8||J.type!=Z)return 1;let $=rz.get(J);if($==null){$=1;for(let Q of J.children){if(Q.type!=Z||!(Q instanceof H9)){$=1;break}$+=Y7(Z,Q)}rz.set(J,$)}return $}function $$(Z,J,$,Q,X,z,K,Y,q){let W=0;for(let N=Q;N<X;N++)W+=Y7(Z,J[N]);let U=Math.ceil(W*1.5/8),H=[],F=[];function O(N,_,A,L,B){for(let M=A;M<L;){let C=M,R=_[M],I=Y7(Z,N[M]);M++;for(;M<L;M++){let P=Y7(Z,N[M]);if(I+P>=U)break;I+=P}if(M==C+1){if(I>U){let P=N[C];O(P.children,P.positions,0,P.children.length,_[C]+B);continue}H.push(N[C])}else{let P=_[M-1]+N[M-1].length-R;H.push($$(Z,N,_,C,M,R,P,null,q))}F.push(R+B-z)}}return O(J,$,Q,X,0),(Y||q)(H,F,K)}class z8{constructor(Z,J,$,Q,X=!1,z=!1){this.from=Z,this.to=J,this.tree=$,this.offset=Q,this.open=(X?1:0)|(z?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(Z,J=[],$=!1){let Q=[new z8(0,Z.length,Z,0,!1,$)];for(let X of J)if(X.to>Z.length)Q.push(X);return Q}static applyChanges(Z,J,$=128){if(!J.length)return Z;let Q=[],X=1,z=Z.length?Z[0]:null;for(let K=0,Y=0,q=0;;K++){let W=K<J.length?J[K]:null,U=W?W.fromA:1e9;if(U-Y>=$)while(z&&z.from<U){let H=z;if(Y>=H.from||U<=H.to||q){let F=Math.max(H.from,Y)-q,O=Math.min(H.to,U)-q;H=F>=O?null:new z8(F,O,H.tree,H.offset+q,K>0,!!W)}if(H)Q.push(H);if(z.to>U)break;z=X<Z.length?Z[X++]:null}if(!W)break;Y=W.toA,q=W.toA-W.toB}return Q}}class Q${startParse(Z,J,$){if(typeof Z=="string")Z=new JK(Z);return $=!$?[new K7(0,Z.length)]:$.length?$.map((Q)=>new K7(Q.from,Q.to)):[new K7(0,0)],this.createParse(Z,J||[],$)}parse(Z,J,$){let Q=this.startParse(Z,J,$);for(;;){let X=Q.advance();if(X)return X}}}class JK{constructor(Z){this.string=Z}get length(){return this.string.length}chunk(Z){return this.string.slice(Z)}get lineChunks(){return!1}read(Z,J){return this.string.slice(Z,J)}}var pV=new E0({perNode:!0});var $B=0;class l9{constructor(Z,J,$,Q){this.name=Z,this.set=J,this.base=$,this.modified=Q,this.id=$B++}toString(){let{name:Z}=this;for(let J of this.modified)if(J.name)Z=`${J.name}(${Z})`;return Z}static define(Z,J){let $=typeof Z=="string"?Z:"?";if(Z instanceof l9)J=Z;if(J===null||J===void 0?void 0:J.base)throw Error("Can not derive from a modified tag");let Q=new l9($,[],null,[]);if(Q.set.push(Q),J)for(let X of J.set)Q.set.push(X);return Q}static defineModifier(Z){let J=new H7(Z);return($)=>{if($.modified.indexOf(J)>-1)return $;return H7.get($.base||$,$.modified.concat(J).sort((Q,X)=>Q.id-X.id))}}}var QB=0;class H7{constructor(Z){this.name=Z,this.instances=[],this.id=QB++}static get(Z,J){if(!J.length)return Z;let $=J[0].instances.find((K)=>K.base==Z&&XB(J,K.modified));if($)return $;let Q=[],X=new l9(Z.name,Q,Z,J);for(let K of J)K.instances.push(X);let z=zB(J);for(let K of Z.set)if(!K.modified.length)for(let Y of z)Q.push(H7.get(K,Y));return X}}function XB(Z,J){return Z.length==J.length&&Z.every(($,Q)=>$==J[Q])}function zB(Z){let J=[[]];for(let $=0;$<Z.length;$++)for(let Q=0,X=J.length;Q<X;Q++)J.push(J[Q].concat(Z[$]));return J.sort(($,Q)=>Q.length-$.length)}function XK(Z){let J=Object.create(null);for(let $ in Z){let Q=Z[$];if(!Array.isArray(Q))Q=[Q];for(let X of $.split(" "))if(X){let z=[],K=2,Y=X;for(let H=0;;){if(Y=="..."&&H>0&&H+3==X.length){K=1;break}let F=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(Y);if(!F)throw RangeError("Invalid path: "+X);if(z.push(F[0]=="*"?"":F[0][0]=='"'?JSON.parse(F[0]):F[0]),H+=F[0].length,H==X.length)break;let O=X[H++];if(H==X.length&&O=="!"){K=0;break}if(O!="/")throw RangeError("Invalid path: "+X);Y=X.slice(H)}let q=z.length-1,W=z[q];if(!W)throw RangeError("Invalid path: "+X);let U=new V5(Q,K,q>0?z.slice(0,q):null);J[W]=U.sort(J[W])}}return KB.add(J)}var KB=new E0({combine(Z,J){let $,Q,X;while(Z||J){if(!Z||J&&Z.depth>=J.depth)X=J,J=J.next;else X=Z,Z=Z.next;if($&&$.mode==X.mode&&!X.context&&!$.context)continue;let z=new V5(X.tags,X.mode,X.context);if($)$.next=z;else Q=z;$=z}return Q}});class V5{constructor(Z,J,$,Q){this.tags=Z,this.mode=J,this.context=$,this.next=Q}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(Z){if(!Z||Z.depth<this.depth)return this.next=Z,this;return Z.next=this.sort(Z.next),Z}get depth(){return this.context?this.context.length:0}}V5.empty=new V5([],2,null);function K$(Z,J){let $=Object.create(null);for(let z of Z)if(!Array.isArray(z.tag))$[z.tag.id]=z.class;else for(let K of z.tag)$[K.id]=z.class;let{scope:Q,all:X=null}=J||{};return{style:(z)=>{let K=X;for(let Y of z)for(let q of Y.set){let W=$[q.id];if(W){K=K?K+" "+W:W;break}}return K},scope:Q}}var U0=l9.define,q7=U0(),K8=U0(),$K=U0(K8),QK=U0(K8),Y8=U0(),W7=U0(Y8),X$=U0(Y8),MZ=U0(),h8=U0(MZ),LZ=U0(),PZ=U0(),z$=U0(),C5=U0(z$),U7=U0(),H0={comment:q7,lineComment:U0(q7),blockComment:U0(q7),docComment:U0(q7),name:K8,variableName:U0(K8),typeName:$K,tagName:U0($K),propertyName:QK,attributeName:U0(QK),className:U0(K8),labelName:U0(K8),namespace:U0(K8),macroName:U0(K8),literal:Y8,string:W7,docString:U0(W7),character:U0(W7),attributeValue:U0(W7),number:X$,integer:U0(X$),float:U0(X$),bool:U0(Y8),regexp:U0(Y8),escape:U0(Y8),color:U0(Y8),url:U0(Y8),keyword:LZ,self:U0(LZ),null:U0(LZ),atom:U0(LZ),unit:U0(LZ),modifier:U0(LZ),operatorKeyword:U0(LZ),controlKeyword:U0(LZ),definitionKeyword:U0(LZ),moduleKeyword:U0(LZ),operator:PZ,derefOperator:U0(PZ),arithmeticOperator:U0(PZ),logicOperator:U0(PZ),bitwiseOperator:U0(PZ),compareOperator:U0(PZ),updateOperator:U0(PZ),definitionOperator:U0(PZ),typeOperator:U0(PZ),controlOperator:U0(PZ),punctuation:z$,separator:U0(z$),bracket:C5,angleBracket:U0(C5),squareBracket:U0(C5),paren:U0(C5),brace:U0(C5),content:MZ,heading:h8,heading1:U0(h8),heading2:U0(h8),heading3:U0(h8),heading4:U0(h8),heading5:U0(h8),heading6:U0(h8),contentSeparator:U0(MZ),list:U0(MZ),quote:U0(MZ),emphasis:U0(MZ),strong:U0(MZ),link:U0(MZ),monospace:U0(MZ),strikethrough:U0(MZ),inserted:U0(),deleted:U0(),changed:U0(),invalid:U0(),meta:U7,documentMeta:U0(U7),annotation:U0(U7),processingInstruction:U0(U7),definition:l9.defineModifier("definition"),constant:l9.defineModifier("constant"),function:l9.defineModifier("function"),standard:l9.defineModifier("standard"),local:l9.defineModifier("local"),special:l9.defineModifier("special")};for(let Z in H0){let J=H0[Z];if(J instanceof l9)J.name=Z}var lV=K$([{tag:H0.link,class:"tok-link"},{tag:H0.heading,class:"tok-heading"},{tag:H0.emphasis,class:"tok-emphasis"},{tag:H0.strong,class:"tok-strong"},{tag:H0.keyword,class:"tok-keyword"},{tag:H0.atom,class:"tok-atom"},{tag:H0.bool,class:"tok-bool"},{tag:H0.url,class:"tok-url"},{tag:H0.labelName,class:"tok-labelName"},{tag:H0.inserted,class:"tok-inserted"},{tag:H0.deleted,class:"tok-deleted"},{tag:H0.literal,class:"tok-literal"},{tag:H0.string,class:"tok-string"},{tag:H0.number,class:"tok-number"},{tag:[H0.regexp,H0.escape,H0.special(H0.string)],class:"tok-string2"},{tag:H0.variableName,class:"tok-variableName"},{tag:H0.local(H0.variableName),class:"tok-variableName tok-local"},{tag:H0.definition(H0.variableName),class:"tok-variableName tok-definition"},{tag:H0.special(H0.variableName),class:"tok-variableName2"},{tag:H0.definition(H0.propertyName),class:"tok-propertyName tok-definition"},{tag:H0.typeName,class:"tok-typeName"},{tag:H0.namespace,class:"tok-namespace"},{tag:H0.className,class:"tok-className"},{tag:H0.macroName,class:"tok-macroName"},{tag:H0.propertyName,class:"tok-propertyName"},{tag:H0.operator,class:"tok-operator"},{tag:H0.comment,class:"tok-comment"},{tag:H0.meta,class:"tok-meta"},{tag:H0.invalid,class:"tok-invalid"},{tag:H0.punctuation,class:"tok-punctuation"}]);var Y$,k5=new E0;var YB=new E0;class qZ{constructor(Z,J,$=[],Q=""){if(this.data=Z,this.name=Q,!x0.prototype.hasOwnProperty("tree"))Object.defineProperty(x0.prototype,"tree",{get(){return vZ(this)}});this.parser=J,this.extension=[I6.of(this),x0.languageData.of((X,z,K)=>{let Y=zK(X,z,K),q=Y.type.prop(k5);if(!q)return[];let W=X.facet(q),U=Y.type.prop(YB);if(U){let H=Y.resolve(z-Y.from,K);for(let F of U)if(F.test(H,X)){let O=X.facet(F.facet);return F.type=="replace"?O:O.concat(W)}}return W})].concat($)}isActiveAt(Z,J,$=-1){return zK(Z,J,$).type.prop(k5)==this.data}findRegions(Z){let J=Z.facet(I6);if((J===null||J===void 0?void 0:J.data)==this.data)return[{from:0,to:Z.doc.length}];if(!J||!J.allowsNesting)return[];let $=[],Q=(X,z)=>{if(X.prop(k5)==this.data){$.push({from:z,to:z+X.length});return}let K=X.prop(E0.mounted);if(K){if(K.tree.prop(k5)==this.data){if(K.overlay)for(let Y of K.overlay)$.push({from:Y.from+z,to:Y.to+z});else $.push({from:z,to:z+X.length});return}else if(K.overlay){let Y=$.length;if(Q(K.tree,K.overlay[0].from+z),$.length>Y)return}}for(let Y=0;Y<X.children.length;Y++){let q=X.children[Y];if(q instanceof H9)Q(q,X.positions[Y]+z)}};return Q(vZ(Z),0),$}get allowsNesting(){return!0}}qZ.setState=h0.define();function zK(Z,J,$){let Q=Z.facet(I6),X=vZ(Z).topNode;if(!Q||Q.allowsNesting){for(let z=X;z;z=z.enter(J,$,X9.ExcludeBuffers|X9.EnterBracketed))if(z.type.isTop)X=z}return X}function vZ(Z){let J=Z.field(qZ.state,!1);return J?J.tree:H9.empty}class WK{constructor(Z){this.doc=Z,this.cursorPos=0,this.string="",this.cursor=Z.iter()}get length(){return this.doc.length}syncTo(Z){return this.string=this.cursor.next(Z-this.cursorPos).value,this.cursorPos=Z+this.string.length,this.cursorPos-this.string.length}chunk(Z){return this.syncTo(Z),this.string}get lineChunks(){return!0}read(Z,J){let $=this.cursorPos-this.string.length;if(Z<$||J>=this.cursorPos)return this.doc.sliceString(Z,J);else return this.string.slice(Z-$,J-$)}}var y5=null;class F7{constructor(Z,J,$=[],Q,X,z,K,Y){this.parser=Z,this.state=J,this.fragments=$,this.tree=Q,this.treeLen=X,this.viewport=z,this.skipped=K,this.scheduleOn=Y,this.parse=null,this.tempSkipped=[]}static create(Z,J,$){return new F7(Z,J,[],H9.empty,0,$,[],null)}startParse(){return this.parser.startParse(new WK(this.state.doc),this.fragments)}work(Z,J){if(J!=null&&J>=this.state.doc.length)J=void 0;if(this.tree!=H9.empty&&this.isDone(J!==null&&J!==void 0?J:this.state.doc.length))return this.takeTree(),!0;return this.withContext(()=>{var $;if(typeof Z=="number"){let Q=Date.now()+Z;Z=()=>Date.now()>Q}if(!this.parse)this.parse=this.startParse();if(J!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>J)&&J<this.state.doc.length)this.parse.stopAt(J);for(;;){let Q=this.parse.advance();if(Q)if(this.fragments=this.withoutTempSkipped(z8.addTree(Q,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=($=this.parse.stoppedAt)!==null&&$!==void 0?$:this.state.doc.length,this.tree=Q,this.parse=null,this.treeLen<(J!==null&&J!==void 0?J:this.state.doc.length))this.parse=this.startParse();else return!0;if(Z())return!1}})}takeTree(){let Z,J;if(this.parse&&(Z=this.parse.parsedPos)>=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>Z)this.parse.stopAt(Z);this.withContext(()=>{while(!(J=this.parse.advance()));}),this.treeLen=Z,this.tree=J,this.fragments=this.withoutTempSkipped(z8.addTree(this.tree,this.fragments,!0)),this.parse=null}}withContext(Z){let J=y5;y5=this;try{return Z()}finally{y5=J}}withoutTempSkipped(Z){for(let J;J=this.tempSkipped.pop();)Z=KK(Z,J.from,J.to);return Z}changes(Z,J){let{fragments:$,tree:Q,treeLen:X,viewport:z,skipped:K}=this;if(this.takeTree(),!Z.empty){let Y=[];if(Z.iterChangedRanges((q,W,U,H)=>Y.push({fromA:q,toA:W,fromB:U,toB:H})),$=z8.applyChanges($,Y),Q=H9.empty,X=0,z={from:Z.mapPos(z.from,-1),to:Z.mapPos(z.to,1)},this.skipped.length){K=[];for(let q of this.skipped){let W=Z.mapPos(q.from,1),U=Z.mapPos(q.to,-1);if(W<U)K.push({from:W,to:U})}}}return new F7(this.parser,J,$,Q,X,z,K,this.scheduleOn)}updateViewport(Z){if(this.viewport.from==Z.from&&this.viewport.to==Z.to)return!1;this.viewport=Z;let J=this.skipped.length;for(let $=0;$<this.skipped.length;$++){let{from:Q,to:X}=this.skipped[$];if(Q<Z.to&&X>Z.from)this.fragments=KK(this.fragments,Q,X),this.skipped.splice($--,1)}if(this.skipped.length>=J)return!1;return this.reset(),!0}reset(){if(this.parse)this.takeTree(),this.parse=null}skipUntilInView(Z,J){this.skipped.push({from:Z,to:J})}static getSkippingParser(Z){return new class extends Q${createParse(J,$,Q){let X=Q[0].from,z=Q[Q.length-1].to;return{parsedPos:X,advance(){let Y=y5;if(Y){for(let q of Q)Y.tempSkipped.push(q);if(Z)Y.scheduleOn=Y.scheduleOn?Promise.all([Y.scheduleOn,Z]):Z}return this.parsedPos=z,new H9(f9.none,[],[],z-X)},stoppedAt:null,stopAt(){}}}}}isDone(Z){Z=Math.min(Z,this.state.doc.length);let J=this.fragments;return this.treeLen>=Z&&J.length&&J[0].from==0&&J[0].to>=Z}static get(){return y5}}function KK(Z,J,$){return z8.applyChanges(Z,[{fromA:J,toA:$,fromB:J,toB:$}])}class M6{constructor(Z){this.context=Z,this.tree=Z.tree}apply(Z){if(!Z.docChanged&&this.tree==this.context.tree)return this;let J=this.context.changes(Z.changes,Z.state),$=this.context.treeLen==Z.startState.doc.length?void 0:Math.max(Z.changes.mapPos(this.context.treeLen),J.viewport.to);if(!J.work(20,$))J.takeTree();return new M6(J)}static init(Z){let J=Math.min(3000,Z.doc.length),$=F7.create(Z.facet(I6).parser,Z,{from:0,to:J});if(!$.work(20,J))$.takeTree();return new M6($)}}qZ.state=t0.define({create:M6.init,update(Z,J){for(let $ of J.effects)if($.is(qZ.setState))return $.value;if(J.startState.facet(I6)!=J.state.facet(I6))return M6.init(J.state);return Z.apply(J)}});var UK=(Z)=>{let J=setTimeout(()=>Z(),500);return()=>clearTimeout(J)};if(typeof requestIdleCallback<"u")UK=(Z)=>{let J=-1,$=setTimeout(()=>{J=requestIdleCallback(Z,{timeout:400})},100);return()=>J<0?clearTimeout($):cancelIdleCallback(J)};var G$=typeof navigator<"u"&&((Y$=navigator.scheduling)===null||Y$===void 0?void 0:Y$.isInputPending)?()=>navigator.scheduling.isInputPending():null,GB=e0.fromClass(class{constructor(J){this.view=J,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(J){let $=this.view.state.field(qZ.state).context;if($.updateViewport(J.view.viewport)||this.view.viewport.to>$.treeLen)this.scheduleWork();if(J.docChanged||J.selectionSet){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork()}this.checkAsyncSchedule($)}scheduleWork(){if(this.working)return;let{state:J}=this.view,$=J.field(qZ.state);if($.tree!=$.context.tree||!$.context.isDone(J.doc.length))this.working=UK(this.work)}work(J){this.working=null;let $=Date.now();if(this.chunkEnd<$&&(this.chunkEnd<0||this.view.hasFocus))this.chunkEnd=$+30000,this.chunkBudget=3000;if(this.chunkBudget<=0)return;let{state:Q,viewport:{to:X}}=this.view,z=Q.field(qZ.state);if(z.tree==z.context.tree&&z.context.isDone(X+1e5))return;let K=Date.now()+Math.min(this.chunkBudget,100,J&&!G$?Math.max(25,J.timeRemaining()-5):1e9),Y=z.context.treeLen<X&&Q.doc.length>X+1000,q=z.context.work(()=>{return G$&&G$()||Date.now()>K},X+(Y?0:1e5));if(this.chunkBudget-=Date.now()-$,q||this.chunkBudget<=0)z.context.takeTree(),this.view.dispatch({effects:qZ.setState.of(new M6(z.context))});if(this.chunkBudget>0&&!(q&&!Y))this.scheduleWork();this.checkAsyncSchedule(z.context)}checkAsyncSchedule(J){if(J.scheduleOn)this.workScheduled++,J.scheduleOn.then(()=>this.scheduleWork()).catch(($)=>YZ(this.view.state,$)).then(()=>this.workScheduled--),J.scheduleOn=null}destroy(){if(this.working)this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),I6=M0.define({combine(Z){return Z.length?Z[0]:null},enables:(Z)=>[qZ.state,GB,O0.contentAttributes.compute([Z],(J)=>{let $=J.facet(Z);return $&&$.name?{"data-language":$.name}:{}})]});var qB=M0.define(),O7=M0.define({combine:(Z)=>{if(!Z.length)return" ";let J=Z[0];if(!J||/\S/.test(J)||Array.from(J).some(($)=>$!=J[0]))throw Error("Invalid indent unit: "+JSON.stringify(Z[0]));return J}});function T5(Z){let J=Z.facet(O7);return J.charCodeAt(0)==9?Z.tabSize*J.length:J.length}function j5(Z,J){let $="",Q=Z.tabSize,X=Z.facet(O7)[0];if(X=="\t"){while(J>=Q)$+="\t",J-=Q;X=" "}for(let z=0;z<J;z++)$+=X;return $}function H$(Z,J){if(Z instanceof x0)Z=new R6(Z);for(let Q of Z.state.facet(qB)){let X=Q(Z,J);if(X!==void 0)return X}let $=vZ(Z.state);return $.length>=J?UB(Z,$,J):null}class R6{constructor(Z,J={}){this.state=Z,this.options=J,this.unit=T5(Z)}lineAt(Z,J=1){let $=this.state.doc.lineAt(Z),{simulateBreak:Q,simulateDoubleBreak:X}=this.options;if(Q!=null&&Q>=$.from&&Q<=$.to)if(X&&Q==Z)return{text:"",from:Z};else if(J<0?Q<Z:Q<=Z)return{text:$.text.slice(Q-$.from),from:Q};else return{text:$.text.slice(0,Q-$.from),from:$.from};return $}textAfterPos(Z,J=1){if(this.options.simulateDoubleBreak&&Z==this.options.simulateBreak)return"";let{text:$,from:Q}=this.lineAt(Z,J);return $.slice(Z-Q,Math.min($.length,Z+100-Q))}column(Z,J=1){let{text:$,from:Q}=this.lineAt(Z,J),X=this.countColumn($,Z-Q),z=this.options.overrideIndentation?this.options.overrideIndentation(Q):-1;if(z>-1)X+=z-this.countColumn($,$.search(/\S|$/));return X}countColumn(Z,J=Z.length){return D8(Z,this.state.tabSize,J)}lineIndent(Z,J=1){let{text:$,from:Q}=this.lineAt(Z,J),X=this.options.overrideIndentation;if(X){let z=X(Q);if(z>-1)return z}return this.countColumn($,$.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}var WB=new E0;function UB(Z,J,$){let Q=J.resolveStack($),X=J.resolveInner($,-1).resolve($,0).enterUnfinishedNodesBefore($);if(X!=Q.node){let z=[];for(let K=X;K&&!(K.from<Q.node.from||K.to>Q.node.to||K.from==Q.node.from&&K.type==Q.node.type);K=K.parent)z.push(K);for(let K=z.length-1;K>=0;K--)Q={node:z[K],next:Q}}return HK(Q,Z,$)}function HK(Z,J,$){for(let Q=Z;Q;Q=Q.next){let X=FB(Q.node);if(X)return X(F$.create(J,$,Q))}return 0}function HB(Z){return Z.pos==Z.options.simulateBreak&&Z.options.simulateDoubleBreak}function FB(Z){let J=Z.type.prop(WB);if(J)return J;let $=Z.firstChild,Q;if($&&(Q=$.type.prop(E0.closedBy))){let X=Z.lastChild,z=X&&Q.indexOf(X.name)>-1;return(K)=>_B(K,!0,1,void 0,z&&!HB(K)?X.from:void 0)}return Z.parent==null?OB:null}function OB(){return 0}class F$ extends R6{constructor(Z,J,$){super(Z.state,Z.options);this.base=Z,this.pos=J,this.context=$}get node(){return this.context.node}static create(Z,J,$){return new F$(Z,J,$)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(Z){let J=this.state.doc.lineAt(Z.from);for(;;){let $=Z.resolve(J.from);while($.parent&&$.parent.from==$.from)$=$.parent;if(NB($,Z))break;J=this.state.doc.lineAt($.from)}return this.lineIndent(J.from)}continue(){return HK(this.context.next,this.base,this.pos)}}function NB(Z,J){for(let $=J;$;$=$.parent)if(Z==$)return!0;return!1}function BB(Z){let J=Z.node,$=J.childAfter(J.from),Q=J.lastChild;if(!$)return null;let X=Z.options.simulateBreak,z=Z.state.doc.lineAt($.from),K=X==null||X<=z.from?z.to:Math.min(z.to,X);for(let Y=$.to;;){let q=J.childAfter(Y);if(!q||q==Q)return null;if(!q.type.isSkipped){if(q.from>=K)return null;let W=/^ */.exec(z.text.slice($.to-z.from))[0].length;return{from:$.from,to:$.to+W}}Y=q.to}}function _B(Z,J,$,Q,X){let z=Z.textAfter,K=z.match(/^\s*/)[0].length,Y=Q&&z.slice(K,K+Q.length)==Q||X==Z.pos+K,q=J?BB(Z):null;if(q)return Y?Z.column(q.from):Z.column(q.to);return Z.baseIndent+(Y?0:Z.unit*$)}class O${constructor(Z,J){this.specs=Z;let $;function Q(K){let Y=$Z.newName();return($||($=Object.create(null)))["."+Y]=K,Y}let X=typeof J.all=="string"?J.all:J.all?Q(J.all):void 0,z=J.scope;this.scope=z instanceof qZ?(K)=>K.prop(k5)==z.data:z?(K)=>K==z:void 0,this.style=K$(Z.map((K)=>({tag:K.tag,class:K.class||Q(Object.assign({},K,{tag:null}))})),{all:X}).style,this.module=$?new $Z($):null,this.themeType=J.themeType}static define(Z,J){return new O$(Z,J||{})}}var Jy=O$.define([{tag:H0.meta,color:"#404740"},{tag:H0.link,textDecoration:"underline"},{tag:H0.heading,textDecoration:"underline",fontWeight:"bold"},{tag:H0.emphasis,fontStyle:"italic"},{tag:H0.strong,fontWeight:"bold"},{tag:H0.strikethrough,textDecoration:"line-through"},{tag:H0.keyword,color:"#708"},{tag:[H0.atom,H0.bool,H0.url,H0.contentSeparator,H0.labelName],color:"#219"},{tag:[H0.literal,H0.inserted],color:"#164"},{tag:[H0.string,H0.deleted],color:"#a11"},{tag:[H0.regexp,H0.escape,H0.special(H0.string)],color:"#e40"},{tag:H0.definition(H0.variableName),color:"#00f"},{tag:H0.local(H0.variableName),color:"#30a"},{tag:[H0.typeName,H0.namespace],color:"#085"},{tag:H0.className,color:"#167"},{tag:[H0.special(H0.variableName),H0.macroName],color:"#256"},{tag:H0.definition(H0.propertyName),color:"#00c"},{tag:H0.comment,color:"#940"},{tag:H0.invalid,color:"#f00"}]);var AB=1e4,LB="()[]{}";var PB=new E0;function W$(Z,J,$){let Q=Z.prop(J<0?E0.openedBy:E0.closedBy);if(Q)return Q;if(Z.name.length==1){let X=$.indexOf(Z.name);if(X>-1&&X%2==(J<0?1:0))return[$[X+J]]}return null}function U$(Z){let J=Z.type.prop(PB);return J?J(Z.node):Z}function f8(Z,J,$,Q={}){let X=Q.maxScanDistance||AB,z=Q.brackets||LB,K=vZ(Z),Y=K.resolveInner(J,$);for(let q=Y;q;q=q.parent){let W=W$(q.type,$,z);if(W&&q.from<q.to){let U=U$(q);if(U&&($>0?J>=U.from&&J<U.to:J>U.from&&J<=U.to))return MB(Z,J,$,q,U,W,z)}}return IB(Z,J,$,K,Y.type,X,z)}function MB(Z,J,$,Q,X,z,K){let Y=Q.parent,q={from:X.from,to:X.to},W=0,U=Y===null||Y===void 0?void 0:Y.cursor();if(U&&($<0?U.childBefore(Q.from):U.childAfter(Q.to)))do if($<0?U.to<=Q.from:U.from>=Q.to){if(W==0&&z.indexOf(U.type.name)>-1&&U.from<U.to){let H=U$(U);return{start:q,end:H?{from:H.from,to:H.to}:void 0,matched:!0}}else if(W$(U.type,$,K))W++;else if(W$(U.type,-$,K)){if(W==0){let H=U$(U);return{start:q,end:H&&H.from<H.to?{from:H.from,to:H.to}:void 0,matched:!1}}W--}}while($<0?U.prevSibling():U.nextSibling());return{start:q,matched:!1}}function IB(Z,J,$,Q,X,z,K){if($<0?!J:J==Z.doc.length)return null;let Y=$<0?Z.sliceDoc(J-1,J):Z.sliceDoc(J,J+1),q=K.indexOf(Y);if(q<0||q%2==0!=$>0)return null;let W={from:$<0?J-1:J,to:$>0?J+1:J},U=Z.doc.iterRange(J,$>0?Z.doc.length:0),H=0;for(let F=0;!U.next().done&&F<=z;){let O=U.value;if($<0)F+=O.length;let N=J+F*$;for(let _=$>0?0:O.length-1,A=$>0?O.length:-1;_!=A;_+=$){let L=K.indexOf(O[_]);if(L<0||Q.resolveInner(N+_,1).type!=X)continue;if(L%2==0==$>0)H++;else if(H==1)return{start:W,end:{from:N+_,to:N+_+1},matched:L>>1==q>>1};else H--}if($>0)F+=O.length}return U.done?{start:W,matched:!1}:null}var RB=Object.create(null),YK=[f9.none];var GK=[],qK=Object.create(null),CB=Object.create(null);for(let[Z,J]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])CB[Z]=VB(RB,J);function q$(Z,J){if(GK.indexOf(Z)>-1)return;GK.push(Z),console.warn(J)}function VB(Z,J){let $=[];for(let Y of J.split(" ")){let q=[];for(let W of Y.split(".")){let U=Z[W]||H0[W];if(!U)q$(W,`Unknown highlighting tag ${W}`);else if(typeof U=="function")if(!q.length)q$(W,`Modifier ${W} used at start of tag`);else q=q.map(U);else if(q.length)q$(W,`Tag ${W} used as modifier`);else q=Array.isArray(U)?U:[U]}for(let W of q)$.push(W)}if(!$.length)return 0;let Q=J.replace(/ /g,"_"),X=Q+" "+$.map((Y)=>Y.id),z=qK[X];if(z)return z.id;let K=qK[X]=f9.define({id:YK.length,name:Q,props:[XK({[Q]:$})]});return YK.push(K),K.id}var $y={rtl:L0.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:Q9.RTL}),ltr:L0.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:Q9.LTR}),auto:L0.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var yB=(Z)=>{let{state:J}=Z,$=J.doc.lineAt(J.selection.main.from),Q=P$(Z.state,$.from);return Q.line?kB(Z):Q.block?jB(Z):!1};function L$(Z,J){return({state:$,dispatch:Q})=>{if($.readOnly)return!1;let X=Z(J,$);if(!X)return!1;return Q($.update(X)),!0}}var kB=L$(bB,0);var TB=L$(MK,0);var jB=L$((Z,J)=>MK(Z,J,SB(J)),0);function P$(Z,J){let $=Z.languageDataAt("commentTokens",J,1);return $.length?$[0]:{}}var D5=50;function DB(Z,{open:J,close:$},Q,X){let z=Z.sliceDoc(Q-D5,Q),K=Z.sliceDoc(X,X+D5),Y=/\s*$/.exec(z)[0].length,q=/^\s*/.exec(K)[0].length,W=z.length-Y;if(z.slice(W-J.length,W)==J&&K.slice(q,q+$.length)==$)return{open:{pos:Q-Y,margin:Y&&1},close:{pos:X+q,margin:q&&1}};let U,H;if(X-Q<=2*D5)U=H=Z.sliceDoc(Q,X);else U=Z.sliceDoc(Q,Q+D5),H=Z.sliceDoc(X-D5,X);let F=/^\s*/.exec(U)[0].length,O=/\s*$/.exec(H)[0].length,N=H.length-O-$.length;if(U.slice(F,F+J.length)==J&&H.slice(N,N+$.length)==$)return{open:{pos:Q+F+J.length,margin:/\s/.test(U.charAt(F+J.length))?1:0},close:{pos:X-O-$.length,margin:/\s/.test(H.charAt(N-1))?1:0}};return null}function SB(Z){let J=[];for(let $ of Z.selection.ranges){let Q=Z.doc.lineAt($.from),X=$.to<=Q.to?Q:Z.doc.lineAt($.to);if(X.from>Q.from&&X.from==$.to)X=$.to==Q.to+1?Q:Z.doc.lineAt($.to-1);let z=J.length-1;if(z>=0&&J[z].to>Q.from)J[z].to=X.to;else J.push({from:Q.from+/^\s*/.exec(Q.text)[0].length,to:X.to})}return J}function MK(Z,J,$=J.selection.ranges){let Q=$.map((z)=>P$(J,z.from).block);if(!Q.every((z)=>z))return null;let X=$.map((z,K)=>DB(J,Q[K],z.from,z.to));if(Z!=2&&!X.every((z)=>z))return{changes:J.changes($.map((z,K)=>{if(X[K])return[];return[{from:z.from,insert:Q[K].open+" "},{from:z.to,insert:" "+Q[K].close}]}))};else if(Z!=1&&X.some((z)=>z)){let z=[];for(let K=0,Y;K<X.length;K++)if(Y=X[K]){let q=Q[K],{open:W,close:U}=Y;z.push({from:W.pos-q.open.length,to:W.pos+W.margin},{from:U.pos-U.margin,to:U.pos+q.close.length})}return{changes:z}}return null}function bB(Z,J,$=J.selection.ranges){let Q=[],X=-1;Z:for(let{from:z,to:K}of $){let Y=Q.length,q=1e9,W;for(let U=z;U<=K;){let H=J.doc.lineAt(U);if(W==null){if(W=P$(J,H.from).line,!W)continue Z}if(H.from>X&&(z==K||K>H.from)){X=H.from;let F=/^\s*/.exec(H.text)[0].length,O=F==H.length,N=H.text.slice(F,F+W.length)==W?F:-1;if(F<H.text.length&&F<q)q=F;Q.push({line:H,comment:N,token:W,indent:F,empty:O,single:!1})}U=H.to+1}if(q<1e9){for(let U=Y;U<Q.length;U++)if(Q[U].indent<Q[U].line.text.length)Q[U].indent=q}if(Q.length==Y+1)Q[Y].single=!0}if(Z!=2&&Q.some((z)=>z.comment<0&&(!z.empty||z.single))){let z=[];for(let{line:Y,token:q,indent:W,empty:U,single:H}of Q)if(H||!U)z.push({from:Y.from+W,insert:q+" "});let K=J.changes(z);return{changes:K,selection:J.selection.map(K,1)}}else if(Z!=1&&Q.some((z)=>z.comment>=0)){let z=[];for(let{line:K,comment:Y,token:q}of Q)if(Y>=0){let W=K.from+Y,U=W+q.length;if(K.text[U-K.from]==" ")U++;z.push({from:W,to:U})}return{changes:z}}return null}var B$=JZ.define(),EB=JZ.define(),wB=M0.define(),IK=M0.define({combine(Z){return x4(Z,{minDepth:100,newGroupDelay:500,joinToEvent:(J,$)=>$},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(J,$)=>(Q,X)=>J(Q,X)||$(Q,X)})}}),RK=t0.define({create(){return IZ.empty},update(Z,J){let $=J.state.facet(IK),Q=J.annotation(B$);if(Q){let q=E9.fromTransaction(J,Q.selection),W=Q.side,U=W==0?Z.undone:Z.done;if(q)U=B7(U,U.length,$.minDepth,q);else U=yK(U,J.startState.selection);return new IZ(W==0?Q.rest:U,W==0?U:Q.rest)}let X=J.annotation(EB);if(X=="full"||X=="before")Z=Z.isolate();if(J.annotation(G9.addToHistory)===!1)return!J.changes.empty?Z.addMapping(J.changes.desc):Z;let z=E9.fromTransaction(J),K=J.annotation(G9.time),Y=J.annotation(G9.userEvent);if(z)Z=Z.addChanges(z,K,Y,$,J);else if(J.selection)Z=Z.addSelection(J.startState.selection,K,Y,$.newGroupDelay);if(X=="full"||X=="after")Z=Z.isolate();return Z},toJSON(Z){return{done:Z.done.map((J)=>J.toJSON()),undone:Z.undone.map((J)=>J.toJSON())}},fromJSON(Z){return new IZ(Z.done.map(E9.fromJSON),Z.undone.map(E9.fromJSON))}});function CK(Z={}){return[RK,IK.of(Z),O0.domEventHandlers({beforeinput(J,$){let Q=J.inputType=="historyUndo"?S5:J.inputType=="historyRedo"?C6:null;if(!Q)return!1;return J.preventDefault(),Q($)}})]}function _7(Z,J){return function({state:$,dispatch:Q}){if(!J&&$.readOnly)return!1;let X=$.field(RK,!1);if(!X)return!1;let z=X.pop(Z,$,J);if(!z)return!1;return Q(z),!0}}var S5=_7(0,!1),C6=_7(1,!1),xB=_7(0,!0),vB=_7(1,!0);class E9{constructor(Z,J,$,Q,X){this.changes=Z,this.effects=J,this.mapped=$,this.startSelection=Q,this.selectionsAfter=X}setSelAfter(Z){return new E9(this.changes,this.effects,this.mapped,this.startSelection,Z)}toJSON(){var Z,J,$;return{changes:(Z=this.changes)===null||Z===void 0?void 0:Z.toJSON(),mapped:(J=this.mapped)===null||J===void 0?void 0:J.toJSON(),startSelection:($=this.startSelection)===null||$===void 0?void 0:$.toJSON(),selectionsAfter:this.selectionsAfter.map((Q)=>Q.toJSON())}}static fromJSON(Z){return new E9(Z.changes&&Y9.fromJSON(Z.changes),[],Z.mapped&&t9.fromJSON(Z.mapped),Z.startSelection&&$0.fromJSON(Z.startSelection),Z.selectionsAfter.map($0.fromJSON))}static fromTransaction(Z,J){let $=a9;for(let Q of Z.startState.facet(wB)){let X=Q(Z);if(X.length)$=$.concat(X)}if(!$.length&&Z.changes.empty)return null;return new E9(Z.changes.invert(Z.startState.doc),$,void 0,J||Z.startState.selection,a9)}static selection(Z){return new E9(void 0,a9,void 0,void 0,Z)}}function B7(Z,J,$,Q){let X=J+1>$+20?J-$-1:0,z=Z.slice(X,J);return z.push(Q),z}function hB(Z,J){let $=[],Q=!1;return Z.iterChangedRanges((X,z)=>$.push(X,z)),J.iterChangedRanges((X,z,K,Y)=>{for(let q=0;q<$.length;){let W=$[q++],U=$[q++];if(Y>=W&&K<=U)Q=!0}}),Q}function fB(Z,J){return Z.ranges.length==J.ranges.length&&Z.ranges.filter(($,Q)=>$.empty!=J.ranges[Q].empty).length===0}function VK(Z,J){return!Z.length?J:!J.length?Z:Z.concat(J)}var a9=[],gB=200;function yK(Z,J){if(!Z.length)return[E9.selection([J])];else{let $=Z[Z.length-1],Q=$.selectionsAfter.slice(Math.max(0,$.selectionsAfter.length-gB));if(Q.length&&Q[Q.length-1].eq(J))return Z;return Q.push(J),B7(Z,Z.length-1,1e9,$.setSelAfter(Q))}}function mB(Z){let J=Z[Z.length-1],$=Z.slice();return $[Z.length-1]=J.setSelAfter(J.selectionsAfter.slice(0,J.selectionsAfter.length-1)),$}function N$(Z,J){if(!Z.length)return Z;let $=Z.length,Q=a9;while($){let X=uB(Z[$-1],J,Q);if(X.changes&&!X.changes.empty||X.effects.length){let z=Z.slice(0,$);return z[$-1]=X,z}else J=X.mapped,$--,Q=X.selectionsAfter}return Q.length?[E9.selection(Q)]:a9}function uB(Z,J,$){let Q=VK(Z.selectionsAfter.length?Z.selectionsAfter.map((Y)=>Y.map(J)):a9,$);if(!Z.changes)return E9.selection(Q);let X=Z.changes.map(J),z=J.mapDesc(Z.changes,!0),K=Z.mapped?Z.mapped.composeDesc(z):z;return new E9(X,h0.mapEffects(Z.effects,J),K,Z.startSelection.map(z),Q)}var pB=/^(input\.type|delete)($|\.)/;class IZ{constructor(Z,J,$=0,Q=void 0){this.done=Z,this.undone=J,this.prevTime=$,this.prevUserEvent=Q}isolate(){return this.prevTime?new IZ(this.done,this.undone):this}addChanges(Z,J,$,Q,X){let z=this.done,K=z[z.length-1];if(K&&K.changes&&!K.changes.empty&&Z.changes&&(!$||pB.test($))&&(!K.selectionsAfter.length&&J-this.prevTime<Q.newGroupDelay&&Q.joinToEvent(X,hB(K.changes,Z.changes))||$=="input.type.compose"))z=B7(z,z.length-1,Q.minDepth,new E9(Z.changes.compose(K.changes),VK(h0.mapEffects(Z.effects,K.changes),K.effects),K.mapped,K.startSelection,a9));else z=B7(z,z.length,Q.minDepth,Z);return new IZ(z,a9,J,$)}addSelection(Z,J,$,Q){let X=this.done.length?this.done[this.done.length-1].selectionsAfter:a9;if(X.length>0&&J-this.prevTime<Q&&$==this.prevUserEvent&&$&&/^select($|\.)/.test($)&&fB(X[X.length-1],Z))return this;return new IZ(yK(this.done,Z),this.undone,J,$)}addMapping(Z){return new IZ(N$(this.done,Z),N$(this.undone,Z),this.prevTime,this.prevUserEvent)}pop(Z,J,$){let Q=Z==0?this.done:this.undone;if(Q.length==0)return null;let X=Q[Q.length-1],z=X.selectionsAfter[0]||(X.startSelection?X.startSelection.map(X.changes.invertedDesc,1):J.selection);if($&&X.selectionsAfter.length)return J.update({selection:X.selectionsAfter[X.selectionsAfter.length-1],annotations:B$.of({side:Z,rest:mB(Q),selection:z}),userEvent:Z==0?"select.undo":"select.redo",scrollIntoView:!0});else if(!X.changes)return null;else{let K=Q.length==1?a9:Q.slice(0,Q.length-1);if(X.mapped)K=N$(K,X.mapped);return J.update({changes:X.changes,selection:X.startSelection,effects:X.effects,annotations:B$.of({side:Z,rest:K,selection:z}),filter:!1,userEvent:Z==0?"undo":"redo",scrollIntoView:!0})}}}IZ.empty=new IZ(a9,a9);var kK=[{key:"Mod-z",run:S5,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:C6,preventDefault:!0},{linux:"Ctrl-Shift-z",run:C6,preventDefault:!0},{key:"Mod-u",run:xB,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:vB,preventDefault:!0}];function V6(Z,J){return $0.create(Z.ranges.map(J),Z.mainIndex)}function WZ(Z,J){return Z.update({selection:J,scrollIntoView:!0,userEvent:"select"})}function UZ({state:Z,dispatch:J},$){let Q=V6(Z.selection,$);if(Q.eq(Z.selection,!0))return!1;return J(WZ(Z,Q)),!0}function A7(Z,J){return $0.cursor(J?Z.to:Z.from)}function TK(Z,J){return UZ(Z,($)=>$.empty?Z.moveByChar($,J):A7($,J))}function A9(Z){return Z.textDirectionAt(Z.state.selection.main.head)==Q9.LTR}var jK=(Z)=>TK(Z,!A9(Z)),DK=(Z)=>TK(Z,A9(Z));function SK(Z,J){return UZ(Z,($)=>$.empty?Z.moveByGroup($,J):A7($,J))}var cB=(Z)=>SK(Z,!A9(Z)),dB=(Z)=>SK(Z,A9(Z));var qy=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function lB(Z,J,$){if(J.type.prop($))return!0;let Q=J.to-J.from;return Q&&(Q>2||/[^\s,.;:]/.test(Z.sliceDoc(J.from,J.to)))||J.firstChild}function L7(Z,J,$){let Q=vZ(Z).resolveInner(J.head),X=$?E0.closedBy:E0.openedBy;for(let q=J.head;;){let W=$?Q.childAfter(q):Q.childBefore(q);if(!W)break;if(lB(Z,W,X))Q=W;else q=$?W.to:W.from}let z=Q.type.prop(X),K,Y;if(z&&(K=$?f8(Z,Q.from,1):f8(Z,Q.to,-1))&&K.matched)Y=$?K.end.to:K.end.from;else Y=$?Q.to:Q.from;return $0.cursor(Y,$?-1:1)}var aB=(Z)=>UZ(Z,(J)=>L7(Z.state,J,!A9(Z))),iB=(Z)=>UZ(Z,(J)=>L7(Z.state,J,A9(Z)));function bK(Z,J){return UZ(Z,($)=>{if(!$.empty)return A7($,J);let Q=Z.moveVertically($,J);return Q.head!=$.head?Q:Z.moveToLineBoundary($,J)})}var EK=(Z)=>bK(Z,!1),wK=(Z)=>bK(Z,!0);function xK(Z){let J=Z.scrollDOM.clientHeight<Z.scrollDOM.scrollHeight-2,$=0,Q=0,X;if(J){for(let z of Z.state.facet(O0.scrollMargins)){let K=z(Z);if(K===null||K===void 0?void 0:K.top)$=Math.max(K===null||K===void 0?void 0:K.top,$);if(K===null||K===void 0?void 0:K.bottom)Q=Math.max(K===null||K===void 0?void 0:K.bottom,Q)}X=Z.scrollDOM.clientHeight-$-Q}else X=(Z.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:$,marginBottom:Q,selfScroll:J,height:Math.max(Z.defaultLineHeight,X-5)}}function vK(Z,J){let $=xK(Z),{state:Q}=Z,X=V6(Q.selection,(K)=>{return K.empty?Z.moveVertically(K,J,$.height):A7(K,J)});if(X.eq(Q.selection))return!1;let z;if($.selfScroll){let K=Z.coordsAtPos(Q.selection.main.head),Y=Z.scrollDOM.getBoundingClientRect(),q=Y.top+$.marginTop,W=Y.bottom-$.marginBottom;if(K&&K.top>q&&K.bottom<W)z=O0.scrollIntoView(X.main.head,{y:"start",yMargin:K.top-q})}return Z.dispatch(WZ(Q,X),{effects:z}),!0}var FK=(Z)=>vK(Z,!1),_$=(Z)=>vK(Z,!0);function G8(Z,J,$){let Q=Z.lineBlockAt(J.head),X=Z.moveToLineBoundary(J,$);if(X.head==J.head&&X.head!=($?Q.to:Q.from))X=Z.moveToLineBoundary(J,$,!1);if(!$&&X.head==Q.from&&Q.length){let z=/^\s*/.exec(Z.state.sliceDoc(Q.from,Math.min(Q.from+100,Q.to)))[0].length;if(z&&J.head!=Q.from+z)X=$0.cursor(Q.from+z)}return X}var nB=(Z)=>UZ(Z,(J)=>G8(Z,J,!0)),sB=(Z)=>UZ(Z,(J)=>G8(Z,J,!1)),rB=(Z)=>UZ(Z,(J)=>G8(Z,J,!A9(Z))),oB=(Z)=>UZ(Z,(J)=>G8(Z,J,A9(Z))),tB=(Z)=>UZ(Z,(J)=>$0.cursor(Z.lineBlockAt(J.head).from,1)),eB=(Z)=>UZ(Z,(J)=>$0.cursor(Z.lineBlockAt(J.head).to,-1));function Z_(Z,J,$){let Q=!1,X=V6(Z.selection,(z)=>{let K=f8(Z,z.head,-1)||f8(Z,z.head,1)||z.head>0&&f8(Z,z.head-1,1)||z.head<Z.doc.length&&f8(Z,z.head+1,-1);if(!K||!K.end)return z;Q=!0;let Y=K.start.from==z.head?K.end.to:K.end.from;return $?$0.range(z.anchor,Y):$0.cursor(Y)});if(!Q)return!1;return J(WZ(Z,X)),!0}var J_=({state:Z,dispatch:J})=>Z_(Z,J,!1);function i9(Z,J,$){let Q=V6(Z.state.selection,(X)=>{if(X.undirectional&&X.head>=X.anchor!=J)X=$0.range(X.head,X.anchor);let z=$(X);return $0.range(X.anchor,z.head,z.goalColumn,z.bidiLevel||void 0,z.assoc)});if(Q.eq(Z.state.selection))return!1;return Z.dispatch(WZ(Z.state,Q)),!0}function hK(Z,J){return i9(Z,J,($)=>Z.moveByChar($,J))}var fK=(Z)=>hK(Z,!A9(Z)),gK=(Z)=>hK(Z,A9(Z));function mK(Z,J){return i9(Z,J,($)=>Z.moveByGroup($,J))}var $_=(Z)=>mK(Z,!A9(Z)),Q_=(Z)=>mK(Z,A9(Z));var X_=(Z)=>{let J=!A9(Z);return i9(Z,J,($)=>L7(Z.state,$,J))},z_=(Z)=>{let J=A9(Z);return i9(Z,J,($)=>L7(Z.state,$,J))};function uK(Z,J){return i9(Z,J,($)=>Z.moveVertically($,J))}var pK=(Z)=>uK(Z,!1),cK=(Z)=>uK(Z,!0);function dK(Z,J){return i9(Z,J,($)=>Z.moveVertically($,J,xK(Z).height))}var OK=(Z)=>dK(Z,!1),NK=(Z)=>dK(Z,!0),K_=(Z)=>i9(Z,!0,(J)=>G8(Z,J,!0)),Y_=(Z)=>i9(Z,!1,(J)=>G8(Z,J,!1)),G_=(Z)=>{let J=!A9(Z);return i9(Z,J,($)=>G8(Z,$,J))},q_=(Z)=>{let J=A9(Z);return i9(Z,J,($)=>G8(Z,$,J))},W_=(Z)=>i9(Z,!1,(J)=>$0.cursor(Z.lineBlockAt(J.head).from)),U_=(Z)=>i9(Z,!0,(J)=>$0.cursor(Z.lineBlockAt(J.head).to)),BK=({state:Z,dispatch:J})=>{return J(WZ(Z,{anchor:0})),!0},_K=({state:Z,dispatch:J})=>{return J(WZ(Z,{anchor:Z.doc.length})),!0},AK=({state:Z,dispatch:J})=>{return J(WZ(Z,{anchor:Z.selection.main.anchor,head:0})),!0},LK=({state:Z,dispatch:J})=>{return J(WZ(Z,{anchor:Z.selection.main.anchor,head:Z.doc.length})),!0},H_=({state:Z,dispatch:J})=>{return J(Z.update({selection:{anchor:0,head:Z.doc.length},userEvent:"select"})),!0},F_=({state:Z,dispatch:J})=>{let $=P7(Z).map(({from:Q,to:X})=>$0.range(Q,Math.min(X+1,Z.doc.length)));return J(Z.update({selection:$0.create($),userEvent:"select"})),!0},O_=({state:Z,dispatch:J})=>{let $=V6(Z.selection,(Q)=>{let X=vZ(Z),z=X.resolveStack(Q.from,1);if(Q.empty){let K=X.resolveStack(Q.from,-1);if(K.node.from>=z.node.from&&K.node.to<=z.node.to)z=K}for(let K=z;K;K=K.next){let{node:Y}=K;if((Y.from<Q.from&&Y.to>=Q.to||Y.to>Q.to&&Y.from<=Q.from)&&K.next)return $0.range(Y.to,Y.from)}return Q});if($.eq(Z.selection))return!1;return J(WZ(Z,$)),!0};function lK(Z,J){let{state:$}=Z,Q=$.selection,X=$.selection.ranges.slice();for(let z of $.selection.ranges){let K=$.doc.lineAt(z.head);if(J?K.to<Z.state.doc.length:K.from>0)for(let Y=z;;){let q=Z.moveVertically(Y,J);if(q.head<K.from||q.head>K.to){if(!X.some((W)=>W.head==q.head))X.push(q);break}else if(q.head==Y.head)break;else Y=q}}if(X.length==Q.ranges.length)return!1;return Z.dispatch(WZ($,$0.create(X,X.length-1))),!0}var N_=(Z)=>lK(Z,!1),B_=(Z)=>lK(Z,!0),__=({state:Z,dispatch:J})=>{let $=Z.selection,Q=null;if($.ranges.length>1)Q=$0.create([$.main]);else if(!$.main.empty)Q=$0.create([$0.cursor($.main.head)]);if(!Q)return!1;return J(WZ(Z,Q)),!0};function b5(Z,J){if(Z.state.readOnly)return!1;let $="delete.selection",{state:Q}=Z,X=Q.changeByRange((z)=>{let{from:K,to:Y}=z;if(K==Y){let q=J(z);if(q<K)$="delete.backward",q=N7(Z,q,!1);else if(q>K)$="delete.forward",q=N7(Z,q,!0);K=Math.min(K,q),Y=Math.max(Y,q)}else K=N7(Z,K,!1),Y=N7(Z,Y,!0);return K==Y?{range:z}:{changes:{from:K,to:Y},range:$0.cursor(K,K<z.head?-1:1)}});if(X.changes.empty)return!1;return Z.dispatch(Q.update(X,{scrollIntoView:!0,userEvent:$,effects:$=="delete.selection"?O0.announce.of(Q.phrase("Selection deleted")):void 0})),!0}function N7(Z,J,$){if(Z instanceof O0)for(let Q of Z.state.facet(O0.atomicRanges).map((X)=>X(Z)))Q.between(J,J,(X,z)=>{if(X<J&&z>J)J=$?z:X});return J}var aK=(Z,J,$)=>b5(Z,(Q)=>{let X=Q.from,{state:z}=Z,K=z.doc.lineAt(X),Y,q;if($&&!J&&X>K.from&&X<K.from+200&&!/[^ \t]/.test(Y=K.text.slice(0,X-K.from))){if(Y[Y.length-1]=="\t")return X-1;let W=D8(Y,z.tabSize),U=W%T5(z)||T5(z);for(let H=0;H<U&&Y[Y.length-1-H]==" ";H++)X--;q=X}else if(q=U9(K.text,X-K.from,J,J)+K.from,q==X&&K.number!=(J?z.doc.lines:1))q+=J?1:-1;else if(!J&&/[\ufe00-\ufe0f]/.test(K.text.slice(q-K.from,X-K.from)))q=U9(K.text,q-K.from,!1,!1)+K.from;return q}),A$=(Z)=>aK(Z,!1,!0);var iK=(Z)=>aK(Z,!0,!1),nK=(Z,J)=>b5(Z,($)=>{let Q=$.head,{state:X}=Z,z=X.doc.lineAt(Q),K=X.charCategorizer(Q);for(let Y=null;;){if(Q==(J?z.to:z.from)){if(Q==$.head&&z.number!=(J?X.doc.lines:1))Q+=J?1:-1;break}let q=U9(z.text,Q-z.from,J)+z.from,W=z.text.slice(Math.min(Q,q)-z.from,Math.max(Q,q)-z.from),U=K(W);if(Y!=null&&U!=Y)break;if(W!=" "||Q!=$.head)Y=U;Q=q}return Q}),sK=(Z)=>nK(Z,!1),A_=(Z)=>nK(Z,!0);var L_=(Z)=>b5(Z,(J)=>{let $=Z.lineBlockAt(J.head).to;return J.head<$?$:Math.min(Z.state.doc.length,J.head+1)});var P_=(Z)=>b5(Z,(J)=>{let $=Z.moveToLineBoundary(J,!1).head;return J.head>$?$:Math.max(0,J.head-1)}),M_=(Z)=>b5(Z,(J)=>{let $=Z.moveToLineBoundary(J,!0).head;return J.head<$?$:Math.min(Z.state.doc.length,J.head+1)});var I_=({state:Z,dispatch:J})=>{if(Z.readOnly)return!1;let $=Z.changeByRange((Q)=>{return{changes:{from:Q.from,to:Q.to,insert:v0.of(["",""])},range:$0.cursor(Q.from)}});return J(Z.update($,{scrollIntoView:!0,userEvent:"input"})),!0},R_=({state:Z,dispatch:J})=>{if(Z.readOnly)return!1;let $=Z.changeByRange((Q)=>{if(!Q.empty||Q.from==0||Q.from==Z.doc.length)return{range:Q};let X=Q.from,z=Z.doc.lineAt(X),K=X==z.from?X-1:U9(z.text,X-z.from,!1)+z.from,Y=X==z.to?X+1:U9(z.text,X-z.from,!0)+z.from;return{changes:{from:K,to:Y,insert:Z.doc.slice(X,Y).append(Z.doc.slice(K,X))},range:$0.cursor(Y)}});if($.changes.empty)return!1;return J(Z.update($,{scrollIntoView:!0,userEvent:"move.character"})),!0};function P7(Z){let J=[],$=-1;for(let Q of Z.selection.ranges){let X=Z.doc.lineAt(Q.from),z=Z.doc.lineAt(Q.to);if(!Q.empty&&Q.to==z.from)z=Z.doc.lineAt(Q.to-1);if($>=X.number){let K=J[J.length-1];K.to=z.to,K.ranges.push(Q)}else J.push({from:X.from,to:z.to,ranges:[Q]});$=z.number+1}return J}function rK(Z,J,$){if(Z.readOnly)return!1;let Q=[],X=[];for(let z of P7(Z)){if($?z.to==Z.doc.length:z.from==0)continue;let K=Z.doc.lineAt($?z.to+1:z.from-1),Y=K.length+1;if($){Q.push({from:z.to,to:K.to},{from:z.from,insert:K.text+Z.lineBreak});for(let q of z.ranges)X.push($0.range(Math.min(Z.doc.length,q.anchor+Y),Math.min(Z.doc.length,q.head+Y)))}else{Q.push({from:K.from,to:z.from},{from:z.to,insert:Z.lineBreak+K.text});for(let q of z.ranges)X.push($0.range(q.anchor-Y,q.head-Y))}}if(!Q.length)return!1;return J(Z.update({changes:Q,scrollIntoView:!0,selection:$0.create(X,Z.selection.mainIndex),userEvent:"move.line"})),!0}var C_=({state:Z,dispatch:J})=>rK(Z,J,!1),V_=({state:Z,dispatch:J})=>rK(Z,J,!0);function oK(Z,J,$){if(Z.readOnly)return!1;let Q=[];for(let z of P7(Z))if($)Q.push({from:z.from,insert:Z.doc.slice(z.from,z.to)+Z.lineBreak});else Q.push({from:z.to,insert:Z.lineBreak+Z.doc.slice(z.from,z.to)});let X=Z.changes(Q);return J(Z.update({changes:X,selection:Z.selection.map(X,$?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var y_=({state:Z,dispatch:J})=>oK(Z,J,!1),k_=({state:Z,dispatch:J})=>oK(Z,J,!0),T_=(Z)=>{if(Z.state.readOnly)return!1;let{state:J}=Z,$=J.changes(P7(J).map(({from:X,to:z})=>{if(X>0)X--;else if(z<J.doc.length)z++;return{from:X,to:z}})),Q=V6(J.selection,(X)=>{let z=void 0;if(Z.lineWrapping){let K=Z.lineBlockAt(X.head),Y=Z.coordsAtPos(X.head,X.assoc||1);if(Y)z=K.bottom+Z.documentTop-Y.bottom+Z.defaultLineHeight/2}return Z.moveVertically(X,!0,z)}).map($);return Z.dispatch({changes:$,selection:Q,scrollIntoView:!0,userEvent:"delete.line"}),!0};function j_(Z,J){if(/\(\)|\[\]|\{\}/.test(Z.sliceDoc(J-1,J+1)))return{from:J,to:J};let $=vZ(Z).resolveInner(J),Q=$.childBefore(J),X=$.childAfter(J),z;if(Q&&X&&Q.to<=J&&X.from>=J&&(z=Q.type.prop(E0.closedBy))&&z.indexOf(X.name)>-1&&Z.doc.lineAt(Q.to).from==Z.doc.lineAt(X.from).from&&!/\S/.test(Z.sliceDoc(Q.to,X.from)))return{from:Q.to,to:X.from};return null}var PK=tK(!1),D_=tK(!0);function tK(Z){return({state:J,dispatch:$})=>{if(J.readOnly)return!1;let Q=J.changeByRange((X)=>{let{from:z,to:K}=X,Y=J.doc.lineAt(z),q=!Z&&z==K&&j_(J,z);if(Z)z=K=(K<=Y.to?Y:J.doc.lineAt(K)).to;let W=new R6(J,{simulateBreak:z,simulateDoubleBreak:!!q}),U=H$(W,z);if(U==null)U=D8(/^\s*/.exec(J.doc.lineAt(z).text)[0],J.tabSize);while(K<Y.to&&/\s/.test(Y.text[K-Y.from]))K++;if(q)({from:z,to:K}=q);else if(z>Y.from&&z<Y.from+100&&!/\S/.test(Y.text.slice(0,z)))z=Y.from;let H=["",j5(J,U)];if(q)H.push(j5(J,W.lineIndent(Y.from,-1)));return{changes:{from:z,to:K,insert:v0.of(H)},range:$0.cursor(z+1+H[1].length)}});return $(J.update(Q,{scrollIntoView:!0,userEvent:"input"})),!0}}function M$(Z,J){let $=-1;return Z.changeByRange((Q)=>{let X=[];for(let K=Q.from;K<=Q.to;){let Y=Z.doc.lineAt(K);if(Y.number>$&&(Q.empty||Q.to>Y.from))J(Y,X,Q),$=Y.number;K=Y.to+1}let z=Z.changes(X);return{changes:X,range:$0.range(z.mapPos(Q.anchor,1),z.mapPos(Q.head,1))}})}var S_=({state:Z,dispatch:J})=>{if(Z.readOnly)return!1;let $=Object.create(null),Q=new R6(Z,{overrideIndentation:(z)=>{let K=$[z];return K==null?-1:K}}),X=M$(Z,(z,K,Y)=>{let q=H$(Q,z.from);if(q==null)return;if(!/\S/.test(z.text))q=0;let W=/^\s*/.exec(z.text)[0],U=j5(Z,q);if(W!=U||Y.from<z.from+W.length)$[z.from]=q,K.push({from:z.from,to:z.from+W.length,insert:U})});if(!X.changes.empty)J(Z.update(X,{userEvent:"indent"}));return!0},eK=({state:Z,dispatch:J})=>{if(Z.readOnly)return!1;return J(Z.update(M$(Z,($,Q)=>{Q.push({from:$.from,insert:Z.facet(O7)})}),{userEvent:"input.indent"})),!0},ZY=({state:Z,dispatch:J})=>{if(Z.readOnly)return!1;return J(Z.update(M$(Z,($,Q)=>{let X=/^\s*/.exec($.text)[0];if(!X)return;let z=D8(X,Z.tabSize),K=0,Y=j5(Z,Math.max(0,z-T5(Z)));while(K<X.length&&K<Y.length&&X.charCodeAt(K)==Y.charCodeAt(K))K++;Q.push({from:$.from+K,to:$.from+X.length,insert:Y.slice(K)})}),{userEvent:"delete.dedent"})),!0},b_=(Z)=>{return Z.setTabFocusMode(),!0};var E_=[{key:"Ctrl-b",run:jK,shift:fK,preventDefault:!0},{key:"Ctrl-f",run:DK,shift:gK},{key:"Ctrl-p",run:EK,shift:pK},{key:"Ctrl-n",run:wK,shift:cK},{key:"Ctrl-a",run:tB,shift:W_},{key:"Ctrl-e",run:eB,shift:U_},{key:"Ctrl-d",run:iK},{key:"Ctrl-h",run:A$},{key:"Ctrl-k",run:L_},{key:"Ctrl-Alt-h",run:sK},{key:"Ctrl-o",run:I_},{key:"Ctrl-t",run:R_},{key:"Ctrl-v",run:_$}],w_=[{key:"ArrowLeft",run:jK,shift:fK,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cB,shift:$_,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:rB,shift:G_,preventDefault:!0},{key:"ArrowRight",run:DK,shift:gK,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:dB,shift:Q_,preventDefault:!0},{mac:"Cmd-ArrowRight",run:oB,shift:q_,preventDefault:!0},{key:"ArrowUp",run:EK,shift:pK,preventDefault:!0},{mac:"Cmd-ArrowUp",run:BK,shift:AK},{mac:"Ctrl-ArrowUp",run:FK,shift:OK},{key:"ArrowDown",run:wK,shift:cK,preventDefault:!0},{mac:"Cmd-ArrowDown",run:_K,shift:LK},{mac:"Ctrl-ArrowDown",run:_$,shift:NK},{key:"PageUp",run:FK,shift:OK},{key:"PageDown",run:_$,shift:NK},{key:"Home",run:sB,shift:Y_,preventDefault:!0},{key:"Mod-Home",run:BK,shift:AK},{key:"End",run:nB,shift:K_,preventDefault:!0},{key:"Mod-End",run:_K,shift:LK},{key:"Enter",run:PK,shift:PK},{key:"Mod-a",run:H_},{key:"Backspace",run:A$,shift:A$,preventDefault:!0},{key:"Delete",run:iK,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:sK,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:A_,preventDefault:!0},{mac:"Mod-Backspace",run:P_,preventDefault:!0},{mac:"Mod-Delete",run:M_,preventDefault:!0}].concat(E_.map((Z)=>({mac:Z.key,run:Z.run,shift:Z.shift}))),JY=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:aB,shift:X_},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:iB,shift:z_},{key:"Alt-ArrowUp",run:C_},{key:"Shift-Alt-ArrowUp",run:y_},{key:"Alt-ArrowDown",run:V_},{key:"Shift-Alt-ArrowDown",run:k_},{key:"Mod-Alt-ArrowUp",run:N_},{key:"Mod-Alt-ArrowDown",run:B_},{key:"Escape",run:__},{key:"Mod-Enter",run:D_},{key:"Alt-l",mac:"Ctrl-l",run:F_},{key:"Mod-i",run:O_,preventDefault:!0},{key:"Mod-[",run:ZY},{key:"Mod-]",run:eK},{key:"Mod-Alt-\\",run:S_},{key:"Shift-Mod-k",run:T_},{key:"Shift-Mod-\\",run:J_},{key:"Mod-/",run:yB},{key:"Alt-A",run:TB},{key:"Ctrl-m",mac:"Shift-Alt-m",run:b_}].concat(w_),$Y={key:"Tab",run:eK,shift:ZY};var q8="mh-html",r0={fenceOpen:/^\s*(`{3,}|~{3,})\s*([^\s`]*)?.*$/,h:/^(#{1,6})\s+(.*)$/,todo:/^\s*[-*+]\s+\[([ xX])\][ \t](.*)$/,bullet:/^\s*[-*+]\s+(.*)$/,numbered:/^\s*(\d+)[.)]\s+(.*)$/,quote:/^>[ \t](.*)$/,divider:/^\s*(?:-{3,}|\*{3,}|_{3,})\s*$/};function W8(Z,J={}){let $=Z.replace(/[\u0000-\u0020]+/g,""),Q=/^([a-z][a-z0-9+.-]*):/i.exec($);if(!Q)return Z;let X=Q[1].toLowerCase();if(X==="http"||X==="https"||X==="mailto"||X==="blob")return Z;if(X==="data"&&J.allowData)return Z;return"#"}var x_=new Set(["mp4","webm","mov","m4v","ogv","mkv","ogg"]),v_=new Set(["mp3","wav","m4a","aac","flac","opus","oga","weba"]);function h_(Z){let J=Z.split(/[?#]/,1)[0]??Z,$=J.slice(J.lastIndexOf("/")+1),Q=$.lastIndexOf(".");return Q>=0?$.slice(Q+1).toLowerCase():""}function f_(Z){if(x_.has(Z))return"video";if(v_.has(Z))return"audio";return"image"}function g_(Z){let J=Z.indexOf("#"),$=J>=0?Z.slice(J):"",Q=J>=0?Z.slice(0,J):Z,X=Q.indexOf("?");if(X<0)return{src:Z};let z=Q.slice(0,X),K,Y=[];for(let q of Q.slice(X+1).split("&").filter(Boolean)){let W=q.match(/^w=(\d+)$/);if(W)K=parseInt(W[1],10);else Y.push(q)}return{src:z+(Y.length?"?"+Y.join("&"):"")+$,width:K}}function E5(Z){let J=Z.trim(),$=J.match(/^!\[([^\]]*)\]\(([^\s)]+)\)$/);if($){let{src:Q,width:X}=g_($[2]),z=f_(h_(Q)),K={kind:z,src:Q,name:$[1]};if(z==="image"&&X)K.width=X;return K}if($=J.match(/^\[([^\]]*)\]\(([^\s)]+)(?:\s+"([^"]*)")?\)$/),$&&$[2].startsWith("/blob/")){let Q={kind:"file",src:$[2],name:$[1]};if($[3]!=null&&/^\d+$/.test($[3]))Q.size=parseInt($[3],10);return Q}return null}function HZ(Z){let J=Z.match(r0.quote);return J?J[1]:null}function g8(Z,J){let $=w9(Z);if($<J)return null;let Q=y9(Z,$),X=Q.match(/^[-*+]\s+\[([ xX])\][ \t](.*)$/);if(X)return{indent:$,type:"todo",checked:X[1].toLowerCase()==="x",content:X[2]};if(X=Q.match(/^(\d+)[.)][ \t]+(.*)$/),X)return{indent:$,type:"numbered",content:X[2],num:parseInt(X[1],10)};if(X=Q.match(/^[-*+][ \t]+(.*)$/),X)return{indent:$,type:"bullet",content:X[1]};return null}function w9(Z){let J=0;for(let $ of Z)if($===" ")J++;else if($==="\t")J+=4;else break;return J}function y9(Z,J){let $=0,Q=0;for(;Q<Z.length&&$<J;Q++){let X=Z[Q];if(X===" ")$++;else if(X==="\t")$+=4;else break}return Z.slice(Q)}function hZ(Z,J,$){let Q=Z.trim();if(!Q||Q[0]!==J)return!1;for(let X of Q)if(X!==J)return!1;return Q.length>=$}function fZ(Z){return Z.trim().replace(/[^A-Za-z0-9_+.#-]/g,"")}var m_=/^\s*:?-+:?\s*$/;function m8(Z,J,$){let Q=Z[J],X=Z[J+1];if(Q==null||X==null)return!1;if(w9(Q)<$||w9(X)<$)return!1;let z=y9(Q,$),K=y9(X,$);if(!z.includes("|")||!K.includes("|"))return!1;let Y=gZ(K);return Y.length>0&&Y.every((q)=>m_.test(q))}function gZ(Z){let J=[],$="";for(let Q=0;Q<Z.length;Q++){let X=Z[Q];if(X==="\\"&&Z[Q+1]==="|"){$+="|",Q++;continue}if(X==="|"){J.push($),$="";continue}$+=X}if(J.push($),J.length&&J[0].trim()==="")J.shift();if(J.length&&J[J.length-1].trim()==="")J.pop();return J.map((Q)=>Q.trim())}function C$(Z){let J=(Z||"").toLowerCase();if(J.startsWith("image/"))return"image";if(J.startsWith("video/"))return"video";if(J.startsWith("audio/"))return"audio";return"file"}function u_(Z){let J=Z.src??"";if(Z.type!=="image"||!Z.width||Z.width<=0)return J;return J+(J.includes("?")?"&":"?")+"w="+Math.round(Z.width)}function QY(Z){return Z.replace(/[[\]()]/g,"").trim()}function V$(Z){let J=E5(Z);if(!J)return null;let $={type:J.kind,content:"",src:J.src,name:J.name};if(J.width!=null)$.width=J.width;if(J.size!=null)$.size=J.size;return $}function zY(Z){return Z==="image"||Z==="video"||Z==="audio"||Z==="file"}var p_=0;function KY(){return`blk_${Date.now().toString(36)}_${(p_++).toString(36)}`}var c_=new Set(["bullet","numbered","todo"]),d_=new Set(["h1","h2","h3","h4","h5","h6"]);function y6(Z){return c_.has(Z)}function y$(Z){return d_.has(Z)}function l_(){return[["",""],["",""]]}function a_(Z,J,$){if(Z.type=J,Z.content=$.content??"",J==="todo")Z.checked=$.checked??!1;else delete Z.checked;if(J==="code")Z.lang=$.lang??"";else delete Z.lang;if(J==="numbered"&&$.start!=null&&$.start>1)Z.start=$.start;else delete Z.start;if(J==="table")Z.rows=$.rows?$.rows.map((Q)=>[...Q]):l_(),Z.align=$.align?[...$.align]:Array(Z.rows[0].length).fill(null);else delete Z.rows,delete Z.align;if(!y6(J)&&$.indent&&$.indent>0)Z.indent=$.indent;else delete Z.indent;if(zY(J)||J==="uploading"){if(Z.src=$.src??"",$.name!=null)Z.name=$.name;else delete Z.name;if(J==="image"&&$.width)Z.width=$.width;else delete Z.width;if(J==="file"&&$.size!=null)Z.size=$.size;else delete Z.size}else delete Z.src,delete Z.name,delete Z.width,delete Z.size}function k$(Z,J={}){let $={id:KY(),type:Z,content:""};if(a_($,Z,J),y6(Z)&&J.children?.length)$.children=J.children;return $}function YY(Z){let J=Z.split(`
|
|
48
|
+
`,1)[0]??"",$=J.match(r0.fenceOpen);if($){let X=Z.split(`
|
|
49
|
+
`);if(r0.fenceOpen.test(X[0]))X.shift();if(X.length&&hZ(X[X.length-1],$[1][0],$[1].length))X.pop();let z=fZ($[2]??"");if(z===q8)return{type:"html",content:X.join(`
|
|
50
|
+
`)};return{type:"code",content:X.join(`
|
|
51
|
+
`),lang:z}}if(r0.divider.test(Z.trim())&&!Z.includes(`
|
|
52
|
+
`))return{type:"divider",content:""};if(!Z.includes(`
|
|
53
|
+
`)){let X=V$(Z);if(X)return X}let Q;if(Q=J.match(r0.h))return{type:`h${Q[1].length}`,content:Q[2]};if(Q=J.match(r0.todo))return{type:"todo",content:Q[2],checked:Q[1].toLowerCase()==="x"};if(Q=J.match(r0.numbered))return{type:"numbered",content:Q[2],start:parseInt(Q[1],10)};if(Q=J.match(r0.bullet))return{type:"bullet",content:Q[1]};if(HZ(J)!==null)return{type:"quote",content:Z.split(`
|
|
54
|
+
`).map((z)=>HZ(z.replace(/^\s*/,""))??z).join(`
|
|
55
|
+
`)};return{type:"p",content:Z}}function u8(Z){return WY(Z,0,1).join(`
|
|
56
|
+
`)}function I$(Z){return Z.type==="p"&&Z.content.trim()===""&&!Z.children?.length}function i_(Z){let J=new Map,$=null;for(let Q of Z)if(Q.type==="numbered")$=$===null?Math.max(1,Q.start??1):$+1,J.set(Q.id,$);else $=null;return J}function n_(Z,J,$){let Q=i_(Z.filter((Y)=>!I$(Y))),X=[],z=null,K=0;for(let Y of Z){if(I$(Y)){if(X.length)K++;continue}if(!UY(Y))continue;if(X.length){let q=JA(z,Y)||K>0?1:0;for(let W=0;W<q+K;W++)X.push("")}X.push(...WY(Y,J,Q.get(Y.id)??1)),z=Y,K=0}if(X.length&&K>0)for(let Y=0;Y<K+($?1:0);Y++)X.push("");return X}function GY(Z,J){if(J===" "){let Q=Z.match(/^(#{1,6}) $/);if(Q)return{type:`h${Q[1].length}`,content:""};if(Z==="> ")return{type:"quote",content:""};if(/^[-*+] $/.test(Z))return{type:"bullet",content:""};let X=Z.match(/^(\d+)[.)] $/);if(X)return{type:"numbered",content:"",start:parseInt(X[1],10)};let z=Z.match(/^[-*+]\s+\[([ xX])\]\s*$/);if(z)return{type:"todo",content:"",checked:z[1].toLowerCase()==="x"};return null}let $=Z.match(/^```([A-Za-z0-9_+.#-]*)$/);if($)return{type:"code",content:"",lang:fZ($[1]??"")};return null}function s_(Z){let J=Z.trim(),$=J.startsWith(":"),Q=J.endsWith(":");if($&&Q)return"center";if(Q)return"right";if($)return"left";return null}function R$(Z,J){let $=Z.slice(0,J);while($.length<J)$.push("");return $}function qY(Z,J,$){if(!m8(Z,J,$))return null;let Q=gZ(y9(Z[J],$)),X=Math.max(1,Q.length),z=gZ(y9(Z[J+1],$)).map(s_),K=[R$(Q,X)],Y=J+2;for(;Y<Z.length;Y++){let q=Z[Y];if(q.trim()===""||w9(q)<$)break;let W=y9(q,$);if(!W.includes("|"))break;K.push(R$(gZ(W),X))}while(z.length<X)z.push(null);return z.length=X,{block:{id:KY(),type:"table",content:"",rows:K,align:z},next:Y}}function r_(Z){switch(Z){case"left":return":---";case"center":return":---:";case"right":return"---:";default:return"---"}}function o_(Z,J){let $=" ".repeat(J),Q=Z.rows??[],X=Math.max(1,...Q.map((U)=>U.length)),z=Z.align??[],K=(U)=>U.replace(/\|/g,"\\|").replace(/\n/g," "),Y=(U)=>`${$}| ${R$(U,X).map(K).join(" | ")} |`,q=`${$}| ${Array.from({length:X},(U,H)=>r_(z[H]??null)).join(" | ")} |`,W=Q[0]??Array.from({length:X},()=>"");return[Y(W),q,...Q.slice(1).map(Y)]}var t_=/^\\*(?:`{3,}|~{3,})/;function e_(Z){return t_.test(Z)?`\\${Z}`:Z}function XY(Z){let J=0;for(let $ of Z.match(/`+/g)??[])J=Math.max(J,$.length);return"`".repeat(Math.max(3,J+1))}function WY(Z,J,$){J+=2*(Z.indent??0);let Q=" ".repeat(J);if(y$(Z.type))return[`${Q}${"#".repeat(Number(Z.type.slice(1)))} ${Z.content}`];switch(Z.type){case"bullet":case"numbered":case"todo":return ZA(Z,J,$);case"quote":return Z.content.split(`
|
|
57
|
+
`).map((X)=>`${Q}> ${X}`);case"code":{let X=XY(Z.content),z=`${Q}${X}${Z.lang?fZ(Z.lang):""}`,K=Z.content.split(`
|
|
58
|
+
`).map((Y)=>`${Q}${Y}`);return[z,...K,`${Q}${X}`]}case"table":return o_(Z,J);case"divider":return[`${Q}---`];case"image":case"video":case"audio":return[`${Q}})`];case"file":{let X=Z.size!=null?` "${Z.size}"`:"";return[`${Q}[${QY(Z.name??"文件")}](${Z.src??""}${X})`]}case"html":{let X=XY(Z.content),z=`${Q}${X}${q8}`,K=Z.content.split(`
|
|
59
|
+
`).map((Y)=>`${Q}${Y}`);return[z,...K,`${Q}${X}`]}case"uploading":return[];default:return Z.content.split(`
|
|
60
|
+
`).map((X)=>`${Q}${e_(X)}`)}}function ZA(Z,J,$){let Q=" ".repeat(J),X=Z.type==="numbered"?`${$}. `:Z.type==="todo"?`- [${Z.checked?"x":" "}] `:"- ",z=[`${Q}${X}${Z.content}`],K=Z.children??[],Y=K.find((q)=>!I$(q)&&UY(q));if(Y){if(!y6(Y.type)&&Z.content.trim()!=="")z.push("");z.push(...n_(K,J+2,!1))}return z}function JA(Z,J){if(!Z)return!1;return!(y6(Z.type)&&y6(J.type))}function UY(Z){if(Z.type==="divider")return!0;if(y6(Z.type))return!0;if(Z.type==="code")return Z.content.trim()!==""||!!Z.lang?.trim();if(Z.type==="table")return(Z.rows??[]).some((J)=>J.some(($)=>$.trim()!==""));if(Z.type==="uploading")return!1;if(zY(Z.type))return!!Z.src;if(Z.type==="html")return Z.content.trim()!=="";return Z.content.trim()!==""}var T$=[{id:"",label:"纯文本"},{id:"bash",label:"Bash"},{id:"shell",label:"Shell"},{id:"javascript",label:"JavaScript"},{id:"typescript",label:"TypeScript"},{id:"json",label:"JSON"},{id:"python",label:"Python"},{id:"go",label:"Go"},{id:"rust",label:"Rust"},{id:"java",label:"Java"},{id:"c",label:"C"},{id:"cpp",label:"C++"},{id:"csharp",label:"C#"},{id:"sql",label:"SQL"},{id:"yaml",label:"YAML"},{id:"xml",label:"HTML / XML"},{id:"css",label:"CSS"},{id:"scss",label:"SCSS"},{id:"markdown",label:"Markdown"},{id:"php",label:"PHP"},{id:"ruby",label:"Ruby"},{id:"swift",label:"Swift"},{id:"kotlin",label:"Kotlin"},{id:"objectivec",label:"Objective-C"},{id:"perl",label:"Perl"},{id:"lua",label:"Lua"},{id:"makefile",label:"Makefile"},{id:"ini",label:"INI / TOML"},{id:"diff",label:"Diff"}],w5=[{type:"p",ic:"text",t:"文本",d:"普通段落"},{type:"h1",ic:"heading",t:"标题 1",d:"大号标题"},{type:"h2",ic:"heading",t:"标题 2",d:"中号标题"},{type:"h3",ic:"heading",t:"标题 3",d:"小号标题"},{type:"bullet",ic:"list",t:"无序列表",d:"项目符号"},{type:"numbered",ic:"numList",t:"有序列表",d:"编号列表"},{type:"todo",ic:"checkbox",t:"待办清单",d:"复选项"},{type:"quote",ic:"quote",t:"引用",d:"引用块"},{type:"code",ic:"code",t:"代码",d:"代码块"},{type:"table",ic:"table",t:"表格",d:"插入表格"},{type:"divider",ic:"minus",t:"分隔线",d:"水平分隔"},{type:"image",ic:"image",t:"图片",d:"上传或拖入图片"},{type:"video",ic:"video",t:"视频",d:"上传视频文件"},{type:"audio",ic:"audio",t:"音频",d:"上传音频文件"},{type:"file",ic:"file",t:"文件",d:"上传任意文件"},{type:"html",ic:"htmlTag",t:"HTML",d:"嵌入并渲染 HTML"}];function RZ(Z){return Z==="bullet"||Z==="numbered"||Z==="todo"}function FY(Z){let J=0;while(J<Z.length&&(Z[J]===" "||Z[J]==="\t"))J++;return J}var p8=8;function k6(Z){let J=Math.min(Z.level,p8)*2,$=0,Q=0;while(Q<Z.indentChars&&$<J)$+=Z.text[Q]==="\t"?4:1,Q++;return Q}function OY(Z,J){let $=FY(Z),Q=w9(Z),X=J+$,z=J+Z.length,K=Z.slice($),Y={number:0,from:J,to:z,text:Z,indent:Q,indentChars:$,level:Math.floor(Q/2),markerFrom:X};if(K==="")return{...Y,role:"blank",contentFrom:X};if(r0.divider.test(K))return{...Y,role:"divider",contentFrom:X};let q=K.match(r0.h);if(q){let H=q[2]??"";return{...Y,role:`h${q[1].length}`,contentFrom:z-H.length}}let W=g8(Z,0);if(W){let H=z-W.content.length;if(W.type==="todo")return{...Y,role:"todo",contentFrom:H,checked:!!W.checked};if(W.type==="numbered"){let F=K.match(/^\d+/)?.[0].length??String(W.num??1).length;return{...Y,role:"numbered",contentFrom:H,num:W.num,numChars:F}}return{...Y,role:"bullet",contentFrom:H}}let U=HZ(K);if(U!==null)return{...Y,role:"quote",contentFrom:z-U.length};return{...Y,role:"p",contentFrom:X}}function j$(Z,J,$,Q){let X=w9(Q),z=FY(Q);return{number:Z,from:J,to:$,text:Q,role:"void",indent:X,indentChars:z,level:Math.floor(X/2),markerFrom:J,contentFrom:J}}function NY(Z,J,$,Q,X){let z=[],K=[],Y=J;while(Y<=$){let q=Z(Y),W=q.text,U=w9(W),H=y9(W,U),F=H.match(r0.fenceOpen);if(F){let _=F[1][0],A=F[1].length,L=-1;for(let B=Y+1;B<=Q;B++)if(hZ(y9(Z(B).text,U),_,A)){L=B;break}if(L>=0){let B=[];for(let P=Y;P<=L;P++)B.push(Z(P).text);let M=YY(B.join(`
|
|
61
|
+
`)),C=k$(M.type,M),I=fZ(F[2]??"")===q8||M.type==="html"?"html":"code";K.push({from:q.from,to:Z(L).to,fromLine:Y,toLine:L,kind:I,block:C});for(let P=Y;P<=L;P++){let V=Z(P);z.push(j$(P,V.from,V.to,V.text))}if(L>$)$=X(L);Y=L+1;continue}}if(Y<Q&&H.includes("|")){let _=[W,Z(Y+1).text];if(m8(_,0,U)){for(let L=Y+2;L<=Q;L++){let B=Z(L).text;if(B.trim()===""||!B.includes("|"))break;_.push(B)}let A=qY(_,0,U);if(A){let L=Y+A.next-1;K.push({from:q.from,to:Z(L).to,fromLine:Y,toLine:L,kind:"table",block:A.block});for(let B=Y;B<=L;B++){let M=Z(B);z.push(j$(B,M.from,M.to,M.text))}if(L>$)$=X(L);Y=L+1;continue}}}let O=V$(H);if(O){let _=k$(O.type,O);K.push({from:q.from,to:q.to,fromLine:Y,toLine:Y,kind:O.type,block:_}),z.push(j$(Y,q.from,q.to,W)),Y++;continue}let N=OY(W,q.from);N.number=Y,z.push(N),Y++}return{lines:z,voids:K,end:$}}function BY(Z){let J=[];for(let $ of Z){let Q=$.role;if(Q.length===2&&Q.charCodeAt(0)===104)J.push({from:$.from,level:Q.charCodeAt(1)-48,text:$.text.slice($.contentFrom-$.from)})}return J}function _Y(Z){if(Z.role==="void")return!1;let J=Z.text.charCodeAt(Z.indentChars);return(J===96||J===126)&&r0.fenceOpen.test(Z.text)}function $A(Z){let J=[];for(let $ of Z)if(_Y($))J.push($.number);return J}function QA(Z,J){if(Z.length!==J.length)return!1;for(let $=0;$<Z.length;$++){let Q=Z[$],X=J[$];if(Q.from!==X.from||Q.level!==X.level||Q.text!==X.text)return!1}return!0}function I7(Z){let J=Z.split(`
|
|
62
|
+
`),$=Array(J.length);{let q=0;for(let W=0;W<J.length;W++)$[W]=q,q+=J[W].length+1}let X=NY((q)=>({from:$[q-1],to:$[q-1]+J[q-1].length,text:J[q-1]}),1,J.length,J.length,(q)=>q),z=X.lines.length===J.length,K=z?X.lines:zA(J,$),Y=z?X.voids:[];return{lines:K,voids:Y,headings:BY(K),proseFences:$A(K)}}var XA=0;function M7(Z){XA++;let J=[];for(let $=1;$<=Z.lineCount;$++)J.push(Z.line($).text);return I7(J.join(`
|
|
63
|
+
`))}function HY(Z,J){let $=0,Q=Z.length-1;while($<Q){let X=$+Q+1>>1;if(Z[X].from<=J)$=X;else Q=X-1}return $+1}function AY(Z,J,$){if(J.length===0)return Z;let Q=Z.lines,X=Q.length;if(X===0)return M7($);let z=Q[X-1].to,K=$.lineCount-X,Y=$.length-z,q=J[0].fromA,W=J[J.length-1].toA;for(let I of Z.voids)if(I.from<=W&&I.to>=q){if(I.from<q)q=I.from;if(I.to>W)W=I.to}if(q<0||W>z)return M7($);let U=HY(Q,q),H=HY(Q,W)+K;if(H<U||H>$.lineCount)return M7($);let F=(I)=>{let P=I;for(let V=Z.voids.length-1;V>=0;V--){let y=Z.voids[V];if(y.fromLine<P&&y.toLine>=P)P=y.fromLine}return P},O=(I)=>{let P=I;for(let V of Z.voids){let y=V.fromLine+K,k=V.toLine+K;if(y<=P&&k>P)P=k}return P},N=()=>{for(;;){let I=F(U);while(I>1&&$.line(I-1).text.includes("|"))I--;if(I=F(I),I===U)return;U=I}};N();for(;;){let I=O(H);while(I<$.lineCount&&$.line(I+1).text.includes("|"))I++;if(I=O(I),I===H)break;H=I}let _=!1;for(let I=U;I<=H;I++)if(r0.fenceOpen.test($.line(I).text)){_=!0;break}if(_&&Z.proseFences.length&&Z.proseFences[0]<U)U=Z.proseFences[0],N();let A=NY((I)=>$.line(I),U,H,$.lineCount,O);H=A.end;let L=H-K,B=Q.slice(0,U-1);for(let I of A.lines)B.push(I);for(let I=L;I<X;I++){let P=Q[I];B.push({...P,number:P.number+K,from:P.from+Y,to:P.to+Y,markerFrom:P.markerFrom+Y,contentFrom:P.contentFrom+Y})}if(B.length!==$.lineCount||B[B.length-1].to!==$.length)return M7($);let M=[];for(let I of Z.voids){if(I.toLine>=U)break;M.push(I)}for(let I of A.voids)M.push(I);for(let I of Z.voids)if(I.fromLine>L)M.push({...I,from:I.from+Y,to:I.to+Y,fromLine:I.fromLine+K,toLine:I.toLine+K});let C=[];for(let I of Z.proseFences){if(I>=U)break;C.push(I)}for(let I of A.lines)if(_Y(I))C.push(I.number);for(let I of Z.proseFences)if(I>L)C.push(I+K);let R=BY(B);return{lines:B,voids:M,headings:QA(R,Z.headings)?Z.headings:R,proseFences:C}}function zA(Z,J){return Z.map(($,Q)=>{let X=OY($,J[Q]);return X.number=Q+1,X})}function R7(Z,J,$){for(let Q=J-2;Q>=0;Q--){let X=Z[Q];if(!X||X.role==="blank")continue;if(X.level>$)continue;if(X.level<$)return 1;return X.role==="numbered"?(X.num??0)+1:1}return 1}function mZ(Z,J){for(let $ of Z.voids)if(J>=$.from&&J<=$.to)return $;return null}function C7(Z,J){let $=Z[J-1].level,Q=(K)=>!!K&&K.role==="quote"&&K.level===$,X=J,z=J;while(Q(Z[X-2]))X--;while(Q(Z[z]))z++;return{fromLine:X,toLine:z}}function LY(Z,J){for(let $ of Z.voids)if(J>$.from&&J<$.to)return $;return null}function KA(Z,J){let $=[];J.changes.iterChanges((X,z,K,Y)=>$.push({fromA:X,toA:z,fromB:K,toB:Y}));let Q=J.newDoc;return AY(Z,$,{lineCount:Q.lines,length:Q.length,line:(X)=>Q.line(X)})}var D$=t0.define({create:(Z)=>I7(Z.doc.toString()),update:(Z,J)=>J.docChanged?KA(Z,J):Z});function I0(Z){return Z.field(D$)}function c8(Z){Z.preventDefault(),Z.stopPropagation()}function V7(Z){return Z.isComposing||Z.keyCode===229}function y7(Z,J,$=0){if(Z===J)return null;let Q=Math.min(Z.length,J.length),X=0;while(X<Q&&Z.charCodeAt(X)===J.charCodeAt(X))X++;let z=0;while(z<Q-X&&Z.charCodeAt(Z.length-1-z)===J.charCodeAt(J.length-1-z))z++;return{from:$+X,to:$+Z.length-z,insert:J.slice(X,J.length-z)}}function YA(Z){if(Z==null||!isFinite(Z))return"";if(Z<1024)return`${Z} B`;if(Z<1048576)return`${(Z/1024).toFixed(0)} KB`;if(Z<1073741824)return`${(Z/1048576).toFixed(1)} MB`;return`${(Z/1073741824).toFixed(2)} GB`}function S$({icon:Z,name:J,onRetry:$}){return G("div",{class:"void-block void-unavailable",children:[G(g,{name:Z,cls:"ico"},void 0,!1,void 0,this),G("span",{class:"vu-meta",children:[G("span",{class:"vu-name",children:J||"媒体"},void 0,!1,void 0,this),G("span",{class:"vu-sub",children:"字节未同步到本设备或加载失败"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"vu-retry",onClick:$,onMouseDown:(Q)=>Q.stopPropagation(),children:[G(g,{name:"history",cls:"ico sm"},void 0,!1,void 0,this)," 重试"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function PY({block:Z,selected:J,onResize:$,onPreview:Q}){let X=G0(null),z=G0(null),[K,Y]=b(Z.width),q=G0(Z.width),[W,U]=b(!1),[H,F]=b(0);J0(()=>{Y(Z.width),q.current=Z.width},[Z.width]),J0(()=>U(!1),[Z.src]);let O=(N,_)=>{N.preventDefault(),N.stopPropagation();let A=z.current;if(!A)return;let L=N.clientX,B=A.offsetWidth,M=X.current?.closest(".doc")?.clientWidth??1200,C=(I)=>{let P=I.clientX-L,V=Math.max(60,Math.min(_==="r"?B+P:B-P,M));q.current=Math.round(V),Y(q.current)},R=()=>{window.removeEventListener("mousemove",C),window.removeEventListener("mouseup",R),$(q.current)};window.addEventListener("mousemove",C),window.addEventListener("mouseup",R)};if(W)return G(S$,{icon:"image",name:Z.name,onRetry:()=>{F((N)=>N+1),U(!1)}},void 0,!1,void 0,this);return G("div",{ref:X,class:"void-block void-image"+(J?" selected":""),style:{width:K?`${K}px`:void 0},onDblClick:Q,children:[G("img",{ref:z,src:Z.src,alt:Z.name??"",loading:"lazy",draggable:!1,title:"双击预览 / 标注",onError:()=>U(!0)},H,!1,void 0,this),G("button",{class:"void-expand",title:"预览",onClick:Q,onMouseDown:(N)=>N.stopPropagation(),children:G(g,{name:"maximize",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),J&&G(t,{children:[G("span",{class:"img-handle h-l",onMouseDown:(N)=>O(N,"l")},void 0,!1,void 0,this),G("span",{class:"img-handle h-r",onMouseDown:(N)=>O(N,"r")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function MY({block:Z}){let[J,$]=b(!1),[Q,X]=b(0);if(J0(()=>$(!1),[Z.src]),J)return G(S$,{icon:"video",name:Z.name,onRetry:()=>{X((z)=>z+1),$(!1)}},void 0,!1,void 0,this);return G("div",{class:"void-block void-media void-video",children:G("video",{src:Z.src,controls:!0,preload:"metadata",onError:()=>$(!0)},Q,!1,void 0,this)},void 0,!1,void 0,this)}function IY({block:Z}){let[J,$]=b(!1),[Q,X]=b(0);if(J0(()=>$(!1),[Z.src]),J)return G(S$,{icon:"audio",name:Z.name,onRetry:()=>{X((z)=>z+1),$(!1)}},void 0,!1,void 0,this);return G("div",{class:"void-block void-media void-audio",children:[Z.name&&G("div",{class:"void-audio-name",children:Z.name},void 0,!1,void 0,this),G("audio",{src:Z.src,controls:!0,preload:"metadata",onError:()=>$(!0)},Q,!1,void 0,this)]},void 0,!0,void 0,this)}function RY({block:Z}){let J=Z.name||"文件",$=J.includes(".")?J.slice(J.lastIndexOf(".")+1).toUpperCase():"";return G("a",{class:"void-block void-file",href:Z.src,download:J,target:"_blank",rel:"noreferrer",onMouseDown:(Q)=>Q.stopPropagation(),children:[G("span",{class:"file-glyph",children:[G(g,{name:"file",cls:"ico"},void 0,!1,void 0,this),$&&G("span",{class:"file-ext",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("span",{class:"file-meta",children:[G("span",{class:"file-name",children:J},void 0,!1,void 0,this),G("span",{class:"file-sub",children:YA(Z.size)||"下载文件"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("span",{class:"file-dl",children:G(g,{name:"download",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var wq=i3(Eq(),1);var u$=wq.default;var NP={json:"json",jsonc:"core",json5:"core",javascript:"core",js:"core",jsx:"core",mjs:"core",cjs:"core",typescript:"core",ts:"core",tsx:"core",css:"core",scss:"core",less:"core",xml:"core",html:"core",yaml:"core",yml:"core",php:"core",sql:"core",python:"ruff",py:"ruff",python3:"ruff",go:"gofmt",golang:"gofmt",c:"clang",h:"clang",cpp:"clang","c++":"clang",cc:"clang",hpp:"clang",csharp:"clang",cs:"clang",java:"clang",objectivec:"clang",objc:"clang","objective-c":"clang",protobuf:"clang",proto:"clang",lua:"lua",ini:"taplo",toml:"taplo",bash:"sh",shell:"sh",sh:"sh",zsh:"sh",rust:"reindent",rs:"reindent",swift:"reindent",kotlin:"reindent",kt:"reindent",perl:"reindent",pl:"reindent"};function p$(Z){if(!Z)return null;return NP[Z.trim().toLowerCase()]??null}function v7(Z){return p$(Z)!==null}var BP=[{id:"core",js:"/webui-fmt.js",entry:"fmt/fmt-core.ts"},{id:"ruff",js:"/webui-fmt-ruff.js",entry:"fmt/fmt-ruff.ts",wasm:{route:"/webui-fmt-ruff.wasm",pkg:"@wasm-fmt/ruff_fmt",file:"ruff_fmt_bg.wasm"}},{id:"gofmt",js:"/webui-fmt-gofmt.js",entry:"fmt/fmt-gofmt.ts",wasm:{route:"/webui-fmt-gofmt.wasm",pkg:"@wasm-fmt/gofmt",file:"gofmt.wasm"}},{id:"clang",js:"/webui-fmt-clang.js",entry:"fmt/fmt-clang.ts",wasm:{route:"/webui-fmt-clang.wasm",pkg:"@wasm-fmt/clang-format",file:"clang-format.wasm"}},{id:"lua",js:"/webui-fmt-lua.js",entry:"fmt/fmt-lua.ts",wasm:{route:"/webui-fmt-lua.wasm",pkg:"@wasm-fmt/lua_fmt",file:"lua_fmt_bg.wasm"}},{id:"taplo",js:"/webui-fmt-taplo.js",entry:"fmt/fmt-taplo.ts",wasm:{route:"/webui-fmt-taplo.wasm",pkg:"@wasm-fmt/taplo_fmt",file:"taplo_fmt_bg.wasm"}},{id:"sh",js:"/webui-fmt-sh.js",entry:"fmt/fmt-sh.ts"}];function xq(Z){return BP.find((J)=>J.id===Z)}var c$=new Map;function vq(Z){let J=c$.get(Z);if(!J){let $=xq(Z)?.js;if(!$)return Promise.reject(Error(`unknown format provider: ${Z}`));J=import($).catch((Q)=>{throw c$.delete(Z),Error(`格式化组件加载失败(离线?):${Q?.message??Q}`)}),c$.set(Z,J)}return J}var hq=" ";function fq(Z,J){return J<=0?0:Z.lastIndexOf(`
|
|
64
|
+
`,J-1)+1}function gq(Z,J,$,Q){if(!Q&&!Z.slice(J,$).includes(`
|
|
65
|
+
`)){let _=J+2;return{from:J,to:$,insert:" ",selStart:_,selEnd:_}}let X=fq(Z,J),z=$>J&&Z[$-1]===`
|
|
66
|
+
`?$-1:$,K=Z.indexOf(`
|
|
67
|
+
`,z);if(K===-1)K=Z.length;let Y=Z.slice(X,K).split(`
|
|
68
|
+
`);if(!Q){let _=Y.map((B)=>B===""?B:" "+B),A=_.reduce((B,M,C)=>B+(M.length-Y[C].length),0),L=_[0].length-Y[0].length;return{from:X,to:K,insert:_.join(`
|
|
69
|
+
`),selStart:J+L,selEnd:$+A}}let q=Y.map((_)=>_.replace(/^ {1,2}/,"")),W=Y.reduce((_,A,L)=>_+(A.length-q[L].length),0);if(W===0)return null;let U=Y[0].length-q[0].length,H=Y[Y.length-1].length-q[q.length-1].length,F=K-Y[Y.length-1].length,O=Math.max(X,J-U),N=Math.max(O,Math.max(F-(W-H),$-W));return{from:X,to:K,insert:q.join(`
|
|
70
|
+
`),selStart:O,selEnd:N}}function mq(Z,J,$){let Q=Z.slice(fq(Z,J),J),X=/^[ \t]*/.exec(Q)[0],z=/[({[:]$/.test(Q.trimEnd())?" ":"",K=`
|
|
71
|
+
`+X+z,Y=J+K.length;return{from:J,to:$,insert:K,selStart:Y,selEnd:Y}}function uq(Z,J,$){if(J===Z)return null;let Q=Math.max(0,Math.min($,J.length));return{from:0,to:Z.length,insert:J,selStart:Q,selEnd:Q}}function f5(Z,J){Z.setRangeText(J.insert,J.from,J.to),Z.setSelectionRange(J.selStart,J.selEnd),Z.dispatchEvent(new Event("input",{bubbles:!0}))}var _P={line:["//"],block:[["/*","*/"]],quotes:['"',"'","`"]},pq={line:["#"],block:[],quotes:['"',"'","`"]},AP={perl:pq,pl:pq},LP="{[(",dq=")]}";function cq(Z,J,$){let Q=0,X=0;while(X<Z.length){let z=Z[X];if(J.quote){if(z==="\\"){X+=2;continue}if(z===J.quote)J.quote=null;X++;continue}if(J.blockClose){if(Z.startsWith(J.blockClose,X)){X+=J.blockClose.length,J.blockClose=null;continue}X++;continue}if($.quotes.includes(z)){J.quote=z,X++;continue}let K=$.block.find(([Y])=>Z.startsWith(Y,X));if(K){J.blockClose=K[1],X+=K[0].length;continue}if($.line.some((Y)=>Z.startsWith(Y,X)))break;if(LP.includes(z))Q++;else if(dq.includes(z))Q--;X++}if(J.quote&&J.quote!=="`")J.quote=null;return Q}function lq(Z,J){let $=AP[J?.trim().toLowerCase()??""]??_P,Q={quote:null,blockClose:null},X=0,z=(q)=>{X=Math.max(0,X+Math.min(q,1))},Y=Z.split(`
|
|
72
|
+
`).map((q)=>{if(Q.quote||Q.blockClose)return z(cq(q,Q,$)),q;let W=q.replace(/^[ \t]+/,"");if(W==="")return"";let U=0;while(U<W.length&&dq.includes(W[U]))U++;let H=hq.repeat(Math.max(0,X-U));return z(cq(W,Q,$)),H+W}).join(`
|
|
73
|
+
`);return Y===Z?null:Y}function PP(Z){let J="",$=!1;for(let Q=0;Q<Z.length;Q++){let X=Z[Q];if($){if(J+=X,X==="\\")J+=Z[Q+1]??"",Q++;else if(X==='"')$=!1;continue}if(X==='"'){$=!0,J+=X;continue}if(X===","){let z=Q+1;while(z<Z.length&&/\s/.test(Z[z]))z++;if(Z[z]==="}"||Z[z]==="]")continue}J+=X}return J}function MP(Z){let J;try{J=JSON.parse(PP(Z))}catch($){throw Error(`JSON 解析失败:${$.message}`)}return JSON.stringify(J,null,2)}function IP(Z,J,$){let Q=Z.split(`
|
|
74
|
+
`),X=J.split(`
|
|
75
|
+
`);if(Q.length!==X.length)return Math.min($,J.length);let z=0,K=0;for(let O=0;z<Q.length-1;z++){let N=O+Q[z].length+1;if($<N)break;O=N,K=N}let Y=Q[z],q=X[z],W=/^[ \t]*/.exec(Y)[0].length,U=/^[ \t]*/.exec(q)[0].length,H=Math.max(0,$-K-W),F=0;for(let O=0;O<z;O++)F+=X[O].length+1;return F+Math.min(U+H,q.length)}async function aq(Z,J,$){let Q=p$(J);if(!Q)return null;let X,z=null;if(Q==="json")X=MP(Z);else if(Q==="reindent"){let Y=lq(Z,J);if(Y==null)return null;X=Y,z=IP(Z,Y,$)}else{let q=await(await vq(Q)).format(Z,J.trim().toLowerCase(),$);X=q.text,z=q.cursor}if(!Z.endsWith(`
|
|
76
|
+
`))X=X.replace(/\n$/,"");if(X===Z)return null;let K=Math.max(0,Math.min(z??$,X.length));return{text:X,cursor:K}}var RP=[{kind:"code",re:/(?<!\\)`([^`\n]+)`/g,delim:1,rank:0},{kind:"image",re:/(?<!\\)!\[([^\]\n]*)\]\(([^)\s]+)\)/g,delim:0,rank:1},{kind:"strong",re:/(?<!\\)\*\*([^*\n]+?)(?<!\\)\*\*/g,delim:2,rank:2},{kind:"strong",re:/(?<!\\)__([^_\n]+?)(?<!\\)__/g,delim:2,rank:2},{kind:"del",re:/(?<!\\)~~([^~\n]+?)(?<!\\)~~/g,delim:2,rank:3},{kind:"em",re:/(?<![*\w])(?<!\\)\*([^*\n]+?)(?<!\\)\*(?!\*)/g,delim:1,rank:4},{kind:"em",re:/(?<![_\w])(?<!\\)_([^_\n]+?)(?<!\\)_(?!_)/g,delim:1,rank:4},{kind:"link",re:/(?<!\\)\[([^\]\n]+)\]\(([^)\s]+)\)/g,delim:0,rank:5}];function uZ(Z){if(!Z)return[];let J=[];for(let X of RP){X.re.lastIndex=0;let z;while(z=X.re.exec(Z)){let K=z.index,Y=K+z[0].length,q,W,U,H;if(X.kind==="link")q=K+1,W=K+1+z[1].length,U=z[2];else if(X.kind==="image")q=K+2,W=K+2+z[1].length,U=z[2],H=z[1];else if(q=K+X.delim,W=Y-X.delim,W<=q)continue;J.push({kind:X.kind,start:K,end:Y,innerFrom:q,innerTo:W,url:U,alt:H,rank:X.rank})}}J.sort((X,z)=>X.start-z.start||X.rank-z.rank||z.end-X.end);let $=[],Q=0;for(let X of J){if(X.start<Q)continue;Q=X.end,$.push({kind:X.kind,start:X.start,end:X.end,innerFrom:X.innerFrom,innerTo:X.innerTo,...X.url!==void 0?{url:X.url}:{},...X.alt!==void 0?{alt:X.alt}:{}})}return $}function b6(Z){let J=Z;for(let $=0;$<8;$++){let Q=uZ(J);if(!Q.length)break;let X="",z=0;for(let K of Q)X+=J.slice(z,K.start),X+=K.kind==="image"?K.alt??"":J.slice(K.innerFrom,K.innerTo),z=K.end;if(X+=J.slice(z),X===J)break;J=X}return J}function g9(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function iq(Z){return g9(Z).replace(/\n/g,"<br>")}function nq(Z){let J="",$=0;for(let Q of uZ(Z)){J+=iq(Z.slice($,Q.start)),$=Q.end;let X=Z.slice(Q.innerFrom,Q.innerTo);switch(Q.kind){case"code":J+=`<code>${g9(X)}</code>`;break;case"image":{J+=`<img src="${g9(Q.url)}" alt="${g9(Q.alt??"")}" class="doc-img" loading="lazy">`;break}case"link":J+=`<a href="${g9(Q.url)}" target="_blank" rel="noreferrer">${g9(X)}</a>`;break;case"strong":J+=`<strong>${g9(X)}</strong>`;break;case"em":J+=`<em>${g9(X)}</em>`;break;case"del":J+=`<del>${g9(X)}</del>`;break}}return J+=iq(Z.slice($)),J}function h7(Z){let J=document.createElement("div");return J.innerHTML=Z,sq(J).replace(/\n{3,}/g,`
|
|
77
|
+
|
|
78
|
+
`).replace(/\n$/,"")}function sq(Z){let J="";return Z.childNodes.forEach(($)=>{if($.nodeType===Node.TEXT_NODE){J+=($.textContent??"").replace(/\u00a0/g," ");return}if(!($ instanceof HTMLElement))return;let Q=$.tagName.toLowerCase();if(Q==="img"){let z=$.getAttribute("src")||"";J+=z?``:"";return}let X=sq($);if(Q==="br")J+=`
|
|
79
|
+
`;else if(Q==="strong"||Q==="b")J+=X?`**${X}**`:"";else if(Q==="em"||Q==="i")J+=X?`*${X}*`:"";else if(Q==="del"||Q==="s"||Q==="strike")J+=X?`~~${X}~~`:"";else if(Q==="code")J+=X?"`"+X+"`":"";else if(Q==="a"){let z=$.getAttribute("href")||"";J+=z?`[${X}](${z})`:X}else if(Q==="div"||Q==="p")J+=(J&&!J.endsWith(`
|
|
80
|
+
`)?`
|
|
81
|
+
`:"")+X;else J+=X}),J}function CP(Z,J){try{if(J&&u$.getLanguage(J))return u$.highlight(Z,{language:J,ignoreIllegals:!0}).value;return g9(Z)}catch{return g9(Z)}}function VP(Z,J){let $=document.createElement("div");$.innerHTML=CP(Z,J);let Q=[],X=[],z="",K=(Y)=>{if(Y.nodeType===Node.TEXT_NODE){let q=(Y.nodeValue??"").split(`
|
|
82
|
+
`);for(let W=0;W<q.length;W++){if(W>0)Q.push(z+"</span>".repeat(X.length)),z=X.join("");z+=g9(q[W])}}else if(Y.nodeType===Node.ELEMENT_NODE){let q=`<span class="${Y.className}">`;z+=q,X.push(q),Y.childNodes.forEach(K),X.pop(),z+="</span>"}};return $.childNodes.forEach(K),Q.push(z),Q}var oq="mh:code-wrap",d$="mh-code-wrap-change";function rq(){try{return localStorage.getItem(oq)==="1"}catch{return!1}}function yP(Z){try{localStorage.setItem(oq,Z?"1":"0")}catch{}document.dispatchEvent(new Event(d$))}function tq(){let[Z,J]=b(rq);return J0(()=>{let $=()=>J(rq());return document.addEventListener(d$,$),()=>document.removeEventListener(d$,$)},[]),Z}function kP({code:Z,lang:J,onInput:$,onKeyDown:Q,taRef:X,placeholder:z,onCompositionStart:K,onCompositionEnd:Y}){let q=tq(),W=G0(null),U=G0(null),H=G0(null),F=G0(null),O=G0(null),N=G0(-1),_=(B)=>{if(W.current=B,X)X.current=B},A=(B)=>{if(!U.current)return;let M=VP(B,J);if(U.current.innerHTML=M.map((C)=>`<div class="code-hl-line">${C}</div>`).join(""),M.length!==N.current){if(N.current=M.length,F.current?.style.setProperty("--code-ln-ch",`${String(M.length).length}ch`),H.current){let C="1";for(let R=2;R<=M.length;R++)C+=`
|
|
83
|
+
`+R;H.current.textContent=C}}},L=(B)=>{if(typeof requestAnimationFrame>"u")A(B);else{if(O.current!=null)cancelAnimationFrame(O.current);O.current=requestAnimationFrame(()=>{O.current=null,A(B)})}let M=W.current;if(M)M.style.height="auto",M.style.height=M.scrollHeight+"px"};return J0(()=>{let B=W.current;if(B&&B.value!==Z)B.value=Z;L(W.current?.value??Z)},[Z,J]),J0(()=>{let B=W.current;if(!B||typeof ResizeObserver>"u")return;let M=B.clientWidth,C=new ResizeObserver(()=>{if(B.clientWidth===M)return;M=B.clientWidth,B.style.height="auto",B.style.height=B.scrollHeight+"px"});return C.observe(B),()=>C.disconnect()},[]),J0(()=>{let B=W.current;if(!B)return;B.scrollLeft=0;let M=U.current?.parentElement;if(M)M.scrollLeft=0;B.style.height="auto",B.style.height=B.scrollHeight+"px"},[q]),J0(()=>()=>{if(O.current!=null)cancelAnimationFrame(O.current)},[]),G("div",{ref:F,class:"code-body"+(q?" wrap":""),children:[G("div",{ref:H,class:"code-gutter","aria-hidden":"true",children:"1"},void 0,!1,void 0,this),G("div",{class:"code-scroll",children:[G("pre",{class:"code-hl","aria-hidden":"true",children:G("code",{ref:U,class:"hljs"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("textarea",{ref:_,class:"code-input",rows:1,spellcheck:!1,wrap:q?"soft":"off",placeholder:z??"输入代码…",onInput:(B)=>{let M=B.currentTarget;L(M.value),$(M.value)},onKeyDown:Q?(B)=>Q(B):void 0,onCompositionStart:K?()=>K():void 0,onCompositionEnd:Y?(B)=>Y(B.currentTarget.value):void 0,onScroll:(B)=>{let M=U.current?.parentElement;if(M)M.scrollLeft=B.currentTarget.scrollLeft}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function eq({code:Z,lang:J,selected:$,onInput:Q,onLang:X,onKeyDown:z,taRef:K,onCompositionStart:Y,onCompositionEnd:q}){let W=tq(),[U,H]=b(!1),F=G0(null),O={get current(){return F.current},set current(P){if(F.current=P,K)K.current=P}},N=J??"",_=T$.some((P)=>P.id===N),[A,L]=b("idle"),B=G0(""),M=G0(void 0),C=(P)=>{L(P),clearTimeout(M.current),M.current=setTimeout(()=>L("idle"),P==="err"?2400:1400)};J0(()=>()=>clearTimeout(M.current),[]);let R=async()=>{let P=F.current;if(!P||A==="busy"||!v7(N))return;let V=P.value,y=P.selectionStart??V.length;L("busy");try{let k=await aq(V,N,y);if(F.current!==P||P.value!==V){L("idle");return}let j=k&&uq(V,k.text,k.cursor);if(j)f5(P,j);C("ok")}catch(k){B.current=String(k?.message??k).split(`
|
|
84
|
+
`)[0],C("err")}},I=(P)=>{if(!P.isComposing&&P.altKey&&P.shiftKey&&!P.metaKey&&!P.ctrlKey&&P.code==="KeyF"&&v7(N)){P.preventDefault(),R();return}z?.(P)};return G("div",{class:"codeblock"+($?" ci-selected":""),children:[G(kP,{code:Z,lang:N||void 0,onInput:Q,onKeyDown:I,taRef:O,onCompositionStart:Y,onCompositionEnd:q},void 0,!1,void 0,this),G("div",{class:"code-tools",children:[G("span",{class:"code-lang",children:[G("select",{value:N,onChange:(P)=>X(P.currentTarget.value),children:[!_&&G("option",{value:N,children:N||"纯文本"},void 0,!1,void 0,this),T$.map((P)=>G("option",{value:P.id,children:P.label},P.id,!1,void 0,this))]},void 0,!0,void 0,this),G(g,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"code-wrap-btn"+(W?" on":""),title:W?"关闭自动换行":"自动换行(所有代码块)","aria-pressed":W,onMouseDown:(P)=>P.preventDefault(),onClick:()=>yP(!W),children:[G(g,{name:"wrapText",cls:"ico sm"},void 0,!1,void 0,this),"换行"]},void 0,!0,void 0,this),v7(N)&&G("button",{class:"code-fmt"+(A==="ok"?" ok":A==="err"?" err":""),title:A==="err"?B.current:"格式化代码 (Shift+Alt+F)",onMouseDown:(P)=>P.preventDefault(),onClick:()=>void R(),children:[G(g,{name:A==="ok"?"check":"wand",cls:"ico sm"},void 0,!1,void 0,this),A==="busy"?"格式化中…":A==="ok"?"已格式化":A==="err"?"失败":"格式化"]},void 0,!0,void 0,this),G("button",{class:"code-copy"+(U?" ok":""),title:"复制代码",onClick:()=>{let P=F.current?.value??Z;navigator.clipboard?.writeText(P).then(()=>{H(!0),setTimeout(()=>H(!1),1400)}).catch(()=>{})},children:[G(g,{name:U?"check":"copy",cls:"ico sm"},void 0,!1,void 0,this),U?"已复制":"复制"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var E6=typeof matchMedia<"u"&&matchMedia("(hover: none)").matches;function l$(Z,J,$){let Q=Z.querySelector(`.doc-td[data-r="${J}"][data-c="${$}"]`);if(!Q)return!1;Q.focus();let X=document.createRange();X.selectNodeContents(Q),X.collapse(!1);let z=getSelection();return z?.removeAllRanges(),z?.addRange(X),!0}function ZW({block:Z,renderKey:J,onCellInput:$,onTableChange:Q,cellSel:X,onCellSel:z,onCellCompositionStart:K,onCellCompositionEnd:Y}){let q=Z.rows??[],W=q[0]?.length??0,U=Z.align??[],H=G0(null),F=X?SZ(X):null,O=G0([]),[N,_]=b(!1),A=G0(null);if(J0(()=>()=>A.current?.(),[]),N&&O.current.length!==W)O.current=Array.from({length:W},(d,i)=>O.current[i]??160);let L=()=>{Z.rows=[...q,Array(W).fill("")],Q()},B=()=>{Z.rows=q.map((d)=>[...d,""]),Z.align=[...U,null],Q()},M=(d)=>{Z.rows=q.map((K0)=>{let e=[...K0];return e.splice(d,0,""),e});let i=[...U];if(i.splice(d,0,null),Z.align=i,N)O.current.splice(d,0,160);Q()},C=(d)=>{if(W<=1)return;if(Z.rows=q.map((i)=>i.filter((K0,e)=>e!==d)),Z.align=U.filter((i,K0)=>K0!==d),N)O.current.splice(d,1);Q()},R=(d)=>{if(d===0||q.length<=2)return;Z.rows=q.filter((i,K0)=>K0!==d),Q()},I=(d)=>{if(d<1)return;let i=[...q];i.splice(d,0,Array(W).fill("")),Z.rows=i,Q()},P=(d)=>{let i=[...q];i.splice(d+1,0,[...q[d]??[]]),Z.rows=i,Q()},V=(d)=>{Z.rows=q.map((K0)=>{let e=[...K0];return e.splice(d+1,0,K0[d]??""),e});let i=Array.from({length:W},(K0,e)=>U[e]??null);if(i.splice(d+1,0,U[d]??null),Z.align=i,N)O.current.splice(d+1,0,O.current[d]??160);Q()},y=(d,i)=>{if(d<1||i<1||i>q.length||i===d||i===d+1)return;let K0=[...q],[e]=K0.splice(d,1);K0.splice(i>d?i-1:i,0,e),Z.rows=K0,Q()},k=(d,i)=>{if(i<0||i>W||i===d||i===d+1)return;let K0=i>d?i-1:i;Z.rows=q.map((_0)=>{let f=[..._0],[n]=f.splice(d,1);return f.splice(K0,0,n??""),f});let e=Array.from({length:W},(_0,f)=>U[f]??null),[P0]=e.splice(d,1);if(e.splice(K0,0,P0??null),Z.align=e,N){let _0=[...O.current],[f]=_0.splice(d,1);_0.splice(K0,0,f??160),O.current=_0}Q()},j=(d,i)=>{let K0=Array.from({length:W},(e,P0)=>U[P0]??null);K0[d]=i,Z.align=K0,Q()},w=(d,i)=>H.current?l$(H.current,d,i):!1,u=(d,i,K0)=>{if(d.isComposing||d.keyCode===229)return;if(d.key==="Tab"){if(d.preventDefault(),d.shiftKey){if(K0>0)w(i,K0-1);else if(i>0)w(i-1,W-1)}else if(K0<W-1)w(i,K0+1);else if(i<q.length-1)w(i+1,0);else L(),requestAnimationFrame(()=>w(q.length,0));return}if(d.key==="Enter"){if(d.preventDefault(),i<q.length-1)w(i+1,K0);else L(),requestAnimationFrame(()=>w(q.length,K0));return}},l=(d,i,K0)=>{if(d.target.closest("button,a,.doc-col-resizer"))return;let e=()=>{document.activeElement?.blur?.(),getSelection()?.removeAllRanges()};if(d.pointerType==="touch"){if(X)z(null);let{clientX:f,clientY:n,pointerId:z0}=d,Y0=!1,r=()=>{clearTimeout(W0),removeEventListener("pointermove",c),removeEventListener("pointerup",o),removeEventListener("pointercancel",o),A.current=null},c=(A0)=>{if(A0.pointerId!==z0||Y0)return;if(Math.hypot(A0.clientX-f,A0.clientY-n)>6)r()},o=(A0)=>{if(A0.pointerId!==z0)return;if(r(),!Y0)return;let D0=(FZ)=>{FZ.preventDefault(),FZ.stopPropagation(),y0()},y0=()=>removeEventListener("click",D0,!0);addEventListener("click",D0,!0),setTimeout(y0,400)},W0=setTimeout(()=>{Y0=!0,e(),z({a:{r:i,c:K0},b:{r:i,c:K0}})},350);addEventListener("pointermove",c),addEventListener("pointerup",o),addEventListener("pointercancel",o),A.current=r;return}if(d.button!==0)return;if(d.shiftKey&&X){d.preventDefault(),e();let f=X.a;z({a:f,b:{r:i,c:K0}}),u9(d,{onMove:(n)=>{let z0=document.elementFromPoint(n.clientX,n.clientY)?.closest?.(".doc-td");if(!z0||z0.dataset.r==null)return;z({a:f,b:{r:Number(z0.dataset.r),c:Number(z0.dataset.c)}})}});return}let P0={r:i,c:K0},_0=!1;if(u9(d,{onMove:(f)=>{let n=document.elementFromPoint(f.clientX,f.clientY)?.closest?.(".doc-td");if(!n||n.dataset.r==null)return;let z0=Number(n.dataset.r),Y0=Number(n.dataset.c);if(!_0){if(z0===P0.r&&Y0===P0.c)return;_0=!0,e(),document.body.classList.add("cell-selecting")}z({a:P0,b:{r:z0,c:Y0}})},onEnd:()=>document.body.classList.remove("cell-selecting")}),X)z(null)},v=(d)=>{if(!F)return;d.preventDefault(),d.stopPropagation();let i={r:F.r0,c:F.c0};document.activeElement?.blur?.(),getSelection()?.removeAllRanges(),u9(d,{threshold:0,onStart:()=>document.body.classList.add("cell-selecting"),onMove:(K0)=>{let e=document.elementFromPoint(K0.clientX,K0.clientY)?.closest?.(".doc-td");if(!e||e.dataset.r==null)return;z({a:i,b:{r:Number(e.dataset.r),c:Number(e.dataset.c)}})},onEnd:()=>document.body.classList.remove("cell-selecting")})},S=(d,i)=>{d.preventDefault(),d.stopPropagation();let K0=H.current;if(!K0)return;if(!N){let e=K0.tBodies[0]?.rows[0]?.cells;if(!e)return;O.current=Array.from({length:W},(P0,_0)=>e[_0]?.offsetWidth??160),K0.querySelectorAll("col[data-tcol]").forEach((P0,_0)=>{P0.style.width=(O.current[_0]??160)+"px"}),K0.classList.remove("autofit"),_(!0)}B4(d,{col:K0.querySelector(`col[data-tcol="${i}"]`),startWidth:O.current[i]??160,min:60,onDone:(e)=>{O.current[i]=e}})},D=(d,i)=>G(t,{children:[G(i0,{children:"对齐方式"},void 0,!1,void 0,this),G(q0,{icon:"alignLeft",label:"左对齐",checked:(U[d]??null)===null||U[d]==="left",onClick:()=>{j(d,"left"),i()}},void 0,!1,void 0,this),G(q0,{icon:"alignCenter",label:"居中",checked:U[d]==="center",onClick:()=>{j(d,"center"),i()}},void 0,!1,void 0,this),G(q0,{icon:"alignRight",label:"右对齐",checked:U[d]==="right",onClick:()=>{j(d,"right"),i()}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"plus",label:"在左侧插入列",onClick:()=>{M(d),i()}},void 0,!1,void 0,this),G(q0,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{M(d+1),i()}},void 0,!1,void 0,this),G(q0,{icon:"copy",label:"复制列",onClick:()=>{V(d),i()}},void 0,!1,void 0,this),E6&&d>0&&G(q0,{icon:"arrowLeft",label:"左移列",onClick:()=>{k(d,d-1),i()}},void 0,!1,void 0,this),E6&&d<W-1&&G(q0,{icon:"chevron",label:"右移列",onClick:()=>{k(d,d+2),i()}},void 0,!1,void 0,this),W>1&&G(q0,{icon:"trash",label:"删除列",danger:!0,onClick:()=>{C(d),i()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),x=(d,i)=>G(t,{children:[d>=1&&G(q0,{icon:"plus",label:"在上方插入行",onClick:()=>{I(d),i()}},void 0,!1,void 0,this),G(q0,{icon:"cornerUpRight",label:"在下方插入行",onClick:()=>{I(d+1),i()}},void 0,!1,void 0,this),d>0&&G(q0,{icon:"copy",label:"复制行",onClick:()=>{P(d),i()}},void 0,!1,void 0,this),E6&&d>1&&G(q0,{icon:"arrowUp",label:"上移行",onClick:()=>{y(d,d-1),i()}},void 0,!1,void 0,this),E6&&d>=1&&d<q.length-1&&G(q0,{icon:"chevronDown",label:"下移行",onClick:()=>{y(d,d+2),i()}},void 0,!1,void 0,this),d>0&&q.length>2&&G(q0,{icon:"trash",label:"删除行",danger:!0,onClick:()=>{R(d),i()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),T=G0(null),m=G0(null),[a,h]=b(null);J0(()=>h(null),[J]);let s=(d,i)=>{let K0=T.current,P0=H.current?.tBodies[0]?.rows[d],_0=P0?.cells[i];if(!K0||!P0||!_0)return null;let f=K0.getBoundingClientRect(),n=P0.getBoundingClientRect(),z0=_0.getBoundingClientRect(),Y0=Math.round(n.top-f.top+(n.height-28)/2),r=Math.round(z0.left+z0.width/2-f.left);return{r:d,c:i,rowTop:Y0,colX:r,colOn:r>=10&&r<=f.width-10}},E=(d,i)=>h((K0)=>{let e=s(d,i);return K0&&e&&K0.r===e.r&&K0.c===e.c&&K0.rowTop===e.rowTop&&K0.colX===e.colX&&K0.colOn===e.colOn?K0:e}),p=(d)=>{if(document.body.classList.contains("table-dragging"))return;let i=d.target.closest?.(".doc-td");if(!i||i.dataset.r==null||!T.current?.contains(i))return;E(Number(i.dataset.r),Number(i.dataset.c))};J0(()=>{if(!E6)return;let d=H.current;if(!d)return;let i=(e)=>{let P0=e.target.closest?.(".doc-td");if(P0?.dataset.r!=null)E(Number(P0.dataset.r),Number(P0.dataset.c))},K0=()=>{requestAnimationFrame(()=>{let e=document.activeElement;if(!d.contains(e)&&!e?.closest?.(".doc-row-handle,.doc-col-handle"))h(null)})};return d.addEventListener("focusin",i),d.addEventListener("focusout",K0),()=>{d.removeEventListener("focusin",i),d.removeEventListener("focusout",K0)}},[]);let[X0,F0]=b(null),j0=(d,i,K0)=>{if(d.button!==0&&d.pointerType==="mouse")return;d.preventDefault(),d.stopPropagation();let e=T.current,P0=m.current,_0=H.current;if(!e||!P0||!_0)return;let f=i==="row"?a?.rowTop??0:a?.colX??0,n=null;F0({kind:i,src:K0,on:!1,pos:f,outline:null,line:null}),u9(d,{onStart:()=>document.body.classList.add("table-dragging"),onMove:(z0)=>{let Y0=e.getBoundingClientRect(),r=P0.getBoundingClientRect(),c=_0.getBoundingClientRect(),o=_0.tBodies[0],W0,A0,D0=null;if(i==="row"){let y0=Array.from(o.rows),FZ=y0[K0].getBoundingClientRect();W0={left:c.left-r.left,top:FZ.top-r.top,width:c.width,height:FZ.height},A0=Math.round(Math.min(Math.max(z0.clientY,y0[1].getBoundingClientRect().top),c.bottom)-Y0.top-14);let dZ=q.length;for(let lZ=1;lZ<y0.length;lZ++){let _8=y0[lZ].getBoundingClientRect();if(z0.clientY<_8.top+_8.height/2){dZ=lZ;break}}if(n=dZ===K0||dZ===K0+1?null:dZ,n!=null){let lZ=n===q.length?y0[y0.length-1].getBoundingClientRect().bottom:y0[n].getBoundingClientRect().top;D0=Math.round(lZ-r.top)}}else{let y0=Array.from(o.rows[0].cells),FZ=y0[K0].getBoundingClientRect();W0={left:FZ.left-r.left,top:c.top-r.top,width:FZ.width,height:c.height};let dZ=Math.max(c.left,Y0.left),lZ=Math.min(c.right,Y0.right);A0=Math.round(Math.min(Math.max(z0.clientX,dZ+10),lZ-10)-Y0.left);let _8=W;for(let n8=0;n8<y0.length;n8++){let l3=y0[n8].getBoundingClientRect();if(z0.clientX<l3.left+l3.width/2){_8=n8;break}}if(n=_8===K0||_8===K0+1?null:_8,n!=null){let n8=n===W?y0[y0.length-1].getBoundingClientRect().right:y0[n].getBoundingClientRect().left;D0=Math.round(n8-r.left)}}F0({kind:i,src:K0,on:!0,pos:A0,outline:W0,line:D0})},onEnd:(z0,Y0)=>{if(document.body.classList.remove("table-dragging"),F0(null),!Y0){b0(d,(r)=>i==="row"?x(K0,r):D(K0,r));return}if(n!=null)(i==="row"?y:k)(K0,n)}})},C0=X0?X0.kind==="row"?X0.pos:null:a&&a.r>=1?a.rowTop:null,p0=X0?X0.kind==="col"?X0.pos:null:a&&a.colOn?a.colX:null,[,w0]=b(0),c0=(()=>{if(!E6||!F)return null;let d=T.current,i=H.current?.tBodies[0],K0=i?.rows[F.r0]?.cells[F.c0],e=i?.rows[F.r1]?.cells[F.c1];if(!d||!K0||!e)return null;let P0=d.getBoundingClientRect(),_0=K0.getBoundingClientRect(),f=e.getBoundingClientRect();return{left:Math.round(Math.min(Math.max((_0.left+f.right)/2-P0.left-66,4),P0.width-136)),top:Math.round(Math.max(_0.top-P0.top-38,-34))}})(),R0=()=>{let d=H.current;if(!d)return;d.classList.remove("copied"),d.offsetWidth,d.classList.add("copied"),setTimeout(()=>d.classList.remove("copied"),260)};return G("div",{class:"doc-table-wrap",ref:T,onMouseMove:p,onMouseLeave:()=>{if(!document.body.classList.contains("table-dragging"))h(null)},children:[C0!=null&&G("button",{class:"doc-row-handle"+(X0?.kind==="row"?" grab":""),style:{top:C0},title:"行选项",onPointerDown:(d)=>{if(X0==null&&a)j0(d,"row",a.r)},children:G(g,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),p0!=null&&G("button",{class:"doc-col-handle"+(X0?.kind==="col"?" grab":""),style:{left:p0},title:"列选项",onPointerDown:(d)=>{if(X0==null&&a)j0(d,"col",a.c)},children:G(g,{name:"gripH",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),c0&&F&&G("div",{class:"doc-sel-bar",style:{left:c0.left,top:c0.top},children:[G("button",{onClick:()=>{navigator.clipboard?.writeText(k4(q,F)).catch(()=>{}),R0()},children:"复制"},void 0,!1,void 0,this),G("button",{onClick:()=>{Z.rows=y4(q,F),Q(),z(null)},children:"清空"},void 0,!1,void 0,this),G("button",{onClick:()=>z(null),children:"✕"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"doc-table-scroll",onScroll:()=>{w0((d)=>d+1),h((d)=>d?s(d.r,d.c):d)},children:G("div",{class:"doc-table-inner",ref:m,children:[X0?.on&&X0.outline&&G(t,{children:[G("div",{class:"doc-drag-outline",style:{left:X0.outline.left,top:X0.outline.top,width:X0.outline.width,height:X0.outline.height}},void 0,!1,void 0,this),X0.line!=null&&(X0.kind==="row"?G("div",{class:"doc-rowdrop",style:{top:X0.line,left:X0.outline.left,width:X0.outline.width}},void 0,!1,void 0,this):G("div",{class:"doc-coldrop",style:{left:X0.line,top:X0.outline.top,height:X0.outline.height}},void 0,!1,void 0,this))]},void 0,!0,void 0,this),G("div",{class:"doc-table-row",children:[G("table",{ref:H,class:"doc-table"+(N?"":" autofit")+(F?" cells-active":""),children:[G("colgroup",{children:Array.from({length:W},(d,i)=>G("col",{"data-tcol":i,style:N?{width:O.current[i]}:void 0},i,!1,void 0,this))},void 0,!1,void 0,this),G("tbody",{children:q.map((d,i)=>G("tr",{children:d.map((K0,e)=>{let P0=F!=null&&C4(F,i,e),_0=F!=null&&i===F.r1&&e===F.c1;return G("td",{class:(i===0?"doc-th":"")+(P0?" cellsel":""),style:F?{boxShadow:V4(F,i,e)}:void 0,onPointerDown:(f)=>l(f,i,e),children:[G(TP,{value:K0,renderKey:J,r:i,c:e,align:U[e]??null,onInput:(f)=>$(i,e,f),onKeyDown:(f)=>u(f,i,e),onCompositionStart:K?()=>K(i,e):void 0,onCompositionEnd:Y?(f)=>Y(i,e,f):void 0},void 0,!1,void 0,this),_0&&G("div",{class:"doc-cell-handle",onPointerDown:(f)=>v(f)},void 0,!1,void 0,this),i===0&&G("div",{class:"doc-col-resizer",onPointerDown:(f)=>S(f,e)},void 0,!1,void 0,this)]},e,!0,void 0,this)})},i,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"doc-table-addcol",title:"新增列",onMouseDown:(d)=>{d.preventDefault(),B()},children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"doc-table-addrow",title:"新增行",onMouseDown:(d)=>{d.preventDefault(),L()},children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function TP({value:Z,renderKey:J,r:$,c:Q,align:X,onInput:z,onKeyDown:K,onCompositionStart:Y,onCompositionEnd:q}){let W=G0(null);return J0(()=>{let U=W.current;if(U){let H=nq(Z);if(U.innerHTML!==H&&h7(U.innerHTML)!==Z)U.innerHTML=H}},[J]),G("div",{ref:W,class:"doc-td","data-r":$,"data-c":Q,contentEditable:!0,"data-ph":$===0?"表头":"",style:X?{textAlign:X}:void 0,onInput:(U)=>z(h7(U.currentTarget.innerHTML)),onKeyDown:(U)=>K(U),onCompositionStart:Y?()=>Y():void 0,onCompositionEnd:q?(U)=>q(h7(U.currentTarget.innerHTML)):void 0},void 0,!1,void 0,this)}var JW=new Set(["image","video","audio","file","table","code"]),jP=new Set(["image","video","audio","file"]),DP=L0.mark({}),i$=M0.define({combine:(Z)=>Z[0]??{}}),SP="<script>(function(){function r(){try{parent.postMessage({__mhHtmlHeight:document.documentElement.scrollHeight},'*')}catch(e){}}try{new ResizeObserver(r).observe(document.documentElement)}catch(e){}addEventListener('load',r);setTimeout(r,60);setTimeout(r,400)})();</script>";function bP(Z){return`<!doctype html><html><head><meta charset="utf-8"><base target="_blank"><style>html,body{margin:0;padding:0;color-scheme:light dark;font-family:system-ui,-apple-system,sans-serif}</style></head><body>${Z}${SP}</body></html>`}function pZ(Z,J){if(!J.isConnected)return null;let $=null,Q=Z.state.field(n$,!1);if(!Q)return null;return Q.deco.between(0,Z.state.doc.length,(X,z,K)=>{let Y=K.spec.widget;if(Y&&Y.dom===J)return $=mZ(I0(Z.state),X),!1}),$}function EP(Z,J){return/^[ \t]*/.exec(Z.state.doc.lineAt(J.from).text)[0]}function w6(Z,J,$){let Q=pZ(Z,J);if(!Q)return;let X=u8($),z=EP(Z,Q);if(z)X=X.split(`
|
|
85
|
+
`).map((Y)=>z+Y).join(`
|
|
86
|
+
`);let K=y7(Z.state.sliceDoc(Q.from,Q.to),X,Q.from);if(!K)return;Z.dispatch({changes:K,userEvent:"input.writeback"})}function f7(Z,J,$){for(let Q of Array.from(Z.contentDOM.querySelectorAll(".cm-void-code"))){let X=Z.posAtDOM(Q);if(X<J.from||X>J.to)continue;let z=Q.querySelector("textarea.code-input");if(!z)return;z.focus();let K=$==="start"?0:z.value.length;z.setSelectionRange(K,K),z.scrollIntoView({block:"nearest"});return}}function wP(Z,J){let $=pZ(Z,J);if(!$)return;let Q=Z.state.doc.lineAt($.from),X=Math.min(Q.to+1,$.to);Z.dispatch({selection:{anchor:X},scrollIntoView:!0}),Z.focus()}function xP({view:Z,host:J,initial:$}){let Q=G0(structuredClone($)),[X,z]=b(null),[K,Y]=b(0),q=G0(!1);return J0(()=>{if(!X)return;let W=(U)=>{if(U.isComposing)return;let H=document.activeElement;if(H?.isContentEditable||H?.tagName==="INPUT"||H?.tagName==="TEXTAREA")return;let F=Q.current.rows??[],O=F.length,N=F[0]?.length??0;if(!O||!N)return;if((U.metaKey||U.ctrlKey)&&(U.key.toLowerCase()==="z"||U.key.toLowerCase()==="y")){c8(U),(U.key.toLowerCase()==="y"||U.shiftKey?C6:S5)(Z),Z.focus();return}let A=RQ(X,U.key,U.shiftKey,O,N);if(A)U.preventDefault(),z(A),J.querySelector(`.doc-td[data-r="${A.b.r}"][data-c="${A.b.c}"]`)?.scrollIntoView({block:"nearest",inline:"nearest"});else if((U.metaKey||U.ctrlKey)&&U.key.toLowerCase()==="c"){U.preventDefault(),navigator.clipboard?.writeText(k4(F,SZ(X))).catch(()=>{});let L=J.querySelector("table.doc-table");if(L)L.classList.remove("copied"),L.offsetWidth,L.classList.add("copied"),setTimeout(()=>L.classList.remove("copied"),260)}else if(U.key==="Delete"||U.key==="Backspace")U.preventDefault(),Q.current.rows=y4(F,SZ(X)),Y((L)=>L+1),w6(Z,J,Q.current);else if(U.key==="Escape"){c8(U),z(null);let L=pZ(Z,J);if(L)Z.dispatch({selection:{anchor:L.from,head:L.to}});Z.focus()}else if((U.key==="Enter"||U.key==="F2")&&X.a.r===X.b.r&&X.a.c===X.b.c){U.preventDefault();let{r:L,c:B}=X.b;z(null),requestAnimationFrame(()=>l$(J,L,B))}};return document.addEventListener("keydown",W),()=>document.removeEventListener("keydown",W)},[X]),J0(()=>{if(!X)return;let W=(U)=>{if(!J.contains(U.target))z(null)};return document.addEventListener("pointerdown",W,!0),()=>document.removeEventListener("pointerdown",W,!0)},[X]),G(ZW,{block:Q.current,renderKey:K,cellSel:X,onCellSel:z,onCellInput:(W,U,H)=>{let F=Q.current.rows??[];if(F[W])F[W][U]=H;if(!q.current)w6(Z,J,Q.current)},onCellCompositionStart:()=>{q.current=!0},onCellCompositionEnd:(W,U,H)=>{q.current=!1;let F=Q.current.rows??[];if(F[W])F[W][U]=H;w6(Z,J,Q.current)},onTableChange:()=>{Y((W)=>W+1),w6(Z,J,Q.current)}},void 0,!1,void 0,this)}function vP(Z,J){if(!J)return Z;let $=w9(J);return Z.split(`
|
|
87
|
+
`).map((Q)=>y9(Q,$)).join(`
|
|
88
|
+
`)}function hP({view:Z,host:J,initial:$,source:Q,selected:X}){let z=G0(null);if(!z.current){let F=structuredClone($);F.content=vP(F.content,/^[ \t]*/.exec(Q)[0]),z.current=F}let K=z.current,Y=G0(!1),[q,W]=b(K.lang??""),U=()=>w6(Z,J,z.current),H=(F)=>{if(F.isComposing)return;let O=F.currentTarget,N=F.metaKey||F.ctrlKey;if(N&&(F.key==="z"||F.key==="Z"||F.key==="y")){F.preventDefault();let A=F.key==="y"||F.shiftKey,L=pZ(Z,J)?.from??0;(A?C6:S5)(Z);let B=()=>{let M=Math.min(L,Z.state.doc.length),C=mZ(I0(Z.state),M);if(C&&C.kind==="code")f7(Z,C,"end");else Z.focus()};B(),requestAnimationFrame(()=>{if(document.activeElement===document.body)B()});return}if(N)return;if(F.key==="Tab"){F.preventDefault();let A=gq(O.value,O.selectionStart,O.selectionEnd,F.shiftKey);if(A)f5(O,A);return}if(F.key==="Enter"){F.preventDefault(),f5(O,mq(O.value,O.selectionStart,O.selectionEnd));return}if(F.key==="Escape"){c8(F);let A=pZ(Z,J);if(!A)return;Z.focus(),Z.dispatch({selection:{anchor:A.from,head:A.to},scrollIntoView:!0});return}if(F.key==="Backspace"&&O.value===""){F.preventDefault();let A=pZ(Z,J);if(!A)return;Z.focus(),Z.dispatch({changes:{from:A.from,to:Math.min(A.to+1,Z.state.doc.length)},selection:{anchor:A.from},userEvent:"delete",scrollIntoView:!0});return}let _=O.selectionStart===O.selectionEnd;if(F.key==="ArrowDown"&&_&&!O.value.slice(O.selectionEnd).includes(`
|
|
89
|
+
`)){F.preventDefault();let A=pZ(Z,J);if(!A)return;if(A.to>=Z.state.doc.length)Z.dispatch({changes:{from:A.to,insert:`
|
|
90
|
+
`},userEvent:"input"});Z.focus(),Z.dispatch({selection:{anchor:Math.min(A.to+1,Z.state.doc.length)},scrollIntoView:!0});return}if(F.key==="ArrowUp"&&_&&!O.value.slice(0,O.selectionStart).includes(`
|
|
91
|
+
`)){F.preventDefault();let A=pZ(Z,J);if(!A)return;if(A.from===0)Z.dispatch({changes:{from:0,insert:`
|
|
92
|
+
`},userEvent:"input"}),Z.focus(),Z.dispatch({selection:{anchor:0},scrollIntoView:!0});else Z.focus(),Z.dispatch({selection:{anchor:A.from-1},scrollIntoView:!0});return}};return G(eq,{code:K.content,lang:q,selected:X,onInput:(F)=>{if(z.current.content=F,!Y.current)U()},onLang:(F)=>{z.current.lang=F,W(F),U()},onKeyDown:H,onCompositionStart:()=>{Y.current=!0},onCompositionEnd:(F)=>{Y.current=!1,z.current.content=F,U()}},void 0,!1,void 0,this)}function fP({html:Z,view:J}){let $=G0(null);return J0(()=>{let Q=(X)=>{let z=$.current;if(!z||X.source!==z.contentWindow)return;let K=Number(X.data?.__mhHtmlHeight);if(K>0)z.style.height=`${Math.max(48,Math.min(Math.ceil(K),4000))}px`,J.requestMeasure()};return window.addEventListener("message",Q),()=>window.removeEventListener("message",Q)},[]),G("iframe",{ref:$,class:"html-frame",title:"HTML 预览",sandbox:"allow-scripts allow-popups",srcdoc:bP(Z)},void 0,!1,void 0,this)}class $W extends N9{kind;source;block;selected;gen;level;dom=null;ro=null;constructor(Z,J,$,Q,X,z){super();this.kind=Z;this.source=J;this.block=$;this.selected=Q;this.gen=X;this.level=z}hasFocus(){return!!this.dom&&this.dom.contains(this.dom.ownerDocument.activeElement)}eq(Z){if(Z.kind!==this.kind)return!1;if(Z.level!==this.level)return!1;if(Z.gen!==this.gen)return!1;if(this.hasFocus()||Z.hasFocus())return this.dom??=Z.dom,Z.dom??=this.dom,!0;let J=Z.source===this.source&&Z.selected===this.selected;if(J)this.dom??=Z.dom,Z.dom??=this.dom;return J}toDOM(Z){let J=document.createElement("div");if(J.className="cm-void cm-void-"+this.kind+(this.selected?" selected":"")+(this.level>0?` cm-nested cm-nest-${this.level}`:""),J.contentEditable="false",jP.has(this.kind))J.addEventListener("mousedown",($)=>{if($.target?.closest("button, select, input, textarea, a, video, audio, .img-handle"))return;$.preventDefault();let X=pZ(Z,J);if(!X)return;Z.dispatch({selection:{anchor:X.from,head:X.to}}),Z.focus()});return this.dom=J,g0(this.component(Z,J),J),this.ro=new ResizeObserver(()=>Z.requestMeasure()),this.ro.observe(J),J}destroy(Z){this.ro?.disconnect(),this.ro=null,g0(null,Z),this.dom=null}ignoreEvent(){return!0}get estimatedHeight(){if(this.kind==="image")return this.block.width?220:200;if(this.kind==="table")return 120;return 160}component(Z,J){let $=(Q)=>w6(Z,J,Q);switch(this.kind){case"image":return G(PY,{block:this.block,selected:this.selected,onResize:(Q)=>{this.block.width=Q,$(this.block)},onPreview:()=>Z.state.facet(i$).onPreviewImage?.(this.block)},void 0,!1,void 0,this);case"video":return G(MY,{block:this.block},void 0,!1,void 0,this);case"audio":return G(IY,{block:this.block},void 0,!1,void 0,this);case"file":return G(RY,{block:this.block},void 0,!1,void 0,this);case"code":return G(hP,{view:Z,host:J,initial:this.block,source:this.source,selected:this.selected},void 0,!1,void 0,this);case"html":return G("div",{class:"void-block void-html",children:[G("div",{class:"html-bar",children:[G("span",{class:"html-tag",children:"HTML"},void 0,!1,void 0,this),G("button",{class:"html-toggle",title:"编辑源码",onMouseDown:(Q)=>{Q.preventDefault(),wP(Z,J)},children:"源码"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G(fP,{html:this.block.content,view:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this);case"table":return G(xP,{view:Z,host:J,initial:this.block},void 0,!1,void 0,this)}}}function gP(Z,J,$){for(let Q of Z.voids){let X=J.ranges.some((q)=>q.from<=Q.to&&q.to>=Q.from),z=$.ranges.some((q)=>q.from<=Q.to&&q.to>=Q.from);if(X!==z)return!1;let K=J.ranges.some((q)=>q.from<=Q.from&&q.to>=Q.to),Y=$.ranges.some((q)=>q.from<=Q.from&&q.to>=Q.to);if(K!==Y)return!1}return!0}function a$(Z,J){let $=I0(Z),Q=Z.selection,X=new ZZ,z=new ZZ,K=!1;for(let Y of $.voids){let q=Q.ranges.some((O)=>O.from<=Y.to&&O.to>=Y.from);if(Y.kind==="html"&&q)continue;let W=Z.doc.sliceString(Y.from,Y.to),U=Q.ranges.some((O)=>O.from<=Y.from&&O.to>=Y.to);if(U)K=!0;let H=J.get(Y.from)??0,F=Math.min($.lines[Y.fromLine-1].level,p8);if(X.add(Y.from,Y.to,L0.replace({block:!0,widget:new $W(Y.kind,W,Y.block,U,H,F)})),JW.has(Y.kind))z.add(Y.from,Y.to,DP)}return{deco:X.finish(),atomic:z.finish(),gens:J,anySelected:K}}function mP(Z,J){let $=new Map;for(let[Q,X]of Z)$.set(J.changes.mapPos(Q,-1),X);if(!J.isUserEvent("input.writeback")){let Q=I0(J.state),X=[];J.changes.iterChanges((z,K,Y,q)=>X.push([Y,q]));for(let z of Q.voids)if(X.some(([K,Y])=>K<=z.to&&Y>=z.from))$.set(z.from,($.get(z.from)??0)+1)}return $}var n$=t0.define({create:(Z)=>a$(Z,new Map),update:(Z,J)=>{if(!J.docChanged&&!J.selection)return Z;if(!J.docChanged){let $=I0(J.state);if(gP($,J.startState.selection,J.state.selection))return Z;return a$(J.state,Z.gens)}return a$(J.state,mP(Z.gens,J))},provide:(Z)=>[O0.decorations.from(Z,(J)=>J.deco),O0.atomicRanges.of((J)=>J.state.field(Z).atomic),O0.contentAttributes.from(Z,(J)=>({class:J.anySelected?"cm-void-selected":""}))]}),QW=x0.transactionFilter.of((Z)=>{if(!Z.selection&&!Z.docChanged)return Z;let J=I0(Z.state);if(!J.voids.length)return Z;let $=!1,Q=(z)=>{let K=LY(J,z);if(!K||!JW.has(K.kind))return z;return $=!0,z-K.from<=K.to-z?K.from:K.to},X=Z.newSelection.ranges.map((z)=>z.empty?$0.cursor(Q(z.head)):$0.range(Q(z.anchor),Q(z.head)));if(!$)return Z;return[Z,{selection:$0.create(X,Z.newSelection.mainIndex),sequential:!0}]});var s$='输入文本,"/" 唤出命令';class o$ extends N9{sel;constructor(Z){super();this.sel=Z}eq(Z){return Z.sel===this.sel}toDOM(){let Z=document.createElement("span");return Z.className="cm-bullet"+(this.sel?" cm-mk-sel":""),Z.textContent="•",Z}ignoreEvent(){return!1}}var uP=new o$(!1),pP=new o$(!0);class zW extends N9{eq(){return!0}toDOM(){let Z=document.createElement("span");return Z.className="cm-hr",Z}}var cP=new zW;class KW extends N9{checked;checkPos;sel;constructor(Z,J,$){super();this.checked=Z;this.checkPos=J;this.sel=$}eq(Z){return Z.checked===this.checked&&Z.checkPos===this.checkPos&&Z.sel===this.sel}toDOM(Z){let J=document.createElement("span");J.className="cm-todo"+(this.sel?" cm-mk-sel":"");let $=document.createElement("input");return $.type="checkbox",$.className="cm-todo-box",$.checked=this.checked,$.tabIndex=-1,$.addEventListener("mousedown",(Q)=>{Q.preventDefault(),Q.stopPropagation(),Z.dispatch({changes:{from:this.checkPos,to:this.checkPos+1,insert:this.checked?" ":"x"},userEvent:"input"})}),$.addEventListener("click",(Q)=>Q.preventDefault()),J.appendChild($),J}ignoreEvent(){return!1}}class YW extends N9{num;sep;sel;constructor(Z,J,$){super();this.num=Z;this.sep=J;this.sel=$}eq(Z){return Z.num===this.num&&Z.sep===this.sep&&Z.sel===this.sel}toDOM(){let Z=document.createElement("span");return Z.className="cm-ol-num"+(this.sel?" cm-mk-sel":""),Z.textContent=`${this.num}${this.sep} `,Z}ignoreEvent(){return!1}}function GW(Z){let J=Math.min(Z.level,p8);return J>0?` cm-nest-${J}`:""}function g5(Z,J){if(Z.indentChars>0){let $=k6(Z);if($>0)J.push(L0.replace({}).range(Z.from,Z.from+$));if(Z.level>0)return` cm-nested${GW(Z)}`}return""}function dP(Z){let J=new Set;for(let $ of Z.state.selection.ranges){let Q=Z.state.doc.lineAt($.from).number,X=Z.state.doc.lineAt($.to).number;for(let z=Q;z<=X;z++)J.add(z)}return J}function lP(Z,J){if(J.contentFrom<=J.markerFrom)return!1;let $=Z.state.selection.main;return $.empty&&$.head>=J.from&&$.head<J.contentFrom}function r$(Z,J){return Z.state.selection.ranges.some(($)=>!$.empty&&$.from<=J.markerFrom&&$.to>=J.contentFrom)}function m5(Z,J,$){let Q={class:J};if($!==void 0)Q.class=`${J} cm-ph-line`,Q.attributes={"data-ph":$};return L0.line(Q).range(Z)}function aP(Z,J,$,Q,X,z){let K=J.role;if(K==="void")return;let Y=K.charCodeAt(0)===104&&K.length===2;if(Y||K==="quote"){let W=Q&&$&&lP(Z,J),U=J.contentFrom===J.to,H=Q&&$&&X&&U&&!W?s$:void 0;if(z.push(m5(J.from,Y?`cm-h${K[1]}${g5(J,z)}`:`cm-quote${g5(J,z)}`,H)),J.contentFrom>J.markerFrom)if(W)z.push(L0.mark({class:"cm-md-mark"}).range(J.markerFrom,J.contentFrom));else z.push(L0.replace({}).range(J.markerFrom,J.contentFrom));return}if(K==="divider"){if(z.push(m5(J.from,`cm-divider${g5(J,z)}`)),!$&&J.to>J.from)z.push(L0.replace({widget:cP}).range(J.from,J.to));return}if(RZ(K)){let W=K==="todo"&&!!J.checked,U=Q&&$&&X&&J.contentFrom===J.to?s$:void 0;if(z.push(m5(J.from,`cm-li cm-li-${K}${W?" cm-li-done":""}${GW(J)}`,U)),J.indentChars>0)z.push(L0.replace({}).range(J.from,J.from+J.indentChars));if(K==="numbered"){if(J.contentFrom>J.markerFrom){let H=Z.state.selection.main;if(Q&&X&&H.head>=J.markerFrom&&H.head<J.contentFrom)z.push(L0.mark({class:"cm-md-mark"}).range(J.markerFrom,J.contentFrom));else{let N=J.text.slice(J.markerFrom-J.from,J.contentFrom-J.from).includes(")")?")":".";z.push(L0.replace({widget:new YW(J.num??1,N,r$(Z,J))}).range(J.markerFrom,J.contentFrom))}}}else if(K==="bullet"){if(J.contentFrom>J.markerFrom)z.push(L0.replace({widget:r$(Z,J)?pP:uP}).range(J.markerFrom,J.contentFrom))}else if(J.contentFrom>J.markerFrom){let H=J.text.indexOf("[",J.indentChars),F=H>=0?J.from+H+1:J.markerFrom;z.push(L0.replace({widget:new KW(!!J.checked,F,r$(Z,J))}).range(J.markerFrom,J.contentFrom))}return}if(K==="blank"){if(J.indentChars>0){let W=g5(J,z);if(W)z.push(m5(J.from,W.trimStart()));return}if(Q&&$&&X)z.push(L0.line({class:"cm-ph-line",attributes:{"data-ph":s$}}).range(J.from));return}let q=g5(J,z);if(q)z.push(m5(J.from,q.trimStart()))}function XW(Z){let J=I0(Z.state),$=dP(Z),Q=Z.hasFocus,X=Z.state.selection.main.empty,z=[];for(let{from:K,to:Y}of Z.visibleRanges){let q=K;while(q<=Y){let W=Z.state.doc.lineAt(q),U=J.lines[W.number-1];if(U)aP(Z,U,Q&&$.has(W.number),Q,X,z);q=W.to+1}}return L0.set(z,!0)}var qW=e0.fromClass(class{deco;constructor(Z){this.deco=XW(Z)}update(Z){if(Z.docChanged||Z.selectionSet||Z.viewportChanged||Z.focusChanged||Z.geometryChanged)this.deco=XW(Z.view)}},{decorations:(Z)=>Z.deco});var WW={code:"cm-code",strong:"cm-strong",em:"cm-em",del:"cm-del",link:"cm-link"};class UW extends N9{url;alt;constructor(Z,J){super();this.url=Z;this.alt=J}eq(Z){return Z.url===this.url&&Z.alt===this.alt}toDOM(Z){let J=document.createElement("img");return J.className="doc-img cm-inline-img",J.src=this.url,J.alt=this.alt,J.loading="lazy",J.style.maxWidth="100%",J.style.height="auto",J.style.borderRadius="6px",J.style.verticalAlign="bottom",J.onload=()=>Z.requestMeasure(),J}ignoreEvent(){return!1}}function iP(Z,J,$){return Z.ranges.some((Q)=>Q.from<=$&&Q.to>=J)}function nP(Z,J,$){let Q=I0(Z.state),X=Z.state.selection,z=[];for(let{from:K,to:Y}of Z.visibleRanges){let q=K;while(q<=Y){let W=Z.state.doc.lineAt(q);q=W.to+1;let U=Q.lines[W.number-1];if(U&&U.role==="void")continue;let H=W.text;if(!H)continue;let F=J.get(W.number),O=F&&F.text===H?F.tokens:uZ(H);$.set(W.number,{text:H,tokens:O});for(let N of O){let _=W.from+N.start,A=W.from+N.end,L=W.from+N.innerFrom,B=W.from+N.innerTo,M=iP(X,_,A);if(N.kind==="image"){if(!M)z.push(L0.replace({widget:new UW(N.url,N.alt??"")}).range(_,A));else if(z.push(L0.mark({class:"cm-md-mark"}).range(_,L)),A>B)z.push(L0.mark({class:"cm-md-mark"}).range(B,A));continue}let C=N.kind==="link"?L0.mark({class:WW.link,attributes:M?{"data-href":N.url,"data-md-revealed":"1"}:{"data-href":N.url}}):L0.mark({class:WW[N.kind]});if(z.push(C.range(L,B)),!M){if(L>_)z.push(L0.replace({}).range(_,L));if(A>B)z.push(L0.replace({}).range(B,A))}else{if(L>_)z.push(L0.mark({class:"cm-md-mark"}).range(_,L));if(A>B)z.push(L0.mark({class:"cm-md-mark"}).range(B,A))}}}}return L0.set(z,!0)}var sP=e0.fromClass(class{deco;cache=new Map;stale=!1;constructor(Z){this.deco=this.run(Z)}update(Z){if(Z.view.composing){if(Z.docChanged)this.deco=this.deco.map(Z.changes),this.stale=!0;return}if(this.stale||Z.docChanged||Z.selectionSet||Z.viewportChanged)this.stale=!1,this.deco=this.run(Z.view)}run(Z){let J=new Map,$=nP(Z,this.cache,J);return this.cache=J,$}},{decorations:(Z)=>Z.deco}),rP=O0.domEventHandlers({mousedown(Z,J){if(Z.button!==0)return!1;let $=Z.target?.closest?.("[data-href]");if(!($ instanceof HTMLElement)||!J.dom.contains($))return!1;let Q=Z.metaKey||Z.ctrlKey;if($.hasAttribute("data-md-revealed")&&!Q)return!1;let X=$.getAttribute("data-href");if(!X)return!1;Z.preventDefault();let z=W8(X);if(z!=="#")window.open(z,"_blank","noopener");return!0}}),HW=[sP,rP];function t$(Z,J){let $=Z.state.doc.lineAt(J).number;return I0(Z.state).lines[$-1]}function FW(Z){return Z.text.slice(0,Z.indentChars)}function oP(Z){let J=Z.text[Z.indentChars]??"-";if(Z.role==="numbered"){let $=/^\d+([.)])/.exec(Z.text.slice(Z.indentChars))?.[1]??".";return`${(Z.num??1)+1}${$} `}if(Z.role==="todo")return`${J} [ ] `;return`${J} `}function tP(Z,J=Z.text){let $=RZ(Z.role),Q=Z.role==="quote";if(!$&&!Q)return null;let X=J.slice(Z.contentFrom-Z.from),z=X.match(r0.fenceOpen);if(!z)return null;let K=z[1]+(z[2]??"");if(X!==K)return null;let Y=z[1][0].repeat(z[1].length);if(Q){let U=J.slice(0,Z.indentChars),H=`${K}
|
|
93
|
+
${U}`;return{insertFrom:Z.markerFrom,insertTo:Z.to,insert:`${H}
|
|
94
|
+
${U}${Y}`,caretOffset:H.length}}let q=" ".repeat(Z.indent+2),W=`
|
|
95
|
+
${q}${K}
|
|
96
|
+
${q}`;return{insertFrom:Z.contentFrom,insertTo:Z.to,insert:`${W}
|
|
97
|
+
${q}${Y}`,caretOffset:W.length}}function u5(Z,J,$=0){requestAnimationFrame(()=>{let Q=mZ(I0(Z.state),Math.min(J,Z.state.doc.length));if(!Q||Q.kind!=="code")return;if(f7(Z,Q,"start"),$===0&&!document.activeElement?.closest?.(".cm-void-code"))u5(Z,J,1)})}function OW(Z){let J=mZ(I0(Z.state),0);if(J&&J.from===0)Z.dispatch({changes:{from:0,insert:`
|
|
98
|
+
`},selection:{anchor:0},userEvent:"input",scrollIntoView:!0});else Z.dispatch({selection:{anchor:0},scrollIntoView:!0});Z.focus()}function NW(Z){if(Z.composing)return!1;let J=Z.state.selection.main;if(!J.empty)return!1;let $=t$(Z,J.head);if($.role==="p"&&J.head===$.to){let q=$.text.match(r0.fenceOpen);if(q&&$.text.slice($.indentChars)===q[1]+(q[2]??"")){let W=$.text.slice(0,$.indentChars),U=q[1][0].repeat(q[1].length),H=$.to+1+W.length;return Z.dispatch({changes:{from:$.to,insert:`
|
|
99
|
+
${W}
|
|
100
|
+
${W}${U}`},selection:{anchor:H},userEvent:"input",scrollIntoView:!0}),u5(Z,H),!0}}if(J.head===$.to){let q=tP($);if(q){let W=q.insertFrom+q.caretOffset;return Z.dispatch({changes:{from:q.insertFrom,to:q.insertTo,insert:q.insert},selection:{anchor:W},userEvent:"input",scrollIntoView:!0}),u5(Z,W),!0}}if($.role==="void"||$.role==="p"||$.role==="blank"||$.role.startsWith("h")||$.role==="divider")return!1;let Q=RZ($.role),X=$.role==="quote";if(!Q&&!X)return!1;if(J.head===$.from)return Z.dispatch({changes:{from:$.from,insert:`
|
|
101
|
+
`},selection:{anchor:$.from+1},userEvent:"input",scrollIntoView:!0}),!0;if(J.head<$.contentFrom)return Z.dispatch({selection:{anchor:$.contentFrom},userEvent:"select"}),!0;if($.contentFrom>=$.to)return Z.dispatch({changes:{from:$.from,to:$.contentFrom,insert:""},selection:{anchor:$.from},userEvent:"input",scrollIntoView:!0}),!0;let Y=`
|
|
102
|
+
`+(X?`${FW($)}> `:FW($)+oP($));return Z.dispatch({changes:{from:J.head,insert:Y},selection:{anchor:J.head+Y.length},userEvent:"input",scrollIntoView:!0}),!0}function BW(Z,J,$){let{state:Q}=Z,X=$>0?J.indent+2:Math.max(0,J.indent-2);if(X===J.indent)return!0;let z=Math.floor(X/2),K=R7(I0(Q).lines,J.number,z),q=J.text.slice(J.indentChars,J.contentFrom-J.from).slice(J.numChars??String(J.num??1).length),W=" ".repeat(X)+K+q,U=Q.selection.main.head,H=U>=J.contentFrom?U+(W.length-(J.contentFrom-J.from)):J.from+W.length;return Z.dispatch({changes:{from:J.from,to:J.contentFrom,insert:W},selection:{anchor:H},userEvent:$>0?"input.indent":"delete.dedent",scrollIntoView:!0}),!0}function _W(Z){if(Z.composing)return!1;let J=Z.state.selection.main;if(!J.empty)return!1;let $=t$(Z,J.head);if(($.role==="bullet"||$.role==="todo"||$.role==="quote"||$.role.startsWith("h"))&&J.head===$.contentFrom&&$.contentFrom>$.from)return Z.dispatch({changes:{from:$.from,to:$.contentFrom,insert:""},selection:{anchor:$.from},userEvent:"delete"}),!0;if(J.head===$.markerFrom&&$.indentChars>0&&$.role!=="void"&&$.role!=="bullet"&&$.role!=="todo"&&$.role!=="blank"&&k6($)===$.indentChars){if($.role==="numbered")return BW(Z,$,-1);let X=" ".repeat(Math.max(0,($.level-1)*2));return Z.dispatch({changes:{from:$.from,to:$.from+$.indentChars,insert:X},selection:{anchor:$.from+X.length},userEvent:"delete.dedent",scrollIntoView:!0}),!0}if($.role==="blank"&&J.head>$.from)return Z.dispatch({changes:{from:$.from,to:J.head,insert:""},selection:{anchor:$.from},userEvent:"delete"}),!0;if(J.head===$.from&&$.number>1){let X=I0(Z.state).voids.find((z)=>z.to===$.from-1);if(X)return Z.dispatch({selection:$0.range(X.from,X.to)}),!0}return!1}function AW(Z,J){if(Z.composing)return!1;let{state:$}=Z,Q=$.selection.ranges,X=[],z=new Set,K=$.selection.main.empty&&Q.length===1,Y=t$(Z,$.selection.main.head),q=RZ(Y.role);if(K&&Y.role==="quote"){let O=J>0?(Y.level+1)*2:Y.indent>Y.level*2?Y.level*2:Math.max(0,(Y.level-1)*2);if(O===Y.indent)return!0;let N=I0($),_=C7(N.lines,$.doc.lineAt($.selection.main.head).number),A=" ".repeat(O);for(let C=_.fromLine;C<=_.toLine;C++){let R=N.lines[C-1];if(R.indentChars===A.length&&!R.text.slice(0,A.length).includes("\t"))continue;X.push({from:R.from,to:R.from+R.indentChars,insert:A})}if(!X.length)return!0;let L=$.changes(X),B=$.selection.main.head,M=L.mapPos(Y.from,-1)+A.length;return Z.dispatch({changes:X,selection:{anchor:Math.max(M,L.mapPos(B,1))},userEvent:J>0?"input.indent":"delete.dedent",scrollIntoView:!0}),!0}if(J>0&&K&&!q){if(Y.role==="void")return Z.dispatch($.replaceSelection(" ")),!0;let O=" ".repeat((Y.level+1)*2),N=$.selection.main.head,_=O.length-Y.indentChars;return Z.dispatch({changes:{from:Y.from,to:Y.from+Y.indentChars,insert:O},selection:{anchor:Math.max(Y.from+O.length,N+_)},userEvent:"input.indent",scrollIntoView:!0}),!0}if(J<0&&K&&!q&&Y.role!=="void"){let O=Y.indent>Y.level*2?Y.level*2:Math.max(0,(Y.level-1)*2);if(O===Y.indent)return!0;let N=" ".repeat(O),_=$.selection.main.head,A=Y.indentChars-N.length;return Z.dispatch({changes:{from:Y.from,to:Y.from+Y.indentChars,insert:N},selection:{anchor:Math.max(Y.from+N.length,_-A)},userEvent:"delete.dedent",scrollIntoView:!0}),!0}if(K&&Y.role==="numbered")return BW(Z,Y,J);let W=I0($);for(let O of Q){let N=$.doc.lineAt(O.from).number,_=$.doc.lineAt(O.to).number;for(let A=N;A<=_;A++){if(z.has(A))continue;let L=mZ(W,$.doc.line(A).from);if(L&&(L.kind!=="html"||O.from<=L.from&&O.to>=L.to)){for(let R=L.fromLine;R<=L.toLine;R++)z.add(R);let C=/^ */.exec($.doc.line(L.fromLine).text)[0].length;if(J>0)for(let R=L.fromLine;R<=L.toLine;R++)X.push({from:$.doc.line(R).from,insert:" "});else{let R=Math.min(2,C);for(let I=L.fromLine;R>0&&I<=L.toLine;I++){let P=$.doc.line(I),V=Math.min(R,/^ */.exec(P.text)[0].length);if(V>0)X.push({from:P.from,to:P.from+V,insert:""})}}A=L.toLine;continue}z.add(A);let B=$.doc.line(A),M=/^[ \t]*/.exec(B.text)[0];if(M.includes("\t")){let C=Math.max(0,w9(B.text)+J*2);X.push({from:B.from,to:B.from+M.length,insert:" ".repeat(C)})}else if(J>0)X.push({from:B.from,insert:" "});else{let C=/^ {1,2}/.exec(B.text);if(C)X.push({from:B.from,to:B.from+C[0].length,insert:""})}}}if(!X.length)return!0;let U=$.selection.main,H=Q.length===1?W.voids.find((O)=>O.from===U.from&&O.to===U.to):void 0,F;if(H){let O=$.changes(X);F={anchor:O.mapPos(H.from,-1),head:O.mapPos(H.to,1)}}return Z.dispatch({changes:X,selection:F,userEvent:J>0?"input.indent":"delete.dedent"}),!0}function LW(Z){return AW(Z,1)}function PW(Z){return AW(Z,-1)}function e$(Z){let J=I0(Z.state),$=Z.state.selection,Q=$0.create($.ranges.map((X)=>{let z=Z.state.doc.lineAt(X.head).number,K=J.lines[z-1],Y=X.head===K.contentFrom?K.from:K.contentFrom;return $0.cursor(Y)}),$.mainIndex);return Z.dispatch({selection:Q,userEvent:"select"}),!0}function p5(Z){return function($){let Q=$.state.selection.main;if(Q.empty)return!1;let X=I0($.state).voids.find((K)=>K.from===Q.from&&K.to===Q.to);if(!X)return!1;let z=$.state.doc;if(Z===1)if(X.to>=z.length)$.dispatch({changes:{from:z.length,insert:`
|
|
103
|
+
`},selection:{anchor:z.length+1},userEvent:"input"});else $.dispatch({selection:{anchor:z.lineAt(X.to+1).from},userEvent:"select"});else if(X.from<=0)$.dispatch({changes:{from:0,insert:`
|
|
104
|
+
`},selection:{anchor:0},userEvent:"input"});else $.dispatch({selection:{anchor:z.lineAt(X.from-1).to},userEvent:"select"});return!0}}function MW(Z){return(J)=>{let $=J.state.selection.main;if(!$.empty)return!1;let Q=J.state.doc.lineAt($.head);if(Z===1?Q.to>=J.state.doc.length:Q.from===0)return!1;let X=I0(J.state).voids.find((Y)=>Y.kind==="code"&&(Z===1?Y.from===Q.to+1:Y.to===Q.from-1));if(!X)return!1;let z=J.coordsAtPos($.head),K=J.coordsAtPos(Z===1?Q.to:Q.from);if(z&&K&&(Z===1?z.top<K.top-1:z.top>K.top+1))return!1;return f7(J,X,Z===1?"start":"end"),!0}}var IW=MW(1),RW=MW(-1);function CW(Z){return function($){if(!Z)return!1;let Q=$.state.selection.main;if(!Q.empty)return!1;let X=$.state.doc.line(1);if(Q.head>X.to)return!1;let z=$.coordsAtPos(Q.head),K=$.coordsAtPos(X.from);if(z&&K&&z.top<=K.top+1)return Z(),!0;return!1}}function H8(Z,J){let $=I0(Z.state),Q=$.voids.find((K)=>J>=K.fromLine&&J<=K.toLine),X=Z.state.doc;if(Q)return{fromLine:Q.fromLine,toLine:Q.toLine,from:X.line(Q.fromLine).from,to:X.line(Q.toLine).to};if($.lines[J-1]?.role==="quote"){let K=C7($.lines,J);return{fromLine:K.fromLine,toLine:K.toLine,from:X.line(K.fromLine).from,to:X.line(K.toLine).to}}let z=X.line(J);return{fromLine:J,toLine:J,from:z.from,to:z.to}}function Z3(Z){let J=Z.state.selection.main;if(J.empty)return null;let $=Z.state.doc,Q=$.lineAt(J.from).number,X=$.lineAt(J.to).number;if(X>Q&&J.to===$.line(X).from)X--;return{fromLine:Q,toLine:X}}function g7(Z,J,$){let Q=H8(Z,J),X=H8(Z,Math.max(J,$));return{fromLine:Q.fromLine,toLine:X.toLine,from:Q.from,to:X.to}}function J3(Z,J){let $=Z.state.sliceDoc(J.from,J.to);Z.dispatch({changes:{from:J.to,insert:`
|
|
105
|
+
`+$},userEvent:"input.duplicate"})}function VW(Z){let J=Z3(Z),$=J?g7(Z,J.fromLine,J.toLine):H8(Z,Z.state.doc.lineAt(Z.state.selection.main.head).number);return J3(Z,$),!0}function m7(Z,J){let $=H8(Z,J),Q=I0(Z.state).lines,X=Q[$.fromLine-1];if(!X||!RZ(X.role))return $;let z=$.toLine;for(let K=$.toLine;K<Q.length;K++){let Y=Q[K];if(Y.role==="blank")continue;if(Y.indent>X.indent){z=Y.number;continue}break}if(z===$.toLine)return $;return g7(Z,$.fromLine,z)}function yW(Z){let J=Z.state.doc,$=Z.state.selection.main,Q=m7(Z,J.lineAt($.head).number),z=$.from<=Q.from&&$.to>=Q.to?{anchor:0,head:J.length}:{anchor:Q.from,head:Q.to};if($.from===z.anchor&&$.to===z.head)return!0;return Z.dispatch({selection:z,userEvent:"select"}),!0}function kW(Z={}){return W6.highest($8.of([{key:"Enter",run:NW},{key:"Backspace",run:_W},{key:"Tab",run:LW,shift:PW},{key:"Home",run:e$},{key:"Mod-ArrowLeft",run:e$},{key:"ArrowUp",run:CW(Z.onExitTop)},{key:"ArrowUp",run:RW},{key:"ArrowDown",run:IW},{key:"ArrowUp",run:p5(-1)},{key:"ArrowLeft",run:p5(-1)},{key:"ArrowDown",run:p5(1)},{key:"ArrowRight",run:p5(1)},{key:"Mod-d",run:VW,preventDefault:!0},{key:"Mod-a",run:yW,preventDefault:!0}]))}class DW extends e9{}var TW=new DW;function jW(Z){let J=new ZZ;for(let $ of I0(Z).lines)if($.role==="bullet"||$.role==="todo"){if($.contentFrom>$.from)J.add($.from,$.contentFrom,TW)}else if($.role!=="void"&&$.indentChars>0){let Q=k6($);if(Q>0)J.add($.from,$.from+Q,TW)}return J.finish()}var SW=t0.define({create:jW,update:(Z,J)=>J.docChanged?jW(J.state):Z,provide:(Z)=>O0.atomicRanges.of((J)=>J.state.field(Z))});var bW=24,EW=26;function eP(){let Z={".cm-li":{paddingLeft:`calc(var(--nest, 0px) + ${EW}px)`,textIndent:`-${EW}px`,position:"relative"},".cm-nested":{paddingLeft:"calc(var(--nest, 0px) + 2px)"},".cm-void.cm-nested":{paddingLeft:"calc(var(--nest, 0px) + 2px)"},".cm-quote":{borderLeft:"3px solid var(--line-strong, var(--line))",paddingLeft:"calc(var(--nest, 0px) + 16px)",color:"var(--fg-soft)",fontStyle:"italic"}};for(let J=1;J<=p8;J++){Z[`.cm-nest-${J}`]={"--nest":`${J*bW}px`};let $=[],Q=[],X=[];for(let K=0;K<J;K++)$.push("repeating-linear-gradient(to bottom, var(--line) 0 3px, transparent 3px 7px)"),Q.push("1px calc(100% - 4px)"),X.push(`${bW*K+11}px 2px`);let z={backgroundImage:$.join(","),backgroundSize:Q.join(","),backgroundPosition:X.join(","),backgroundRepeat:"no-repeat"};Z[`.cm-li.cm-nest-${J}`]=z,Z[`.cm-nested.cm-nest-${J}`]=z}return Z}var wW=O0.baseTheme({"&":{color:"var(--fg)",backgroundColor:"transparent"},"&.cm-focused":{outline:"none"},".cm-scroller":{overflow:"visible",fontFamily:"inherit",lineHeight:"var(--note-lh)"},".cm-content":{padding:"0",caretColor:"var(--fg)"},".cm-content.cm-void-selected":{caretColor:"transparent"},".cm-dropCursor":{borderLeft:"1.5px solid var(--accent)"},".cm-line":{padding:"4px 2px"},".cm-void":{padding:"3px 2px"},".cm-h1":{fontSize:"28px",fontWeight:"700",letterSpacing:"-.02em",paddingTop:"13px"},".cm-h2":{fontSize:"22px",fontWeight:"650",letterSpacing:"-.01em",paddingTop:"9px"},".cm-h3":{fontSize:"18px",fontWeight:"600",paddingTop:"5px"},".cm-h4":{fontSize:"16px",fontWeight:"600",paddingTop:"3px"},".cm-h5":{fontSize:"14px",fontWeight:"600"},".cm-h6":{fontSize:"13px",fontWeight:"600",color:"var(--fg-soft)"},".cm-divider":{position:"relative"},".cm-hr":{display:"inline-block",width:"100%",borderBottom:"1px solid var(--line-strong, var(--line))",verticalAlign:"middle"},...eP(),".cm-bullet":{display:"inline-block",width:"24px",marginRight:"2px",textAlign:"center",textIndent:"0",color:"var(--fg-soft)"},".cm-ol-num":{display:"inline-block",width:"24px",marginRight:"2px",textAlign:"center",textIndent:"0",color:"var(--fg-soft)",fontVariantNumeric:"tabular-nums"},".cm-todo":{display:"inline-block",width:"26px",textIndent:"0"},".cm-todo-box":{width:"15px",height:"15px",margin:"0 0 0 4px",verticalAlign:"-3px",accentColor:"var(--accent)",cursor:"pointer"},".cm-li-done":{color:"var(--muted)",textDecoration:"line-through"},".cm-ph-line":{position:"relative"},".cm-ph-line::before":{content:"attr(data-ph)",position:"absolute",inset:"0",padding:"inherit",boxSizing:"border-box",textIndent:"0",color:"var(--muted)",pointerEvents:"none",whiteSpace:"nowrap",overflow:"hidden"},".cm-strong":{fontWeight:"700"},".cm-em":{fontStyle:"italic"},".cm-del":{textDecoration:"line-through",color:"var(--muted)"},".cm-code":{fontFamily:"var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace)",fontSize:"0.9em",background:"var(--surface-2)",borderRadius:"4px",padding:"1px 5px"},".cm-link":{color:"var(--accent)",textDecoration:"underline",cursor:"pointer"},".cm-md-mark":{color:"var(--muted)"},".cm-find":{background:"color-mix(in srgb, var(--accent) 26%, transparent)",borderRadius:"2px"},".cm-find-cur":{background:"var(--accent)",color:"var(--accent-fg)"},".cm-g-btn":{display:"grid",placeItems:"center",width:"22px",height:"22px",border:"none",background:"transparent",color:"var(--muted)",borderRadius:"5px",cursor:"pointer"},".cm-g-btn:hover":{background:"var(--hover)",color:"var(--fg)"},".cm-g-grip":{cursor:"grab"}});function ZM(Z,J,$,Q){if(Q!==" "||J!==$||Z.composing)return!1;let X=I0(Z.state).lines[Z.state.doc.lineAt(J).number-1];if(!X)return!1;if(!RZ(X.role)||J<X.contentFrom)return!1;let K=Z.state.sliceDoc(X.contentFrom,J),Y=GY(K+" "," ");if(!Y||Y.type!=="quote"&&!y$(Y.type))return!1;let q=" ".repeat(X.indent+2),W=K+" ",U=Z.state.sliceDoc(J,X.to);return Z.dispatch({changes:{from:X.contentFrom,to:X.to,insert:`
|
|
106
|
+
`+q+W+U},selection:{anchor:X.contentFrom+1+q.length+W.length},userEvent:"input",scrollIntoView:!0}),!0}var p7=new U6,u7=-1;if(typeof window<"u"&&typeof window.addEventListener==="function"){let Z=()=>{u7=-1};window.addEventListener("resize",Z),window.addEventListener("orientationchange",Z)}function JM(){if(typeof document>"u")return 60;if(u7<0)u7=(document.querySelector(".topbar")?.getBoundingClientRect().bottom??52)+8;return u7}function $M(Z,J,$,Q){if(Q!==" "||J!==$||Z.composing)return!1;let X=I0(Z.state).lines[Z.state.doc.lineAt(J).number-1];if(!X||X.role!=="bullet"||J<X.contentFrom)return!1;let z=Z.state.sliceDoc(X.contentFrom,J).match(/^\[([ xX]?)\]$/);if(!z)return!1;let K=X.text[X.indentChars]??"-",q=`${X.text.slice(0,X.indentChars)}${K} [${z[1].toLowerCase()==="x"?"x":" "}] `,W=Z.state.sliceDoc(J,X.to);return Z.dispatch({changes:{from:X.from,to:X.to,insert:q+W},selection:{anchor:X.from+q.length},userEvent:"input",scrollIntoView:!0}),!0}function $3(Z){return[n$,QW,qW,HW,O0.inputHandler.of($M),O0.inputHandler.of(ZM),SW,kW(Z)]}function Q3(){return $8.of([$Y])}function xW(Z){return[D$,CK(),iz(),O0.lineWrapping,O0.contentAttributes.of({spellcheck:"true",autocorrect:"on",autocapitalize:"sentences"}),O0.scrollMargins.of(()=>({top:JM(),bottom:8})),wW,p7.of($3(Z)),$8.of([...JY,...kK])]}function cZ(Z){return requestAnimationFrame(Z)}function X3(Z){if(Z)cancelAnimationFrame(Z)}var QM=/^(\s*)\/(\S*)$/,XM=/^\/(\S*)$/,gW=new Set(["bullet","numbered","todo","quote"]),zM=new Set(["code","html","table"]),vW=264;function hW(Z,J){let $=I0(Z).lines[J.number-1];if($&&$.role==="void")return null;if($&&gW.has($.role)){let X=XM.exec(Z.sliceDoc($.contentFrom,J.to));if(!X)return null;return{slashFrom:$.contentFrom,query:X[1],info:$}}let Q=QM.exec(J.text);if(!Q)return null;return{slashFrom:J.from+Q[1].length,query:Q[2],info:$}}function fW(Z){let J=Z.toLowerCase();if(!J)return w5;return w5.filter(($)=>($.t+$.type+$.d).toLowerCase().includes(J))}function KM(Z,J){let $=(Q)=>({insert:Q,caret:J+Q.length});switch(Z){case"p":return{insert:"",caret:J};case"h1":return $("# ");case"h2":return $("## ");case"h3":return $("### ");case"bullet":return $("- ");case"numbered":return $("1. ");case"todo":return $("- [ ] ");case"quote":return $("> ");case"divider":return{insert:`---
|
|
107
|
+
`,caret:J+4};case"code":return{insert:"```\n\n```",caret:J+4};case"table":return{insert:`| 列1 | 列2 |
|
|
108
|
+
| --- | --- |
|
|
109
|
+
| | |`,caret:J};case"html":return{insert:"```mh-html\n\n```",caret:J+11};default:return{insert:null,caret:J}}}function mW(Z={}){return e0.fromClass(class{view;active=null;menuEl=null;raf=0;onKey=(J)=>this.handleKey(J);onScroll=(J)=>{if(J&&this.menuEl&&J.target instanceof Node&&this.menuEl.contains(J.target))return;if(this.active)this.renderMenu()};constructor(J){this.view=J;J.dom.addEventListener("keydown",this.onKey,!0),window.addEventListener("scroll",this.onScroll,!0),window.addEventListener("resize",this.onScroll)}update(J){if(J.view.composing)return;if(J.focusChanged&&!J.view.hasFocus)return this.close();if(!J.docChanged&&!J.selectionSet)return;let $=this.detect();if(!$)return this.close();if(this.active={slashFrom:$.slashFrom,query:$.query,idx:this.active?.idx??0},this.raf)return;this.raf=cZ(()=>{if(this.raf=0,this.active)this.renderMenu()})}destroy(){if(this.raf)cancelAnimationFrame(this.raf);this.view.dom.removeEventListener("keydown",this.onKey,!0),window.removeEventListener("scroll",this.onScroll,!0),window.removeEventListener("resize",this.onScroll),this.close()}detect(){let J=this.view.state.selection.main;if(!J.empty)return null;let $=this.view.state.doc.lineAt(J.head),Q=hW(this.view.state,$);if(!Q||J.head<=Q.slashFrom)return null;return Q}handleKey(J){if(!this.active)return;if(V7(J))return;if(J.key==="Escape"){this.close(),J.preventDefault(),J.stopPropagation();return}let $=fW(this.active.query);if(!$.length)return;if(J.key==="ArrowDown")this.active.idx=Math.min(this.active.idx+1,$.length-1),this.renderMenu(),J.preventDefault(),J.stopPropagation();else if(J.key==="ArrowUp")this.active.idx=Math.max(this.active.idx-1,0),this.renderMenu(),J.preventDefault(),J.stopPropagation();else if(J.key==="Enter"){let Q=$[Math.min(this.active.idx,$.length-1)];if(Q)this.select(Q.type);J.preventDefault(),J.stopPropagation()}}select(J){let $=this.view.state,Q=$.doc.lineAt($.selection.main.head),X=hW($,Q);if(this.close(),!X)return;let z=X.info,K=z!==void 0&&gW.has(z.role),Y=K?z.markerFrom:Q.from,{insert:q,caret:W}=KM(J,Y);if(q===null){this.view.dispatch({changes:{from:Y,to:Q.to,insert:""},selection:{anchor:Y}}),this.view.focus(),Z.onUpload?.(J,this.view,Y);return}let U=Y;if(K&&zM.has(J)){let H=$.sliceDoc(Q.from,z.markerFrom)+" ",F=W-Y,O=(q.slice(0,F).match(/\n/g)??[]).length;q=q.split(`
|
|
110
|
+
`).map((N)=>H+N).join(`
|
|
111
|
+
`),U=Q.from,W=Q.from+F+H.length*(O+1)}if(this.view.dispatch({changes:{from:U,to:Q.to,insert:q},selection:{anchor:W},scrollIntoView:!0}),this.view.focus(),J==="code")u5(this.view,W)}renderMenu(){let J=this.active;if(!J)return;let $=fW(J.query);if(!$.length){if(this.menuEl)this.menuEl.style.display="none";return}if(J.idx>$.length-1)J.idx=$.length-1;if(!this.menuEl){let O=document.createElement("div");O.className="pop cm-slash-menu",O.style.zIndex="90",O.addEventListener("mousedown",(N)=>N.preventDefault()),document.body.appendChild(O),this.menuEl=O}let Q=this.menuEl,X=this.view.coordsAtPos(J.slashFrom);if(!X){Q.style.display="none";return}let z=8,K=6,Y=parseFloat(getComputedStyle(document.body).getPropertyValue("--pop-top-inset"))||0,q=innerHeight-X.bottom-z,W=X.top-K-Math.max(z,Y),U=q>=240||q>=W,H=Math.max(z,Math.min(X.left,innerWidth-vW-z)),F=Math.round(Math.min(U?q:W,innerHeight*0.7));Q.style.display="",Q.style.left=`${H}px`,Q.style.minWidth=`${vW}px`,Q.style.maxHeight=`${F}px`,Q.style.top=U?`${X.bottom+K}px`:"",Q.style.bottom=U?"":`${innerHeight-X.top+K}px`,g0(G(t,{children:[G(i0,{children:"基础块"},void 0,!1,void 0,this),$.map((O,N)=>G("button",{class:"item"+(N===J.idx?" sel":""),onMouseDown:(_)=>{_.preventDefault(),this.select(O.type)},children:[G("span",{class:"lico",children:G(g,{name:O.ic,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"meta",children:[G("span",{class:"t",children:O.t},void 0,!1,void 0,this),G("span",{class:"d",children:O.d},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},O.type,!0,void 0,this))]},void 0,!0,void 0,this),Q),Q.querySelector(".item.sel")?.scrollIntoView({block:"nearest"})}close(){if(this.active=null,this.menuEl)g0(null,this.menuEl),this.menuEl.remove(),this.menuEl=null}})}function YM(Z){for(var J=1;J<arguments.length;J++){var $=arguments[J];for(var Q in $)if(Object.prototype.hasOwnProperty.call($,Q))Z[Q]=$[Q]}return Z}function G3(Z,J){return Array(J+1).join(Z)}function cW(Z){return Z.replace(/^\n*/,"")}function dW(Z){var J=Z.length;while(J>0&&Z[J-1]===`
|
|
112
|
+
`)J--;return Z.substring(0,J)}function lW(Z){return dW(cW(Z))}var GM=["ADDRESS","ARTICLE","ASIDE","AUDIO","BLOCKQUOTE","BODY","CANVAS","CENTER","DD","DIR","DIV","DL","DT","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAMESET","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","HTML","ISINDEX","LI","MAIN","MENU","NAV","NOFRAMES","NOSCRIPT","OL","OUTPUT","P","PRE","SECTION","TABLE","TBODY","TD","TFOOT","TH","THEAD","TR","UL"];function q3(Z){return W3(Z,GM)}var aW=["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR"];function iW(Z){return W3(Z,aW)}function qM(Z){return sW(Z,aW)}var nW=["A","TABLE","THEAD","TBODY","TFOOT","TH","TD","IFRAME","SCRIPT","AUDIO","VIDEO"];function WM(Z){return W3(Z,nW)}function UM(Z){return sW(Z,nW)}function W3(Z,J){return J.indexOf(Z.nodeName)>=0}function sW(Z,J){return Z.getElementsByTagName&&J.some(function($){return Z.getElementsByTagName($).length})}var HM=[[/\\/g,"\\\\"],[/\*/g,"\\*"],[/^-/g,"\\-"],[/^\+ /g,"\\+ "],[/^(=+)/g,"\\$1"],[/^(#{1,6}) /g,"\\$1 "],[/`/g,"\\`"],[/^~~~/g,"\\~~~"],[/\[/g,"\\["],[/\]/g,"\\]"],[/^>/g,"\\>"],[/_/g,"\\_"],[/^(\d+)\. /g,"$1\\. "]];function rW(Z){return HM.reduce(function(J,$){return J.replace($[0],$[1])},Z)}var L9={};L9.paragraph={filter:"p",replacement:function(Z){return`
|
|
40
113
|
|
|
41
114
|
`+Z+`
|
|
42
115
|
|
|
43
|
-
`}};
|
|
44
|
-
`}};
|
|
116
|
+
`}};L9.lineBreak={filter:"br",replacement:function(Z,J,$){return $.br+`
|
|
117
|
+
`}};L9.heading={filter:["h1","h2","h3","h4","h5","h6"],replacement:function(Z,J,$){var Q=Number(J.nodeName.charAt(1));if($.headingStyle==="setext"&&Q<3){var X=G3(Q===1?"=":"-",Z.length);return`
|
|
45
118
|
|
|
46
119
|
`+Z+`
|
|
47
|
-
`+
|
|
120
|
+
`+X+`
|
|
48
121
|
|
|
49
122
|
`}else return`
|
|
50
123
|
|
|
51
|
-
`+
|
|
124
|
+
`+G3("#",Q)+" "+Z+`
|
|
52
125
|
|
|
53
|
-
`}};
|
|
126
|
+
`}};L9.blockquote={filter:"blockquote",replacement:function(Z){return Z=lW(Z).replace(/^/gm,"> "),`
|
|
54
127
|
|
|
55
128
|
`+Z+`
|
|
56
129
|
|
|
57
|
-
`}};
|
|
130
|
+
`}};L9.list={filter:["ul","ol"],replacement:function(Z,J){var $=J.parentNode;if($.nodeName==="LI"&&$.lastElementChild===J)return`
|
|
58
131
|
`+Z;else return`
|
|
59
132
|
|
|
60
133
|
`+Z+`
|
|
61
134
|
|
|
62
|
-
`}};
|
|
135
|
+
`}};L9.listItem={filter:"li",replacement:function(Z,J,$){var Q=$.bulletListMarker+" ",X=J.parentNode;if(X.nodeName==="OL"){var z=X.getAttribute("start"),K=Array.prototype.indexOf.call(X.children,J);Q=(z?Number(z)+K:K+1)+". "}var Y=/\n$/.test(Z);return Z=lW(Z)+(Y?`
|
|
63
136
|
`:""),Z=Z.replace(/\n/gm,`
|
|
64
|
-
`+" ".repeat(
|
|
65
|
-
`:"")}};
|
|
137
|
+
`+" ".repeat(Q.length)),Q+Z+(J.nextSibling?`
|
|
138
|
+
`:"")}};L9.indentedCodeBlock={filter:function(Z,J){return J.codeBlockStyle==="indented"&&Z.nodeName==="PRE"&&Z.firstChild&&Z.firstChild.nodeName==="CODE"},replacement:function(Z,J,$){return`
|
|
66
139
|
|
|
67
140
|
`+J.firstChild.textContent.replace(/\n/g,`
|
|
68
141
|
`)+`
|
|
69
142
|
|
|
70
|
-
`}};
|
|
143
|
+
`}};L9.fencedCodeBlock={filter:function(Z,J){return J.codeBlockStyle==="fenced"&&Z.nodeName==="PRE"&&Z.firstChild&&Z.firstChild.nodeName==="CODE"},replacement:function(Z,J,$){var Q=J.firstChild.getAttribute("class")||"",X=(Q.match(/language-(\S+)/)||[null,""])[1],z=J.firstChild.textContent,K=$.fence.charAt(0),Y=3,q=new RegExp("^"+K+"{3,}","gm"),W;while(W=q.exec(z))if(W[0].length>=Y)Y=W[0].length+1;var U=G3(K,Y);return`
|
|
71
144
|
|
|
72
|
-
`+
|
|
73
|
-
`+
|
|
74
|
-
`+
|
|
145
|
+
`+U+X+`
|
|
146
|
+
`+z.replace(/\n$/,"")+`
|
|
147
|
+
`+U+`
|
|
75
148
|
|
|
76
|
-
`}};
|
|
149
|
+
`}};L9.horizontalRule={filter:"hr",replacement:function(Z,J,$){return`
|
|
77
150
|
|
|
78
|
-
|
|
151
|
+
`+$.hr+`
|
|
79
152
|
|
|
80
|
-
`}};
|
|
153
|
+
`}};L9.inlineLink={filter:function(Z,J){return J.linkStyle==="inlined"&&Z.nodeName==="A"&&Z.getAttribute("href")},replacement:function(Z,J){var $=U3(J.getAttribute("href")),Q=H3(c7(J.getAttribute("title"))),X=Q?' "'+Q+'"':"";return"["+Z+"]("+$+X+")"}};L9.referenceLink={filter:function(Z,J){return J.linkStyle==="referenced"&&Z.nodeName==="A"&&Z.getAttribute("href")},replacement:function(Z,J,$){var Q=U3(J.getAttribute("href")),X=c7(J.getAttribute("title"));if(X)X=' "'+H3(X)+'"';var z,K;switch($.linkReferenceStyle){case"collapsed":z="["+Z+"][]",K="["+Z+"]: "+Q+X;break;case"shortcut":z="["+Z+"]",K="["+Z+"]: "+Q+X;break;default:var Y=this.references.length+1;z="["+Z+"]["+Y+"]",K="["+Y+"]: "+Q+X}return this.references.push(K),z},references:[],append:function(Z){var J="";if(this.references.length)J=`
|
|
81
154
|
|
|
82
155
|
`+this.references.join(`
|
|
83
156
|
`)+`
|
|
84
157
|
|
|
85
|
-
`,this.references=[];return J}};
|
|
86
|
-
`):""}function
|
|
158
|
+
`,this.references=[];return J}};L9.emphasis={filter:["em","i"],replacement:function(Z,J,$){if(!Z.trim())return"";return $.emDelimiter+Z+$.emDelimiter}};L9.strong={filter:["strong","b"],replacement:function(Z,J,$){if(!Z.trim())return"";return $.strongDelimiter+Z+$.strongDelimiter}};L9.code={filter:function(Z){var J=Z.previousSibling||Z.nextSibling,$=Z.parentNode.nodeName==="PRE"&&!J;return Z.nodeName==="CODE"&&!$},replacement:function(Z){if(!Z)return"";Z=Z.replace(/\r?\n|\r/g," ");var J=/^`|^ .*?[^ ].* $|`$/.test(Z)?" ":"",$="`",Q=Z.match(/`+/gm)||[];while(Q.indexOf($)!==-1)$=$+"`";return $+J+Z+J+$}};L9.image={filter:"img",replacement:function(Z,J){var $=rW(c7(J.getAttribute("alt"))),Q=U3(J.getAttribute("src")||""),X=c7(J.getAttribute("title")),z=X?' "'+H3(X)+'"':"";return Q?"":""}};function c7(Z){return Z?Z.replace(/(\n+\s*)+/g,`
|
|
159
|
+
`):""}function U3(Z){var J=Z.replace(/([<>()])/g,"\\$1");return J.indexOf(" ")>=0?"<"+J+">":J}function H3(Z){return Z.replace(/"/g,"\\\"")}function oW(Z){this.options=Z,this._keep=[],this._remove=[],this.blankRule={replacement:Z.blankReplacement},this.keepReplacement=Z.keepReplacement,this.defaultRule={replacement:Z.defaultReplacement},this.array=[];for(var J in Z.rules)this.array.push(Z.rules[J])}oW.prototype={add:function(Z,J){this.array.unshift(J)},keep:function(Z){this._keep.unshift({filter:Z,replacement:this.keepReplacement})},remove:function(Z){this._remove.unshift({filter:Z,replacement:function(){return""}})},forNode:function(Z){if(Z.isBlank)return this.blankRule;var J;if(J=z3(this.array,Z,this.options))return J;if(J=z3(this._keep,Z,this.options))return J;if(J=z3(this._remove,Z,this.options))return J;return this.defaultRule},forEach:function(Z){for(var J=0;J<this.array.length;J++)Z(this.array[J],J)}};function z3(Z,J,$){for(var Q=0;Q<Z.length;Q++){var X=Z[Q];if(FM(X,J,$))return X}return}function FM(Z,J,$){var Q=Z.filter;if(typeof Q==="string"){if(Q===J.nodeName.toLowerCase())return!0}else if(Array.isArray(Q)){if(Q.indexOf(J.nodeName.toLowerCase())>-1)return!0}else if(typeof Q==="function"){if(Q.call(Z,J,$))return!0}else throw TypeError("`filter` needs to be a string, array, or function")}function OM(Z){var{element:J,isBlock:$,isVoid:Q}=Z,X=Z.isPre||function(H){return H.nodeName==="PRE"};if(!J.firstChild||X(J))return;var z=null,K=!1,Y=null,q=uW(Y,J,X);while(q!==J){if(q.nodeType===3||q.nodeType===4){var W=q.data.replace(/[ \r\n\t]+/g," ");if((!z||/ $/.test(z.data))&&!K&&W[0]===" ")W=W.substr(1);if(!W){q=K3(q);continue}q.data=W,z=q}else if(q.nodeType===1){if($(q)||q.nodeName==="BR"){if(z)z.data=z.data.replace(/ $/,"");z=null,K=!1}else if(Q(q)||X(q))z=null,K=!0;else if(z)K=!1}else{q=K3(q);continue}var U=uW(Y,q,X);Y=q,q=U}if(z){if(z.data=z.data.replace(/ $/,""),!z.data)K3(z)}}function K3(Z){var J=Z.nextSibling||Z.parentNode;return Z.parentNode.removeChild(Z),J}function uW(Z,J,$){if(Z&&Z.parentNode===J||$(J))return J.nextSibling||J.parentNode;return J.firstChild||J.nextSibling||J.parentNode}var F3=typeof window<"u"?window:{};function NM(){var Z=F3.DOMParser,J=!1;try{if(new Z().parseFromString("","text/html"))J=!0}catch($){}return J}function BM(){var Z=function(){};if(_M())Z.prototype.parseFromString=function(J){var $=new window.ActiveXObject("htmlfile");return $.designMode="on",$.open(),$.write(J),$.close(),$};else Z.prototype.parseFromString=function(J){var $=document.implementation.createHTMLDocument("");return $.open(),$.write(J),$.close(),$};return Z}function _M(){var Z=!1;try{document.implementation.createHTMLDocument("").open()}catch(J){if(F3.ActiveXObject)Z=!0}return Z}var AM=NM()?F3.DOMParser:BM();function LM(Z,J){var $;if(typeof Z==="string"){var Q=PM().parseFromString('<x-turndown id="turndown-root">'+Z+"</x-turndown>","text/html");$=Q.getElementById("turndown-root")}else $=Z.cloneNode(!0);return OM({element:$,isBlock:q3,isVoid:iW,isPre:J.preformattedCode?MM:null}),$}var Y3;function PM(){return Y3=Y3||new AM,Y3}function MM(Z){return Z.nodeName==="PRE"||Z.nodeName==="CODE"}function IM(Z,J){return Z.isBlock=q3(Z),Z.isCode=Z.nodeName==="CODE"||Z.parentNode.isCode,Z.isBlank=RM(Z),Z.flankingWhitespace=CM(Z,J),Z}function RM(Z){return!iW(Z)&&!WM(Z)&&/^\s*$/i.test(Z.textContent)&&!qM(Z)&&!UM(Z)}function CM(Z,J){if(Z.isBlock||J.preformattedCode&&Z.isCode)return{leading:"",trailing:""};var $=VM(Z.textContent);if($.leadingAscii&&pW("left",Z,J))$.leading=$.leadingNonAscii;if($.trailingAscii&&pW("right",Z,J))$.trailing=$.trailingNonAscii;return{leading:$.leading,trailing:$.trailing}}function VM(Z){var J=Z.match(/^(([ \t\r\n]*)(\s*))(?:(?=\S)[\s\S]*\S)?((\s*?)([ \t\r\n]*))$/);return{leading:J[1],leadingAscii:J[2],leadingNonAscii:J[3],trailing:J[4],trailingNonAscii:J[5],trailingAscii:J[6]}}function pW(Z,J,$){var Q,X,z;if(Z==="left")Q=J.previousSibling,X=/ $/;else Q=J.nextSibling,X=/^ /;if(Q){if(Q.nodeType===3)z=X.test(Q.nodeValue);else if($.preformattedCode&&Q.nodeName==="CODE")z=!1;else if(Q.nodeType===1&&!q3(Q))z=X.test(Q.textContent)}return z}var yM=Array.prototype.reduce;function c5(Z){if(!(this instanceof c5))return new c5(Z);var J={rules:L9,headingStyle:"setext",hr:"* * *",bulletListMarker:"*",codeBlockStyle:"indented",fence:"```",emDelimiter:"_",strongDelimiter:"**",linkStyle:"inlined",linkReferenceStyle:"full",br:" ",preformattedCode:!1,blankReplacement:function($,Q){return Q.isBlock?`
|
|
87
160
|
|
|
88
|
-
`:""},keepReplacement:function(Q
|
|
161
|
+
`:""},keepReplacement:function($,Q){return Q.isBlock?`
|
|
89
162
|
|
|
90
|
-
`+
|
|
163
|
+
`+Q.outerHTML+`
|
|
91
164
|
|
|
92
|
-
`:
|
|
165
|
+
`:Q.outerHTML},defaultReplacement:function($,Q){return Q.isBlock?`
|
|
93
166
|
|
|
94
|
-
|
|
167
|
+
`+$+`
|
|
95
168
|
|
|
96
|
-
|
|
169
|
+
`:$}};this.options=YM({},J,Z),this.rules=new oW(this.options)}c5.prototype={turndown:function(Z){if(!jM(Z))throw TypeError(Z+" is not a string, or an element/document/fragment node.");if(Z==="")return"";var J=tW.call(this,new LM(Z,this.options));return kM.call(this,J)},use:function(Z){if(Array.isArray(Z))for(var J=0;J<Z.length;J++)this.use(Z[J]);else if(typeof Z==="function")Z(this);else throw TypeError("plugin must be a Function or an Array of Functions");return this},addRule:function(Z,J){return this.rules.add(Z,J),this},keep:function(Z){return this.rules.keep(Z),this},remove:function(Z){return this.rules.remove(Z),this},escape:function(Z){return rW(Z)}};function tW(Z){var J=this;return yM.call(Z.childNodes,function($,Q){Q=new IM(Q,J.options);var X="";if(Q.nodeType===3)X=Q.isCode?Q.nodeValue:J.escape(Q.nodeValue);else if(Q.nodeType===1)X=TM.call(J,Q);return eW($,X)},"")}function kM(Z){var J=this;return this.rules.forEach(function($){if(typeof $.append==="function")Z=eW(Z,$.append(J.options))}),Z.replace(/^[\t\r\n]+/,"").replace(/[\t\r\n\s]+$/,"")}function TM(Z){var J=this.rules.forNode(Z),$=tW.call(this,Z),Q=Z.flankingWhitespace;if(Q.leading||Q.trailing)$=$.trim();return Q.leading+J.replacement($,Z,this.options)+Q.trailing}function eW(Z,J){var $=dW(Z),Q=cW(J),X=Math.max(Z.length-$.length,J.length-Q.length),z=`
|
|
97
170
|
|
|
98
|
-
`.substring(0,
|
|
171
|
+
`.substring(0,X);return $+z+Q}function jM(Z){return Z!=null&&(typeof Z==="string"||Z.nodeType&&(Z.nodeType===1||Z.nodeType===9||Z.nodeType===11))}var ZU=/highlight-(?:text|source)-([a-z0-9]+)/;function DM(Z){Z.addRule("highlightedCodeBlock",{filter:function(J){var $=J.firstChild;return J.nodeName==="DIV"&&ZU.test(J.className)&&$&&$.nodeName==="PRE"},replacement:function(J,$,Q){var X=$.className||"",z=(X.match(ZU)||[null,""])[1];return`
|
|
99
172
|
|
|
100
|
-
`+
|
|
101
|
-
|
|
102
|
-
`+
|
|
173
|
+
`+Q.fence+z+`
|
|
174
|
+
`+$.firstChild.textContent+`
|
|
175
|
+
`+Q.fence+`
|
|
103
176
|
|
|
104
|
-
`}})}function
|
|
105
|
-
`+Z+(
|
|
106
|
-
|
|
177
|
+
`}})}function SM(Z){Z.addRule("strikethrough",{filter:["del","s","strike"],replacement:function(J){return"~"+J+"~"}})}var bM=Array.prototype.indexOf,EM=Array.prototype.every,x6={};x6.tableCell={filter:["th","td"],replacement:function(Z,J){return JU(Z,J)}};x6.tableRow={filter:"tr",replacement:function(Z,J){var $="",Q={left:":--",right:"--:",center:":-:"};if(O3(J))for(var X=0;X<J.childNodes.length;X++){var z="---",K=(J.childNodes[X].getAttribute("align")||"").toLowerCase();if(K)z=Q[K]||z;$+=JU(z,J.childNodes[X])}return`
|
|
178
|
+
`+Z+($?`
|
|
179
|
+
`+$:"")}};x6.table={filter:function(Z){return Z.nodeName==="TABLE"&&O3(Z.rows[0])},replacement:function(Z){return Z=Z.replace(`
|
|
107
180
|
|
|
108
181
|
`,`
|
|
109
182
|
`),`
|
|
110
183
|
|
|
111
184
|
`+Z+`
|
|
112
185
|
|
|
113
|
-
`}};
|
|
186
|
+
`}};x6.tableSection={filter:["thead","tbody","tfoot"],replacement:function(Z){return Z}};function O3(Z){var J=Z.parentNode;return J.nodeName==="THEAD"||J.firstChild===Z&&(J.nodeName==="TABLE"||wM(J))&&EM.call(Z.childNodes,function($){return $.nodeName==="TH"})}function wM(Z){var J=Z.previousSibling;return Z.nodeName==="TBODY"&&(!J||J.nodeName==="THEAD"&&/^\s*$/i.test(J.textContent))}function JU(Z,J){var $=bM.call(J.parentNode.childNodes,J),Q=" ";if($===0)Q="| ";return Q+Z+" |"}function xM(Z){Z.keep(function($){return $.nodeName==="TABLE"&&!O3($.rows[0])});for(var J in x6)Z.addRule(J,x6[J])}function vM(Z){Z.addRule("taskListItems",{filter:function(J){return J.type==="checkbox"&&J.parentNode.nodeName==="LI"},replacement:function(J,$){return($.checked?"[x]":"[ ]")+" "}})}function $U(Z){Z.use([DM,SM,xM,vM])}function hM(Z){let J=Z.match(/(?:language|lang)-(\S+)/);return J?J[1]:""}function fM(){let Z=new c5({codeBlockStyle:"fenced",headingStyle:"atx",bulletListMarker:"-",emDelimiter:"*",strongDelimiter:"**"});return Z.use($U),Z.remove(["style","script","title"]),Z.escape=(J)=>J,Z.addRule("fencedCodeWithLang",{filter:(J)=>J.nodeName==="PRE"&&!!J.querySelector("code"),replacement:(J,$)=>{let Q=$.querySelector("code"),X=(Q?.textContent??$.textContent??"").replace(/\n$/,""),z=Q?hM(Q.className):"",K="```";return`
|
|
114
187
|
|
|
115
|
-
\`\`\`${
|
|
116
|
-
${
|
|
188
|
+
\`\`\`${z}
|
|
189
|
+
${X}
|
|
117
190
|
\`\`\`
|
|
118
191
|
|
|
119
|
-
`}}),Z}var
|
|
120
|
-
`)).join(`
|
|
121
|
-
`)}function
|
|
122
|
-
`),Q=
|
|
123
|
-
`)
|
|
124
|
-
`)}
|
|
125
|
-
`)
|
|
126
|
-
`)
|
|
127
|
-
`)
|
|
128
|
-
`)
|
|
129
|
-
`)
|
|
130
|
-
`)
|
|
131
|
-
`).map((
|
|
132
|
-
`).map((z)=>`${X}${nW(z)}`)}}function tW(Z,J,Q){let X=" ".repeat(J),z=Z.type==="numbered"?`${Q}. `:Z.type==="todo"?`- [${Z.checked?"x":" "}] `:"- ",W=[`${X}${z}${Z.content}`],G=Z.children??[],q=G.find((H)=>!j9(H)&&j$(H));if(q){if(!Q9(q.type)&&Z.content.trim()!=="")W.push("");W.push(...k$(G,J+2,!1))}return W}function sW(Z,J){if(!Z)return!1;return!(Q9(Z.type)&&Q9(J.type))}function j$(Z){if(Z.type==="divider")return!0;if(Q9(Z.type))return!0;if(Z.type==="code")return Z.content.trim()!==""||!!Z.lang?.trim();if(Z.type==="table")return(Z.rows??[]).some((J)=>J.some((Q)=>Q.trim()!==""));if(Z.type==="uploading")return!1;if(_$(Z.type))return!!Z.src;if(Z.type==="html")return Z.content.trim()!=="";return Z.content.trim()!==""}function h9(Z){let J=0;for(let Q of Z)if(Q===" ")J++;else if(Q==="\t")J+=4;else break;return J}function O9(Z,J){let Q=0,X=0;for(;X<Z.length&&Q<J;X++){let z=Z[X];if(z===" ")Q++;else if(z==="\t")Q+=4;else break}return Z.slice(X)}function eW(Z,J,Q){let X=Z.trim();if(!X||X[0]!==J)return!1;for(let z of X)if(z!==J)return!1;return X.length>=Q}function R1(Z){return Z.trim().replace(/[^A-Za-z0-9_+.#-]/g,"")}var k1=[{id:"",label:"纯文本"},{id:"bash",label:"Bash"},{id:"shell",label:"Shell"},{id:"javascript",label:"JavaScript"},{id:"typescript",label:"TypeScript"},{id:"json",label:"JSON"},{id:"python",label:"Python"},{id:"go",label:"Go"},{id:"rust",label:"Rust"},{id:"java",label:"Java"},{id:"c",label:"C"},{id:"cpp",label:"C++"},{id:"csharp",label:"C#"},{id:"sql",label:"SQL"},{id:"yaml",label:"YAML"},{id:"xml",label:"HTML / XML"},{id:"css",label:"CSS"},{id:"scss",label:"SCSS"},{id:"markdown",label:"Markdown"},{id:"php",label:"PHP"},{id:"ruby",label:"Ruby"},{id:"swift",label:"Swift"},{id:"kotlin",label:"Kotlin"},{id:"objectivec",label:"Objective-C"},{id:"perl",label:"Perl"},{id:"lua",label:"Lua"},{id:"makefile",label:"Makefile"},{id:"ini",label:"INI / TOML"},{id:"diff",label:"Diff"}],I1=[{type:"p",ic:"text",t:"文本",d:"普通段落"},{type:"h1",ic:"heading",t:"标题 1",d:"大号标题"},{type:"h2",ic:"heading",t:"标题 2",d:"中号标题"},{type:"h3",ic:"heading",t:"标题 3",d:"小号标题"},{type:"bullet",ic:"list",t:"无序列表",d:"项目符号"},{type:"numbered",ic:"numList",t:"有序列表",d:"编号列表"},{type:"todo",ic:"checkbox",t:"待办清单",d:"复选项"},{type:"quote",ic:"quote",t:"引用",d:"引用块"},{type:"code",ic:"code",t:"代码",d:"代码块"},{type:"table",ic:"table",t:"表格",d:"插入表格"},{type:"divider",ic:"minus",t:"分隔线",d:"水平分隔"},{type:"image",ic:"image",t:"图片",d:"上传或拖入图片"},{type:"video",ic:"video",t:"视频",d:"上传视频文件"},{type:"audio",ic:"audio",t:"音频",d:"上传音频文件"},{type:"file",ic:"file",t:"文件",d:"上传任意文件"},{type:"html",ic:"htmlTag",t:"HTML",d:"嵌入并渲染 HTML"}];function oZ(Z){return Z==="image"||Z==="video"||Z==="audio"||Z==="file"}function ZG(Z){if(Z==null||!isFinite(Z))return"";if(Z<1024)return`${Z} B`;if(Z<1048576)return`${(Z/1024).toFixed(0)} KB`;if(Z<1073741824)return`${(Z/1048576).toFixed(1)} MB`;return`${(Z/1073741824).toFixed(2)} GB`}function S1({icon:Z,name:J,onRetry:Q}){return $("div",{class:"void-block void-unavailable",children:[$(f,{name:Z,cls:"ico"},void 0,!1,void 0,this),$("span",{class:"vu-meta",children:[$("span",{class:"vu-name",children:J||"媒体"},void 0,!1,void 0,this),$("span",{class:"vu-sub",children:"字节未同步到本设备或加载失败"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"vu-retry",onClick:Q,onMouseDown:(X)=>X.stopPropagation(),children:[$(f,{name:"history",cls:"ico sm"},void 0,!1,void 0,this)," 重试"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function h$({block:Z}){return $("div",{class:"void-block void-uploading",children:[$(f,{name:"spinner",cls:"ico spin"},void 0,!1,void 0,this),$("span",{class:"vu-name",children:Z.name||"上传中…"},void 0,!1,void 0,this),$("span",{class:"vu-sub",children:"上传中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function D$({block:Z,selected:J,onResize:Q,onPreview:X}){let z=W0(null),W=W0(null),[G,q]=k(Z.width),H=W0(Z.width),[Y,F]=k(!1),[K,w]=k(0);l(()=>{q(Z.width),H.current=Z.width},[Z.width]),l(()=>F(!1),[Z.src]);let P=(A,_)=>{A.preventDefault(),A.stopPropagation();let V=W.current;if(!V)return;let D=A.clientX,v=V.offsetWidth,R=z.current?.closest(".doc")?.clientWidth??1200,x=(O)=>{let N=O.clientX-D,L=Math.max(60,Math.min(_==="r"?v+N:v-N,R));H.current=Math.round(L),q(H.current)},S=()=>{window.removeEventListener("mousemove",x),window.removeEventListener("mouseup",S),Q(H.current)};window.addEventListener("mousemove",x),window.addEventListener("mouseup",S)};if(Y)return $(S1,{icon:"image",name:Z.name,onRetry:()=>{w((A)=>A+1),F(!1)}},void 0,!1,void 0,this);return $("div",{ref:z,class:"void-block void-image"+(J?" selected":""),style:{width:G?`${G}px`:void 0},onDblClick:X,children:[$("img",{ref:W,src:Z.src,alt:Z.name??"",loading:"lazy",draggable:!1,title:"双击预览 / 标注",onError:()=>F(!0)},K,!1,void 0,this),$("button",{class:"void-expand",title:"预览",onClick:X,onMouseDown:(A)=>A.stopPropagation(),children:$(f,{name:"maximize",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),J&&$(o,{children:[$("span",{class:"img-handle h-l",onMouseDown:(A)=>P(A,"l")},void 0,!1,void 0,this),$("span",{class:"img-handle h-r",onMouseDown:(A)=>P(A,"r")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function x$({block:Z}){let[J,Q]=k(!1),[X,z]=k(0);if(l(()=>Q(!1),[Z.src]),J)return $(S1,{icon:"video",name:Z.name,onRetry:()=>{z((W)=>W+1),Q(!1)}},void 0,!1,void 0,this);return $("div",{class:"void-block void-media void-video",children:$("video",{src:Z.src,controls:!0,preload:"metadata",onError:()=>Q(!0)},X,!1,void 0,this)},void 0,!1,void 0,this)}function m$({block:Z}){let[J,Q]=k(!1),[X,z]=k(0);if(l(()=>Q(!1),[Z.src]),J)return $(S1,{icon:"audio",name:Z.name,onRetry:()=>{z((W)=>W+1),Q(!1)}},void 0,!1,void 0,this);return $("div",{class:"void-block void-media void-audio",children:[Z.name&&$("div",{class:"void-audio-name",children:Z.name},void 0,!1,void 0,this),$("audio",{src:Z.src,controls:!0,preload:"metadata",onError:()=>Q(!0)},X,!1,void 0,this)]},void 0,!0,void 0,this)}function u$({block:Z}){let J=Z.name||"文件",Q=J.includes(".")?J.slice(J.lastIndexOf(".")+1).toUpperCase():"";return $("a",{class:"void-block void-file",href:Z.src,download:J,target:"_blank",rel:"noreferrer",onMouseDown:(X)=>X.stopPropagation(),children:[$("span",{class:"file-glyph",children:[$(f,{name:"file",cls:"ico"},void 0,!1,void 0,this),Q&&$("span",{class:"file-ext",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("span",{class:"file-meta",children:[$("span",{class:"file-name",children:J},void 0,!1,void 0,this),$("span",{class:"file-sub",children:ZG(Z.size)||"下载文件"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("span",{class:"file-dl",children:$(f,{name:"download",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var JG="<script>(function(){function r(){try{parent.postMessage({__mhHtmlHeight:document.documentElement.scrollHeight},'*')}catch(e){}}try{new ResizeObserver(r).observe(document.documentElement)}catch(e){}addEventListener('load',r);setTimeout(r,60);setTimeout(r,400)})();</script>";function $G(Z){return`<!doctype html><html><head><meta charset="utf-8"><base target="_blank"><style>html,body{margin:0;padding:0;color-scheme:light dark;font-family:system-ui,-apple-system,sans-serif}</style></head><body>${Z}${JG}</body></html>`}function E$({block:Z,selected:J,onChange:Q}){let[X,z]=k(!Z.content.trim()),[W,G]=k(120),q=W0(null),H=W0(null);return l(()=>{if(X)H.current?.focus()},[X]),l(()=>{let Y=(F)=>{if(q.current&&F.source===q.current.contentWindow){let K=Number(F.data?.__mhHtmlHeight);if(K>0)G(Math.max(48,Math.min(Math.ceil(K),4000)))}};return window.addEventListener("message",Y),()=>window.removeEventListener("message",Y)},[]),$("div",{class:"void-block void-html"+(J?" selected":""),children:[$("div",{class:"html-bar",children:[$("span",{class:"html-tag",children:[$(f,{name:"htmlTag",cls:"ico sm"},void 0,!1,void 0,this)," HTML"]},void 0,!0,void 0,this),$("button",{class:"html-toggle"+(X?" on":""),title:X?"预览渲染":"编辑源码",onMouseDown:(Y)=>Y.stopPropagation(),onClick:()=>z((Y)=>!Y),children:[$(f,{name:X?"eye":"code",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:X?"预览":"源码"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X?$("textarea",{ref:H,class:"html-source code-input",spellcheck:!1,placeholder:"<!-- 在此粘贴 / 编写 HTML,将沙箱渲染 -->",value:Z.content,onMouseDown:(Y)=>Y.stopPropagation(),onInput:(Y)=>Q(Y.currentTarget.value)},void 0,!1,void 0,this):Z.content.trim()?$("iframe",{ref:q,class:"html-frame",title:"HTML 预览",sandbox:"allow-scripts allow-popups",srcdoc:$G(Z.content),style:{height:`${W}px`}},void 0,!1,void 0,this):$("div",{class:"html-empty",onClick:()=>z(!0),children:"空的 HTML 块 — 点此添加内容"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var p$=["#ef4444","#f59e0b","#22c55e","#3b82f6","#111827","#ffffff"],V1=3,QG=20;function f1(Z,J,Q){if(Z.strokeStyle=J.color,Z.fillStyle=J.color,Z.lineWidth=V1*Q,Z.lineJoin="round",Z.lineCap="round",J.tool==="rect"){let X=Math.min(J.x1,J.x2)*Q,z=Math.min(J.y1,J.y2)*Q;Z.strokeRect(X,z,Math.abs(J.x2-J.x1)*Q,Math.abs(J.y2-J.y1)*Q)}else if(J.tool==="arrow"){let X=J.x1*Q,z=J.y1*Q,W=J.x2*Q,G=J.y2*Q,q=Math.atan2(G-z,W-X),H=Math.max(10,V1*Q*3.2);Z.beginPath(),Z.moveTo(X,z),Z.lineTo(W,G),Z.stroke(),Z.beginPath(),Z.moveTo(W,G),Z.lineTo(W-H*Math.cos(q-Math.PI/7),G-H*Math.sin(q-Math.PI/7)),Z.lineTo(W-H*Math.cos(q+Math.PI/7),G-H*Math.sin(q+Math.PI/7)),Z.closePath(),Z.fill()}else if(J.tool==="text"&&J.text)Z.font=`600 ${QG*Q}px system-ui, -apple-system, sans-serif`,Z.textBaseline="top",Z.lineWidth=Math.max(2,V1*Q),Z.strokeStyle="rgba(0,0,0,.55)",Z.strokeText(J.text,J.x1*Q,J.y1*Q),Z.fillText(J.text,J.x1*Q,J.y1*Q)}function d$({src:Z,onCancel:J,onSave:Q}){let X=W0(null),z=W0(null),[W,G]=k("rect"),[q,H]=k(p$[0]),[Y,F]=k([]),[K,w]=k(!1),P=W0(null),A=W0(!1),_=()=>{let O=X.current,N=z.current;if(!O||!N)return;N.width=O.clientWidth,N.height=O.clientHeight,V()},V=()=>{let O=z.current;if(!O)return;let N=O.getContext("2d");if(!N)return;N.clearRect(0,0,O.width,O.height);for(let L of Y)f1(N,L,1);if(P.current)f1(N,P.current,1)};l(V,[Y]),l(()=>{let O=()=>_();return window.addEventListener("resize",O),()=>window.removeEventListener("resize",O)},[]);let D=(O)=>{let N=z.current.getBoundingClientRect();return{x:O.clientX-N.left,y:O.clientY-N.top}},v=async(O)=>{O.preventDefault();let N=D(O);if(W==="text"){let L=await Y9({title:"添加文字标注",placeholder:"输入文字…",confirmLabel:"添加"});if(L&&L.trim())F((B)=>[...B,{tool:"text",x1:N.x,y1:N.y,x2:N.x,y2:N.y,color:q,text:L.trim()}]);return}A.current=!0,P.current={tool:W,x1:N.x,y1:N.y,x2:N.x,y2:N.y,color:q},V()},R=(O)=>{if(!A.current||!P.current)return;let N=D(O);P.current={...P.current,x2:N.x,y2:N.y},V()},x=()=>{if(!A.current)return;A.current=!1;let O=P.current;if(P.current=null,O&&(Math.abs(O.x2-O.x1)>3||Math.abs(O.y2-O.y1)>3))F((N)=>[...N,O]);else V()},S=()=>{let O=X.current;if(!O)return;w(!0);let N=document.createElement("canvas");N.width=O.naturalWidth||O.clientWidth,N.height=O.naturalHeight||O.clientHeight;let L=N.getContext("2d");if(!L){w(!1);return}L.drawImage(O,0,0,N.width,N.height);let B=N.width/(z.current?.width||O.clientWidth||1);for(let M of Y)f1(L,M,B);N.toBlob((M)=>{if(w(!1),M)Q(M)},"image/png")};return $("div",{class:"annot",onMouseDown:(O)=>O.stopPropagation(),children:[$("div",{class:"annot-toolbar",children:[$("div",{class:"annot-tools",children:[$("button",{class:"annot-tool"+(W==="rect"?" on":""),title:"矩形框选",onClick:()=>G("rect"),children:$(f,{name:"square",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"annot-tool"+(W==="arrow"?" on":""),title:"箭头",onClick:()=>G("arrow"),children:$(f,{name:"arrowUpRight",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"annot-tool"+(W==="text"?" on":""),title:"文字",onClick:()=>G("text"),children:$(f,{name:"type",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"annot-colors",children:p$.map((O)=>$("button",{class:"annot-swatch"+(O===q?" on":""),style:{background:O},title:O,onClick:()=>H(O)},O,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"annot-actions",children:[$("button",{class:"annot-tool",title:"撤销",disabled:!Y.length,onClick:()=>F((O)=>O.slice(0,-1)),children:$(f,{name:"undo",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"btn btn-secondary",onClick:J,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",disabled:K,onClick:S,children:K?"保存中…":"保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"annot-stage",children:$("div",{class:"annot-img-wrap",children:[$("img",{ref:X,src:Z,alt:"",draggable:!1,onLoad:_},void 0,!1,void 0,this),$("canvas",{ref:z,class:"annot-canvas tool-"+W,onMouseDown:(O)=>void v(O),onMouseMove:(O)=>R(O),onMouseUp:x,onMouseLeave:x},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var g1=0.2,b1=8;function j1({src:Z,name:J,onClose:Q,onReplace:X,draggableBar:z}){let[W,G]=k(1),[q,H]=k(0),[Y,F]=k(0),[K,w]=k(!1),P=W0(null),A=W0(null),_=()=>{G(1),H(0),F(0)};l(()=>{let v=(R)=>{if(R.key==="Escape")R.stopPropagation(),K?w(!1):Q();else if((R.key==="+"||R.key==="=")&&!K)G((x)=>Math.min(b1,x*1.2));else if(R.key==="-"&&!K)G((x)=>Math.max(g1,x/1.2));else if(R.key==="0"&&!K)_()};return document.addEventListener("keydown",v,!0),()=>document.removeEventListener("keydown",v,!0)},[K,Q]);let V=(v)=>{v.preventDefault();let R=P.current?.getBoundingClientRect(),x=R?v.clientX-R.left-R.width/2:0,S=R?v.clientY-R.top-R.height/2:0,O=v.deltaY<0?1.12:0.8928571428571428;G((N)=>{let L=Math.max(g1,Math.min(b1,N*O)),B=L/N;return H((M)=>x-(x-M)*B),F((M)=>S-(S-M)*B),L})},D=(v)=>{A.current={x:v.clientX,y:v.clientY,tx:q,ty:Y}};return l(()=>{let v=(x)=>{let S=A.current;if(!S)return;H(S.tx+(x.clientX-S.x)),F(S.ty+(x.clientY-S.y))},R=()=>{A.current=null};return window.addEventListener("mousemove",v),window.addEventListener("mouseup",R),()=>{window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",R)}},[]),$(o,{children:[$("div",{class:"lightbox-toolbar"+(z?" app-drag":""),onMouseDown:(v)=>v.stopPropagation(),children:[J&&$("span",{class:"lightbox-name",title:J,children:J},void 0,!1,void 0,this),$("span",{class:"lightbox-spacer"},void 0,!1,void 0,this),!K&&$(o,{children:[$("button",{title:"缩小",onClick:()=>G((v)=>Math.max(g1,v/1.2)),children:$(f,{name:"zoomOut",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"lightbox-pct",title:"重置",onClick:_,children:[Math.round(W*100),"%"]},void 0,!0,void 0,this),$("button",{title:"放大",onClick:()=>G((v)=>Math.min(b1,v*1.2)),children:$(f,{name:"zoomIn",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{title:"标注 / 编辑",onClick:()=>{_(),w(!0)},children:$(f,{name:"pencil",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{title:"关闭",onClick:()=>K?w(!1):Q(),children:$(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K?$(d$,{src:Z,onCancel:()=>w(!1),onSave:(v)=>{X(v),w(!1)}},void 0,!1,void 0,this):$("div",{ref:P,class:"lightbox-stage",onMouseDown:(v)=>{v.stopPropagation(),D(v)},onWheel:(v)=>V(v),children:$("img",{src:Z,alt:J??"",draggable:!1,style:{transform:`translate(${q}px, ${Y}px) scale(${W})`,cursor:W>1?"grab":"default"}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function c$(Z){return $("div",{class:"lightbox",onMouseDown:()=>Z.onClose(),children:$(j1,{...Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function T0(Z,J,Q=null){for(let X=0;X<Z.length;X++){let z=Z[X];if(z.id===J)return{block:z,parent:Z,index:X,parentBlock:Q};let W=z.children?T0(z.children,J,z):null;if(W)return W}return null}function h1(Z){let J=0;for(let Q of Z)J+=1+h1(Q.children??[]);return J}function e8(Z){return{...Z,id:G9(),children:Z.children?.map(e8)}}function D1(Z,J){for(let Q of Z??[])if(Q.id===J||D1(Q.children,J))return!0;return!1}function tZ(Z){return Q9(Z.type)&&Z.content.trim()===""&&Z.children?.[0]?.type==="code"}function K9(Z,J=[]){for(let Q of Z)if(J.push(Q),Q.children)K9(Q.children,J);return J}function x9(Z,J){let Q=null,X=null,z=(W)=>{for(let G of W){if(G.id===J){X=Q;return}if(Q=G,G.children)z(G.children);if(X)return}};return z(Z),X}function sZ(Z,J){let Q=K9(Z),X=Q.findIndex((z)=>z.id===J);return X>=0&&X+1<Q.length?Q[X+1]:null}function eZ(Z,J){let Q=T0(Z,J);if(!Q)return null;let[X]=Q.parent.splice(Q.index,1);if(Q.parent.length===0&&Q.parentBlock)delete Q.parentBlock.children;return X??null}function i$(Z,J,Q,X){if(J===Q)return!1;let z=T0(Z,J),W=T0(Z,Q);if(!z||!W||D1(z.block.children,Q))return!1;let G=z.parent.splice(z.index,1)[0],q=T0(Z,Q);if(!q)return z.parent.splice(z.index,0,G),!1;if(z.parent.length===0&&z.parentBlock)delete z.parentBlock.children;return q.parent.splice(q.index+(X==="after"?1:0),0,G),!0}function x1(Z,J){let Q=T0(Z,J);if(!Q||Q.index===0)return!1;let X=Q.parent[Q.index-1];if(!Q9(X.type))return!1;let z=Q.parent.splice(Q.index,1)[0];return X.children??=[],X.children.push(z),!0}function m1(Z,J){let Q=T0(Z,J);if(!Q?.parentBlock)return!1;let X=T0(Z,Q.parentBlock.id);if(!X)return!1;let z=Q.parent.splice(Q.index);if(!z.length)return!1;if(Q.parent.length===0)delete Q.parentBlock.children;return X.parent.splice(X.index+1,0,...z),!0}function I9(Z,J){let Q=new Set(J),X=[],z=(W,G)=>{for(let q of W){let H=Q.has(q.id);if(H&&!G)X.push(q.id);if(q.children)z(q.children,G||H)}};return z(Z,!1),X}function u1(Z,J,Q,X={}){let W=T0(Z,J)?.block;if(!W)return!1;let G=Q9(Q)?W.children:void 0;if(v1(W,Q,X),G?.length)W.children=G;else delete W.children;return!0}function a$(Z,J,Q){let X=K9(Z),z=X.findIndex((H)=>H.id===J),W=X.findIndex((H)=>H.id===Q);if(z<0||W<0)return[];let[G,q]=z<=W?[z,W]:[W,z];return X.slice(G,q+1).map((H)=>H.id)}function n$(Z,J){if(!J.length)return null;let Q=new Set(J),X=K9(Z),z=X.findIndex((G)=>Q.has(G.id));if(z<0)return null;let W=null;for(let G=z-1;G>=0;G--)if(!Q.has(X[G].id)){W=X[G].id;break}if(!W){for(let G=z+1;G<X.length;G++)if(!Q.has(X[G].id)){W=X[G].id;break}}for(let G of I9(Z,J))eZ(Z,G);if(W&&!T0(Z,W))W=null;return W??K9(Z)[0]?.id??null}function l$(Z,J){let Q=I9(Z,J);if(!Q.length)return[];let X=[];for(let W of Q){let G=T0(Z,W);if(G)X.push(e8(G.block))}let z=T0(Z,Q[Q.length-1]);if(!z||!X.length)return[];return z.parent.splice(z.index+1,0,...X),X.map((W)=>W.id)}function r$(Z,J,Q,X){let z=I9(Z,J);if(!z.length||z.includes(Q))return!1;for(let q of z){let H=T0(Z,q);if(H&&D1(H.block.children,Q))return!1}let W=[];for(let q of z){let H=eZ(Z,q);if(H)W.push(H)}let G=T0(Z,Q);if(!G)return Z.push(...W),!1;return G.parent.splice(G.index+(X==="after"?1:0),0,...W),!0}function o$(Z,J){let Q=I9(Z,J).map((X)=>T0(Z,X)?.block).filter((X)=>!!X);return v$(Q)}function t$(Z,J){let Q=[];for(let X of I9(Z,J))if(x1(Z,X))Q.push(X);return Q}function s$(Z,J){let Q=[];for(let X of I9(Z,J))if(m1(Z,X))Q.push(X);return Q}function Z8(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var e$=String.fromCharCode(57344),Z3=String.fromCharCode(57345),XG=new RegExp(e$+"(\\d+)"+Z3,"g");function J8(Z){let J=[],Q=Z.replace(/`([^`]+)`/g,(X,z)=>{return J.push(z),e$+(J.length-1)+Z3});return Q=Z8(Q),Q=Q.replace(/!\[([^\]]*)\]\(([^)\s]+)\)/g,(X,z,W)=>{return`<img src="${String(W).replace(/"/g,""")}" alt="${z}" class="doc-img" loading="lazy">`}),Q=Q.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(X,z,W)=>{return`<a href="${String(W).replace(/"/g,""")}" target="_blank" rel="noreferrer">${z}</a>`}),Q=Q.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),Q=Q.replace(/(^|[^*])\*([^*\n]+)\*/g,"$1<em>$2</em>"),Q=Q.replace(/\n/g,"<br>"),Q=Q.replace(XG,(X,z)=>`<code>${Z8(J[+z]??"")}</code>`),Q}function zZ(Z){let J=document.createElement("div");return J.innerHTML=Z,J3(J).replace(/\n{3,}/g,`
|
|
133
|
-
|
|
134
|
-
`).
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
`);if(!P0.trim())return;U.preventDefault();let U0=rZ(P0);if(!U0.length)return;let b0=T0(T,C.id);if(!b0)return;let{before:X9,after:C9}=z6(j);if(U0.length===1&&U0[0].type==="p"&&(X9.trim()!==""||C9.trim()!=="")){C.content=X9+U0[0].content+C9;let c9=H3(X9+U0[0].content);O0(),Y0(),requestAnimationFrame(()=>i1(C.id,c9));return}let p9=[...U0],d9=C9.trim()!==""?D9("p",{content:C9}):null;if(d9)p9.push(d9);if(X9.trim()===""&&!b0.block.children?.length)b0.parent.splice(b0.index,1,...p9);else C.content=X9,b0.parent.splice(b0.index+1,0,...p9);O0(),Y0();let U8=d9??p9[p9.length-1];requestAnimationFrame(()=>x0(U8.id,!d9))},F6=(U)=>{let C=[];for(let j of U){let b=O5[_1(j.type)];if(j.size>b)s(`${j.name||"文件"} 超过 ${Math.round(b/1024/1024)}MB 上限`);else C.push(j)}return C},U6=(U,C)=>{let j=M5(U.name||"文件"),b=_1(U.type);a.uploadDocBlob(U,(d,G0)=>C5(j,d,G0)).then((d)=>{let G0=D9(b,{src:d.url,name:U.name||void 0,size:b==="file"?d.size:void 0}),P0=T0(z.current,C);if(P0)P0.parent.splice(P0.index,1,G0);else z.current.push(G0);d6(j,!0)}).catch((d)=>{eZ(z.current,C),d6(j,!1,()=>IZ([U],{mode:"append"})),s(`上传失败:${d.message}`)}).finally(()=>{O0(),Y0()})},IZ=(U,C)=>{let j=F6(U);if(!j.length)return;let b=j.map((d)=>D9("uploading",{name:d.name||void 0}));if(C.mode==="caret"){let d=T0(z.current,C.block.id);if(!d)return;let{before:G0,after:P0}=z6(C.el),U0=[...b];if(P0.trim()!=="")U0.push(D9("p",{content:P0}));if(G0.trim()===""&&!d.block.children?.length)d.parent.splice(d.index,1,...U0);else C.block.content=G0,d.parent.splice(d.index+1,0,...U0)}else if(C.mode==="at"){let d=T0(z.current,C.targetId);if(!d)return;d.parent.splice(d.index+(C.where==="after"?1:0),0,...b)}else if(C.mode==="append")z.current.push(...b);else{let d=T0(z.current,C.blockId);if(!d)z.current.push(...b);else if(d.block.type==="p"&&!d.block.content.trim()&&!d.block.children?.length)d.parent.splice(d.index,1,...b);else d.parent.splice(d.index+1,0,...b)}O0(),Y0(),j.forEach((d,G0)=>U6(d,b[G0].id))},c3=(U,C,j)=>IZ(j,{mode:"caret",block:U,el:C}),i3=(U,C,j)=>IZ(j,{mode:"at",targetId:U,where:C}),a3=(U)=>IZ(U,{mode:"append"}),n3=(U,C)=>{let j=document.createElement("input");j.type="file",j.multiple=!0,j.accept=U==="image"?"image/*":U==="video"?"video/*":U==="audio"?"audio/*":"",j.onchange=()=>{let b=Array.from(j.files??[]);if(b.length)IZ(b,{mode:"slot",blockId:C})},j.click()},XJ=(U,C)=>{let j=T0(T,U);if(!j)return;if(Object.assign(j.block,C),"width"in C&&!C.width)delete j.block.width;g0("void:"+U),O0(),Y0()},l3=(U,C)=>{if(U.target.closest("textarea, input, select, video, audio"))return;if(U.key==="Backspace"||U.key==="Delete"){U.preventDefault();let j=x9(T,C.id),b=sZ(T,C.id);L0(C.id),requestAnimationFrame(()=>j?x0(j.id,!0):b?x0(b.id):void 0)}else if(U.key==="Enter")U.preventDefault(),i(C.id);else if(U.key==="ArrowUp"){let j=x9(T,C.id);if(j)U.preventDefault(),x0(j.id,!0)}else if(U.key==="ArrowDown"){let j=sZ(T,C.id);if(j)U.preventDefault(),x0(j.id)}},r3=async(U,C)=>{try{let j=await a.uploadDocBlob(new File([C],"annotated.png",{type:"image/png"}));XJ(U,{src:j.url}),M((b)=>b&&b.id===U?{...b,src:j.url}:b)}catch(j){s(`保存失败:${j.message}`)}},o3=(U)=>{let C=U.src??"";if(typeof window<"u"&&window.metahubDesktop?.preview)window.metahubDesktop.preview.open({src:C,name:U.name,blockId:U.id});else M({id:U.id,src:C,name:U.name})};l(()=>{let U=null;try{U=new BroadcastChannel("mh-doc-image")}catch{return}return U.onmessage=(C)=>{let j=C.data;if(!j||j.action!=="replace"||!j.blockId||!j.url)return;let b=T0(z.current,j.blockId);if(!b)return;b.block.src=j.url,O0(),Y0()},()=>U?.close()},[]);let K8=_?I1.filter((U)=>(U.t+U.type+U.d).toLowerCase().includes(_.query.toLowerCase())):[],zJ=(U)=>{if(!_)return;let C=_.blockId;if(V(null),oZ(U.type))n3(U.type,C);else X0(C,U.type)},WJ=(U,C)=>{X0(U.id,C.type,C),V(null)},t3=(U,C)=>{U.content="",U.children??=[];let j=D9(C.type,C);U.children.unshift(j),V(null),O0(),requestAnimationFrame(()=>x0(j.id)),Y0()},s3=(U)=>{WZ(T);let C=Q6(U);if(!x1(T,U))return;O0(),requestAnimationFrame(()=>C!=null?X6(U,C):x0(U)),Y0()},GJ=(U)=>{WZ(T);let C=Q6(U);if(!m1(T,U))return;O0(),requestAnimationFrame(()=>C!=null?X6(U,C):x0(U)),Y0()},e3=async(U)=>{if(U==="createLink"){let C=getSelection(),j=C&&C.rangeCount?C.getRangeAt(0).cloneRange():null;if(!j||j.collapsed)return;R(null);let b=(await Y9({title:"插入链接",label:"链接地址",placeholder:"https://…"}))?.trim();if(!b)return;j.startContainer.parentElement?.closest?.(".editable")?.focus();let G0=getSelection();G0?.removeAllRanges(),G0?.addRange(j),document.execCommand("createLink",!1,b)}else if(U==="code")OG();else document.execCommand(U,!1,void 0);wG(T),Y0(),p1(R)},HZ=()=>S(null),qJ=()=>{let U=K9(T);if(!U.length)return;$6(),S({anchorId:U[0].id,focusId:U[U.length-1].id})},L6=(U)=>{WZ(T);let C=n$(T,U);if(HZ(),O0(),C)requestAnimationFrame(()=>x0(C,!0));Y0()},Z2=(U,C)=>{if(WZ(T),!(C==="indent"?t$(T,U):s$(T,U)).length)return;O0(),Y0()},HJ=(U)=>{WZ(T);let C=l$(T,U);if(C.length)S({anchorId:C[0],focusId:C[C.length-1]});O0(),Y0()},J2=(U)=>{let C=o$(T,U);if(C)navigator.clipboard?.writeText(C).catch(()=>{})},$2=(U,C)=>{WZ(T);let j=!1;for(let b of I9(T,U)){let d=T0(T,b)?.block;if(!d||oZ(d.type)||d.type==="uploading")continue;if(u1(T,b,C,{content:d.content}))j=!0}if(!j)return;O0(),Y0()},YJ=(U)=>{if(U.target?.closest?.(".doc-source"))return;let j=U.metaKey||U.ctrlKey;if(j&&(U.key==="z"||U.key==="Z")){if(U.preventDefault(),U.shiftKey)a0();else _0();return}if(j&&U.key==="y"){U.preventDefault(),a0();return}if(L.current)return;if(!x)return;let b=p;if(!b.length)return;if(U.key==="Escape"){U.preventDefault();let d=x.anchorId;HZ(),x0(d,!0);return}if(U.key==="Tab"){U.preventDefault(),Z2(b,U.shiftKey?"outdent":"indent");return}if(U.key==="Backspace"||U.key==="Delete"){U.preventDefault(),L6(b);return}if(j&&U.key==="d"){U.preventDefault(),HJ(b);return}if(j&&(U.key==="c"||U.key==="x")){if(U.preventDefault(),J2(b),U.key==="x")L6(b);return}if(j&&U.key==="a"){U.preventDefault(),qJ();return}if(U.key==="ArrowDown"||U.key==="ArrowUp"){U.preventDefault();let d=K9(T),G0=d.findIndex((P0)=>P0.id===x.focusId);if(G0<0)return;if(U.shiftKey){let P0=U.key==="ArrowDown"?Math.min(G0+1,d.length-1):Math.max(G0-1,0);S({anchorId:x.anchorId,focusId:d[P0].id})}else{let P0=U.key==="ArrowDown"?b[b.length-1]:b[0];HZ(),x0(P0,U.key==="ArrowDown")}return}if(U.key.length===1&&!j){let d=b[b.length-1];HZ(),x0(d,!0)}},F8=W0(null),Q2=(U)=>{if(U.button!==0)return;let C=U.target;if(C.closest(".gutter")||C.closest(".pop")||C.closest(".doc-col-resizer")||C.closest("input, button, select, a")||C.closest("video, audio, iframe, textarea, .img-handle"))return;let b=NG(U.target)?.getAttribute("data-bid")??null;if(!b){let G0=C.classList.contains("doc")?C:null;if(Y==="blocks"&&G0){let P0=G0.querySelectorAll(".block"),U0=P0.length?P0[P0.length-1]:G0.querySelector(".doc-meta"),b0=U0?U0.getBoundingClientRect().bottom:0;if(U.clientY>b0){U.preventDefault();let X9=T[T.length-1];if(X9&&j9(X9))x0(X9.id,!0);else i(null);return}}HZ();return}if(U.shiftKey&&x){U.preventDefault(),$6(),S({anchorId:x.anchorId,focusId:b});return}if(!!C.closest(".editable, .code-input, .doc-td")){if(F8.current={anchorId:b,started:!1,sx:U.clientX,sy:U.clientY,mode:"text"},x)HZ()}else U.preventDefault(),$6(),S({anchorId:b,focusId:b}),F8.current={anchorId:b,started:!0,sx:U.clientX,sy:U.clientY,mode:"block"}};l(()=>{let U=(j)=>{let b=F8.current;if(!b)return;let G0=document.elementFromPoint(j.clientX,j.clientY)?.closest(".block[data-bid]")?.getAttribute("data-bid")??null;if(b.mode==="text"){if(G0&&G0!==b.anchorId)b.mode="block",$6(),S({anchorId:b.anchorId,focusId:G0});return}if(!b.started&&Math.abs(j.clientX-b.sx)+Math.abs(j.clientY-b.sy)<4)return;if(b.started=!0,c1(!0),G0)S({anchorId:b.anchorId,focusId:G0})},C=()=>{F8.current=null,c1(!1)};return window.addEventListener("mousemove",U),window.addEventListener("mouseup",C),()=>{window.removeEventListener("mousemove",U),window.removeEventListener("mouseup",C)}},[]);let KJ=W0(YJ);KJ.current=YJ,l(()=>{let U=(C)=>KJ.current(C);return document.addEventListener("keydown",U,!0),()=>document.removeEventListener("keydown",U,!0)},[]);let FJ=(U,C,j)=>document.querySelector(`.block[data-bid="${U}"] .doc-td[data-r="${C}"][data-c="${j}"]`),X2=(U,C,j)=>{N(null),requestAnimationFrame(()=>{let b=FJ(U,C,j);if(!b)return;b.focus();let d=document.createRange();d.selectNodeContents(b),d.collapse(!1);let G0=getSelection();G0?.removeAllRanges(),G0?.addRange(d)})},z2=(U)=>{let C=document.querySelector(`.block[data-bid="${U}"] table.doc-table`);if(!C)return;C.classList.remove("copied"),C.offsetWidth,C.classList.add("copied"),setTimeout(()=>C.classList.remove("copied"),260)};l(()=>{if(!O)return;let U=(C)=>{let j=L.current;if(!j)return;let b=document.activeElement;if(b?.isContentEditable||b?.tagName==="INPUT"||b?.tagName==="TEXTAREA")return;let d=T0(z.current,j.blockId)?.block,G0=d?.rows;if(!G0)return;let P0=G0.length,U0=G0[0]?.length??0,b0=$Z(j.sel),{r:X9,c:C9}=j.sel.b,p9=j.sel.a.r===j.sel.b.r&&j.sel.a.c===j.sel.b.c,d9=(c9,SZ)=>Math.max(0,Math.min(SZ,c9)),U8={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]};if(C.key in U8){C.preventDefault();let[c9,SZ]=U8[C.key],i9={r:d9(X9+c9,P0-1),c:d9(C9+SZ,U0-1)};N({blockId:j.blockId,sel:C.shiftKey?{a:j.sel.a,b:i9}:{a:i9,b:i9}}),requestAnimationFrame(()=>FJ(j.blockId,i9.r,i9.c)?.scrollIntoView({block:"nearest",inline:"nearest"}))}else if((C.metaKey||C.ctrlKey)&&C.key.toLowerCase()==="c")C.preventDefault(),navigator.clipboard?.writeText(p5(G0,b0)).catch(()=>{}),z2(j.blockId);else if(C.key==="Escape")N(null);else if(C.key==="Delete"||C.key==="Backspace")C.preventDefault(),d.rows=G0.map((c9,SZ)=>c9.map((i9,U2)=>x8(b0,SZ,U2)?"":i9)),O0(),Y0();else if(p9&&(C.key==="Enter"||C.key==="F2"))C.preventDefault(),X2(j.blockId,X9,C9)};return addEventListener("keydown",U),()=>removeEventListener("keydown",U)},[O]),l(()=>{if(!O)return;let U=(C)=>{if(!C.target?.closest?.(`.block[data-bid="${O.blockId}"]`))N(null)};return addEventListener("pointerdown",U,!0),()=>removeEventListener("pointerdown",U,!0)},[O]),l(()=>{if(!_)return;D.current?.querySelector(".item.sel")?.scrollIntoView({block:"nearest"})},[_?.idx,_?.blockId]),l(()=>{if(!_)return;let U=()=>V(null);return document.addEventListener("focusout",U),()=>document.removeEventListener("focusout",U)},[!!_]);let W2=(U,C,j)=>{if(U.isComposing||U.keyCode===229)return;if(_&&_.blockId===C.id){if(U.key==="ArrowDown"){U.preventDefault(),V({..._,idx:Math.min(_.idx+1,K8.length-1)});return}if(U.key==="ArrowUp"){U.preventDefault(),V({..._,idx:Math.max(_.idx-1,0)});return}if(U.key==="Enter"){U.preventDefault();let b=K8[_.idx];if(b)zJ(b);return}if(U.key==="Escape"){V(null);return}}if((U.metaKey||U.ctrlKey)&&(U.key==="a"||U.key==="A")){if(_G(j))U.preventDefault(),qJ();return}if(U.key==="Tab"){U.preventDefault(),(U.shiftKey?GJ:s3)(C.id);return}if((U.key==="ArrowUp"||U.key==="ArrowDown")&&!U.shiftKey&&!d1()){let b=q3(j);if(U.key==="ArrowUp"&&b.first){U.preventDefault();let d=x9(T,C.id);if(d)F0(d,!0);else e();return}else if(U.key==="ArrowDown"&&b.last){let d=sZ(T,C.id);if(d){U.preventDefault(),F0(d);return}}}if(U.key===" "&&!d1()&&(C.type==="p"||vZ(C.type)||C.type==="bullet")){let{before:b,after:d}=z6(j);if(C.type==="p"||vZ(C.type)){let G0=T1(b+" "," ");if(G0&&(C.type==="p"||vZ(G0.type))){U.preventDefault(),WJ(C,{...G0,content:d});return}}else{let G0=I$(b);if(G0){U.preventDefault(),X0(C.id,"todo",{content:d,checked:G0.checked});return}}}if(U.key==="Enter"&&!U.shiftKey&&C.type!=="code"){let b=T1((j.textContent??"").trim(),"Enter");if(b){if(U.preventDefault(),Q9(C.type)&&b.type==="code"){t3(C,b);return}WJ(C,b);return}U.preventDefault();let d=(j.textContent??"").trim()==="";if(Q9(C.type)&&d&&!(C.children??[]).length){X0(C.id,"p");return}let{before:G0,after:P0}=z6(j);C.content=G0,i(C.id,Q9(C.type)?C.type:"p",{content:P0})}else if(U.key==="Backspace"){if((j.textContent??"")==="")if(U.preventDefault(),C.type!=="p")X0(C.id,"p");else{let b=x9(T,C.id);if(b)L0(C.id),requestAnimationFrame(()=>x0(b.id,!0))}else if(!d1()&&CG(j))if(Q9(C.type))U.preventDefault(),X0(C.id,"p",{content:$8(C,j)});else{let b=x9(T,C.id);if(b&&b.type!=="code"&&b.type!=="table"&&b.type!=="divider"){U.preventDefault();let d=H3(b.content);b.content+=$8(C,j),L0(C.id),requestAnimationFrame(()=>{let G0=document.querySelector(`.block[data-bid="${b.id}"] .editable`);if(G0){let P0=J8(b.content);if(G0.innerHTML!==P0)G0.innerHTML=P0}i1(b.id,d)})}}}},G2=(U,C,j)=>{if(U.isComposing||U.keyCode===229)return;let{value:b,selectionStart:d,selectionEnd:G0}=j;if(U.key==="Tab"){if(U.preventDefault(),U.shiftKey){GJ(C.id);return}document.execCommand("insertText",!1," ");return}if(U.key==="ArrowDown"&&d===G0&&b.indexOf(`
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
`).length-1,d=getComputedStyle(C),G0=parseFloat(d.lineHeight)||20,P0=(parseFloat(d.paddingTop)||0)+b*G0,U0=H2(C);if(U0){let b0=C.getBoundingClientRect().top-U0.getBoundingClientRect().top+U0.scrollTop;U0.scrollTo({top:Math.max(0,b0+P0-U0.clientHeight/2),behavior:"smooth"})}else{let b0=C.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:Math.max(0,b0+P0-innerHeight/2),behavior:"smooth"})}}else{let C=p0.current,j=C[U]??null;if(z3(C,j),j){let b=j.startContainer;(b.nodeType===3?b.parentElement:b)?.scrollIntoView({block:"center",inline:"nearest",behavior:"smooth"})}}};l(()=>{if(!I){J6(),p0.current=[],i0.current=[],J0(0);return}let U={caseSensitive:I.caseSensitive,wholeWord:I.wholeWord},C=setTimeout(()=>{let j;if(Y==="source"){let d=G.current?.value??W.current;i0.current=E1(d,I.term,U),p0.current=[],J6(),j=i0.current.length}else{let d=u.current;p0.current=d?X3(d,I.term,U):[],i0.current=[],j=p0.current.length}let b=j?Math.min(B0.current,j-1):0;B0.current=b,q0(b),J0(j),UJ(b)},110);return()=>clearTimeout(C)},[I,K,Y]),l(()=>()=>J6(),[]),l(()=>{let U=(C)=>{if((C.metaKey||C.ctrlKey)&&!C.altKey&&C.key.toLowerCase()==="f")C.preventDefault(),n((j)=>j??{term:"",caseSensitive:!1,wholeWord:!1}),requestAnimationFrame(()=>{let j=u.current?.parentElement?.querySelector(".find-bar input")??document.querySelector(".find-bar input");j?.focus(),j?.select()})};return window.addEventListener("keydown",U),()=>window.removeEventListener("keydown",U)},[]);let Y2=(U)=>{let C=Y==="source"?i0.current.length:p0.current.length;if(!C)return;let j=(B0.current+U+C)%C;B0.current=j,q0(j),UJ(j)},K2=()=>n(null);if(P)return $("div",{class:"empty",children:"加载中…"},void 0,!1,void 0,this);let F2=new Set(p),LJ=(U,C=0)=>{let j=s8(U.filter((b)=>!j9(b)));return U.map((b)=>$(HG,{renderKey:K,block:b,depth:C,selected:F2.has(b.id),number:b.type==="numbered"?j.get(b.id)??1:0,onInput:(d)=>v0(b,d),onPaste:(d,G0)=>V0(d,b,G0),onLangInput:(d)=>{b.lang=d,O0(),Y0()},onKeyDown:(d,G0)=>W2(d,b,G0),onCodeInput:(d)=>{b.content=d,g0("text:"+b.id),Y0()},onCodeKeyDown:(d,G0)=>G2(d,b,G0),onCellInput:(d,G0,P0)=>{if(!b.rows?.[d])return;b.rows[d][G0]=P0,g0("table:"+b.id+":"+d+":"+G0),Y0()},onTableChange:()=>{O0(),Y0()},cellSel:O?.blockId===b.id?O.sel:null,onCellSel:(d)=>N(d?{blockId:b.id,sel:d}:null),onAdd:()=>i(b.id),onMenu:(d)=>q2(d,b),onToggle:()=>{b.checked=!b.checked,O0(),Y0()},onVoidChange:(d)=>XJ(b.id,d),onVoidKey:(d)=>l3(d,b),onPreview:()=>o3(b),dragRef:P6,onReorder:(d,G0)=>{let P0=p;if(P0.length>1&&P0.includes(d)?r$(T,P0,b.id,G0):i$(T,d,b.id,G0))O0(),Y0()},children:b.children?.length?LJ(b.children,C+1):null},b.id,!1,void 0,this))};return $(o,{children:[Y==="blocks"&&$(qG,{blocks:T},K,!1,void 0,this),I&&$(PG,{term:I.term,caseSensitive:I.caseSensitive,wholeWord:I.wholeWord,idx:Z0,total:Q0,onTerm:(U)=>{B0.current=0,n((C)=>C?{...C,term:U}:C)},onToggleCase:()=>n((U)=>U?{...U,caseSensitive:!U.caseSensitive}:U),onToggleWord:()=>n((U)=>U?{...U,wholeWord:!U.wholeWord}:U),onStep:Y2,onClose:K2},void 0,!1,void 0,this),$("div",{ref:u,class:"doc"+(Y==="source"?" source-mode":""),onMouseDown:(U)=>Q2(U),onMouseUp:()=>p1(R),onKeyUp:(U)=>{if(U.shiftKey||U.key.startsWith("Arrow"))p1(R)},onDragOver:(U)=>{if(P6.current||Y==="source")return;if(!Array.from(U.dataTransfer?.items??[]).some((j)=>j.kind==="file"))return;if(U.preventDefault(),U.dataTransfer)U.dataTransfer.dropEffect="copy";let C=K3(u.current,U.clientY);if(C)U3(C,U);else TZ()},onDragLeave:(U)=>{if(!U.relatedTarget||!u.current?.contains(U.relatedTarget))TZ()},onDrop:(U)=>{if(P6.current||Y==="source")return;let C=W3(U.dataTransfer);if(!C.length)return;U.preventDefault();let j=K3(u.current,U.clientY);if(j?.dataset.bid){let b=I8(j,U,"y");TZ(),i3(j.dataset.bid,b,C)}else TZ(),a3(C)},children:[m&&$("div",{class:"doc-conflict",role:"alert",children:[$("span",{class:"doc-conflict-msg",children:"文档已被其他端修改,自动保存已暂停。"},void 0,!1,void 0,this),$("button",{class:"btn btn-secondary",onClick:()=>u0(),children:"载入最新(弃本地改动)"},void 0,!1,void 0,this),$("button",{class:"btn btn-danger",onClick:()=>void l0({force:!0}),children:"用本地版本覆盖"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"doc-title",contentEditable:!0,onInput:(U)=>{q.current=U.target.textContent??"",g0("title"),Y0()},onKeyDown:(U)=>{if(U.isComposing||U.keyCode===229)return;if(U.key==="Enter"){U.preventDefault();let C=T[0];if(C&&j9(C))x0(C.id);else t("p");return}if(U.key==="ArrowDown"&&q3(U.currentTarget).last&&T[0])U.preventDefault(),F0(T[0])},dangerouslySetInnerHTML:{__html:q.current}},void 0,!1,void 0,this),$("div",{class:"doc-meta",children:[$("span",{children:[$(f,{name:"file",cls:"ico sm"},void 0,!1,void 0,this),h1(T)," 个块"]},void 0,!0,void 0,this),$("span",{children:"实时同步"},void 0,!1,void 0,this),H.has(Z)&&$("button",{class:"doc-shared",title:"已分享 · 管理分享",onClick:()=>N9({kind:"doc",ref:Z,title:q.current}),children:[$(f,{name:"link",cls:"ico sm"},void 0,!1,void 0,this),"已分享"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y==="source"?$("textarea",{ref:G,class:"doc-source",spellcheck:!1,defaultValue:W.current,onInput:(U)=>{let C=U.currentTarget;W.current=C.value,Y3(C),Y0()}},void 0,!1,void 0,this):LJ(T),Y==="blocks"&&T.length===0&&$("div",{class:"editable",style:{color:"var(--muted)",cursor:"text"},onClick:()=>i(null),children:"点此书写,或输入 “/” 选择块类型…"},void 0,!1,void 0,this),_&&K8.length>0&&(()=>{let j=innerHeight-(_.y+22)-8,b=_.y-8,d=j>=240||j>=b,G0=Math.min(_.x,innerWidth-270),P0=Math.min(d?j:b,Math.round(innerHeight*0.7)),U0=d?{left:G0,top:_.y+22,maxHeight:P0,minWidth:260}:{left:G0,bottom:innerHeight-_.y+6,maxHeight:P0,minWidth:260};return $("div",{class:"pop",style:U0,ref:D,children:[$(j0,{children:"基础块"},void 0,!1,void 0,this),K8.map((b0,X9)=>$("button",{class:"item"+(X9===_.idx?" sel":""),onMouseDown:(C9)=>{C9.preventDefault(),zJ(b0)},children:[$("span",{class:"lico",children:$(f,{name:b0.ic,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"meta",children:[$("span",{class:"t",children:b0.t},void 0,!1,void 0,this),$("span",{class:"d",children:b0.d},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},b0.type,!0,void 0,this))]},void 0,!0,void 0,this)})(),v&&!x&&$(BG,{x:v.x,y:v.y,onCommand:e3},void 0,!1,void 0,this)]},void 0,!0,void 0,this),B&&$(c$,{src:B.src,name:B.name,onClose:()=>M(null),onReplace:(U)=>void r3(B.id,U)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function W3(Z){if(!Z)return[];let J=[];for(let Q=0;Q<(Z.items?.length??0);Q++){let X=Z.items[Q];if(X.kind==="file"){let z=X.getAsFile();if(z)J.push(z)}}if(!J.length)for(let Q=0;Q<(Z.files?.length??0);Q++)J.push(Z.files[Q]);return J}function HG({block:Z,number:J,depth:Q,renderKey:X,selected:z,onInput:W,onPaste:G,onLangInput:q,onKeyDown:H,onCodeInput:Y,onCodeKeyDown:F,onCellInput:K,onTableChange:w,cellSel:P,onCellSel:A,onAdd:_,onMenu:V,onToggle:D,onVoidChange:v,onVoidKey:R,onPreview:x,dragRef:S,onReorder:O,children:N}){let L=W0(null);l(()=>{let y=L.current;if(y&&Z.type!=="code"){let E=J8(Z.content);if(y.innerHTML!==E&&zZ(y.innerHTML)!==Z.content)y.innerHTML=E}},[X,Z.type]);let B=tZ(Z),M="block b-"+Z.type+(Z.type==="todo"&&Z.checked?" b-done":"")+(B?" list-code-host":"")+(z?" selected":"");return $("div",{class:"block-wrap"+(Q?" nested":""),children:[$("div",{class:M,"data-bid":Z.id,onDragOver:(y)=>{if(S.current&&S.current!==Z.id){if(y.preventDefault(),y.dataTransfer)y.dataTransfer.dropEffect="move";U3(y.currentTarget,y)}},onDrop:(y)=>{if(S.current){y.preventDefault(),y.stopPropagation();let E=y.currentTarget.classList.contains("drop-after")?"after":"before",c=S.current;S.current=null,TZ(),O(c,E)}},children:[$("div",{class:"gutter",children:[$("button",{title:"在下方插入",onClick:_,children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"grip",title:"拖拽移动 · 点击菜单",draggable:!0,onClick:V,onDragStart:(y)=>{if(S.current=Z.id,y.dataTransfer)y.dataTransfer.effectAllowed="move",y.dataTransfer.setData("text/plain",Z.id);y.currentTarget.closest(".block").classList.add("dragging")},onDragEnd:(y)=>{y.currentTarget.closest(".block").classList.remove("dragging"),TZ()},children:$(f,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.type==="divider"?$("hr",{},void 0,!1,void 0,this):Z.type==="table"?$(UG,{block:Z,renderKey:X,onCellInput:K,onTableChange:w,cellSel:P,onCellSel:A},void 0,!1,void 0,this):Z.type==="image"||Z.type==="video"||Z.type==="audio"||Z.type==="file"||Z.type==="html"||Z.type==="uploading"?$("div",{class:"void-host",tabindex:0,onKeyDown:(y)=>R(y),children:Z.type==="image"?$(D$,{block:Z,selected:z,onResize:(y)=>v({width:y}),onPreview:x},void 0,!1,void 0,this):Z.type==="video"?$(x$,{block:Z},void 0,!1,void 0,this):Z.type==="audio"?$(m$,{block:Z},void 0,!1,void 0,this):Z.type==="file"?$(u$,{block:Z},void 0,!1,void 0,this):Z.type==="uploading"?$(h$,{block:Z},void 0,!1,void 0,this):$(E$,{block:Z,selected:z,onChange:(y)=>v({content:y})},void 0,!1,void 0,this)},void 0,!1,void 0,this):$(o,{children:[Z.type==="bullet"&&$("div",{class:"marker",children:"•"},void 0,!1,void 0,this),Z.type==="numbered"&&$("div",{class:"marker",children:[J,"."]},void 0,!0,void 0,this),Z.type==="todo"&&$("div",{class:"marker",children:$("input",{type:"checkbox",checked:!!Z.checked,onChange:D},void 0,!1,void 0,this)},void 0,!1,void 0,this),B?null:Z.type==="code"?$(FG,{block:Z,renderKey:X,onInput:Y,onLangChange:q,onKeyDown:F},void 0,!1,void 0,this):$("div",{ref:L,class:"editable",contentEditable:!0,"data-ph":YG(Z.type),"data-ph-hint":KG(Z.type)?"slash":"kind",onInput:(y)=>W(y.currentTarget),onPaste:(y)=>G(y,y.currentTarget),onKeyDown:(y)=>H(y,y.currentTarget)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),N]},void 0,!0,void 0,this)}var F3={h1:"标题 1",h2:"标题 2",h3:"标题 3",code:"输入代码…",quote:"引用"};function YG(Z){return F3[Z]??"输入文本,“/” 唤出命令"}function KG(Z){return!(Z in F3)}function FG({block:Z,renderKey:J,onInput:Q,onLangChange:X,onKeyDown:z}){let W=W0(null),G=W0(null),q=W0(null),[H,Y]=k(!1),F=(P)=>{if(G.current)G.current.innerHTML=WG(P,Z.lang);if(q.current){let _=P.split(`
|
|
144
|
-
`).
|
|
145
|
-
`+D;q.current.textContent=V}let A=W.current;if(A)A.style.height="auto",A.style.height=A.scrollHeight+"px"};l(()=>{let P=W.current;if(P&&P.value!==Z.content)P.value=Z.content;F(Z.content)},[J,Z.lang]);let K=Z.lang??"",w=k1.some((P)=>P.id===K);return $("div",{class:"codeblock",children:[$("div",{class:"code-body",children:[$("div",{ref:q,class:"code-gutter","aria-hidden":"true",children:"1"},void 0,!1,void 0,this),$("div",{class:"code-scroll",children:[$("pre",{class:"code-hl","aria-hidden":"true",children:$("code",{ref:G,class:"hljs"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("textarea",{ref:W,class:"code-input",rows:1,spellcheck:!1,wrap:"off",placeholder:"输入代码…",onInput:(P)=>{let A=P.currentTarget;Q(A.value),F(A.value)},onKeyDown:(P)=>z(P,P.currentTarget),onScroll:(P)=>{let A=G.current?.parentElement;if(A)A.scrollLeft=P.currentTarget.scrollLeft}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"code-tools",children:[$("span",{class:"code-lang",children:[$("select",{value:K,onChange:(P)=>X(P.currentTarget.value),children:[!w&&$("option",{value:K,children:K||"纯文本"},void 0,!1,void 0,this),k1.map((P)=>$("option",{value:P.id,children:P.label},P.id,!1,void 0,this))]},void 0,!0,void 0,this),$(f,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"code-copy"+(H?" ok":""),title:"复制代码",onClick:()=>{let P=W.current?.value??Z.content;navigator.clipboard?.writeText(P).then(()=>{Y(!0),setTimeout(()=>Y(!1),1400)}).catch(()=>{})},children:[$(f,{name:H?"check":"copy",cls:"ico sm"},void 0,!1,void 0,this),H?"已复制":"复制"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function UG({block:Z,renderKey:J,onCellInput:Q,onTableChange:X,cellSel:z,onCellSel:W}){let G=Z.rows??[],q=G[0]?.length??0,H=Z.align??[],Y=W0(null),F=z?$Z(z):null,K=W0([]);if(K.current.length!==q)K.current=Array.from({length:q},(L,B)=>K.current[B]??160);let w=()=>{Z.rows=[...G,Array(q).fill("")],X()},P=()=>{Z.rows=G.map((L)=>[...L,""]),Z.align=[...H,null],X()},A=(L)=>{Z.rows=G.map((M)=>{let y=[...M];return y.splice(L,0,""),y});let B=[...H];B.splice(L,0,null),Z.align=B,X()},_=(L)=>{if(q<=1)return;Z.rows=G.map((B)=>B.filter((M,y)=>y!==L)),Z.align=H.filter((B,M)=>M!==L),X()},V=(L)=>{if(L===0||G.length<=2)return;Z.rows=G.filter((B,M)=>M!==L),X()},D=(L,B)=>{let M=Array.from({length:q},(y,E)=>H[E]??null);M[L]=B,Z.align=M,X()},v=(L,B)=>{let M=Y.current?.querySelector(`.doc-td[data-r="${L}"][data-c="${B}"]`);if(!M)return!1;M.focus();let y=document.createRange();y.selectNodeContents(M),y.collapse(!1);let E=getSelection();return E?.removeAllRanges(),E?.addRange(y),!0},R=(L,B,M)=>{if(L.isComposing||L.keyCode===229)return;if(L.key==="Tab"){if(L.preventDefault(),L.shiftKey){if(M>0)v(B,M-1);else if(B>0)v(B-1,q-1)}else if(M<q-1)v(B,M+1);else if(B<G.length-1)v(B+1,0);else w(),requestAnimationFrame(()=>v(G.length,0));return}if(L.key==="Enter"){if(L.preventDefault(),B<G.length-1)v(B+1,M);else w(),requestAnimationFrame(()=>v(G.length,M));return}},x=(L,B,M)=>{if(L.button!==0)return;if(L.target.closest("button,a,.doc-col-resizer"))return;let y=()=>{document.activeElement?.blur?.(),getSelection()?.removeAllRanges()};if(L.shiftKey&&z){L.preventDefault(),y();let r=z.a;W({a:r,b:{r:B,c:M}}),P9(L,{onMove:($0)=>{let m=document.elementFromPoint($0.clientX,$0.clientY)?.closest?.(".doc-td");if(!m||m.dataset.r==null)return;W({a:r,b:{r:Number(m.dataset.r),c:Number(m.dataset.c)}})}});return}let E={r:B,c:M},c=!1;if(P9(L,{onMove:(r)=>{let $0=document.elementFromPoint(r.clientX,r.clientY)?.closest?.(".doc-td");if(!$0||$0.dataset.r==null)return;let m=Number($0.dataset.r),g=Number($0.dataset.c);if(!c){if(m===E.r&&g===E.c)return;c=!0,y(),document.body.classList.add("cell-selecting")}W({a:E,b:{r:m,c:g}})},onEnd:()=>document.body.classList.remove("cell-selecting")}),z)W(null)},S=(L)=>{if(!F)return;L.preventDefault(),L.stopPropagation();let B={r:F.r0,c:F.c0};document.activeElement?.blur?.(),getSelection()?.removeAllRanges(),P9(L,{threshold:0,onStart:()=>document.body.classList.add("cell-selecting"),onMove:(M)=>{let y=document.elementFromPoint(M.clientX,M.clientY)?.closest?.(".doc-td");if(!y||y.dataset.r==null)return;W({a:B,b:{r:Number(y.dataset.r),c:Number(y.dataset.c)}})},onEnd:()=>document.body.classList.remove("cell-selecting")})},O=(L,B)=>{L.preventDefault(),L.stopPropagation(),S8(L,{col:Y.current?.querySelector(`col[data-tcol="${B}"]`)??null,startWidth:K.current[B]??160,min:60,onDone:(M)=>{K.current[B]=M}})},N=(L,B)=>{L.preventDefault(),L.stopPropagation(),y0(L,(M)=>$(o,{children:[$(j0,{children:"对齐方式"},void 0,!1,void 0,this),$(z0,{icon:"alignLeft",label:"左对齐",checked:(H[B]??null)===null||H[B]==="left",onClick:()=>{D(B,"left"),M()}},void 0,!1,void 0,this),$(z0,{icon:"alignCenter",label:"居中",checked:H[B]==="center",onClick:()=>{D(B,"center"),M()}},void 0,!1,void 0,this),$(z0,{icon:"alignRight",label:"右对齐",checked:H[B]==="right",onClick:()=>{D(B,"right"),M()}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"plus",label:"在左侧插入列",onClick:()=>{A(B),M()}},void 0,!1,void 0,this),$(z0,{icon:"cornerUpRight",label:"在右侧插入列",onClick:()=>{A(B+1),M()}},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除列",danger:!0,onClick:()=>{_(B),M()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return $("div",{class:"doc-table-wrap",children:$("div",{class:"doc-table-scroll",children:$("div",{class:"doc-table-inner",children:[$("div",{class:"doc-table-row",children:[$("table",{ref:Y,class:"doc-table"+(F?" cells-active":""),children:[$("colgroup",{children:Array.from({length:q},(L,B)=>$("col",{"data-tcol":B,style:{width:K.current[B]}},B,!1,void 0,this))},void 0,!1,void 0,this),$("tbody",{children:G.map((L,B)=>$("tr",{children:L.map((M,y)=>{let E=F!=null&&x8(F,B,y),c=F!=null&&B===F.r1&&y===F.c1;return $("td",{class:(B===0?"doc-th":"")+(E?" cellsel":""),style:F?{boxShadow:m8(F,B,y)}:void 0,onPointerDown:(r)=>x(r,B,y),children:[$(LG,{value:M,renderKey:J,r:B,c:y,align:H[y]??null,onInput:(r)=>Q(B,y,r),onKeyDown:(r)=>R(r,B,y)},void 0,!1,void 0,this),c&&$("div",{class:"doc-cell-handle",onPointerDown:(r)=>S(r)},void 0,!1,void 0,this),B===0&&$(o,{children:[$("button",{class:"doc-col-menu",title:"列选项",onMouseDown:(r)=>N(r,y),children:$(f,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"doc-col-resizer",onPointerDown:(r)=>O(r,y)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),y===0&&B>0&&G.length>2&&$("button",{class:"doc-row-del",title:"删除行",onMouseDown:(r)=>{r.preventDefault(),r.stopPropagation(),V(B)},children:$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},y,!0,void 0,this)})},B,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"doc-table-addcol",title:"新增列",onMouseDown:(L)=>{L.preventDefault(),P()},children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"doc-table-addrow",title:"新增行",onMouseDown:(L)=>{L.preventDefault(),w()},children:$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function LG({value:Z,renderKey:J,r:Q,c:X,align:z,onInput:W,onKeyDown:G}){let q=W0(null);return l(()=>{let H=q.current;if(H){let Y=J8(Z);if(H.innerHTML!==Y&&zZ(H.innerHTML)!==Z)H.innerHTML=Y}},[J]),$("div",{ref:q,class:"doc-td","data-r":Q,"data-c":X,contentEditable:!0,"data-ph":Q===0?"表头":"",style:z?{textAlign:z}:void 0,onInput:(H)=>W(zZ(H.currentTarget.innerHTML)),onKeyDown:(H)=>G(H)},void 0,!1,void 0,this)}function PG({term:Z,caseSensitive:J,wholeWord:Q,idx:X,total:z,onTerm:W,onToggleCase:G,onToggleWord:q,onStep:H,onClose:Y}){let F=(K)=>K.preventDefault();return $("div",{class:"find-bar",role:"search",children:[$(f,{name:"search",cls:"ico sm find-ico"},void 0,!1,void 0,this),$("input",{type:"text",placeholder:"在文档中查找",value:Z,autoFocus:!0,onInput:(K)=>W(K.currentTarget.value),onKeyDown:(K)=>{if(K.key==="Enter")K.preventDefault(),H(K.shiftKey?-1:1);else if(K.key==="Escape")K.preventDefault(),Y()}},void 0,!1,void 0,this),$("span",{class:"find-count",children:z?`${X+1} / ${z}`:Z?"无结果":""},void 0,!1,void 0,this),$("button",{class:"find-opt"+(J?" on":""),title:"区分大小写",onMouseDown:F,onClick:G,children:"Aa"},void 0,!1,void 0,this),$("button",{class:"find-opt"+(Q?" on":""),title:"全词匹配",onMouseDown:F,onClick:q,children:"全词"},void 0,!1,void 0,this),$("button",{class:"find-nav",title:"上一个 (Shift+Enter)",disabled:!z,onMouseDown:F,onClick:()=>H(-1),children:$(f,{name:"chevronDown",cls:"ico sm find-prev"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"find-nav",title:"下一个 (Enter)",disabled:!z,onMouseDown:F,onClick:()=>H(1),children:$(f,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"find-nav find-close",title:"关闭 (Esc)",onClick:Y,children:$(f,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function BG({x:Z,y:J,onCommand:Q}){let X=(z)=>(W)=>{W.preventDefault(),Q(z)};return $("div",{class:"pop",style:{left:Math.max(8,Math.min(Z,innerWidth-220)),top:J-46,minWidth:0,padding:3,display:"flex",gap:1},children:[["bold","bold"],["italic","italic"],["underline","underline"],["strikeThrough","strike"],["code","code"],["createLink","link"]].map(([z,W])=>$("button",{class:"item",style:{width:34,justifyContent:"center",padding:"7px 0"},onMouseDown:X(z),children:$(f,{name:W,cls:"ico sm"},void 0,!1,void 0,this)},z,!1,void 0,this))},void 0,!1,void 0,this)}function OG(){let Z=getSelection();if(!Z||Z.isCollapsed)return;document.execCommand("insertHTML",!1,`<code>${Z8(Z.toString())}</code>`)}function WZ(Z){document.querySelectorAll(".doc .block[data-bid]").forEach((J)=>AG(Z,J))}function AG(Z,J){let Q=J.matches(".block[data-bid]")?J:J.closest(".block[data-bid]"),X=Q?.getAttribute("data-bid"),z=X?T0(Z,X)?.block:null;if(!z||!Q)return;let W=Q.querySelector(".editable"),G=Q.querySelector(".code-input");if(W)z.content=$8(z,W);else if(G)z.content=G.value}function NG(Z){return(Z instanceof HTMLElement?Z:Z.parentElement)?.closest(".block[data-bid]")??null}function G3(){return document.activeElement?.closest?.(".doc .block[data-bid]")?.getAttribute("data-bid")??null}function c1(Z){document.querySelector(".doc")?.classList.toggle("selecting",Z)}function $6(){getSelection()?.removeAllRanges(),document.activeElement?.blur?.(),c1(!0)}function p1(Z){let J=getSelection();if(!J||J.isCollapsed||!J.rangeCount)return Z(null);if(!J.anchorNode?.parentElement?.closest?.(".editable"))return Z(null);let X=J.getRangeAt(0),z=X.getBoundingClientRect(),W=z.width||z.height?z:X.getClientRects()[0];if(!W)return Z(null);Z({x:W.left,y:W.top})}function wG(Z){let J=getSelection()?.anchorNode?.parentElement?.closest?.(".editable"),X=J?.closest(".block")?.getAttribute("data-bid"),z=X?T0(Z,X)?.block:null;if(z&&J)z.content=$8(z,J)}function $8(Z,J){return zZ(J.innerHTML)}function d1(){let Z=getSelection();return!!Z&&!Z.isCollapsed}function MG(Z){let J=getSelection();if(!J||!J.rangeCount)return 0;let Q=J.getRangeAt(0);if(!Z.contains(Q.startContainer))return 0;let X=document.createRange();return X.selectNodeContents(Z),X.setEnd(Q.startContainer,Q.startOffset),X.toString().length}function Q6(Z){let J=document.querySelector(`.block[data-bid="${Z}"]`),Q=document.activeElement;if(!J||!Q||!J.contains(Q))return null;if(Q instanceof HTMLTextAreaElement)return Q.selectionStart;let X=J.querySelector(".editable");return X?MG(X):null}function X6(Z,J){let Q=document.querySelector(`.block[data-bid="${Z}"] .code-input`);if(Q){Q.focus();let X=Math.min(J,Q.value.length);Q.setSelectionRange(X,X);return}i1(Z,J)}function CG(Z){let J=getSelection();if(!J||!J.rangeCount||!J.isCollapsed)return!1;let Q=J.getRangeAt(0);if(!Z.contains(Q.startContainer))return!1;let X=document.createRange();return X.selectNodeContents(Z),X.setEnd(Q.startContainer,Q.startOffset),X.toString().length===0}function yG(){let Z=getSelection();if(!Z||!Z.rangeCount)return{x:80,y:120};let J=Z.getRangeAt(0).getBoundingClientRect();return{x:J.left||80,y:J.top||120}}function q3(Z){let J=getSelection();if(!J||!J.rangeCount)return{first:!0,last:!0};let Q=J.getRangeAt(0).getBoundingClientRect(),X=Z.getBoundingClientRect();if(!Q.height&&!Q.top)return{first:!0,last:!0};let z=parseFloat(getComputedStyle(Z).lineHeight)||Q.height||20;return{first:Q.top-X.top<z*0.5,last:X.bottom-Q.bottom<z*0.5}}function _G(Z){let J=Z.textContent??"";if(J.trim()==="")return!0;let Q=getSelection();if(!Q||!Q.rangeCount||Q.isCollapsed)return!1;if(!Z.contains(Q.anchorNode)||!Z.contains(Q.focusNode))return!1;return Q.toString().length>=J.length}function z6(Z){let J=getSelection();if(!J||!J.rangeCount||!Z.contains(J.getRangeAt(0).startContainer))return{before:zZ(Z.innerHTML),after:""};let Q=J.getRangeAt(0),X=(z)=>{let W=document.createRange();W.selectNodeContents(Z),z(W);let G=document.createElement("div");return G.appendChild(W.cloneContents()),zZ(G.innerHTML)};return{before:X((z)=>z.setEnd(Q.startContainer,Q.startOffset)),after:X((z)=>z.setStart(Q.endContainer,Q.endOffset))}}function H3(Z){let J=document.createElement("div");return J.innerHTML=J8(Z),(J.textContent??"").length}function i1(Z,J){let Q=document.querySelector(`.block[data-bid="${Z}"] .editable`);if(!Q)return;Q.focus();let X=document.createTreeWalker(Q,NodeFilter.SHOW_TEXT),z=J,W=null;for(let H=X.nextNode();H;H=X.nextNode()){if(W=H,z<=H.data.length)break;z-=H.data.length}let G=document.createRange();if(W)G.setStart(W,Math.min(z,W.data.length));else G.selectNodeContents(Q);G.collapse(!0);let q=getSelection();q?.removeAllRanges(),q?.addRange(G)}function x0(Z,J=!1){let Q=`.block[data-bid="${Z}"] .editable, .block[data-bid="${Z}"] .code-input, .block[data-bid="${Z}"] .void-host`,X=document.querySelector(Q);if(!X)return;if(X.focus(),X.classList.contains("void-host"))return;if(X instanceof HTMLTextAreaElement){let G=J?X.value.length:0;X.setSelectionRange(G,G);return}let z=document.createRange();z.selectNodeContents(X),z.collapse(!J);let W=getSelection();W?.removeAllRanges(),W?.addRange(z)}function Y3(Z){Z.style.height="auto",Z.style.height=Z.scrollHeight+"px"}var TZ=A9;function U3(Z,J){I8(Z,J,"y")}function K3(Z,J){if(!Z)return null;let Q=Array.from(Z.querySelectorAll(":scope > .block-wrap > .block")),X=null,z=1/0;for(let W of Q){let G=W.getBoundingClientRect();if(J>=G.top&&J<=G.bottom)return W;let q=J<G.top?G.top-J:J-G.bottom;if(q<z)z=q,X=W}return X}var RZ=function(Z,J){let z=Z,W=Q8[J],G=null,q=0,H=null,Y=[],F={},K=function(N,L){if(q=z*4+17,G=function(B){let M=Array(B);for(let y=0;y<B;y+=1){M[y]=Array(B);for(let E=0;E<B;E+=1)M[y][E]=null}return M}(q),w(0,0),w(q-7,0),w(0,q-7),_(),A(),D(N,L),z>=7)V(N);if(H==null)H=x(z,W,Y);v(H,L)},w=function(N,L){for(let B=-1;B<=7;B+=1){if(N+B<=-1||q<=N+B)continue;for(let M=-1;M<=7;M+=1){if(L+M<=-1||q<=L+M)continue;if(0<=B&&B<=6&&(M==0||M==6)||0<=M&&M<=6&&(B==0||B==6)||2<=B&&B<=4&&2<=M&&M<=4)G[N+B][L+M]=!0;else G[N+B][L+M]=!1}}},P=function(){let N=0,L=0;for(let B=0;B<8;B+=1){K(!0,B);let M=u9.getLostPoint(F);if(B==0||N>M)N=M,L=B}return L},A=function(){for(let N=8;N<q-8;N+=1){if(G[N][6]!=null)continue;G[N][6]=N%2==0}for(let N=8;N<q-8;N+=1){if(G[6][N]!=null)continue;G[6][N]=N%2==0}},_=function(){let N=u9.getPatternPosition(z);for(let L=0;L<N.length;L+=1)for(let B=0;B<N.length;B+=1){let M=N[L],y=N[B];if(G[M][y]!=null)continue;for(let E=-2;E<=2;E+=1)for(let c=-2;c<=2;c+=1)if(E==-2||E==2||c==-2||c==2||E==0&&c==0)G[M+E][y+c]=!0;else G[M+E][y+c]=!1}},V=function(N){let L=u9.getBCHTypeNumber(z);for(let B=0;B<18;B+=1){let M=!N&&(L>>B&1)==1;G[Math.floor(B/3)][B%3+q-8-3]=M}for(let B=0;B<18;B+=1){let M=!N&&(L>>B&1)==1;G[B%3+q-8-3][Math.floor(B/3)]=M}},D=function(N,L){let B=W<<3|L,M=u9.getBCHTypeInfo(B);for(let y=0;y<15;y+=1){let E=!N&&(M>>y&1)==1;if(y<6)G[y][8]=E;else if(y<8)G[y+1][8]=E;else G[q-15+y][8]=E}for(let y=0;y<15;y+=1){let E=!N&&(M>>y&1)==1;if(y<8)G[8][q-y-1]=E;else if(y<9)G[8][15-y-1+1]=E;else G[8][15-y-1]=E}G[q-8][8]=!N},v=function(N,L){let B=-1,M=q-1,y=7,E=0,c=u9.getMaskFunction(L);for(let r=q-1;r>0;r-=2){if(r==6)r-=1;while(!0){for(let $0=0;$0<2;$0+=1)if(G[M][r-$0]==null){let m=!1;if(E<N.length)m=(N[E]>>>y&1)==1;if(c(M,r-$0))m=!m;if(G[M][r-$0]=m,y-=1,y==-1)E+=1,y=7}if(M+=B,M<0||q<=M){M-=B,B=-B;break}}}},R=function(N,L){let B=0,M=0,y=0,E=Array(L.length),c=Array(L.length);for(let g=0;g<L.length;g+=1){let u=L[g].dataCount,I=L[g].totalCount-u;M=Math.max(M,u),y=Math.max(y,I),E[g]=Array(u);for(let Q0=0;Q0<E[g].length;Q0+=1)E[g][Q0]=255&N.getBuffer()[Q0+B];B+=u;let n=u9.getErrorCorrectPolynomial(I),q0=X8(E[g],n.getLength()-1).mod(n);c[g]=Array(n.getLength()-1);for(let Q0=0;Q0<c[g].length;Q0+=1){let J0=Q0+q0.getLength()-c[g].length;c[g][Q0]=J0>=0?q0.getAt(J0):0}}let r=0;for(let g=0;g<L.length;g+=1)r+=L[g].totalCount;let $0=Array(r),m=0;for(let g=0;g<M;g+=1)for(let u=0;u<L.length;u+=1)if(g<E[u].length)$0[m]=E[u][g],m+=1;for(let g=0;g<y;g+=1)for(let u=0;u<L.length;u+=1)if(g<c[u].length)$0[m]=c[u][g],m+=1;return $0},x=function(N,L,B){let M=L3.getRSBlocks(N,L),y=P3();for(let c=0;c<B.length;c+=1){let r=B[c];y.put(r.getMode(),4),y.put(r.getLength(),u9.getLengthInBits(r.getMode(),N)),r.write(y)}let E=0;for(let c=0;c<M.length;c+=1)E+=M[c].dataCount;if(y.getLengthInBits()>E*8)throw"code length overflow. ("+y.getLengthInBits()+">"+E*8+")";if(y.getLengthInBits()+4<=E*8)y.put(0,4);while(y.getLengthInBits()%8!=0)y.putBit(!1);while(!0){if(y.getLengthInBits()>=E*8)break;if(y.put(236,8),y.getLengthInBits()>=E*8)break;y.put(17,8)}return R(y,M)};F.addData=function(N,L){L=L||"Byte";let B=null;switch(L){case"Numeric":B=vG(N);break;case"Alphanumeric":B=TG(N);break;case"Byte":B=RG(N);break;case"Kanji":B=kG(N);break;default:throw"mode:"+L}Y.push(B),H=null},F.isDark=function(N,L){if(N<0||q<=N||L<0||q<=L)throw N+","+L;return G[N][L]},F.getModuleCount=function(){return q},F.make=function(){if(z<1){let N=1;for(;N<40;N++){let L=L3.getRSBlocks(N,W),B=P3();for(let y=0;y<Y.length;y++){let E=Y[y];B.put(E.getMode(),4),B.put(E.getLength(),u9.getLengthInBits(E.getMode(),N)),E.write(B)}let M=0;for(let y=0;y<L.length;y++)M+=L[y].dataCount;if(B.getLengthInBits()<=M*8)break}z=N}K(!1,P())},F.createTableTag=function(N,L){N=N||2,L=typeof L>"u"?N*4:L;let B="";B+='<table style="',B+=" border-width: 0px; border-style: none;",B+=" border-collapse: collapse;",B+=" padding: 0px; margin: "+L+"px;",B+='">',B+="<tbody>";for(let M=0;M<F.getModuleCount();M+=1){B+="<tr>";for(let y=0;y<F.getModuleCount();y+=1)B+='<td style="',B+=" border-width: 0px; border-style: none;",B+=" border-collapse: collapse;",B+=" padding: 0px; margin: 0px;",B+=" width: "+N+"px;",B+=" height: "+N+"px;",B+=" background-color: ",B+=F.isDark(M,y)?"#000000":"#ffffff",B+=";",B+='"/>';B+="</tr>"}return B+="</tbody>",B+="</table>",B},F.createSvgTag=function(N,L,B,M){let y={};if(typeof arguments[0]=="object")y=arguments[0],N=y.cellSize,L=y.margin,B=y.alt,M=y.title;N=N||2,L=typeof L>"u"?N*4:L,B=typeof B==="string"?{text:B}:B||{},B.text=B.text||null,B.id=B.text?B.id||"qrcode-description":null,M=typeof M==="string"?{text:M}:M||{},M.text=M.text||null,M.id=M.text?M.id||"qrcode-title":null;let E=F.getModuleCount()*N+L*2,c,r,$0,m,g="",u;u="l"+N+",0 0,"+N+" -"+N+",0 0,-"+N+"z ",g+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',g+=!y.scalable?' width="'+E+'px" height="'+E+'px"':"",g+=' viewBox="0 0 '+E+" "+E+'" ',g+=' preserveAspectRatio="xMinYMin meet"',g+=M.text||B.text?' role="img" aria-labelledby="'+S([M.id,B.id].join(" ").trim())+'"':"",g+=">",g+=M.text?'<title id="'+S(M.id)+'">'+S(M.text)+"</title>":"",g+=B.text?'<description id="'+S(B.id)+'">'+S(B.text)+"</description>":"",g+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',g+='<path d="';for($0=0;$0<F.getModuleCount();$0+=1){m=$0*N+L;for(c=0;c<F.getModuleCount();c+=1)if(F.isDark($0,c))r=c*N+L,g+="M"+r+","+m+u}return g+='" stroke="transparent" fill="black"/>',g+="</svg>",g},F.createDataURL=function(N,L){N=N||2,L=typeof L>"u"?N*4:L;let B=F.getModuleCount()*N+L*2,M=L,y=B-L;return fG(B,B,function(E,c){if(M<=E&&E<y&&M<=c&&c<y){let r=Math.floor((E-M)/N),$0=Math.floor((c-M)/N);return F.isDark($0,r)?0:1}else return 1})},F.createImgTag=function(N,L,B){N=N||2,L=typeof L>"u"?N*4:L;let M=F.getModuleCount()*N+L*2,y="";if(y+="<img",y+=' src="',y+=F.createDataURL(N,L),y+='"',y+=' width="',y+=M,y+='"',y+=' height="',y+=M,y+='"',B)y+=' alt="',y+=S(B),y+='"';return y+="/>",y};let S=function(N){let L="";for(let B=0;B<N.length;B+=1){let M=N.charAt(B);switch(M){case"<":L+="<";break;case">":L+=">";break;case"&":L+="&";break;case'"':L+=""";break;default:L+=M;break}}return L},O=function(N){N=typeof N>"u"?2:N;let B=F.getModuleCount()*1+N*2,M=N,y=B-N,E,c,r,$0,m,g={"██":"█","█ ":"▀"," █":"▄"," ":" "},u={"██":"▀","█ ":"▀"," █":" "," ":" "},I="";for(E=0;E<B;E+=2){r=Math.floor((E-M)/1),$0=Math.floor((E+1-M)/1);for(c=0;c<B;c+=1){if(m="█",M<=c&&c<y&&M<=E&&E<y&&F.isDark(r,Math.floor((c-M)/1)))m=" ";if(M<=c&&c<y&&M<=E+1&&E+1<y&&F.isDark($0,Math.floor((c-M)/1)))m+=" ";else m+="█";I+=N<1&&E+1>=y?u[m]:g[m]}I+=`
|
|
146
|
-
`}if(
|
|
147
|
-
`}return u.substring(0,u.length-1)},F.renderTo2dContext=function(N,L){L=L||2;let B=F.getModuleCount();for(let M=0;M<B;M++)for(let y=0;y<B;y++)N.fillStyle=F.isDark(M,y)?"black":"white",N.fillRect(y*L,M*L,L,L)},F};RZ.stringToBytes=function(Z){let J=[];for(let Q=0;Q<Z.length;Q+=1){let X=Z.charCodeAt(Q);J.push(X&255)}return J};RZ.createStringToBytes=function(Z,J){let Q=function(){let z=SG(Z),W=function(){let H=z.read();if(H==-1)throw"eof";return H},G=0,q={};while(!0){let H=z.read();if(H==-1)break;let Y=W(),F=W(),K=W(),w=String.fromCharCode(H<<8|Y),P=F<<8|K;q[w]=P,G+=1}if(G!=J)throw G+" != "+J;return q}(),X=63;return function(z){let W=[];for(let G=0;G<z.length;G+=1){let q=z.charCodeAt(G);if(q<128)W.push(q);else{let H=Q[z.charAt(G)];if(typeof H=="number")if((H&255)==H)W.push(H);else W.push(H>>>8),W.push(H&255);else W.push(63)}}return W}};var s0={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},Q8={L:1,M:0,Q:3,H:2},m9={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},u9=function(){let Z=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],J=1335,Q=7973,X=21522,z={},W=function(G){let q=0;while(G!=0)q+=1,G>>>=1;return q};return z.getBCHTypeInfo=function(G){let q=G<<10;while(W(q)-W(1335)>=0)q^=1335<<W(q)-W(1335);return(G<<10|q)^21522},z.getBCHTypeNumber=function(G){let q=G<<12;while(W(q)-W(7973)>=0)q^=7973<<W(q)-W(7973);return G<<12|q},z.getPatternPosition=function(G){return Z[G-1]},z.getMaskFunction=function(G){switch(G){case m9.PATTERN000:return function(q,H){return(q+H)%2==0};case m9.PATTERN001:return function(q,H){return q%2==0};case m9.PATTERN010:return function(q,H){return H%3==0};case m9.PATTERN011:return function(q,H){return(q+H)%3==0};case m9.PATTERN100:return function(q,H){return(Math.floor(q/2)+Math.floor(H/3))%2==0};case m9.PATTERN101:return function(q,H){return q*H%2+q*H%3==0};case m9.PATTERN110:return function(q,H){return(q*H%2+q*H%3)%2==0};case m9.PATTERN111:return function(q,H){return(q*H%3+(q+H)%2)%2==0};default:throw"bad maskPattern:"+G}},z.getErrorCorrectPolynomial=function(G){let q=X8([1],0);for(let H=0;H<G;H+=1)q=q.multiply(X8([1,E9.gexp(H)],0));return q},z.getLengthInBits=function(G,q){if(1<=q&&q<10)switch(G){case s0.MODE_NUMBER:return 10;case s0.MODE_ALPHA_NUM:return 9;case s0.MODE_8BIT_BYTE:return 8;case s0.MODE_KANJI:return 8;default:throw"mode:"+G}else if(q<27)switch(G){case s0.MODE_NUMBER:return 12;case s0.MODE_ALPHA_NUM:return 11;case s0.MODE_8BIT_BYTE:return 16;case s0.MODE_KANJI:return 10;default:throw"mode:"+G}else if(q<41)switch(G){case s0.MODE_NUMBER:return 14;case s0.MODE_ALPHA_NUM:return 13;case s0.MODE_8BIT_BYTE:return 16;case s0.MODE_KANJI:return 12;default:throw"mode:"+G}else throw"type:"+q},z.getLostPoint=function(G){let q=G.getModuleCount(),H=0;for(let K=0;K<q;K+=1)for(let w=0;w<q;w+=1){let P=0,A=G.isDark(K,w);for(let _=-1;_<=1;_+=1){if(K+_<0||q<=K+_)continue;for(let V=-1;V<=1;V+=1){if(w+V<0||q<=w+V)continue;if(_==0&&V==0)continue;if(A==G.isDark(K+_,w+V))P+=1}}if(P>5)H+=3+P-5}for(let K=0;K<q-1;K+=1)for(let w=0;w<q-1;w+=1){let P=0;if(G.isDark(K,w))P+=1;if(G.isDark(K+1,w))P+=1;if(G.isDark(K,w+1))P+=1;if(G.isDark(K+1,w+1))P+=1;if(P==0||P==4)H+=3}for(let K=0;K<q;K+=1)for(let w=0;w<q-6;w+=1)if(G.isDark(K,w)&&!G.isDark(K,w+1)&&G.isDark(K,w+2)&&G.isDark(K,w+3)&&G.isDark(K,w+4)&&!G.isDark(K,w+5)&&G.isDark(K,w+6))H+=40;for(let K=0;K<q;K+=1)for(let w=0;w<q-6;w+=1)if(G.isDark(w,K)&&!G.isDark(w+1,K)&&G.isDark(w+2,K)&&G.isDark(w+3,K)&&G.isDark(w+4,K)&&!G.isDark(w+5,K)&&G.isDark(w+6,K))H+=40;let Y=0;for(let K=0;K<q;K+=1)for(let w=0;w<q;w+=1)if(G.isDark(w,K))Y+=1;let F=Math.abs(100*Y/q/q-50)/5;return H+=F*10,H},z}(),E9=function(){let Z=Array(256),J=Array(256);for(let X=0;X<8;X+=1)Z[X]=1<<X;for(let X=8;X<256;X+=1)Z[X]=Z[X-4]^Z[X-5]^Z[X-6]^Z[X-8];for(let X=0;X<255;X+=1)J[Z[X]]=X;let Q={};return Q.glog=function(X){if(X<1)throw"glog("+X+")";return J[X]},Q.gexp=function(X){while(X<0)X+=255;while(X>=256)X-=255;return Z[X]},Q}(),X8=function(Z,J){if(typeof Z.length>"u")throw Z.length+"/"+J;let Q=function(){let z=0;while(z<Z.length&&Z[z]==0)z+=1;let W=Array(Z.length-z+J);for(let G=0;G<Z.length-z;G+=1)W[G]=Z[G+z];return W}(),X={};return X.getAt=function(z){return Q[z]},X.getLength=function(){return Q.length},X.multiply=function(z){let W=Array(X.getLength()+z.getLength()-1);for(let G=0;G<X.getLength();G+=1)for(let q=0;q<z.getLength();q+=1)W[G+q]^=E9.gexp(E9.glog(X.getAt(G))+E9.glog(z.getAt(q)));return X8(W,0)},X.mod=function(z){if(X.getLength()-z.getLength()<0)return X;let W=E9.glog(X.getAt(0))-E9.glog(z.getAt(0)),G=Array(X.getLength());for(let q=0;q<X.getLength();q+=1)G[q]=X.getAt(q);for(let q=0;q<z.getLength();q+=1)G[q]^=E9.gexp(E9.glog(z.getAt(q))+W);return X8(G,0).mod(z)},X},L3=function(){let Z=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],J=function(z,W){let G={};return G.totalCount=z,G.dataCount=W,G},Q={},X=function(z,W){switch(W){case Q8.L:return Z[(z-1)*4+0];case Q8.M:return Z[(z-1)*4+1];case Q8.Q:return Z[(z-1)*4+2];case Q8.H:return Z[(z-1)*4+3];default:return}};return Q.getRSBlocks=function(z,W){let G=X(z,W);if(typeof G>"u")throw"bad rs block @ typeNumber:"+z+"/errorCorrectionLevel:"+W;let q=G.length/3,H=[];for(let Y=0;Y<q;Y+=1){let F=G[Y*3+0],K=G[Y*3+1],w=G[Y*3+2];for(let P=0;P<F;P+=1)H.push(J(K,w))}return H},Q}(),P3=function(){let Z=[],J=0,Q={};return Q.getBuffer=function(){return Z},Q.getAt=function(X){let z=Math.floor(X/8);return(Z[z]>>>7-X%8&1)==1},Q.put=function(X,z){for(let W=0;W<z;W+=1)Q.putBit((X>>>z-W-1&1)==1)},Q.getLengthInBits=function(){return J},Q.putBit=function(X){let z=Math.floor(J/8);if(Z.length<=z)Z.push(0);if(X)Z[z]|=128>>>J%8;J+=1},Q},vG=function(Z){let J=s0.MODE_NUMBER,Q=Z,X={};X.getMode=function(){return J},X.getLength=function(G){return Q.length},X.write=function(G){let q=Q,H=0;while(H+2<q.length)G.put(z(q.substring(H,H+3)),10),H+=3;if(H<q.length){if(q.length-H==1)G.put(z(q.substring(H,H+1)),4);else if(q.length-H==2)G.put(z(q.substring(H,H+2)),7)}};let z=function(G){let q=0;for(let H=0;H<G.length;H+=1)q=q*10+W(G.charAt(H));return q},W=function(G){if("0"<=G&&G<="9")return G.charCodeAt(0)-48;throw"illegal char :"+G};return X},TG=function(Z){let J=s0.MODE_ALPHA_NUM,Q=Z,X={};X.getMode=function(){return J},X.getLength=function(W){return Q.length},X.write=function(W){let G=Q,q=0;while(q+1<G.length)W.put(z(G.charAt(q))*45+z(G.charAt(q+1)),11),q+=2;if(q<G.length)W.put(z(G.charAt(q)),6)};let z=function(W){if("0"<=W&&W<="9")return W.charCodeAt(0)-48;else if("A"<=W&&W<="Z")return W.charCodeAt(0)-65+10;else switch(W){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+W}};return X},RG=function(Z){let J=s0.MODE_8BIT_BYTE,Q=Z,X=RZ.stringToBytes(Z),z={};return z.getMode=function(){return J},z.getLength=function(W){return X.length},z.write=function(W){for(let G=0;G<X.length;G+=1)W.put(X[G],8)},z},kG=function(Z){let J=s0.MODE_KANJI,Q=Z,X=RZ.stringToBytes;(function(G,q){let H=X(G);if(H.length!=2||(H[0]<<8|H[1])!=q)throw"sjis not supported."})("友",38726);let z=X(Z),W={};return W.getMode=function(){return J},W.getLength=function(G){return~~(z.length/2)},W.write=function(G){let q=z,H=0;while(H+1<q.length){let Y=(255&q[H])<<8|255&q[H+1];if(33088<=Y&&Y<=40956)Y-=33088;else if(57408<=Y&&Y<=60351)Y-=49472;else throw"illegal char at "+(H+1)+"/"+Y;Y=(Y>>>8&255)*192+(Y&255),G.put(Y,13),H+=2}if(H<q.length)throw"illegal char at "+(H+1)},W},B3=function(){let Z=[],J={};return J.writeByte=function(Q){Z.push(Q&255)},J.writeShort=function(Q){J.writeByte(Q),J.writeByte(Q>>>8)},J.writeBytes=function(Q,X,z){X=X||0,z=z||Q.length;for(let W=0;W<z;W+=1)J.writeByte(Q[W+X])},J.writeString=function(Q){for(let X=0;X<Q.length;X+=1)J.writeByte(Q.charCodeAt(X))},J.toByteArray=function(){return Z},J.toString=function(){let Q="";Q+="[";for(let X=0;X<Z.length;X+=1){if(X>0)Q+=",";Q+=Z[X]}return Q+="]",Q},J},IG=function(){let Z=0,J=0,Q=0,X="",z={},W=function(q){X+=String.fromCharCode(G(q&63))},G=function(q){if(q<0)throw"n:"+q;else if(q<26)return 65+q;else if(q<52)return 97+(q-26);else if(q<62)return 48+(q-52);else if(q==62)return 43;else if(q==63)return 47;else throw"n:"+q};return z.writeByte=function(q){Z=Z<<8|q&255,J+=8,Q+=1;while(J>=6)W(Z>>>J-6),J-=6},z.flush=function(){if(J>0)W(Z<<6-J),Z=0,J=0;if(Q%3!=0){let q=3-Q%3;for(let H=0;H<q;H+=1)X+="="}},z.toString=function(){return X},z},SG=function(Z){let J=Z,Q=0,X=0,z=0,W={};W.read=function(){while(z<8){if(Q>=J.length){if(z==0)return-1;throw"unexpected end of file./"+z}let H=J.charAt(Q);if(Q+=1,H=="=")return z=0,-1;else if(H.match(/^\s$/))continue;X=X<<6|G(H.charCodeAt(0)),z+=6}let q=X>>>z-8&255;return z-=8,q};let G=function(q){if(65<=q&&q<=90)return q-65;else if(97<=q&&q<=122)return q-97+26;else if(48<=q&&q<=57)return q-48+52;else if(q==43)return 62;else if(q==47)return 63;else throw"c:"+q};return W},VG=function(Z,J){let Q=Z,X=J,z=Array(Z*J),W={};W.setPixel=function(Y,F,K){z[F*Q+Y]=K},W.write=function(Y){Y.writeString("GIF87a"),Y.writeShort(Q),Y.writeShort(X),Y.writeByte(128),Y.writeByte(0),Y.writeByte(0),Y.writeByte(0),Y.writeByte(0),Y.writeByte(0),Y.writeByte(255),Y.writeByte(255),Y.writeByte(255),Y.writeString(","),Y.writeShort(0),Y.writeShort(0),Y.writeShort(Q),Y.writeShort(X),Y.writeByte(0);let F=2,K=q(F);Y.writeByte(F);let w=0;while(K.length-w>255)Y.writeByte(255),Y.writeBytes(K,w,255),w+=255;Y.writeByte(K.length-w),Y.writeBytes(K,w,K.length-w),Y.writeByte(0),Y.writeString(";")};let G=function(Y){let F=Y,K=0,w=0,P={};return P.write=function(A,_){if(A>>>_!=0)throw"length over";while(K+_>=8)F.writeByte(255&(A<<K|w)),_-=8-K,A>>>=8-K,w=0,K=0;w=A<<K|w,K=K+_},P.flush=function(){if(K>0)F.writeByte(w)},P},q=function(Y){let F=1<<Y,K=(1<<Y)+1,w=Y+1,P=H();for(let v=0;v<F;v+=1)P.add(String.fromCharCode(v));P.add(String.fromCharCode(F)),P.add(String.fromCharCode(K));let A=B3(),_=G(A);_.write(F,w);let V=0,D=String.fromCharCode(z[V]);V+=1;while(V<z.length){let v=String.fromCharCode(z[V]);if(V+=1,P.contains(D+v))D=D+v;else{if(_.write(P.indexOf(D),w),P.size()<4095){if(P.size()==1<<w)w+=1;P.add(D+v)}D=v}}return _.write(P.indexOf(D),w),_.write(K,w),_.flush(),A.toByteArray()},H=function(){let Y={},F=0,K={};return K.add=function(w){if(K.contains(w))throw"dup key:"+w;Y[w]=F,F+=1},K.size=function(){return F},K.indexOf=function(w){return Y[w]},K.contains=function(w){return typeof Y[w]<"u"},K};return W},fG=function(Z,J,Q){let X=VG(Z,J);for(let q=0;q<J;q+=1)for(let H=0;H<Z;H+=1)X.setPixel(H,q,Q(H,q));let z=B3();X.write(z);let W=IG(),G=z.toByteArray();for(let q=0;q<G.length;q+=1)W.writeByte(G[q]);return W.flush(),"data:image/gif;base64,"+W},O3=RZ,sK=RZ.stringToBytes;function a1(){let Z=localStorage.getItem("mh-theme");return Z==="light"||Z==="dark"||Z==="system"?Z:"system"}function n1(){let Z=a1(),J=Z==="dark"||Z!=="light"&&matchMedia("(prefers-color-scheme: dark)").matches;document.documentElement.dataset.resolved=J?"dark":"light"}function A3(Z){localStorage.setItem("mh-theme",Z),n1(),G6()}function G6(){let Z=document.getElementById("theme-color-meta");if(!Z)return;let J=document.body.classList.contains("mobile")&&!document.body.classList.contains("mobile-content"),Q=getComputedStyle(document.documentElement).getPropertyValue(J?"--sidebar":"--bg").trim();if(Q)Z.setAttribute("content",Q)}var l1="__MH_WEBUI_VERSION__".startsWith("__MH_")?null:"__MH_WEBUI_VERSION__";function GZ(Z,J){let Q=Z.replace(/^v/,"").split(".").map((z)=>parseInt(z,10)||0),X=J.replace(/^v/,"").split(".").map((z)=>parseInt(z,10)||0);for(let z=0;z<Math.max(Q.length,X.length);z++){let W=(Q[z]??0)-(X[z]??0);if(W!==0)return W}return 0}function gG(Z){if(Z.kind==="local")return{title:"Blob 管理",subtitle:"已下载到这台设备的图片和大文件。清理只删本机副本,需要时从云端重新取回;桶里的原件始终不动。",deleteSemantics:"evict",list:async()=>{let[J,Q]=await Promise.all([G5(),f0("blobRefs").catch(()=>[])]),X=new Set(Q);return J.map((z)=>({hash:z.hash,size:z.size,contentType:z.content_type,lastAccess:z.accessed,pinned:z.pinned,pending:z.pending,clearable:!z.pinned&&!z.pending,referenced:X.has(z.hash)}))},clear:(J)=>g6(J),remove:(J)=>q5(J),pin:async(J,Q)=>{await Q5(J,Q)}};return{title:"Blob 管理",subtitle:"图片和大文件的本机副本。可清理项随时能腾空间(用时自动取回);没被任何文档或站点引用的孤儿可彻底删除。",deleteSemantics:"purge",list:()=>a.blobs(),clear:(J)=>a.clearBlobs(J),remove:(J)=>a.deleteBlobs(J),pin:async(J,Q)=>{await a.pinBlob(J,Q)}}}function o1(Z){W9($(mG,{source:gG(Z)},void 0,!1,void 0,this))}function qZ(Z){if(Z<1024)return`${Z} B`;if(Z<1048576)return`${(Z/1024).toFixed(1)} KB`;if(Z<1073741824)return`${(Z/1024/1024).toFixed(1)} MB`;return`${(Z/1024/1024/1024).toFixed(2)} GB`}function bG(Z){if(!Z)return"—";let J=Math.max(0,Math.round((Date.now()-Z)/1000));if(J<60)return"刚刚";let Q=Math.round(J/60);if(Q<60)return`${Q} 分钟前`;let X=Math.round(Q/60);if(X<24)return`${X} 小时前`;return`${Math.round(X/24)} 天前`}var q6={image:"图片",video:"视频",audio:"音频",file:"文件",other:"其他"},jG={image:"image",video:"video",audio:"audio",file:"file",other:"file"};function z8(Z){if(!Z)return"other";let J=Z.toLowerCase();if(J.startsWith("image/"))return"image";if(J.startsWith("video/"))return"video";if(J.startsWith("audio/"))return"audio";if(J.startsWith("application/")||J.startsWith("text/"))return"file";return"other"}function hG(Z){if(Z.pending)return"pending";if(Z.pinned)return"pinned";if(!Z.referenced)return"orphan";if(Z.clearable)return"clearable";return"retained"}var DG={pending:"待上传",pinned:"已固定",orphan:"孤儿",clearable:"可清理",retained:"保留"},r1={size:"大小",type:"类型",access:"最近使用"},N3=[{key:"all",label:"全部类型"},{key:"image",label:"图片"},{key:"video",label:"视频"},{key:"audio",label:"音频"},{key:"file",label:"文件"},{key:"other",label:"其他"}],w3=[{key:"all",label:"全部状态"},{key:"clearable",label:"可清理"},{key:"retained",label:"保留中"},{key:"pinned",label:"已固定"},{key:"pending",label:"待上传"},{key:"orphan",label:"孤儿"}];function xG({row:Z}){let J=z8(Z.contentType),[Q,X]=k(!1);if(J==="image"&&!Q)return $("img",{class:"blob-mgr-thumb",src:`/blob/${Z.hash}`,loading:"lazy",alt:"",onError:()=>X(!0)},void 0,!1,void 0,this);return $("span",{class:"blob-mgr-ico",children:$(f,{name:jG[J],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function mG({source:Z}){let[J,Q]=k(null),[X,z]=k(null),[W,G]=k(!1),[q,H]=k(""),[Y,F]=k("all"),[K,w]=k("all"),[P,A]=k({key:"size",desc:!0}),[_,V]=k(new Set),D=async()=>{try{let I=await Z.list();Q(I),z(null),V((n)=>new Set([...n].filter((Z0)=>I.some((q0)=>q0.hash===Z0))))}catch(I){z(I.message)}};l(()=>{D()},[]);let v=(I,n)=>{if(n==="all")return!0;if(n==="clearable")return I.clearable&&!I.pinned;if(n==="retained")return!I.clearable&&!I.pending&&I.referenced;if(n==="pinned")return I.pinned;if(n==="pending")return I.pending;if(n==="orphan")return!I.referenced;return!0},R=_9(()=>{let I=q.trim().toLowerCase(),n=(J??[]).filter((q0)=>{let Q0=z8(q0.contentType);if(Y!=="all"&&Q0!==Y)return!1;if(!v(q0,K))return!1;if(I){if(!`${q0.hash} ${q0.contentType??""} ${q6[Q0]}`.toLowerCase().includes(I))return!1}return!0}),Z0=P.desc?-1:1;return[...n].sort((q0,Q0)=>{let J0=0;if(P.key==="size")J0=q0.size-Q0.size;else if(P.key==="access")J0=(q0.lastAccess??0)-(Q0.lastAccess??0);else J0=q6[z8(q0.contentType)].localeCompare(q6[z8(Q0.contentType)],"zh")||q0.size-Q0.size;return Z0*J0})},[J,q,Y,K,P]),x=(I)=>V((n)=>{let Z0=new Set(n);if(Z0.has(I))Z0.delete(I);else Z0.add(I);return Z0}),S=R.length>0&&R.every((I)=>_.has(I.hash)),O=()=>V((I)=>{if(R.every((n)=>I.has(n.hash))){let n=new Set(I);for(let Z0 of R)n.delete(Z0.hash);return n}return new Set([...I,...R.map((n)=>n.hash)])}),N=(J??[]).filter((I)=>_.has(I.hash)),L=N.filter((I)=>I.clearable&&!I.pinned),B=N.filter((I)=>!I.referenced),M=N.reduce((I,n)=>I+n.size,0),y=async(I)=>{G(!0);try{await Z.pin(I.hash,!I.pinned),await D()}catch(n){s(n.message)}finally{G(!1)}},E=async()=>{let I=L.map((n)=>n.hash);if(!I.length)return;G(!0);try{let n=await Z.clear(I);s(n.cleared?`已清理 ${n.cleared} 项 · 腾出 ${qZ(n.freedBytes)}`:"没有可清理的项"),await D()}catch(n){s(n.message)}finally{G(!1)}},c=async()=>{let I=B;if(!I.length)return;let n=I.reduce((Q0,J0)=>Q0+J0.size,0),Z0=Z.deleteSemantics==="evict";if(!await R0({title:"删除孤儿 blob",message:Z0?`将从这台设备移除 ${I.length} 个未被任何文档/站点引用的 blob,约 ${qZ(n)}。桶里的原件不动,需要时仍可重新下载。`:`将永久删除 ${I.length} 个未被任何文档/站点引用的 blob,约 ${qZ(n)}。此操作不可恢复。`,confirmLabel:"删除",danger:!0}))return;G(!0);try{let Q0=await Z.remove(I.map((J0)=>J0.hash));s(Q0.removed?`已删除 ${Q0.removed} 项 · 腾出 ${qZ(Q0.freedBytes)}`:"没有可删除的孤儿"),await D()}catch(Q0){s(Q0.message)}finally{G(!1)}},r=(I)=>y0(I,(n)=>$(o,{children:[$(j0,{children:"排序依据"},void 0,!1,void 0,this),Object.keys(r1).map((Z0)=>$(z0,{label:r1[Z0]+(P.key===Z0?P.desc?" ↓":" ↑":""),checked:P.key===Z0,onClick:()=>{A((q0)=>({key:Z0,desc:q0.key===Z0?!q0.desc:!0})),n()}},Z0,!1,void 0,this))]},void 0,!0,void 0,this)),$0=(I)=>y0(I,(n)=>$(o,{children:[$(j0,{children:"按类型"},void 0,!1,void 0,this),N3.map((Z0)=>$(z0,{label:Z0.label,checked:Y===Z0.key,onClick:()=>{F(Z0.key),n()}},Z0.key,!1,void 0,this))]},void 0,!0,void 0,this)),m=(I)=>y0(I,(n)=>$(o,{children:[$(j0,{children:"按状态"},void 0,!1,void 0,this),w3.map((Z0)=>$(z0,{label:Z0.label,checked:K===Z0.key,onClick:()=>{w(Z0.key),n()}},Z0.key,!1,void 0,this))]},void 0,!0,void 0,this)),g=N3.find((I)=>I.key===Y).label,u=w3.find((I)=>I.key===K).label;return $(q9,{title:Z.title,sub:Z.subtitle,width:760,footer:$(o,{children:[$("div",{class:"blob-mgr-selsum",children:_.size>0?$(o,{children:["已选 ",$("b",{children:_.size},void 0,!1,void 0,this)," 项 · ",qZ(M)]},void 0,!0,void 0,this):J?$(o,{children:["共 ",J.length," 项 · ",qZ(J.reduce((I,n)=>I+n.size,0))]},void 0,!0,void 0,this):""},void 0,!1,void 0,this),$("button",{class:"btn btn-secondary",disabled:W||!L.length,onClick:()=>void E(),children:[$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"清理所选",L.length?`(${L.length})`:""]},void 0,!0,void 0,this),$("button",{class:"btn btn-danger",disabled:W||!B.length,onClick:()=>void c(),children:[$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"删除孤儿",B.length?`(${B.length})`:""]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost",onClick:()=>c0(),children:"关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:$("div",{class:"blob-mgr",children:[$("div",{class:"blob-mgr-bar",children:[$("div",{class:"blob-mgr-search",children:[$(f,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),$("input",{class:"blob-mgr-search-in",placeholder:"搜索 hash 或类型…",value:q,onInput:(I)=>H(I.target.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost blob-mgr-fbtn"+(Y!=="all"?" on":""),onClick:(I)=>$0(I),children:[$(f,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),g]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost blob-mgr-fbtn"+(K!=="all"?" on":""),onClick:(I)=>m(I),children:[$(f,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),u]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost blob-mgr-fbtn",onClick:(I)=>r(I),children:[$(f,{name:"sort",cls:"ico sm"},void 0,!1,void 0,this),r1[P.key],P.desc?" ↓":" ↑"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X?$("div",{class:"blob-mgr-empty",children:["无法读取:",X]},void 0,!0,void 0,this):!J?$("div",{class:"blob-mgr-empty",children:"加载中…"},void 0,!1,void 0,this):R.length===0?$("div",{class:"blob-mgr-empty",children:J.length?"没有符合条件的项":"这台设备还没有缓存的 blob"},void 0,!1,void 0,this):$("div",{class:"blob-mgr-list",children:[$("div",{class:"blob-mgr-row blob-mgr-head",children:[$("label",{class:"blob-mgr-check",children:$("input",{type:"checkbox",checked:S,onChange:O},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{},void 0,!1,void 0,this),$("span",{children:"名称"},void 0,!1,void 0,this),$("span",{class:"blob-mgr-r",children:"大小"},void 0,!1,void 0,this),$("span",{children:"状态"},void 0,!1,void 0,this),$("span",{class:"blob-mgr-age",children:"最近使用"},void 0,!1,void 0,this),$("span",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.map((I)=>{let n=z8(I.contentType),Z0=hG(I);return $("div",{class:"blob-mgr-row"+(_.has(I.hash)?" sel":""),children:[$("label",{class:"blob-mgr-check",children:$("input",{type:"checkbox",checked:_.has(I.hash),onChange:()=>x(I.hash)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$(xG,{row:I},void 0,!1,void 0,this),$("div",{class:"blob-mgr-name",children:[$("span",{class:"blob-mgr-hash",children:I.hash.slice(0,12)},void 0,!1,void 0,this),$("span",{class:"blob-mgr-type",children:I.contentType??q6[n]},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("span",{class:"blob-mgr-r blob-mgr-size",children:qZ(I.size)},void 0,!1,void 0,this),$("span",{class:"blob-mgr-badge s-"+Z0,children:DG[Z0]},void 0,!1,void 0,this),$("span",{class:"blob-mgr-age",children:bG(I.lastAccess)},void 0,!1,void 0,this),$("button",{class:"blob-mgr-pin"+(I.pinned?" on":""),disabled:W||I.pending,title:I.pinned?"取消固定":"固定(不被自动清理)",onClick:()=>void y(I),children:$(f,{name:"pin",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},I.hash,!0,void 0,this)})]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var W8={localDevice:{label:"本机",subtitle:"这台设备上的副本",icon:"monitor"},cloudWorkspace:{label:"云端工作区",subtitle:"你常用的在线工作区",icon:"globe"},localWorkspace:{label:"本机工作区",subtitle:"这台电脑上的工作区",icon:"monitor"}};function M3(){return{id:"local",kind:"local",label:W8.localDevice.label,subtitle:W8.localDevice.subtitle,icon:W8.localDevice.icon,isDefault:!1,routeOp:{via:"replica"},deleteSemantics:"evict"}}function H6(Z){let J=Z==="desktop"?W8.localWorkspace:W8.cloudWorkspace;return{id:"server",kind:"server",label:J.label,subtitle:J.subtitle,icon:J.icon,isDefault:!1,routeOp:{via:"http"},deleteSemantics:"purge"}}function uG(Z){if(Z.surface==="cli")return"cli";if(Z.surface==="desktop")return"sidecar";if(Z.dataHome==="local")return"bucket-replica";return Z.hold==="replica"?"offline-replica":"thin"}function C3(Z){let J=uG(Z),Q;switch(J){case"thin":Q=[H6(Z.surface)];break;case"offline-replica":Q=[M3(),H6(Z.surface)];break;case"bucket-replica":Q=[M3()];break;case"sidecar":Q=[H6(Z.surface)];break;case"cli":Q=[H6(Z.surface)];break;default:throw Error(`scopesFor: unhandled cell ${J}`)}return Q.map((X,z)=>({...X,isDefault:z===0}))}function y3({scopes:Z,value:J,onChange:Q,variant:X,sub:z}){if(Z.length===0)return null;let W=Z.find((H)=>H.id===J)??Z[0],G=z&&W.subtitle?$("div",{class:"scope-sub",children:W.subtitle},void 0,!1,void 0,this):null;if(Z.length===1)return $("div",{class:"scope-pick",children:[$("span",{class:"scope-pill",children:[$(f,{name:W.icon},void 0,!1,void 0,this),W.label]},void 0,!0,void 0,this),G]},void 0,!0,void 0,this);if((X??(Z.length>3?"menu":"segmented"))==="menu")return $("div",{class:"scope-pick",children:[$("button",{class:"btn btn-secondary scope-trigger",onClick:(H)=>y0(H,(Y)=>Z.map((F)=>$(z0,{icon:F.icon,label:F.label,sublabel:F.subtitle,checked:F.id===W.id,onClick:()=>{Q(F.id),Y()}},F.id,!1,void 0,this))),children:[$(f,{name:W.icon},void 0,!1,void 0,this),W.label,$(f,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G]},void 0,!0,void 0,this);return $("div",{class:"scope-pick",children:[$("div",{class:"scope-seg",role:"tablist",children:Z.map((H)=>$("button",{class:"scope-seg-item"+(H.id===W.id?" sel":""),role:"tab","aria-selected":H.id===W.id,onClick:()=>Q(H.id),children:[$(f,{name:H.icon},void 0,!1,void 0,this),H.label]},H.id,!0,void 0,this))},void 0,!1,void 0,this),G]},void 0,!0,void 0,this)}var v3=()=>V9().surface==="desktop",EG=[{value:"light",icon:"sun",name:"浅色",desc:"始终使用明亮界面"},{value:"dark",icon:"moon",name:"深色",desc:"始终使用暗色界面"},{value:"system",icon:"monitor",name:"跟随系统",desc:"随操作系统外观自动切换"}];function G8({id:Z,label:J,children:Q}){return $("div",{class:"set-group",id:Z,children:[$("div",{class:"set-group-label",children:J},void 0,!1,void 0,this),$("div",{class:"set-panel",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var M9={appearance:"appearance",quicknote:"quicknote",sync:"sync",storage:"storage",devices:"devices"},pG=[{id:M9.appearance,label:"外观",icon:"sun",show:()=>!0},{id:M9.quicknote,label:"快速笔记",icon:"pin",show:()=>typeof window<"u"&&!!window.metahubDesktop?.quicknote},{id:M9.sync,label:"同步",icon:"cloudCheck",show:()=>!0},{id:M9.storage,label:"存储",icon:"database",show:()=>!0},{id:M9.devices,label:"设备与授权",icon:"monitor",show:()=>!U9()}];function dG({sections:Z}){let[J,Q]=k(Z[0]?.id??""),X=W0(null),z=W0(0),W=Z.map((q)=>q.id).join("|");l(()=>{let q=document.querySelector(".content"),H=0,Y=()=>{if(Date.now()<z.current)return;if(q?q.scrollTop+q.clientHeight>=q.scrollHeight-2:window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-2){Q(Z[Z.length-1].id);return}let P=Math.max(q?q.getBoundingClientRect().top:0,0)+72,A=Z[0].id;for(let _ of Z){let V=document.getElementById(_.id);if(!V)continue;if(V.getBoundingClientRect().top-P<=1)A=_.id;else break}Q(A)},F=()=>{if(H)return;H=requestAnimationFrame(()=>{H=0,Y()})};Y();let K=new IntersectionObserver(Y,{root:q,rootMargin:"-72px 0px -70% 0px",threshold:[0,1]});for(let w of Z){let P=document.getElementById(w.id);if(P)K.observe(P)}return q?.addEventListener("scroll",F,{passive:!0}),window.addEventListener("scroll",F,{passive:!0}),()=>{if(K.disconnect(),q?.removeEventListener("scroll",F),window.removeEventListener("scroll",F),H)cancelAnimationFrame(H)}},[W]),l(()=>{let q=X.current;if(!q)return;let H=q.querySelector(`.set-rail-row[data-sec="${J}"]`);if(!H)return;q.style.setProperty("--mark-y",`${H.offsetTop}px`),q.style.setProperty("--mark-h",`${H.offsetHeight}px`)},[J,W]);let G=(q)=>{z.current=Date.now()+600,Q(q),document.getElementById(q)?.scrollIntoView({behavior:"smooth",block:"start"})};return $("div",{class:"set-rail-slot",children:$("nav",{class:"set-rail",ref:X,"aria-label":"设置区块",children:[$("span",{class:"set-rail-mark"},void 0,!1,void 0,this),Z.map((q)=>$("button",{"data-sec":q.id,class:"set-rail-row"+(q.id===J?" active":""),"aria-current":q.id===J?"true":void 0,onClick:()=>G(q.id),children:[$("span",{class:"set-rail-ico",children:$(f,{name:q.icon},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"set-rail-label",children:q.label},void 0,!1,void 0,this)]},q.id,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function T3({onUpdatePending:Z}={}){let[J,Q]=k(a1()),X=(W)=>{A3(W),Q(W)},z=pG.filter((W)=>W.show());return $("div",{class:"set-shell",children:$("div",{class:"set-page",children:[z.length>=2&&$(dG,{sections:z},void 0,!1,void 0,this),$("div",{class:"set-title",children:"设置"},void 0,!1,void 0,this),$("div",{class:"set-sub",children:"个性化你的 Metahub 工作区。"},void 0,!1,void 0,this),$(G8,{id:M9.appearance,label:"外观",children:$("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"颜色主题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"选择界面的明暗外观。"},void 0,!1,void 0,this),$("div",{class:"theme-grid",children:EG.map((W)=>$("button",{class:"theme-card"+(J===W.value?" sel":""),"aria-pressed":J===W.value,onClick:()=>X(W.value),children:[$("span",{class:"tc-check",children:$(f,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-ico",children:$(f,{name:W.icon},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-name",children:W.name},void 0,!1,void 0,this),$("span",{class:"tc-desc",children:W.desc},void 0,!1,void 0,this)]},W.value,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),typeof window<"u"&&window.metahubDesktop?.quicknote&&$(G8,{id:M9.quicknote,label:"快速笔记",children:$(Fq,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),$(G8,{id:M9.sync,label:"同步",children:[!v3()&&$(sG,{},void 0,!1,void 0,this),$(Zq,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(G8,{id:M9.storage,label:"存储",children:$(cG,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),!U9()&&$(G8,{id:M9.devices,label:"设备与授权",children:[$(Uq,{},void 0,!1,void 0,this),$(Lq,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$(Yq,{onUpdatePending:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function cG(){let Z=C3(V9()).filter((W)=>W.kind!=="bucket"),[J,Q]=k(Z[0]?.id??"server"),X=Z.find((W)=>W.id===J)??Z[0],z=Z.length>1;return $(o,{children:[$("div",{class:"set-block",children:[z&&$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"管理哪里的存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$(y3,{scopes:Z,value:X.id,onChange:Q,sub:z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="local"?$(rG,{scope:X},void 0,!1,void 0,this):$(lG,{scope:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function n0(Z){if(Z<1024)return`${Z} B`;if(Z<1048576)return`${(Z/1024).toFixed(1)} KB`;if(Z<1073741824)return`${(Z/1024/1024).toFixed(1)} MB`;return`${(Z/1024/1024/1024).toFixed(2)} GB`}function iG(Z){let J=Math.max(0,Math.round((Date.now()-Z)/1000));if(J<60)return"刚刚";let Q=Math.round(J/60);if(Q<60)return`${Q} 分钟前`;let X=Math.round(Q/60);if(X<24)return`${X} 小时前`;return`${Math.round(X/24)} 天前`}var aG=300000,nG=()=>typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)").matches;function R3(Z,J=600){let[Q,X]=k(Z),z=W0(Z);return l(()=>{if(nG()){z.current=Z,X(Z);return}let W=z.current,G=performance.now(),q=0,H=(Y)=>{let F=Math.min(1,(Y-G)/J),K=1-Math.pow(1-F,3);if(X(Math.round(W+(Z-W)*K)),F<1)q=requestAnimationFrame(H);else z.current=Z};return q=requestAnimationFrame(H),()=>cancelAnimationFrame(q)},[Z]),Q}function lG({scope:Z}){let[J,Q]=k(null),[X,z]=k(null),[W,G]=k(!1),[q,H]=k(!1),Y=()=>{a.blobCache().then((J0)=>{Q(J0),z(null)}).catch((J0)=>z(J0.message))},F=async(J0=!1)=>{H(!0);try{Q(await a.verifyBlobCache()),z(null)}catch(B0){if(J0)s(B0.message)}finally{H(!1)}};l(()=>{Y(),F()},[]);let[K,w]=k(!1);l(()=>{let J0=requestAnimationFrame(()=>w(!0));return()=>cancelAnimationFrame(J0)},[]);let P=R3(J?.stats.clearableBytes??0);if(X||!J)return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:X?`无法读取缓存信息:${X}`:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let{stats:A,policy:_,nodes:V,buckets:D,quotaBytes:v,pinnedBytes:R}=J,x=[...D,..._.fullNodes.filter((J0)=>J0.startsWith("s3://")&&!D.some((B0)=>B0.url===J0)).map((J0)=>({url:J0,label:null,bucket:null}))],S=async(J0)=>{G(!0);try{await a.setBlobPolicy({full_nodes:J0}),await F()}catch(B0){s(B0.message)}finally{G(!1)}},O=(J0)=>{let B0=new Set(_.fullNodes);if(B0.has(J0))B0.delete(J0);else B0.add(J0);S([...B0])},N=async(J0)=>{G(!0);try{await a.setBlobPolicy({redundancy:J0}),await F()}catch(B0){s(B0.message)}finally{G(!1)}},L=async()=>{if(!await R0({title:"清理腾空间",message:`将释放约 ${n0(A.clearableBytes)}。只删别处已备份的副本,文件不会丢,用到时自动取回。`,confirmLabel:"清理"}))return;G(!0);try{let B0=await a.clearBlobCache();s(B0.cleared?`已腾出 ${n0(B0.freedBytes)}(${B0.cleared} 项)`:"暂时没有可清理的"),Y()}catch(B0){s(B0.message)}finally{G(!1)}},B=Math.max(1,A.totalBytes),M=Math.max(0,A.retainedBytes-R),y=(J0)=>J0/B*100,E=y(A.clearableBytes),c=y(M),r=y(R),$0=A.clearableBytes>0,m=_.fullNodes.length===0,g=V.find((J0)=>J0.self),u=!!g&&_.fullNodes.includes(g.nodeId),I=!m&&!u&&J.lastVerifiedAt==null,n=u?"self-full":m?"no-anchor":I?"unverified":$0?"free":"safe",Z0=J.lastVerifiedAt==null||Date.now()-J.lastVerifiedAt>aG,q0=v>0&&A.totalBytes>v&&(J.unreachableAnchors.length>0||Z0),Q0=(J0)=>K?J0:0;return $("div",{class:"set-block blob-pane",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"图片和大文件会先存在这台设备上,打开快。只要别处留了一份长期备份,这里随时能清——文件不会丢,需要时自动取回。"},void 0,!1,void 0,this),$("div",{class:"blob-hero",children:[$("div",{class:"blob-hero-main",children:[$("div",{class:"blob-legend",children:[$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot free"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"可释放"},void 0,!1,void 0,this),$("b",{children:n0(A.clearableBytes)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot keep"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"保留中"},void 0,!1,void 0,this),$("b",{children:n0(M)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R>0&&$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot pin"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"已固定"},void 0,!1,void 0,this),$("b",{children:n0(R)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-total",children:["共 ",A.count," 项 · ",n0(A.totalBytes)]},void 0,!0,void 0,this),$("div",{class:"blob-actions",children:[$("button",{class:"btn btn-secondary blob-clear",disabled:W||q||!$0,onClick:()=>void L(),children:[$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),$0?`清理腾出 ${n0(A.clearableBytes)}`:"无需清理"]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost blob-verify-btn",disabled:W||q,onClick:()=>void F(!0),children:[$(f,{name:"history",cls:"ico sm"+(q?" spin":"")},void 0,!1,void 0,this),q?"检查中…":"重新检查"]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost blob-manage-btn",onClick:()=>o1(Z),children:[$(f,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),"Blob 管理"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-verify-at",children:q?"":J.lastVerifiedAt!=null?`${iG(J.lastVerifiedAt)}检查过`:"未检查"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-ring"+(n==="free"?" has-free":n==="safe"?" all-safe":" locked"),children:[$("svg",{viewBox:"0 0 100 100",class:"blob-ring-svg","aria-hidden":"true",children:$("g",{transform:"rotate(-90 50 50)",children:[$("circle",{class:"blob-ring-track",cx:"50",cy:"50",r:"42",pathLength:100},void 0,!1,void 0,this),r>0&&$("circle",{class:"blob-seg pin",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${Q0(r)} ${100-Q0(r)}`,"stroke-dashoffset":-(E+c)},void 0,!1,void 0,this),$("circle",{class:"blob-seg keep",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${Q0(c)} ${100-Q0(c)}`,"stroke-dashoffset":-E},void 0,!1,void 0,this),$("circle",{class:"blob-seg free",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${Q0(E)} ${100-Q0(E)}`,"stroke-dashoffset":0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-center",children:[n==="free"&&$(o,{children:[$("div",{class:"blob-ring-big",children:n0(P)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"可释放"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),n==="safe"&&$(o,{children:[$("div",{class:"blob-ring-check",children:$(f,{name:"check",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:"都备份好了"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"暂时无需清理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),n==="no-anchor"&&$(o,{children:[$("div",{class:"blob-ring-lock",children:$(f,{name:"lock",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:"未设置长期备份"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"指定后才能清理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),n==="unverified"&&$(o,{children:[$("div",{class:"blob-ring-lock",children:$(f,{name:"history",cls:"ico"+(q?" spin":"")},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:q?"检查中…":"未检查"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"检查后才知道"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),n==="self-full"&&$(o,{children:[$("div",{class:"blob-ring-lock",children:$(f,{name:"database",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:"本机长期备份库"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"保留全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-anchors",children:[$("div",{class:"blob-sub-title",children:"长期备份保存在"},void 0,!1,void 0,this),V.map((J0)=>{let B0=_.fullNodes.includes(J0.nodeId);return $("div",{class:"blob-anchor-row",children:[$("span",{class:"blob-anchor-ico",children:$(f,{name:"monitor",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-anchor-main",children:[$("div",{class:"blob-anchor-name",children:[J0.label||J0.nodeId,J0.self?" · 本机":""]},void 0,!0,void 0,this),$("div",{class:"blob-anchor-sub",children:B0?"正在长期保存全部副本":"开启后保存全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"switch"+(B0?" on":""),role:"switch","aria-checked":B0,disabled:W,onClick:()=>O(J0.nodeId),children:$("span",{class:"switch-knob"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},J0.nodeId,!0,void 0,this)}),x.map((J0)=>{let B0=_.fullNodes.includes(J0.url);return $("div",{class:"blob-anchor-row",children:[$("span",{class:"blob-anchor-ico",children:$(f,{name:"database",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-anchor-main",children:[$("div",{class:"blob-anchor-name",children:[J0.label||J0.bucket||J0.url," · 云端"]},void 0,!0,void 0,this),$("div",{class:"blob-anchor-sub",children:B0?"正在长期保存全部副本":"开启后保存全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"switch"+(B0?" on":""),role:"switch","aria-checked":B0,disabled:W,onClick:()=>O(J0.url),children:$("span",{class:"switch-knob"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},J0.url,!0,void 0,this)}),m&&$("div",{class:"blob-hint",children:"还没设置长期备份。先指定一处,之后就能放心清理这台设备。"},void 0,!1,void 0,this),_.fullNodes.length>1&&$("div",{class:"blob-strategy",children:[$("div",{class:"blob-sub-title",children:"清理前先确认"},void 0,!1,void 0,this),$("div",{class:"seg",children:[$("button",{class:"seg-opt"+(_.redundancy==="any"?" on":""),disabled:W||q,onClick:()=>void N("any"),children:[$("span",{class:"seg-opt-t",children:"有一处备份就行"},void 0,!1,void 0,this),$("span",{class:"seg-opt-s",children:"更省空间"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"seg-opt"+(_.redundancy==="all"?" on":""),disabled:W||q,onClick:()=>void N("all"),children:[$("span",{class:"seg-opt-t",children:"每处都备份好"},void 0,!1,void 0,this),$("span",{class:"seg-opt-s",children:"更稳妥"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J.unreachableAnchors.length>0&&$("div",{class:"blob-hint warn",children:"部分长期备份连不上,相关文件暂不清理。"},void 0,!1,void 0,this),q0&&$("div",{class:"blob-hint warn",children:"空间超了,但备份暂时离线,先没清理。"},void 0,!1,void 0,this),v>0&&$("div",{class:"blob-foot",children:["缓存超过 ",n0(v)," 时,自动清理最久没用、已有备份的,你固定的不动。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function rG({scope:Z}){let[J,Q]=k(null),[X,z]=k({count:0,bytes:0}),[W,G]=k(null),[q,H]=k(null),[Y,F]=k(!1),K=async()=>{try{let[B,M]=await Promise.all([z5(),xZ()]);Q(B),z({count:M.length,bytes:M.reduce((y,E)=>y+E.bytes.byteLength,0)})}catch{}if(navigator.storage?.estimate)try{let B=await navigator.storage.estimate();if(B.usage!=null)G(B.usage)}catch{}if(navigator.storage?.persisted)try{H(await navigator.storage.persisted())}catch{}};l(()=>{K()},[]);let[w,P]=k(!1);l(()=>{let B=requestAnimationFrame(()=>P(!0));return()=>cancelAnimationFrame(B)},[]);let A=J?Math.max(0,J.totalBytes-J.pinnedBytes):0,_=R3(A);if(!J)return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let V=async()=>{if(!await R0({title:"清理腾空间",message:`将释放约 ${n0(A)}。只清本机缓存,文件已存在云桶,用到时自动取回。待上传的内容不会动。`,confirmLabel:"清理"}))return;F(!0);try{let M=await W5();s(M.cleared?`已腾出 ${n0(M.freedBytes)}(${M.cleared} 项)`:"暂时没有可清理的"),await K()}catch(M){s(M.message)}finally{F(!1)}},D=async()=>{if(!navigator.storage?.persist)return;F(!0);try{let B=await navigator.storage.persist();H(B),s(B?"已设为常驻,系统不会自动清理":"浏览器暂未授予常驻")}catch(B){s(B.message)}finally{F(!1)}},v=Math.max(1,J.totalBytes),R=(B)=>B/v*100,x=R(A),S=R(J.pinnedBytes),O=(B)=>w?B:0,N=A>0,L=N?"free":"safe";return $("div",{class:"set-block blob-pane",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"图片和大文件会先缓存在这台设备上,打开快。云桶里始终有一份,所以这里随时能清——文件不会丢,需要时自动取回。"},void 0,!1,void 0,this),$("div",{class:"blob-hero",children:[$("div",{class:"blob-hero-main",children:[$("div",{class:"blob-legend",children:[$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot free"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"可释放"},void 0,!1,void 0,this),$("b",{children:n0(A)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J.pinnedBytes>0&&$("div",{class:"blob-legend-row",children:[$("span",{class:"blob-dot pin"},void 0,!1,void 0,this)," ",$("span",{class:"blob-legend-k",children:"已固定"},void 0,!1,void 0,this),$("b",{children:n0(J.pinnedBytes)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-total",children:["共 ",J.count," 项 · ",n0(J.totalBytes)]},void 0,!0,void 0,this),$("div",{class:"blob-actions",children:[$("button",{class:"btn btn-secondary blob-clear",disabled:Y||!N,onClick:()=>void V(),children:[$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),N?`清理腾出 ${n0(A)}`:"无需清理"]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost blob-manage-btn",onClick:()=>o1(Z),children:[$(f,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),"Blob 管理"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-ring"+(L==="free"?" has-free":" all-safe"),children:[$("svg",{viewBox:"0 0 100 100",class:"blob-ring-svg","aria-hidden":"true",children:$("g",{transform:"rotate(-90 50 50)",children:[$("circle",{class:"blob-ring-track",cx:"50",cy:"50",r:"42",pathLength:100},void 0,!1,void 0,this),S>0&&$("circle",{class:"blob-seg pin",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${O(S)} ${100-O(S)}`,"stroke-dashoffset":-x},void 0,!1,void 0,this),$("circle",{class:"blob-seg free",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${O(x)} ${100-O(x)}`,"stroke-dashoffset":0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-center",children:L==="free"?$(o,{children:[$("div",{class:"blob-ring-big",children:n0(_)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"可释放"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):$(o,{children:[$("div",{class:"blob-ring-check",children:$(f,{name:"check",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap strong",children:"已是最省"},void 0,!1,void 0,this),$("div",{class:"blob-ring-cap",children:"暂无缓存可清"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"blob-anchors",children:[X.count>0&&$("div",{class:"blob-hint warn",children:[X.count," 项(约 ",n0(X.bytes),")还没上传到云桶,仅存在这台设备上。建议先「立即同步」再清理——清理不会动这些待上传的内容。"]},void 0,!0,void 0,this),$("div",{class:"blob-anchor-row",children:[$("span",{class:"blob-anchor-ico",children:$(f,{name:"lock",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"blob-anchor-main",children:[$("div",{class:"blob-anchor-name",children:["常驻存储",q==null?"":q?" · 已开启":" · 未开启"]},void 0,!0,void 0,this),$("div",{class:"blob-anchor-sub",children:q?"系统空间紧张时不会自动清掉本地数据。":"开启后,系统空间紧张时也不会自动清掉本地数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q!==!0&&$("button",{class:"btn btn-ghost",disabled:Y||!navigator.storage?.persist,onClick:()=>void D(),children:"请求常驻"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W!=null&&$("div",{class:"blob-foot",children:["此浏览器为本工作区共占用约 ",n0(W),"(含本地数据库与缓存)。缓存超过 ",n0(sJ)," 时自动清理最久没用、已在云桶的,你固定的不动。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function oG(){if(typeof Worker>"u"||typeof navigator>"u")return"此浏览器不支持 Web Worker。";if(!window.isSecureContext)return"需要 HTTPS(安全上下文)。当前是 http:// 访问,浏览器不开放离线所需的 OPFS 与 Service Worker——给服务器配置 TLS(--tls-cert/--tls-key,或 Caddy / Tailscale Serve 反代;iPhone 需要受信任的证书),或在本机用 localhost 访问。";if(!navigator.storage?.getDirectory)return"此浏览器不支持 OPFS 本地存储(需要 Safari 17+ / Chrome / Firefox 较新版本)。";return null}function tG({kind:Z,noOrigin:J,hasServerBucket:Q,deviceDirect:X}){let z=Z==="trusted",W=!J,G=W&&Q,q=X,H=G||q,Y=q&&W&&H;return $("span",{class:"md-graph"+(z?" trusted":" light")+(Y?" has-direct":""),"aria-hidden":"true",children:[$("span",{class:"md-node self",children:[$("span",{class:"md-node-ico",children:$(f,{name:"monitor",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"md-node-name",children:"本设备"},void 0,!1,void 0,this),$("span",{class:"md-node-tag",children:z?"存一份":"不留存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&$(o,{children:[$("span",{class:"md-wire bi"},void 0,!1,void 0,this),$("span",{class:"md-node",children:[$("span",{class:"md-node-ico",children:$(f,{name:"globe",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"md-node-name",children:"服务器"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H&&$(o,{children:[$("span",{class:"md-wire "+(W?"to":"bi")},void 0,!1,void 0,this),$("span",{class:"md-node",children:[$("span",{class:"md-node-ico",children:$(f,{name:"cube",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"md-node-name",children:"云桶"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y&&$("span",{class:"md-direct","data-label":"直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function sG(){let Z=oG(),[J,Q]=k(H9()),[X,z]=k(jZ()),[W,G]=k(!1),[q,H]=k(null),Y=U9(),[F,K]=k(!1),[w,P]=k(!1);l(()=>{let N=!0,L=async()=>{let M=H9()?(await f0("listStoragePeers").catch(()=>[])).length>0:!1,y=Y?!1:(await a.listServerS3Peers().catch(()=>[])).length>0;if(!N)return;P(M),K(y)};L();let B=F9(L);return()=>{N=!1,B()}},[Y]);let[A,_]=k(null),V=(N,L)=>{let B=L.currentTarget,M=B?.closest(".set-panel"),y=B?.closest(".sync-holds");if(!M||!y)return;let E=M.getBoundingClientRect(),c=248,r=28;if(window.innerWidth-E.right<c+r)return _(null);(async()=>{let $0=H9()?(await f0("listStoragePeers").catch(()=>[])).length>0:!1,m=Y?!1:(await a.listServerS3Peers().catch(()=>[])).length>0;P($0),K(m)})(),_({kind:N,left:E.right+r,top:y.getBoundingClientRect().top})},D=()=>_(null);l(()=>F9((N)=>z({...N})),[]),l(()=>{if(!J||!navigator.storage?.estimate)return;let N=!0,L=()=>navigator.storage.estimate().then((M)=>{if(N&&M.usage!=null)H((M.usage/1024/1024).toFixed(1))});L();let B=F9(()=>void L());return()=>{N=!1,B()}},[J]);let v=async()=>{if(!await R0({title:"重置本地副本",message:"将删除此浏览器里的全部本地数据(服务器数据不受影响),并停用离线副本。未同步的本地修改会丢失——建议先「立即同步」。",confirmLabel:"删除并重置",danger:!0}))return;G(!0);try{await oJ(),Q(!1),s("本地副本已重置")}catch(L){s(`重置失败:${L.message}`)}finally{G(!1)}},R=async()=>{G(!0);try{await nJ(),Q(!0),s("离线副本已启用,正在下载数据…")}catch(N){s(`启用失败:${N.message}`)}finally{G(!1)}},x=async()=>{if(!await R0({title:"停用离线副本",message:"此浏览器将恢复纯在线模式。已下载的本地数据保留在浏览器里,重新启用后从断点续传。",confirmLabel:"停用",danger:!0}))return;let L=typeof navigator<"u"&&"serviceWorker"in navigator&&navigator.serviceWorker.controller!=null;G(!0);try{if(await rJ(),Q(!1),s("已停用离线副本"),L)location.reload()}finally{G(!1)}},S=()=>{if(!J)return"轻量模式 · 仅在线读写,断网不可用。";if(X.state==="error")return`副本异常(已自动回退在线模式):${X.error??"未知错误"}`;if(X.state==="hydrating")return`正在下载数据… 已接收 ${X.hydrated??0} 条变更`;if(X.lastSync){let N=kZ(X.lastSync.at);return X.lastSync.ok?`本地优先已生效 · 上次同步 ${N}(推送 ${X.lastSync.pushed} / 拉取 ${X.lastSync.pulled})`:`上次同步失败(${N}):${X.lastSync.error??""} — 本地读写不受影响,恢复网络后自动重试`}return"等待首次同步…"};if(Z)return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"设置这台设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"这台设备为轻量模式:仅在线读写,不在本机保存。"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:["⚠ 此设备无法「信任并本机保存」:",Z]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);let O=(N)=>$(tG,{kind:N,noOrigin:Y,hasServerBucket:F,deviceDirect:N==="trusted"&&w},void 0,!1,void 0,this);return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"设置这台设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"选择这台设备如何使用工作区,之后可随时修改。"},void 0,!1,void 0,this),$("div",{class:"theme-grid sync-holds",children:[$("button",{class:"theme-card mode-card"+(!J?" sel":""),"aria-pressed":!J,disabled:W,onClick:()=>J&&x(),onMouseEnter:(N)=>V("light",N),onMouseLeave:D,onFocus:(N)=>V("light",N),onBlur:D,children:[$("span",{class:"tc-check",children:$(f,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-ico",children:$(f,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"mode-text",children:[$("span",{class:"tc-name",children:"轻量模式"},void 0,!1,void 0,this),$("span",{class:"tc-desc",children:"仅在线使用"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"theme-card mode-card"+(J?" sel":""),"aria-pressed":J,disabled:W,onClick:()=>!J&&R(),onMouseEnter:(N)=>V("trusted",N),onMouseLeave:D,onFocus:(N)=>V("trusted",N),onBlur:D,children:[$("span",{class:"tc-check",children:$(f,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"tc-ico",children:$(f,{name:"lock"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"mode-text",children:[$("span",{class:"tc-name",children:"信任此设备"},void 0,!1,void 0,this),$("span",{class:"tc-desc",children:W&&!J?"启用中…":"本机保存,支持同步"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),A&&$("div",{class:"mode-aside",style:{top:A.top+"px",left:A.left+"px"},children:$("div",{class:"mp-show",children:[O(A.kind),$("span",{class:"mp-cap",children:A.kind==="trusted"?"本机存一份 · 离线也能读写":"仅在线读写 · 不在本机保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J&&$("div",{class:"peer-actions",style:{marginTop:12},children:[$("button",{class:"btn btn-secondary",disabled:W,onClick:()=>o9(),children:[$(f,{name:"share",cls:"ico sm"},void 0,!1,void 0,this)," 立即同步"]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost",disabled:W,onClick:v,children:"重置本地副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:[S(),J&&X.node?` · 节点 ${X.node}`:"",J&&q?` · 本地占用 ${q} MB`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Y6(Z){try{return new URL(Z).host}catch{return Z}}function eG(Z){return Z.length<=8?Z.slice(0,2)+"…":Z.slice(0,4)+"…"+Z.slice(-4)}function Zq(){let Z=U9(),J=v3(),[Q,X]=k(H9()),[z,W]=k(null),[G,q]=k(null),H=()=>{if(H9())f0("listStoragePeers").then(q).catch(()=>{});else q(null)},Y=()=>{if(H(),!Z)a.listServerS3Peers().then(W).catch((O)=>s(`加载失败:${O.message}`))};l(()=>{return Y(),F9(()=>{X(H9()),H()})},[]);let F=new Set((G??[]).map((O)=>O.url)),K=!J&&Q,w=()=>W9($(Hq,{toServer:!Z,alsoReplica:!Z&&K,onDone:()=>{c0(),Y()}},void 0,!1,void 0,this)),P=(O)=>W9($(Jq,{peer:O,onDone:()=>{c0(),Y()}},void 0,!1,void 0,this)),A=async()=>{try{if(Z)await f0("sync");else if(await Promise.all((z??[]).map((O)=>a.syncPeer(O.url))),K)await f0("sync").catch(()=>{});s("已触发同步"),Y()}catch(O){s(`同步失败:${O.message}`)}},_=async(O,N)=>{if(!await R0({title:"移除存储桶",message:`确定移除 ${N}?将停止与该存储桶同步(桶内数据不受影响)。`,confirmLabel:"移除",danger:!0}))return;if(Z)await f0("removeStorageReplica",O).catch((B)=>s(B.message));else if(await a.removePeer(O).catch((B)=>s(B.message)),K)await f0("removeStorageReplica",O).catch(()=>{});Y()},V=async(O,N)=>{if(!await R0({title:"取消本设备直连",message:`这台设备将不再直连 ${N}(存储桶仍在服务器上;本设备在线时照常经服务器同步)。`,confirmLabel:"取消直连",danger:!0}))return;await f0("removeStorageReplica",O).catch((B)=>s(B.message)),Y()},D=(O)=>Z?f0("storagePeerConfig",O):a.serverS3Config(O),v=((Z?G:z)??[]).map((O)=>({url:O.url,name:O.label||O.bucket||O.url})),R=()=>W9($(Gq,{buckets:v,getConfig:D,server:!Z,onPaired:()=>{c0(),Y()}},void 0,!1,void 0,this)),x=(O,N,L)=>y0(O,(B)=>$(o,{children:[L&&$(z0,{icon:"link",label:"取消本设备直连",onClick:()=>{B(),V(N.url,N.label||N.bucket||N.url)}},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"移除存储桶",danger:!0,onClick:()=>{B(),_(N.url,N.label||N.bucket||N.url)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)),S=(Z?G:z)?.length?!0:!1;return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"在所有设备间同步"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"连一个云端存储桶,手机、电脑就保持同步——不必开公网服务器,对方离线也收得到,内容端到端加密。"},void 0,!1,void 0,this),$("div",{class:"set-meta",children:$("span",{class:"set-meta-item",children:[$(f,{name:J||!Z?"globe":"cube",cls:"ico sm"},void 0,!1,void 0,this),J?"连一个云端存储桶,这台设备就和你的手机、其他电脑自动保持同步。":Z?"这台设备就是工作区的家,其他设备扫码加入即可一起同步。":"存储桶连在服务器上,所有设备自动共享;信任本设备后,它离线、在外时也能直接同步。"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("details",{class:"set-disclosure",children:[$("summary",{children:"它是怎么工作的"},void 0,!1,void 0,this),$("div",{class:"set-disclosure-body",children:['存储桶只当"哑"中转:每台设备把自己的变更加密上传、再拉取别人的——谁都不必同时在线,也不需要公网 IP。',J?"这台设备把自己的变更发布到桶,其他设备从桶拉取;新设备扫码加入即可一起同步。":Z?"这台设备把整个工作区发布到桶,新设备扫码加入后从桶秒恢复。":"密钥只存在服务器,不会同步到浏览器;信任的设备重输一次密钥即可直接同步,离线、在外也不中断。添加时会自动为本站点开通桶的访问权限(CORS)。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z&&!Q?$("div",{class:"peer-sub",style:"margin-top:12px",children:"⚠ 请先在上方把这台设备设为「信任此设备」,再连接存储桶。"},void 0,!1,void 0,this):$(o,{children:[$("div",{class:"peer-actions",style:{marginTop:14},children:[$("button",{class:"btn btn-primary",onClick:w,children:[$(f,{name:"cube",cls:"ico sm"},void 0,!1,void 0,this)," 连接存储桶"]},void 0,!0,void 0,this),(!Z||v.length>0)&&$("button",{class:"btn btn-secondary",onClick:R,children:[$(f,{name:"monitor",cls:"ico sm"},void 0,!1,void 0,this)," 添加设备"]},void 0,!0,void 0,this),S&&$("button",{class:"btn btn-secondary",onClick:A,children:[$(f,{name:"cloudUp",cls:"ico sm"},void 0,!1,void 0,this)," 立即同步"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peer-list flush",children:J?z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):z.length===0?$("div",{class:"muted",children:"还没连接存储桶——连一个,所有设备就能保持同步。"},void 0,!1,void 0,this):z.map((O)=>{let N=O.label||O.bucket||O.url;return $("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(O.enabled?O.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:N},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[O.endpoint?Y6(O.endpoint)+" · ":"","最近同步 ",kZ(O.lastSyncAt),O.status==="error"&&O.error?` · 错误:${O.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"移除",onClick:()=>_(O.url,N),children:$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},O.url,!0,void 0,this)}):Z?G==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):G.length===0?$("div",{class:"muted",children:"还没连接存储桶——连一个,手机、电脑就能免公网服务器互通。"},void 0,!1,void 0,this):G.map((O)=>{let N=O.label||O.bucket||O.url;return $("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(O.enabled?O.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:N},void 0,!1,void 0,this),$("div",{class:"peer-tags",children:$("span",{class:"peer-tag",children:[$(f,{name:"upload",cls:"ico"},void 0,!1,void 0,this)," 本机发布"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[O.endpoint?Y6(O.endpoint)+" · ":"","最近同步 ",kZ(O.lastSyncAt),O.status==="error"&&O.error?` · 错误:${O.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"移除",onClick:()=>_(O.url,N),children:$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},O.url,!0,void 0,this)}):z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):z.length===0?$("div",{class:"muted",children:"还没连接存储桶——连一个,所有设备就能免公网服务器互通。"},void 0,!1,void 0,this):z.map((O)=>{let N=O.label||O.bucket||O.url,L=Q&&F.has(O.url);return $("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(O.enabled?O.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:N},void 0,!1,void 0,this),$("div",{class:"peer-tags",children:[$("span",{class:"peer-tag",children:[$(f,{name:"globe",cls:"ico"},void 0,!1,void 0,this)," 服务器同步"]},void 0,!0,void 0,this),Q?L?$("span",{class:"peer-tag ok",children:[$(f,{name:"link",cls:"ico"},void 0,!1,void 0,this)," 本机已直连"]},void 0,!0,void 0,this):$("button",{class:"peer-tag act",onClick:()=>P(O),children:[$(f,{name:"link",cls:"ico"},void 0,!1,void 0,this)," 让本机直接同步"]},void 0,!0,void 0,this):$("span",{class:"peer-tag muted",children:"信任本设备后可直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peer-sub",children:[O.endpoint?Y6(O.endpoint)+" · ":"","最近同步 ",kZ(O.lastSyncAt),O.status==="error"&&O.error?` · 错误:${O.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"更多",onClick:(B)=>x(B,O,L),children:$(f,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},O.url,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Jq({peer:Z,onDone:J}){let[Q,X]=k(""),[z,W]=k(""),[G,q]=k(!1),H=Z.endpoint?Y6(Z.endpoint):"",Y=async()=>{if(!Q.trim())return s("密钥必填");if(Z.encrypt&&!z)return s("加密口令必填");if(!Z.endpoint||!Z.bucket||!Z.accessKeyId)return s("服务器未提供该桶的完整配置,无法在本设备激活");q(!0);try{let F={endpoint:Z.endpoint,region:Z.region||"auto",bucket:Z.bucket,prefix:Z.prefix||"metahub",accessKeyId:Z.accessKeyId,secretAccessKey:Q.trim(),encrypt:Z.encrypt,...Z.virtualHostedStyle!=null?{virtualHostedStyle:Z.virtualHostedStyle}:{},publish:!1};await f0("addStorageReplica",F,z),s("已让本机直连存储桶 · 离线、在外也能直接同步"),J()}catch(F){let K=F.message;s(I3(K)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE。":`启用失败:${K}`),q(!1)}};return $(q9,{title:"在本设备启用直连",sub:"服务器已配置这个存储桶。为保护密钥,服务器不会把它同步到浏览器——再输入一次密钥,这台设备就能与桶直接同步(离线、在外也不中断)。",footer:$(o,{children:[$("button",{class:"btn btn-secondary",onClick:c0,disabled:G,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:Y,disabled:G,children:G?"连接中…":"启用直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"activate-id",children:[$("div",{class:"activate-id-row",children:[$("span",{children:"存储桶"},void 0,!1,void 0,this),$("b",{children:Z.bucket},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H&&$("div",{class:"activate-id-row",children:[$("span",{children:"服务地址"},void 0,!1,void 0,this),$("b",{children:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.accessKeyId&&$("div",{class:"activate-id-row",children:[$("span",{children:"访问密钥 ID"},void 0,!1,void 0,this),$("b",{children:eG(Z.accessKeyId)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"field-label",children:"密钥"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",autofocus:!0,placeholder:"重新输入该桶的密钥",value:Q,onInput:(F)=>X(F.target.value),onKeyDown:(F)=>!Z.encrypt&&F.key==="Enter"&&Y()},void 0,!1,void 0,this),Z.encrypt&&$(o,{children:[$("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",placeholder:"与其它设备相同的加密口令",value:z,onInput:(F)=>W(F.target.value),onKeyDown:(F)=>F.key==="Enter"&&Y()},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"跨设备共用的那把加密钥——用它解开桶里别人的数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var t1="mh_shell_base";function $q(Z,J){return`${(Z||location.origin).replace(/\/+$/,"")}/#enroll=${D6(J)}`}function k3({data:Z}){let J=O3(0,"H");J.addData(Z),J.make();let Q=J.getModuleCount(),X=2,z=Q/2,W=Math.max(5,Math.floor(Q*0.22)),G=W/2,q=(P,A)=>P<7&&A<7||P<7&&A>=Q-7||P>=Q-7&&A<7,H=(P,A)=>Math.abs(P+0.5-z)<G&&Math.abs(A+0.5-z)<G,Y=[];for(let P=0;P<Q;P++)for(let A=0;A<Q;A++){if(!J.isDark(P,A)||q(P,A)||H(P,A))continue;Y.push($("circle",{cx:A+0.5,cy:P+0.5,r:0.45,fill:"var(--qr-fg)"},P*Q+A,!1,void 0,this))}let F=(P,A)=>$(o,{children:[$("rect",{x:A+0.5,y:P+0.5,width:6,height:6,rx:2,ry:2,fill:"none",stroke:"var(--qr-fg)","stroke-width":1},void 0,!1,void 0,this),$("rect",{x:A+2,y:P+2,width:3,height:3,rx:1,fill:"var(--qr-fg)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K=W+0.6,w=W*0.62/24;return $("div",{class:"qr-box",children:$("svg",{viewBox:`${-X} ${-X} ${Q+X*2} ${Q+X*2}`,"shape-rendering":"geometricPrecision",children:[Y,F(0,0),F(0,Q-7),F(Q-7,0),$("rect",{x:z-K/2,y:z-K/2,width:K,height:K,rx:K*0.26,ry:K*0.26,fill:"var(--qr-bg)"},void 0,!1,void 0,this),$("g",{class:"qr-cube",transform:`translate(${z} ${z}) scale(${w}) translate(-12 -12)`,fill:"none",stroke:"var(--qr-fg)","stroke-width":1.6,"stroke-linejoin":"round","stroke-linecap":"round",children:[$("path",{class:"qr-cube-edge qr-cube-outer",pathLength:1,d:x6},void 0,!1,void 0,this),$("path",{class:"qr-cube-edge qr-cube-inner",pathLength:1,d:m6},void 0,!1,void 0,this),$("path",{class:"qr-cube-glint",pathLength:1,d:x6},void 0,!1,void 0,this),$("path",{class:"qr-cube-glint",pathLength:1,d:m6},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function H8({text:Z,label:J,done:Q,primary:X}){return $("button",{class:"btn "+(X?"btn-primary":"btn-secondary"),style:{width:"100%",marginTop:10},onClick:()=>{navigator.clipboard?.writeText(Z),s(Q)},children:[$(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)," ",J]},void 0,!0,void 0,this)}function Qq({config:Z}){let[J,Q]=k(()=>{try{return localStorage.getItem(t1)||location.origin}catch{return location.origin}}),X=$q(J,Z),z=(W)=>{Q(W);try{W?localStorage.setItem(t1,W):localStorage.removeItem(t1)}catch{}};return $(o,{children:[$(k3,{data:X},void 0,!1,void 0,this),$("div",{class:"field-label",children:"壳地址(手机访问的静态站点域名;留空用当前地址)"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:location.origin,value:J,onInput:(W)=>z(W.target.value)},void 0,!1,void 0,this),$(H8,{text:X,label:"复制链接",done:"已复制链接"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:"手机相机扫码打开,输入加密口令即可同步。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Xq({config:Z}){let J=D6(Z),Q=`mh config peer add --s3 --enroll ${J}`;return $(o,{children:[$("div",{class:"field-label",children:"在另一台电脑的终端运行"},void 0,!1,void 0,this),$("div",{class:"enroll-cmd",children:Q},void 0,!1,void 0,this),$(H8,{text:Q,label:"复制命令",done:"已复制命令",primary:!0},void 0,!1,void 0,this),$(H8,{text:J,label:"复制接入码",done:"已复制接入码"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:["对方运行后会提示输入加密口令。也可在 ",$("code",{children:"mh config"},void 0,!1,void 0,this)," 向导选「粘贴接入码加入存储」。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function zq({code:Z,exp:J}){let[Q,X]=k(Math.max(0,Math.round((J-Date.now())/1000)));l(()=>{let G=setInterval(()=>X(Math.max(0,Math.round((J-Date.now())/1000))),1000);return()=>clearInterval(G)},[J]);let z=Math.floor(Q/60),W=String(Q%60).padStart(2,"0");return $(o,{children:[$("div",{class:"pair-code",children:Z},void 0,!1,void 0,this),$("div",{class:"muted",style:{textAlign:"center",marginTop:8},children:Q>0?`${z}:${W} 后过期`:"已过期,请重新生成"},void 0,!1,void 0,this),$(H8,{text:Z,label:"复制配对码",done:"已复制配对码"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Wq({onPaired:Z}){let[J,Q]=k(null),[X,z]=k(!1),W=async()=>{z(!0);try{Q(await a.newPairingCode())}catch(R){s(`生成失败:${R.message}`)}finally{z(!1)}},[G,q]=k(""),[H,Y]=k(""),[F,K]=k(location.origin),[w,P]=k(!1),A=async()=>{if(!G.trim()||!H.trim())return s("地址和配对码必填");P(!0);try{let R=await a.addPeerByPairing({url:G.trim(),code:H.trim(),self_url:F.trim()||void 0});await a.syncPeer(R.url).catch(()=>{}),s(`已配对 ${R.url}`),Z()}catch(R){s(`配对失败:${R.message}`),P(!1)}},[_,V]=k(()=>{try{return localStorage.getItem(s1)||location.origin}catch{return location.origin}}),D=(R)=>{V(R);try{R?localStorage.setItem(s1,R):localStorage.removeItem(s1)}catch{}},v=qq(_,P5());return $(o,{children:[$("div",{class:"enroll-section",children:"邀请另一台服务器配对"},void 0,!1,void 0,this),J?$(zq,{code:J.code,exp:J.exp},void 0,!1,void 0,this):$("button",{class:"btn btn-secondary",style:{width:"100%"},disabled:X,onClick:W,children:[$(f,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)," ",X?"生成中…":"生成本机配对码"]},void 0,!0,void 0,this),$("div",{class:"enroll-sep"},void 0,!1,void 0,this),$("div",{class:"enroll-section",children:"已有对方的配对码?"},void 0,!1,void 0,this),$("div",{class:"field-label",children:"对方服务器地址"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"http://192.168.1.10:7777",value:G,onInput:(R)=>q(R.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"配对码"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"对方「生成本机配对码」得到的码",value:H,onInput:(R)=>Y(R.target.value),onKeyDown:(R)=>R.key==="Enter"&&A()},void 0,!1,void 0,this),$("div",{class:"field-label",children:"本机可达地址(可选)"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"留空则仅本机主动同步",value:F,onInput:(R)=>K(R.target.value)},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",style:{width:"100%",marginTop:10},disabled:w,onClick:A,children:w?"配对中…":"配对"},void 0,!1,void 0,this),$("div",{class:"enroll-sep"},void 0,!1,void 0,this),$("div",{class:"enroll-section",children:"在手机上打开本服务器"},void 0,!1,void 0,this),$(k3,{data:v},void 0,!1,void 0,this),$("div",{class:"field-label",children:"服务器地址(手机访问的域名;留空用当前地址)"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:location.origin,value:_,onInput:(R)=>D(R.target.value)},void 0,!1,void 0,this),$(H8,{text:v,label:"复制链接",done:"已复制链接"},void 0,!1,void 0,this),$("div",{class:"peer-sub",style:"margin-top:8px",children:"⚠ 含访问令牌,请勿公开分享。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Gq({buckets:Z,getConfig:J,server:Q,onPaired:X}){let z=Z.length>0,W=[...z?[{id:"phone",label:"手机扫码"},{id:"cli",label:"电脑 / 命令行"}]:[],...Q?[{id:"server",label:"高级:服务器配对"}]:[]],[G,q]=k(W[0]?.id??"server"),[H,Y]=k(Z[0]?.url??""),[F,K]=k(null),[w,P]=k("");return l(()=>{if(!z||!H)return;let A=!0;return K(null),P(""),J(H).then((_)=>{if(!A)return;_?K(_):P("找不到该存储的配置")}).catch((_)=>A&&P(_.message)),()=>{A=!1}},[H]),$(q9,{title:"添加设备",sub:"让另一台设备加入同一个工作区——手机扫码,或在电脑上粘贴接入码。",footer:$("button",{class:"btn btn-primary",onClick:c0,children:"完成"},void 0,!1,void 0,this),width:420,children:[W.length>1&&$("div",{class:"add-tabs",children:W.map((A)=>$("button",{class:"add-tab"+(G===A.id?" on":""),onClick:()=>q(A.id),children:A.label},A.id,!1,void 0,this))},void 0,!1,void 0,this),(G==="phone"||G==="cli")&&$(o,{children:[Z.length>1&&$(o,{children:[$("div",{class:"field-label",children:"存储桶"},void 0,!1,void 0,this),$("select",{class:"text-input",value:H,onChange:(A)=>Y(A.target.value),children:Z.map((A)=>$("option",{value:A.url,children:A.name},A.url,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w?$("div",{class:"enroll-err",children:w},void 0,!1,void 0,this):!F?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):G==="phone"?$(Qq,{config:F},void 0,!1,void 0,this):$(Xq,{config:F},void 0,!1,void 0,this),F&&$("div",{class:"peer-sub",style:"margin-top:8px",children:"⚠ 接入码含桶访问密钥,请勿公开分享;不含加密口令——新设备需另输口令。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G==="server"&&$(Wq,{onPaired:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function I3(Z){return/failed to fetch|load failed|networkerror|cors/i.test(Z)}var s1="mh_server_base";function qq(Z,J){let Q=(Z||location.origin).replace(/\/+$/,"");return J?`${Q}/?token=${encodeURIComponent(J)}`:Q}var q8=[{id:"r2",name:"Cloudflare R2",region:"auto",ph:"https://<账户ID>.r2.cloudflarestorage.com",hint:"R2 控制台 → 管理 R2 API 令牌,创建 S3 凭据;区域填 auto。免费额度 10GB。"},{id:"s3",name:"Amazon S3",region:"us-east-1",ph:"https://s3.<区域>.amazonaws.com",hint:"IAM 用户的访问密钥;区域如 us-east-1。"},{id:"minio",name:"MinIO",region:"us-east-1",ph:"https://minio.你的域名",hint:"自建 MinIO 的访问地址与 access / secret key。"},{id:"cos",name:"腾讯云 COS",region:"ap-shanghai",ph:"https://<桶名-APPID>.cos.<区域>.myqcloud.com",hint:"桶名须含 APPID,用虚拟主机风格地址(host 以桶名开头)。"},{id:"custom",name:"自定义",region:"auto",ph:"https://s3.example.com",hint:"任何 S3 兼容对象存储。"}];function Hq({onDone:Z,toServer:J,alsoReplica:Q}){let[X,z]=k(""),[W,G]=k(""),[q,H]=k("auto"),[Y,F]=k(""),[K,w]=k(""),[P,A]=k("metahub"),[_,V]=k(!0),[D,v]=k(""),[R,x]=k(!1),[S,O]=k("r2"),N=q8.find((M)=>M.id===S)??q8[4],L=(M)=>{O(M);let y=q8.find((E)=>E.id===M);if(y&&q8.some((E)=>E.region===q))H(y.region)},B=async()=>{if(!X.trim()||!W.trim()||!Y.trim()||!K.trim()){s("服务地址、桶名称、访问密钥 ID、密钥都要填");return}if(_&&!D){s("加密口令必填(或关闭加密)");return}x(!0);try{let M={endpoint:X.trim(),region:q.trim()||"auto",bucket:W.trim(),prefix:P.trim()||"metahub",accessKeyId:Y.trim(),secretAccessKey:K.trim(),encrypt:_};if(J){if(await a.addServerS3Peer({...M,passphrase:D,corsOrigins:[location.origin]}),Q)await f0("addStorageReplica",{...M,publish:!1},D)}else await f0("addStorageReplica",M,D);s(J?Q?"已连接存储桶 · 服务器开始同步到桶,这台设备也直接同步":"已连接存储桶 · 服务器开始同步到桶":"已连接存储桶 · 这台设备开始同步到桶"),Z()}catch(M){let y=M.message;s(I3(y)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE(R2 控制台一条规则即可)。":`添加失败:${y}`),x(!1)}};return $(q9,{title:"连接存储桶",sub:"连接一个 S3 兼容存储桶,所有设备就能同步——不需要公网服务器。新桶自动初始化;已有桶用相同加密口令即可加入。",footer:$(o,{children:[$("button",{class:"btn btn-secondary",onClick:c0,disabled:R,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:B,disabled:R,children:R?"连接中…":"连接"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"set-hint",style:{marginTop:0,marginBottom:12},children:J?"连接后,云端工作区负责把整库同步到这个桶;这台设备和其他设备都从它同步。":"连接后,这台设备(本机)把整库同步到这个桶;新设备扫码加入即可一起用。"},void 0,!1,void 0,this),$("div",{class:"field-label",children:"存储服务商"},void 0,!1,void 0,this),$("div",{class:"provider-grid",children:q8.map((M)=>$("button",{class:"provider-chip"+(S===M.id?" sel":""),"aria-pressed":S===M.id,onClick:()=>L(M.id),children:M.name},M.id,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"set-hint",children:N.hint},void 0,!1,void 0,this),$("div",{class:"field-label",children:"服务地址"},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,placeholder:N.ph,value:X,onInput:(M)=>z(M.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"桶名称"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"my-metahub",value:W,onInput:(M)=>G(M.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"访问密钥 ID"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"Access Key ID",value:Y,onInput:(M)=>F(M.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"密钥"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",placeholder:"Secret Access Key",value:K,onInput:(M)=>w(M.target.value)},void 0,!1,void 0,this),$("label",{class:"set-check-row",style:{marginTop:14},children:[$("input",{type:"checkbox",checked:_,onChange:(M)=>V(M.target.checked)},void 0,!1,void 0,this),$("span",{children:"端到端加密(强烈建议;关闭后文件以明文存放,仅限完全信任的存储)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_&&$(o,{children:[$("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",placeholder:"新桶以此创建;其它设备用同一口令加入",value:D,onInput:(M)=>v(M.target.value),onKeyDown:(M)=>M.key==="Enter"&&B()},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"这是跨设备共用的一把加密钥——记牢它,换设备 / 加入已有桶时都要用它解开数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("details",{class:"set-disclosure",style:{marginTop:14},children:[$("summary",{children:"进阶"},void 0,!1,void 0,this),$("div",{class:"set-disclosure-body",children:[$("div",{class:"field-label",style:{marginTop:0},children:"区域"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:N.region,value:q,onInput:(M)=>H(M.target.value)},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"大多按服务商默认即可(R2 用 auto)。"},void 0,!1,void 0,this),$("div",{class:"field-label",children:"路径前缀"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"metahub",value:P,onInput:(M)=>A(M.target.value)},void 0,!1,void 0,this),$("div",{class:"set-hint",children:"同一个桶里隔离多个工作区时用;默认 metahub。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Yq({onUpdatePending:Z}){let J=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0,[Q,X]=k(null),[z,W]=k(null),[G,q]=k(null),[H,Y]=k(null),[F,K]=k("idle"),[w,P]=k(""),[A,_]=k(null);l(()=>{a.version().then((N)=>W(N.version)).catch(()=>W(null)),(typeof window<"u"?window.metahubDesktop:void 0)?.appVersion?.().then(X).catch(()=>X(null)),J?.installedVersion().then(q).catch(()=>q(null))},[]),l(()=>{if(F==="idle"&&z&&G&&GZ(G,z)>0)K("staged"),Z?.(!0)},[z,G]);let V=()=>{if(z&&G)return GZ(G,z)>0?G:z;return G??z},D=()=>!!(z&&G&&GZ(G,z)>0),v=async()=>{K("checking"),P("");try{let{latest:O}=await J.check();if(!O){P("无法获取最新版本(网络不可用或 GitHub API 受限)"),K("error");return}let N=V();if(!N||GZ(O,N)>0)Y(O),K("available"),Z?.(!0);else s("已是最新版本"),K(D()?"staged":"idle")}catch(O){P(O.message),K("error")}},R=async()=>{K("downloading"),_(null),P("");let O=J.onDownloadProgress?.((N)=>_(N));try{let N=await J.download();if(N)q(N),K("staged"),Z?.(!0),s(`已下载 v${N}`);else s("已是最新版本"),K(D()?"staged":"idle")}catch(N){P(N.message),K("error")}finally{O?.()}},x=null;if(J)switch(F){case"checking":x=$("span",{class:"ver-act","aria-disabled":"true",children:"检查中…"},void 0,!1,void 0,this);break;case"downloading":{let O=A&&A.total>0?Math.min(100,Math.round(A.received/A.total*100)):null;x=$("span",{class:"ver-up ver-dl",children:[$("span",{class:`ver-bar${O==null?" indet":""}`,children:$("span",{class:"ver-bar-fill",style:O!=null?{width:`${O}%`}:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"ver-num",children:O!=null?`${O}%`:"下载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break}case"available":x=$("span",{class:"ver-up",children:[$("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),$("span",{children:["新版本 ",$("span",{class:"ver-num",children:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"ver-act accent",onClick:R,title:`下载并更新到 v${H}`,children:"下载"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"staged":x=$("span",{class:"ver-up",children:[$("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),$("span",{children:[$("span",{class:"ver-num",children:G},void 0,!1,void 0,this)," 待重启"]},void 0,!0,void 0,this),$("button",{class:"ver-act accent",onClick:()=>void J.restart(),title:`重启应用以更新到 v${G}`,children:"重启"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"error":x=$("span",{class:"ver-up err",children:[$("span",{class:"ver-msg",children:"检查失败"},void 0,!1,void 0,this),$("button",{class:"ver-act",onClick:v,title:w||"重试",children:"重试"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;default:x=$("button",{class:"ver-act",onClick:v,children:"检查更新"},void 0,!1,void 0,this)}let S=!Q&&!z&&l1;return $("div",{class:"set-footer",children:[Q&&$("span",{children:["App ",$("span",{class:"ver-num",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q&&z&&$("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),z&&$("span",{children:["Core ",$("span",{class:"ver-num",children:z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),S&&$("span",{class:"ver-num",children:["v",l1]},void 0,!0,void 0,this),x&&(z||Q||S)&&$("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),x]},void 0,!0,void 0,this)}var e1="CommandOrControl+Shift+Space";function Kq(Z){if(["Control","Meta","Alt","Shift"].includes(Z.key))return null;let J=[];if(Z.metaKey||Z.ctrlKey)J.push("CommandOrControl");if(Z.altKey)J.push("Alt");if(Z.shiftKey)J.push("Shift");let Q=Z.key;if(Q===" ")Q="Space";else if(Q.startsWith("Arrow"))Q=Q.slice(5);else if(Q.length===1)Q=Q.toUpperCase();if(J.length===0)return null;return J.push(Q),J.join("+")}function _3(Z){let J=typeof window<"u"&&window.metahubDesktop?.platform==="darwin";return Z.replace("CommandOrControl",J?"⌘":"Ctrl").replace("Alt",J?"⌥":"Alt").replace("Shift",J?"⇧":"Shift").split("+").join(J?" ":"+")}function Fq(){let Z=window.metahubDesktop.quicknote,[J,Q]=k(e1),[X,z]=k(!1),[W,G]=k(!1);l(()=>{Z.getSettings().then((F)=>{Q(F.shortcut),z(F.alwaysOnTop)}).catch((F)=>s(`加载失败:${F.message}`))},[]);let q=async(F)=>{try{let K=await Z.setShortcut(F);Q(K.shortcut),s(`快捷键已设为 ${_3(K.shortcut)}`)}catch(K){s(`设置失败:${K.message}`)}},H=(F)=>{if(F.preventDefault(),F.key==="Escape"){G(!1);return}let K=Kq(F);if(!K)return;G(!1),q(K)},Y=async()=>{let F=!X;z(F);try{z(await Z.setAlwaysOnTop(F))}catch(K){z(!F),s(`设置失败:${K.message}`)}};return $("div",{class:"set-block",children:[$("div",{class:"set-block-desc",children:"用全局快捷键随时唤起小窗记录想法。小窗也可从菜单栏图标打开。"},void 0,!1,void 0,this),$("div",{class:"qn-set-row",children:[$("div",{class:"qn-set-main",children:[$("div",{class:"qn-set-name",children:"唤起快捷键"},void 0,!1,void 0,this),$("div",{class:"qn-set-desc",children:"点击下方按钮,然后按下你想用的组合键。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-secondary qn-shortcut"+(W?" capturing":""),onClick:()=>G(!0),onBlur:()=>G(!1),onKeyDown:W?H:void 0,children:W?"按下组合键…":_3(J)},void 0,!1,void 0,this),J!==e1&&$("button",{class:"btn btn-ghost",title:"重置默认",onClick:()=>void q(e1),children:"重置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"qn-set-row",children:[$("div",{class:"qn-set-main",children:[$("div",{class:"qn-set-name",children:"默认始终置顶"},void 0,!1,void 0,this),$("div",{class:"qn-set-desc",children:"小窗浮在其他窗口之上;也可在小窗内用 \uD83D\uDCCC 按钮切换。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn "+(X?"btn-primary":"btn-secondary"),"aria-pressed":X,onClick:()=>void Y(),children:X?"已开启":"已关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function kZ(Z){if(!Z)return"从未";return new Date(Z).toLocaleString()}function Uq(){let[Z,J]=k(null),Q=()=>a.listPeers().then(J).catch((q)=>s(`加载失败:${q.message}`));l(()=>{Q()},[]);let X=async(q)=>{try{let H=await a.syncPeer(q.url);s(H.ok?`已同步:推送 ${H.pushed},拉取 ${H.pulled}`:`同步失败:${H.error}`),Q()}catch(H){s(`同步失败:${H.message}`)}},z=async(q)=>{await a.updatePeer(q.url,{enabled:!q.enabled}).catch((H)=>s(H.message)),Q()},W=async(q)=>{if(!await R0({title:"移除同步设备",message:`确定移除 ${q.url}?将停止与该设备的数据同步。`,confirmLabel:"移除",danger:!0}))return;await a.removePeer(q.url).catch((Y)=>s(Y.message)),Q()},G=(q,H)=>y0(q,(Y)=>$(o,{children:[$(z0,{icon:"share",label:"立即同步",onClick:()=>{Y(),X(H)}},void 0,!1,void 0,this),$(z0,{icon:H.enabled?"eyeOff":"check",label:H.enabled?"禁用":"启用",onClick:()=>{Y(),z(H)}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"移除",danger:!0,onClick:()=>{Y(),W(H)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"同步设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"已直接配对的设备(服务器 HTTP 双向同步)。新增请用上方「同步 → 添加设备 → 高级:服务器配对」。"},void 0,!1,void 0,this),$("div",{class:"peer-list flush",children:Z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?$("div",{class:"muted",children:"还没有配对的设备。"},void 0,!1,void 0,this):Z.map((q)=>$("div",{class:"peer-row",children:[$("span",{class:"peer-dot"+(q.enabled?q.last_status==="error"?" err":" on":" off")},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:q.label||q.url},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[q.enabled?"已启用":"已禁用"," · 最近同步 ",kZ(q.last_success_at),q.last_status==="error"&&q.last_error?` · 错误:${q.last_error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",onClick:(H)=>G(H,q),children:$(f,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},q.url,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Lq(){let[Z,J]=k(null),Q=()=>a.listGrants().then(J).catch((z)=>s(`加载失败:${z.message}`));l(()=>{Q()},[]);let X=async(z)=>{if(!await R0({title:"吊销凭据",message:`吊销后,持有此凭据的设备${z.peer_url?`(${z.peer_url})`:""}将无法再同步进本机。`,confirmLabel:"吊销",danger:!0}))return;await a.revokeGrant(z.token).catch((G)=>s(G.message)),Q()};return $("div",{class:"set-block",children:[$("div",{class:"set-block-head",children:$("span",{class:"set-block-title",children:"已授权设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"set-block-desc",children:"本机签发、允许其他设备同步进来的凭据。吊销即断开对方的入站访问。"},void 0,!1,void 0,this),$("div",{class:"peer-list flush",children:Z==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?$("div",{class:"muted",children:"还没有签发任何凭据。"},void 0,!1,void 0,this):Z.map((z)=>$("div",{class:"peer-row",children:[$("span",{class:"peer-dot on"},void 0,!1,void 0,this),$("div",{class:"peer-main",children:[$("div",{class:"peer-url",children:z.peer_url||"(未知地址)"},void 0,!1,void 0,this),$("div",{class:"peer-sub",children:[z.token.slice(0,8),"… · 签发于 ",kZ(z.created_at)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-ghost peer-menu",title:"吊销",onClick:()=>X(z),children:$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},z.token,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var K6=(Z)=>location.origin+"/sites/"+Z+"/",V3=(Z)=>"/"+Z+"/",Pq=(Z)=>(/\.([a-z0-9]+)$/i.exec(Z)?.[1]??"").toLowerCase(),f3=(Z)=>Z.startsWith("image/");function g3(Z){let J=Number(Z.split("-")[0]);if(!Number.isFinite(J)||J<=0)return"—";return new Date(J).toISOString().slice(0,10)}function Bq(Z){let J=Pq(Z.path);if(["html","htm","js","mjs","css","json","xml"].includes(J))return"code";if(f3(Z.content_type))return"file";if(["md","txt"].includes(J))return"text";return"file"}function Y8(Z){navigator.clipboard?.writeText(Z).catch(()=>{}),s("已复制")}function b3(){let[Z,J]=k(null),[Q,X]=k(null),[z,W]=k(null),G=BZ(),q=()=>a.listSites().then((F)=>{J(F),X((K)=>K?F.find((w)=>w.id===K.id)??null:null)}).catch((F)=>s(`加载失败:${F.message}`));l(()=>{q()},[]);let H=()=>W9($(Oq,{onCreated:(F)=>{q(),X(F)}},void 0,!1,void 0,this)),Y=(F,K,w)=>{y0(F,(P)=>$(o,{children:[$(z0,{icon:"externalLink",label:"复制访问地址",onClick:()=>{P(),Y8(K6(K.name))}},void 0,!1,void 0,this),$(z0,{icon:"link",label:"通过设备分享…",onClick:()=>{P(),N9({kind:"site",ref:K.id,title:K.title??K.name})}},void 0,!1,void 0,this),$(z0,{icon:"settings",label:"修改标题…",onClick:async()=>{P();let A=await Y9({title:"修改标题",label:"标题",value:K.title??K.name});if(A==null)return;try{await a.updateSite(K.id,{title:A})}catch(_){return s(_.message)}q()}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除站点",danger:!0,onClick:async()=>{if(P(),!await R0({title:"删除站点?",message:`「${K.name}」及其 ${K.file_count} 个文件将被删除。`,confirmLabel:"删除",danger:!0}))return;try{await a.deleteSite(K.id)}catch(_){return s(_.message)}if(w)X(null);q()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return $("div",{class:"db sites-page",children:[$("div",{class:"db-head",children:[$("div",{children:[$("div",{class:"db-title",children:"站点管理"},void 0,!1,void 0,this),$("div",{class:"db-desc",children:"发布静态站点,生成可分享的访问链接。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-primary site-new",onClick:H,children:[$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z==null?$("div",{class:"muted",style:{padding:20},children:"加载中…"},void 0,!1,void 0,this):Z.length===0?$("div",{class:"site-empty",children:[$("div",{class:"ei",children:$(f,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"et",children:"还没有站点"},void 0,!1,void 0,this),$("div",{class:"ed",children:"站点是一个命名文件桶,发布后可通过 /sites/<name>/ 直接访问。"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:H,children:[$(f,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):$(o,{children:[$("div",{class:"sites-grid",children:Z.map((F,K)=>$("div",{class:"site-card",style:`--i:${K}`,onClick:()=>X(F),children:[$("div",{class:"site-card-head",children:[$("span",{class:"si",children:$(f,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"site-card-id",children:[$("div",{class:"slug",children:F.name},void 0,!1,void 0,this),$("div",{class:"ttl"+(F.title?"":" muted"),children:F.title||"未命名站点"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G.has(F.id)&&$("span",{class:"share-badge",title:"已分享 · 管理分享",style:{marginLeft:"auto"},onClick:(w)=>{w.stopPropagation(),N9({kind:"site",ref:F.id,title:F.title??F.name})},children:$(f,{name:"link"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"site-addr",title:"点击复制访问地址",onClick:(w)=>{w.stopPropagation(),Y8(K6(F.name))},children:[$(f,{name:"link",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:V3(F.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"site-card-meta",children:[$("span",{children:[$("b",{children:F.file_count},void 0,!1,void 0,this)," 文件"]},void 0,!0,void 0,this),$("span",{class:"dot",children:"·"},void 0,!1,void 0,this),$("span",{children:g3(F.created_hlc)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"site-card-foot",children:[$("button",{class:"btn btn-secondary",style:{flex:1},onClick:(w)=>{w.stopPropagation(),W(F)},children:[$(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),"访问"]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"更多",onClick:(w)=>{w.stopPropagation(),Y(w,F)},children:$(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},F.id,!0,void 0,this))},void 0,!1,void 0,this),$("div",{class:"gridfoot",children:[$("span",{children:["共 ",Z.length," 个站点"]},void 0,!0,void 0,this),$("span",{children:[Z.reduce((F,K)=>F+K.file_count,0)," 个文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&$(Aq,{site:Q,onClose:()=>X(null),onVisit:()=>W(Q),onMenu:(F)=>Y(F,Q,!0),onChanged:q},void 0,!1,void 0,this),z&&$(Nq,{site:z,onClose:()=>W(null)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Oq({onCreated:Z}){let[J,Q]=k(""),[X,z]=k(""),W=async()=>{let G=J.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"");if(!G)return s("请填写站点名称");try{let q=await a.createSite({name:G,title:X.trim()||void 0});c0(),s(`已创建站点「${G}」`),Z(q)}catch(q){s(q.message)}};return $(q9,{title:"新建站点",sub:"创建一个命名文件桶,随同步无冲突复制。",footer:$(o,{children:[$("button",{class:"btn btn-secondary",onClick:c0,children:"取消"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:W,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{class:"field-label",children:"名称(slug)"},void 0,!1,void 0,this),$("input",{class:"text-input",autofocus:!0,value:J,placeholder:"例如:docs、demo、status",onInput:(G)=>Q(G.target.value),onKeyDown:(G)=>{if(G.key==="Enter")W()}},void 0,!1,void 0,this),$("div",{class:"field-label",children:"标题(可选)"},void 0,!1,void 0,this),$("input",{class:"text-input",value:X,placeholder:"人类可读的标题",onInput:(G)=>z(G.target.value),onKeyDown:(G)=>{if(G.key==="Enter")W()}},void 0,!1,void 0,this),$("div",{class:"muted",style:{fontSize:12,marginTop:10},children:["将通过 ",$("span",{style:{fontFamily:"var(--mono)"},children:"/sites/<名称>/"},void 0,!1,void 0,this)," 对外提供。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Aq({site:Z,onClose:J,onVisit:Q,onMenu:X,onChanged:z}){let[W,G]=k(null),q=W0(null),{open:H,close:Y}=e9(J),F=()=>a.listSiteFiles(Z.id).then(G).catch((_)=>s(_.message));l(()=>{let _=!1;return G(null),a.listSiteFiles(Z.id).then((V)=>!_&&G(V)).catch((V)=>!_&&s(V.message)),()=>{_=!0}},[Z.id]);let K=async(_)=>{let V=_.target,D=Array.from(V.files??[]);if(V.value="",!D.length)return;let v=0;try{for(let R of D)await a.uploadSiteFile(Z.id,R.name,R),v++;s(`已上传 ${v} 个文件`)}catch(R){s(`已上传 ${v}/${D.length} 个,其余失败:${R.message}`)}finally{F(),z()}},w=async(_)=>{if(!await R0({title:"删除文件?",message:`「${_.path}」将从站点「${Z.name}」中删除。`,confirmLabel:"删除",danger:!0}))return;try{await a.deleteSiteFile(Z.id,_.path)}catch(D){return s(D.message)}F(),z()},P=K6(Z.name),A=V3(Z.name);return $(o,{children:[$("div",{class:"scrim"+(H?" open":""),onClick:Y},void 0,!1,void 0,this),$("div",{class:"peek"+(H?" open":""),children:[$("div",{class:"peek-head",children:[$("button",{class:"iconbtn",onClick:Y,children:$(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8,minWidth:0,fontWeight:600,fontSize:14},children:[$(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),$("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Z.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"btn btn-secondary",onClick:()=>q.current?.click(),children:[$(f,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this),$("button",{class:"iconbtn",title:"更多",onClick:(_)=>X(_),children:$(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("input",{ref:q,type:"file",multiple:!0,style:{display:"none"},onChange:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"peek-body",children:[$("h2",{style:{margin:"0 0 20px"},children:Z.title||Z.name},void 0,!1,void 0,this),$("div",{class:"acc-link",children:[$("span",{class:"url",children:A},void 0,!1,void 0,this),$("button",{title:"复制地址",onClick:()=>Y8(P),children:$(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"accent",title:"访问站点",onClick:Q,children:$(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"site-meta",children:[$("span",{children:[$("b",{children:W?.length??Z.file_count},void 0,!1,void 0,this)," 个文件"]},void 0,!0,void 0,this),$("span",{children:["创建于 ",g3(Z.created_hlc)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"files-head",children:[$("span",{children:"文件"},void 0,!1,void 0,this),$("span",{children:W?.length??""},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):W.length===0?$("div",{class:"site-empty",style:{marginTop:4},children:[$("div",{class:"ei",children:"\uD83D\uDCC1"},void 0,!1,void 0,this),$("div",{class:"et",children:"站点还没有文件"},void 0,!1,void 0,this),$("div",{class:"ed",children:"上传文件后即可通过站点地址访问。"},void 0,!1,void 0,this),$("button",{class:"btn btn-secondary",onClick:()=>q.current?.click(),children:[$(f,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):$("div",{children:W.map((_)=>$("div",{class:"filerow",onClick:()=>W9($(S3,{site:Z,file:_},void 0,!1,void 0,this)),children:[$("span",{class:"fi",children:$(f,{name:Bq(_),cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"fpath",children:_.path},void 0,!1,void 0,this),$("span",{class:"enc-badge"+(_.encoding==="blob"?" blob":""),children:_.encoding},void 0,!1,void 0,this),$("div",{class:"facts",children:[$("button",{title:"预览",onClick:(V)=>{V.stopPropagation(),W9($(S3,{site:Z,file:_},void 0,!1,void 0,this))},children:$(f,{name:"eye",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{title:"复制路径",onClick:(V)=>{V.stopPropagation(),Y8("/sites/"+Z.name+"/"+_.path)},children:$(f,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"del",title:"删除",onClick:(V)=>{V.stopPropagation(),w(_)},children:$(f,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},_.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function S3({site:Z,file:J}){let Q="/sites/"+Z.name+"/"+J.path,[X,z]=k(null),W=f3(J.content_type),G=!W&&(J.encoding==="utf8"||/text\/|json|javascript|xml/.test(J.content_type));return l(()=>{if(!G)return;fetch(Q).then((q)=>q.text()).then(z).catch(()=>z("(无法加载内容)"))},[Q]),$(q9,{title:J.path,sub:Q,width:680,footer:$(o,{children:[$("button",{class:"btn btn-secondary",onClick:()=>Y8(Q),children:"复制路径"},void 0,!1,void 0,this),$("button",{class:"btn btn-primary",onClick:c0,children:"关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[$("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center",color:"var(--muted)",fontSize:12,marginBottom:12},children:[$("span",{children:J.content_type},void 0,!1,void 0,this),$("span",{class:"enc-badge"+(J.encoding==="blob"?" blob":""),children:J.encoding},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W?$("img",{src:Q,style:{maxWidth:"100%",borderRadius:"var(--radius)",border:"1px solid var(--line)"}},void 0,!1,void 0,this):G?X==null?$("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):$("div",{class:"preview-box",children:X},void 0,!1,void 0,this):$("div",{class:"preview-bin",children:[$("div",{class:"pi",children:"\uD83D\uDCE6"},void 0,!1,void 0,this),$("div",{class:"pt",children:"二进制文件 · 在新标签打开查看"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Nq({site:Z,onClose:J}){l(()=>{let X=(z)=>{if(z.key==="Escape")J()};return addEventListener("keydown",X),()=>removeEventListener("keydown",X)},[]);let Q="/sites/"+Z.name+"/";return $("div",{class:"spv-scrim open",onClick:(X)=>{if(X.target===X.currentTarget)J()},children:$("div",{class:"spv",children:[$("div",{class:"spv-chrome",children:[$("div",{class:"spv-dots",children:[$("i",{},void 0,!1,void 0,this),$("i",{},void 0,!1,void 0,this),$("i",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"spv-url",children:[$(f,{name:"lock",cls:"ico sm"},void 0,!1,void 0,this),$("span",{children:K6(Z.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"spv-btn",title:"在新标签打开",onClick:()=>window.open(Q,"_blank"),children:[$(f,{name:"externalLink",cls:"ico sm"},void 0,!1,void 0,this),"新标签"]},void 0,!0,void 0,this),$("button",{class:"spv-btn icon",title:"关闭",onClick:J,children:$(f,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("iframe",{class:"spv-frame",src:Q,sandbox:"allow-scripts allow-same-origin"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var wq={doc:"file",database:"database",site:"globe"};function Mq(Z){if(Z==null)return{text:"永久",warn:!1,dead:!1};let J=Z-Date.now();if(J<=0)return{text:"已过期",warn:!0,dead:!0};let Q=Math.floor(J/86400000),X=Math.floor(J/3600000);if(Q>=1)return{text:`${Q} 天后过期`,warn:Q<=2,dead:!1};if(X>=1)return{text:`${X} 小时后过期`,warn:!0,dead:!1};return{text:"即将过期",warn:!0,dead:!1}}function j3({onNavigate:Z}){let[J,Q]=k(null),[X,z]=k("all"),[W,G]=k(""),q=()=>a.listShares().then(Q).catch((P)=>s(`加载失败:${P.message}`));l(()=>{return q(),document.addEventListener(PZ,q),()=>document.removeEventListener(PZ,q)},[]);let{copyShare:H,revoke:Y,renew:F}=o6(q,s,s),K=_9(()=>{let P=J??[],A=W.trim().toLowerCase();return P.filter((_)=>(X==="all"||_.transport===X)&&(!A||_.title.toLowerCase().includes(A)||_.source.toLowerCase().includes(A)))},[J,X,W]),w=(P)=>{if(P.kind==="doc")Z({kind:"doc",id:P.target_id});else if(P.kind==="database")Z({kind:"db",id:P.target_id});else Z({kind:"sites"})};return $("div",{class:"db shares-page",children:[$("div",{class:"db-head",children:[$("div",{children:[$("div",{class:"db-title",children:"分享"},void 0,!1,void 0,this),$("div",{class:"db-desc",children:"通过服务器或对象存储对外分享的文档、表格与站点。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"shv-tools",children:[$("div",{class:"shv-seg",role:"tablist",children:["all","server","s3"].map((P)=>$("button",{class:"shv-seg-btn"+(X===P?" active":""),onClick:()=>z(P),children:P==="all"?"全部":P==="server"?"服务器":"对象存储"},P,!1,void 0,this))},void 0,!1,void 0,this),$("div",{class:"shv-search",children:[$(f,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),$("input",{placeholder:"搜索标题 / 来源…",value:W,onInput:(P)=>G(P.currentTarget.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J==null?$("div",{class:"muted",style:{padding:20},children:"加载中…"},void 0,!1,void 0,this):K.length===0?$("div",{class:"site-empty",children:[$("div",{class:"ei",children:$(f,{name:"link"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"et",children:J.length===0?"还没有公开分享":"没有匹配的分享"},void 0,!1,void 0,this),$("div",{class:"ed",children:"在文档、表格或站点里点「通过设备分享」即可创建——可经服务器(支持可编辑)或对象存储(只读、端到端加密)。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):$("ul",{class:"shv-list",children:K.map((P)=>{let A=Mq(P.expiresAt);return $("li",{class:"shv-row",children:[$("span",{class:"shv-ico k-"+P.kind,children:$(f,{name:wq[P.kind]??"file"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"shv-main",children:[$("div",{class:"shv-titleline",children:[$("button",{class:"shv-title",onClick:()=>w(P),title:"打开对象",children:P.title},void 0,!1,void 0,this),$("span",{class:"shv-pill t-"+P.transport,children:P.transport==="s3"?"对象存储":"服务器"},void 0,!1,void 0,this),$("span",{class:"shv-pill p-"+P.permission,children:P.permission==="edit"?"可编辑":"只读"},void 0,!1,void 0,this),P.hasPassword&&$("span",{class:"shv-lock",title:"口令保护",children:"\uD83D\uDD12"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"shv-meta",children:["经 ",P.source,$("span",{class:"shv-exp"+(A.warn?" warn":"")+(A.dead?" dead":""),children:["· ",A.text]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$("div",{class:"shv-actions",children:[$("button",{class:"btn btn-secondary",onClick:()=>H(P),children:"复制链接"},void 0,!1,void 0,this),P.transport==="s3"&&$("button",{class:"btn btn-secondary",onClick:()=>F(P),children:"续期"},void 0,!1,void 0,this),P.url&&$("a",{class:"btn btn-secondary",href:P.url,target:"_blank",rel:"noreferrer",children:"打开"},void 0,!1,void 0,this),$("button",{class:"btn btn-danger",onClick:()=>Y(P),children:"撤销"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},P.slug,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function ZJ(Z){switch(Z.kind){case"db":return`#/db/${encodeURIComponent(Z.id)}`;case"doc":return`#/doc/${encodeURIComponent(Z.id)}`;case"search":return`#/search?q=${encodeURIComponent(Z.q)}`;case"settings":return"#/settings";case"sites":return"#/sites";case"shares":return"#/shares";case"empty":return"#/"}}function JJ(Z){if(!Z.startsWith("#/"))return{kind:"empty"};let[J="",Q=""]=Z.slice(2).split("?",2),[X,z=""]=J.split("/",2);try{if(X==="db"&&z)return{kind:"db",id:decodeURIComponent(z)};if(X==="doc"&&z)return{kind:"doc",id:decodeURIComponent(z)};if(X==="search"){let W=new URLSearchParams(Q).get("q");if(W)return{kind:"search",q:W}}if(X==="settings")return{kind:"settings"};if(X==="sites")return{kind:"sites"};if(X==="shares")return{kind:"shares"}}catch{}return{kind:"empty"}}var h3="mh-quicknote-last",D3="mh-quicknote-parent",x3="Quick Notes";function Cq(Z,J){return(J.created_hlc??"").localeCompare(Z.created_hlc??"")}async function yq(){let Z=localStorage.getItem(D3);if(Z)try{return await a.getDocument(Z),Z}catch{}let X=(await a.listDocuments()).find((z)=>z.parent_id==null&&z.title===x3)?.id??(await a.createDocument({title:x3})).id;return localStorage.setItem(D3,X),X}function m3(){let[Z,J]=k(null),[Q,X]=k([]),[z,W]=k(null),[G,q]=k(""),[H,Y]=k(!1),F=W0(null),K=typeof window<"u"?window.metahubDesktop?.quicknote:void 0,w=n9(async(R)=>{let x=(await a.listDocumentsByParent(R)).sort(Cq);return X(x),x},[]);l(()=>{if(!Z)return;let R,x=()=>{clearTimeout(R),R=setTimeout(()=>void w(Z),80)};return document.addEventListener(L9,x),()=>{clearTimeout(R),document.removeEventListener(L9,x)}},[Z,w]);let P=n9(async(R)=>{let x=await a.createDocument({title:"",parent_id:R});return await w(R),x.id},[w]);l(()=>{(async()=>{try{let R=await yq();J(R);let x=await w(R),S=localStorage.getItem(h3),O=S&&x.some((N)=>N.id===S)&&S||x[0]?.id||await P(R);W(O)}catch(R){q(String(R.message))}})()},[w,P]),l(()=>{if(z)localStorage.setItem(h3,z)},[z]),l(()=>{K?.getAlwaysOnTop().then(Y).catch(()=>{})},[K]),l(()=>{if(!K)return;let R=(x)=>{if(x.key==="Escape")K.hide()};return addEventListener("keydown",R),()=>removeEventListener("keydown",R)},[K]);let A=async()=>{if(!Z)return;try{W(await P(Z))}catch(R){q(String(R.message))}},_=async()=>{if(!K)return;let R=!H;Y(R);try{Y(await K.setAlwaysOnTop(R))}catch{Y(!R)}},V=async()=>{if(!z||!Z)return;if(!await R0({title:"删除笔记?",message:"该快速笔记将被删除。",confirmLabel:"删除",danger:!0}))return;await a.deleteDocument(z);let x=await w(Z);W(x[0]?.id??await P(Z))},D=(R)=>{y0(R,(x)=>$(o,{children:[$(j0,{children:"快速笔记"},void 0,!1,void 0,this),Q.length===0&&$("div",{class:"lbl",children:"还没有笔记"},void 0,!1,void 0,this),Q.map((S)=>$(z0,{icon:"file",label:S.title||"无标题",checked:S.id===z,onClick:()=>{x(),W(S.id)}},S.id,!1,void 0,this)),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"plus",label:"新建笔记",onClick:()=>{x(),A()}},void 0,!1,void 0,this),z&&$(z0,{icon:"trash",label:"删除当前笔记",danger:!0,onClick:()=>{x(),V()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),{minWidth:220})},v=Q.find((R)=>R.id===z)?.title;return $("div",{class:"qn",children:[$("div",{class:"qn-bar",children:[$("span",{class:"qn-brand",children:v||"快速笔记"},void 0,!1,void 0,this),$("div",{class:"qn-actions",children:[$("button",{class:"iconbtn",title:"新建笔记",onClick:()=>void A(),children:$(f,{name:"plus"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("button",{class:"iconbtn",title:"笔记列表",onClick:D,children:$(f,{name:"list"},void 0,!1,void 0,this)},void 0,!1,void 0,this),K&&$("button",{class:"iconbtn"+(H?" active":""),title:H?"取消置顶":"始终置顶",onClick:()=>void _(),children:$(f,{name:"pin"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G&&$("div",{class:"error-bar",onClick:()=>q(""),children:["⚠ ",G,"(点击关闭)"]},void 0,!0,void 0,this),$("div",{class:"qn-body",children:z?$(W6,{docId:z,onError:q,onHandle:(R)=>F.current=R},z,!1,void 0,this):$("div",{class:"empty",children:$("div",{children:"加载中…"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$(g8,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function _q(){let Z=typeof location<"u"?location.hash:"",J=Z.includes("?")?Z.slice(Z.indexOf("?")+1):"",Q=new URLSearchParams(J);return{src:Q.get("src")||"",name:Q.get("name")||void 0,blockId:Q.get("bid")||""}}function u3(){let Z=_q(),[J,Q]=k(Z.src),X=async(z)=>{try{let W=await a.uploadDocBlob(new File([z],"annotated.png",{type:"image/png"}));try{let G=new BroadcastChannel("mh-doc-image");G.postMessage({action:"replace",blockId:Z.blockId,url:W.url}),G.close()}catch{}Q(W.url)}catch(W){s(`保存失败:${W.message}`)}};return $("div",{class:"lightbox preview-win",children:$(j1,{src:J,name:Z.name,draggableBar:!0,onClose:()=>window.close(),onReplace:X},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var vq=/[",\r\n]/;function Tq(Z){return vq.test(Z)?`"${Z.replace(/"/g,'""')}"`:Z}function E3(Z){return Z.map((J)=>J.map(Tq).join(",")).join(`
|
|
148
|
-
`)}function $J(Z,J){let Q=J.startsWith(".")?J:"."+J,X=Z.trim().replace(/[\\/:*?"<>|\x00-\x1f]/g,"-").replace(/\s+/g," ").replace(/^\.+$/,"").slice(0,90)||"untitled";return X.toLowerCase().endsWith(Q.toLowerCase())?X:X+Q}function QJ(Z,J,Q){let X=URL.createObjectURL(new Blob([J],{type:Q})),z=document.createElement("a");z.href=X,z.download=Z,document.body.appendChild(z),z.click(),z.remove(),setTimeout(()=>URL.revokeObjectURL(X),0)}function p3(Z,J){let Q=["id",...Z.map((z)=>z.name)],X=J.map((z)=>[z.id,...Z.map((W)=>Rq(z.cells[W.id]))]);return E3([Q,...X])}function Rq(Z){if(Z==null)return"";if(typeof Z==="boolean")return Z?"true":"false";if(typeof Z==="object")return JSON.stringify(Z);return String(Z)}function kq(){let[Z,J]=k(()=>typeof window<"u"&&window.matchMedia(V8).matches);return l(()=>{let Q=window.matchMedia(V8),X=()=>J(Q.matches);return Q.addEventListener("change",X),()=>Q.removeEventListener("change",X)},[]),Z}function Iq(){let[Z,J]=k([]),[Q,X]=k([]),[z,W]=k(()=>JJ(location.hash)),[G,q]=k(""),[H,Y]=k(!1),[F,K]=k(268),[w,P]=k("blocks"),[A,_]=k(!1),[V,D]=k(!1),[v,R]=k(!1),[x,S]=k(!1),[O,N]=k(()=>jZ()),[L,B]=k(!1),[M,y]=k(!1),E=W0(null),c=W0(!1),r=W0(null),$0=kq(),m=n9((T)=>q(T),[]),g=n9((T)=>{E.current=T},[]),u=n9(async()=>{let[T,p]=await Promise.all([a.listDatabases(),a.listDocuments()]);J(T),X(p),_(!0)},[]);l(()=>{u().catch((T)=>m(String(T.message)))},[u]),l(()=>{let T,p=()=>{clearTimeout(T),T=setTimeout(()=>u().catch((i)=>m(String(i.message))),80)};return document.addEventListener(L9,p),()=>{clearTimeout(T),document.removeEventListener(L9,p)}},[u,m]),l(()=>{if(V9().surface==="desktop")return;tJ()},[]),l(()=>F9((T)=>N({...T})),[]),l(()=>{if(Boolean(O.bucketDirty||O.bucketSyncing)){c.current=!0,B(!1);return}if(!c.current||O.bucketError)return;c.current=!1,B(!0);let p=setTimeout(()=>B(!1),900);return()=>clearTimeout(p)},[O.bucketDirty,O.bucketSyncing,O.bucketError]),l(()=>{k6().then(()=>R8())},[]);let[I,n]=k(typeof navigator<"u"&&!navigator.onLine);l(()=>{let T=()=>n(!1),p=()=>n(!0);return window.addEventListener("online",T),window.addEventListener("offline",p),()=>{window.removeEventListener("online",T),window.removeEventListener("offline",p)}},[]),l(()=>{let T=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0;if(!T)return;Promise.all([a.version().then((p)=>p.version).catch(()=>null),T.installedVersion().catch(()=>null)]).then(([p,i])=>{if(p&&i&&GZ(i,p)>0)D(!0)})},[]);let Z0=(T,p)=>{let i=ZJ(T);if(location.hash!==i)history[p?.replace?"replaceState":"pushState"](null,"",i);W(T)};l(()=>{if(location.hash&&!location.hash.startsWith("#/"))history.replaceState(null,"","#/");let T=()=>W(JJ(location.hash));return window.addEventListener("hashchange",T),()=>window.removeEventListener("hashchange",T)},[]);let q0=()=>a.createDocument({title:""}).then((T)=>Z0({kind:"doc",id:T.id})).catch((T)=>m(String(T.message))),Q0=z.kind==="db"?Z.find((T)=>T.id===z.id):void 0,J0=z.kind==="doc"?Q.find((T)=>T.id===z.id):void 0,B0=z.kind==="doc"?z.id:null,p0=z.kind==="db"?z.id:null;l(()=>{P("blocks"),R(!1)},[B0]),l(()=>{S(!1)},[p0]);let i0=z.kind!=="empty",m0=W0(0);l(()=>{let T=$0&&i0;if(T&&!document.body.classList.contains("mobile-content"))m0.current=window.scrollY;if(document.body.classList.toggle("mobile",$0),document.body.classList.toggle("mobile-content",T),G6(),$0)window.scrollTo(0,T?0:m0.current)},[$0,i0,z]),l(()=>{let T=(p)=>{if((p.metaKey||p.ctrlKey)&&p.key.toLowerCase()==="k"){p.preventDefault(),document.querySelector(".sb-search input")?.focus();return}if((p.metaKey||p.ctrlKey)&&p.key.toLowerCase()==="s"){if(r.current?.())p.preventDefault()}};return window.addEventListener("keydown",T),()=>window.removeEventListener("keydown",T)},[]),l(()=>{let T=window.matchMedia("(prefers-color-scheme: dark)"),p=()=>{n1(),G6()};return T.addEventListener("change",p),()=>T.removeEventListener("change",p)},[]);let d0=(T)=>{let p=E.current?.snapshotMarkdown();E.current?.flushSave(),(p==null?a.getDocument(T.id).then((F0)=>F0.body??""):Promise.resolve(p)).then((F0)=>QJ($J(T.title||T.id,".md"),F0,"text/markdown;charset=utf-8")).catch((F0)=>m(String(F0.message)))},g0=(T)=>{Promise.all([a.listProperties(T.id),a.listRecords(T.id)]).then(([p,i])=>QJ($J(T.name||T.id,".csv"),p3(p,i),"text/csv;charset=utf-8")).catch((p)=>m(String(p.message)))},h0=(T)=>{y0(T,(p)=>$(o,{children:[$(z0,{icon:"link",label:"复制链接",onClick:()=>{p(),navigator.clipboard.writeText(location.origin+location.pathname+ZJ(z)).then(()=>s("链接已复制")).catch((i)=>m(String(i.message)))}},void 0,!1,void 0,this),z.kind==="doc"&&J0&&$(z0,{icon:"link",label:"通过设备分享…",onClick:()=>{p(),N9({kind:"doc",ref:J0.id,title:J0.title})}},void 0,!1,void 0,this),z.kind==="db"&&Q0&&$(z0,{icon:"link",label:"通过设备分享…",onClick:()=>{p(),N9({kind:"database",ref:Q0.id,title:Q0.name})}},void 0,!1,void 0,this),z.kind==="doc"&&J0&&$(z0,{icon:"download",label:"导出 Markdown",onClick:()=>{p(),d0(J0)}},void 0,!1,void 0,this),z.kind==="db"&&Q0&&$(z0,{icon:"download",label:"导出 CSV",onClick:()=>{p(),g0(Q0)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},_0=e0()&&(O.bucketDirty||O.bucketSyncing||O.bucketError||L)?O.bucketSyncing?"saving":L?"saved":O.bucketError?"error":"dirty":"share",a0=_0==="saving"?"保存中…":_0==="saved"?"已保存":_0==="share"?"分享":"保存",O0=_0==="share"?"share":_0==="saved"?"cloudCheck":_0==="saving"?"spinner":_0==="error"?"cloudOff":"cloudUp",u0=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform),r0=_0==="share"?"分享":_0==="error"?`保存到云端失败:${O.bucketError??""}`:`保存到云端${$0?"":u0?" · ⌘S":" · Ctrl+S"}`,K0=async()=>{try{await E.current?.flushSave(),await aJ();let T=jZ();if(T.bucketError)throw Error(T.bucketError);if(T.bucketDirty)throw Error("仍有改动尚未保存到云端")}catch(T){s(`保存失败:${T.message}`)}},l0=()=>{y(!0),window.setTimeout(()=>y(!1),320)},w0=(T)=>{if(_0==="share"){h0(T);return}if(_0==="saving"||_0==="saved")return;K0()};r.current=()=>{if(z.kind!=="doc"&&z.kind!=="db")return!1;if(_0==="saving"||_0==="saved")return!0;if(_0==="dirty"||_0==="error")K0(),l0();else if(e0())s("已是最新"),l0();return!0};let h=(T)=>{if(z.kind==="doc"&&J0)y0(T,(p)=>$(o,{children:[$(z0,{icon:"code",label:w==="source"?"块方式显示":"代码方式显示",checked:w==="source",onClick:()=>{p(),E.current?.setMode(w==="source"?"blocks":"source")}},void 0,!1,void 0,this),$(z0,{icon:"copy",label:"创建副本",onClick:async()=>{p(),E.current?.flushSave();try{let i=await a.duplicateDocument(J0.id,{title:`${J0.title||"无标题"} 副本`});Z0({kind:"doc",id:i.id}),s("已创建副本")}catch(i){m(String(i.message))}}},void 0,!1,void 0,this),$(z0,{icon:"history",label:"版本历史",onClick:()=>{p(),E.current?.flushSave(),R(!0)}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"hash",label:"复制 ID",onClick:()=>{p(),navigator.clipboard?.writeText(J0.id).then(()=>s("已复制 ID"))}},void 0,!1,void 0,this),$(z0,{icon:"settings",label:"重命名…",onClick:async()=>{p();let i=await Y9({title:"重命名文档",value:J0.title});if(i)await a.updateDocument(J0.id,{title:i})}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除文档",danger:!0,onClick:async()=>{if(p(),await R0({title:"删除文档?",message:`「${J0.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))await a.deleteDocument(J0.id),Z0({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));else if(z.kind==="db"&&Q0)y0(T,(p)=>$(o,{children:[$(z0,{icon:"copy",label:"创建副本",onClick:async()=>{p();try{let i=await a.duplicateDatabase(Q0.id,{name:`${Q0.name} 副本`});Z0({kind:"db",id:i.id}),s("已创建副本")}catch(i){m(String(i.message))}}},void 0,!1,void 0,this),$(z0,{icon:"history",label:"最近动态",onClick:()=>{p(),S(!0)}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"hash",label:"复制 ID",onClick:()=>{p(),navigator.clipboard?.writeText(Q0.id).then(()=>s("已复制 ID"))}},void 0,!1,void 0,this),$(z0,{icon:"settings",label:"重命名…",onClick:async()=>{p();let i=await Y9({title:"重命名数据库",value:Q0.name});if(i&&i!==Q0.name)await a.updateDatabase(Q0.id,{name:i})}},void 0,!1,void 0,this),$(S0,{},void 0,!1,void 0,this),$(z0,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(p(),await R0({title:"删除数据库?",message:`「${Q0.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))await a.deleteDatabase(Q0.id),Z0({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return $(o,{children:[$(_5,{databases:Z,docs:Q,view:z,navigate:Z0,width:F,collapsed:H,onResize:K,onCollapse:()=>Y(!0),updatePending:V,onError:m},void 0,!1,void 0,this),$("div",{class:"main",children:[$("div",{class:"topbar"+(z.kind==="empty"?" bare":""),children:[$("button",{class:"iconbtn hamburger"+(H?" show-collapsed":""),title:$0?"返回":H?"展开侧栏":"菜单",onClick:()=>$0?Z0({kind:"empty"}):Y(!1),children:$(f,{name:$0?"arrowLeft":"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("div",{class:"crumb",children:[z.kind==="doc"&&$(o,{children:[$("span",{class:"emoji",children:$(f,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{children:J0?.title||"无标题"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.kind==="db"&&$(o,{children:[$("span",{class:"emoji",children:Q0?.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),$("span",{children:Q0?.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.kind==="search"&&$("span",{children:["搜索:“",z.q,"”"]},void 0,!0,void 0,this),z.kind==="settings"&&$(o,{children:[$("span",{class:"emoji",children:$(f,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{children:"设置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.kind==="sites"&&$(o,{children:[$("span",{class:"emoji",children:$(f,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{children:"站点管理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z.kind==="shares"&&$(o,{children:[$("span",{class:"emoji",children:$(f,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{children:"分享"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(z.kind==="doc"||z.kind==="db")&&$(o,{children:[$("button",{class:`btn share-save share-save-${_0}${M?" share-save-kbd":""}`,title:r0,disabled:_0==="saving"||_0==="saved",onClick:w0,children:[$("span",{class:"share-save-ico",children:$(f,{name:O0,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("span",{class:"share-save-label",children:a0},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("button",{class:"iconbtn",onClick:h,children:$(f,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),I&&$("div",{class:"offline-bar",children:e0()?"⚡ 离线 — 本地副本模式:可正常查看和编辑全部内容,恢复连接后自动同步":"⚡ 离线 — 可浏览已缓存的内容,修改会失败;恢复网络后自动恢复"},void 0,!1,void 0,this),G&&$("div",{class:"error-bar",onClick:()=>q(""),children:["⚠ ",G,"(点击关闭)"]},void 0,!0,void 0,this),$("div",{class:"content",children:[z.kind==="empty"&&$(Sq,{onNewDoc:q0},void 0,!1,void 0,this),z.kind==="db"&&Q0&&$(c5,{db:Q0,onError:m},Q0.id,!1,void 0,this),z.kind==="db"&&!Q0&&$("div",{class:"empty",children:A?"数据库不存在或已被删除。":"加载中…"},void 0,!1,void 0,this),z.kind==="doc"&&$(W6,{docId:z.id,onError:m,onModeChange:P,onHandle:g},z.id,!1,void 0,this),z.kind==="search"&&$(fq,{q:z.q,onOpenDoc:(T)=>Z0({kind:"doc",id:T}),onOpenDb:(T)=>Z0({kind:"db",id:T})},void 0,!1,void 0,this),z.kind==="settings"&&$(T3,{onUpdatePending:D},void 0,!1,void 0,this),z.kind==="sites"&&$(b3,{},void 0,!1,void 0,this),z.kind==="shares"&&$(j3,{onNavigate:Z0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),v&&z.kind==="doc"&&$(g5,{docId:z.id,onClose:()=>R(!1),onReverted:()=>E.current?.reload()},void 0,!1,void 0,this),x&&z.kind==="db"&&$(b5,{dbId:z.id,onClose:()=>S(!1)},void 0,!1,void 0,this),$(g8,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Sq({onNewDoc:Z}){return $("div",{class:"empty",children:[$("svg",{class:"estate-art",viewBox:"0 0 220 190",fill:"none","aria-hidden":"true",children:[$("ellipse",{class:"kg-ground ground",cx:"110",cy:"176",rx:"62",ry:"8"},void 0,!1,void 0,this),$("circle",{class:"kg-glow fill-soft",cx:"116",cy:"88",r:"42"},void 0,!1,void 0,this),$("g",{class:"kg-plant",children:[$("path",{class:"kg-stem stroke-a draw",pathLength:"100",d:"M110 134 C110 117 108 106 113 92 C116 83 122 77 128 72"},void 0,!1,void 0,this),$("g",{class:"kg-leaf l1",children:$("g",{class:"kg-grow",children:$("path",{class:"fill-a",d:"M108 108 C90 100 86 88 88 80 C102 80 111 90 108 108 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("g",{class:"kg-leaf l2",children:$("g",{class:"kg-grow",children:$("path",{class:"fill-a",d:"M118 90 C133 83 144 86 150 94 C139 105 125 104 118 90 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$("g",{class:"kg-leaf l3",children:$("g",{class:"kg-grow",children:$("path",{class:"fill-a",d:"M128 72 C128 57 136 48 146 45 C150 58 144 69 128 72 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("rect",{class:"kg-cardB fill-soft",x:"76",y:"124",width:"68",height:"44",rx:"8",transform:"rotate(7 110 146)"},void 0,!1,void 0,this),$("g",{class:"kg-cardA",children:[$("rect",{class:"fill-surface stroke",x:"66",y:"128",width:"76",height:"46",rx:"9",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),$("rect",{class:"fill-a",x:"74",y:"136",width:"18",height:"18",rx:"5",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),$("rect",{class:"fill-soft",x:"98",y:"139",width:"34",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),$("rect",{class:"fill-soft",x:"98",y:"150",width:"24",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("circle",{class:"kg-particle p1 fill-a",cx:"44",cy:"62",r:"2.6"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p2 fill-soft",cx:"178",cy:"74",r:"3"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p3 fill-a",cx:"40",cy:"120",r:"2"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p4 fill-soft",cx:"182",cy:"126",r:"2.4"},void 0,!1,void 0,this),$("circle",{class:"kg-particle p5 fill-a",cx:"150",cy:"44",r:"2.2"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$("p",{class:"estate-title",children:"空空如也"},void 0,!1,void 0,this),$("p",{class:"estate-hint",children:"从左侧选择一个数据库或文档,或新建一个开始。"},void 0,!1,void 0,this),$("button",{class:"estate-link",onClick:Z,children:"+ 新建文档"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Vq({text:Z}){let J=Z.split(/\[([^\[\]]*)\]/g);return $(o,{children:J.map((Q,X)=>X%2?$("mark",{children:Q},X,!1,void 0,this):Q)},void 0,!1,void 0,this)}function fq({q:Z,onOpenDoc:J,onOpenDb:Q}){let[X,z]=k(null);return l(()=>{z(null),a.search(Z).then(z).catch(()=>z([]))},[Z]),$("div",{class:"db",children:[$("div",{class:"db-title",style:{marginBottom:14},children:["搜索:“",Z,"”"]},void 0,!0,void 0,this),X===null&&$("p",{class:"muted",children:"搜索中…"},void 0,!1,void 0,this),X?.length===0&&$("p",{class:"muted",children:"没有匹配结果。"},void 0,!1,void 0,this),X?.map((W)=>$("div",{class:"search-hit",onClick:()=>W.type==="document"?J(W.id):W.database_id&&Q(W.database_id),children:[$("strong",{children:W.title||W.id},void 0,!1,void 0,this)," ",$("span",{class:"muted",children:W.type==="document"?"文档":"记录"},void 0,!1,void 0,this),$("div",{class:"muted",children:$(Vq,{text:W.snippet},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},W.id,!0,void 0,this))]},void 0,!0,void 0,this)}function d3({text:Z}){return $("div",{class:"enroll-splash",children:[$("div",{class:"enroll-spinner"},void 0,!1,void 0,this),$("div",{class:"muted",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function gq(){let Z=/[#&]enroll=([^&]+)/.exec(location.hash);if(!Z)return null;try{return A5(Z[1])}catch{return null}}function bq({onDone:Z}){let J=gq(),[Q,X]=k(J?.endpoint??""),[z,W]=k(J?.bucket??""),[G,q]=k(J?.region??"auto"),[H,Y]=k(J?.accessKeyId??""),[F,K]=k(J?.secretAccessKey??""),[w,P]=k(J?.prefix??"metahub"),[A,_]=k(J?.encrypt??!0),[V,D]=k(""),[v,R]=k(!1),[x,S]=k(""),O=J!=null,N=async()=>{if(!Q.trim()||!z.trim()||!H.trim()||!F.trim()){S("endpoint、bucket、access key、secret key 必填");return}if(A&&!V){S("加密口令必填");return}R(!0),S("");try{await lJ({endpoint:Q.trim(),region:G.trim()||"auto",bucket:z.trim(),prefix:w.trim()||"metahub",accessKeyId:H.trim(),secretAccessKey:F.trim(),encrypt:A,virtualHostedStyle:J?.virtualHostedStyle},V),Z()}catch(L){let B=L.message;S(/failed to fetch|load failed|networkerror|cors/i.test(B)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE。":`连接失败:${B}`),R(!1)}};return $("div",{class:"enroll",children:$("div",{class:"enroll-card",children:[$("div",{class:"enroll-title",children:"连接你的存储桶"},void 0,!1,void 0,this),$("div",{class:"enroll-sub",children:O?"已从二维码读取桶信息,输入加密口令即可同步你的数据。":"填入 S3 兼容存储桶(R2/COS/MinIO/S3)的连接信息;数据上传前端到端加密。"},void 0,!1,void 0,this),!O&&$(o,{children:[$("div",{class:"field-label",children:"Endpoint"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"https://<bucket>.cos.<region>.myqcloud.com",value:Q,onInput:(L)=>X(L.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Bucket"},void 0,!1,void 0,this),$("input",{class:"text-input",value:z,onInput:(L)=>W(L.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Region"},void 0,!1,void 0,this),$("input",{class:"text-input",placeholder:"auto",value:G,onInput:(L)=>q(L.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Access Key ID"},void 0,!1,void 0,this),$("input",{class:"text-input",value:H,onInput:(L)=>Y(L.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"Secret Access Key"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",value:F,onInput:(L)=>K(L.target.value)},void 0,!1,void 0,this),$("div",{class:"field-label",children:"路径前缀"},void 0,!1,void 0,this),$("input",{class:"text-input",value:w,onInput:(L)=>P(L.target.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),O&&$("div",{class:"enroll-bucket muted",children:["桶:",z]},void 0,!0,void 0,this),A&&$(o,{children:[$("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),$("input",{class:"text-input",type:"password",autofocus:O,placeholder:"与其他设备相同的口令",value:V,onInput:(L)=>D(L.target.value),onKeyDown:(L)=>L.key==="Enter"&&N()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),x&&$("div",{class:"enroll-err",children:x},void 0,!1,void 0,this),$("button",{class:"btn btn-primary enroll-go",disabled:v,onClick:N,children:v?"连接中…":"连接并同步"},void 0,!1,void 0,this),$("div",{class:"enroll-hint muted",children:"提示:iPhone 请用 Safari 的「分享 → 添加到主屏」装成 App,离线与持久存储才生效。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function jq(){let[Z,J]=k("detecting");if(l(()=>{k6().then((Q)=>{if(Q==="server")return J("app");if(!H9())return J("enroll");hZ(),J(e0()?"app":"hydrating")})},[]),l(()=>{if(Z!=="hydrating")return;if(e0())return J("app");return F9(()=>{if(e0())J("app")})},[Z]),Z==="detecting")return $(d3,{text:"加载中…"},void 0,!1,void 0,this);if(Z==="enroll")return $(bq,{onDone:()=>J(e0()?"app":"hydrating")},void 0,!1,void 0,this);if(Z==="hydrating")return $(d3,{text:"正在从云端水合本地副本…"},void 0,!1,void 0,this);return $(Iq,{},void 0,!1,void 0,this)}if(typeof window<"u"&&window.metahubDesktop){if(document.body.classList.add("desktop"),window.metahubDesktop.platform==="darwin")document.body.classList.add("desktop-mac")}if(location.hash.startsWith("#preview"))document.body.classList.add("preview-window"),a9($(u3,{},void 0,!1,void 0,this),document.getElementById("app"));else if(location.hash==="#quick"&&V9().surface==="desktop")document.body.classList.add("quicknote"),a9($(m3,{},void 0,!1,void 0,this),document.getElementById("app"));else a9($(jq,{},void 0,!1,void 0,this),document.getElementById("app"));
|
|
192
|
+
`}}),Z}var QU=null;function XU(Z){return QU??=fM(),QU.turndown(Z)}var N3=h0.define(),l7=h0.define();class zU extends N9{token;name;constructor(Z,J){super();this.token=Z;this.name=J}eq(Z){return Z.token===this.token&&Z.name===this.name}toDOM(){let Z=document.createElement("div");return Z.className="cm-upload-ph",Z.style.opacity="0.6",Z.textContent=`⏳ 正在上传 ${this.name}…`,Z}ignoreEvent(){return!0}}function gM(Z){return L0.set(Z.map((J)=>L0.widget({widget:new zU(J.token,J.name),block:!0,side:1}).range(J.pos)),!0)}var a7=t0.define({create:()=>[],update(Z,J){let $=Z;if(J.docChanged)$=$.map((Q)=>({...Q,pos:J.changes.mapPos(Q.pos,1)}));for(let Q of J.effects)if(Q.is(N3))$=[...$,Q.value];else if(Q.is(l7))$=$.filter((X)=>X.token!==Q.value);return $},provide:(Z)=>O0.decorations.from(Z,gM)});function B3(Z,J){let $=mZ(I0(Z),J);return Z.doc.lineAt($?$.to:J).to}function KU(Z){if(!Z.includes("mh-up:"))return Z;let J=/<!--mh-up:[0-9a-z-]+-->/,$=Z.split(`
|
|
193
|
+
`),Q=$.filter((X)=>!J.test(X));return Q.length===$.length?Z:Q.join(`
|
|
194
|
+
`)}var d7=0;function YU(){d7++}function GU(){d7=Math.max(0,d7-1)}if(typeof window<"u"&&typeof window.addEventListener==="function")window.addEventListener("beforeunload",(Z)=>{if(d7>0)Z.preventDefault()});var mM=0;function uM(){return`${Date.now().toString(36)}-${(mM++).toString(36)}-${Math.random().toString(36).slice(2,8)}`}function i7(Z){if(!Z)return[];let J=[];if(Z.items)for(let $=0;$<Z.items.length;$++){let Q=Z.items[$];if(Q&&Q.kind==="file"){let X=Q.getAsFile();if(X)J.push(X)}}if(!J.length&&Z.files)for(let $=0;$<Z.files.length;$++)J.push(Z.files[$]);return J}function pM(Z){return(Z||"文件").replace(/[\r\n]+/g," ").trim()||"文件"}function _3(Z,J){try{Z.dispatch(J)}catch{}}function cM(Z,J){try{return Z.state.field(a7,!1)?.find(($)=>$.token===J)??null}catch{return null}}function dM(Z,J){let $=n2[C$(Z.type)];if(Z.size>$){let Q=`${Z.name||"文件"} 超过 ${Math.round($/1024/1024)}MB 上限`;return Q0(Q),J?.(Q),!1}return!0}function v6(Z,J,$,Q){if($=$.filter((z)=>dM(z,Q)),!$.length)return;J=B3(Z.state,J);let X=$.map(()=>uM());_3(Z,{effects:$.map((z,K)=>N3.of({token:X[K],name:pM(z.name),pos:J}))}),$.forEach((z,K)=>{let Y=X[K],q=JQ(z.name||"文件");YU(),Z0.uploadDocBlob(z,(W,U)=>$Q(q,W,U)).then((W)=>{h1(q,!0);let U=cM(Z,Y);if(!U)return;let H=C$(z.type),F={id:`up-${Y}`,type:H,content:"",src:W.url,name:z.name||void 0,size:H==="file"?W.size:void 0},O=Z.state.doc.lineAt(B3(Z.state,U.pos)),N=O.text.trim()===""?{from:O.from,to:O.to,insert:u8(F)}:{from:O.to,to:O.to,insert:`
|
|
195
|
+
`+u8(F)};_3(Z,{changes:N,effects:l7.of(Y)})}).catch((W)=>{_3(Z,{effects:l7.of(Y)}),h1(q,!1,()=>{try{v6(Z,Z.state.doc.length,[z],Q)}catch{}}),Q?.(`上传失败:${W instanceof Error?W.message:String(W)}`)}).finally(()=>GU())})}function qU(Z,J,$,Q){let X=document.createElement("input");X.type="file",X.accept=$,X.multiple=!0,X.style.display="none",X.addEventListener("change",()=>{let z=X.files?Array.from(X.files):[];if(z.length)v6(Z,J,z,Q);X.remove()}),document.body.appendChild(X),X.click()}function WU(Z={}){return O0.domEventHandlers({paste(J,$){let Q=i7(J.clipboardData);if(Q.length)return J.preventDefault(),v6($,$.state.selection.main.head,Q,Z.onError),!0;let X=J.clipboardData?.getData("text/html");if(X){if(X.includes("data-mh-md")){let z=J.clipboardData?.getData("text/plain")??"";if(z)return J.preventDefault(),$.dispatch($.state.replaceSelection(z.replace(/\r\n?/g,`
|
|
196
|
+
`))),!0}return J.preventDefault(),$.dispatch($.state.replaceSelection(XU(X).replace(/\r\n?/g,`
|
|
197
|
+
`))),!0}return!1},drop(J,$){let Q=i7(J.dataTransfer);if(!Q.length)return!1;J.preventDefault();let X=$.posAtCoords({x:J.clientX,y:J.clientY})??$.state.selection.main.head;return v6($,X,Q,Z.onError),$.focus(),!0}})}var lM=/^[ \t]*[-*+][ \t]+\[[ xX]\]$/,UU=/^[ \t]*>$/,aM=/^[ \t]*(?:[-*+][ \t]+\[[ xX]\]|>)$/m;function iM(Z){let J=Array(Z.length).fill(!1);for(let $=0;$<Z.length;$++){let Q=Z[$].match(r0.fenceOpen);if(!Q)continue;let X=Q[1][0],z=Q[1].length,K=-1;for(let Y=$+1;Y<Z.length;Y++)if(hZ(Z[Y],X,z)){K=Y;break}if(K===-1)continue;for(let Y=$;Y<=K;Y++)J[Y]=!0;$=K}return J}function n7(Z){if(!aM.test(Z))return Z;let J=Z.split(`
|
|
198
|
+
`),$=iM(J),Q=(z)=>z>=0&&z<J.length&&!$[z]&&HZ(J[z].replace(/^[ \t]*/,""))!==null,X=!1;for(let z=0;z<J.length;z++){if($[z])continue;let K=J[z];if(lM.test(K))J[z]=K+" ",X=!0;else if(UU.test(K)&&(Q(z-1)||Q(z+1)))J[z]=K+" ",X=!0}for(let z=J.length-1;z>=0;z--){if($[z])continue;let K=J[z];if(UU.test(K)&&(Q(z-1)||Q(z+1)))J[z]=K+" ",X=!0}return X?J.join(`
|
|
199
|
+
`):Z}function B9(Z){return Z.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function F8(Z,J={}){let $=uZ(Z),Q="",X=0;for(let z of $){Q+=B9(Z.slice(X,z.start));let K=Z.slice(z.innerFrom,z.innerTo),Y=HU(z.url??"",J);switch(z.kind){case"code":Q+=`<code>${B9(K)}</code>`;break;case"strong":Q+=`<strong>${B9(K)}</strong>`;break;case"em":Q+=`<em>${B9(K)}</em>`;break;case"del":Q+=`<del>${B9(K)}</del>`;break;case"link":{let q=B9(W8(Y));Q+=`<a href="${q}" target="_blank" rel="noreferrer noopener">${B9(K)}</a>`;break}case"image":{let q=B9(W8(Y,{allowData:!0}));Q+=`<img src="${q}" alt="${B9(z.alt??"")}" loading="lazy">`;break}}X=z.end}return Q+B9(Z.slice(X))}function HU(Z,J){if(J.rewriteBlob&&Z.startsWith("/blob/"))return J.rewriteBlob(Z);return Z}function nM(Z,J){let $=HU(Z.src,J);if(Z.kind==="video")return`<p class="mh-media"><video src="${B9(W8($,{allowData:!0}))}" controls preload="metadata"></video></p>`;if(Z.kind==="audio")return`<p class="mh-media"><audio src="${B9(W8($,{allowData:!0}))}" controls preload="metadata"></audio></p>`;return`<p class="mh-file"><a href="${B9(W8($))}" download>${B9(Z.name||"file")}</a></p>`}function A3(Z,J={}){let Q=n7((Z??"").replace(/\r\n?/g,`
|
|
200
|
+
`)).split(`
|
|
201
|
+
`),X=[],z=0,K=[],Y=()=>{if(!K.length)return;X.push(`<p>${K.map((q)=>F8(q,J)).join("<br>")}</p>`),K=[]};while(z<Q.length){let q=Q[z],W=q.match(r0.fenceOpen);if(W){let O=W[1][0],N=W[1].length,_=-1;for(let A=z+1;A<Q.length;A++)if(hZ(Q[A],O,N)){_=A;break}if(_!==-1){Y();let A=fZ(W[2]??""),L=Q.slice(z+1,_);if(z=_+1,A===q8)X.push(`<iframe class="mh-embed" sandbox="allow-scripts allow-popups" srcdoc="${B9(L.join(`
|
|
202
|
+
`))}"></iframe>`);else{let B=A?` class="language-${B9(A)}"`:"";X.push(`<pre><code${B}>${B9(L.join(`
|
|
203
|
+
`))}</code></pre>`)}continue}}if(q.trim()===""){Y(),z++;continue}let U=d5(q).match(r0.h);if(U){Y();let O=U[1].length;X.push(`<h${O}>${F8(U[2].trim(),J)}</h${O}>`),z++;continue}if(r0.divider.test(q)){Y(),X.push("<hr>"),z++;continue}if(HZ(d5(q))!==null){Y();let O=[];while(z<Q.length){let N=HZ(d5(Q[z]));if(N===null)break;O.push(N),z++}X.push(`<blockquote>${A3(O.join(`
|
|
204
|
+
`),J)}</blockquote>`);continue}if(m8(Q,z,0)){Y();let O=[],N=gZ(d5(Q[z]));z+=2;while(z<Q.length&&Q[z].includes("|")&&Q[z].trim()!=="")O.push(gZ(d5(Q[z]))),z++;let _=N.map((L)=>`<th>${F8(L,J)}</th>`).join(""),A=O.map((L)=>`<tr>${L.map((B)=>`<td>${F8(B,J)}</td>`).join("")}</tr>`).join("");X.push(`<table><thead><tr>${_}</tr></thead><tbody>${A}</tbody></table>`);continue}let H=g8(q,0);if(H){Y();let O=H.type==="numbered",N=[];while(z<Q.length){let _=g8(Q[z],0);if(!_||_.type==="numbered"!==O)break;if(_.type==="todo")N.push(`<li class="todo"><input type="checkbox" disabled${_.checked?" checked":""}> ${F8(_.content,J)}</li>`);else if(_.type==="numbered"&&_.num!==void 0)N.push(`<li value="${_.num}">${F8(_.content,J)}</li>`);else N.push(`<li>${F8(_.content,J)}</li>`);z++}X.push(O?`<ol>${N.join("")}</ol>`:`<ul>${N.join("")}</ul>`);continue}let F=E5(q);if(F){Y(),X.push(F.kind==="image"?`<p class="mh-img">${F8(q.trim(),J)}</p>`:nM(F,J)),z++;continue}K.push(q),z++}return Y(),X.join(`
|
|
205
|
+
`)}function d5(Z){return y9(Z,Number.MAX_SAFE_INTEGER)}var sM="data-mh-md",rM=2097152,oM=8388608;function FU(Z){return Z.state.selection.ranges.filter(($)=>!$.empty).map(($)=>Z.state.sliceDoc($.from,$.to)).join(`
|
|
206
|
+
`)}function NU(Z,J){return`<div ${sM}="1">${A3(Z,{rewriteBlob:J})}</div>`}function BU(Z){return location.origin+Z}function tM(Z){return[...new Set([...Z.matchAll(/\/blob\/[0-9a-f]{16,64}[^\s)?]*/g)].map((J)=>J[0]))]}function eM(Z){let J=/^!\[[^\]]*\]\((\/blob\/[^\s)]+?)(?:\?[^\s)]*)?\)$/.exec(Z.trim());return J?J[1]:null}function ZI(Z){return new Promise((J,$)=>{let Q=new FileReader;Q.onload=()=>J(Q.result),Q.onerror=()=>$(Q.error),Q.readAsDataURL(Z)})}var JI=/\.(png|jpe?g|webp|gif|bmp|avif)$/i;async function $I(Z){if(Z.type==="image/png")return Z;let J=await createImageBitmap(Z),$=document.createElement("canvas");return $.width=J.width,$.height=J.height,$.getContext("2d").drawImage(J,0,0),await new Promise((Q)=>$.toBlob(Q,"image/png"))}async function QI(Z,J){let $=new Map;if(await Promise.all(J.map(async(q)=>{try{let W=await fetch(q);if(!W.ok)return;let U=await W.blob();if(U.size<=rM)$.set(q,U)}catch{}})),!$.size)return;let Q=new Map,X=0;for(let[q,W]of $){if(X+W.size>oM)continue;X+=W.size,Q.set(q,await ZI(W))}let z=(q)=>Q.get(q.split("?")[0])??BU(q),K={"text/plain":new Blob([Z],{type:"text/plain"}),"text/html":new Blob([NU(Z,z)],{type:"text/html"})},Y=eM(Z);if(Y&&JI.test(Y)){let q=$.get(Y);if(q)try{let W=await $I(q);if(W)delete K["text/html"],K["image/png"]=W}catch{}}await navigator.clipboard.write([new ClipboardItem(K)])}function OU(Z,J){Z.clipboardData?.setData("text/plain",J),Z.clipboardData?.setData("text/html",NU(J,BU)),Z.preventDefault();let $=tM(J);if($.length&&typeof ClipboardItem<"u"&&typeof navigator.clipboard?.write==="function")QI(J,$).catch(()=>{})}function _U(){return O0.domEventHandlers({copy(Z,J){let $=FU(J);if(!$)return!1;return OU(Z,$),!0},cut(Z,J){let $=FU(J);if(!$||J.state.readOnly)return!1;return OU(Z,$),J.dispatch(J.state.replaceSelection(""),{userEvent:"delete.cut",scrollIntoView:!0}),!0}})}var L3=h0.define(),P3=t0.define({create:()=>null,update(Z,J){if(Z&&J.docChanged)Z={...Z,pos:J.changes.mapPos(Z.pos,1)};for(let $ of J.effects)if($.is(L3))Z=$.value;return Z}});function AU(Z){return Z.field(P3,!1)??null}var XI=[{cmd:"bold",icon:"bold",title:"加粗"},{cmd:"italic",icon:"italic",title:"斜体"},{cmd:"strike",icon:"strike",title:"删除线"},{cmd:"code",icon:"code",title:"行内代码"},{cmd:"link",icon:"link",title:"链接"}],zI={bold:"**",italic:"*",code:"`",strike:"~~"},KI={bold:"strong",italic:"em",code:"code",strike:"del"};function YI(Z,J,$){return I0(Z.state).voids.some((Q)=>J>=Q.from&&$<=Q.to)}function LU(){return e0.fromClass(class{view;el=null;raf=0;dragging=!1;onPointerDown=(Z)=>{if(Z.button!==0)return;this.dragging=!0,this.hide()};onPointerUp=()=>{if(this.dragging=!1,!this.view.state.selection.main.empty)this.schedule()};onKeyUp=(Z)=>{if(this.view.composing)return;if(Z.shiftKey||Z.key.startsWith("Arrow"))this.schedule()};constructor(Z){this.view=Z;Z.contentDOM.addEventListener("pointerdown",this.onPointerDown),window.addEventListener("pointerup",this.onPointerUp),window.addEventListener("pointercancel",this.onPointerUp),Z.dom.addEventListener("keyup",this.onKeyUp)}schedule(){if(this.raf)return;this.raf=cZ(()=>{this.raf=0,this.paint()})}update(Z){let J=Z.selectionSet&&Z.state.selection.main.empty;if(Z.docChanged||J||Z.focusChanged&&!this.view.hasFocus){if(this.raf)X3(this.raf),this.raf=0;this.hide();return}if(this.el&&(Z.viewportChanged||Z.geometryChanged))this.schedule()}destroy(){if(this.view.contentDOM.removeEventListener("pointerdown",this.onPointerDown),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("pointercancel",this.onPointerUp),this.view.dom.removeEventListener("keyup",this.onKeyUp),this.raf)X3(this.raf);this.hide()}async apply(Z){let J=this.view;if(Z==="link"){let Q=(await NZ({title:"插入链接",label:"链接地址",placeholder:"https://…"}))?.trim();if(!Q){J.focus();return}let X=J.state.changeByRange((z)=>{let K=J.state.sliceDoc(z.from,z.to),Y=`[${K}](${Q})`;return{changes:{from:z.from,to:z.to,insert:Y},range:$0.range(z.from+1,z.from+1+K.length)}});J.dispatch(X,{userEvent:"input.format",scrollIntoView:!0}),J.focus();return}let $=J.state.changeByRange((Q)=>{let X=J.state.doc.lineAt(Q.from);if(Q.to<=X.to){let q=uZ(X.text).find((W)=>W.kind===KI[Z]&&(X.from+W.innerFrom<=Q.from&&Q.to<=X.from+W.innerTo||X.from+W.start===Q.from&&X.from+W.end===Q.to));if(q){let W=X.text.slice(q.innerFrom,q.innerTo);return{changes:{from:X.from+q.start,to:X.from+q.end,insert:W},range:$0.range(X.from+q.start,X.from+q.start+W.length)}}}let z=J.state.sliceDoc(Q.from,Q.to),K=zI[Z],Y=`${K}${z}${K}`;return{changes:{from:Q.from,to:Q.to,insert:Y},range:$0.range(Q.from+K.length,Q.from+K.length+z.length)}});J.dispatch($,{userEvent:"input.format",scrollIntoView:!0}),J.focus()}paint(){let Z=this.view,J=Z.state.selection.main;if(this.dragging||J.empty||!Z.hasFocus||YI(Z,J.from,J.to))return this.hide();let $=Math.min(J.from,J.to),Q=Z.coordsAtPos($,1);if(!Q)return this.hide();if(!this.el){let z=document.createElement("div");z.className="pop cm-format-bar",z.style.zIndex="95",z.addEventListener("mousedown",(K)=>K.preventDefault()),document.body.appendChild(z),this.el=z}let X=this.el;g0(G(t,{children:XI.map((z)=>G("button",{class:"item",style:{width:"34px",justifyContent:"center",padding:"7px 0"},title:z.title,onMouseDown:(K)=>{K.preventDefault(),this.apply(z.cmd)},children:G(g,{name:z.icon,cls:"ico sm"},void 0,!1,void 0,this)},z.cmd,!1,void 0,this))},void 0,!1,void 0,this),X),X.style.display="flex",X.style.gap="1px",X.style.padding="3px",X.style.minWidth="0",X.style.left=`${Math.max(8,Math.min(Q.left,innerWidth-X.offsetWidth-8))}px`,X.style.top=`${Math.max(8,Q.top-X.offsetHeight-6)}px`,X.style.bottom=""}hide(){if(this.el)g0(null,this.el),this.el.remove(),this.el=null}})}function PU(Z){return I0(Z.state).headings.map((J)=>({from:J.from,level:J.level,text:b6(J.text).trim()||"无标题"}))}var MU=(Z)=>Z.map((J)=>`${J.from}:${J.level}:${J.text}`).join(`
|
|
207
|
+
`);class IU{view;host;headings;raw;key;active=0;raf=0;destroyed=!1;constructor(Z){this.view=Z;this.host=document.createElement("nav"),this.host.className="doc-toc",this.host.setAttribute("aria-label","文档目录"),Z.dom.appendChild(this.host),this.raw=I0(Z.state).headings,this.headings=PU(Z),this.key=MU(this.headings),this.draw(),window.addEventListener("scroll",this.onScroll,{capture:!0,passive:!0}),cZ(()=>this.recompute())}update(Z){if(Z.docChanged){let J=I0(Z.view.state).headings;if(J!==this.raw){this.raw=J;let $=PU(Z.view),Q=MU($);if(Q!==this.key){if(this.key=Q,this.headings=$,this.active>=$.length)this.active=Math.max(0,$.length-1);this.draw()}}this.schedule()}else if(Z.viewportChanged||Z.geometryChanged)this.schedule()}destroy(){if(this.destroyed=!0,this.raf)cancelAnimationFrame(this.raf);window.removeEventListener("scroll",this.onScroll,{capture:!0}),g0(null,this.host),this.host.remove()}onScroll=()=>this.schedule();schedule(){if(this.raf)return;this.raf=cZ(()=>{this.raf=0,this.recompute()})}recompute(){if(this.destroyed||!this.headings.length)return;let Z=Math.max(this.view.scrollDOM.getBoundingClientRect().top,0)+100,J=this.view.viewport,$=0;for(let Q=0;Q<this.headings.length;Q++){let X=this.headings[Q].from,z=this.view.coordsAtPos(X);if(!z){if(X<J.from){$=Q;continue}break}if(z.top-Z<=1)$=Q;else break}if($!==this.active)this.active=$,this.draw()}jump=(Z)=>{this.view.dispatch({selection:{anchor:Z},effects:O0.scrollIntoView(Z,{y:"start"})}),this.view.focus()};draw(){g0(G(t,{children:this.headings.map((Z,J)=>G("button",{type:"button",class:`toc-row lvl-${Z.level}${J===this.active?" active":""}`,title:Z.text,onMouseDown:($)=>$.preventDefault(),onClick:()=>this.jump(Z.from),children:[G("span",{class:"toc-tick"},void 0,!1,void 0,this),G("span",{class:"toc-label",children:Z.text},void 0,!1,void 0,this)]},Z.from,!0,void 0,this))},void 0,!1,void 0,this),this.host)}}function RU(){return e0.fromClass(IU)}var M3="mh-word-count",r7="mh-word-count-change";function l5(){return localStorage.getItem(M3)!=="0"}function VU(Z){if(Z)localStorage.removeItem(M3);else localStorage.setItem(M3,"0");window.dispatchEvent(new CustomEvent(r7))}var CU=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/gu,GI=/[\p{L}\p{N}]+(?:['’-][\p{L}\p{N}]+)*/gu;function s7(Z,J){let $=Z.match(CU);J.cjk+=$?$.length:0;let Q=Z.replace(CU," ").match(GI);J.words+=Q?Q.length:0;for(let X of Z)if(!/\s/u.test(X))J.chars++}function yU(Z){let J=Z.cjk+Z.words,$=J===0?0:Math.max(1,Math.ceil(Z.cjk/400+Z.words/200));return{zi:J,chars:Z.chars,minutes:$}}function kU(Z){let J={cjk:0,words:0,chars:0};for(let $ of Z.lines){if($.role==="void"||$.role==="blank"||$.role==="divider")continue;let Q=$.text.slice($.contentFrom-$.from);if(Q)s7(b6(Q),J)}for(let $ of Z.voids)if($.kind==="code")s7($.block.content,J);else if($.kind==="table")for(let Q of $.block.rows??[])for(let X of Q)s7(b6(X),J);return yU(J)}function TU(Z){let J={cjk:0,words:0,chars:0};return s7(b6(Z),J),yU(J)}var qI=200;class jU{view;host;enabled;stats={zi:0,chars:0,minutes:0};timer=0;constructor(Z){this.view=Z;if(this.host=document.createElement("div"),this.host.className="doc-wc",Z.dom.appendChild(this.host),this.enabled=l5(),this.host.style.display=this.enabled?"":"none",this.enabled)this.recount();window.addEventListener(r7,this.onPref),window.addEventListener("storage",this.onStorage)}update(Z){if(!this.enabled)return;if(Z.docChanged)this.schedule();else if(Z.selectionSet)this.draw()}destroy(){if(this.timer)clearTimeout(this.timer);window.removeEventListener(r7,this.onPref),window.removeEventListener("storage",this.onStorage),g0(null,this.host),this.host.remove()}schedule(){if(this.timer)clearTimeout(this.timer);this.timer=window.setTimeout(()=>{this.timer=0,this.recount()},qI)}recount(){this.stats=kU(I0(this.view.state)),this.draw()}onStorage=(Z)=>{if(Z.key==="mh-word-count"||Z.key===null)this.onPref()};onPref=()=>{let Z=l5();if(Z===this.enabled)return;if(this.enabled=Z,this.host.style.display=Z?"":"none",Z)this.recount();else g0(null,this.host)};draw(){let Z=this.view.state.selection.main;if(!Z.empty){let X=TU(this.view.state.sliceDoc(Z.from,Z.to));this.render(`已选 ${X.zi.toLocaleString()} 字`,`${X.chars.toLocaleString()} 字符`,null,!0);return}let{zi:J,chars:$,minutes:Q}=this.stats;this.render(`${J.toLocaleString()} 字`,`${$.toLocaleString()} 字符`,Q>0?`约 ${Q} 分钟阅读`:null,!1)}render(Z,J,$,Q){this.host.classList.toggle("sel",Q),g0(G(t,{children:[G("span",{class:"doc-wc-num",children:Z},void 0,!1,void 0,this),G("div",{class:"doc-wc-detail",children:[G("span",{children:J},void 0,!1,void 0,this),$&&G("span",{children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),this.host)}}function DU(){return e0.fromClass(jU)}var WI={p:"",h1:"# ",h2:"## ",h3:"### ",quote:"> ",bullet:"- ",todo:"- [ ] "};function SU(Z){return Z.role==="divider"?Z.to:Z.contentFrom}function bU(Z,J){return Z.find(($)=>J>=$.fromLine&&J<=$.toLine)}function UI(Z,J,$){let Q=J.toLine-J.fromLine>=2?$(Z[J.fromLine].from,Z[J.toLine-2].to):"";return{from:J.from,to:J.to,insert:Q}}function HI(Z,J,$,Q,X,z){if(Q=Math.max(1,Q),X=Math.min(Z.length,X),X<Q)return null;if(z==="divider"){if(Q!==X)return null;let W=Z[Q-1];if(W.role==="void"||W.role==="divider")return null;return[{from:W.from,to:W.to,insert:"---"}]}if(z==="code")return FI(Z,J,$,Q,X);let K=[],Y=new Map,q=Q;while(q<=X){let W=Z[q-1];if(W.role==="blank"){q++;continue}if(W.role==="void"){let O=bU(J,q);if((O.kind==="code"||O.kind==="html")&&z==="p")K.push(UI(Z,O,$));q=O.toLine+1;continue}let U;if(z==="numbered"){let O=W.level;for(let A of[...Y.keys()])if(A>O)Y.delete(A);let N=Y.get(O),_=N!=null?N+1:R7(Z,q,O);Y.set(O,_),U=`${_}. `}else U=WI[z];let H=W.markerFrom,F=SU(W);if($(H,F)!==U)K.push({from:H,to:F,insert:U});q++}return K.length?K:null}function FI(Z,J,$,Q,X){let z=J.filter((A)=>A.fromLine<=X&&A.toLine>=Q);for(let A of z)if(A.kind!=="code"&&A.kind!=="html")return null;if(z.length===1&&z[0].fromLine<=Q&&z[0].toLine>=X)return null;for(let A of z)Q=Math.min(Q,A.fromLine),X=Math.max(X,A.toLine);let K=[],Y=[],q=1/0,W="",U=(A)=>{if(A.indentChars<q)q=A.indentChars,W=A.text.slice(0,A.indentChars)},H=Q;while(H<=X){let A=Z[H-1];if(A.role==="void"){let B=bU(J,H);if(B.toLine-B.fromLine>=2){let M=Z[B.fromLine-1],C=Z[B.toLine-1];K.push({from:M.from,to:M.to+1,insert:""}),K.push({from:C.from-1,to:C.to,insert:""});for(let R=B.fromLine+1;R<=B.toLine-1;R++){let I=Z[R-1];if(Y.push(I.text),I.text.trim()!=="")U(I)}}else K.push({from:B.from,to:B.to,insert:""}),Y.push("");H=B.toLine+1;continue}let L=SU(A);if(L>A.markerFrom)K.push({from:A.markerFrom,to:L,insert:""});if(Y.push(A.text.slice(0,A.indentChars)+A.text.slice(L-A.from)),A.role!=="blank")U(A);H++}if(!Number.isFinite(q))W="";let F=0;for(let A of Y)for(let L of A.matchAll(/`+/g))F=Math.max(F,L[0].length);let O="`".repeat(F>=3?F+1:3),N=Z[Q-1].from,_=Z[X-1].to;return K.push({from:N,to:N,insert:W+O+`
|
|
208
|
+
`}),K.push({from:_,to:_,insert:`
|
|
209
|
+
`+W+O}),K}function EU(Z,J,$,Q){let X=I0(Z.state),z=HI(X.lines,X.voids,(K,Y)=>Z.state.sliceDoc(K,Y),J,$,Q);if(!z)return!1;return Z.dispatch({changes:z,userEvent:"input.convert"}),!0}var xU=["p","h1","h2","h3","quote","bullet","numbered","todo","code"],wU=xU.map((Z)=>{let J=w5.find(($)=>$.type===Z);return{type:Z,ic:J.ic,t:J.t}});function OI(Z,J){let $=I0(Z.state),Q=$.lines[J-1];if(!Q)return null;if(Q.role==="void"){let X=$.voids.find((z)=>J>=z.fromLine&&J<=z.toLine);return X&&(X.kind==="code"||X.kind==="html")?"code":null}return xU.includes(Q.role)?Q.role:null}class vU{view;host;surface;line=0;raf=0;dropLine=null;constructor(Z){this.view=Z;this.host=document.createElement("div"),this.host.className="cm-gutter-layer",this.host.style.cssText="position:absolute;left:0;top:0;pointer-events:none;z-index:20",Z.dom.style.position||="relative",Z.dom.appendChild(this.host),this.surface=Z.dom.closest(".doc")??Z.dom,this.surface.addEventListener("mousemove",this.onMove),this.surface.addEventListener("mouseleave",this.onLeave)}update(Z){if(Z.docChanged||Z.geometryChanged||Z.viewportChanged)this.schedule()}destroy(){if(this.raf)cancelAnimationFrame(this.raf);this.surface.removeEventListener("mousemove",this.onMove),this.surface.removeEventListener("mouseleave",this.onLeave),g0(null,this.host),this.host.remove(),this.dropLine?.remove()}onLeave=()=>{if(this.line)this.line=0,this.schedule()};onMove=(Z)=>{let J=this.view.contentDOM.getBoundingClientRect();if(Z.clientY<J.top-4||Z.clientY>J.bottom+4){if(this.line)this.line=0,this.schedule();return}let $=Math.min(Math.max(Z.clientX,J.left+1),J.right-1),Q=this.view.posAtCoords({x:$,y:Z.clientY}),X=Q==null?0:this.view.state.doc.lineAt(Q).number;if(X!==this.line)this.line=X,this.schedule()};schedule(){if(this.raf)return;this.raf=cZ(()=>{this.raf=0,this.paint()})}insertBelow(Z){this.view.dispatch({changes:{from:Z.to,insert:`
|
|
210
|
+
`},selection:{anchor:Z.to+1},scrollIntoView:!0}),this.view.focus()}remove(Z){let J=this.view.state.doc.length,$=Z.to<J?Z.to+1:Z.to,Q=Z.to>=J&&Z.from>0?Z.from-1:Z.from;this.view.dispatch({changes:{from:Q,to:$,insert:""}})}menu(Z,J){let $=this.view,Q=I0($.state),X=Z3($),z=!!X&&X.fromLine<=J.fromLine&&X.toLine>=J.toLine&&X.toLine>X.fromLine,K=z?g7($,X.fromLine,X.toLine):J,Y=K.toLine-K.fromLine+1,q=z?K:m7($,J.fromLine),W=Q.voids.find((N)=>J.fromLine>=N.fromLine&&J.fromLine<=N.toLine),U=!!W&&(W.kind==="code"||W.kind==="html"),H=z||!W||U,F=!z&&U?wU.filter((N)=>N.type==="p"):wU,O=z?null:OI($,J.fromLine);b0(Z,(N)=>G(t,{children:[H&&G(t,{children:[G(i0,{children:z?`转换为(${Y} 行)`:"转换为"},void 0,!1,void 0,this),F.map((_)=>G(q0,{icon:_.ic,label:_.t,checked:O===_.type,onClick:()=>{EU($,K.fromLine,K.toLine,_.type),N()}},_.type,!1,void 0,this)),G(d0,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G(q0,{icon:"copy",label:z?"复制块组":"复制块",onClick:()=>{J3($,q),N()}},void 0,!1,void 0,this),G(q0,{icon:"trash",label:z?"删除块组":"删除块",danger:!0,onClick:()=>{this.remove(q),N()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))}showDrop(Z){if(!this.dropLine){let Q=document.createElement("div");Q.className="cm-drop-line",Q.style.cssText="position:absolute;height:2px;background:var(--accent);border-radius:1px;pointer-events:none;z-index:25",this.view.dom.appendChild(Q),this.dropLine=Q}let J=this.view.dom.getBoundingClientRect(),$=this.view.contentDOM.getBoundingClientRect();this.dropLine.style.left=`${$.left-J.left}px`,this.dropLine.style.width=`${$.width}px`,this.dropLine.style.top=`${Z-J.top-1}px`,this.dropLine.style.display=""}hideDrop(){if(this.dropLine)this.dropLine.style.display="none"}startDrag(Z,J){Z.preventDefault();let $=0,Q=!1,X=()=>{$=0,this.hideDrop()},z=(W)=>{let U=this.view.posAtCoords({x:W.clientX,y:W.clientY});if(U==null)return X();let H=this.view.state.doc.lineAt(U).number;if(H>=J.fromLine&&H<=J.toLine)return X();let F=H8(this.view,H),O=this.view.coordsAtPos(F.from),N=this.view.coordsAtPos(F.to);if(!O||!N)return X();Q=W.clientY<(O.top+N.bottom)/2,$=H,this.showDrop(Q?O.top:N.bottom)},K=(W)=>{window.removeEventListener("pointermove",z),window.removeEventListener("pointerup",Y),window.removeEventListener("pointercancel",q);let U=$,H=Q;if(X(),W&&U&&U<=this.view.state.doc.lines)this.reorder(J,U,H)},Y=()=>K(!0),q=()=>K(!1);window.addEventListener("pointermove",z),window.addEventListener("pointerup",Y),window.addEventListener("pointercancel",q)}reorder(Z,J,$){let Q=this.view.state.doc,X=this.view.state.sliceDoc(Z.from,Z.to),z=H8(this.view,J),K=[],Y=Z.to<Q.length?Z.to+1:Z.to,q=Z.to>=Q.length&&Z.from>0?Z.from-1:Z.from;K.push({from:q,to:Y,insert:""});let W=$?z.from:z.to;K.push({from:W,to:W,insert:$?X+`
|
|
211
|
+
`:`
|
|
212
|
+
`+X}),this.view.dispatch({changes:K,userEvent:"move.reorder"})}paint(){if(!this.line||this.line>this.view.state.doc.lines)return this.hide();let Z=H8(this.view,this.line),J=this.view.coordsAtPos(Z.from);if(!J)return this.hide();let $=this.view.dom.getBoundingClientRect(),Q=J.top-$.top;g0(G("div",{class:"cm-block-gutter",style:{position:"absolute",left:"-52px",top:`${Q}px`,display:"flex",gap:"2px",pointerEvents:"auto"},children:[G("button",{class:"cm-g-btn",title:"在下方插入",onMouseDown:(X)=>{X.preventDefault(),this.insertBelow(Z)},children:G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"cm-g-btn cm-g-grip",title:"拖动重排 / 点击菜单",onPointerDown:(X)=>this.startDrag(X,m7(this.view,this.line)),onClick:(X)=>this.menu(X,Z),children:G(g,{name:"grip",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),this.host)}hide(){g0(null,this.host)}}function hU(){return e0.fromClass(vU)}function gU(){return typeof CSS<"u"&&!!CSS.highlights&&typeof globalThis.Highlight==="function"}function o7(Z){return/[A-Za-z0-9_]/.test(Z)}function NI(Z,J,$){let Q=Z[J]??"",X=Z[$-1]??"",z=J>0?Z[J-1]:"",K=$<Z.length?Z[$]:"",Y=!o7(Q)||!o7(z),q=!o7(X)||!o7(K);return Y&&q}function t7(Z,J,$){let Q=[];if(!J)return Q;let X=$.caseSensitive?Z:Z.toLowerCase(),z=$.caseSensitive?J:J.toLowerCase(),K=0;for(;;){let Y=X.indexOf(z,K);if(Y<0)break;let q=Y+z.length;if(!$.wholeWord||NI(Z,Y,q))Q.push([Y,q]);K=q>Y?q:Y+1}return Q}function fU(Z,J,$){for(let Q=Z.length-1;Q>=0;Q--)if($>=J[Q])return{node:Z[Q],offset:$-J[Q]};return null}function mU(Z,J,$){let Q=[];if(!J)return Q;let X=Array.from(Z.querySelectorAll(".doc-title, .editable, .doc-td, pre.code-hl > code.hljs"));for(let z of X){let K=[],Y=document.createTreeWalker(z,NodeFilter.SHOW_TEXT),q;while(q=Y.nextNode())K.push(q);if(!K.length)continue;let W="",U=[];for(let H of K)U.push(W.length),W+=H.data;for(let[H,F]of t7(W,J,$)){let O=fU(K,U,H),N=fU(K,U,F);if(!O||!N)continue;let _=document.createRange();_.setStart(O.node,O.offset),_.setEnd(N.node,N.offset),Q.push(_)}}return Q}function uU(Z,J){if(!gU())return;let $=globalThis.Highlight,Q=CSS.highlights;if(Z.length)Q.set("mh-find-all",new $(...Z));else Q.delete("mh-find-all");if(J){let X=new $(J);X.priority=1,Q.set("mh-find-current",X)}else Q.delete("mh-find-current")}function I3(){if(!gU())return;let Z=CSS.highlights;Z.delete("mh-find-all"),Z.delete("mh-find-current")}var BI=L0.mark({class:"cm-find"}),_I=L0.mark({class:"cm-find cm-find-cur"}),cU=h0.define(),y3=h0.define(),e7=h0.define(),C3=h0.define();function pU(Z,J,$,Q){let X=J?t7(Z,J,$):[];return V3(J,$,Q,X)}function V3(Z,J,$,Q){if($>=Q.length)$=0;let X=Q.map(([z,K],Y)=>(Y===$?_I:BI).range(z,K));return{term:Z,opts:J,idx:$,matches:Q,deco:L0.set(X,!0)}}function AI(Z,J){let{term:$,opts:Q}=Z;if(!$)return V3($,Q,Z.idx,[]);let X=1/0,z=-1;if(J.changes.iterChanges((_,A,L,B)=>{if(L<X)X=L;if(B>z)z=B}),z<0)return Z;let K=J.state.doc,Y=X-1,q=z+1,W=[];for(let[_,A]of Z.matches){let L=J.changes.mapPos(_,1),B=J.changes.mapPos(A,-1);if(B-L!==A-_)continue;if(L<=q&&B>=Y)continue;W.push([L,B])}let U=Math.max(0,X-$.length-2),H=Math.min(K.length,z+$.length+2),F=K.sliceString(U,H);for(let[_,A]of t7(F,$,Q)){let L=U+_,B=U+A;if(Q.wholeWord&&(L===U&&U>0||B===H&&H<K.length))continue;if(L<=q&&B>=Y)W.push([L,B])}W.sort((_,A)=>_[0]-A[0]);let O=Z.matches[Z.idx],N=Z.idx;if(O){let _=J.changes.mapPos(O[0],1),A=J.changes.mapPos(O[1],-1),L=W.findIndex(([B,M])=>B===_&&M===A);N=L>=0?L:Math.min(Z.idx,Math.max(0,W.length-1))}return V3($,Q,N,W)}var a5=t0.define({create:()=>null,update(Z,J){for(let $ of J.effects){if($.is(y3))return null;if($.is(cU))Z??={term:"",opts:{caseSensitive:!1,wholeWord:!1},idx:0,matches:[],deco:L0.none};if($.is(e7)&&Z)Z=pU(J.state.doc.toString(),$.value.term??Z.term,$.value.opts??Z.opts,0);if($.is(C3)&&Z&&Z.matches.length){let Q=(Z.idx+$.value+Z.matches.length)%Z.matches.length;Z=pU(J.state.doc.toString(),Z.term,Z.opts,Q)}}if(Z&&J.docChanged&&!J.effects.some(($)=>$.is(e7)||$.is(C3)))Z=AI(Z,J);return Z},provide:(Z)=>O0.decorations.from(Z,(J)=>J?.deco??L0.none)});function R3(Z){let J=Z.state.field(a5),$=J?.matches[J.idx];if($)Z.dispatch({effects:O0.scrollIntoView($[0],{y:"center"})})}var LI=e0.fromClass(class{view;bar=null;last=null;islandRaf=0;constructor(Z){this.view=Z}update(Z){let J=Z.state.field(a5);if(J?.term&&(J!==this.last||Z.docChanged||Z.viewportChanged||Z.geometryChanged))this.scheduleIslands(J);else if(!J?.term&&this.last?.term)this.scheduleIslands(null);if(J===this.last)return;if(this.last=J,J)this.draw(J);else this.hide()}destroy(){if(this.hide(),this.islandRaf)cancelAnimationFrame(this.islandRaf);I3()}scheduleIslands(Z){if(this.islandRaf)cancelAnimationFrame(this.islandRaf);this.islandRaf=requestAnimationFrame(()=>{if(this.islandRaf=0,!Z?.term)return I3();uU(mU(this.view.contentDOM,Z.term,Z.opts),null)})}draw(Z){let J=this.view,$=!this.bar;if(!this.bar){let K=document.createElement("div");K.className="find-bar",K.setAttribute("role","search"),K.addEventListener("mousedown",(Y)=>{if(Y.target.tagName!=="INPUT")Y.preventDefault()}),document.body.appendChild(K),this.bar=K}let Q=(K)=>{J.dispatch({effects:C3.of(K)}),R3(J)},X=(K)=>{let Y=J.state.field(a5);if(!Y)return;J.dispatch({effects:e7.of({opts:{...Y.opts,[K]:!Y.opts[K]}})}),R3(J)},z=()=>{J.dispatch({effects:y3.of(null)}),J.focus()};if(g0(G(t,{children:[G(g,{name:"search",cls:"ico sm find-ico"},void 0,!1,void 0,this),G("input",{type:"text",placeholder:"在文档中查找",value:Z.term,onInput:(K)=>{J.dispatch({effects:e7.of({term:K.currentTarget.value})}),R3(J)},onKeyDown:(K)=>{if(K.key==="Enter")c8(K),Q(K.shiftKey?-1:1);else if(K.key==="Escape")c8(K),z()}},void 0,!1,void 0,this),G("span",{class:"find-count",children:Z.matches.length?`${Z.idx+1} / ${Z.matches.length}`:Z.term?"无结果":""},void 0,!1,void 0,this),G("button",{class:"find-opt"+(Z.opts.caseSensitive?" on":""),title:"区分大小写",onClick:()=>X("caseSensitive"),children:"Aa"},void 0,!1,void 0,this),G("button",{class:"find-opt"+(Z.opts.wholeWord?" on":""),title:"全词匹配",onClick:()=>X("wholeWord"),children:"全词"},void 0,!1,void 0,this),G("button",{class:"find-nav",title:"上一个 (Shift+Enter)",disabled:!Z.matches.length,onClick:()=>Q(-1),children:G(g,{name:"chevronDown",cls:"ico sm find-prev"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"find-nav",title:"下一个 (Enter)",disabled:!Z.matches.length,onClick:()=>Q(1),children:G(g,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"find-nav find-close",title:"关闭 (Esc)",onClick:z,children:G(g,{name:"x",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),this.bar),$)requestAnimationFrame(()=>this.bar?.querySelector("input")?.focus())}hide(){if(this.bar)g0(null,this.bar),this.bar.remove(),this.bar=null}});function k3(Z){Z.dispatch({effects:cU.of(null)}),requestAnimationFrame(()=>document.querySelector(".find-bar input")?.focus())}function dU(){return[a5,LI,$8.of([{key:"Mod-f",run:(Z)=>{return k3(Z),!0}},{key:"Escape",run:(Z)=>{if(!Z.state.field(a5))return!1;return Z.dispatch({effects:y3.of(null)}),!0}}])]}var PI=(Z)=>Z==="image"?"image/*":Z==="video"?"video/*":Z==="audio"?"audio/*":"*/*",lU=(Z)=>n7(KU(Z.replace(/\r\n?/g,`
|
|
213
|
+
`)));function MI(Z,J){let $=y7(Z.state.doc.toString(),J);if($)Z.dispatch({changes:$})}function aU(Z){let J=G0(null),$=G0(null),Q=G0(Z.onChange),X=G0(Z.onExitTop),z=G0(Z.onError),K=G0(Z.onPreviewImage);return Q.current=Z.onChange,X.current=Z.onExitTop,z.current=Z.onError,K.current=Z.onPreviewImage,J0(()=>{let Y=J.current;if(!Y)return;let q={onExitTop:()=>X.current?.()},W=new O0({parent:Y,state:x0.create({doc:lU(Z.initialDoc),extensions:[...xW(q),RU(),DU(),hU(),LU(),dU(),mW({onUpload:(H,F,O)=>qU(F,O,PI(H),(N)=>z.current?.(N))}),WU({onError:(H)=>z.current?.(H)}),_U(),a7,P3,i$.of({onPreviewImage:(H)=>K.current?.(H)}),O0.updateListener.of((H)=>{if(H.docChanged)Q.current?.()})]})});if($.current=W,Z.source)W.dispatch({effects:p7.reconfigure(Q3())});let U={getDoc:()=>W.state.doc.toString(),setDoc:(H)=>MI(W,lU(H)),focus:()=>W.focus(),setSource:(H)=>W.dispatch({effects:p7.reconfigure(H?Q3():$3(q))}),get view(){return W}};return Z.onReady?.(U),()=>{W.destroy(),$.current=null}},[]),G("div",{ref:J,class:"cm-doc-body"},void 0,!1,void 0,this)}function II(Z){let J=Z.doc;if(J.line(J.lines).length===0)return{selection:{anchor:J.length},scrollIntoView:!0};return{changes:{from:J.length,insert:`
|
|
214
|
+
`},selection:{anchor:J.length+1},userEvent:"input",scrollIntoView:!0}}function iU(Z,J){if(J.button!==0)return!1;if(J.target!==J.currentTarget)return!1;if(J.clientY<=Z.dom.getBoundingClientRect().bottom)return!1;return J.preventDefault(),Z.dispatch(II(Z.state)),Z.focus(),!0}var nU=["#ef4444","#f59e0b","#22c55e","#3b82f6","#111827","#ffffff"],T3=3,Z1=20,sU=1.3,rU=(Z)=>`600 ${Z}px system-ui, -apple-system, sans-serif`,RI=[{id:"rect",icon:"annotRect",label:"矩形框选"},{id:"arrow",icon:"annotArrow",label:"箭头"},{id:"text",icon:"annotText",label:"文字"}];function j3(Z,J,$){if(Z.strokeStyle=J.color,Z.fillStyle=J.color,Z.lineWidth=T3*$,Z.lineJoin="round",Z.lineCap="round",J.tool==="rect"){let Q=Math.min(J.x1,J.x2)*$,X=Math.min(J.y1,J.y2)*$;Z.strokeRect(Q,X,Math.abs(J.x2-J.x1)*$,Math.abs(J.y2-J.y1)*$)}else if(J.tool==="arrow"){let Q=J.x1*$,X=J.y1*$,z=J.x2*$,K=J.y2*$,Y=Math.atan2(K-X,z-Q),q=Math.hypot(z-Q,K-X),W=Math.min(Math.max(13,T3*$*4.5),Math.max(q,1)),U=z-W*0.7*Math.cos(Y),H=K-W*0.7*Math.sin(Y);Z.beginPath(),Z.moveTo(Q,X),Z.lineTo(U,H),Z.stroke(),Z.beginPath(),Z.moveTo(z,K),Z.lineTo(z-W*Math.cos(Y-Math.PI/6),K-W*Math.sin(Y-Math.PI/6)),Z.lineTo(z-W*0.78*Math.cos(Y),K-W*0.78*Math.sin(Y)),Z.lineTo(z-W*Math.cos(Y+Math.PI/6),K-W*Math.sin(Y+Math.PI/6)),Z.closePath(),Z.fill()}else if(J.tool==="text"&&J.text){Z.font=rU(Z1*$),Z.textBaseline="top",Z.lineWidth=Math.max(2,T3*$),Z.strokeStyle="rgba(0,0,0,.55)";let Q=Z1*sU*$;J.text.split(`
|
|
215
|
+
`).forEach((X,z)=>{Z.strokeText(X,J.x1*$,J.y1*$+z*Q),Z.fillText(X,J.x1*$,J.y1*$+z*Q)})}}function oU({src:Z,name:J,draggableBar:$,onCancel:Q,onClose:X,onSave:z}){let K=G0(null),Y=G0(null),q=G0(null),[W,U]=b("rect"),[H,F]=b(nU[0]),[O,N]=b([]),[_,A]=b([]),[L,B]=b(null),[M,C]=b(!1),R=G0(null),I=G0(!1),P=G0(null),V=(E)=>{P.current=E,B(E)},y=G0([]);y.current=O;let k=()=>{let E=K.current,p=Y.current;if(!E||!p)return;let X0=window.devicePixelRatio||1;p.width=Math.round(E.clientWidth*X0),p.height=Math.round(E.clientHeight*X0),j()},j=()=>{let E=Y.current;if(!E)return;let p=E.getContext("2d");if(!p)return;let X0=window.devicePixelRatio||1;p.setTransform(1,0,0,1,0,0),p.clearRect(0,0,E.width,E.height),p.setTransform(X0,0,0,X0,0,0);let F0=P.current?.editIndex;if(y.current.forEach((j0,C0)=>{if(C0!==F0)j3(p,j0,1)}),R.current)j3(p,R.current,1)};J0(j,[O,L]),J0(()=>{let E=()=>k();return window.addEventListener("resize",E),()=>window.removeEventListener("resize",E)},[]);let w=(E)=>{let p=Y.current.getBoundingClientRect();return{x:E.clientX-p.left,y:E.clientY-p.top}},u=(E)=>{N((p)=>[...p,E]),A([])},l=()=>{if(P.current||!O.length)return;A((E)=>[...E,O[O.length-1]]),N(O.slice(0,-1))},v=()=>{if(P.current||!_.length)return;N([...O,_[_.length-1]]),A(_.slice(0,-1))},S=(E,p)=>{E.font=rU(Z1);let X0=0,F0=p.split(`
|
|
216
|
+
`);for(let j0 of F0)X0=Math.max(X0,E.measureText(j0).width);return{w:X0,h:F0.length*Z1*sU}},D=(E)=>{let p=Y.current?.getContext("2d");if(!p)return-1;for(let X0=O.length-1;X0>=0;X0--){let F0=O[X0];if(F0.tool!=="text"||!F0.text)continue;let{w:j0,h:C0}=S(p,F0.text);if(E.x>=F0.x1-4&&E.x<=F0.x1+j0+4&&E.y>=F0.y1-4&&E.y<=F0.y1+C0+4)return X0}return-1},x=()=>{let E=q.current;if(!E)return;let p=Y.current?.getContext("2d"),X0=p?S(p,E.value).w:0;E.style.width=`${Math.ceil(Math.max(60,X0+14))}px`,E.style.height="0px",E.style.height=`${E.scrollHeight}px`},T=(E)=>{let p=P.current;if(!p)return O;let X0=E?q.current?.value??"":"";V(null);let F0=X0.replace(/\s+$/,""),j0=O;if(p.editIndex!=null){let C0=O[p.editIndex];if(C0){if(!F0.trim())j0=O.filter((p0,w0)=>w0!==p.editIndex);else if(F0!==C0.text||H!==C0.color)j0=[...O],j0[p.editIndex]={...C0,text:F0,color:H}}}else if(F0.trim())j0=[...O,{tool:"text",x1:p.x,y1:p.y,x2:p.x,y2:p.y,color:H,text:F0}];if(j0!==O)N(j0),A([]);return j0};J0(()=>{let E=q.current;if(!E||!L)return;E.value=L.initial,x(),E.focus(),E.setSelectionRange(E.value.length,E.value.length)},[L]),J0(()=>{let E=(p)=>{if(p.key==="Escape"){if(p.preventDefault(),p.stopImmediatePropagation(),P.current)T(!1);else Q();return}if((p.metaKey||p.ctrlKey)&&(p.key==="z"||p.key==="Z"||p.key==="y")){if(P.current&&p.target===q.current)return;if(p.preventDefault(),p.stopImmediatePropagation(),p.key==="y"||p.shiftKey)v();else l()}};return document.addEventListener("keydown",E,!0),()=>document.removeEventListener("keydown",E,!0)},[O,_,L,H,Q]);let m=(E)=>{if(E.button!==0)return;if(P.current)return;E.preventDefault();let p=w(E);if(W==="text"){let X0=D(p);if(X0>=0){let F0=O[X0];F(F0.color),V({x:F0.x1,y:F0.y1,editIndex:X0,initial:F0.text??""})}else V({x:p.x,y:p.y,editIndex:null,initial:""});return}Y.current?.setPointerCapture(E.pointerId),I.current=!0,R.current={tool:W,x1:p.x,y1:p.y,x2:p.x,y2:p.y,color:H},j()},a=(E)=>{if(!I.current||!R.current)return;let p=w(E);R.current={...R.current,x2:p.x,y2:p.y},j()},h=()=>{if(!I.current)return;I.current=!1;let E=R.current;if(R.current=null,E&&(Math.abs(E.x2-E.x1)>3||Math.abs(E.y2-E.y1)>3))u(E);else j()},s=()=>{let E=K.current;if(!E)return;let p=T(!0);C(!0);let X0=document.createElement("canvas");X0.width=E.naturalWidth||E.clientWidth,X0.height=E.naturalHeight||E.clientHeight;let F0=X0.getContext("2d");if(!F0){C(!1);return}F0.drawImage(E,0,0,X0.width,X0.height);let j0=X0.width/(E.clientWidth||1);for(let C0 of p)j3(F0,C0,j0);X0.toBlob((C0)=>{if(C(!1),C0)z(C0)},"image/png")};return G("div",{class:"annot",onMouseDown:(E)=>E.stopPropagation(),children:[G("div",{class:"lightbox-toolbar annot-bar"+($?" app-drag":""),children:[J&&G("span",{class:"lightbox-name",title:J,children:J},void 0,!1,void 0,this),G("span",{class:"lightbox-spacer"},void 0,!1,void 0,this),G("div",{class:"annot-seg",role:"group",children:RI.map((E)=>G("button",{class:"annot-seg-btn"+(W===E.id?" on":""),title:E.label,onClick:()=>U(E.id),children:G(g,{name:E.icon},void 0,!1,void 0,this)},E.id,!1,void 0,this))},void 0,!1,void 0,this),G("span",{class:"annot-div"},void 0,!1,void 0,this),G("div",{class:"annot-colors",children:nU.map((E)=>G("button",{class:"annot-swatch"+(E===H?" on":""),style:{background:E},title:E,onMouseDown:(p)=>p.preventDefault(),onClick:()=>F(E)},E,!1,void 0,this))},void 0,!1,void 0,this),G("span",{class:"annot-div"},void 0,!1,void 0,this),G("button",{class:"annot-icon-btn",title:"撤销 (⌘Z)",disabled:!O.length||!!L,onClick:l,children:G(g,{name:"undo"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"annot-icon-btn",title:"重做 (⇧⌘Z)",disabled:!_.length||!!L,onClick:v,children:G(g,{name:"redo"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"annot-actions",children:[G("button",{class:"btn btn-secondary",onClick:Q,children:"取消"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",disabled:M,onClick:s,children:M?"保存中…":"保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X&&G("button",{title:"关闭",onClick:X,children:G(g,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"annot-stage",children:G("div",{class:"annot-img-wrap",children:[G("img",{ref:K,src:Z,alt:"",draggable:!1,onLoad:k},void 0,!1,void 0,this),G("canvas",{ref:Y,class:"annot-canvas tool-"+W,onPointerDown:(E)=>m(E),onPointerMove:(E)=>a(E),onPointerUp:h,onPointerCancel:h},void 0,!1,void 0,this),L&&G("textarea",{ref:q,class:"annot-text-input",style:{left:`${L.x-4}px`,top:`${L.y-5}px`,color:H},spellcheck:!1,rows:1,onInput:x,onBlur:()=>T(!0),onKeyDown:(E)=>{if(E.key==="Enter"&&!E.shiftKey)E.preventDefault(),T(!0);E.stopPropagation()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var D3=0.2,S3=8;function b3({src:Z,name:J,onClose:$,onReplace:Q,draggableBar:X}){let[z,K]=b(1),[Y,q]=b(0),[W,U]=b(0),[H,F]=b(!1),O=G0(null),N=G0(null),_=()=>{K(1),q(0),U(0)};J0(()=>{if(H)return;let B=(M)=>{if(M.key==="Escape")M.stopPropagation(),$();else if(M.key==="+"||M.key==="=")K((C)=>Math.min(S3,C*1.2));else if(M.key==="-")K((C)=>Math.max(D3,C/1.2));else if(M.key==="0")_()};return document.addEventListener("keydown",B,!0),()=>document.removeEventListener("keydown",B,!0)},[H,$]);let A=(B)=>{B.preventDefault();let M=O.current?.getBoundingClientRect(),C=M?B.clientX-M.left-M.width/2:0,R=M?B.clientY-M.top-M.height/2:0,I=B.deltaY<0?1.12:0.8928571428571428;K((P)=>{let V=Math.max(D3,Math.min(S3,P*I)),y=V/P;return q((k)=>C-(C-k)*y),U((k)=>R-(R-k)*y),V})},L=(B)=>{N.current={x:B.clientX,y:B.clientY,tx:Y,ty:W}};if(J0(()=>{let B=(C)=>{let R=N.current;if(!R)return;q(R.tx+(C.clientX-R.x)),U(R.ty+(C.clientY-R.y))},M=()=>{N.current=null};return window.addEventListener("mousemove",B),window.addEventListener("mouseup",M),()=>{window.removeEventListener("mousemove",B),window.removeEventListener("mouseup",M)}},[]),H)return G(oU,{src:Z,name:J,draggableBar:X,onCancel:()=>F(!1),onClose:$,onSave:(B)=>{Q(B),F(!1)}},void 0,!1,void 0,this);return G(t,{children:[G("div",{class:"lightbox-toolbar"+(X?" app-drag":""),onMouseDown:(B)=>B.stopPropagation(),children:[J&&G("span",{class:"lightbox-name",title:J,children:J},void 0,!1,void 0,this),G("span",{class:"lightbox-spacer"},void 0,!1,void 0,this),G("button",{title:"缩小",onClick:()=>K((B)=>Math.max(D3,B/1.2)),children:G(g,{name:"zoomOut"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"lightbox-pct",title:"重置",onClick:_,children:[Math.round(z*100),"%"]},void 0,!0,void 0,this),G("button",{title:"放大",onClick:()=>K((B)=>Math.min(S3,B*1.2)),children:G(g,{name:"zoomIn"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{title:"标注 / 编辑",onClick:()=>{_(),F(!0)},children:G(g,{name:"pencil"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{title:"关闭",onClick:$,children:G(g,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{ref:O,class:"lightbox-stage",onMouseDown:(B)=>{B.stopPropagation(),L(B)},onWheel:(B)=>A(B),children:G("img",{src:Z,alt:J??"",draggable:!1,style:{transform:`translate(${Y}px, ${W}px) scale(${z})`,cursor:z>1?"grab":"default"}},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function tU(Z){return G("div",{class:"lightbox",onMouseDown:()=>Z.onClose(),children:G(b3,{...Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function J1({docId:Z,wide:J,onError:$,onModeChange:Q,onHandle:X}){let z=G0(""),K=G0(""),Y=G0(null),q=J6(),[W,U]=b("blocks"),[H,F]=b(0),[O,N]=b(!0),_=G0(),A=G0(null),L=G0(!1),B=G0(0),M=G0(Promise.resolve()),[C,R]=b(!1),I=G0(null),P=G0(null),[V,y]=b(null),k=(h,s)=>{let E=I.current?.view;if(!E||!h||!s)return;let p=I0(E.state).voids.filter((w0)=>w0.kind==="image"&&w0.block.src===h);if(!p.length)return;let X0=AU(E.state),F0=X0&&X0.token===h?p.reduce((w0,o0)=>Math.abs(w0.from-X0.pos)<=Math.abs(o0.from-X0.pos)?w0:o0):p[0],j0=structuredClone(F0.block);j0.src=s;let C0=/^[ \t]*/.exec(E.state.doc.lineAt(F0.from).text)[0],p0=u8(j0);if(C0)p0=p0.split(`
|
|
217
|
+
`).map((w0)=>C0+w0).join(`
|
|
218
|
+
`);E.dispatch({changes:{from:F0.from,to:F0.to,insert:p0},userEvent:"input.writeback"})},j=async(h,s)=>{try{let E=await Z0.uploadDocBlob(new File([s],"annotated.png",{type:"image/png"}));k(h,E.url),y((p)=>p&&p.src===h?{...p,src:E.url}:p)}catch(E){Q0(`保存失败:${E.message}`)}},w=(h)=>{let s=h.src??"",E=I.current?.view;if(E){let p=I0(E.state).voids,X0=p.find((F0)=>F0.block===h)??p.find((F0)=>F0.kind==="image"&&F0.block.src===s);if(X0)E.dispatch({effects:L3.of({token:s,pos:X0.from})})}if(typeof window<"u"&&window.metahubDesktop?.preview)window.metahubDesktop.preview.open({src:s,name:h.name,blockId:s});else y({src:s,name:h.name})};J0(()=>{let h=null;try{h=new BroadcastChannel("mh-doc-image")}catch{return}return h.onmessage=(s)=>{let E=s.data;if(!E||E.action!=="replace"||!E.blockId||!E.url)return;k(E.blockId,E.url)},()=>h?.close()},[]);let u=()=>{N(!0),R(!1),Z0.getDocument(Z).then((h)=>{K.current=h.title??"",z.current=h.body??"",A.current=h.version??null,L.current=!1,N(!1),F((s)=>s+1)}).catch((h)=>$(String(h.message)))};J0(()=>{return u(),()=>clearTimeout(_.current)},[Z]),J0(()=>{let h=Y.current;if(h&&h.textContent!==K.current)h.textContent=K.current},[H]),J0(()=>{let h=(s)=>{if(!L.current)return;s.preventDefault(),s.returnValue=""};return window.addEventListener("beforeunload",h),()=>window.removeEventListener("beforeunload",h)},[]),J0(()=>{let h=(s)=>{if(!s.detail?.datasets?.some((p)=>p==="documents"||p==="doc_blocks"))return;(async()=>{try{if(L.current)await x();let p=await Z0.getDocument(Z);if(p.version!=null&&p.version===A.current)return;K.current=p.title??"",z.current=p.body??"",I.current?.setDoc(p.body??""),A.current=p.version??null,L.current=!1,R(!1),F((X0)=>X0+1),Q0("已合并其他设备的修改")}catch{}})()};return document.addEventListener(I8,h),()=>document.removeEventListener(I8,h)},[Z]);let l=()=>{L.current=!0,clearTimeout(_.current),_.current=setTimeout(D,700)},v=()=>I.current?.getDoc()??z.current,S=(h={})=>Z0.updateDocument(Z,{title:K.current,body:v(),...h.force||A.current==null||M9()?{}:{if_match:A.current}}).then((s)=>{A.current=s.version??null,L.current=!1,B.current=0,R(!1)}).catch((s)=>{if(s instanceof iZ&&s.code==="stale"){R(!0);return}$(String(s.message)),B.current=Math.min(Math.max(B.current*2,1000),30000),clearTimeout(_.current),_.current=setTimeout(D,B.current)}),D=(h={})=>M.current=M.current.then(()=>S(h)),x=async()=>{clearTimeout(_.current),await D()},T=(h)=>{if(h===W)return;z.current=v(),I.current?.setSource(h==="source"),U(h),Q?.(h),requestAnimationFrame(()=>I.current?.focus())};J0(()=>{return X?.({getMode:()=>W,setMode:T,snapshotMarkdown:v,flushSave:x,reload:u}),()=>X?.(null)},[X,W]),J0(()=>{let h=(s)=>{if(!(s.metaKey||s.ctrlKey)||s.altKey||s.key.toLowerCase()!=="f")return;if(s.defaultPrevented)return;if(document.querySelector(".lightbox, .modal-scrim.open"))return;let E=I.current?.view;if(!E||!E.dom.isConnected)return;s.preventDefault(),k3(E)};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[]);let m=()=>{let h=document.querySelector(".doc-title");if(!h)return;h.focus();let s=document.createRange();s.selectNodeContents(h),s.collapse(!1);let E=getSelection();E?.removeAllRanges(),E?.addRange(s)};if(O)return G("div",{class:"empty",children:"加载中…"},void 0,!1,void 0,this);let a=()=>{let h=I.current?.view;if(h)OW(h)};return G("div",{ref:P,class:"doc"+(W==="source"?" source-mode":"")+(J?" wide-mode":""),onMouseDown:(h)=>{let s=I.current?.view;if(s)iU(s,h)},onDragOver:(h)=>{if(h.dataTransfer?.types.includes("Files"))h.preventDefault(),h.dataTransfer.dropEffect="copy"},onDrop:(h)=>{if(h.defaultPrevented)return;let s=I.current?.view,E=i7(h.dataTransfer);if(!s||!E.length)return;h.preventDefault(),v6(s,s.state.doc.length,E,$)},children:[C&&G("div",{class:"doc-conflict",role:"alert",children:[G("span",{class:"doc-conflict-msg",children:"文档已被其他端修改,自动保存已暂停。"},void 0,!1,void 0,this),G("button",{class:"btn btn-secondary",onClick:()=>u(),children:"载入最新(弃本地改动)"},void 0,!1,void 0,this),G("button",{class:"btn btn-danger",onClick:()=>void D({force:!0}),children:"用本地版本覆盖"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"doc-title",contentEditable:!0,ref:Y,onInput:(h)=>{K.current=h.target.textContent??"",l()},onKeyDown:(h)=>{if(h.isComposing||h.keyCode===229)return;if(h.key==="Enter"){h.preventDefault(),a();return}if(h.key==="ArrowDown"&&yI(h.currentTarget).last)h.preventDefault(),a()}},void 0,!1,void 0,this),G("div",{class:"doc-meta",children:[G(CI,{},void 0,!1,void 0,this),q.has(Z)&&G("button",{class:"doc-shared",title:"已分享 · 管理分享",onClick:()=>BZ({kind:"doc",ref:Z,title:K.current}),children:[G(g,{name:"link",cls:"ico sm"},void 0,!1,void 0,this),"已分享"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),!O&&G(aU,{initialDoc:z.current,source:W==="source",onChange:l,onReady:(h)=>{I.current=h},onExitTop:m,onError:$,onPreviewImage:w},Z,!1,void 0,this),V&&G(tU,{src:V.src,name:V.name,onClose:()=>y(null),onReplace:(h)=>void j(V.src,h)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function CI(){let[Z,J]=b({at:null,error:null}),[,$]=b(0);if(J0(()=>{let Q=setInterval(()=>$((z)=>z+1),30000),X=[()=>clearInterval(Q)];if(OZ().hold==="replica"){let z=(K)=>{let Y=K.lastSync;if(!Y)return;J(Y.ok?{at:Y.at,error:null}:{at:null,error:Y.error??"未知错误"})};z(R8()),X.push(x9(z))}else{let z=!1,K=async()=>{let[q,W]=await Promise.all([Z0.listPeers().catch(()=>[]),Z0.listServerS3Peers().catch(()=>[])]);if(z)return;let U=Math.max(0,...q.filter((H)=>H.enabled).map((H)=>H.last_success_at??0),...W.filter((H)=>H.enabled).map((H)=>H.lastSyncAt??0));if(U)J({at:U,error:null})};K();let Y=setInterval(()=>void K(),60000);X.push(()=>{z=!0,clearInterval(Y)})}return()=>X.forEach((z)=>z())},[]),Z.error)return G("span",{title:Z.error,children:"同步失败"},void 0,!1,void 0,this);if(Z.at)return G("span",{title:new Date(Z.at).toLocaleString(),children:["上次同步 ",VI(Z.at)]},void 0,!0,void 0,this);return G("span",{children:"实时同步"},void 0,!1,void 0,this)}function VI(Z){let J=new Date(Z),$=J.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return t6(J,new Date)?$:`${J.toLocaleDateString()} ${$}`}function yI(Z){let J=getSelection();if(!J||!J.rangeCount)return{first:!0,last:!0};let $=J.getRangeAt(0).getBoundingClientRect(),Q=Z.getBoundingClientRect();if(!$.height&&!$.top)return{first:!0,last:!0};let X=parseFloat(getComputedStyle(Z).lineHeight)||$.height||20;return{first:$.top-Q.top<X*0.5,last:Q.bottom-$.bottom<X*0.5}}var h6=function(Z,J){let X=Z,z=i5[J],K=null,Y=0,q=null,W=[],U={},H=function(P,V){if(Y=X*4+17,K=function(y){let k=Array(y);for(let j=0;j<y;j+=1){k[j]=Array(y);for(let w=0;w<y;w+=1)k[j][w]=null}return k}(Y),F(0,0),F(Y-7,0),F(0,Y-7),_(),N(),L(P,V),X>=7)A(P);if(q==null)q=C(X,z,W);B(q,V)},F=function(P,V){for(let y=-1;y<=7;y+=1){if(P+y<=-1||Y<=P+y)continue;for(let k=-1;k<=7;k+=1){if(V+k<=-1||Y<=V+k)continue;if(0<=y&&y<=6&&(k==0||k==6)||0<=k&&k<=6&&(y==0||y==6)||2<=y&&y<=4&&2<=k&&k<=4)K[P+y][V+k]=!0;else K[P+y][V+k]=!1}}},O=function(){let P=0,V=0;for(let y=0;y<8;y+=1){H(!0,y);let k=N8.getLostPoint(U);if(y==0||P>k)P=k,V=y}return V},N=function(){for(let P=8;P<Y-8;P+=1){if(K[P][6]!=null)continue;K[P][6]=P%2==0}for(let P=8;P<Y-8;P+=1){if(K[6][P]!=null)continue;K[6][P]=P%2==0}},_=function(){let P=N8.getPatternPosition(X);for(let V=0;V<P.length;V+=1)for(let y=0;y<P.length;y+=1){let k=P[V],j=P[y];if(K[k][j]!=null)continue;for(let w=-2;w<=2;w+=1)for(let u=-2;u<=2;u+=1)if(w==-2||w==2||u==-2||u==2||w==0&&u==0)K[k+w][j+u]=!0;else K[k+w][j+u]=!1}},A=function(P){let V=N8.getBCHTypeNumber(X);for(let y=0;y<18;y+=1){let k=!P&&(V>>y&1)==1;K[Math.floor(y/3)][y%3+Y-8-3]=k}for(let y=0;y<18;y+=1){let k=!P&&(V>>y&1)==1;K[y%3+Y-8-3][Math.floor(y/3)]=k}},L=function(P,V){let y=z<<3|V,k=N8.getBCHTypeInfo(y);for(let j=0;j<15;j+=1){let w=!P&&(k>>j&1)==1;if(j<6)K[j][8]=w;else if(j<8)K[j+1][8]=w;else K[Y-15+j][8]=w}for(let j=0;j<15;j+=1){let w=!P&&(k>>j&1)==1;if(j<8)K[8][Y-j-1]=w;else if(j<9)K[8][15-j-1+1]=w;else K[8][15-j-1]=w}K[Y-8][8]=!P},B=function(P,V){let y=-1,k=Y-1,j=7,w=0,u=N8.getMaskFunction(V);for(let l=Y-1;l>0;l-=2){if(l==6)l-=1;while(!0){for(let v=0;v<2;v+=1)if(K[k][l-v]==null){let S=!1;if(w<P.length)S=(P[w]>>>j&1)==1;if(u(k,l-v))S=!S;if(K[k][l-v]=S,j-=1,j==-1)w+=1,j=7}if(k+=y,k<0||Y<=k){k-=y,y=-y;break}}}},M=function(P,V){let y=0,k=0,j=0,w=Array(V.length),u=Array(V.length);for(let D=0;D<V.length;D+=1){let x=V[D].dataCount,T=V[D].totalCount-x;k=Math.max(k,x),j=Math.max(j,T),w[D]=Array(x);for(let s=0;s<w[D].length;s+=1)w[D][s]=255&P.getBuffer()[s+y];y+=x;let m=N8.getErrorCorrectPolynomial(T),h=n5(w[D],m.getLength()-1).mod(m);u[D]=Array(m.getLength()-1);for(let s=0;s<u[D].length;s+=1){let E=s+h.getLength()-u[D].length;u[D][s]=E>=0?h.getAt(E):0}}let l=0;for(let D=0;D<V.length;D+=1)l+=V[D].totalCount;let v=Array(l),S=0;for(let D=0;D<k;D+=1)for(let x=0;x<V.length;x+=1)if(D<w[x].length)v[S]=w[x][D],S+=1;for(let D=0;D<j;D+=1)for(let x=0;x<V.length;x+=1)if(D<u[x].length)v[S]=u[x][D],S+=1;return v},C=function(P,V,y){let k=eU.getRSBlocks(P,V),j=ZH();for(let u=0;u<y.length;u+=1){let l=y[u];j.put(l.getMode(),4),j.put(l.getLength(),N8.getLengthInBits(l.getMode(),P)),l.write(j)}let w=0;for(let u=0;u<k.length;u+=1)w+=k[u].dataCount;if(j.getLengthInBits()>w*8)throw"code length overflow. ("+j.getLengthInBits()+">"+w*8+")";if(j.getLengthInBits()+4<=w*8)j.put(0,4);while(j.getLengthInBits()%8!=0)j.putBit(!1);while(!0){if(j.getLengthInBits()>=w*8)break;if(j.put(236,8),j.getLengthInBits()>=w*8)break;j.put(17,8)}return M(j,k)};U.addData=function(P,V){V=V||"Byte";let y=null;switch(V){case"Numeric":y=kI(P);break;case"Alphanumeric":y=TI(P);break;case"Byte":y=jI(P);break;case"Kanji":y=DI(P);break;default:throw"mode:"+V}W.push(y),q=null},U.isDark=function(P,V){if(P<0||Y<=P||V<0||Y<=V)throw P+","+V;return K[P][V]},U.getModuleCount=function(){return Y},U.make=function(){if(X<1){let P=1;for(;P<40;P++){let V=eU.getRSBlocks(P,z),y=ZH();for(let j=0;j<W.length;j++){let w=W[j];y.put(w.getMode(),4),y.put(w.getLength(),N8.getLengthInBits(w.getMode(),P)),w.write(y)}let k=0;for(let j=0;j<V.length;j++)k+=V[j].dataCount;if(y.getLengthInBits()<=k*8)break}X=P}H(!1,O())},U.createTableTag=function(P,V){P=P||2,V=typeof V>"u"?P*4:V;let y="";y+='<table style="',y+=" border-width: 0px; border-style: none;",y+=" border-collapse: collapse;",y+=" padding: 0px; margin: "+V+"px;",y+='">',y+="<tbody>";for(let k=0;k<U.getModuleCount();k+=1){y+="<tr>";for(let j=0;j<U.getModuleCount();j+=1)y+='<td style="',y+=" border-width: 0px; border-style: none;",y+=" border-collapse: collapse;",y+=" padding: 0px; margin: 0px;",y+=" width: "+P+"px;",y+=" height: "+P+"px;",y+=" background-color: ",y+=U.isDark(k,j)?"#000000":"#ffffff",y+=";",y+='"/>';y+="</tr>"}return y+="</tbody>",y+="</table>",y},U.createSvgTag=function(P,V,y,k){let j={};if(typeof arguments[0]=="object")j=arguments[0],P=j.cellSize,V=j.margin,y=j.alt,k=j.title;P=P||2,V=typeof V>"u"?P*4:V,y=typeof y==="string"?{text:y}:y||{},y.text=y.text||null,y.id=y.text?y.id||"qrcode-description":null,k=typeof k==="string"?{text:k}:k||{},k.text=k.text||null,k.id=k.text?k.id||"qrcode-title":null;let w=U.getModuleCount()*P+V*2,u,l,v,S,D="",x;x="l"+P+",0 0,"+P+" -"+P+",0 0,-"+P+"z ",D+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',D+=!j.scalable?' width="'+w+'px" height="'+w+'px"':"",D+=' viewBox="0 0 '+w+" "+w+'" ',D+=' preserveAspectRatio="xMinYMin meet"',D+=k.text||y.text?' role="img" aria-labelledby="'+R([k.id,y.id].join(" ").trim())+'"':"",D+=">",D+=k.text?'<title id="'+R(k.id)+'">'+R(k.text)+"</title>":"",D+=y.text?'<description id="'+R(y.id)+'">'+R(y.text)+"</description>":"",D+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',D+='<path d="';for(v=0;v<U.getModuleCount();v+=1){S=v*P+V;for(u=0;u<U.getModuleCount();u+=1)if(U.isDark(v,u))l=u*P+V,D+="M"+l+","+S+x}return D+='" stroke="transparent" fill="black"/>',D+="</svg>",D},U.createDataURL=function(P,V){P=P||2,V=typeof V>"u"?P*4:V;let y=U.getModuleCount()*P+V*2,k=V,j=y-V;return wI(y,y,function(w,u){if(k<=w&&w<j&&k<=u&&u<j){let l=Math.floor((w-k)/P),v=Math.floor((u-k)/P);return U.isDark(v,l)?0:1}else return 1})},U.createImgTag=function(P,V,y){P=P||2,V=typeof V>"u"?P*4:V;let k=U.getModuleCount()*P+V*2,j="";if(j+="<img",j+=' src="',j+=U.createDataURL(P,V),j+='"',j+=' width="',j+=k,j+='"',j+=' height="',j+=k,j+='"',y)j+=' alt="',j+=R(y),j+='"';return j+="/>",j};let R=function(P){let V="";for(let y=0;y<P.length;y+=1){let k=P.charAt(y);switch(k){case"<":V+="<";break;case">":V+=">";break;case"&":V+="&";break;case'"':V+=""";break;default:V+=k;break}}return V},I=function(P){P=typeof P>"u"?2:P;let y=U.getModuleCount()*1+P*2,k=P,j=y-P,w,u,l,v,S,D={"██":"█","█ ":"▀"," █":"▄"," ":" "},x={"██":"▀","█ ":"▀"," █":" "," ":" "},T="";for(w=0;w<y;w+=2){l=Math.floor((w-k)/1),v=Math.floor((w+1-k)/1);for(u=0;u<y;u+=1){if(S="█",k<=u&&u<j&&k<=w&&w<j&&U.isDark(l,Math.floor((u-k)/1)))S=" ";if(k<=u&&u<j&&k<=w+1&&w+1<j&&U.isDark(v,Math.floor((u-k)/1)))S+=" ";else S+="█";T+=P<1&&w+1>=j?x[S]:D[S]}T+=`
|
|
219
|
+
`}if(y%2&&P>0)return T.substring(0,T.length-y-1)+Array(y+1).join("▀");return T.substring(0,T.length-1)};return U.createASCII=function(P,V){if(P=P||1,P<2)return I(V);P-=1,V=typeof V>"u"?P*2:V;let y=U.getModuleCount()*P+V*2,k=V,j=y-V,w,u,l,v,S=Array(P+1).join("██"),D=Array(P+1).join(" "),x="",T="";for(w=0;w<y;w+=1){l=Math.floor((w-k)/P),T="";for(u=0;u<y;u+=1){if(v=1,k<=u&&u<j&&k<=w&&w<j&&U.isDark(l,Math.floor((u-k)/P)))v=0;T+=v?S:D}for(l=0;l<P;l+=1)x+=T+`
|
|
220
|
+
`}return x.substring(0,x.length-1)},U.renderTo2dContext=function(P,V){V=V||2;let y=U.getModuleCount();for(let k=0;k<y;k++)for(let j=0;j<y;j++)P.fillStyle=U.isDark(k,j)?"black":"white",P.fillRect(j*V,k*V,V,V)},U};h6.stringToBytes=function(Z){let J=[];for(let $=0;$<Z.length;$+=1){let Q=Z.charCodeAt($);J.push(Q&255)}return J};h6.createStringToBytes=function(Z,J){let $=function(){let X=bI(Z),z=function(){let q=X.read();if(q==-1)throw"eof";return q},K=0,Y={};while(!0){let q=X.read();if(q==-1)break;let W=z(),U=z(),H=z(),F=String.fromCharCode(q<<8|W),O=U<<8|H;Y[F]=O,K+=1}if(K!=J)throw K+" != "+J;return Y}(),Q=63;return function(X){let z=[];for(let K=0;K<X.length;K+=1){let Y=X.charCodeAt(K);if(Y<128)z.push(Y);else{let q=$[X.charAt(K)];if(typeof q=="number")if((q&255)==q)z.push(q);else z.push(q>>>8),z.push(q&255);else z.push(63)}}return z}};var P9={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},i5={L:1,M:0,Q:3,H:2},O8={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},N8=function(){let Z=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],J=1335,$=7973,Q=21522,X={},z=function(K){let Y=0;while(K!=0)Y+=1,K>>>=1;return Y};return X.getBCHTypeInfo=function(K){let Y=K<<10;while(z(Y)-z(1335)>=0)Y^=1335<<z(Y)-z(1335);return(K<<10|Y)^21522},X.getBCHTypeNumber=function(K){let Y=K<<12;while(z(Y)-z(7973)>=0)Y^=7973<<z(Y)-z(7973);return K<<12|Y},X.getPatternPosition=function(K){return Z[K-1]},X.getMaskFunction=function(K){switch(K){case O8.PATTERN000:return function(Y,q){return(Y+q)%2==0};case O8.PATTERN001:return function(Y,q){return Y%2==0};case O8.PATTERN010:return function(Y,q){return q%3==0};case O8.PATTERN011:return function(Y,q){return(Y+q)%3==0};case O8.PATTERN100:return function(Y,q){return(Math.floor(Y/2)+Math.floor(q/3))%2==0};case O8.PATTERN101:return function(Y,q){return Y*q%2+Y*q%3==0};case O8.PATTERN110:return function(Y,q){return(Y*q%2+Y*q%3)%2==0};case O8.PATTERN111:return function(Y,q){return(Y*q%3+(Y+q)%2)%2==0};default:throw"bad maskPattern:"+K}},X.getErrorCorrectPolynomial=function(K){let Y=n5([1],0);for(let q=0;q<K;q+=1)Y=Y.multiply(n5([1,B8.gexp(q)],0));return Y},X.getLengthInBits=function(K,Y){if(1<=Y&&Y<10)switch(K){case P9.MODE_NUMBER:return 10;case P9.MODE_ALPHA_NUM:return 9;case P9.MODE_8BIT_BYTE:return 8;case P9.MODE_KANJI:return 8;default:throw"mode:"+K}else if(Y<27)switch(K){case P9.MODE_NUMBER:return 12;case P9.MODE_ALPHA_NUM:return 11;case P9.MODE_8BIT_BYTE:return 16;case P9.MODE_KANJI:return 10;default:throw"mode:"+K}else if(Y<41)switch(K){case P9.MODE_NUMBER:return 14;case P9.MODE_ALPHA_NUM:return 13;case P9.MODE_8BIT_BYTE:return 16;case P9.MODE_KANJI:return 12;default:throw"mode:"+K}else throw"type:"+Y},X.getLostPoint=function(K){let Y=K.getModuleCount(),q=0;for(let H=0;H<Y;H+=1)for(let F=0;F<Y;F+=1){let O=0,N=K.isDark(H,F);for(let _=-1;_<=1;_+=1){if(H+_<0||Y<=H+_)continue;for(let A=-1;A<=1;A+=1){if(F+A<0||Y<=F+A)continue;if(_==0&&A==0)continue;if(N==K.isDark(H+_,F+A))O+=1}}if(O>5)q+=3+O-5}for(let H=0;H<Y-1;H+=1)for(let F=0;F<Y-1;F+=1){let O=0;if(K.isDark(H,F))O+=1;if(K.isDark(H+1,F))O+=1;if(K.isDark(H,F+1))O+=1;if(K.isDark(H+1,F+1))O+=1;if(O==0||O==4)q+=3}for(let H=0;H<Y;H+=1)for(let F=0;F<Y-6;F+=1)if(K.isDark(H,F)&&!K.isDark(H,F+1)&&K.isDark(H,F+2)&&K.isDark(H,F+3)&&K.isDark(H,F+4)&&!K.isDark(H,F+5)&&K.isDark(H,F+6))q+=40;for(let H=0;H<Y;H+=1)for(let F=0;F<Y-6;F+=1)if(K.isDark(F,H)&&!K.isDark(F+1,H)&&K.isDark(F+2,H)&&K.isDark(F+3,H)&&K.isDark(F+4,H)&&!K.isDark(F+5,H)&&K.isDark(F+6,H))q+=40;let W=0;for(let H=0;H<Y;H+=1)for(let F=0;F<Y;F+=1)if(K.isDark(F,H))W+=1;let U=Math.abs(100*W/Y/Y-50)/5;return q+=U*10,q},X}(),B8=function(){let Z=Array(256),J=Array(256);for(let Q=0;Q<8;Q+=1)Z[Q]=1<<Q;for(let Q=8;Q<256;Q+=1)Z[Q]=Z[Q-4]^Z[Q-5]^Z[Q-6]^Z[Q-8];for(let Q=0;Q<255;Q+=1)J[Z[Q]]=Q;let $={};return $.glog=function(Q){if(Q<1)throw"glog("+Q+")";return J[Q]},$.gexp=function(Q){while(Q<0)Q+=255;while(Q>=256)Q-=255;return Z[Q]},$}(),n5=function(Z,J){if(typeof Z.length>"u")throw Z.length+"/"+J;let $=function(){let X=0;while(X<Z.length&&Z[X]==0)X+=1;let z=Array(Z.length-X+J);for(let K=0;K<Z.length-X;K+=1)z[K]=Z[K+X];return z}(),Q={};return Q.getAt=function(X){return $[X]},Q.getLength=function(){return $.length},Q.multiply=function(X){let z=Array(Q.getLength()+X.getLength()-1);for(let K=0;K<Q.getLength();K+=1)for(let Y=0;Y<X.getLength();Y+=1)z[K+Y]^=B8.gexp(B8.glog(Q.getAt(K))+B8.glog(X.getAt(Y)));return n5(z,0)},Q.mod=function(X){if(Q.getLength()-X.getLength()<0)return Q;let z=B8.glog(Q.getAt(0))-B8.glog(X.getAt(0)),K=Array(Q.getLength());for(let Y=0;Y<Q.getLength();Y+=1)K[Y]=Q.getAt(Y);for(let Y=0;Y<X.getLength();Y+=1)K[Y]^=B8.gexp(B8.glog(X.getAt(Y))+z);return n5(K,0).mod(X)},Q},eU=function(){let Z=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],J=function(X,z){let K={};return K.totalCount=X,K.dataCount=z,K},$={},Q=function(X,z){switch(z){case i5.L:return Z[(X-1)*4+0];case i5.M:return Z[(X-1)*4+1];case i5.Q:return Z[(X-1)*4+2];case i5.H:return Z[(X-1)*4+3];default:return}};return $.getRSBlocks=function(X,z){let K=Q(X,z);if(typeof K>"u")throw"bad rs block @ typeNumber:"+X+"/errorCorrectionLevel:"+z;let Y=K.length/3,q=[];for(let W=0;W<Y;W+=1){let U=K[W*3+0],H=K[W*3+1],F=K[W*3+2];for(let O=0;O<U;O+=1)q.push(J(H,F))}return q},$}(),ZH=function(){let Z=[],J=0,$={};return $.getBuffer=function(){return Z},$.getAt=function(Q){let X=Math.floor(Q/8);return(Z[X]>>>7-Q%8&1)==1},$.put=function(Q,X){for(let z=0;z<X;z+=1)$.putBit((Q>>>X-z-1&1)==1)},$.getLengthInBits=function(){return J},$.putBit=function(Q){let X=Math.floor(J/8);if(Z.length<=X)Z.push(0);if(Q)Z[X]|=128>>>J%8;J+=1},$},kI=function(Z){let J=P9.MODE_NUMBER,$=Z,Q={};Q.getMode=function(){return J},Q.getLength=function(K){return $.length},Q.write=function(K){let Y=$,q=0;while(q+2<Y.length)K.put(X(Y.substring(q,q+3)),10),q+=3;if(q<Y.length){if(Y.length-q==1)K.put(X(Y.substring(q,q+1)),4);else if(Y.length-q==2)K.put(X(Y.substring(q,q+2)),7)}};let X=function(K){let Y=0;for(let q=0;q<K.length;q+=1)Y=Y*10+z(K.charAt(q));return Y},z=function(K){if("0"<=K&&K<="9")return K.charCodeAt(0)-48;throw"illegal char :"+K};return Q},TI=function(Z){let J=P9.MODE_ALPHA_NUM,$=Z,Q={};Q.getMode=function(){return J},Q.getLength=function(z){return $.length},Q.write=function(z){let K=$,Y=0;while(Y+1<K.length)z.put(X(K.charAt(Y))*45+X(K.charAt(Y+1)),11),Y+=2;if(Y<K.length)z.put(X(K.charAt(Y)),6)};let X=function(z){if("0"<=z&&z<="9")return z.charCodeAt(0)-48;else if("A"<=z&&z<="Z")return z.charCodeAt(0)-65+10;else switch(z){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+z}};return Q},jI=function(Z){let J=P9.MODE_8BIT_BYTE,$=Z,Q=h6.stringToBytes(Z),X={};return X.getMode=function(){return J},X.getLength=function(z){return Q.length},X.write=function(z){for(let K=0;K<Q.length;K+=1)z.put(Q[K],8)},X},DI=function(Z){let J=P9.MODE_KANJI,$=Z,Q=h6.stringToBytes;(function(K,Y){let q=Q(K);if(q.length!=2||(q[0]<<8|q[1])!=Y)throw"sjis not supported."})("友",38726);let X=Q(Z),z={};return z.getMode=function(){return J},z.getLength=function(K){return~~(X.length/2)},z.write=function(K){let Y=X,q=0;while(q+1<Y.length){let W=(255&Y[q])<<8|255&Y[q+1];if(33088<=W&&W<=40956)W-=33088;else if(57408<=W&&W<=60351)W-=49472;else throw"illegal char at "+(q+1)+"/"+W;W=(W>>>8&255)*192+(W&255),K.put(W,13),q+=2}if(q<Y.length)throw"illegal char at "+(q+1)},z},JH=function(){let Z=[],J={};return J.writeByte=function($){Z.push($&255)},J.writeShort=function($){J.writeByte($),J.writeByte($>>>8)},J.writeBytes=function($,Q,X){Q=Q||0,X=X||$.length;for(let z=0;z<X;z+=1)J.writeByte($[z+Q])},J.writeString=function($){for(let Q=0;Q<$.length;Q+=1)J.writeByte($.charCodeAt(Q))},J.toByteArray=function(){return Z},J.toString=function(){let $="";$+="[";for(let Q=0;Q<Z.length;Q+=1){if(Q>0)$+=",";$+=Z[Q]}return $+="]",$},J},SI=function(){let Z=0,J=0,$=0,Q="",X={},z=function(Y){Q+=String.fromCharCode(K(Y&63))},K=function(Y){if(Y<0)throw"n:"+Y;else if(Y<26)return 65+Y;else if(Y<52)return 97+(Y-26);else if(Y<62)return 48+(Y-52);else if(Y==62)return 43;else if(Y==63)return 47;else throw"n:"+Y};return X.writeByte=function(Y){Z=Z<<8|Y&255,J+=8,$+=1;while(J>=6)z(Z>>>J-6),J-=6},X.flush=function(){if(J>0)z(Z<<6-J),Z=0,J=0;if($%3!=0){let Y=3-$%3;for(let q=0;q<Y;q+=1)Q+="="}},X.toString=function(){return Q},X},bI=function(Z){let J=Z,$=0,Q=0,X=0,z={};z.read=function(){while(X<8){if($>=J.length){if(X==0)return-1;throw"unexpected end of file./"+X}let q=J.charAt($);if($+=1,q=="=")return X=0,-1;else if(q.match(/^\s$/))continue;Q=Q<<6|K(q.charCodeAt(0)),X+=6}let Y=Q>>>X-8&255;return X-=8,Y};let K=function(Y){if(65<=Y&&Y<=90)return Y-65;else if(97<=Y&&Y<=122)return Y-97+26;else if(48<=Y&&Y<=57)return Y-48+52;else if(Y==43)return 62;else if(Y==47)return 63;else throw"c:"+Y};return z},EI=function(Z,J){let $=Z,Q=J,X=Array(Z*J),z={};z.setPixel=function(W,U,H){X[U*$+W]=H},z.write=function(W){W.writeString("GIF87a"),W.writeShort($),W.writeShort(Q),W.writeByte(128),W.writeByte(0),W.writeByte(0),W.writeByte(0),W.writeByte(0),W.writeByte(0),W.writeByte(255),W.writeByte(255),W.writeByte(255),W.writeString(","),W.writeShort(0),W.writeShort(0),W.writeShort($),W.writeShort(Q),W.writeByte(0);let U=2,H=Y(U);W.writeByte(U);let F=0;while(H.length-F>255)W.writeByte(255),W.writeBytes(H,F,255),F+=255;W.writeByte(H.length-F),W.writeBytes(H,F,H.length-F),W.writeByte(0),W.writeString(";")};let K=function(W){let U=W,H=0,F=0,O={};return O.write=function(N,_){if(N>>>_!=0)throw"length over";while(H+_>=8)U.writeByte(255&(N<<H|F)),_-=8-H,N>>>=8-H,F=0,H=0;F=N<<H|F,H=H+_},O.flush=function(){if(H>0)U.writeByte(F)},O},Y=function(W){let U=1<<W,H=(1<<W)+1,F=W+1,O=q();for(let B=0;B<U;B+=1)O.add(String.fromCharCode(B));O.add(String.fromCharCode(U)),O.add(String.fromCharCode(H));let N=JH(),_=K(N);_.write(U,F);let A=0,L=String.fromCharCode(X[A]);A+=1;while(A<X.length){let B=String.fromCharCode(X[A]);if(A+=1,O.contains(L+B))L=L+B;else{if(_.write(O.indexOf(L),F),O.size()<4095){if(O.size()==1<<F)F+=1;O.add(L+B)}L=B}}return _.write(O.indexOf(L),F),_.write(H,F),_.flush(),N.toByteArray()},q=function(){let W={},U=0,H={};return H.add=function(F){if(H.contains(F))throw"dup key:"+F;W[F]=U,U+=1},H.size=function(){return U},H.indexOf=function(F){return W[F]},H.contains=function(F){return typeof W[F]<"u"},H};return z},wI=function(Z,J,$){let Q=EI(Z,J);for(let Y=0;Y<J;Y+=1)for(let q=0;q<Z;q+=1)Q.setPixel(q,Y,$(q,Y));let X=JH();Q.write(X);let z=SI(),K=X.toByteArray();for(let Y=0;Y<K.length;Y+=1)z.writeByte(K[Y]);return z.flush(),"data:image/gif;base64,"+z},$H=h6,vS=h6.stringToBytes;function E3(){let Z=localStorage.getItem("mh-theme");return Z==="light"||Z==="dark"||Z==="system"?Z:"system"}function w3(){let Z=E3(),J=Z==="dark"||Z!=="light"&&matchMedia("(prefers-color-scheme: dark)").matches;document.documentElement.dataset.resolved=J?"dark":"light"}function QH(Z){localStorage.setItem("mh-theme",Z),w3(),$1()}function $1(){let Z=document.getElementById("theme-color-meta");if(!Z)return;let J=document.body.classList.contains("mobile")&&!document.body.classList.contains("mobile-content"),$=getComputedStyle(document.documentElement).getPropertyValue(J?"--sidebar":"--bg").trim();if($)Z.setAttribute("content",$)}var x3="__MH_WEBUI_VERSION__".startsWith("__MH_")?null:"__MH_WEBUI_VERSION__";function a8(Z,J){let $=Z.replace(/^v/,"").split(".").map((X)=>parseInt(X,10)||0),Q=J.replace(/^v/,"").split(".").map((X)=>parseInt(X,10)||0);for(let X=0;X<Math.max($.length,Q.length);X++){let z=($[X]??0)-(Q[X]??0);if(z!==0)return z}return 0}function xI(Z){if(Z.kind==="local")return{title:"Blob 管理",subtitle:"已下载到这台设备的图片和大文件。清理只删本机副本,需要时从云端重新取回;桶里的原件始终不动。",deleteSemantics:"evict",list:async()=>{let[J,$]=await Promise.all([f2(),s0("blobRefs").catch(()=>[])]),Q=new Set($);return J.map((X)=>({hash:X.hash,size:X.size,contentType:X.content_type,lastAccess:X.accessed,pinned:X.pinned,pending:X.pending,clearable:!X.pinned&&!X.pending,referenced:Q.has(X.hash)}))},clear:(J)=>C1(J),remove:(J)=>g2(J),pin:async(J,$)=>{await w2(J,$)}};return{title:"Blob 管理",subtitle:"图片和大文件的本机副本。可清理项随时能腾空间(用时自动取回);没被任何文档或站点引用的孤儿可彻底删除。",deleteSemantics:"purge",list:()=>Z0.blobs(),clear:(J)=>Z0.clearBlobs(J),remove:(J)=>Z0.deleteBlobs(J),pin:async(J,$)=>{await Z0.pinBlob(J,$)}}}function h3(Z){j9(G(mI,{source:xI(Z)},void 0,!1,void 0,this))}function i8(Z){if(Z<1024)return`${Z} B`;if(Z<1048576)return`${(Z/1024).toFixed(1)} KB`;if(Z<1073741824)return`${(Z/1024/1024).toFixed(1)} MB`;return`${(Z/1024/1024/1024).toFixed(2)} GB`}var Q1={image:"图片",video:"视频",audio:"音频",file:"文件",other:"其他"},vI={image:"image",video:"video",audio:"audio",file:"file",other:"file"};function s5(Z){if(!Z)return"other";let J=Z.toLowerCase();if(J.startsWith("image/"))return"image";if(J.startsWith("video/"))return"video";if(J.startsWith("audio/"))return"audio";if(J.startsWith("application/")||J.startsWith("text/"))return"file";return"other"}function hI(Z){if(Z.pending)return"pending";if(Z.pinned)return"pinned";if(!Z.referenced)return"orphan";if(Z.clearable)return"clearable";return"retained"}var fI={pending:"待上传",pinned:"已固定",orphan:"孤儿",clearable:"可清理",retained:"保留"},v3={size:"大小",type:"类型",access:"最近使用"},XH=[{key:"all",label:"全部类型"},{key:"image",label:"图片"},{key:"video",label:"视频"},{key:"audio",label:"音频"},{key:"file",label:"文件"},{key:"other",label:"其他"}],zH=[{key:"all",label:"全部状态"},{key:"clearable",label:"可清理"},{key:"retained",label:"保留中"},{key:"pinned",label:"已固定"},{key:"pending",label:"待上传"},{key:"orphan",label:"孤儿"}];function gI({row:Z}){let J=s5(Z.contentType),[$,Q]=b(!1);if(J==="image"&&!$)return G("img",{class:"blob-mgr-thumb",src:`/blob/${Z.hash}`,loading:"lazy",alt:"",onError:()=>Q(!0)},void 0,!1,void 0,this);return G("span",{class:"blob-mgr-ico",children:G(g,{name:vI[J],cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function mI({source:Z}){let[J,$]=b(null),[Q,X]=b(null),[z,K]=b(!1),[Y,q]=b(""),[W,U]=b("all"),[H,F]=b("all"),[O,N]=b({key:"size",desc:!0}),[_,A]=b(new Set),L=async()=>{try{let T=await Z.list();$(T),X(null),A((m)=>new Set([...m].filter((a)=>T.some((h)=>h.hash===a))))}catch(T){X(T.message)}};J0(()=>{L()},[]);let B=(T,m)=>{if(m==="all")return!0;if(m==="clearable")return T.clearable&&!T.pinned;if(m==="retained")return!T.clearable&&!T.pending&&T.referenced;if(m==="pinned")return T.pinned;if(m==="pending")return T.pending;if(m==="orphan")return!T.referenced;return!0},M=kZ(()=>{let T=Y.trim().toLowerCase(),m=(J??[]).filter((h)=>{let s=s5(h.contentType);if(W!=="all"&&s!==W)return!1;if(!B(h,H))return!1;if(T){if(!`${h.hash} ${h.contentType??""} ${Q1[s]}`.toLowerCase().includes(T))return!1}return!0}),a=O.desc?-1:1;return[...m].sort((h,s)=>{let E=0;if(O.key==="size")E=h.size-s.size;else if(O.key==="access")E=(h.lastAccess??0)-(s.lastAccess??0);else E=Q1[s5(h.contentType)].localeCompare(Q1[s5(s.contentType)],"zh")||h.size-s.size;return a*E})},[J,Y,W,H,O]),C=(T)=>A((m)=>{let a=new Set(m);if(a.has(T))a.delete(T);else a.add(T);return a}),R=M.length>0&&M.every((T)=>_.has(T.hash)),I=()=>A((T)=>{if(M.every((m)=>T.has(m.hash))){let m=new Set(T);for(let a of M)m.delete(a.hash);return m}return new Set([...T,...M.map((m)=>m.hash)])}),P=(J??[]).filter((T)=>_.has(T.hash)),V=P.filter((T)=>T.clearable&&!T.pinned),y=P.filter((T)=>!T.referenced),k=P.reduce((T,m)=>T+m.size,0),j=async(T)=>{K(!0);try{await Z.pin(T.hash,!T.pinned),await L()}catch(m){Q0(m.message)}finally{K(!1)}},w=async()=>{let T=V.map((m)=>m.hash);if(!T.length)return;K(!0);try{let m=await Z.clear(T);Q0(m.cleared?`已清理 ${m.cleared} 项 · 腾出 ${i8(m.freedBytes)}`:"没有可清理的项"),await L()}catch(m){Q0(m.message)}finally{K(!1)}},u=async()=>{let T=y;if(!T.length)return;let m=T.reduce((s,E)=>s+E.size,0),a=Z.deleteSemantics==="evict";if(!await m0({title:"删除孤儿 blob",message:a?`将从这台设备移除 ${T.length} 个未被任何文档/站点引用的 blob,约 ${i8(m)}。桶里的原件不动,需要时仍可重新下载。`:`将永久删除 ${T.length} 个未被任何文档/站点引用的 blob,约 ${i8(m)}。此操作不可恢复。`,confirmLabel:"删除",danger:!0}))return;K(!0);try{let s=await Z.remove(T.map((E)=>E.hash));Q0(s.removed?`已删除 ${s.removed} 项 · 腾出 ${i8(s.freedBytes)}`:"没有可删除的孤儿"),await L()}catch(s){Q0(s.message)}finally{K(!1)}},l=(T)=>b0(T,(m)=>G(t,{children:[G(i0,{children:"排序依据"},void 0,!1,void 0,this),Object.keys(v3).map((a)=>G(q0,{label:v3[a]+(O.key===a?O.desc?" ↓":" ↑":""),checked:O.key===a,onClick:()=>{N((h)=>({key:a,desc:h.key===a?!h.desc:!0})),m()}},a,!1,void 0,this))]},void 0,!0,void 0,this)),v=(T)=>b0(T,(m)=>G(t,{children:[G(i0,{children:"按类型"},void 0,!1,void 0,this),XH.map((a)=>G(q0,{label:a.label,checked:W===a.key,onClick:()=>{U(a.key),m()}},a.key,!1,void 0,this))]},void 0,!0,void 0,this)),S=(T)=>b0(T,(m)=>G(t,{children:[G(i0,{children:"按状态"},void 0,!1,void 0,this),zH.map((a)=>G(q0,{label:a.label,checked:H===a.key,onClick:()=>{F(a.key),m()}},a.key,!1,void 0,this))]},void 0,!0,void 0,this)),D=XH.find((T)=>T.key===W).label,x=zH.find((T)=>T.key===H).label;return G(v9,{title:Z.title,sub:Z.subtitle,width:760,footer:G(t,{children:[G("div",{class:"blob-mgr-selsum",children:_.size>0?G(t,{children:["已选 ",G("b",{children:_.size},void 0,!1,void 0,this)," 项 · ",i8(k)]},void 0,!0,void 0,this):J?G(t,{children:["共 ",J.length," 项 · ",i8(J.reduce((T,m)=>T+m.size,0))]},void 0,!0,void 0,this):""},void 0,!1,void 0,this),G("button",{class:"btn btn-secondary",disabled:z||!V.length,onClick:()=>void w(),children:[G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"清理所选",V.length?`(${V.length})`:""]},void 0,!0,void 0,this),G("button",{class:"btn btn-danger",disabled:z||!y.length,onClick:()=>void u(),children:[G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),"删除孤儿",y.length?`(${y.length})`:""]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost",onClick:()=>q9(),children:"关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:G("div",{class:"blob-mgr",children:[G("div",{class:"blob-mgr-bar",children:[G("div",{class:"blob-mgr-search",children:[G(g,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),G("input",{class:"blob-mgr-search-in",placeholder:"搜索 hash 或类型…",value:Y,onInput:(T)=>q(T.target.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost blob-mgr-fbtn"+(W!=="all"?" on":""),onClick:(T)=>v(T),children:[G(g,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),D]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost blob-mgr-fbtn"+(H!=="all"?" on":""),onClick:(T)=>S(T),children:[G(g,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),x]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost blob-mgr-fbtn",onClick:(T)=>l(T),children:[G(g,{name:"sort",cls:"ico sm"},void 0,!1,void 0,this),v3[O.key],O.desc?" ↓":" ↑"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q?G("div",{class:"blob-mgr-empty",children:["无法读取:",Q]},void 0,!0,void 0,this):!J?G("div",{class:"blob-mgr-empty",children:"加载中…"},void 0,!1,void 0,this):M.length===0?G("div",{class:"blob-mgr-empty",children:J.length?"没有符合条件的项":"这台设备还没有缓存的 blob"},void 0,!1,void 0,this):G("div",{class:"blob-mgr-list",children:[G("div",{class:"blob-mgr-row blob-mgr-head",children:[G("label",{class:"blob-mgr-check",children:G("input",{type:"checkbox",checked:R,onChange:I},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{},void 0,!1,void 0,this),G("span",{children:"名称"},void 0,!1,void 0,this),G("span",{class:"blob-mgr-r",children:"大小"},void 0,!1,void 0,this),G("span",{children:"状态"},void 0,!1,void 0,this),G("span",{class:"blob-mgr-age",children:"最近使用"},void 0,!1,void 0,this),G("span",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M.map((T)=>{let m=s5(T.contentType),a=hI(T);return G("div",{class:"blob-mgr-row"+(_.has(T.hash)?" sel":""),children:[G("label",{class:"blob-mgr-check",children:G("input",{type:"checkbox",checked:_.has(T.hash),onChange:()=>C(T.hash)},void 0,!1,void 0,this)},void 0,!1,void 0,this),G(gI,{row:T},void 0,!1,void 0,this),G("div",{class:"blob-mgr-name",children:[G("span",{class:"blob-mgr-hash",children:T.hash.slice(0,12)},void 0,!1,void 0,this),G("span",{class:"blob-mgr-type",children:T.contentType??Q1[m]},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("span",{class:"blob-mgr-r blob-mgr-size",children:i8(T.size)},void 0,!1,void 0,this),G("span",{class:"blob-mgr-badge s-"+a,children:fI[a]},void 0,!1,void 0,this),G("span",{class:"blob-mgr-age",children:T.lastAccess?sZ(T.lastAccess):"—"},void 0,!1,void 0,this),G("button",{class:"blob-mgr-pin"+(T.pinned?" on":""),disabled:z||T.pending,title:T.pinned?"取消固定":"固定(不被自动清理)",onClick:()=>void j(T),children:G(g,{name:"pin",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},T.hash,!0,void 0,this)})]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var r5={localDevice:{label:"本机",subtitle:"这台设备上的副本",icon:"monitor"},cloudWorkspace:{label:"云端工作区",subtitle:"你常用的在线工作区",icon:"globe"},localWorkspace:{label:"本机工作区",subtitle:"这台电脑上的工作区",icon:"monitor"}};function KH(){return{id:"local",kind:"local",label:r5.localDevice.label,subtitle:r5.localDevice.subtitle,icon:r5.localDevice.icon,isDefault:!1,routeOp:{via:"replica"},deleteSemantics:"evict"}}function X1(Z){let J=Z==="desktop"?r5.localWorkspace:r5.cloudWorkspace;return{id:"server",kind:"server",label:J.label,subtitle:J.subtitle,icon:J.icon,isDefault:!1,routeOp:{via:"http"},deleteSemantics:"purge"}}function uI(Z){if(Z.surface==="cli")return"cli";if(Z.surface==="desktop")return"sidecar";if(Z.dataHome==="local")return"bucket-replica";return Z.hold==="replica"?"offline-replica":"thin"}function YH(Z){let J=uI(Z),$;switch(J){case"thin":$=[X1(Z.surface)];break;case"offline-replica":$=[KH(),X1(Z.surface)];break;case"bucket-replica":$=[KH()];break;case"sidecar":$=[X1(Z.surface)];break;case"cli":$=[X1(Z.surface)];break;default:throw Error(`scopesFor: unhandled cell ${J}`)}return $.map((Q,X)=>({...Q,isDefault:X===0}))}function GH({scopes:Z,value:J,onChange:$,variant:Q,sub:X}){if(Z.length===0)return null;let z=Z.find((q)=>q.id===J)??Z[0],K=X&&z.subtitle?G("div",{class:"scope-sub",children:z.subtitle},void 0,!1,void 0,this):null;if(Z.length===1)return G("div",{class:"scope-pick",children:[G("span",{class:"scope-pill",children:[G(g,{name:z.icon},void 0,!1,void 0,this),z.label]},void 0,!0,void 0,this),K]},void 0,!0,void 0,this);if((Q??(Z.length>3?"menu":"segmented"))==="menu")return G("div",{class:"scope-pick",children:[G("button",{class:"btn btn-secondary scope-trigger",onClick:(q)=>b0(q,(W)=>Z.map((U)=>G(q0,{icon:U.icon,label:U.label,sublabel:U.subtitle,checked:U.id===z.id,onClick:()=>{$(U.id),W()}},U.id,!1,void 0,this))),children:[G(g,{name:z.icon},void 0,!1,void 0,this),z.label,G(g,{name:"chevronDown",cls:"ico sm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K]},void 0,!0,void 0,this);return G("div",{class:"scope-pick",children:[G("div",{class:"scope-seg",role:"tablist",children:Z.map((q)=>G("button",{class:"scope-seg-item"+(q.id===z.id?" sel":""),role:"tab","aria-selected":q.id===z.id,onClick:()=>$(q.id),children:[G(g,{name:q.icon},void 0,!1,void 0,this),q.label]},q.id,!0,void 0,this))},void 0,!1,void 0,this),K]},void 0,!0,void 0,this)}var qH=()=>OZ().surface==="desktop",pI=[{value:"light",icon:"sun",name:"浅色",desc:"始终使用明亮界面"},{value:"dark",icon:"moon",name:"深色",desc:"始终使用暗色界面"},{value:"system",icon:"monitor",name:"跟随系统",desc:"随操作系统外观自动切换"}];function o5({id:Z,label:J,children:$}){return G("div",{class:"set-group",id:Z,children:[G("div",{class:"set-group-label",children:J},void 0,!1,void 0,this),G("div",{class:"set-panel",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var VZ={appearance:"appearance",quicknote:"quicknote",sync:"sync",storage:"storage",devices:"devices"},cI=[{id:VZ.appearance,label:"外观",icon:"sun",show:()=>!0},{id:VZ.quicknote,label:"快速笔记",icon:"pin",show:()=>typeof window<"u"&&!!window.metahubDesktop?.quicknote},{id:VZ.sync,label:"同步",icon:"cloudCheck",show:()=>!0},{id:VZ.storage,label:"存储",icon:"database",show:()=>!0},{id:VZ.devices,label:"设备与授权",icon:"monitor",show:()=>!n9()}];function dI({sections:Z}){let[J,$]=b(Z[0]?.id??""),Q=G0(null),X=G0(0),z=Z.map((Y)=>Y.id).join("|");J0(()=>{let Y=document.querySelector(".content"),q=0,W=()=>{if(Date.now()<X.current)return;if(Y?Y.scrollTop+Y.clientHeight>=Y.scrollHeight-2:window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-2){$(Z[Z.length-1].id);return}let O=Math.max(Y?Y.getBoundingClientRect().top:0,0)+72,N=Z[0].id;for(let _ of Z){let A=document.getElementById(_.id);if(!A)continue;if(A.getBoundingClientRect().top-O<=1)N=_.id;else break}$(N)},U=()=>{if(q)return;q=requestAnimationFrame(()=>{q=0,W()})};W();let H=new IntersectionObserver(W,{root:Y,rootMargin:"-72px 0px -70% 0px",threshold:[0,1]});for(let F of Z){let O=document.getElementById(F.id);if(O)H.observe(O)}return Y?.addEventListener("scroll",U,{passive:!0}),window.addEventListener("scroll",U,{passive:!0}),()=>{if(H.disconnect(),Y?.removeEventListener("scroll",U),window.removeEventListener("scroll",U),q)cancelAnimationFrame(q)}},[z]),J0(()=>{let Y=Q.current;if(!Y)return;let q=Y.querySelector(`.set-rail-row[data-sec="${J}"]`);if(!q)return;Y.style.setProperty("--mark-y",`${q.offsetTop}px`),Y.style.setProperty("--mark-h",`${q.offsetHeight}px`)},[J,z]);let K=(Y)=>{X.current=Date.now()+600,$(Y),document.getElementById(Y)?.scrollIntoView({behavior:"smooth",block:"start"})};return G("div",{class:"set-rail-slot",children:G("nav",{class:"set-rail",ref:Q,"aria-label":"设置区块",children:[G("span",{class:"set-rail-mark"},void 0,!1,void 0,this),Z.map((Y)=>G("button",{"data-sec":Y.id,class:"set-rail-row"+(Y.id===J?" active":""),"aria-current":Y.id===J?"true":void 0,onClick:()=>K(Y.id),children:[G("span",{class:"set-rail-ico",children:G(g,{name:Y.icon},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"set-rail-label",children:Y.label},void 0,!1,void 0,this)]},Y.id,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function WH({onUpdatePending:Z}={}){let[J,$]=b(E3()),[Q,X]=b(l5()),z=(q)=>{QH(q),$(q)},K=(q)=>{VU(q),X(q)},Y=cI.filter((q)=>q.show());return G("div",{class:"set-shell",children:G("div",{class:"set-page",children:[Y.length>=2&&G(dI,{sections:Y},void 0,!1,void 0,this),G("div",{class:"set-title",children:"设置"},void 0,!1,void 0,this),G("div",{class:"set-sub",children:"个性化你的 Metahub 工作区。"},void 0,!1,void 0,this),G(o5,{id:VZ.appearance,label:"外观",children:[G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"颜色主题"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"选择界面的明暗外观。"},void 0,!1,void 0,this),G("div",{class:"theme-grid",children:pI.map((q)=>G("button",{class:"theme-card"+(J===q.value?" sel":""),"aria-pressed":J===q.value,onClick:()=>z(q.value),children:[G("span",{class:"tc-check",children:G(g,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"tc-ico",children:G(g,{name:q.icon},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"tc-name",children:q.name},void 0,!1,void 0,this),G("span",{class:"tc-desc",children:q.desc},void 0,!1,void 0,this)]},q.value,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"set-block",children:G("div",{class:"set-toggle-row",children:[G("div",{class:"set-toggle-text",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"字数统计"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"在文档右下角显示字数,悬停查看字符数与预计阅读时间。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("label",{class:"set-switch",children:[G("input",{type:"checkbox",checked:Q,onChange:(q)=>K(q.currentTarget.checked)},void 0,!1,void 0,this),G("span",{class:"set-switch-track",children:G("span",{class:"set-switch-thumb"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),typeof window<"u"&&window.metahubDesktop?.quicknote&&G(o5,{id:VZ.quicknote,label:"快速笔记",children:G(OR,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),G(o5,{id:VZ.sync,label:"同步",children:[!qH()&&G(tI,{},void 0,!1,void 0,this),G(ZR,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G(o5,{id:VZ.storage,label:"存储",children:G(lI,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),!n9()&&G(o5,{id:VZ.devices,label:"设备与授权",children:[G(NR,{},void 0,!1,void 0,this),G(BR,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G(WR,{onUpdatePending:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function lI(){let Z=YH(OZ()).filter((z)=>z.kind!=="bucket"),[J,$]=b(Z[0]?.id??"server"),Q=Z.find((z)=>z.id===J)??Z[0],X=Z.length>1;return G(t,{children:[G("div",{class:"set-block",children:[X&&G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"管理哪里的存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G(GH,{scopes:Z,value:Q.id,onChange:$,sub:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q.kind==="local"?G(sI,{scope:Q},void 0,!1,void 0,this):G(nI,{scope:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function W9(Z){if(Z<1024)return`${Z} B`;if(Z<1048576)return`${(Z/1024).toFixed(1)} KB`;if(Z<1073741824)return`${(Z/1024/1024).toFixed(1)} MB`;return`${(Z/1024/1024/1024).toFixed(2)} GB`}var aI=300000,iI=()=>typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)").matches;function UH(Z,J=600){let[$,Q]=b(Z),X=G0(Z);return J0(()=>{if(iI()){X.current=Z,Q(Z);return}let z=X.current,K=performance.now(),Y=0,q=(W)=>{let U=Math.min(1,(W-K)/J),H=1-Math.pow(1-U,3);if(Q(Math.round(z+(Z-z)*H)),U<1)Y=requestAnimationFrame(q);else X.current=Z};return Y=requestAnimationFrame(q),()=>cancelAnimationFrame(Y)},[Z]),$}function nI({scope:Z}){let[J,$]=b(null),[Q,X]=b(null),[z,K]=b(!1),[Y,q]=b(!1),W=()=>{Z0.blobCache().then((E)=>{$(E),X(null)}).catch((E)=>X(E.message))},U=async(E=!1)=>{q(!0);try{$(await Z0.verifyBlobCache()),X(null)}catch(p){if(E)Q0(p.message)}finally{q(!1)}};J0(()=>{W(),U()},[]);let[H,F]=b(!1);J0(()=>{let E=requestAnimationFrame(()=>F(!0));return()=>cancelAnimationFrame(E)},[]);let O=UH(J?.stats.clearableBytes??0);if(Q||!J)return G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:Q?`无法读取缓存信息:${Q}`:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let{stats:N,policy:_,nodes:A,buckets:L,quotaBytes:B,pinnedBytes:M}=J,C=[...L,..._.fullNodes.filter((E)=>E.startsWith("s3://")&&!L.some((p)=>p.url===E)).map((E)=>({url:E,label:null,bucket:null}))],R=async(E)=>{K(!0);try{await Z0.setBlobPolicy({full_nodes:E}),await U()}catch(p){Q0(p.message)}finally{K(!1)}},I=(E)=>{let p=new Set(_.fullNodes);if(p.has(E))p.delete(E);else p.add(E);R([...p])},P=async(E)=>{K(!0);try{await Z0.setBlobPolicy({redundancy:E}),await U()}catch(p){Q0(p.message)}finally{K(!1)}},V=async()=>{if(!await m0({title:"清理腾空间",message:`将释放约 ${W9(N.clearableBytes)}。只删别处已备份的副本,文件不会丢,用到时自动取回。`,confirmLabel:"清理"}))return;K(!0);try{let p=await Z0.clearBlobCache();Q0(p.cleared?`已腾出 ${W9(p.freedBytes)}(${p.cleared} 项)`:"暂时没有可清理的"),W()}catch(p){Q0(p.message)}finally{K(!1)}},y=Math.max(1,N.totalBytes),k=Math.max(0,N.retainedBytes-M),j=(E)=>E/y*100,w=j(N.clearableBytes),u=j(k),l=j(M),v=N.clearableBytes>0,S=_.fullNodes.length===0,D=A.find((E)=>E.self),x=!!D&&_.fullNodes.includes(D.nodeId),T=!S&&!x&&J.lastVerifiedAt==null,m=x?"self-full":S?"no-anchor":T?"unverified":v?"free":"safe",a=J.lastVerifiedAt==null||Date.now()-J.lastVerifiedAt>aI,h=B>0&&N.totalBytes>B&&(J.unreachableAnchors.length>0||a),s=(E)=>H?E:0;return G("div",{class:"set-block blob-pane",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"图片和大文件会先存在这台设备上,打开快。只要别处留了一份长期备份,这里随时能清——文件不会丢,需要时自动取回。"},void 0,!1,void 0,this),G("div",{class:"blob-hero",children:[G("div",{class:"blob-hero-main",children:[G("div",{class:"blob-legend",children:[G("div",{class:"blob-legend-row",children:[G("span",{class:"blob-dot free"},void 0,!1,void 0,this)," ",G("span",{class:"blob-legend-k",children:"可释放"},void 0,!1,void 0,this),G("b",{children:W9(N.clearableBytes)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-legend-row",children:[G("span",{class:"blob-dot keep"},void 0,!1,void 0,this)," ",G("span",{class:"blob-legend-k",children:"保留中"},void 0,!1,void 0,this),G("b",{children:W9(k)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M>0&&G("div",{class:"blob-legend-row",children:[G("span",{class:"blob-dot pin"},void 0,!1,void 0,this)," ",G("span",{class:"blob-legend-k",children:"已固定"},void 0,!1,void 0,this),G("b",{children:W9(M)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-total",children:["共 ",N.count," 项 · ",W9(N.totalBytes)]},void 0,!0,void 0,this),G("div",{class:"blob-actions",children:[G("button",{class:"btn btn-secondary blob-clear",disabled:z||Y||!v,onClick:()=>void V(),children:[G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),v?`清理腾出 ${W9(N.clearableBytes)}`:"无需清理"]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost blob-verify-btn",disabled:z||Y,onClick:()=>void U(!0),children:[G(g,{name:"history",cls:"ico sm"+(Y?" spin":"")},void 0,!1,void 0,this),Y?"检查中…":"重新检查"]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost blob-manage-btn",onClick:()=>h3(Z),children:[G(g,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),"Blob 管理"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-verify-at",children:Y?"":J.lastVerifiedAt!=null?`${sZ(J.lastVerifiedAt)}检查过`:"未检查"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-ring"+(m==="free"?" has-free":m==="safe"?" all-safe":" locked"),children:[G("svg",{viewBox:"0 0 100 100",class:"blob-ring-svg","aria-hidden":"true",children:G("g",{transform:"rotate(-90 50 50)",children:[G("circle",{class:"blob-ring-track",cx:"50",cy:"50",r:"42",pathLength:100},void 0,!1,void 0,this),l>0&&G("circle",{class:"blob-seg pin",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${s(l)} ${100-s(l)}`,"stroke-dashoffset":-(w+u)},void 0,!1,void 0,this),G("circle",{class:"blob-seg keep",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${s(u)} ${100-s(u)}`,"stroke-dashoffset":-w},void 0,!1,void 0,this),G("circle",{class:"blob-seg free",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${s(w)} ${100-s(w)}`,"stroke-dashoffset":0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-ring-center",children:[m==="free"&&G(t,{children:[G("div",{class:"blob-ring-big",children:W9(O)},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap",children:"可释放"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="safe"&&G(t,{children:[G("div",{class:"blob-ring-check",children:G(g,{name:"check",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap strong",children:"都备份好了"},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap",children:"暂时无需清理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="no-anchor"&&G(t,{children:[G("div",{class:"blob-ring-lock",children:G(g,{name:"lock",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap strong",children:"未设置长期备份"},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap",children:"指定后才能清理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="unverified"&&G(t,{children:[G("div",{class:"blob-ring-lock",children:G(g,{name:"history",cls:"ico"+(Y?" spin":"")},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap strong",children:Y?"检查中…":"未检查"},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap",children:"检查后才知道"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),m==="self-full"&&G(t,{children:[G("div",{class:"blob-ring-lock",children:G(g,{name:"database",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap strong",children:"本机长期备份库"},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap",children:"保留全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-anchors",children:[G("div",{class:"blob-sub-title",children:"长期备份保存在"},void 0,!1,void 0,this),A.map((E)=>{let p=_.fullNodes.includes(E.nodeId);return G("div",{class:"blob-anchor-row",children:[G("span",{class:"blob-anchor-ico",children:G(g,{name:"monitor",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-anchor-main",children:[G("div",{class:"blob-anchor-name",children:[E.label||E.nodeId,E.self?" · 本机":""]},void 0,!0,void 0,this),G("div",{class:"blob-anchor-sub",children:p?"正在长期保存全部副本":"开启后保存全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"switch"+(p?" on":""),role:"switch","aria-checked":p,disabled:z,onClick:()=>I(E.nodeId),children:G("span",{class:"switch-knob"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},E.nodeId,!0,void 0,this)}),C.map((E)=>{let p=_.fullNodes.includes(E.url);return G("div",{class:"blob-anchor-row",children:[G("span",{class:"blob-anchor-ico",children:G(g,{name:"database",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-anchor-main",children:[G("div",{class:"blob-anchor-name",children:[E.label||E.bucket||E.url," · 云端"]},void 0,!0,void 0,this),G("div",{class:"blob-anchor-sub",children:p?"正在长期保存全部副本":"开启后保存全部副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"switch"+(p?" on":""),role:"switch","aria-checked":p,disabled:z,onClick:()=>I(E.url),children:G("span",{class:"switch-knob"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},E.url,!0,void 0,this)}),S&&G("div",{class:"blob-hint",children:"还没设置长期备份。先指定一处,之后就能放心清理这台设备。"},void 0,!1,void 0,this),_.fullNodes.length>1&&G("div",{class:"blob-strategy",children:[G("div",{class:"blob-sub-title",children:"清理前先确认"},void 0,!1,void 0,this),G("div",{class:"seg",children:[G("button",{class:"seg-opt"+(_.redundancy==="any"?" on":""),disabled:z||Y,onClick:()=>void P("any"),children:[G("span",{class:"seg-opt-t",children:"有一处备份就行"},void 0,!1,void 0,this),G("span",{class:"seg-opt-s",children:"更省空间"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"seg-opt"+(_.redundancy==="all"?" on":""),disabled:z||Y,onClick:()=>void P("all"),children:[G("span",{class:"seg-opt-t",children:"每处都备份好"},void 0,!1,void 0,this),G("span",{class:"seg-opt-s",children:"更稳妥"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J.unreachableAnchors.length>0&&G("div",{class:"blob-hint warn",children:"部分长期备份连不上,相关文件暂不清理。"},void 0,!1,void 0,this),h&&G("div",{class:"blob-hint warn",children:"空间超了,但备份暂时离线,先没清理。"},void 0,!1,void 0,this),B>0&&G("div",{class:"blob-foot",children:["缓存超过 ",W9(B)," 时,自动清理最久没用、已有备份的,你固定的不动。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function sI({scope:Z}){let[J,$]=b(null),[Q,X]=b({count:0,bytes:0}),[z,K]=b(null),[Y,q]=b(null),[W,U]=b(!1),H=async()=>{try{let[y,k]=await Promise.all([v2(),a6()]);$(y),X({count:k.length,bytes:k.reduce((j,w)=>j+w.bytes.byteLength,0)})}catch{}if(navigator.storage?.estimate)try{let y=await navigator.storage.estimate();if(y.usage!=null)K(y.usage)}catch{}if(navigator.storage?.persisted)try{q(await navigator.storage.persisted())}catch{}};J0(()=>{H()},[]);let[F,O]=b(!1);J0(()=>{let y=requestAnimationFrame(()=>O(!0));return()=>cancelAnimationFrame(y)},[]);let N=J?Math.max(0,J.totalBytes-J.pinnedBytes):0,_=UH(N);if(!J)return G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"加载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);let A=async()=>{if(!await m0({title:"清理腾空间",message:`将释放约 ${W9(N)}。只清本机缓存,文件已存在云桶,用到时自动取回。待上传的内容不会动。`,confirmLabel:"清理"}))return;U(!0);try{let k=await h2();Q0(k.cleared?`已腾出 ${W9(k.freedBytes)}(${k.cleared} 项)`:"暂时没有可清理的"),await H()}catch(k){Q0(k.message)}finally{U(!1)}},L=async()=>{if(!navigator.storage?.persist)return;U(!0);try{let y=await navigator.storage.persist();q(y),Q0(y?"已设为常驻,系统不会自动清理":"浏览器暂未授予常驻")}catch(y){Q0(y.message)}finally{U(!1)}},B=Math.max(1,J.totalBytes),M=(y)=>y/B*100,C=M(N),R=M(J.pinnedBytes),I=(y)=>F?y:0,P=N>0,V=P?"free":"safe";return G("div",{class:"set-block blob-pane",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"本机存储"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"图片和大文件会先缓存在这台设备上,打开快。云桶里始终有一份,所以这里随时能清——文件不会丢,需要时自动取回。"},void 0,!1,void 0,this),G("div",{class:"blob-hero",children:[G("div",{class:"blob-hero-main",children:[G("div",{class:"blob-legend",children:[G("div",{class:"blob-legend-row",children:[G("span",{class:"blob-dot free"},void 0,!1,void 0,this)," ",G("span",{class:"blob-legend-k",children:"可释放"},void 0,!1,void 0,this),G("b",{children:W9(N)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J.pinnedBytes>0&&G("div",{class:"blob-legend-row",children:[G("span",{class:"blob-dot pin"},void 0,!1,void 0,this)," ",G("span",{class:"blob-legend-k",children:"已固定"},void 0,!1,void 0,this),G("b",{children:W9(J.pinnedBytes)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-total",children:["共 ",J.count," 项 · ",W9(J.totalBytes)]},void 0,!0,void 0,this),G("div",{class:"blob-actions",children:[G("button",{class:"btn btn-secondary blob-clear",disabled:W||!P,onClick:()=>void A(),children:[G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this),P?`清理腾出 ${W9(N)}`:"无需清理"]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost blob-manage-btn",onClick:()=>h3(Z),children:[G(g,{name:"filter",cls:"ico sm"},void 0,!1,void 0,this),"Blob 管理"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-ring"+(V==="free"?" has-free":" all-safe"),children:[G("svg",{viewBox:"0 0 100 100",class:"blob-ring-svg","aria-hidden":"true",children:G("g",{transform:"rotate(-90 50 50)",children:[G("circle",{class:"blob-ring-track",cx:"50",cy:"50",r:"42",pathLength:100},void 0,!1,void 0,this),R>0&&G("circle",{class:"blob-seg pin",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${I(R)} ${100-I(R)}`,"stroke-dashoffset":-C},void 0,!1,void 0,this),G("circle",{class:"blob-seg free",cx:"50",cy:"50",r:"42",pathLength:100,"stroke-dasharray":`${I(C)} ${100-I(C)}`,"stroke-dashoffset":0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-ring-center",children:V==="free"?G(t,{children:[G("div",{class:"blob-ring-big",children:W9(_)},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap",children:"可释放"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):G(t,{children:[G("div",{class:"blob-ring-check",children:G(g,{name:"check",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap strong",children:"已是最省"},void 0,!1,void 0,this),G("div",{class:"blob-ring-cap",children:"暂无缓存可清"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"blob-anchors",children:[Q.count>0&&G("div",{class:"blob-hint warn",children:[Q.count," 项(约 ",W9(Q.bytes),")还没上传到云桶,仅存在这台设备上。建议先「立即同步」再清理——清理不会动这些待上传的内容。"]},void 0,!0,void 0,this),G("div",{class:"blob-anchor-row",children:[G("span",{class:"blob-anchor-ico",children:G(g,{name:"lock",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"blob-anchor-main",children:[G("div",{class:"blob-anchor-name",children:["常驻存储",Y==null?"":Y?" · 已开启":" · 未开启"]},void 0,!0,void 0,this),G("div",{class:"blob-anchor-sub",children:Y?"系统空间紧张时不会自动清掉本地数据。":"开启后,系统空间紧张时也不会自动清掉本地数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y!==!0&&G("button",{class:"btn btn-ghost",disabled:W||!navigator.storage?.persist,onClick:()=>void L(),children:"请求常驻"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z!=null&&G("div",{class:"blob-foot",children:["此浏览器为本工作区共占用约 ",W9(z),"(含本地数据库与缓存)。缓存超过 ",W9(j2)," 时自动清理最久没用、已在云桶的,你固定的不动。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function rI(){if(typeof Worker>"u"||typeof navigator>"u")return"此浏览器不支持 Web Worker。";if(!window.isSecureContext)return"需要 HTTPS(安全上下文)。当前是 http:// 访问,浏览器不开放离线所需的 OPFS 与 Service Worker——给服务器配置 TLS(--tls-cert/--tls-key,或 Caddy / Tailscale Serve 反代;iPhone 需要受信任的证书),或在本机用 localhost 访问。";if(!navigator.storage?.getDirectory)return"此浏览器不支持 OPFS 本地存储(需要 Safari 17+ / Chrome / Firefox 较新版本)。";return null}function oI({kind:Z,noOrigin:J,hasServerBucket:$,deviceDirect:Q}){let X=Z==="trusted",z=!J,K=z&&$,Y=Q,q=K||Y,W=Y&&z&&q;return G("span",{class:"md-graph"+(X?" trusted":" light")+(W?" has-direct":""),"aria-hidden":"true",children:[G("span",{class:"md-node self",children:[G("span",{class:"md-node-ico",children:G(g,{name:"monitor",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"md-node-name",children:"本设备"},void 0,!1,void 0,this),G("span",{class:"md-node-tag",children:X?"存一份":"不留存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z&&G(t,{children:[G("span",{class:"md-wire bi"},void 0,!1,void 0,this),G("span",{class:"md-node",children:[G("span",{class:"md-node-ico",children:G(g,{name:"globe",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"md-node-name",children:"服务器"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),q&&G(t,{children:[G("span",{class:"md-wire "+(z?"to":"bi")},void 0,!1,void 0,this),G("span",{class:"md-node",children:[G("span",{class:"md-node-ico",children:G(g,{name:"cube",cls:"ico"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"md-node-name",children:"云桶"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W&&G("span",{class:"md-direct","data-label":"直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function tI(){let Z=rI(),[J,$]=b(m9()),[Q,X]=b(R8()),[z,K]=b(!1),[Y,q]=b(null),W=n9(),[U,H]=b(!1),[F,O]=b(!1);J0(()=>{let P=!0,V=async()=>{let k=m9()?(await s0("listStoragePeers").catch(()=>[])).length>0:!1,j=W?!1:(await Z0.listServerS3Peers().catch(()=>[])).length>0;if(!P)return;O(k),H(j)};V();let y=x9(V);return()=>{P=!1,y()}},[W]);let[N,_]=b(null),A=(P,V)=>{let y=V.currentTarget,k=y?.closest(".set-panel"),j=y?.closest(".sync-holds");if(!k||!j)return;let w=k.getBoundingClientRect(),u=248,l=28;if(window.innerWidth-w.right<u+l)return _(null);(async()=>{let v=m9()?(await s0("listStoragePeers").catch(()=>[])).length>0:!1,S=W?!1:(await Z0.listServerS3Peers().catch(()=>[])).length>0;O(v),H(S)})(),_({kind:P,left:w.right+l,top:j.getBoundingClientRect().top})},L=()=>_(null);J0(()=>x9((P)=>X({...P})),[]),J0(()=>{if(!J||!navigator.storage?.estimate)return;let P=!0,V=()=>navigator.storage.estimate().then((k)=>{if(P&&k.usage!=null)q((k.usage/1024/1024).toFixed(1))});V();let y=x9(()=>void V());return()=>{P=!1,y()}},[J]);let B=async()=>{if(!await m0({title:"重置本地副本",message:"将删除此浏览器里的全部本地数据(服务器数据不受影响),并停用离线副本。未同步的本地修改会丢失——建议先「立即同步」。",confirmLabel:"删除并重置",danger:!0}))return;K(!0);try{await k2(),$(!1),Q0("本地副本已重置")}catch(V){Q0(`重置失败:${V.message}`)}finally{K(!1)}},M=async()=>{K(!0);try{await C2(),$(!0),Q0("离线副本已启用,正在下载数据…")}catch(P){Q0(`启用失败:${P.message}`)}finally{K(!1)}},C=async()=>{if(!await m0({title:"停用离线副本",message:"此浏览器将恢复纯在线模式。已下载的本地数据保留在浏览器里,重新启用后从断点续传。",confirmLabel:"停用",danger:!0}))return;let V=typeof navigator<"u"&&"serviceWorker"in navigator&&navigator.serviceWorker.controller!=null;K(!0);try{if(await y2(),$(!1),Q0("已停用离线副本"),V)location.reload()}finally{K(!1)}},R=()=>{if(!J)return"轻量模式 · 仅在线读写,断网不可用。";if(Q.state==="error")return`副本异常(已自动回退在线模式):${Q.error??"未知错误"}`;if(Q.state==="hydrating")return`正在下载数据… 已接收 ${Q.hydrated??0} 条变更`;if(Q.lastSync){let P=f6(Q.lastSync.at);return Q.lastSync.ok?`本地优先已生效 · 上次同步 ${P}(推送 ${Q.lastSync.pushed} / 拉取 ${Q.lastSync.pulled})`:`上次同步失败(${P}):${Q.lastSync.error??""} — 本地读写不受影响,恢复网络后自动重试`}return"等待首次同步…"};if(Z)return G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"设置这台设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"这台设备为轻量模式:仅在线读写,不在本机保存。"},void 0,!1,void 0,this),G("div",{class:"peer-sub",style:"margin-top:8px",children:["⚠ 此设备无法「信任并本机保存」:",Z]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);let I=(P)=>G(oI,{kind:P,noOrigin:W,hasServerBucket:U,deviceDirect:P==="trusted"&&F},void 0,!1,void 0,this);return G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"设置这台设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"选择这台设备如何使用工作区,之后可随时修改。"},void 0,!1,void 0,this),G("div",{class:"theme-grid sync-holds",children:[G("button",{class:"theme-card mode-card"+(!J?" sel":""),"aria-pressed":!J,disabled:z,onClick:()=>J&&C(),onMouseEnter:(P)=>A("light",P),onMouseLeave:L,onFocus:(P)=>A("light",P),onBlur:L,children:[G("span",{class:"tc-check",children:G(g,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"tc-ico",children:G(g,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"mode-text",children:[G("span",{class:"tc-name",children:"轻量模式"},void 0,!1,void 0,this),G("span",{class:"tc-desc",children:"仅在线使用"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"theme-card mode-card"+(J?" sel":""),"aria-pressed":J,disabled:z,onClick:()=>!J&&M(),onMouseEnter:(P)=>A("trusted",P),onMouseLeave:L,onFocus:(P)=>A("trusted",P),onBlur:L,children:[G("span",{class:"tc-check",children:G(g,{name:"check"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"tc-ico",children:G(g,{name:"lock"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"mode-text",children:[G("span",{class:"tc-name",children:"信任此设备"},void 0,!1,void 0,this),G("span",{class:"tc-desc",children:z&&!J?"启用中…":"本机保存,支持同步"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),N&&G("div",{class:"mode-aside",style:{top:N.top+"px",left:N.left+"px"},children:G("div",{class:"mp-show",children:[I(N.kind),G("span",{class:"mp-cap",children:N.kind==="trusted"?"本机存一份 · 离线也能读写":"仅在线读写 · 不在本机保存"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),J&&G("div",{class:"peer-actions",style:{marginTop:12},children:[G("button",{class:"btn btn-secondary",disabled:z,onClick:()=>M8(),children:[G(g,{name:"share",cls:"ico sm"},void 0,!1,void 0,this)," 立即同步"]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost",disabled:z,onClick:B,children:"重置本地副本"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"peer-sub",style:"margin-top:8px",children:[R(),J&&Q.node?` · 节点 ${Q.node}`:"",J&&Y?` · 本地占用 ${Y} MB`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function z1(Z){try{return new URL(Z).host}catch{return Z}}function eI(Z){return Z.length<=8?Z.slice(0,2)+"…":Z.slice(0,4)+"…"+Z.slice(-4)}function ZR(){let Z=n9(),J=qH(),[$,Q]=b(m9()),[X,z]=b(null),[K,Y]=b(null),q=()=>{if(m9())s0("listStoragePeers").then(Y).catch(()=>{});else Y(null)},W=()=>{if(q(),!Z)Z0.listServerS3Peers().then(z).catch((I)=>Q0(`加载失败:${I.message}`))};J0(()=>{return W(),x9(()=>{Q(m9()),q()})},[]);let U=new Set((K??[]).map((I)=>I.url)),H=!J&&$,F=()=>j9(G(qR,{toServer:!Z,alsoReplica:!Z&&H,onDone:()=>{q9(),W()}},void 0,!1,void 0,this)),O=(I)=>j9(G(JR,{peer:I,onDone:()=>{q9(),W()}},void 0,!1,void 0,this)),N=async()=>{try{if(Z)await s0("sync");else if(await Promise.all((X??[]).map((I)=>Z0.syncPeer(I.url))),H)await s0("sync").catch(()=>{});Q0("已触发同步"),W()}catch(I){Q0(`同步失败:${I.message}`)}},_=async(I,P)=>{if(!await m0({title:"移除存储桶",message:`确定移除 ${P}?将停止与该存储桶同步(桶内数据不受影响)。`,confirmLabel:"移除",danger:!0}))return;if(Z)await s0("removeStorageReplica",I).catch((y)=>Q0(y.message));else if(await Z0.removePeer(I).catch((y)=>Q0(y.message)),H)await s0("removeStorageReplica",I).catch(()=>{});W()},A=async(I,P)=>{if(!await m0({title:"取消本设备直连",message:`这台设备将不再直连 ${P}(存储桶仍在服务器上;本设备在线时照常经服务器同步)。`,confirmLabel:"取消直连",danger:!0}))return;await s0("removeStorageReplica",I).catch((y)=>Q0(y.message)),W()},L=(I)=>Z?s0("storagePeerConfig",I):Z0.serverS3Config(I),B=((Z?K:X)??[]).map((I)=>({url:I.url,name:I.label||I.bucket||I.url})),M=()=>j9(G(YR,{buckets:B,getConfig:L,server:!Z,onPaired:()=>{q9(),W()}},void 0,!1,void 0,this)),C=(I,P,V)=>b0(I,(y)=>G(t,{children:[V&&G(q0,{icon:"link",label:"取消本设备直连",onClick:()=>{y(),A(P.url,P.label||P.bucket||P.url)}},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"移除存储桶",danger:!0,onClick:()=>{y(),_(P.url,P.label||P.bucket||P.url)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)),R=(Z?K:X)?.length?!0:!1;return G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"在所有设备间同步"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"连一个云端存储桶,手机、电脑就保持同步——不必开公网服务器,对方离线也收得到,内容端到端加密。"},void 0,!1,void 0,this),G("div",{class:"set-meta",children:G("span",{class:"set-meta-item",children:[G(g,{name:J||!Z?"globe":"cube",cls:"ico sm"},void 0,!1,void 0,this),J?"连一个云端存储桶,这台设备就和你的手机、其他电脑自动保持同步。":Z?"这台设备就是工作区的家,其他设备扫码加入即可一起同步。":"存储桶连在服务器上,所有设备自动共享;信任本设备后,它离线、在外时也能直接同步。"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G("details",{class:"set-disclosure",children:[G("summary",{children:"它是怎么工作的"},void 0,!1,void 0,this),G("div",{class:"set-disclosure-body",children:['存储桶只当"哑"中转:每台设备把自己的变更加密上传、再拉取别人的——谁都不必同时在线,也不需要公网 IP。',J?"这台设备把自己的变更发布到桶,其他设备从桶拉取;新设备扫码加入即可一起同步。":Z?"这台设备把整个工作区发布到桶,新设备扫码加入后从桶秒恢复。":"密钥只存在服务器,不会同步到浏览器;信任的设备重输一次密钥即可直接同步,离线、在外也不中断。添加时会自动为本站点开通桶的访问权限(CORS)。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z&&!$?G("div",{class:"peer-sub",style:"margin-top:12px",children:"⚠ 请先在上方把这台设备设为「信任此设备」,再连接存储桶。"},void 0,!1,void 0,this):G(t,{children:[G("div",{class:"peer-actions",style:{marginTop:14},children:[G("button",{class:"btn btn-primary",onClick:F,children:[G(g,{name:"cube",cls:"ico sm"},void 0,!1,void 0,this)," 连接存储桶"]},void 0,!0,void 0,this),(!Z||B.length>0)&&G("button",{class:"btn btn-secondary",onClick:M,children:[G(g,{name:"monitor",cls:"ico sm"},void 0,!1,void 0,this)," 添加设备"]},void 0,!0,void 0,this),R&&G("button",{class:"btn btn-secondary",onClick:N,children:[G(g,{name:"cloudUp",cls:"ico sm"},void 0,!1,void 0,this)," 立即同步"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"peer-list flush",children:J?X==null?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):X.length===0?G("div",{class:"muted",children:"还没连接存储桶——连一个,所有设备就能保持同步。"},void 0,!1,void 0,this):X.map((I)=>{let P=I.label||I.bucket||I.url;return G("div",{class:"peer-row",children:[G("span",{class:"peer-dot"+(I.enabled?I.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),G("div",{class:"peer-main",children:[G("div",{class:"peer-url",children:P},void 0,!1,void 0,this),G("div",{class:"peer-sub",children:[I.endpoint?z1(I.endpoint)+" · ":"","最近同步 ",f6(I.lastSyncAt),I.status==="error"&&I.error?` · 错误:${I.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost peer-menu",title:"移除",onClick:()=>_(I.url,P),children:G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},I.url,!0,void 0,this)}):Z?K==null?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):K.length===0?G("div",{class:"muted",children:"还没连接存储桶——连一个,手机、电脑就能免公网服务器互通。"},void 0,!1,void 0,this):K.map((I)=>{let P=I.label||I.bucket||I.url;return G("div",{class:"peer-row",children:[G("span",{class:"peer-dot"+(I.enabled?I.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),G("div",{class:"peer-main",children:[G("div",{class:"peer-url",children:P},void 0,!1,void 0,this),G("div",{class:"peer-tags",children:G("span",{class:"peer-tag",children:[G(g,{name:"upload",cls:"ico"},void 0,!1,void 0,this)," 本机发布"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),G("div",{class:"peer-sub",children:[I.endpoint?z1(I.endpoint)+" · ":"","最近同步 ",f6(I.lastSyncAt),I.status==="error"&&I.error?` · 错误:${I.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost peer-menu",title:"移除",onClick:()=>_(I.url,P),children:G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},I.url,!0,void 0,this)}):X==null?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):X.length===0?G("div",{class:"muted",children:"还没连接存储桶——连一个,所有设备就能免公网服务器互通。"},void 0,!1,void 0,this):X.map((I)=>{let P=I.label||I.bucket||I.url,V=$&&U.has(I.url);return G("div",{class:"peer-row",children:[G("span",{class:"peer-dot"+(I.enabled?I.status==="error"?" err":" on":" off")},void 0,!1,void 0,this),G("div",{class:"peer-main",children:[G("div",{class:"peer-url",children:P},void 0,!1,void 0,this),G("div",{class:"peer-tags",children:[G("span",{class:"peer-tag",children:[G(g,{name:"globe",cls:"ico"},void 0,!1,void 0,this)," 服务器同步"]},void 0,!0,void 0,this),$?V?G("span",{class:"peer-tag ok",children:[G(g,{name:"link",cls:"ico"},void 0,!1,void 0,this)," 本机已直连"]},void 0,!0,void 0,this):G("button",{class:"peer-tag act",onClick:()=>O(I),children:[G(g,{name:"link",cls:"ico"},void 0,!1,void 0,this)," 让本机直接同步"]},void 0,!0,void 0,this):G("span",{class:"peer-tag muted",children:"信任本设备后可直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"peer-sub",children:[I.endpoint?z1(I.endpoint)+" · ":"","最近同步 ",f6(I.lastSyncAt),I.status==="error"&&I.error?` · 错误:${I.error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost peer-menu",title:"更多",onClick:(y)=>C(y,I,V),children:G(g,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},I.url,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function JR({peer:Z,onDone:J}){let[$,Q]=b(""),[X,z]=b(""),[K,Y]=b(!1),q=Z.endpoint?z1(Z.endpoint):"",W=async()=>{if(!$.trim())return Q0("密钥必填");if(Z.encrypt&&!X)return Q0("加密口令必填");if(!Z.endpoint||!Z.bucket||!Z.accessKeyId)return Q0("服务器未提供该桶的完整配置,无法在本设备激活");Y(!0);try{let U={endpoint:Z.endpoint,region:Z.region||"auto",bucket:Z.bucket,prefix:Z.prefix||"metahub",accessKeyId:Z.accessKeyId,secretAccessKey:$.trim(),encrypt:Z.encrypt,...Z.virtualHostedStyle!=null?{virtualHostedStyle:Z.virtualHostedStyle}:{},publish:!1};await s0("addStorageReplica",U,X),Q0("已让本机直连存储桶 · 离线、在外也能直接同步"),J()}catch(U){let H=U.message;Q0(FH(H)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE。":`启用失败:${H}`),Y(!1)}};return G(v9,{title:"在本设备启用直连",sub:"服务器已配置这个存储桶。为保护密钥,服务器不会把它同步到浏览器——再输入一次密钥,这台设备就能与桶直接同步(离线、在外也不中断)。",footer:G(t,{children:[G("button",{class:"btn btn-secondary",onClick:q9,disabled:K,children:"取消"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:W,disabled:K,children:K?"连接中…":"启用直连"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[G("div",{class:"activate-id",children:[G("div",{class:"activate-id-row",children:[G("span",{children:"存储桶"},void 0,!1,void 0,this),G("b",{children:Z.bucket},void 0,!1,void 0,this)]},void 0,!0,void 0,this),q&&G("div",{class:"activate-id-row",children:[G("span",{children:"服务地址"},void 0,!1,void 0,this),G("b",{children:q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z.accessKeyId&&G("div",{class:"activate-id-row",children:[G("span",{children:"访问密钥 ID"},void 0,!1,void 0,this),G("b",{children:eI(Z.accessKeyId)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"field-label",children:"密钥"},void 0,!1,void 0,this),G("input",{class:"text-input",type:"password",autofocus:!0,placeholder:"重新输入该桶的密钥",value:$,onInput:(U)=>Q(U.target.value),onKeyDown:(U)=>!Z.encrypt&&U.key==="Enter"&&W()},void 0,!1,void 0,this),Z.encrypt&&G(t,{children:[G("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),G("input",{class:"text-input",type:"password",placeholder:"与其它设备相同的加密口令",value:X,onInput:(U)=>z(U.target.value),onKeyDown:(U)=>U.key==="Enter"&&W()},void 0,!1,void 0,this),G("div",{class:"set-hint",children:"跨设备共用的那把加密钥——用它解开桶里别人的数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}var f3="mh_shell_base";function $R(Z,J){return`${(Z||location.origin).replace(/\/+$/,"")}/#enroll=${j1(J)}`}function HH({data:Z}){let J=$H(0,"H");J.addData(Z),J.make();let $=J.getModuleCount(),Q=2,X=$/2,z=Math.max(5,Math.floor($*0.22)),K=z/2,Y=(O,N)=>O<7&&N<7||O<7&&N>=$-7||O>=$-7&&N<7,q=(O,N)=>Math.abs(O+0.5-X)<K&&Math.abs(N+0.5-X)<K,W=[];for(let O=0;O<$;O++)for(let N=0;N<$;N++){if(!J.isDark(O,N)||Y(O,N)||q(O,N))continue;W.push(G("circle",{cx:N+0.5,cy:O+0.5,r:0.45,fill:"var(--qr-fg)"},O*$+N,!1,void 0,this))}let U=(O,N)=>G(t,{children:[G("rect",{x:N+0.5,y:O+0.5,width:6,height:6,rx:2,ry:2,fill:"none",stroke:"var(--qr-fg)","stroke-width":1},void 0,!1,void 0,this),G("rect",{x:N+2,y:O+2,width:3,height:3,rx:1,fill:"var(--qr-fg)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H=z+0.6,F=z*0.62/24;return G("div",{class:"qr-box",children:G("svg",{viewBox:`${-Q} ${-Q} ${$+Q*2} ${$+Q*2}`,"shape-rendering":"geometricPrecision",children:[W,U(0,0),U(0,$-7),U($-7,0),G("rect",{x:X-H/2,y:X-H/2,width:H,height:H,rx:H*0.26,ry:H*0.26,fill:"var(--qr-bg)"},void 0,!1,void 0,this),G("g",{class:"qr-cube",transform:`translate(${X} ${X}) scale(${F}) translate(-12 -12)`,fill:"none",stroke:"var(--qr-fg)","stroke-width":1.6,"stroke-linejoin":"round","stroke-linecap":"round",children:[G("path",{class:"qr-cube-edge qr-cube-outer",pathLength:1,d:S1},void 0,!1,void 0,this),G("path",{class:"qr-cube-edge qr-cube-inner",pathLength:1,d:b1},void 0,!1,void 0,this),G("path",{class:"qr-cube-glint",pathLength:1,d:S1},void 0,!1,void 0,this),G("path",{class:"qr-cube-glint",pathLength:1,d:b1},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function e5({text:Z,label:J,done:$,primary:Q}){return G("button",{class:"btn "+(Q?"btn-primary":"btn-secondary"),style:{width:"100%",marginTop:10},onClick:()=>{navigator.clipboard?.writeText(Z),Q0($)},children:[G(g,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)," ",J]},void 0,!0,void 0,this)}function QR({config:Z}){let[J,$]=b(()=>{try{return localStorage.getItem(f3)||location.origin}catch{return location.origin}}),Q=$R(J,Z),X=(z)=>{$(z);try{z?localStorage.setItem(f3,z):localStorage.removeItem(f3)}catch{}};return G(t,{children:[G(HH,{data:Q},void 0,!1,void 0,this),G("div",{class:"field-label",children:"壳地址(手机访问的静态站点域名;留空用当前地址)"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:location.origin,value:J,onInput:(z)=>X(z.target.value)},void 0,!1,void 0,this),G(e5,{text:Q,label:"复制链接",done:"已复制链接"},void 0,!1,void 0,this),G("div",{class:"peer-sub",style:"margin-top:8px",children:"手机相机扫码打开,输入加密口令即可同步。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function XR({config:Z}){let J=j1(Z),$=`mh config peer add --s3 --enroll ${J}`;return G(t,{children:[G("div",{class:"field-label",children:"在另一台电脑的终端运行"},void 0,!1,void 0,this),G("div",{class:"enroll-cmd",children:$},void 0,!1,void 0,this),G(e5,{text:$,label:"复制命令",done:"已复制命令",primary:!0},void 0,!1,void 0,this),G(e5,{text:J,label:"复制接入码",done:"已复制接入码"},void 0,!1,void 0,this),G("div",{class:"peer-sub",style:"margin-top:8px",children:["对方运行后会提示输入加密口令。也可在 ",G("code",{children:"mh config"},void 0,!1,void 0,this)," 向导选「粘贴接入码加入存储」。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function zR({code:Z,exp:J}){let[$,Q]=b(Math.max(0,Math.round((J-Date.now())/1000)));J0(()=>{let K=setInterval(()=>Q(Math.max(0,Math.round((J-Date.now())/1000))),1000);return()=>clearInterval(K)},[J]);let X=Math.floor($/60),z=String($%60).padStart(2,"0");return G(t,{children:[G("div",{class:"pair-code",children:Z},void 0,!1,void 0,this),G("div",{class:"muted",style:{textAlign:"center",marginTop:8},children:$>0?`${X}:${z} 后过期`:"已过期,请重新生成"},void 0,!1,void 0,this),G(e5,{text:Z,label:"复制配对码",done:"已复制配对码"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function KR({onPaired:Z}){let[J,$]=b(null),[Q,X]=b(!1),z=async()=>{X(!0);try{$(await Z0.newPairingCode())}catch(M){Q0(`生成失败:${M.message}`)}finally{X(!1)}},[K,Y]=b(""),[q,W]=b(""),[U,H]=b(location.origin),[F,O]=b(!1),N=async()=>{if(!K.trim()||!q.trim())return Q0("地址和配对码必填");O(!0);try{let M=await Z0.addPeerByPairing({url:K.trim(),code:q.trim(),self_url:U.trim()||void 0});await Z0.syncPeer(M.url).catch(()=>{}),Q0(`已配对 ${M.url}`),Z()}catch(M){Q0(`配对失败:${M.message}`),O(!1)}},[_,A]=b(()=>{try{return localStorage.getItem(g3)||location.origin}catch{return location.origin}}),L=(M)=>{A(M);try{M?localStorage.setItem(g3,M):localStorage.removeItem(g3)}catch{}},B=GR(_,a2());return G(t,{children:[G("div",{class:"enroll-section",children:"邀请另一台服务器配对"},void 0,!1,void 0,this),J?G(zR,{code:J.code,exp:J.exp},void 0,!1,void 0,this):G("button",{class:"btn btn-secondary",style:{width:"100%"},disabled:Q,onClick:z,children:[G(g,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)," ",Q?"生成中…":"生成本机配对码"]},void 0,!0,void 0,this),G("div",{class:"enroll-sep"},void 0,!1,void 0,this),G("div",{class:"enroll-section",children:"已有对方的配对码?"},void 0,!1,void 0,this),G("div",{class:"field-label",children:"对方服务器地址"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"http://192.168.1.10:7777",value:K,onInput:(M)=>Y(M.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"配对码"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"对方「生成本机配对码」得到的码",value:q,onInput:(M)=>W(M.target.value),onKeyDown:(M)=>M.key==="Enter"&&N()},void 0,!1,void 0,this),G("div",{class:"field-label",children:"本机可达地址(可选)"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"留空则仅本机主动同步",value:U,onInput:(M)=>H(M.target.value)},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",style:{width:"100%",marginTop:10},disabled:F,onClick:N,children:F?"配对中…":"配对"},void 0,!1,void 0,this),G("div",{class:"enroll-sep"},void 0,!1,void 0,this),G("div",{class:"enroll-section",children:"在手机上打开本服务器"},void 0,!1,void 0,this),G(HH,{data:B},void 0,!1,void 0,this),G("div",{class:"field-label",children:"服务器地址(手机访问的域名;留空用当前地址)"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:location.origin,value:_,onInput:(M)=>L(M.target.value)},void 0,!1,void 0,this),G(e5,{text:B,label:"复制链接",done:"已复制链接"},void 0,!1,void 0,this),G("div",{class:"peer-sub",style:"margin-top:8px",children:"⚠ 含访问令牌,请勿公开分享。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function YR({buckets:Z,getConfig:J,server:$,onPaired:Q}){let X=Z.length>0,z=[...X?[{id:"phone",label:"手机扫码"},{id:"cli",label:"电脑 / 命令行"}]:[],...$?[{id:"server",label:"高级:服务器配对"}]:[]],[K,Y]=b(z[0]?.id??"server"),[q,W]=b(Z[0]?.url??""),[U,H]=b(null),[F,O]=b("");return J0(()=>{if(!X||!q)return;let N=!0;return H(null),O(""),J(q).then((_)=>{if(!N)return;_?H(_):O("找不到该存储的配置")}).catch((_)=>N&&O(_.message)),()=>{N=!1}},[q]),G(v9,{title:"添加设备",sub:"让另一台设备加入同一个工作区——手机扫码,或在电脑上粘贴接入码。",footer:G("button",{class:"btn btn-primary",onClick:q9,children:"完成"},void 0,!1,void 0,this),width:420,children:[z.length>1&&G("div",{class:"add-tabs",children:z.map((N)=>G("button",{class:"add-tab"+(K===N.id?" on":""),onClick:()=>Y(N.id),children:N.label},N.id,!1,void 0,this))},void 0,!1,void 0,this),(K==="phone"||K==="cli")&&G(t,{children:[Z.length>1&&G(t,{children:[G("div",{class:"field-label",children:"存储桶"},void 0,!1,void 0,this),G("select",{class:"text-input",value:q,onChange:(N)=>W(N.target.value),children:Z.map((N)=>G("option",{value:N.url,children:N.name},N.url,!1,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F?G("div",{class:"enroll-err",children:F},void 0,!1,void 0,this):!U?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):K==="phone"?G(QR,{config:U},void 0,!1,void 0,this):G(XR,{config:U},void 0,!1,void 0,this),U&&G("div",{class:"peer-sub",style:"margin-top:8px",children:"⚠ 接入码含桶访问密钥,请勿公开分享;不含加密口令——新设备需另输口令。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K==="server"&&G(KR,{onPaired:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function FH(Z){return/failed to fetch|load failed|networkerror|cors/i.test(Z)}var g3="mh_server_base";function GR(Z,J){let $=(Z||location.origin).replace(/\/+$/,"");return J?`${$}/?token=${encodeURIComponent(J)}`:$}var t5=[{id:"r2",name:"Cloudflare R2",region:"auto",ph:"https://<账户ID>.r2.cloudflarestorage.com",hint:"R2 控制台 → 管理 R2 API 令牌,创建 S3 凭据;区域填 auto。免费额度 10GB。"},{id:"s3",name:"Amazon S3",region:"us-east-1",ph:"https://s3.<区域>.amazonaws.com",hint:"IAM 用户的访问密钥;区域如 us-east-1。"},{id:"minio",name:"MinIO",region:"us-east-1",ph:"https://minio.你的域名",hint:"自建 MinIO 的访问地址与 access / secret key。"},{id:"cos",name:"腾讯云 COS",region:"ap-shanghai",ph:"https://<桶名-APPID>.cos.<区域>.myqcloud.com",hint:"桶名须含 APPID,用虚拟主机风格地址(host 以桶名开头)。"},{id:"custom",name:"自定义",region:"auto",ph:"https://s3.example.com",hint:"任何 S3 兼容对象存储。"}];function qR({onDone:Z,toServer:J,alsoReplica:$}){let[Q,X]=b(""),[z,K]=b(""),[Y,q]=b("auto"),[W,U]=b(""),[H,F]=b(""),[O,N]=b("metahub"),[_,A]=b(!0),[L,B]=b(""),[M,C]=b(!1),[R,I]=b("r2"),P=t5.find((k)=>k.id===R)??t5[4],V=(k)=>{I(k);let j=t5.find((w)=>w.id===k);if(j&&t5.some((w)=>w.region===Y))q(j.region)},y=async()=>{if(!Q.trim()||!z.trim()||!W.trim()||!H.trim()){Q0("服务地址、桶名称、访问密钥 ID、密钥都要填");return}if(_&&!L){Q0("加密口令必填(或关闭加密)");return}C(!0);try{let k={endpoint:Q.trim(),region:Y.trim()||"auto",bucket:z.trim(),prefix:O.trim()||"metahub",accessKeyId:W.trim(),secretAccessKey:H.trim(),encrypt:_};if(J){if(await Z0.addServerS3Peer({...k,passphrase:L,corsOrigins:[location.origin]}),$)await s0("addStorageReplica",{...k,publish:!1},L)}else await s0("addStorageReplica",k,L);Q0(J?$?"已连接存储桶 · 服务器开始同步到桶,这台设备也直接同步":"已连接存储桶 · 服务器开始同步到桶":"已连接存储桶 · 这台设备开始同步到桶"),Z()}catch(k){let j=k.message;Q0(FH(j)?"连接被浏览器拦截:请给存储桶配置 CORS,允许此源的 GET/PUT/HEAD/DELETE(R2 控制台一条规则即可)。":`添加失败:${j}`),C(!1)}};return G(v9,{title:"连接存储桶",sub:"连接一个 S3 兼容存储桶,所有设备就能同步——不需要公网服务器。新桶自动初始化;已有桶用相同加密口令即可加入。",footer:G(t,{children:[G("button",{class:"btn btn-secondary",onClick:q9,disabled:M,children:"取消"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:y,disabled:M,children:M?"连接中…":"连接"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[G("div",{class:"set-hint",style:{marginTop:0,marginBottom:12},children:J?"连接后,云端工作区负责把整库同步到这个桶;这台设备和其他设备都从它同步。":"连接后,这台设备(本机)把整库同步到这个桶;新设备扫码加入即可一起用。"},void 0,!1,void 0,this),G("div",{class:"field-label",children:"存储服务商"},void 0,!1,void 0,this),G("div",{class:"provider-grid",children:t5.map((k)=>G("button",{class:"provider-chip"+(R===k.id?" sel":""),"aria-pressed":R===k.id,onClick:()=>V(k.id),children:k.name},k.id,!1,void 0,this))},void 0,!1,void 0,this),G("div",{class:"set-hint",children:P.hint},void 0,!1,void 0,this),G("div",{class:"field-label",children:"服务地址"},void 0,!1,void 0,this),G("input",{class:"text-input",autofocus:!0,placeholder:P.ph,value:Q,onInput:(k)=>X(k.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"桶名称"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"my-metahub",value:z,onInput:(k)=>K(k.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"访问密钥 ID"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"Access Key ID",value:W,onInput:(k)=>U(k.target.value)},void 0,!1,void 0,this),G("div",{class:"field-label",children:"密钥"},void 0,!1,void 0,this),G("input",{class:"text-input",type:"password",placeholder:"Secret Access Key",value:H,onInput:(k)=>F(k.target.value)},void 0,!1,void 0,this),G("label",{class:"set-check-row",style:{marginTop:14},children:[G("input",{type:"checkbox",checked:_,onChange:(k)=>A(k.target.checked)},void 0,!1,void 0,this),G("span",{children:"端到端加密(强烈建议;关闭后文件以明文存放,仅限完全信任的存储)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_&&G(t,{children:[G("div",{class:"field-label",children:"加密口令"},void 0,!1,void 0,this),G("input",{class:"text-input",type:"password",placeholder:"新桶以此创建;其它设备用同一口令加入",value:L,onInput:(k)=>B(k.target.value),onKeyDown:(k)=>k.key==="Enter"&&y()},void 0,!1,void 0,this),G("div",{class:"set-hint",children:"这是跨设备共用的一把加密钥——记牢它,换设备 / 加入已有桶时都要用它解开数据。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("details",{class:"set-disclosure",style:{marginTop:14},children:[G("summary",{children:"进阶"},void 0,!1,void 0,this),G("div",{class:"set-disclosure-body",children:[G("div",{class:"field-label",style:{marginTop:0},children:"区域"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:P.region,value:Y,onInput:(k)=>q(k.target.value)},void 0,!1,void 0,this),G("div",{class:"set-hint",children:"大多按服务商默认即可(R2 用 auto)。"},void 0,!1,void 0,this),G("div",{class:"field-label",children:"路径前缀"},void 0,!1,void 0,this),G("input",{class:"text-input",placeholder:"metahub",value:O,onInput:(k)=>N(k.target.value)},void 0,!1,void 0,this),G("div",{class:"set-hint",children:"同一个桶里隔离多个工作区时用;默认 metahub。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function WR({onUpdatePending:Z}){let J=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0,[$,Q]=b(null),[X,z]=b(null),[K,Y]=b(null),[q,W]=b(null),[U,H]=b("idle"),[F,O]=b(""),[N,_]=b(null);J0(()=>{Z0.version().then((P)=>z(P.version)).catch(()=>z(null)),(typeof window<"u"?window.metahubDesktop:void 0)?.appVersion?.().then(Q).catch(()=>Q(null)),J?.installedVersion().then(Y).catch(()=>Y(null))},[]),J0(()=>{if(U==="idle"&&X&&K&&a8(K,X)>0)H("staged"),Z?.(!0)},[X,K]);let A=()=>{if(X&&K)return a8(K,X)>0?K:X;return K??X},L=()=>!!(X&&K&&a8(K,X)>0),B=async()=>{H("checking"),O("");try{let{latest:I}=await J.check();if(!I){O("无法获取最新版本(网络不可用或 GitHub API 受限)"),H("error");return}let P=A();if(!P||a8(I,P)>0)W(I),H("available"),Z?.(!0);else Q0("已是最新版本"),H(L()?"staged":"idle")}catch(I){O(I.message),H("error")}},M=async()=>{H("downloading"),_(null),O("");let I=J.onDownloadProgress?.((P)=>_(P));try{let P=await J.download();if(P)Y(P),H("staged"),Z?.(!0),Q0(`已下载 v${P}`);else Q0("已是最新版本"),H(L()?"staged":"idle")}catch(P){O(P.message),H("error")}finally{I?.()}},C=null;if(J)switch(U){case"checking":C=G("span",{class:"ver-act","aria-disabled":"true",children:"检查中…"},void 0,!1,void 0,this);break;case"downloading":{let I=N&&N.total>0?Math.min(100,Math.round(N.received/N.total*100)):null;C=G("span",{class:"ver-up ver-dl",children:[G("span",{class:`ver-bar${I==null?" indet":""}`,children:G("span",{class:"ver-bar-fill",style:I!=null?{width:`${I}%`}:void 0},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"ver-num",children:I!=null?`${I}%`:"下载中…"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break}case"available":C=G("span",{class:"ver-up",children:[G("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),G("span",{children:["新版本 ",G("span",{class:"ver-num",children:q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"ver-act accent",onClick:M,title:`下载并更新到 v${q}`,children:"下载"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"staged":C=G("span",{class:"ver-up",children:[G("span",{class:"ver-dot pulse"},void 0,!1,void 0,this),G("span",{children:[G("span",{class:"ver-num",children:K},void 0,!1,void 0,this)," 待重启"]},void 0,!0,void 0,this),G("button",{class:"ver-act accent",onClick:()=>void J.restart(),title:`重启应用以更新到 v${K}`,children:"重启"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;case"error":C=G("span",{class:"ver-up err",children:[G("span",{class:"ver-msg",children:"检查失败"},void 0,!1,void 0,this),G("button",{class:"ver-act",onClick:B,title:F||"重试",children:"重试"},void 0,!1,void 0,this)]},void 0,!0,void 0,this);break;default:C=G("button",{class:"ver-act",onClick:B,children:"检查更新"},void 0,!1,void 0,this)}let R=!$&&!X&&x3;return G("div",{class:"set-footer",children:[$&&G("span",{children:["App ",G("span",{class:"ver-num",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$&&X&&G("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),X&&G("span",{children:["Core ",G("span",{class:"ver-num",children:X},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R&&G("span",{class:"ver-num",children:["v",x3]},void 0,!0,void 0,this),C&&(X||$||R)&&G("span",{class:"set-footer-sep",children:"·"},void 0,!1,void 0,this),C]},void 0,!0,void 0,this)}var m3="CommandOrControl+Shift+Space";function UR(Z){if(["Control","Meta","Alt","Shift"].includes(Z.key))return null;let J=[];if(Z.metaKey||Z.ctrlKey)J.push("CommandOrControl");if(Z.altKey)J.push("Alt");if(Z.shiftKey)J.push("Shift");let $=Z.key;if($===" ")$="Space";else if($.startsWith("Arrow"))$=$.slice(5);else if($.length===1)$=$.toUpperCase();if(J.length===0)return null;return J.push($),J.join("+")}var HR=new Set(["⌘","⌥","⇧","⌃"]);function OH(Z){let J=typeof window<"u"&&window.metahubDesktop?.platform==="darwin";return Z.split("+").map(($)=>$==="CommandOrControl"?J?"⌘":"Ctrl":$==="Alt"?J?"⌥":"Alt":$==="Shift"?J?"⇧":"Shift":$)}function FR(Z){let J=typeof window<"u"&&window.metahubDesktop?.platform==="darwin";return OH(Z).join(J?" ":"+")}function OR(){let Z=window.metahubDesktop.quicknote,[J,$]=b(m3),[Q,X]=b(!1),[z,K]=b(!1);J0(()=>{Z.getSettings().then((U)=>{$(U.shortcut),X(U.alwaysOnTop)}).catch((U)=>Q0(`加载失败:${U.message}`))},[]);let Y=async(U)=>{try{let H=await Z.setShortcut(U);$(H.shortcut),Q0(`快捷键已设为 ${FR(H.shortcut)}`)}catch(H){Q0(`设置失败:${H.message}`)}},q=(U)=>{if(U.preventDefault(),U.key==="Escape"){K(!1);return}let H=UR(U);if(!H)return;K(!1),Y(H)},W=async()=>{let U=!Q;X(U);try{X(await Z.setAlwaysOnTop(U))}catch(H){X(!U),Q0(`设置失败:${H.message}`)}};return G("div",{class:"set-block",children:[G("div",{class:"set-block-desc",children:"用全局快捷键随时唤起小窗记录想法。小窗也可从菜单栏图标打开。"},void 0,!1,void 0,this),G("div",{class:"qn-set-row",children:[G("div",{class:"qn-set-main",children:[G("div",{class:"qn-set-name",children:"唤起快捷键"},void 0,!1,void 0,this),G("div",{class:"qn-set-desc",children:"点击下方按钮,然后按下你想用的组合键。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-secondary qn-shortcut"+(z?" capturing":""),onClick:()=>K(!0),onBlur:()=>K(!1),onKeyDown:z?q:void 0,children:z?"按下组合键…":G("span",{class:"qn-keys",children:OH(J).map((U)=>G("span",{class:"qn-key"+(HR.has(U)?" sym":""),children:U},void 0,!1,void 0,this))},void 0,!1,void 0,this)},void 0,!1,void 0,this),J!==m3&&G("button",{class:"btn btn-ghost",title:"重置默认",onClick:()=>void Y(m3),children:"重置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"qn-set-row",children:[G("div",{class:"qn-set-main",children:[G("div",{class:"qn-set-name",children:"默认始终置顶"},void 0,!1,void 0,this),G("div",{class:"qn-set-desc",children:"小窗浮在其他窗口之上;也可在小窗内用 \uD83D\uDCCC 按钮切换。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn "+(Q?"btn-primary":"btn-secondary"),"aria-pressed":Q,onClick:()=>void W(),children:Q?"已开启":"已关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function f6(Z){if(!Z)return"从未";return new Date(Z).toLocaleString()}function NR(){let[Z,J]=b(null),$=()=>Z0.listPeers().then(J).catch((Y)=>Q0(`加载失败:${Y.message}`));J0(()=>{$()},[]);let Q=async(Y)=>{try{let q=await Z0.syncPeer(Y.url);Q0(q.ok?`已同步:推送 ${q.pushed},拉取 ${q.pulled}`:`同步失败:${q.error}`),$()}catch(q){Q0(`同步失败:${q.message}`)}},X=async(Y)=>{await Z0.updatePeer(Y.url,{enabled:!Y.enabled}).catch((q)=>Q0(q.message)),$()},z=async(Y)=>{if(!await m0({title:"移除同步设备",message:`确定移除 ${Y.url}?将停止与该设备的数据同步。`,confirmLabel:"移除",danger:!0}))return;await Z0.removePeer(Y.url).catch((W)=>Q0(W.message)),$()},K=(Y,q)=>b0(Y,(W)=>G(t,{children:[G(q0,{icon:"share",label:"立即同步",onClick:()=>{W(),Q(q)}},void 0,!1,void 0,this),G(q0,{icon:q.enabled?"eyeOff":"check",label:q.enabled?"禁用":"启用",onClick:()=>{W(),X(q)}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"移除",danger:!0,onClick:()=>{W(),z(q)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));return G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"同步设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"已直接配对的设备(服务器 HTTP 双向同步)。新增请用上方「同步 → 添加设备 → 高级:服务器配对」。"},void 0,!1,void 0,this),G("div",{class:"peer-list flush",children:Z==null?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?G("div",{class:"muted",children:"还没有配对的设备。"},void 0,!1,void 0,this):Z.map((Y)=>G("div",{class:"peer-row",children:[G("span",{class:"peer-dot"+(Y.enabled?Y.last_status==="error"?" err":" on":" off")},void 0,!1,void 0,this),G("div",{class:"peer-main",children:[G("div",{class:"peer-url",children:Y.label||Y.url},void 0,!1,void 0,this),G("div",{class:"peer-sub",children:[Y.enabled?"已启用":"已禁用"," · 最近同步 ",f6(Y.last_success_at),Y.last_status==="error"&&Y.last_error?` · 错误:${Y.last_error}`:""]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost peer-menu",onClick:(q)=>K(q,Y),children:G(g,{name:"dots",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},Y.url,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function BR(){let[Z,J]=b(null),$=()=>Z0.listGrants().then(J).catch((X)=>Q0(`加载失败:${X.message}`));J0(()=>{$()},[]);let Q=async(X)=>{if(!await m0({title:"吊销凭据",message:`吊销后,持有此凭据的设备${X.peer_url?`(${X.peer_url})`:""}将无法再同步进本机。`,confirmLabel:"吊销",danger:!0}))return;await Z0.revokeGrant(X.token).catch((K)=>Q0(K.message)),$()};return G("div",{class:"set-block",children:[G("div",{class:"set-block-head",children:G("span",{class:"set-block-title",children:"已授权设备"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"set-block-desc",children:"本机签发、允许其他设备同步进来的凭据。吊销即断开对方的入站访问。"},void 0,!1,void 0,this),G("div",{class:"peer-list flush",children:Z==null?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):Z.length===0?G("div",{class:"muted",children:"还没有签发任何凭据。"},void 0,!1,void 0,this):Z.map((X)=>G("div",{class:"peer-row",children:[G("span",{class:"peer-dot on"},void 0,!1,void 0,this),G("div",{class:"peer-main",children:[G("div",{class:"peer-url",children:X.peer_url||"(未知地址)"},void 0,!1,void 0,this),G("div",{class:"peer-sub",children:[X.token.slice(0,8),"… · 签发于 ",f6(X.created_at)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-ghost peer-menu",title:"吊销",onClick:()=>Q(X),children:G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},X.token,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var K1=(Z)=>location.origin+"/sites/"+Z+"/",BH=(Z)=>"/"+Z+"/",_R=(Z)=>(/\.([a-z0-9]+)$/i.exec(Z)?.[1]??"").toLowerCase(),_H=(Z)=>Z.startsWith("image/");function AH(Z){let J=Number(Z.split("-")[0]);if(!Number.isFinite(J)||J<=0)return"—";return new Date(J).toISOString().slice(0,10)}function AR(Z){let J=_R(Z.path);if(["html","htm","js","mjs","css","json","xml"].includes(J))return"code";if(_H(Z.content_type))return"file";if(["md","txt"].includes(J))return"text";return"file"}function Z4(Z){navigator.clipboard?.writeText(Z).catch(()=>{}),Q0("已复制")}function LH(){let[Z,J]=b(null),[$,Q]=b(null),[X,z]=b(null),K=J6(),Y=()=>Z0.listSites().then((U)=>{J(U),Q((H)=>H?U.find((F)=>F.id===H.id)??null:null)}).catch((U)=>Q0(`加载失败:${U.message}`));J0(()=>{Y()},[]);let q=()=>j9(G(LR,{onCreated:(U)=>{Y(),Q(U)}},void 0,!1,void 0,this)),W=(U,H,F)=>{b0(U,(O)=>G(t,{children:[G(q0,{icon:"externalLink",label:"复制访问地址",onClick:()=>{O(),Z4(K1(H.name))}},void 0,!1,void 0,this),G(q0,{icon:"link",label:"通过设备分享…",onClick:()=>{O(),BZ({kind:"site",ref:H.id,title:H.title??H.name})}},void 0,!1,void 0,this),G(q0,{icon:"settings",label:"修改标题…",onClick:async()=>{O();let N=await NZ({title:"修改标题",label:"标题",value:H.title??H.name});if(N==null)return;try{await Z0.updateSite(H.id,{title:N})}catch(_){return Q0(_.message)}Y()}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除站点",danger:!0,onClick:async()=>{if(O(),!await m0({title:"删除站点?",message:`「${H.name}」及其 ${H.file_count} 个文件将被删除。`,confirmLabel:"删除",danger:!0}))return;try{await Z0.deleteSite(H.id)}catch(_){return Q0(_.message)}if(F)Q(null);Y()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return G("div",{class:"db sites-page",children:[G("div",{class:"db-head",children:[G("div",{children:[G("div",{class:"db-title",children:"站点管理"},void 0,!1,void 0,this),G("div",{class:"db-desc",children:"发布静态站点,生成可分享的访问链接。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-primary site-new",onClick:q,children:[G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Z==null?G("div",{class:"muted",style:{padding:20},children:"加载中…"},void 0,!1,void 0,this):Z.length===0?G("div",{class:"site-empty",children:[G("div",{class:"ei",children:G(g,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"et",children:"还没有站点"},void 0,!1,void 0,this),G("div",{class:"ed",children:"站点是一个命名文件桶,发布后可通过 /sites/<name>/ 直接访问。"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:q,children:[G(g,{name:"plus",cls:"ico sm"},void 0,!1,void 0,this),"新建站点"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):G(t,{children:[G("div",{class:"sites-grid",children:Z.map((U,H)=>G("div",{class:"site-card",style:`--i:${H}`,onClick:()=>Q(U),children:[G("div",{class:"site-card-head",children:[G("span",{class:"si",children:G(g,{name:"globe"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"site-card-id",children:[G("div",{class:"slug",children:U.name},void 0,!1,void 0,this),G("div",{class:"ttl"+(U.title?"":" muted"),children:U.title||"未命名站点"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K.has(U.id)&&G("span",{class:"share-badge",title:"已分享 · 管理分享",style:{marginLeft:"auto"},onClick:(F)=>{F.stopPropagation(),BZ({kind:"site",ref:U.id,title:U.title??U.name})},children:G(g,{name:"link"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"site-addr",title:"点击复制访问地址",onClick:(F)=>{F.stopPropagation(),Z4(K1(U.name))},children:[G(g,{name:"link",cls:"ico sm"},void 0,!1,void 0,this),G("span",{children:BH(U.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"site-card-meta",children:[G("span",{children:[G("b",{children:U.file_count},void 0,!1,void 0,this)," 文件"]},void 0,!0,void 0,this),G("span",{class:"dot",children:"·"},void 0,!1,void 0,this),G("span",{children:AH(U.created_hlc)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"site-card-foot",children:[G("button",{class:"btn btn-secondary",style:{flex:1},onClick:(F)=>{F.stopPropagation(),z(U)},children:[G(g,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),"访问"]},void 0,!0,void 0,this),G("button",{class:"iconbtn",title:"更多",onClick:(F)=>{F.stopPropagation(),W(F,U)},children:G(g,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},U.id,!0,void 0,this))},void 0,!1,void 0,this),G("div",{class:"gridfoot",children:[G("span",{children:["共 ",Z.length," 个站点"]},void 0,!0,void 0,this),G("span",{children:[Z.reduce((U,H)=>U+H.file_count,0)," 个文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$&&G(PR,{site:$,onClose:()=>Q(null),onVisit:()=>z($),onMenu:(U)=>W(U,$,!0),onChanged:Y},void 0,!1,void 0,this),X&&G(MR,{site:X,onClose:()=>z(null)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function LR({onCreated:Z}){let[J,$]=b(""),[Q,X]=b(""),z=async()=>{let K=J.trim().toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/^-+|-+$/g,"");if(!K)return Q0("请填写站点名称");try{let Y=await Z0.createSite({name:K,title:Q.trim()||void 0});q9(),Q0(`已创建站点「${K}」`),Z(Y)}catch(Y){Q0(Y.message)}};return G(v9,{title:"新建站点",sub:"创建一个命名文件桶,随同步无冲突复制。",footer:G(t,{children:[G("button",{class:"btn btn-secondary",onClick:q9,children:"取消"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:z,children:"创建"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[G("div",{class:"field-label",children:"名称(slug)"},void 0,!1,void 0,this),G("input",{class:"text-input",autofocus:!0,value:J,placeholder:"例如:docs、demo、status",onInput:(K)=>$(K.target.value),onKeyDown:(K)=>{if(K.key==="Enter")z()}},void 0,!1,void 0,this),G("div",{class:"field-label",children:"标题(可选)"},void 0,!1,void 0,this),G("input",{class:"text-input",value:Q,placeholder:"人类可读的标题",onInput:(K)=>X(K.target.value),onKeyDown:(K)=>{if(K.key==="Enter")z()}},void 0,!1,void 0,this),G("div",{class:"muted",style:{fontSize:12,marginTop:10},children:["将通过 ",G("span",{style:{fontFamily:"var(--mono)"},children:"/sites/<名称>/"},void 0,!1,void 0,this)," 对外提供。"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function PR({site:Z,onClose:J,onVisit:$,onMenu:Q,onChanged:X}){let[z,K]=b(null),Y=G0(null),{open:q,close:W}=V8(J),U=()=>Z0.listSiteFiles(Z.id).then(K).catch((_)=>Q0(_.message));J0(()=>{let _=!1;return K(null),Z0.listSiteFiles(Z.id).then((A)=>!_&&K(A)).catch((A)=>!_&&Q0(A.message)),()=>{_=!0}},[Z.id]);let H=async(_)=>{let A=_.target,L=Array.from(A.files??[]);if(A.value="",!L.length)return;let B=0;try{for(let M of L)await Z0.uploadSiteFile(Z.id,M.name,M),B++;Q0(`已上传 ${B} 个文件`)}catch(M){Q0(`已上传 ${B}/${L.length} 个,其余失败:${M.message}`)}finally{U(),X()}},F=async(_)=>{if(!await m0({title:"删除文件?",message:`「${_.path}」将从站点「${Z.name}」中删除。`,confirmLabel:"删除",danger:!0}))return;try{await Z0.deleteSiteFile(Z.id,_.path)}catch(L){return Q0(L.message)}U(),X()},O=K1(Z.name),N=BH(Z.name);return G(t,{children:[G("div",{class:"scrim"+(q?" open":""),onClick:W},void 0,!1,void 0,this),G("div",{class:"peek"+(q?" open":""),children:[G("div",{class:"peek-head",children:[G("button",{class:"iconbtn",onClick:W,children:G(g,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{style:{flex:1,display:"flex",alignItems:"center",gap:8,minWidth:0,fontWeight:600,fontSize:14},children:[G(g,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this),G("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:Z.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"btn btn-secondary",onClick:()=>Y.current?.click(),children:[G(g,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this),G("button",{class:"iconbtn",title:"更多",onClick:(_)=>Q(_),children:G(g,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("input",{ref:Y,type:"file",multiple:!0,style:{display:"none"},onChange:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"peek-body",children:[G("h2",{style:{margin:"0 0 20px"},children:Z.title||Z.name},void 0,!1,void 0,this),G("div",{class:"acc-link",children:[G("span",{class:"url",children:N},void 0,!1,void 0,this),G("button",{title:"复制地址",onClick:()=>Z4(O),children:G(g,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"accent",title:"访问站点",onClick:$,children:G(g,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"site-meta",children:[G("span",{children:[G("b",{children:z?.length??Z.file_count},void 0,!1,void 0,this)," 个文件"]},void 0,!0,void 0,this),G("span",{children:["创建于 ",AH(Z.created_hlc)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"files-head",children:[G("span",{children:"文件"},void 0,!1,void 0,this),G("span",{children:z?.length??""},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z==null?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):z.length===0?G("div",{class:"site-empty",style:{marginTop:4},children:[G("div",{class:"ei",children:"\uD83D\uDCC1"},void 0,!1,void 0,this),G("div",{class:"et",children:"站点还没有文件"},void 0,!1,void 0,this),G("div",{class:"ed",children:"上传文件后即可通过站点地址访问。"},void 0,!1,void 0,this),G("button",{class:"btn btn-secondary",onClick:()=>Y.current?.click(),children:[G(g,{name:"upload",cls:"ico sm"},void 0,!1,void 0,this),"上传文件"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):G("div",{children:z.map((_)=>G("div",{class:"filerow",onClick:()=>j9(G(NH,{site:Z,file:_},void 0,!1,void 0,this)),children:[G("span",{class:"fi",children:G(g,{name:AR(_),cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"fpath",children:_.path},void 0,!1,void 0,this),G("span",{class:"enc-badge"+(_.encoding==="blob"?" blob":""),children:_.encoding},void 0,!1,void 0,this),G("div",{class:"facts",children:[G("button",{title:"预览",onClick:(A)=>{A.stopPropagation(),j9(G(NH,{site:Z,file:_},void 0,!1,void 0,this))},children:G(g,{name:"eye",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{title:"复制路径",onClick:(A)=>{A.stopPropagation(),Z4("/sites/"+Z.name+"/"+_.path)},children:G(g,{name:"copy",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"del",title:"删除",onClick:(A)=>{A.stopPropagation(),F(_)},children:G(g,{name:"trash",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},_.id,!0,void 0,this))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function NH({site:Z,file:J}){let $="/sites/"+Z.name+"/"+J.path,[Q,X]=b(null),z=_H(J.content_type),K=!z&&(J.encoding==="utf8"||/text\/|json|javascript|xml/.test(J.content_type));return J0(()=>{if(!K)return;fetch($).then((Y)=>Y.text()).then(X).catch(()=>X("(无法加载内容)"))},[$]),G(v9,{title:J.path,sub:$,width:680,footer:G(t,{children:[G("button",{class:"btn btn-secondary",onClick:()=>Z4($),children:"复制路径"},void 0,!1,void 0,this),G("button",{class:"btn btn-primary",onClick:q9,children:"关闭"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),children:[G("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center",color:"var(--muted)",fontSize:12,marginBottom:12},children:[G("span",{children:J.content_type},void 0,!1,void 0,this),G("span",{class:"enc-badge"+(J.encoding==="blob"?" blob":""),children:J.encoding},void 0,!1,void 0,this)]},void 0,!0,void 0,this),z?G("img",{src:$,style:{maxWidth:"100%",borderRadius:"var(--radius)",border:"1px solid var(--line)"}},void 0,!1,void 0,this):K?Q==null?G("div",{class:"muted",children:"加载中…"},void 0,!1,void 0,this):G("div",{class:"preview-box",children:Q},void 0,!1,void 0,this):G("div",{class:"preview-bin",children:[G("div",{class:"pi",children:"\uD83D\uDCE6"},void 0,!1,void 0,this),G("div",{class:"pt",children:"二进制文件 · 在新标签打开查看"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function MR({site:Z,onClose:J}){J0(()=>{let Q=(X)=>{if(X.key==="Escape")J()};return addEventListener("keydown",Q),()=>removeEventListener("keydown",Q)},[]);let $="/sites/"+Z.name+"/";return G("div",{class:"spv-scrim open",onClick:(Q)=>{if(Q.target===Q.currentTarget)J()},children:G("div",{class:"spv",children:[G("div",{class:"spv-chrome",children:[G("div",{class:"spv-dots",children:[G("i",{},void 0,!1,void 0,this),G("i",{},void 0,!1,void 0,this),G("i",{},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"spv-url",children:[G(g,{name:"lock",cls:"ico sm"},void 0,!1,void 0,this),G("span",{children:K1(Z.name)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"spv-btn",title:"在新标签打开",onClick:()=>window.open($,"_blank"),children:[G(g,{name:"externalLink",cls:"ico sm"},void 0,!1,void 0,this),"新标签"]},void 0,!0,void 0,this),G("button",{class:"spv-btn icon",title:"关闭",onClick:J,children:G(g,{name:"x"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("iframe",{class:"spv-frame",src:$,sandbox:"allow-scripts allow-same-origin"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}var IR={doc:"file",database:"database",site:"globe"};function RR(Z){if(Z==null)return{text:"永久",warn:!1,dead:!1};let J=Z-Date.now();if(J<=0)return{text:"已过期",warn:!0,dead:!0};let $=Math.floor(J/86400000),Q=Math.floor(J/3600000);if($>=1)return{text:`${$} 天后过期`,warn:$<=2,dead:!1};if(Q>=1)return{text:`${Q} 小时后过期`,warn:!0,dead:!1};return{text:"即将过期",warn:!0,dead:!1}}function PH({onNavigate:Z}){let[J,$]=b(null),[Q,X]=b("all"),[z,K]=b(""),Y=()=>Z0.listShares().then($).catch((O)=>Q0(`加载失败:${O.message}`));J0(()=>{return Y(),document.addEventListener(Z6,Y),()=>document.removeEventListener(Z6,Y)},[]);let{copyShare:q,revoke:W,renew:U}=d1(Y,Q0,Q0),H=kZ(()=>{let O=J??[],N=z.trim().toLowerCase();return O.filter((_)=>(Q==="all"||_.transport===Q)&&(!N||_.title.toLowerCase().includes(N)||_.source.toLowerCase().includes(N)))},[J,Q,z]),F=(O)=>{if(O.kind==="doc")Z({kind:"doc",id:O.target_id});else if(O.kind==="database")Z({kind:"db",id:O.target_id});else Z({kind:"sites"})};return G("div",{class:"db shares-page",children:[G("div",{class:"db-head",children:[G("div",{children:[G("div",{class:"db-title",children:"分享"},void 0,!1,void 0,this),G("div",{class:"db-desc",children:"通过服务器或对象存储对外分享的文档、表格与站点。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"shv-tools",children:[G("div",{class:"shv-seg",role:"tablist",children:["all","server","s3"].map((O)=>G("button",{class:"shv-seg-btn"+(Q===O?" active":""),onClick:()=>X(O),children:O==="all"?"全部":O==="server"?"服务器":"对象存储"},O,!1,void 0,this))},void 0,!1,void 0,this),G("div",{class:"shv-search",children:[G(g,{name:"search",cls:"ico sm"},void 0,!1,void 0,this),G("input",{placeholder:"搜索标题 / 来源…",value:z,onInput:(O)=>K(O.currentTarget.value)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J==null?G("div",{class:"muted",style:{padding:20},children:"加载中…"},void 0,!1,void 0,this):H.length===0?G("div",{class:"site-empty",children:[G("div",{class:"ei",children:G(g,{name:"link"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"et",children:J.length===0?"还没有公开分享":"没有匹配的分享"},void 0,!1,void 0,this),G("div",{class:"ed",children:"在文档、表格或站点里点「通过设备分享」即可创建——可经服务器(支持可编辑)或对象存储(只读、端到端加密)。"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):G("ul",{class:"shv-list",children:H.map((O)=>{let N=RR(O.expiresAt);return G("li",{class:"shv-row",children:[G("span",{class:"shv-ico k-"+O.kind,children:G(g,{name:IR[O.kind]??"file"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"shv-main",children:[G("div",{class:"shv-titleline",children:[G("button",{class:"shv-title",onClick:()=>F(O),title:"打开对象",children:O.title},void 0,!1,void 0,this),G("span",{class:"shv-pill t-"+O.transport,children:O.transport==="s3"?"对象存储":"服务器"},void 0,!1,void 0,this),G("span",{class:"shv-pill p-"+O.permission,children:O.permission==="edit"?"可编辑":"只读"},void 0,!1,void 0,this),O.hasPassword&&G("span",{class:"shv-lock",title:"口令保护",children:"\uD83D\uDD12"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"shv-meta",children:["经 ",O.source,G("span",{class:"shv-exp"+(N.warn?" warn":"")+(N.dead?" dead":""),children:[" · ",N.text]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),G("div",{class:"shv-actions",children:[G("button",{class:"btn btn-secondary",onClick:()=>q(O),children:"复制链接"},void 0,!1,void 0,this),O.transport==="s3"&&G("button",{class:"btn btn-secondary",onClick:()=>U(O),children:"续期"},void 0,!1,void 0,this),O.url&&G("a",{class:"btn btn-secondary",href:O.url,target:"_blank",rel:"noreferrer",children:"打开"},void 0,!1,void 0,this),G("button",{class:"btn btn-danger",onClick:()=>W(O),children:"撤销"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},O.slug,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function u3(Z){switch(Z.kind){case"db":return`#/db/${encodeURIComponent(Z.id)}`;case"doc":return`#/doc/${encodeURIComponent(Z.id)}`;case"search":return`#/search?q=${encodeURIComponent(Z.q)}`;case"settings":return"#/settings";case"sites":return"#/sites";case"shares":return"#/shares";case"empty":return"#/"}}function p3(Z){if(!Z.startsWith("#/"))return{kind:"empty"};let[J="",$=""]=Z.slice(2).split("?",2),[Q,X=""]=J.split("/",2);try{if(Q==="db"&&X)return{kind:"db",id:decodeURIComponent(X)};if(Q==="doc"&&X)return{kind:"doc",id:decodeURIComponent(X)};if(Q==="search"){let z=new URLSearchParams($).get("q");if(z)return{kind:"search",q:z}}if(Q==="settings")return{kind:"settings"};if(Q==="sites")return{kind:"sites"};if(Q==="shares")return{kind:"shares"}}catch{}return{kind:"empty"}}var MH="mh-quicknote-last",IH="mh-quicknote-parent",RH="Quick Notes";function CR(Z,J){return(J.created_hlc??"").localeCompare(Z.created_hlc??"")}async function VR(){let Z=localStorage.getItem(IH);if(Z)try{return await Z0.getDocument(Z),Z}catch{}let Q=(await Z0.listDocuments()).find((X)=>X.parent_id==null&&X.title===RH)?.id??(await Z0.createDocument({title:RH})).id;return localStorage.setItem(IH,Q),Q}function CH(){let[Z,J]=b(null),[$,Q]=b([]),[X,z]=b(null),[K,Y]=b(""),[q,W]=b(!1),U=G0(null),H=typeof window<"u"?window.metahubDesktop?.quicknote:void 0,F=A8(async(M)=>{let C=(await Z0.listDocumentsByParent(M)).sort(CR);return Q(C),C},[]);J0(()=>{if(!Z)return;let M,C=()=>{clearTimeout(M),M=setTimeout(()=>void F(Z),80)};return document.addEventListener(s9,C),()=>{clearTimeout(M),document.removeEventListener(s9,C)}},[Z,F]);let O=A8(async(M)=>{let C=await Z0.createDocument({title:"",parent_id:M});return await F(M),C.id},[F]);J0(()=>{(async()=>{try{let M=await VR();J(M);let C=await F(M),R=localStorage.getItem(MH),I=R&&C.some((P)=>P.id===R)&&R||C[0]?.id||await O(M);z(I)}catch(M){Y(String(M.message))}})()},[F,O]),J0(()=>{if(X)localStorage.setItem(MH,X)},[X]),J0(()=>{H?.getAlwaysOnTop().then(W).catch(()=>{})},[H]),J0(()=>{if(!H)return;let M=(C)=>{if(C.key!=="Escape"||C.defaultPrevented||V7(C))return;H.hide()};return addEventListener("keydown",M),()=>removeEventListener("keydown",M)},[H]);let N=async()=>{if(!Z)return;try{z(await O(Z))}catch(M){Y(String(M.message))}},_=async()=>{if(!H)return;let M=!q;W(M);try{W(await H.setAlwaysOnTop(M))}catch{W(!M)}},A=async()=>{if(!X||!Z)return;if(!await m0({title:"删除笔记?",message:"该快速笔记将被删除。",confirmLabel:"删除",danger:!0}))return;await Z0.deleteDocument(X);let C=await F(Z);z(C[0]?.id??await O(Z))},L=(M)=>{b0(M,(C)=>G(t,{children:[G(i0,{children:"快速笔记"},void 0,!1,void 0,this),$.length===0&&G("div",{class:"lbl",children:"还没有笔记"},void 0,!1,void 0,this),$.map((R)=>G(q0,{icon:"file",label:R.title||"无标题",checked:R.id===X,onClick:()=>{C(),z(R.id)}},R.id,!1,void 0,this)),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"plus",label:"新建笔记",onClick:()=>{C(),N()}},void 0,!1,void 0,this),X&&G(q0,{icon:"trash",label:"删除当前笔记",danger:!0,onClick:()=>{C(),A()}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),{minWidth:220})},B=$.find((M)=>M.id===X)?.title;return G("div",{class:"qn",children:[G("div",{class:"qn-bar",children:[G("span",{class:"qn-brand",children:B||"快速笔记"},void 0,!1,void 0,this),G("div",{class:"qn-actions",children:[G("button",{class:"iconbtn",title:"新建笔记",onClick:()=>void N(),children:G(g,{name:"plus"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("button",{class:"iconbtn",title:"笔记列表",onClick:L,children:G(g,{name:"list"},void 0,!1,void 0,this)},void 0,!1,void 0,this),H&&G("button",{class:"iconbtn"+(q?" active":""),title:q?"取消置顶":"始终置顶",onClick:()=>void _(),children:G(g,{name:"pin"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K&&G("div",{class:"error-bar",onClick:()=>Y(""),children:["⚠ ",K,"(点击关闭)"]},void 0,!0,void 0,this),G("div",{class:"qn-body",children:X?G(J1,{docId:X,onError:Y,onHandle:(M)=>U.current=M},X,!1,void 0,this):G("div",{class:"empty",children:G("div",{children:"加载中…"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),G(L4,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function yR(){let Z=typeof location<"u"?location.hash:"",J=Z.includes("?")?Z.slice(Z.indexOf("?")+1):"",$=new URLSearchParams(J);return{src:$.get("src")||"",name:$.get("name")||void 0,blockId:$.get("bid")||""}}function VH(){let Z=yR(),[J,$]=b(Z.src),Q=async(X)=>{try{let z=await Z0.uploadDocBlob(new File([X],"annotated.png",{type:"image/png"}));try{let K=new BroadcastChannel("mh-doc-image");K.postMessage({action:"replace",blockId:Z.blockId,url:z.url}),K.close()}catch{}$(z.url)}catch(z){Q0(`保存失败:${z.message}`)}};return G("div",{class:"lightbox preview-win",children:G(b3,{src:J,name:Z.name,draggableBar:!0,onClose:()=>window.close(),onReplace:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)}var kR=/[",\r\n]/;function TR(Z){return kR.test(Z)?`"${Z.replace(/"/g,'""')}"`:Z}function yH(Z){return Z.map((J)=>J.map(TR).join(",")).join(`
|
|
221
|
+
`)}function c3(Z,J){let $=J.startsWith(".")?J:"."+J,Q=Z.trim().replace(/[\\/:*?"<>|\x00-\x1f]/g,"-").replace(/\s+/g," ").replace(/^\.+$/,"").slice(0,90)||"untitled";return Q.toLowerCase().endsWith($.toLowerCase())?Q:Q+$}function d3(Z,J,$){let Q=URL.createObjectURL(new Blob([J],{type:$})),X=document.createElement("a");X.href=Q,X.download=Z,document.body.appendChild(X),X.click(),X.remove(),setTimeout(()=>URL.revokeObjectURL(Q),0)}function kH(Z,J){let $=["id",...Z.map((X)=>X.name)],Q=J.map((X)=>[X.id,...Z.map((z)=>jR(X.cells[z.id]))]);return yH([$,...Q])}function jR(Z){if(Z==null)return"";if(typeof Z==="boolean")return Z?"true":"false";if(typeof Z==="object")return JSON.stringify(Z);return String(Z)}function DR(){let[Z,J]=b(()=>typeof window<"u"&&window.matchMedia(_4).matches);return J0(()=>{let $=window.matchMedia(_4),Q=()=>J($.matches);return $.addEventListener("change",Q),()=>$.removeEventListener("change",Q)},[]),Z}function SR(){let[Z,J]=b([]),[$,Q]=b([]),[X,z]=b(()=>p3(location.hash)),[K,Y]=b(""),[q,W]=b(!1),[U,H]=b(268),[F,O]=b("blocks"),[N,_]=b(!1),[A,L]=b(!1),[B,M]=b(!1),[C,R]=b(!1),[I,P]=b(!1),[V,y]=b(()=>R8()),[k,j]=b(!1),[w,u]=b(!1),l=G0(null),v=G0(!1),S=G0(null),D=DR(),x=A8((r)=>Y(r),[]),T=A8((r)=>{l.current=r},[]),m=A8(async()=>{let[r,c]=await Promise.all([Z0.listDatabases(),Z0.listDocuments()]);J(r),Q(c),L(!0)},[]);J0(()=>{m().catch((r)=>x(String(r.message)))},[m]),J0(()=>{let r,c=()=>{clearTimeout(r),r=setTimeout(()=>m().catch((o)=>x(String(o.message))),80)};return document.addEventListener(s9,c),()=>{clearTimeout(r),document.removeEventListener(s9,c)}},[m,x]),J0(()=>{if(OZ().surface==="desktop")return;T2()},[]),J0(()=>x9((r)=>y({...r})),[]),J0(()=>{if(Boolean(V.bucketDirty||V.bucketSyncing)){v.current=!0,j(!1);return}if(!v.current||V.bucketError)return;v.current=!1,j(!0);let c=setTimeout(()=>j(!1),900);return()=>clearTimeout(c)},[V.bucketDirty,V.bucketSyncing,V.bucketError]),J0(()=>{L1().then(()=>d6())},[]);let[a,h]=b(typeof navigator<"u"&&!navigator.onLine);J0(()=>{let r=()=>h(!1),c=()=>h(!0);return window.addEventListener("online",r),window.addEventListener("offline",c),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",c)}},[]),J0(()=>{let r=typeof window<"u"?window.metahubDesktop?.coreUpdate:void 0;if(!r)return;Promise.all([Z0.version().then((c)=>c.version).catch(()=>null),r.installedVersion().catch(()=>null)]).then(([c,o])=>{if(c&&o&&a8(o,c)>0)M(!0)})},[]);let s=(r,c)=>{let o=u3(r);if(location.hash!==o)history[c?.replace?"replaceState":"pushState"](null,"",o);z(r)};J0(()=>{if(location.hash&&!location.hash.startsWith("#/"))history.replaceState(null,"","#/");let r=()=>z(p3(location.hash));return window.addEventListener("hashchange",r),()=>window.removeEventListener("hashchange",r)},[]);let E=()=>Z0.createDocument({title:""}).then((r)=>s({kind:"doc",id:r.id})).catch((r)=>x(String(r.message))),p=X.kind==="db"?Z.find((r)=>r.id===X.id):void 0,X0=X.kind==="doc"?$.find((r)=>r.id===X.id):void 0,F0=X.kind==="doc"?X.id:null,j0=X.kind==="db"?X.id:null;J0(()=>{O("blocks"),R(!1),_(!!F0&&localStorage.getItem(`mh.doc-wide.${F0}`)==="1")},[F0]),J0(()=>{P(!1)},[j0]);let C0=X.kind!=="empty",p0=G0(0);J0(()=>{let r=D&&C0;if(r&&!document.body.classList.contains("mobile-content"))p0.current=window.scrollY;if(document.body.classList.toggle("mobile",D),document.body.classList.toggle("mobile-content",r),$1(),D)window.scrollTo(0,r?0:p0.current)},[D,C0,X]),J0(()=>{let r=(c)=>{if((c.metaKey||c.ctrlKey)&&c.key.toLowerCase()==="k"){c.preventDefault(),document.querySelector(".sb-search input")?.focus();return}if((c.metaKey||c.ctrlKey)&&c.key.toLowerCase()==="s"){if(S.current?.())c.preventDefault()}if((c.metaKey||c.ctrlKey)&&c.key==="/"){let o=l.current;if(o)c.preventDefault(),o.setMode(o.getMode()==="source"?"blocks":"source")}};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[]),J0(()=>{let r=window.matchMedia("(prefers-color-scheme: dark)"),c=()=>{w3(),$1()};return r.addEventListener("change",c),()=>r.removeEventListener("change",c)},[]);let w0=(r)=>{let c=l.current?.snapshotMarkdown();l.current?.flushSave(),(c==null?Z0.getDocument(r.id).then((W0)=>W0.body??""):Promise.resolve(c)).then((W0)=>d3(c3(r.title||r.id,".md"),W0,"text/markdown;charset=utf-8")).catch((W0)=>x(String(W0.message)))},o0=(r)=>{Promise.all([Z0.listProperties(r.id),Z0.listRecords(r.id)]).then(([c,o])=>d3(c3(r.name||r.id,".csv"),kH(c,o),"text/csv;charset=utf-8")).catch((c)=>x(String(c.message)))},c0=(r)=>{b0(r,(c)=>G(t,{children:[G(q0,{icon:"link",label:"复制链接",onClick:()=>{c(),navigator.clipboard.writeText(location.origin+location.pathname+u3(X)).then(()=>Q0("链接已复制")).catch((o)=>x(String(o.message)))}},void 0,!1,void 0,this),X.kind==="doc"&&X0&&G(q0,{icon:"link",label:"通过设备分享…",onClick:()=>{c(),BZ({kind:"doc",ref:X0.id,title:X0.title})}},void 0,!1,void 0,this),X.kind==="db"&&p&&G(q0,{icon:"link",label:"通过设备分享…",onClick:()=>{c(),BZ({kind:"database",ref:p.id,title:p.name})}},void 0,!1,void 0,this),X.kind==="doc"&&X0&&G(q0,{icon:"download",label:"导出 Markdown",onClick:()=>{c(),w0(X0)}},void 0,!1,void 0,this),X.kind==="db"&&p&&G(q0,{icon:"download",label:"导出 CSV",onClick:()=>{c(),o0(p)}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))},R0=M9()&&(V.bucketDirty||V.bucketSyncing||V.bucketError||k)?V.bucketSyncing?"saving":k?"saved":V.bucketError?"error":"dirty":"share",d=R0==="saving"?"保存中…":R0==="saved"?"已保存":R0==="share"?"分享":"保存",i=R0==="share"?"share":R0==="saved"?"cloudCheck":R0==="saving"?"spinner":R0==="error"?"cloudOff":"cloudUp",K0=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform),P0=R0==="share"?"分享":R0==="error"?`保存到云端失败:${V.bucketError??""}`:`保存到云端${D?"":K0?" · ⌘S":" · Ctrl+S"}`,_0=async()=>{try{await l.current?.flushSave(),await R2();let r=R8();if(r.bucketError)throw Error(r.bucketError);if(r.bucketDirty)throw Error("仍有改动尚未保存到云端")}catch(r){Q0(`保存失败:${r.message}`)}},f=()=>{u(!0),window.setTimeout(()=>u(!1),320)},n=(r)=>{if(R0==="share"){c0(r);return}if(R0==="saving"||R0==="saved")return;_0()};S.current=()=>{if(X.kind!=="doc"&&X.kind!=="db")return!1;if(R0==="saving"||R0==="saved")return!0;if(R0==="dirty"||R0==="error")_0(),f();else if(M9())Q0("已是最新"),f();return!0};let z0=()=>{if(!F0)return;let r=!N;_(r);try{if(r)localStorage.setItem(`mh.doc-wide.${F0}`,"1");else localStorage.removeItem(`mh.doc-wide.${F0}`)}catch{}},Y0=(r)=>{if(X.kind==="doc"&&X0)b0(r,(c)=>G(t,{children:[G(q0,{icon:"code",label:F==="source"?"块方式显示":"代码方式显示",kbd:K0?"⌘/":"Ctrl /",checked:F==="source",onClick:()=>{c(),l.current?.setMode(F==="source"?"blocks":"source")}},void 0,!1,void 0,this),G(q0,{icon:"maximize",label:"宽屏模式",checked:N,onClick:()=>{c(),z0()}},void 0,!1,void 0,this),G(q0,{icon:"copy",label:"创建副本",onClick:async()=>{c(),l.current?.flushSave();try{let o=await Z0.duplicateDocument(X0.id,{title:`${X0.title||"无标题"} 副本`});s({kind:"doc",id:o.id}),Q0("已创建副本")}catch(o){x(String(o.message))}}},void 0,!1,void 0,this),G(q0,{icon:"history",label:"版本历史",onClick:()=>{c(),l.current?.flushSave(),R(!0)}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"hash",label:"复制 ID",onClick:()=>{c(),navigator.clipboard?.writeText(X0.id).then(()=>Q0("已复制 ID"))}},void 0,!1,void 0,this),G(q0,{icon:"settings",label:"重命名…",onClick:async()=>{c();let o=await NZ({title:"重命名文档",value:X0.title});if(o)await Z0.updateDocument(X0.id,{title:o})}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除文档",danger:!0,onClick:async()=>{if(c(),await m0({title:"删除文档?",message:`「${X0.title||"无标题"}」将被删除。`,confirmLabel:"删除",danger:!0}))await Z0.deleteDocument(X0.id),s({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this));else if(X.kind==="db"&&p)b0(r,(c)=>G(t,{children:[G(q0,{icon:"copy",label:"创建副本",onClick:async()=>{c();try{let o=await Z0.duplicateDatabase(p.id,{name:`${p.name} 副本`});s({kind:"db",id:o.id}),Q0("已创建副本")}catch(o){x(String(o.message))}}},void 0,!1,void 0,this),G(q0,{icon:"history",label:"最近动态",onClick:()=>{c(),P(!0)}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"hash",label:"复制 ID",onClick:()=>{c(),navigator.clipboard?.writeText(p.id).then(()=>Q0("已复制 ID"))}},void 0,!1,void 0,this),G(q0,{icon:"settings",label:"重命名…",onClick:async()=>{c();let o=await NZ({title:"重命名数据库",value:p.name});if(o&&o!==p.name)await Z0.updateDatabase(p.id,{name:o})}},void 0,!1,void 0,this),G(d0,{},void 0,!1,void 0,this),G(q0,{icon:"trash",label:"删除数据库",danger:!0,onClick:async()=>{if(c(),await m0({title:"删除数据库?",message:`「${p.name}」及其所有记录将被永久删除。`,confirmLabel:"删除",danger:!0}))await Z0.deleteDatabase(p.id),s({kind:"empty"},{replace:!0})}},void 0,!1,void 0,this)]},void 0,!0,void 0,this))};return G(t,{children:[G(zQ,{databases:Z,docs:$,view:X,navigate:s,width:U,collapsed:q,onResize:H,onCollapse:()=>W(!0),updatePending:B,onError:x},void 0,!1,void 0,this),G("div",{class:"main",children:[G("div",{class:"topbar"+(X.kind==="empty"?" bare":""),children:[G("button",{class:"iconbtn hamburger"+(q?" show-collapsed":""),title:D?"返回":q?"展开侧栏":"菜单",onClick:()=>D?s({kind:"empty"}):W(!1),children:G(g,{name:D?"arrowLeft":"panelLeft"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("div",{class:"crumb",children:[X.kind==="doc"&&G(t,{children:[G("span",{class:"emoji",children:G(g,{name:"file",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{children:X0?.title||"无标题"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="db"&&G(t,{children:[G("span",{class:"emoji",children:p?.icon||"\uD83D\uDDC2️"},void 0,!1,void 0,this),G("span",{children:p?.name},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="search"&&G("span",{children:["搜索:“",X.q,"”"]},void 0,!0,void 0,this),X.kind==="settings"&&G(t,{children:[G("span",{class:"emoji",children:G(g,{name:"settings",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{children:"设置"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="sites"&&G(t,{children:[G("span",{class:"emoji",children:G(g,{name:"globe",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{children:"站点管理"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.kind==="shares"&&G(t,{children:[G("span",{class:"emoji",children:G(g,{name:"link",cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{children:"分享"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),(X.kind==="doc"||X.kind==="db")&&G(t,{children:[G("button",{class:`btn share-save share-save-${R0}${w?" share-save-kbd":""}`,title:P0,disabled:R0==="saving"||R0==="saved",onClick:n,children:[G("span",{class:"share-save-ico",children:G(g,{name:i,cls:"ico sm"},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("span",{class:"share-save-label",children:d},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("button",{class:"iconbtn",onClick:Y0,children:G(g,{name:"dots"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),a&&G("div",{class:"offline-bar",children:M9()?"⚡ 离线 — 本地副本模式:可正常查看和编辑全部内容,恢复连接后自动同步":"⚡ 离线 — 可浏览已缓存的内容,修改会失败;恢复网络后自动恢复"},void 0,!1,void 0,this),K&&G("div",{class:"error-bar",onClick:()=>Y(""),children:["⚠ ",K,"(点击关闭)"]},void 0,!0,void 0,this),G("div",{class:"content",children:[X.kind==="empty"&&G(bR,{onNewDoc:E},void 0,!1,void 0,this),X.kind==="db"&&p&&G(VQ,{db:p,onError:x},p.id,!1,void 0,this),X.kind==="db"&&!p&&G("div",{class:"empty",children:A?"数据库不存在或已被删除。":"加载中…"},void 0,!1,void 0,this),X.kind==="doc"&&G(J1,{docId:X.id,wide:N,onError:x,onModeChange:O,onHandle:T},X.id,!1,void 0,this),X.kind==="search"&&G(wR,{q:X.q,onOpenDoc:(r)=>s({kind:"doc",id:r}),onOpenDb:(r)=>s({kind:"db",id:r})},void 0,!1,void 0,this),X.kind==="settings"&&G(WH,{onUpdatePending:M},void 0,!1,void 0,this),X.kind==="sites"&&G(LH,{},void 0,!1,void 0,this),X.kind==="shares"&&G(PH,{onNavigate:s},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),C&&X.kind==="doc"&&G(NQ,{docId:X.id,onClose:()=>R(!1),onReverted:()=>l.current?.reload()},void 0,!1,void 0,this),I&&X.kind==="db"&&G(BQ,{dbId:X.id,onClose:()=>P(!1)},void 0,!1,void 0,this),G(L4,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function bR({onNewDoc:Z}){return G("div",{class:"empty",children:[G("svg",{class:"estate-art",viewBox:"0 0 220 190",fill:"none","aria-hidden":"true",children:[G("ellipse",{class:"kg-ground ground",cx:"110",cy:"176",rx:"62",ry:"8"},void 0,!1,void 0,this),G("circle",{class:"kg-glow fill-soft",cx:"116",cy:"88",r:"42"},void 0,!1,void 0,this),G("g",{class:"kg-plant",children:[G("path",{class:"kg-stem stroke-a draw",pathLength:"100",d:"M110 134 C110 117 108 106 113 92 C116 83 122 77 128 72"},void 0,!1,void 0,this),G("g",{class:"kg-leaf l1",children:G("g",{class:"kg-grow",children:G("path",{class:"fill-a",d:"M108 108 C90 100 86 88 88 80 C102 80 111 90 108 108 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("g",{class:"kg-leaf l2",children:G("g",{class:"kg-grow",children:G("path",{class:"fill-a",d:"M118 90 C133 83 144 86 150 94 C139 105 125 104 118 90 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),G("g",{class:"kg-leaf l3",children:G("g",{class:"kg-grow",children:G("path",{class:"fill-a",d:"M128 72 C128 57 136 48 146 45 C150 58 144 69 128 72 Z"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("rect",{class:"kg-cardB fill-soft",x:"76",y:"124",width:"68",height:"44",rx:"8",transform:"rotate(7 110 146)"},void 0,!1,void 0,this),G("g",{class:"kg-cardA",children:[G("rect",{class:"fill-surface stroke",x:"66",y:"128",width:"76",height:"46",rx:"9",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),G("rect",{class:"fill-a",x:"74",y:"136",width:"18",height:"18",rx:"5",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),G("rect",{class:"fill-soft",x:"98",y:"139",width:"34",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this),G("rect",{class:"fill-soft",x:"98",y:"150",width:"24",height:"6",rx:"3",transform:"rotate(-5 104 151)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("circle",{class:"kg-particle p1 fill-a",cx:"44",cy:"62",r:"2.6"},void 0,!1,void 0,this),G("circle",{class:"kg-particle p2 fill-soft",cx:"178",cy:"74",r:"3"},void 0,!1,void 0,this),G("circle",{class:"kg-particle p3 fill-a",cx:"40",cy:"120",r:"2"},void 0,!1,void 0,this),G("circle",{class:"kg-particle p4 fill-soft",cx:"182",cy:"126",r:"2.4"},void 0,!1,void 0,this),G("circle",{class:"kg-particle p5 fill-a",cx:"150",cy:"44",r:"2.2"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),G("p",{class:"estate-title",children:"空空如也"},void 0,!1,void 0,this),G("p",{class:"estate-hint",children:"从左侧选择一个数据库或文档,或新建一个开始。"},void 0,!1,void 0,this),G("button",{class:"estate-link",onClick:Z,children:"+ 新建文档"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function ER({text:Z}){let J=Z.split(/\[([^\[\]]*)\]/g);return G(t,{children:J.map(($,Q)=>Q%2?G("mark",{children:$},Q,!1,void 0,this):$)},void 0,!1,void 0,this)}function wR({q:Z,onOpenDoc:J,onOpenDb:$}){let[Q,X]=b(null);return J0(()=>{X(null),Z0.search(Z).then(X).catch(()=>X([]))},[Z]),G("div",{class:"db",children:[G("div",{class:"db-title",style:{marginBottom:14},children:["搜索:“",Z,"”"]},void 0,!0,void 0,this),Q===null&&G("p",{class:"muted",children:"搜索中…"},void 0,!1,void 0,this),Q?.length===0&&G("p",{class:"muted",children:"没有匹配结果。"},void 0,!1,void 0,this),Q?.map((z)=>G("div",{class:"search-hit",onClick:()=>z.type==="document"?J(z.id):z.database_id&&$(z.database_id),children:[G("strong",{children:z.title||z.id},void 0,!1,void 0,this)," ",G("span",{class:"muted",children:z.type==="document"?"文档":"记录"},void 0,!1,void 0,this),G("div",{class:"muted",children:G(ER,{text:z.snippet},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},z.id,!0,void 0,this))]},void 0,!0,void 0,this)}function TH({text:Z}){return G("div",{class:"enroll-splash",children:[G("div",{class:"enroll-spinner"},void 0,!1,void 0,this),G("div",{class:"muted",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function xR(){let[Z,J]=b("detecting");if(J0(()=>{L1().then(($)=>{if($==="server")return J("app");if(!m9())return J("enroll");c6(),J(M9()?"app":"hydrating")})},[]),J0(()=>{if(Z!=="hydrating")return;if(M9())return J("app");return x9(()=>{if(M9())J("app")})},[Z]),Z==="detecting")return G(TH,{text:"加载中…"},void 0,!1,void 0,this);if(Z==="enroll")return G(t2,{onDone:()=>J(M9()?"app":"hydrating")},void 0,!1,void 0,this);if(Z==="hydrating")return G(TH,{text:"正在从云端水合本地副本…"},void 0,!1,void 0,this);return G(SR,{},void 0,!1,void 0,this)}if(typeof window<"u"&&window.metahubDesktop){if(document.body.classList.add("desktop"),window.metahubDesktop.platform==="darwin")document.body.classList.add("desktop-mac");d6()}if(location.hash.startsWith("#preview"))document.body.classList.add("preview-window"),g0(G(VH,{},void 0,!1,void 0,this),document.getElementById("app"));else if(location.hash==="#quick"&&OZ().surface==="desktop")document.body.classList.add("quicknote"),g0(G(CH,{},void 0,!1,void 0,this),document.getElementById("app"));else g0(G(xR,{},void 0,!1,void 0,this),document.getElementById("app"));
|