flow-mindmap 0.2.2 → 0.3.0
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 +1 -2
- package/dist/components/MindMap.vue.d.ts +5 -8
- package/dist/components/NodeContextMenu.vue.d.ts +0 -4
- package/dist/components/Outline.vue.d.ts +1 -1
- package/dist/flow-mindmap.js +652 -668
- package/dist/flow-mindmap.umd.cjs +6 -6
- package/dist/types.d.ts +0 -1
- package/package.json +2 -1
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
`),lang:B});continue}const c=p.match(s);if(c){i.push({kind:"heading",level:c[1].length,text:c[2].trim(),raw:p}),a++;continue}if(/^\s*\|/.test(p)){const O=[];let B=a,P=!1;for(;B<r.length&&/^\s*\|/.test(r[B]);)O.push(r[B]),l.test(r[B])&&(P=!0),B++;if(P&&O.length>=2){i.push({kind:"table",text:((y=O[0].replace(/^\s*\|/,"").replace(/\|\s*$/,"").split("|")[0])==null?void 0:y.trim())||"表格",raw:O.join(`
|
|
11
11
|
`)}),a=B;continue}}const A=p.match(d),L=p.match(u);if(A||L){let O=a;for(;O<r.length;){const B=r[O].match(d),P=r[O].match(u);if(!(B||P))break;const R=r[O].replace(/^\s*[-*+]\s+/,"").replace(/^\s*\d+\.\s+/,"").trim();R.length>0&&i.push({kind:"list",text:R.slice(0,80)||"(列表项)",raw:r[O]}),O++}a=O;continue}if(p.trim()===""){a++;continue}const G=[p];let S=a+1;for(;S<r.length;){const O=r[S];if(O.trim()===""||s.test(O)||g.test(O)||d.test(O)||u.test(O)||/^\s*\|/.test(O))break;G.push(O),S++}const Z=G.join(" ").trim();i.push({kind:"paragraph",text:Z.slice(0,80)||"(空段落)",raw:G.join(`
|
|
12
12
|
`)}),a=S}return i}function Fi(e,r="导入的导图"){const i=Vi(e||""),a={id:we(),text:r,children:[]},s=[a],g=[0];let l=!1;function d(u){if(u.kind==="heading"){const y=u.level;for(;s.length>1&&g[g.length-1]>=y;)s.pop(),g.pop();if(!l&&y===1){l=!0,a.text=u.text,g[0]=1;return}const p={id:we(),text:u.text,children:[]};s[s.length-1].children.push(p),s.push(p),g.push(y);return}const m={id:we(),text:u.text,children:[],richContent:{kind:u.kind,raw:u.raw,lang:u.lang}};s[s.length-1].children.push(m)}for(const u of i)d(u);return a}function Wi(e){return e.richContent?e.richContent.raw+`
|
|
13
|
-
`:""}function Gi(e){const r=e.minScale??.2,i=e.maxScale??1/0,a=e.step??1.2,s=t.ref(1),g=t.ref(0),l=t.ref(0),d=t.ref(!1),u=t.reactive({x:0,y:0,ox:0,oy:0}),m=t.ref(!1),y=t.reactive({x:0,y:0}),p=t.reactive({x:0,y:0,width:0,height:0}),x=t.ref(0);let c=null;function A(z){c=z}function L(z){z.preventDefault();const Q=e.getContainer();if(!Q)return;const ae=-z.deltaY*.001,ne=Math.min(i,Math.max(r,s.value*(1+ae))),ie=Q.getBoundingClientRect(),le=z.clientX-ie.left,E=z.clientY-ie.top,v=(le-g.value)/s.value,N=(E-l.value)/s.value;s.value=ne,g.value=le-v*ne,l.value=E-N*ne}function G(){s.value=Math.min(i,s.value*a)}function S(){s.value=Math.max(r,s.value/a)}function Z(z){var ae;z.target.closest(".zm-node, .zm-toolbar, button, input, textarea")||(d.value=!0,u.x=z.clientX,u.y=z.clientY,u.ox=g.value,u.oy=l.value,window.addEventListener("mousemove",O),window.addEventListener("mouseup",B),(ae=z.preventDefault)==null||ae.call(z))}function O(z){d.value&&(g.value=u.ox+(z.clientX-u.x),l.value=u.oy+(z.clientY-u.y))}function B(){d.value=!1,window.removeEventListener("mousemove",O),window.removeEventListener("mouseup",B)}function P(z,Q){m.value=!0,y.x=z,y.y=Q,p.x=z,p.y=Q,p.width=0,p.height=0,x.value++,window.addEventListener("mousemove",J),window.addEventListener("mouseup",j)}function R(z,Q){if(!m.value)return;const ae=Math.min(y.x,z),ne=Math.min(y.y,Q),ie=Math.max(y.x,z),le=Math.max(y.y,Q);p.x=ae,p.y=ne,p.width=ie-ae,p.height=le-ne,x.value++}function j(){m.value=!1,window.removeEventListener("mousemove",J),window.removeEventListener("mouseup",j),c&&c()}function J(z){if(!m.value)return;const Q=e.getContainer();if(!Q)return;const ae=Q.getBoundingClientRect(),ne=(z.clientX-ae.left-g.value)/s.value,ie=(z.clientY-ae.top-l.value)/s.value;R(ne,ie)}function de(z,Q,ae,ne=60){const ie=e.getContainer();if(!ie)return;const le=ie.getBoundingClientRect(),E=(le.width-ne*2)/z,v=(le.height-ne*2)/Q,N=Math.min(1,Math.max(.3,Math.min(E,v)));s.value=N,g.value=le.width/2,l.value=le.height/2-ae*N}return{scale:s,offsetX:g,offsetY:l,isPanning:d,onWheel:L,zoomIn:G,zoomOut:S,startPan:Z,startMarquee:P,updateMarquee:R,isMarquee:m,marquee:p,marqueeVersion:x,setOnMarqueeEnd:A,resetView:de}}const Ki=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform);function on(e){return Ki?e.metaKey:e.ctrlKey}function Zi(e){function r(){const a=e.getSelectedId();return a||(e.defaultTargetId?e.defaultTargetId():e.getRootId())}function i(a){const s=a.target;if(s&&(s.tagName==="INPUT"||s.tagName==="TEXTAREA"||s.isContentEditable)||e.isReadonly()||e.isEditing())return;const g=e.getSelectedId(),l=r();if(l){if(on(a)&&!a.shiftKey){if(a.key==="d"||a.key==="D"){g&&g!==e.getRootId()&&(a.preventDefault(),e.onDuplicate(g));return}if(a.key==="z"||a.key==="Z"){a.preventDefault(),e.onUndo();return}if(a.key==="y"||a.key==="Y"){a.preventDefault(),e.onRedo();return}if(a.key==="Home"){a.preventDefault(),e.onSelectRoot();return}}if(on(a)&&a.shiftKey&&(a.key==="Z"||a.key==="z")){a.preventDefault(),e.onRedo();return}a.key==="Tab"?(a.preventDefault(),e.onAddChild(l)):a.key==="Enter"?(a.preventDefault(),a.shiftKey?g&&g!==e.getRootId()&&e.onAddSiblingBefore(g):e.onAddSibling(l)):(a.key==="Delete"||a.key==="Backspace")&&g&&g!==e.getRootId()?(a.preventDefault(),e.onRemove(g)):a.key==="F2"&&g?(a.preventDefault(),e.onStartEdit(g)):a.key==="Escape"?(a.preventDefault(),e.onClearSelection()):a.key==="ArrowDown"?(a.preventDefault(),e.onNavigate(0,1)):a.key==="ArrowUp"?(a.preventDefault(),e.onNavigate(0,-1)):a.key==="ArrowRight"?(a.preventDefault(),e.onNavigate(1,0)):a.key==="ArrowLeft"&&(a.preventDefault(),e.onNavigate(-1,0))}}t.onMounted(()=>{window.addEventListener("keydown",i)}),t.onBeforeUnmount(()=>{window.removeEventListener("keydown",i)})}function Yi(e=100){const r=t.ref([]);let i=-1;function a(){return i>0}function s(){return i<r.value.length-1}function g(m){const y=JSON.stringify(m);for(i<r.value.length-1&&(r.value=r.value.slice(0,i+1)),r.value.push(y),i=r.value.length-1;r.value.length>e;)r.value.shift(),i--}function l(){return a()?(i--,JSON.parse(r.value[i])):null}function d(){return s()?(i++,JSON.parse(r.value[i])):null}function u(){r.value=[],i=-1}return{canUndo:a,canRedo:s,record:g,undo:l,redo:d,reset:u}}const Xi=["disabled"],qi=["disabled"],ji=["disabled"],Ji=["disabled"],Qi=["disabled"],eo=["disabled"],to=["disabled"],no=["disabled"],io=["disabled"],oo=["disabled"],ro=t.defineComponent({__name:"NodeContextMenu",props:{x:{},y:{},container:{},hasImage:{type:Boolean,default:!1},hasLink:{type:Boolean,default:!1},hasNote:{type:Boolean,default:!1},hasCode:{type:Boolean,default:!1},hasTable:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},emits:["pickImage","setLink","removeLink","editNote","removeNote","removeImage","addCode","editCode","removeCode","addTable","editTable","removeTable","close"],setup(e,{emit:r}){const i=e,a=r,s=t.computed(()=>{let x=i.x+2,c=i.y+2;if(i.container){const A=i.container.getBoundingClientRect(),L=180,S=4+(3+(i.hasImage?1:0)+(i.hasLink?1:0)+(i.hasNote?1:0)+1+(i.hasCode?1:0)+1+(i.hasTable?1:0))*28;x+L>A.right&&(x=Math.max(A.left+4,i.x-L-2)),c+S>A.bottom&&(c=Math.max(A.top+4,i.y-S-2)),x<A.left+2&&(x=A.left+2),c<A.top+2&&(c=A.top+2)}return{left:x,top:c}}),g=t.computed(()=>i.hasImage),l=t.computed(()=>i.hasLink),d=t.computed(()=>i.hasNote);function u(x){const c=x.target;c&&c.closest(".zm-node-menu")||a("close")}function m(x){x.key==="Escape"&&a("close")}function y(){a("close")}window.addEventListener("mousedown",u,!0),window.addEventListener("keydown",m,!0),window.addEventListener("wheel",y,!0),window.addEventListener("scroll",y,!0),t.onBeforeUnmount(()=>{window.removeEventListener("mousedown",u,!0),window.removeEventListener("keydown",m,!0),window.removeEventListener("wheel",y,!0),window.removeEventListener("scroll",y,!0)});function p(x){i.readonly||(x(),a("close"))}return(x,c)=>(t.openBlock(),t.createElementBlock("div",{class:"zm-node-menu",style:t.normalizeStyle({left:s.value.left+"px",top:s.value.top+"px"}),onContextmenu:c[10]||(c[10]=t.withModifiers(()=>{},["prevent"]))},[t.createElementVNode("button",{class:"zm-node-menu-item",disabled:e.readonly,onClick:c[0]||(c[0]=t.withModifiers(A=>p(()=>a("pickImage")),["stop"]))},[t.createVNode(re,{name:"image",size:13}),t.createElementVNode("span",null,t.toDisplayString(g.value?"替换图片":"添加图片"),1)],8,Xi),g.value?(t.openBlock(),t.createElementBlock("button",{key:0,class:"zm-node-menu-item",disabled:e.readonly,onClick:c[1]||(c[1]=t.withModifiers(A=>p(()=>a("removeImage")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[11]||(c[11]=t.createElementVNode("span",null,"移除图片",-1))],8,qi)):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",disabled:e.readonly,onClick:c[2]||(c[2]=t.withModifiers(A=>p(()=>a("setLink")),["stop"]))},[t.createVNode(re,{name:"link",size:13}),t.createElementVNode("span",null,t.toDisplayString(l.value?"编辑链接":"添加链接"),1)],8,ji),l.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:"zm-node-menu-item",disabled:e.readonly,onClick:c[3]||(c[3]=t.withModifiers(A=>p(()=>a("removeLink")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[12]||(c[12]=t.createElementVNode("span",null,"移除链接",-1))],8,Ji)):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",disabled:e.readonly,onClick:c[4]||(c[4]=t.withModifiers(A=>p(()=>a("addCode")),["stop"]))},[c[13]||(c[13]=t.createElementVNode("span",{class:"zm-node-menu-icon zm-node-menu-icon-code","aria-hidden":"true"},"{ }",-1)),t.createElementVNode("span",null,t.toDisplayString(e.hasCode?"编辑代码块":"添加代码块"),1)],8,Qi),e.hasCode?(t.openBlock(),t.createElementBlock("button",{key:2,class:"zm-node-menu-item",disabled:e.readonly,onClick:c[5]||(c[5]=t.withModifiers(A=>p(()=>a("removeCode")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[14]||(c[14]=t.createElementVNode("span",null,"移除代码块",-1))],8,eo)):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",disabled:e.readonly,onClick:c[6]||(c[6]=t.withModifiers(A=>p(()=>a("addTable")),["stop"]))},[c[15]||(c[15]=t.createElementVNode("span",{class:"zm-node-menu-icon zm-node-menu-icon-table","aria-hidden":"true"},"▦",-1)),t.createElementVNode("span",null,t.toDisplayString(e.hasTable?"编辑表格":"添加表格"),1)],8,to),e.hasTable?(t.openBlock(),t.createElementBlock("button",{key:3,class:"zm-node-menu-item",disabled:e.readonly,onClick:c[7]||(c[7]=t.withModifiers(A=>p(()=>a("removeTable")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[16]||(c[16]=t.createElementVNode("span",null,"移除表格",-1))],8,no)):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",disabled:e.readonly,onClick:c[8]||(c[8]=t.withModifiers(A=>p(()=>a("editNote")),["stop"]))},[t.createVNode(re,{name:"note",size:13}),t.createElementVNode("span",null,t.toDisplayString(d.value?"编辑笔记":"添加笔记"),1)],8,io),d.value?(t.openBlock(),t.createElementBlock("button",{key:4,class:"zm-node-menu-item",disabled:e.readonly,onClick:c[9]||(c[9]=t.withModifiers(A=>p(()=>a("removeNote")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[17]||(c[17]=t.createElementVNode("span",null,"移除笔记",-1))],8,oo)):t.createCommentVNode("",!0)],36))}});function ao(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function rn(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(r=>{const i=e[r],a=typeof i;(a==="object"||a==="function")&&!Object.isFrozen(i)&&rn(i)}),e}class an{constructor(r){r.data===void 0&&(r.data={}),this.data=r.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function sn(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Ce(e,...r){const i=Object.create(null);for(const a in e)i[a]=e[a];return r.forEach(function(a){for(const s in a)i[s]=a[s]}),i}const so="</span>",ln=e=>!!e.scope,lo=(e,{prefix:r})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const i=e.split(".");return[`${r}${i.shift()}`,...i.map((a,s)=>`${a}${"_".repeat(s+1)}`)].join(" ")}return`${r}${e}`};class co{constructor(r,i){this.buffer="",this.classPrefix=i.classPrefix,r.walk(this)}addText(r){this.buffer+=sn(r)}openNode(r){if(!ln(r))return;const i=lo(r.scope,{prefix:this.classPrefix});this.span(i)}closeNode(r){ln(r)&&(this.buffer+=so)}value(){return this.buffer}span(r){this.buffer+=`<span class="${r}">`}}const cn=(e={})=>{const r={children:[]};return Object.assign(r,e),r};class At{constructor(){this.rootNode=cn(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(r){this.top.children.push(r)}openNode(r){const i=cn({scope:r});this.add(i),this.stack.push(i)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(r){return this.constructor._walk(r,this.rootNode)}static _walk(r,i){return typeof i=="string"?r.addText(i):i.children&&(r.openNode(i),i.children.forEach(a=>this._walk(r,a)),r.closeNode(i)),r}static _collapse(r){typeof r!="string"&&r.children&&(r.children.every(i=>typeof i=="string")?r.children=[r.children.join("")]:r.children.forEach(i=>{At._collapse(i)}))}}class uo extends At{constructor(r){super(),this.options=r}addText(r){r!==""&&this.add(r)}startScope(r){this.openNode(r)}endScope(){this.closeNode()}__addSublanguage(r,i){const a=r.root;i&&(a.scope=`language:${i}`),this.add(a)}toHTML(){return new co(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Xe(e){return e?typeof e=="string"?e:e.source:null}function dn(e){return Oe("(?=",e,")")}function fo(e){return Oe("(?:",e,")*")}function go(e){return Oe("(?:",e,")?")}function Oe(...e){return e.map(i=>Xe(i)).join("")}function mo(e){const r=e[e.length-1];return typeof r=="object"&&r.constructor===Object?(e.splice(e.length-1,1),r):{}}function Rt(...e){return"("+(mo(e).capture?"":"?:")+e.map(a=>Xe(a)).join("|")+")"}function un(e){return new RegExp(e.toString()+"|").exec("").length-1}function ho(e,r){const i=e&&e.exec(r);return i&&i.index===0}const po=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Ot(e,{joinWith:r}){let i=0;return e.map(a=>{i+=1;const s=i;let g=Xe(a),l="";for(;g.length>0;){const d=po.exec(g);if(!d){l+=g;break}l+=g.substring(0,d.index),g=g.substring(d.index+d[0].length),d[0][0]==="\\"&&d[1]?l+="\\"+String(Number(d[1])+s):(l+=d[0],d[0]==="("&&i++)}return l}).map(a=>`(${a})`).join(r)}const bo=/\b\B/,fn="[a-zA-Z]\\w*",It="[a-zA-Z_]\\w*",gn="\\b\\d+(\\.\\d+)?",mn="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",hn="\\b(0b[01]+)",Eo="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",yo=(e={})=>{const r=/^#![ ]*\//;return e.binary&&(e.begin=Oe(r,/.*\b/,e.binary,/\b.*/)),Ce({scope:"meta",begin:r,end:/$/,relevance:0,"on:begin":(i,a)=>{i.index!==0&&a.ignoreMatch()}},e)},qe={begin:"\\\\[\\s\\S]",relevance:0},xo={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[qe]},ko={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[qe]},No={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/},ct=function(e,r,i={}){const a=Ce({scope:"comment",begin:e,end:r,contains:[]},i);a.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const s=Rt("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 a.contains.push({begin:Oe(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a},wo=ct("//","$"),_o=ct("/\\*","\\*/"),So=ct("#","$"),Mo={scope:"number",begin:gn,relevance:0},vo={scope:"number",begin:mn,relevance:0},To={scope:"number",begin:hn,relevance:0},Co={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[qe,{begin:/\[/,end:/\]/,relevance:0,contains:[qe]}]},Ao={scope:"title",begin:fn,relevance:0},Ro={scope:"title",begin:It,relevance:0},Oo={begin:"\\.\\s*"+It,relevance:0};var dt=Object.freeze({__proto__:null,APOS_STRING_MODE:xo,BACKSLASH_ESCAPE:qe,BINARY_NUMBER_MODE:To,BINARY_NUMBER_RE:hn,COMMENT:ct,C_BLOCK_COMMENT_MODE:_o,C_LINE_COMMENT_MODE:wo,C_NUMBER_MODE:vo,C_NUMBER_RE:mn,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(r,i)=>{i.data._beginMatch=r[1]},"on:end":(r,i)=>{i.data._beginMatch!==r[1]&&i.ignoreMatch()}})},HASH_COMMENT_MODE:So,IDENT_RE:fn,MATCH_NOTHING_RE:bo,METHOD_GUARD:Oo,NUMBER_MODE:Mo,NUMBER_RE:gn,PHRASAL_WORDS_MODE:No,QUOTE_STRING_MODE:ko,REGEXP_MODE:Co,RE_STARTERS_RE:Eo,SHEBANG:yo,TITLE_MODE:Ao,UNDERSCORE_IDENT_RE:It,UNDERSCORE_TITLE_MODE:Ro});function Io(e,r){e.input[e.index-1]==="."&&r.ignoreMatch()}function Bo(e,r){e.className!==void 0&&(e.scope=e.className,delete e.className)}function Lo(e,r){r&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=Io,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Do(e,r){Array.isArray(e.illegal)&&(e.illegal=Rt(...e.illegal))}function zo(e,r){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function $o(e,r){e.relevance===void 0&&(e.relevance=1)}const Po=(e,r)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const i=Object.assign({},e);Object.keys(e).forEach(a=>{delete e[a]}),e.keywords=i.keywords,e.begin=Oe(i.beforeMatch,dn(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},Uo=["of","and","for","in","not","or","if","then","parent","list","value"],Ho="keyword";function pn(e,r,i=Ho){const a=Object.create(null);return typeof e=="string"?s(i,e.split(" ")):Array.isArray(e)?s(i,e):Object.keys(e).forEach(function(g){Object.assign(a,pn(e[g],r,g))}),a;function s(g,l){r&&(l=l.map(d=>d.toLowerCase())),l.forEach(function(d){const u=d.split("|");a[u[0]]=[g,Vo(u[0],u[1])]})}}function Vo(e,r){return r?Number(r):Fo(e)?0:1}function Fo(e){return Uo.includes(e.toLowerCase())}const bn={},Ie=e=>{console.error(e)},En=(e,...r)=>{console.log(`WARN: ${e}`,...r)},Pe=(e,r)=>{bn[`${e}/${r}`]||(console.log(`Deprecated as of ${e}. ${r}`),bn[`${e}/${r}`]=!0)},ut=new Error;function yn(e,r,{key:i}){let a=0;const s=e[i],g={},l={};for(let d=1;d<=r.length;d++)l[d+a]=s[d],g[d+a]=!0,a+=un(r[d-1]);e[i]=l,e[i]._emit=g,e[i]._multi=!0}function Wo(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Ie("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ut;if(typeof e.beginScope!="object"||e.beginScope===null)throw Ie("beginScope must be object"),ut;yn(e,e.begin,{key:"beginScope"}),e.begin=Ot(e.begin,{joinWith:""})}}function Go(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Ie("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ut;if(typeof e.endScope!="object"||e.endScope===null)throw Ie("endScope must be object"),ut;yn(e,e.end,{key:"endScope"}),e.end=Ot(e.end,{joinWith:""})}}function Ko(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Zo(e){Ko(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Wo(e),Go(e)}function Yo(e){function r(l,d){return new RegExp(Xe(l),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(d?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(d,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,d]),this.matchAt+=un(d)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const d=this.regexes.map(u=>u[1]);this.matcherRe=r(Ot(d,{joinWith:"|"}),!0),this.lastIndex=0}exec(d){this.matcherRe.lastIndex=this.lastIndex;const u=this.matcherRe.exec(d);if(!u)return null;const m=u.findIndex((p,x)=>x>0&&p!==void 0),y=this.matchIndexes[m];return u.splice(0,m),Object.assign(u,y)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(d){if(this.multiRegexes[d])return this.multiRegexes[d];const u=new i;return this.rules.slice(d).forEach(([m,y])=>u.addRule(m,y)),u.compile(),this.multiRegexes[d]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(d,u){this.rules.push([d,u]),u.type==="begin"&&this.count++}exec(d){const u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let m=u.exec(d);if(this.resumingScanAtSamePosition()&&!(m&&m.index===this.lastIndex)){const y=this.getMatcher(0);y.lastIndex=this.lastIndex+1,m=y.exec(d)}return m&&(this.regexIndex+=m.position+1,this.regexIndex===this.count&&this.considerAll()),m}}function s(l){const d=new a;return l.contains.forEach(u=>d.addRule(u.begin,{rule:u,type:"begin"})),l.terminatorEnd&&d.addRule(l.terminatorEnd,{type:"end"}),l.illegal&&d.addRule(l.illegal,{type:"illegal"}),d}function g(l,d){const u=l;if(l.isCompiled)return u;[Bo,zo,Zo,Po].forEach(y=>y(l,d)),e.compilerExtensions.forEach(y=>y(l,d)),l.__beforeBegin=null,[Lo,Do,$o].forEach(y=>y(l,d)),l.isCompiled=!0;let m=null;return typeof l.keywords=="object"&&l.keywords.$pattern&&(l.keywords=Object.assign({},l.keywords),m=l.keywords.$pattern,delete l.keywords.$pattern),m=m||/\w+/,l.keywords&&(l.keywords=pn(l.keywords,e.case_insensitive)),u.keywordPatternRe=r(m,!0),d&&(l.begin||(l.begin=/\B|\b/),u.beginRe=r(u.begin),!l.end&&!l.endsWithParent&&(l.end=/\B|\b/),l.end&&(u.endRe=r(u.end)),u.terminatorEnd=Xe(u.end)||"",l.endsWithParent&&d.terminatorEnd&&(u.terminatorEnd+=(l.end?"|":"")+d.terminatorEnd)),l.illegal&&(u.illegalRe=r(l.illegal)),l.contains||(l.contains=[]),l.contains=[].concat(...l.contains.map(function(y){return Xo(y==="self"?l:y)})),l.contains.forEach(function(y){g(y,u)}),l.starts&&g(l.starts,d),u.matcher=s(u),u}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Ce(e.classNameAliases||{}),g(e)}function xn(e){return e?e.endsWithParent||xn(e.starts):!1}function Xo(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(r){return Ce(e,{variants:null},r)})),e.cachedVariants?e.cachedVariants:xn(e)?Ce(e,{starts:e.starts?Ce(e.starts):null}):Object.isFrozen(e)?Ce(e):e}var qo="11.11.1";class jo extends Error{constructor(r,i){super(r),this.name="HTMLInjectionError",this.html=i}}const Bt=sn,kn=Ce,Nn=Symbol("nomatch"),Jo=7,wn=function(e){const r=Object.create(null),i=Object.create(null),a=[];let s=!0;const g="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let d={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:uo};function u(E){return d.noHighlightRe.test(E)}function m(E){let v=E.className+" ";v+=E.parentNode?E.parentNode.className:"";const N=d.languageDetectRe.exec(v);if(N){const $=J(N[1]);return $||(En(g.replace("{}",N[1])),En("Falling back to no-highlight mode for this block.",E)),$?N[1]:"no-highlight"}return v.split(/\s+/).find($=>u($)||J($))}function y(E,v,N){let $="",K="";typeof v=="object"?($=E,N=v.ignoreIllegals,K=v.language):(Pe("10.7.0","highlight(lang, code, ...args) has been deprecated."),Pe("10.7.0",`Please use highlight(code, options) instead.
|
|
14
|
-
https://github.com/highlightjs/highlight.js/issues/2277`),K=E,$=v),N===void 0&&(N=!0);const ee={code:$,language:K};ie("before:highlight",ee);const ce=ee.result?ee.result:p(ee.language,ee.code,N);return ce.code=ee.code,ie("after:highlight",ce),ce}function p(E,v,N,$){const K=Object.create(null);function ee(k,_){return k.keywords[_]}function ce(){if(!I.keywords){oe.addText(q);return}let k=0;I.keywordPatternRe.lastIndex=0;let _=I.keywordPatternRe.exec(q),U="";for(;_;){U+=q.substring(k,_.index);const H=be.case_insensitive?_[0].toLowerCase():_[0],T=ee(I,H);if(T){const[ye,yt]=T;if(oe.addText(U),U="",K[H]=(K[H]||0)+1,K[H]<=
|
|
15
|
-
`,1;if(De>1e5&&De>_.index*3)throw new Error("potential infinite loop, way more iterations than matches");return q+=U,U.length}const be=J(E);if(!be)throw Ie(g.replace("{}",E)),new Error('Unknown language: "'+E+'"');const Ut=Yo(be);let Fe="",I=$||Ut;const We={},oe=new d.__emitter(d);Pt();let q="",Ge=0,Ne=0,De=0,Ee=!1;try{if(be.__emitTokens)be.__emitTokens(v,oe);else{for(I.matcher.considerAll();;){De++,Ee?Ee=!1:I.matcher.considerAll(),I.matcher.lastIndex=Ne;const k=I.matcher.exec(v);if(!k)break;const _=v.substring(Ne,k.index),U=Re(_,k);Ne=k.index+U}Re(v.substring(Ne))}return oe.finalize(),Fe=oe.toHTML(),{language:E,value:Fe,relevance:Ge,illegal:!1,_emitter:oe,_top:I}}catch(k){if(k.message&&k.message.includes("Illegal"))return{language:E,value:Bt(v),illegal:!0,relevance:0,_illegalBy:{message:k.message,index:Ne,context:v.slice(Ne-100,Ne+100),mode:k.mode,resultSoFar:Fe},_emitter:oe};if(s)return{language:E,value:Bt(v),illegal:!1,relevance:0,errorRaised:k,_emitter:oe,_top:I};throw k}}function x(E){const v={value:Bt(E),illegal:!1,relevance:0,_top:l,_emitter:new d.__emitter(d)};return v._emitter.addText(E),v}function c(E,v){v=v||d.languages||Object.keys(r);const N=x(E),$=v.filter(J).filter(z).map(ue=>p(ue,E,!1));$.unshift(N);const K=$.sort((ue,pe)=>{if(ue.relevance!==pe.relevance)return pe.relevance-ue.relevance;if(ue.language&&pe.language){if(J(ue.language).supersetOf===pe.language)return 1;if(J(pe.language).supersetOf===ue.language)return-1}return 0}),[ee,ce]=K,he=ee;return he.secondBest=ce,he}function A(E,v,N){const $=v&&i[v]||N;E.classList.add("hljs"),E.classList.add(`language-${$}`)}function L(E){let v=null;const N=m(E);if(u(N))return;if(ie("before:highlightElement",{el:E,language:N}),E.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",E);return}if(E.children.length>0&&(d.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(E)),d.throwUnescapedHTML))throw new jo("One of your code blocks includes unescaped HTML.",E.innerHTML);v=E;const $=v.textContent,K=N?y($,{language:N,ignoreIllegals:!0}):c($);E.innerHTML=K.value,E.dataset.highlighted="yes",A(E,N,K.language),E.result={language:K.language,re:K.relevance,relevance:K.relevance},K.secondBest&&(E.secondBest={language:K.secondBest.language,relevance:K.secondBest.relevance}),ie("after:highlightElement",{el:E,result:K,text:$})}function G(E){d=kn(d,E)}const S=()=>{B(),Pe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Z(){B(),Pe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let O=!1;function B(){function E(){B()}if(document.readyState==="loading"){O||window.addEventListener("DOMContentLoaded",E,!1),O=!0;return}document.querySelectorAll(d.cssSelector).forEach(L)}function P(E,v){let N=null;try{N=v(e)}catch($){if(Ie("Language definition for '{}' could not be registered.".replace("{}",E)),s)Ie($);else throw $;N=l}N.name||(N.name=E),r[E]=N,N.rawDefinition=v.bind(null,e),N.aliases&&de(N.aliases,{languageName:E})}function R(E){delete r[E];for(const v of Object.keys(i))i[v]===E&&delete i[v]}function j(){return Object.keys(r)}function J(E){return E=(E||"").toLowerCase(),r[E]||r[i[E]]}function de(E,{languageName:v}){typeof E=="string"&&(E=[E]),E.forEach(N=>{i[N.toLowerCase()]=v})}function z(E){const v=J(E);return v&&!v.disableAutodetect}function Q(E){E["before:highlightBlock"]&&!E["before:highlightElement"]&&(E["before:highlightElement"]=v=>{E["before:highlightBlock"](Object.assign({block:v.el},v))}),E["after:highlightBlock"]&&!E["after:highlightElement"]&&(E["after:highlightElement"]=v=>{E["after:highlightBlock"](Object.assign({block:v.el},v))})}function ae(E){Q(E),a.push(E)}function ne(E){const v=a.indexOf(E);v!==-1&&a.splice(v,1)}function ie(E,v){const N=E;a.forEach(function($){$[N]&&$[N](v)})}function le(E){return Pe("10.7.0","highlightBlock will be removed entirely in v12.0"),Pe("10.7.0","Please use highlightElement now."),L(E)}Object.assign(e,{highlight:y,highlightAuto:c,highlightAll:B,highlightElement:L,highlightBlock:le,configure:G,initHighlighting:S,initHighlightingOnLoad:Z,registerLanguage:P,unregisterLanguage:R,listLanguages:j,getLanguage:J,registerAliases:de,autoDetection:z,inherit:kn,addPlugin:ae,removePlugin:ne}),e.debugMode=function(){s=!1},e.safeMode=function(){s=!0},e.versionString=qo,e.regex={concat:Oe,lookahead:dn,either:Rt,optional:go,anyNumberOfTimes:fo};for(const E in dt)typeof dt[E]=="object"&&rn(dt[E]);return Object.assign(e,dt),e},Ue=wn({});Ue.newInstance=()=>wn({});var Qo=Ue;Ue.HighlightJS=Ue,Ue.default=Ue;const Lt=ao(Qo);function Dt(e){const r=e.regex,i={},a={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[i]}]};Object.assign(i,{className:"variable",variants:[{begin:r.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const s={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},g=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),l={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},d={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,s]};s.contains.push(d);const u={match:/\\"/},m={className:"string",begin:/'/,end:/'/},y={match:/\\'/},p={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,i]},x=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],c=e.SHEBANG({binary:`(${x.join("|")})`,relevance:10}),A={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},L=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],G=["true","false"],S={match:/(\/[a-z._-]+)+/},Z=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],O=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],B=["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"],P=["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:L,literal:G,built_in:[...Z,...O,"set","shopt",...B,...P]},contains:[c,e.SHEBANG(),A,p,g,l,S,d,u,m,y,i]}}const er=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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_-]*/}}),tr=["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"],nr=["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"],ir=[...tr,...nr],or=["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(),rr=["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(),ar=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),sr=["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 lr(e){const r=e.regex,i=er(e),a={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",g=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",d=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[i.BLOCK_COMMENT,a,i.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+rr.join("|")+")"},{begin:":(:)?("+ar.join("|")+")"}]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+sr.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[i.BLOCK_COMMENT,i.HEXCOLOR,i.IMPORTANT,i.CSS_NUMBER_MODE,...d,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...d,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},i.FUNCTION_DISPATCH]},{begin:r.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:g},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:or.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...d,i.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+ir.join("|")+")\\b"}]}}function _n(e){const g={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:g,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.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:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:g,illegal:/["']/}]}]}}var He="[0-9](_*[0-9])*",ft=`\\.(${He})`,gt="[0-9a-fA-F](_*[0-9a-fA-F])*",Sn={className:"number",variants:[{begin:`(\\b(${He})((${ft})|\\.)?|(${ft}))[eE][+-]?(${He})[fFdD]?\\b`},{begin:`\\b(${He})((${ft})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ft})[fFdD]?\\b`},{begin:`\\b(${He})[fFdD]\\b`},{begin:`\\b0[xX]((${gt})\\.?|(${gt})?\\.(${gt}))[pP][+-]?(${He})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${gt})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Mn(e,r,i){return i===-1?"":e.replace(r,a=>Mn(e,r,i-1))}function cr(e){const r=e.regex,i="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",a=i+Mn("(?:<"+i+"~~~(?:\\s*,\\s*"+i+"~~~)*>)?",/~~~/g,2),u={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"]},m={className:"meta",begin:"@"+i,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},y={className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:u,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,i],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[r.concat(/(?!else)/,i),/\s+/,i,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,i],className:{1:"keyword",3:"title.class"},contains:[y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:u,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[m,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Sn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Sn,m]}}const vn="[A-Za-z$_][0-9A-Za-z$_]*",dr=["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"],ur=["true","false","null","undefined","NaN","Infinity"],Tn=["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"],Cn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],An=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],fr=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],gr=[].concat(An,Tn,Cn);function Rn(e){const r=e.regex,i=(N,{after:$})=>{const K="</"+N[0].slice(1);return N.input.indexOf(K,$)!==-1},a=vn,s={begin:"<>",end:"</>"},g=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(N,$)=>{const K=N[0].length+N.index,ee=N.input[K];if(ee==="<"||ee===","){$.ignoreMatch();return}ee===">"&&(i(N,{after:K})||$.ignoreMatch());let ce;const he=N.input.substring(K);if(ce=he.match(/^\s*=/)){$.ignoreMatch();return}if((ce=he.match(/^\s+extends\s+/))&&ce.index===0){$.ignoreMatch();return}}},d={$pattern:vn,keyword:dr,literal:ur,built_in:gr,"variable.language":fr},u="[0-9](_?[0-9])*",m=`\\.(${u})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${u})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\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},x={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},c={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"css"}},L={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"graphql"}},G={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,x]},Z={className:"comment",variants:[e.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+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},O=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,{match:/\$\d+/},p];x.contains=O.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(O)});const B=[].concat(Z,x.contains),P=B.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(B)}]),R={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P},j={variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,r.concat(a,"(",r.concat(/\./,a),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,a],scope:{1:"keyword",3:"title.class"}}]},J={relevance:0,match:r.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:{_:[...Tn,...Cn]}},de={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,a,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(N){return r.concat("(?!",N.join("|"),")")}const ne={match:r.concat(/\b/,ae([...An,"super","import"].map(N=>`${N}\\s*\\(`)),a,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},ie={begin:r.concat(/\./,r.lookahead(r.concat(a,/(?![0-9A-Za-z$_(])/))),end:a,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,a,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},E="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",v={match:[/const|var|let/,/\s+/,a,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(E)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:P,CLASS_REFERENCE:J},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),de,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,Z,{match:/\$\d+/},p,J,{scope:"attr",match:a+r.lookahead(":"),relevance:0},v,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Z,e.REGEXP_MODE,{className:"function",begin:E,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:g},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,e.inherit(e.TITLE_MODE,{begin:a,className:"title.function"})]},{match:/\.\.\./,relevance:0},ie,{match:"\\$"+a,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},ne,Q,j,le,{match:/\$[(.]/}]}}function mr(e){const r={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},i={match:/[{}[\],:]/,className:"punctuation",relevance:0},a=["true","false","null"],s={scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:a},contains:[r,i,e.QUOTE_STRING_MODE,s,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function On(e){const r=e.regex,i={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},a={begin:"^[-\\*]{3,}",end:"$"},s={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}]},g={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},l={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:r.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),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}]},m={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},y={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(m,{contains:[]}),x=e.inherit(y,{contains:[]});m.contains.push(x),y.contains.push(p);let c=[i,u];return[m,y,p,x].forEach(S=>{S.contains=S.contains.concat(c)}),c=c.concat(m,y),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},i,g,m,y,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},s,a,u,l,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function In(e){const r=e.regex,i=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),a=["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"],d={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,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"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},m={className:"subst",begin:/\{/,end:/\}/,keywords:d,illegal:/#/},y={begin:/\{\{/,relevance:0},p={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u,y,m]},{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:[e.BACKSLASH_ESCAPE,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,y,m]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},x="[0-9](_?[0-9])*",c=`(\\b(${x}))?\\.(${x})|\\b(${x})\\.`,A=`\\b|${a.join("|")}`,L={className:"number",relevance:0,variants:[{begin:`(\\b(${x})|(${c}))[eE][+-]?(${x})[jJ]?(?=${A})`},{begin:`(${c})[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(${x})[jJ](?=${A})`}]},G={className:"comment",begin:r.lookahead(/# type:/),end:/$/,keywords:d,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:["self",u,L,p,e.HASH_COMMENT_MODE]}]};return m.contains=[p,L,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:d,illegal:/(<\/|\?)|=>/,contains:[u,L,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},p,G,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,i],scope:{1:"keyword",3:"title.function"},contains:[S]},{variants:[{match:[/\bclass/,/\s+/,i,/\s*/,/\(\s*/,i,/\s*\)/]},{match:[/\bclass/,/\s+/,i]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[L,S,p]}]}}function Bn(e){const r=e.regex,i=/(r#)?/,a=r.concat(i,e.UNDERSCORE_IDENT_RE),s=r.concat(i,e.IDENT_RE),g={className:"title.function.invoke",relevance:0,begin:r.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,r.lookahead(/\s*\(/))},l="([ui](8|16|32|64|128|size)|f(32|64))?",d=["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"],u=["true","false","Some","None","Ok","Err"],m=["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!"],y=["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:e.IDENT_RE+"!?",type:y,keyword:d,literal:u,built_in:m},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.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_]+)"+l},{begin:"\\b0o([0-7_]+)"+l},{begin:"\\b0x([A-Fa-f0-9_]+)"+l},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+l}],relevance:0},{begin:[/fn/,/\s+/,a],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:m,type:y}},{className:"punctuation",begin:"->"},g]}}function hr(e){const r=e.regex,i=e.COMMENT("--","$"),a={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},g=["true","false","unknown"],l=["double precision","large object","with timezone","without timezone"],d=["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"],u=["add","asc","collation","desc","final","first","last","view"],m=["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"],y=["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"],p=["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"],x=["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"],c=y,A=[...m,...u].filter(P=>!y.includes(P)),L={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},G={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},S={match:r.concat(/\b/,r.either(...c),/\s*\(/),relevance:0,keywords:{built_in:c}};function Z(P){return r.concat(/\b/,r.either(...P.map(R=>R.replace(/\s+/,"\\s+"))),/\b/)}const O={scope:"keyword",match:Z(x),relevance:0};function B(P,{exceptions:R,when:j}={}){const J=j;return R=R||[],P.map(de=>de.match(/\|\d+$/)||R.includes(de)?de:J(de)?`${de}|0`:de)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:B(A,{when:P=>P.length<3}),literal:g,type:d,built_in:p},contains:[{scope:"type",match:Z(l)},O,S,L,a,s,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,i,G]}}const mt="[A-Za-z$_][0-9A-Za-z$_]*",Ln=["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"],Dn=["true","false","null","undefined","NaN","Infinity"],zn=["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"],$n=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Pn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Un=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Hn=[].concat(Pn,zn,$n);function pr(e){const r=e.regex,i=(N,{after:$})=>{const K="</"+N[0].slice(1);return N.input.indexOf(K,$)!==-1},a=mt,s={begin:"<>",end:"</>"},g=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(N,$)=>{const K=N[0].length+N.index,ee=N.input[K];if(ee==="<"||ee===","){$.ignoreMatch();return}ee===">"&&(i(N,{after:K})||$.ignoreMatch());let ce;const he=N.input.substring(K);if(ce=he.match(/^\s*=/)){$.ignoreMatch();return}if((ce=he.match(/^\s+extends\s+/))&&ce.index===0){$.ignoreMatch();return}}},d={$pattern:mt,keyword:Ln,literal:Dn,built_in:Hn,"variable.language":Un},u="[0-9](_?[0-9])*",m=`\\.(${u})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${u})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\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},x={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},c={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"css"}},L={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"graphql"}},G={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,x]},Z={className:"comment",variants:[e.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+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},O=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,{match:/\$\d+/},p];x.contains=O.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(O)});const B=[].concat(Z,x.contains),P=B.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(B)}]),R={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P},j={variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,r.concat(a,"(",r.concat(/\./,a),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,a],scope:{1:"keyword",3:"title.class"}}]},J={relevance:0,match:r.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:{_:[...zn,...$n]}},de={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,a,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(N){return r.concat("(?!",N.join("|"),")")}const ne={match:r.concat(/\b/,ae([...Pn,"super","import"].map(N=>`${N}\\s*\\(`)),a,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},ie={begin:r.concat(/\./,r.lookahead(r.concat(a,/(?![0-9A-Za-z$_(])/))),end:a,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,a,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},E="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",v={match:[/const|var|let/,/\s+/,a,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(E)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:P,CLASS_REFERENCE:J},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),de,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,Z,{match:/\$\d+/},p,J,{scope:"attr",match:a+r.lookahead(":"),relevance:0},v,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Z,e.REGEXP_MODE,{className:"function",begin:E,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:g},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,e.inherit(e.TITLE_MODE,{begin:a,className:"title.function"})]},{match:/\.\.\./,relevance:0},ie,{match:"\\$"+a,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},ne,Q,j,le,{match:/\$[(.]/}]}}function Vn(e){const r=e.regex,i=pr(e),a=mt,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],g={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},l={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[i.exports.CLASS_REFERENCE]},d={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],m={$pattern:mt,keyword:Ln.concat(u),literal:Dn,built_in:Hn.concat(s),"variable.language":Un},y={className:"meta",begin:"@"+a},p=(L,G,S)=>{const Z=L.contains.findIndex(O=>O.label===G);if(Z===-1)throw new Error("can not find mode to replace");L.contains.splice(Z,1,S)};Object.assign(i.keywords,m),i.exports.PARAMS_CONTAINS.push(y);const x=i.contains.find(L=>L.scope==="attr"),c=Object.assign({},x,{match:r.concat(a,r.lookahead(/\s*\?:/))});i.exports.PARAMS_CONTAINS.push([i.exports.CLASS_REFERENCE,x,c]),i.contains=i.contains.concat([y,g,l,c]),p(i,"shebang",e.SHEBANG()),p(i,"use_strict",d);const A=i.contains.find(L=>L.label==="func.def");return A.relevance=0,Object.assign(i,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),i}function Fn(e){const r=e.regex,i=r.concat(/[\p{L}_]/u,r.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},g={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},l=e.inherit(g,{begin:/\(/,end:/\)/}),d=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),m={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:a,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[s]},{begin:/'/,end:/'/,contains:[s]},{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:[g,u,d,l,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[g,l,u,d]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:r.concat(/</,r.lookahead(r.concat(i,r.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:i,relevance:0,starts:m}]},{className:"tag",begin:r.concat(/<\//,r.lookahead(r.concat(i,/>/))),contains:[{className:"name",begin:i,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Wn(e){const r="true false yes no null",i="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},g={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},l={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,s]},d=e.inherit(l,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),x={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"},c={end:",",endsWithParent:!0,excludeEnd:!0,keywords:r,relevance:0},A={begin:/\{/,end:/\}/,contains:[c],illegal:"\\n",relevance:0},L={begin:"\\[",end:"\\]",contains:[c],illegal:"\\n",relevance:0},G=[a,{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+!"+i},{className:"type",begin:"!<"+i+">"},{className:"type",begin:"!"+i},{className:"type",begin:"!!"+i},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:r,keywords:{literal:r}},x,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},A,L,g,l],S=[...G];return S.pop(),S.push(d),c.contains=S,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:G}}const zt={bash:Dt,sh:Dt,shell:Dt,css:lr,go:_n,golang:_n,java:cr,javascript:Rn,js:Rn,json:mr,markdown:On,md:On,python:In,py:In,rust:Bn,rs:Bn,sql:hr,typescript:Vn,ts:Vn,xml:Fn,html:Fn,yaml:Wn,yml:Wn};for(const[e,r]of Object.entries(zt))Lt.registerLanguage(e,r);function Gn(e){const r=e.split(`
|
|
13
|
+
`:""}function Gi(e){const r=e.minScale??.2,i=e.maxScale??1/0,a=e.step??1.2,s=t.ref(1),g=t.ref(0),l=t.ref(0),d=t.ref(!1),u=t.reactive({x:0,y:0,ox:0,oy:0}),m=t.ref(!1),y=t.reactive({x:0,y:0}),p=t.reactive({x:0,y:0,width:0,height:0}),x=t.ref(0);let c=null;function A(z){c=z}function L(z){z.preventDefault();const Q=e.getContainer();if(!Q)return;const ae=-z.deltaY*.001,ne=Math.min(i,Math.max(r,s.value*(1+ae))),ie=Q.getBoundingClientRect(),le=z.clientX-ie.left,E=z.clientY-ie.top,v=(le-g.value)/s.value,N=(E-l.value)/s.value;s.value=ne,g.value=le-v*ne,l.value=E-N*ne}function G(){s.value=Math.min(i,s.value*a)}function S(){s.value=Math.max(r,s.value/a)}function Z(z){var ae;z.target.closest(".zm-node, .zm-toolbar, button, input, textarea")||(d.value=!0,u.x=z.clientX,u.y=z.clientY,u.ox=g.value,u.oy=l.value,window.addEventListener("mousemove",O),window.addEventListener("mouseup",B),(ae=z.preventDefault)==null||ae.call(z))}function O(z){d.value&&(g.value=u.ox+(z.clientX-u.x),l.value=u.oy+(z.clientY-u.y))}function B(){d.value=!1,window.removeEventListener("mousemove",O),window.removeEventListener("mouseup",B)}function P(z,Q){m.value=!0,y.x=z,y.y=Q,p.x=z,p.y=Q,p.width=0,p.height=0,x.value++,window.addEventListener("mousemove",J),window.addEventListener("mouseup",j)}function R(z,Q){if(!m.value)return;const ae=Math.min(y.x,z),ne=Math.min(y.y,Q),ie=Math.max(y.x,z),le=Math.max(y.y,Q);p.x=ae,p.y=ne,p.width=ie-ae,p.height=le-ne,x.value++}function j(){m.value=!1,window.removeEventListener("mousemove",J),window.removeEventListener("mouseup",j),c&&c()}function J(z){if(!m.value)return;const Q=e.getContainer();if(!Q)return;const ae=Q.getBoundingClientRect(),ne=(z.clientX-ae.left-g.value)/s.value,ie=(z.clientY-ae.top-l.value)/s.value;R(ne,ie)}function de(z,Q,ae,ne=60){const ie=e.getContainer();if(!ie)return;const le=ie.getBoundingClientRect(),E=(le.width-ne*2)/z,v=(le.height-ne*2)/Q,N=Math.min(1,Math.max(.3,Math.min(E,v)));s.value=N,g.value=le.width/2,l.value=le.height/2-ae*N}return{scale:s,offsetX:g,offsetY:l,isPanning:d,onWheel:L,zoomIn:G,zoomOut:S,startPan:Z,startMarquee:P,updateMarquee:R,isMarquee:m,marquee:p,marqueeVersion:x,setOnMarqueeEnd:A,resetView:de}}const Ki=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.platform);function on(e){return Ki?e.metaKey:e.ctrlKey}function Zi(e){function r(){const a=e.getSelectedId();return a||(e.defaultTargetId?e.defaultTargetId():e.getRootId())}function i(a){const s=a.target;if(s&&(s.tagName==="INPUT"||s.tagName==="TEXTAREA"||s.isContentEditable)||e.isReadonly()||e.isEditing())return;const g=e.getSelectedId(),l=r();if(l){if(on(a)&&!a.shiftKey){if(a.key==="d"||a.key==="D"){g&&g!==e.getRootId()&&(a.preventDefault(),e.onDuplicate(g));return}if(a.key==="z"||a.key==="Z"){a.preventDefault(),e.onUndo();return}if(a.key==="y"||a.key==="Y"){a.preventDefault(),e.onRedo();return}if(a.key==="Home"){a.preventDefault(),e.onSelectRoot();return}}if(on(a)&&a.shiftKey&&(a.key==="Z"||a.key==="z")){a.preventDefault(),e.onRedo();return}a.key==="Tab"?(a.preventDefault(),e.onAddChild(l)):a.key==="Enter"?(a.preventDefault(),a.shiftKey?g&&g!==e.getRootId()&&e.onAddSiblingBefore(g):e.onAddSibling(l)):(a.key==="Delete"||a.key==="Backspace")&&g&&g!==e.getRootId()?(a.preventDefault(),e.onRemove(g)):a.key==="F2"&&g?(a.preventDefault(),e.onStartEdit(g)):a.key==="Escape"?(a.preventDefault(),e.onClearSelection()):a.key==="ArrowDown"?(a.preventDefault(),e.onNavigate(0,1)):a.key==="ArrowUp"?(a.preventDefault(),e.onNavigate(0,-1)):a.key==="ArrowRight"?(a.preventDefault(),e.onNavigate(1,0)):a.key==="ArrowLeft"&&(a.preventDefault(),e.onNavigate(-1,0))}}t.onMounted(()=>{window.addEventListener("keydown",i)}),t.onBeforeUnmount(()=>{window.removeEventListener("keydown",i)})}function Yi(e=100){const r=t.ref([]);let i=-1;function a(){return i>0}function s(){return i<r.value.length-1}function g(m){const y=JSON.stringify(m);for(i<r.value.length-1&&(r.value=r.value.slice(0,i+1)),r.value.push(y),i=r.value.length-1;r.value.length>e;)r.value.shift(),i--}function l(){return a()?(i--,JSON.parse(r.value[i])):null}function d(){return s()?(i++,JSON.parse(r.value[i])):null}function u(){r.value=[],i=-1}return{canUndo:a,canRedo:s,record:g,undo:l,redo:d,reset:u}}const Xi=t.defineComponent({__name:"NodeContextMenu",props:{x:{},y:{},container:{},hasImage:{type:Boolean,default:!1},hasLink:{type:Boolean,default:!1},hasNote:{type:Boolean,default:!1},hasCode:{type:Boolean,default:!1},hasTable:{type:Boolean,default:!1}},emits:["pickImage","setLink","removeLink","editNote","removeNote","removeImage","addCode","editCode","removeCode","addTable","editTable","removeTable","close"],setup(e,{emit:r}){const i=e,a=r,s=t.computed(()=>{let x=i.x+2,c=i.y+2;if(i.container){const A=i.container.getBoundingClientRect(),L=180,S=4+(3+(i.hasImage?1:0)+(i.hasLink?1:0)+(i.hasNote?1:0)+1+(i.hasCode?1:0)+1+(i.hasTable?1:0))*28;x+L>A.right&&(x=Math.max(A.left+4,i.x-L-2)),c+S>A.bottom&&(c=Math.max(A.top+4,i.y-S-2)),x<A.left+2&&(x=A.left+2),c<A.top+2&&(c=A.top+2)}return{left:x,top:c}}),g=t.computed(()=>i.hasImage),l=t.computed(()=>i.hasLink),d=t.computed(()=>i.hasNote);function u(x){const c=x.target;c&&c.closest(".zm-node-menu")||a("close")}function m(x){x.key==="Escape"&&a("close")}function y(){a("close")}window.addEventListener("mousedown",u,!0),window.addEventListener("keydown",m,!0),window.addEventListener("wheel",y,!0),window.addEventListener("scroll",y,!0),t.onBeforeUnmount(()=>{window.removeEventListener("mousedown",u,!0),window.removeEventListener("keydown",m,!0),window.removeEventListener("wheel",y,!0),window.removeEventListener("scroll",y,!0)});function p(x){x(),a("close")}return(x,c)=>(t.openBlock(),t.createElementBlock("div",{class:"zm-node-menu",style:t.normalizeStyle({left:s.value.left+"px",top:s.value.top+"px"}),onContextmenu:c[10]||(c[10]=t.withModifiers(()=>{},["prevent"]))},[t.createElementVNode("button",{class:"zm-node-menu-item",onClick:c[0]||(c[0]=t.withModifiers(A=>p(()=>a("pickImage")),["stop"]))},[t.createVNode(re,{name:"image",size:13}),t.createElementVNode("span",null,t.toDisplayString(g.value?"替换图片":"添加图片"),1)]),g.value?(t.openBlock(),t.createElementBlock("button",{key:0,class:"zm-node-menu-item",onClick:c[1]||(c[1]=t.withModifiers(A=>p(()=>a("removeImage")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[11]||(c[11]=t.createElementVNode("span",null,"移除图片",-1))])):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",onClick:c[2]||(c[2]=t.withModifiers(A=>p(()=>a("setLink")),["stop"]))},[t.createVNode(re,{name:"link",size:13}),t.createElementVNode("span",null,t.toDisplayString(l.value?"编辑链接":"添加链接"),1)]),l.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:"zm-node-menu-item",onClick:c[3]||(c[3]=t.withModifiers(A=>p(()=>a("removeLink")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[12]||(c[12]=t.createElementVNode("span",null,"移除链接",-1))])):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",onClick:c[4]||(c[4]=t.withModifiers(A=>p(()=>a("addCode")),["stop"]))},[c[13]||(c[13]=t.createElementVNode("span",{class:"zm-node-menu-icon zm-node-menu-icon-code","aria-hidden":"true"},"{ }",-1)),t.createElementVNode("span",null,t.toDisplayString(e.hasCode?"编辑代码块":"添加代码块"),1)]),e.hasCode?(t.openBlock(),t.createElementBlock("button",{key:2,class:"zm-node-menu-item",onClick:c[5]||(c[5]=t.withModifiers(A=>p(()=>a("removeCode")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[14]||(c[14]=t.createElementVNode("span",null,"移除代码块",-1))])):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",onClick:c[6]||(c[6]=t.withModifiers(A=>p(()=>a("addTable")),["stop"]))},[c[15]||(c[15]=t.createElementVNode("span",{class:"zm-node-menu-icon zm-node-menu-icon-table","aria-hidden":"true"},"▦",-1)),t.createElementVNode("span",null,t.toDisplayString(e.hasTable?"编辑表格":"添加表格"),1)]),e.hasTable?(t.openBlock(),t.createElementBlock("button",{key:3,class:"zm-node-menu-item",onClick:c[7]||(c[7]=t.withModifiers(A=>p(()=>a("removeTable")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[16]||(c[16]=t.createElementVNode("span",null,"移除表格",-1))])):t.createCommentVNode("",!0),t.createElementVNode("button",{class:"zm-node-menu-item",onClick:c[8]||(c[8]=t.withModifiers(A=>p(()=>a("editNote")),["stop"]))},[t.createVNode(re,{name:"note",size:13}),t.createElementVNode("span",null,t.toDisplayString(d.value?"编辑笔记":"添加笔记"),1)]),d.value?(t.openBlock(),t.createElementBlock("button",{key:4,class:"zm-node-menu-item",onClick:c[9]||(c[9]=t.withModifiers(A=>p(()=>a("removeNote")),["stop"]))},[t.createVNode(re,{name:"x",size:13}),c[17]||(c[17]=t.createElementVNode("span",null,"移除笔记",-1))])):t.createCommentVNode("",!0)],36))}});function qi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function rn(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(r=>{const i=e[r],a=typeof i;(a==="object"||a==="function")&&!Object.isFrozen(i)&&rn(i)}),e}class an{constructor(r){r.data===void 0&&(r.data={}),this.data=r.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function sn(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Ce(e,...r){const i=Object.create(null);for(const a in e)i[a]=e[a];return r.forEach(function(a){for(const s in a)i[s]=a[s]}),i}const ji="</span>",ln=e=>!!e.scope,Ji=(e,{prefix:r})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const i=e.split(".");return[`${r}${i.shift()}`,...i.map((a,s)=>`${a}${"_".repeat(s+1)}`)].join(" ")}return`${r}${e}`};class Qi{constructor(r,i){this.buffer="",this.classPrefix=i.classPrefix,r.walk(this)}addText(r){this.buffer+=sn(r)}openNode(r){if(!ln(r))return;const i=Ji(r.scope,{prefix:this.classPrefix});this.span(i)}closeNode(r){ln(r)&&(this.buffer+=ji)}value(){return this.buffer}span(r){this.buffer+=`<span class="${r}">`}}const cn=(e={})=>{const r={children:[]};return Object.assign(r,e),r};class At{constructor(){this.rootNode=cn(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(r){this.top.children.push(r)}openNode(r){const i=cn({scope:r});this.add(i),this.stack.push(i)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(r){return this.constructor._walk(r,this.rootNode)}static _walk(r,i){return typeof i=="string"?r.addText(i):i.children&&(r.openNode(i),i.children.forEach(a=>this._walk(r,a)),r.closeNode(i)),r}static _collapse(r){typeof r!="string"&&r.children&&(r.children.every(i=>typeof i=="string")?r.children=[r.children.join("")]:r.children.forEach(i=>{At._collapse(i)}))}}class eo extends At{constructor(r){super(),this.options=r}addText(r){r!==""&&this.add(r)}startScope(r){this.openNode(r)}endScope(){this.closeNode()}__addSublanguage(r,i){const a=r.root;i&&(a.scope=`language:${i}`),this.add(a)}toHTML(){return new Qi(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Xe(e){return e?typeof e=="string"?e:e.source:null}function dn(e){return Oe("(?=",e,")")}function to(e){return Oe("(?:",e,")*")}function no(e){return Oe("(?:",e,")?")}function Oe(...e){return e.map(i=>Xe(i)).join("")}function io(e){const r=e[e.length-1];return typeof r=="object"&&r.constructor===Object?(e.splice(e.length-1,1),r):{}}function Rt(...e){return"("+(io(e).capture?"":"?:")+e.map(a=>Xe(a)).join("|")+")"}function un(e){return new RegExp(e.toString()+"|").exec("").length-1}function oo(e,r){const i=e&&e.exec(r);return i&&i.index===0}const ro=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Ot(e,{joinWith:r}){let i=0;return e.map(a=>{i+=1;const s=i;let g=Xe(a),l="";for(;g.length>0;){const d=ro.exec(g);if(!d){l+=g;break}l+=g.substring(0,d.index),g=g.substring(d.index+d[0].length),d[0][0]==="\\"&&d[1]?l+="\\"+String(Number(d[1])+s):(l+=d[0],d[0]==="("&&i++)}return l}).map(a=>`(${a})`).join(r)}const ao=/\b\B/,fn="[a-zA-Z]\\w*",It="[a-zA-Z_]\\w*",gn="\\b\\d+(\\.\\d+)?",mn="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",hn="\\b(0b[01]+)",so="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",lo=(e={})=>{const r=/^#![ ]*\//;return e.binary&&(e.begin=Oe(r,/.*\b/,e.binary,/\b.*/)),Ce({scope:"meta",begin:r,end:/$/,relevance:0,"on:begin":(i,a)=>{i.index!==0&&a.ignoreMatch()}},e)},qe={begin:"\\\\[\\s\\S]",relevance:0},co={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[qe]},uo={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[qe]},fo={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/},ct=function(e,r,i={}){const a=Ce({scope:"comment",begin:e,end:r,contains:[]},i);a.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const s=Rt("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 a.contains.push({begin:Oe(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),a},go=ct("//","$"),mo=ct("/\\*","\\*/"),ho=ct("#","$"),po={scope:"number",begin:gn,relevance:0},bo={scope:"number",begin:mn,relevance:0},Eo={scope:"number",begin:hn,relevance:0},yo={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[qe,{begin:/\[/,end:/\]/,relevance:0,contains:[qe]}]},xo={scope:"title",begin:fn,relevance:0},ko={scope:"title",begin:It,relevance:0},No={begin:"\\.\\s*"+It,relevance:0};var dt=Object.freeze({__proto__:null,APOS_STRING_MODE:co,BACKSLASH_ESCAPE:qe,BINARY_NUMBER_MODE:Eo,BINARY_NUMBER_RE:hn,COMMENT:ct,C_BLOCK_COMMENT_MODE:mo,C_LINE_COMMENT_MODE:go,C_NUMBER_MODE:bo,C_NUMBER_RE:mn,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(r,i)=>{i.data._beginMatch=r[1]},"on:end":(r,i)=>{i.data._beginMatch!==r[1]&&i.ignoreMatch()}})},HASH_COMMENT_MODE:ho,IDENT_RE:fn,MATCH_NOTHING_RE:ao,METHOD_GUARD:No,NUMBER_MODE:po,NUMBER_RE:gn,PHRASAL_WORDS_MODE:fo,QUOTE_STRING_MODE:uo,REGEXP_MODE:yo,RE_STARTERS_RE:so,SHEBANG:lo,TITLE_MODE:xo,UNDERSCORE_IDENT_RE:It,UNDERSCORE_TITLE_MODE:ko});function wo(e,r){e.input[e.index-1]==="."&&r.ignoreMatch()}function _o(e,r){e.className!==void 0&&(e.scope=e.className,delete e.className)}function So(e,r){r&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=wo,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function Mo(e,r){Array.isArray(e.illegal)&&(e.illegal=Rt(...e.illegal))}function vo(e,r){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function To(e,r){e.relevance===void 0&&(e.relevance=1)}const Co=(e,r)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const i=Object.assign({},e);Object.keys(e).forEach(a=>{delete e[a]}),e.keywords=i.keywords,e.begin=Oe(i.beforeMatch,dn(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},Ao=["of","and","for","in","not","or","if","then","parent","list","value"],Ro="keyword";function pn(e,r,i=Ro){const a=Object.create(null);return typeof e=="string"?s(i,e.split(" ")):Array.isArray(e)?s(i,e):Object.keys(e).forEach(function(g){Object.assign(a,pn(e[g],r,g))}),a;function s(g,l){r&&(l=l.map(d=>d.toLowerCase())),l.forEach(function(d){const u=d.split("|");a[u[0]]=[g,Oo(u[0],u[1])]})}}function Oo(e,r){return r?Number(r):Io(e)?0:1}function Io(e){return Ao.includes(e.toLowerCase())}const bn={},Ie=e=>{console.error(e)},En=(e,...r)=>{console.log(`WARN: ${e}`,...r)},Pe=(e,r)=>{bn[`${e}/${r}`]||(console.log(`Deprecated as of ${e}. ${r}`),bn[`${e}/${r}`]=!0)},ut=new Error;function yn(e,r,{key:i}){let a=0;const s=e[i],g={},l={};for(let d=1;d<=r.length;d++)l[d+a]=s[d],g[d+a]=!0,a+=un(r[d-1]);e[i]=l,e[i]._emit=g,e[i]._multi=!0}function Bo(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Ie("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ut;if(typeof e.beginScope!="object"||e.beginScope===null)throw Ie("beginScope must be object"),ut;yn(e,e.begin,{key:"beginScope"}),e.begin=Ot(e.begin,{joinWith:""})}}function Lo(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Ie("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ut;if(typeof e.endScope!="object"||e.endScope===null)throw Ie("endScope must be object"),ut;yn(e,e.end,{key:"endScope"}),e.end=Ot(e.end,{joinWith:""})}}function Do(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function zo(e){Do(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Bo(e),Lo(e)}function $o(e){function r(l,d){return new RegExp(Xe(l),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(d?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(d,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,d]),this.matchAt+=un(d)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const d=this.regexes.map(u=>u[1]);this.matcherRe=r(Ot(d,{joinWith:"|"}),!0),this.lastIndex=0}exec(d){this.matcherRe.lastIndex=this.lastIndex;const u=this.matcherRe.exec(d);if(!u)return null;const m=u.findIndex((p,x)=>x>0&&p!==void 0),y=this.matchIndexes[m];return u.splice(0,m),Object.assign(u,y)}}class a{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(d){if(this.multiRegexes[d])return this.multiRegexes[d];const u=new i;return this.rules.slice(d).forEach(([m,y])=>u.addRule(m,y)),u.compile(),this.multiRegexes[d]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(d,u){this.rules.push([d,u]),u.type==="begin"&&this.count++}exec(d){const u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let m=u.exec(d);if(this.resumingScanAtSamePosition()&&!(m&&m.index===this.lastIndex)){const y=this.getMatcher(0);y.lastIndex=this.lastIndex+1,m=y.exec(d)}return m&&(this.regexIndex+=m.position+1,this.regexIndex===this.count&&this.considerAll()),m}}function s(l){const d=new a;return l.contains.forEach(u=>d.addRule(u.begin,{rule:u,type:"begin"})),l.terminatorEnd&&d.addRule(l.terminatorEnd,{type:"end"}),l.illegal&&d.addRule(l.illegal,{type:"illegal"}),d}function g(l,d){const u=l;if(l.isCompiled)return u;[_o,vo,zo,Co].forEach(y=>y(l,d)),e.compilerExtensions.forEach(y=>y(l,d)),l.__beforeBegin=null,[So,Mo,To].forEach(y=>y(l,d)),l.isCompiled=!0;let m=null;return typeof l.keywords=="object"&&l.keywords.$pattern&&(l.keywords=Object.assign({},l.keywords),m=l.keywords.$pattern,delete l.keywords.$pattern),m=m||/\w+/,l.keywords&&(l.keywords=pn(l.keywords,e.case_insensitive)),u.keywordPatternRe=r(m,!0),d&&(l.begin||(l.begin=/\B|\b/),u.beginRe=r(u.begin),!l.end&&!l.endsWithParent&&(l.end=/\B|\b/),l.end&&(u.endRe=r(u.end)),u.terminatorEnd=Xe(u.end)||"",l.endsWithParent&&d.terminatorEnd&&(u.terminatorEnd+=(l.end?"|":"")+d.terminatorEnd)),l.illegal&&(u.illegalRe=r(l.illegal)),l.contains||(l.contains=[]),l.contains=[].concat(...l.contains.map(function(y){return Po(y==="self"?l:y)})),l.contains.forEach(function(y){g(y,u)}),l.starts&&g(l.starts,d),u.matcher=s(u),u}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Ce(e.classNameAliases||{}),g(e)}function xn(e){return e?e.endsWithParent||xn(e.starts):!1}function Po(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(r){return Ce(e,{variants:null},r)})),e.cachedVariants?e.cachedVariants:xn(e)?Ce(e,{starts:e.starts?Ce(e.starts):null}):Object.isFrozen(e)?Ce(e):e}var Uo="11.11.1";class Ho extends Error{constructor(r,i){super(r),this.name="HTMLInjectionError",this.html=i}}const Bt=sn,kn=Ce,Nn=Symbol("nomatch"),Vo=7,wn=function(e){const r=Object.create(null),i=Object.create(null),a=[];let s=!0;const g="Could not find the language '{}', did you forget to load/include a language module?",l={disableAutodetect:!0,name:"Plain text",contains:[]};let d={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:eo};function u(E){return d.noHighlightRe.test(E)}function m(E){let v=E.className+" ";v+=E.parentNode?E.parentNode.className:"";const N=d.languageDetectRe.exec(v);if(N){const $=J(N[1]);return $||(En(g.replace("{}",N[1])),En("Falling back to no-highlight mode for this block.",E)),$?N[1]:"no-highlight"}return v.split(/\s+/).find($=>u($)||J($))}function y(E,v,N){let $="",K="";typeof v=="object"?($=E,N=v.ignoreIllegals,K=v.language):(Pe("10.7.0","highlight(lang, code, ...args) has been deprecated."),Pe("10.7.0",`Please use highlight(code, options) instead.
|
|
14
|
+
https://github.com/highlightjs/highlight.js/issues/2277`),K=E,$=v),N===void 0&&(N=!0);const ee={code:$,language:K};ie("before:highlight",ee);const ce=ee.result?ee.result:p(ee.language,ee.code,N);return ce.code=ee.code,ie("after:highlight",ce),ce}function p(E,v,N,$){const K=Object.create(null);function ee(k,_){return k.keywords[_]}function ce(){if(!I.keywords){oe.addText(q);return}let k=0;I.keywordPatternRe.lastIndex=0;let _=I.keywordPatternRe.exec(q),U="";for(;_;){U+=q.substring(k,_.index);const H=be.case_insensitive?_[0].toLowerCase():_[0],T=ee(I,H);if(T){const[ye,yt]=T;if(oe.addText(U),U="",K[H]=(K[H]||0)+1,K[H]<=Vo&&(Ge+=yt),ye.startsWith("_"))U+=_[0];else{const Ht=be.classNameAliases[ye]||ye;pe(_[0],Ht)}}else U+=_[0];k=I.keywordPatternRe.lastIndex,_=I.keywordPatternRe.exec(q)}U+=q.substring(k),oe.addText(U)}function he(){if(q==="")return;let k=null;if(typeof I.subLanguage=="string"){if(!r[I.subLanguage]){oe.addText(q);return}k=p(I.subLanguage,q,!0,We[I.subLanguage]),We[I.subLanguage]=k._top}else k=c(q,I.subLanguage.length?I.subLanguage:null);I.relevance>0&&(Ge+=k.relevance),oe.__addSublanguage(k._emitter,k.language)}function ue(){I.subLanguage!=null?he():ce(),q=""}function pe(k,_){k!==""&&(oe.startScope(_),oe.addText(k),oe.endScope())}function ht(k,_){let U=1;const H=_.length-1;for(;U<=H;){if(!k._emit[U]){U++;continue}const T=be.classNameAliases[k[U]]||k[U],ye=_[U];T?pe(ye,T):(q=ye,ce(),q=""),U++}}function je(k,_){return k.scope&&typeof k.scope=="string"&&oe.openNode(be.classNameAliases[k.scope]||k.scope),k.beginScope&&(k.beginScope._wrap?(pe(q,be.classNameAliases[k.beginScope._wrap]||k.beginScope._wrap),q=""):k.beginScope._multi&&(ht(k.beginScope,_),q="")),I=Object.create(k,{parent:{value:I}}),I}function pt(k,_,U){let H=oo(k.endRe,U);if(H){if(k["on:end"]){const T=new an(k);k["on:end"](_,T),T.isMatchIgnored&&(H=!1)}if(H){for(;k.endsParent&&k.parent;)k=k.parent;return k}}if(k.endsWithParent)return pt(k.parent,_,U)}function bt(k){return I.matcher.regexIndex===0?(q+=k[0],1):(Ee=!0,0)}function $t(k){const _=k[0],U=k.rule,H=new an(U),T=[U.__beforeBegin,U["on:begin"]];for(const ye of T)if(ye&&(ye(k,H),H.isMatchIgnored))return bt(_);return U.skip?q+=_:(U.excludeBegin&&(q+=_),ue(),!U.returnBegin&&!U.excludeBegin&&(q=_)),je(U,k),U.returnBegin?0:_.length}function Et(k){const _=k[0],U=v.substring(k.index),H=pt(I,k,U);if(!H)return Nn;const T=I;I.endScope&&I.endScope._wrap?(ue(),pe(_,I.endScope._wrap)):I.endScope&&I.endScope._multi?(ue(),ht(I.endScope,k)):T.skip?q+=_:(T.returnEnd||T.excludeEnd||(q+=_),ue(),T.excludeEnd&&(q=_));do I.scope&&oe.closeNode(),!I.skip&&!I.subLanguage&&(Ge+=I.relevance),I=I.parent;while(I!==H.parent);return H.starts&&je(H.starts,k),T.returnEnd?0:_.length}function Pt(){const k=[];for(let _=I;_!==be;_=_.parent)_.scope&&k.unshift(_.scope);k.forEach(_=>oe.openNode(_))}let Le={};function Re(k,_){const U=_&&_[0];if(q+=k,U==null)return ue(),0;if(Le.type==="begin"&&_.type==="end"&&Le.index===_.index&&U===""){if(q+=v.slice(_.index,_.index+1),!s){const H=new Error(`0 width match regex (${E})`);throw H.languageName=E,H.badRule=Le.rule,H}return 1}if(Le=_,_.type==="begin")return $t(_);if(_.type==="illegal"&&!N){const H=new Error('Illegal lexeme "'+U+'" for mode "'+(I.scope||"<unnamed>")+'"');throw H.mode=I,H}else if(_.type==="end"){const H=Et(_);if(H!==Nn)return H}if(_.type==="illegal"&&U==="")return q+=`
|
|
15
|
+
`,1;if(De>1e5&&De>_.index*3)throw new Error("potential infinite loop, way more iterations than matches");return q+=U,U.length}const be=J(E);if(!be)throw Ie(g.replace("{}",E)),new Error('Unknown language: "'+E+'"');const Ut=$o(be);let Fe="",I=$||Ut;const We={},oe=new d.__emitter(d);Pt();let q="",Ge=0,Ne=0,De=0,Ee=!1;try{if(be.__emitTokens)be.__emitTokens(v,oe);else{for(I.matcher.considerAll();;){De++,Ee?Ee=!1:I.matcher.considerAll(),I.matcher.lastIndex=Ne;const k=I.matcher.exec(v);if(!k)break;const _=v.substring(Ne,k.index),U=Re(_,k);Ne=k.index+U}Re(v.substring(Ne))}return oe.finalize(),Fe=oe.toHTML(),{language:E,value:Fe,relevance:Ge,illegal:!1,_emitter:oe,_top:I}}catch(k){if(k.message&&k.message.includes("Illegal"))return{language:E,value:Bt(v),illegal:!0,relevance:0,_illegalBy:{message:k.message,index:Ne,context:v.slice(Ne-100,Ne+100),mode:k.mode,resultSoFar:Fe},_emitter:oe};if(s)return{language:E,value:Bt(v),illegal:!1,relevance:0,errorRaised:k,_emitter:oe,_top:I};throw k}}function x(E){const v={value:Bt(E),illegal:!1,relevance:0,_top:l,_emitter:new d.__emitter(d)};return v._emitter.addText(E),v}function c(E,v){v=v||d.languages||Object.keys(r);const N=x(E),$=v.filter(J).filter(z).map(ue=>p(ue,E,!1));$.unshift(N);const K=$.sort((ue,pe)=>{if(ue.relevance!==pe.relevance)return pe.relevance-ue.relevance;if(ue.language&&pe.language){if(J(ue.language).supersetOf===pe.language)return 1;if(J(pe.language).supersetOf===ue.language)return-1}return 0}),[ee,ce]=K,he=ee;return he.secondBest=ce,he}function A(E,v,N){const $=v&&i[v]||N;E.classList.add("hljs"),E.classList.add(`language-${$}`)}function L(E){let v=null;const N=m(E);if(u(N))return;if(ie("before:highlightElement",{el:E,language:N}),E.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",E);return}if(E.children.length>0&&(d.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(E)),d.throwUnescapedHTML))throw new Ho("One of your code blocks includes unescaped HTML.",E.innerHTML);v=E;const $=v.textContent,K=N?y($,{language:N,ignoreIllegals:!0}):c($);E.innerHTML=K.value,E.dataset.highlighted="yes",A(E,N,K.language),E.result={language:K.language,re:K.relevance,relevance:K.relevance},K.secondBest&&(E.secondBest={language:K.secondBest.language,relevance:K.secondBest.relevance}),ie("after:highlightElement",{el:E,result:K,text:$})}function G(E){d=kn(d,E)}const S=()=>{B(),Pe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function Z(){B(),Pe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let O=!1;function B(){function E(){B()}if(document.readyState==="loading"){O||window.addEventListener("DOMContentLoaded",E,!1),O=!0;return}document.querySelectorAll(d.cssSelector).forEach(L)}function P(E,v){let N=null;try{N=v(e)}catch($){if(Ie("Language definition for '{}' could not be registered.".replace("{}",E)),s)Ie($);else throw $;N=l}N.name||(N.name=E),r[E]=N,N.rawDefinition=v.bind(null,e),N.aliases&&de(N.aliases,{languageName:E})}function R(E){delete r[E];for(const v of Object.keys(i))i[v]===E&&delete i[v]}function j(){return Object.keys(r)}function J(E){return E=(E||"").toLowerCase(),r[E]||r[i[E]]}function de(E,{languageName:v}){typeof E=="string"&&(E=[E]),E.forEach(N=>{i[N.toLowerCase()]=v})}function z(E){const v=J(E);return v&&!v.disableAutodetect}function Q(E){E["before:highlightBlock"]&&!E["before:highlightElement"]&&(E["before:highlightElement"]=v=>{E["before:highlightBlock"](Object.assign({block:v.el},v))}),E["after:highlightBlock"]&&!E["after:highlightElement"]&&(E["after:highlightElement"]=v=>{E["after:highlightBlock"](Object.assign({block:v.el},v))})}function ae(E){Q(E),a.push(E)}function ne(E){const v=a.indexOf(E);v!==-1&&a.splice(v,1)}function ie(E,v){const N=E;a.forEach(function($){$[N]&&$[N](v)})}function le(E){return Pe("10.7.0","highlightBlock will be removed entirely in v12.0"),Pe("10.7.0","Please use highlightElement now."),L(E)}Object.assign(e,{highlight:y,highlightAuto:c,highlightAll:B,highlightElement:L,highlightBlock:le,configure:G,initHighlighting:S,initHighlightingOnLoad:Z,registerLanguage:P,unregisterLanguage:R,listLanguages:j,getLanguage:J,registerAliases:de,autoDetection:z,inherit:kn,addPlugin:ae,removePlugin:ne}),e.debugMode=function(){s=!1},e.safeMode=function(){s=!0},e.versionString=Uo,e.regex={concat:Oe,lookahead:dn,either:Rt,optional:no,anyNumberOfTimes:to};for(const E in dt)typeof dt[E]=="object"&&rn(dt[E]);return Object.assign(e,dt),e},Ue=wn({});Ue.newInstance=()=>wn({});var Fo=Ue;Ue.HighlightJS=Ue,Ue.default=Ue;const Lt=qi(Fo);function Dt(e){const r=e.regex,i={},a={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[i]}]};Object.assign(i,{className:"variable",variants:[{begin:r.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const s={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},g=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),l={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},d={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i,s]};s.contains.push(d);const u={match:/\\"/},m={className:"string",begin:/'/,end:/'/},y={match:/\\'/},p={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,i]},x=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],c=e.SHEBANG({binary:`(${x.join("|")})`,relevance:10}),A={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},L=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],G=["true","false"],S={match:/(\/[a-z._-]+)+/},Z=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],O=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],B=["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"],P=["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:L,literal:G,built_in:[...Z,...O,"set","shopt",...B,...P]},contains:[c,e.SHEBANG(),A,p,g,l,S,d,u,m,y,i]}}const Wo=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.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:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.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_-]*/}}),Go=["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"],Ko=["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"],Zo=[...Go,...Ko],Yo=["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(),Xo=["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(),qo=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),jo=["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 Jo(e){const r=e.regex,i=Wo(e),a={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",g=/@-?\w[\w]*(-\w+)*/,l="[a-zA-Z-][a-zA-Z0-9_-]*",d=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[i.BLOCK_COMMENT,a,i.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+l,relevance:0},i.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Xo.join("|")+")"},{begin:":(:)?("+qo.join("|")+")"}]},i.CSS_VARIABLE,{className:"attribute",begin:"\\b("+jo.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[i.BLOCK_COMMENT,i.HEXCOLOR,i.IMPORTANT,i.CSS_NUMBER_MODE,...d,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...d,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},i.FUNCTION_DISPATCH]},{begin:r.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:g},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:Yo.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...d,i.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Zo.join("|")+")\\b"}]}}function _n(e){const g={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:g,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.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:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:g,illegal:/["']/}]}]}}var He="[0-9](_*[0-9])*",ft=`\\.(${He})`,gt="[0-9a-fA-F](_*[0-9a-fA-F])*",Sn={className:"number",variants:[{begin:`(\\b(${He})((${ft})|\\.)?|(${ft}))[eE][+-]?(${He})[fFdD]?\\b`},{begin:`\\b(${He})((${ft})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${ft})[fFdD]?\\b`},{begin:`\\b(${He})[fFdD]\\b`},{begin:`\\b0[xX]((${gt})\\.?|(${gt})?\\.(${gt}))[pP][+-]?(${He})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${gt})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Mn(e,r,i){return i===-1?"":e.replace(r,a=>Mn(e,r,i-1))}function Qo(e){const r=e.regex,i="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",a=i+Mn("(?:<"+i+"~~~(?:\\s*,\\s*"+i+"~~~)*>)?",/~~~/g,2),u={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"]},m={className:"meta",begin:"@"+i,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},y={className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:u,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,i],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[r.concat(/(?!else)/,i),/\s+/,i,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,i],className:{1:"keyword",3:"title.class"},contains:[y,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:u,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,contains:[m,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Sn,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Sn,m]}}const vn="[A-Za-z$_][0-9A-Za-z$_]*",er=["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"],tr=["true","false","null","undefined","NaN","Infinity"],Tn=["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"],Cn=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],An=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],nr=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ir=[].concat(An,Tn,Cn);function Rn(e){const r=e.regex,i=(N,{after:$})=>{const K="</"+N[0].slice(1);return N.input.indexOf(K,$)!==-1},a=vn,s={begin:"<>",end:"</>"},g=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(N,$)=>{const K=N[0].length+N.index,ee=N.input[K];if(ee==="<"||ee===","){$.ignoreMatch();return}ee===">"&&(i(N,{after:K})||$.ignoreMatch());let ce;const he=N.input.substring(K);if(ce=he.match(/^\s*=/)){$.ignoreMatch();return}if((ce=he.match(/^\s+extends\s+/))&&ce.index===0){$.ignoreMatch();return}}},d={$pattern:vn,keyword:er,literal:tr,built_in:ir,"variable.language":nr},u="[0-9](_?[0-9])*",m=`\\.(${u})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${u})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\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},x={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},c={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"css"}},L={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"graphql"}},G={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,x]},Z={className:"comment",variants:[e.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+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},O=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,{match:/\$\d+/},p];x.contains=O.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(O)});const B=[].concat(Z,x.contains),P=B.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(B)}]),R={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P},j={variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,r.concat(a,"(",r.concat(/\./,a),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,a],scope:{1:"keyword",3:"title.class"}}]},J={relevance:0,match:r.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:{_:[...Tn,...Cn]}},de={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,a,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(N){return r.concat("(?!",N.join("|"),")")}const ne={match:r.concat(/\b/,ae([...An,"super","import"].map(N=>`${N}\\s*\\(`)),a,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},ie={begin:r.concat(/\./,r.lookahead(r.concat(a,/(?![0-9A-Za-z$_(])/))),end:a,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,a,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},E="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",v={match:[/const|var|let/,/\s+/,a,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(E)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:P,CLASS_REFERENCE:J},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),de,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,Z,{match:/\$\d+/},p,J,{scope:"attr",match:a+r.lookahead(":"),relevance:0},v,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Z,e.REGEXP_MODE,{className:"function",begin:E,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:g},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,e.inherit(e.TITLE_MODE,{begin:a,className:"title.function"})]},{match:/\.\.\./,relevance:0},ie,{match:"\\$"+a,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},ne,Q,j,le,{match:/\$[(.]/}]}}function or(e){const r={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},i={match:/[{}[\],:]/,className:"punctuation",relevance:0},a=["true","false","null"],s={scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:a},contains:[r,i,e.QUOTE_STRING_MODE,s,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function On(e){const r=e.regex,i={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},a={begin:"^[-\\*]{3,}",end:"$"},s={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}]},g={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},l={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:r.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),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}]},m={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},y={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(m,{contains:[]}),x=e.inherit(y,{contains:[]});m.contains.push(x),y.contains.push(p);let c=[i,u];return[m,y,p,x].forEach(S=>{S.contains=S.contains.concat(c)}),c=c.concat(m,y),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:c},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:c}]}]},i,g,m,y,{className:"quote",begin:"^>\\s+",contains:c,end:"$"},s,a,u,l,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function In(e){const r=e.regex,i=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),a=["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"],d={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a,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"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},m={className:"subst",begin:/\{/,end:/\}/,keywords:d,illegal:/#/},y={begin:/\{\{/,relevance:0},p={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u,y,m]},{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:[e.BACKSLASH_ESCAPE,y,m]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,y,m]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},x="[0-9](_?[0-9])*",c=`(\\b(${x}))?\\.(${x})|\\b(${x})\\.`,A=`\\b|${a.join("|")}`,L={className:"number",relevance:0,variants:[{begin:`(\\b(${x})|(${c}))[eE][+-]?(${x})[jJ]?(?=${A})`},{begin:`(${c})[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(${x})[jJ](?=${A})`}]},G={className:"comment",begin:r.lookahead(/# type:/),end:/$/,keywords:d,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},S={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:["self",u,L,p,e.HASH_COMMENT_MODE]}]};return m.contains=[p,L,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:d,illegal:/(<\/|\?)|=>/,contains:[u,L,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},p,G,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,i],scope:{1:"keyword",3:"title.function"},contains:[S]},{variants:[{match:[/\bclass/,/\s+/,i,/\s*/,/\(\s*/,i,/\s*\)/]},{match:[/\bclass/,/\s+/,i]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[L,S,p]}]}}function Bn(e){const r=e.regex,i=/(r#)?/,a=r.concat(i,e.UNDERSCORE_IDENT_RE),s=r.concat(i,e.IDENT_RE),g={className:"title.function.invoke",relevance:0,begin:r.concat(/\b/,/(?!let|for|while|if|else|match\b)/,s,r.lookahead(/\s*\(/))},l="([ui](8|16|32|64|128|size)|f(32|64))?",d=["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"],u=["true","false","Some","None","Ok","Err"],m=["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!"],y=["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:e.IDENT_RE+"!?",type:y,keyword:d,literal:u,built_in:m},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.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_]+)"+l},{begin:"\\b0o([0-7_]+)"+l},{begin:"\\b0x([A-Fa-f0-9_]+)"+l},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+l}],relevance:0},{begin:[/fn/,/\s+/,a],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,a],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,a,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:m,type:y}},{className:"punctuation",begin:"->"},g]}}function rr(e){const r=e.regex,i=e.COMMENT("--","$"),a={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},g=["true","false","unknown"],l=["double precision","large object","with timezone","without timezone"],d=["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"],u=["add","asc","collation","desc","final","first","last","view"],m=["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"],y=["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"],p=["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"],x=["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"],c=y,A=[...m,...u].filter(P=>!y.includes(P)),L={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},G={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},S={match:r.concat(/\b/,r.either(...c),/\s*\(/),relevance:0,keywords:{built_in:c}};function Z(P){return r.concat(/\b/,r.either(...P.map(R=>R.replace(/\s+/,"\\s+"))),/\b/)}const O={scope:"keyword",match:Z(x),relevance:0};function B(P,{exceptions:R,when:j}={}){const J=j;return R=R||[],P.map(de=>de.match(/\|\d+$/)||R.includes(de)?de:J(de)?`${de}|0`:de)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:B(A,{when:P=>P.length<3}),literal:g,type:d,built_in:p},contains:[{scope:"type",match:Z(l)},O,S,L,a,s,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,i,G]}}const mt="[A-Za-z$_][0-9A-Za-z$_]*",Ln=["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"],Dn=["true","false","null","undefined","NaN","Infinity"],zn=["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"],$n=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Pn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Un=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],Hn=[].concat(Pn,zn,$n);function ar(e){const r=e.regex,i=(N,{after:$})=>{const K="</"+N[0].slice(1);return N.input.indexOf(K,$)!==-1},a=mt,s={begin:"<>",end:"</>"},g=/<[A-Za-z0-9\\._:-]+\s*\/>/,l={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(N,$)=>{const K=N[0].length+N.index,ee=N.input[K];if(ee==="<"||ee===","){$.ignoreMatch();return}ee===">"&&(i(N,{after:K})||$.ignoreMatch());let ce;const he=N.input.substring(K);if(ce=he.match(/^\s*=/)){$.ignoreMatch();return}if((ce=he.match(/^\s+extends\s+/))&&ce.index===0){$.ignoreMatch();return}}},d={$pattern:mt,keyword:Ln,literal:Dn,built_in:Hn,"variable.language":Un},u="[0-9](_?[0-9])*",m=`\\.(${u})`,y="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${y})((${m})|\\.)?|(${m}))[eE][+-]?(${u})\\b`},{begin:`\\b(${y})\\b((${m})\\b|\\.)?|(${m})\\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},x={className:"subst",begin:"\\$\\{",end:"\\}",keywords:d,contains:[]},c={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"xml"}},A={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"css"}},L={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,x],subLanguage:"graphql"}},G={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,x]},Z={className:"comment",variants:[e.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+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},O=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,{match:/\$\d+/},p];x.contains=O.concat({begin:/\{/,end:/\}/,keywords:d,contains:["self"].concat(O)});const B=[].concat(Z,x.contains),P=B.concat([{begin:/(\s*)\(/,end:/\)/,keywords:d,contains:["self"].concat(B)}]),R={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P},j={variants:[{match:[/class/,/\s+/,a,/\s+/,/extends/,/\s+/,r.concat(a,"(",r.concat(/\./,a),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,a],scope:{1:"keyword",3:"title.class"}}]},J={relevance:0,match:r.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:{_:[...zn,...$n]}},de={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,a,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function ae(N){return r.concat("(?!",N.join("|"),")")}const ne={match:r.concat(/\b/,ae([...Pn,"super","import"].map(N=>`${N}\\s*\\(`)),a,r.lookahead(/\s*\(/)),className:"title.function",relevance:0},ie={begin:r.concat(/\./,r.lookahead(r.concat(a,/(?![0-9A-Za-z$_(])/))),end:a,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},le={match:[/get|set/,/\s+/,a,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},E="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",v={match:[/const|var|let/,/\s+/,a,/\s*/,/=\s*/,/(async\s*)?/,r.lookahead(E)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:d,exports:{PARAMS_CONTAINS:P,CLASS_REFERENCE:J},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),de,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,c,A,L,G,Z,{match:/\$\d+/},p,J,{scope:"attr",match:a+r.lookahead(":"),relevance:0},v,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[Z,e.REGEXP_MODE,{className:"function",begin:E,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,contains:P}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:g},{begin:l.begin,"on:begin":l.isTrulyOpeningTag,end:l.end}],subLanguage:"xml",contains:[{begin:l.begin,end:l.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,e.inherit(e.TITLE_MODE,{begin:a,className:"title.function"})]},{match:/\.\.\./,relevance:0},ie,{match:"\\$"+a,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},ne,Q,j,le,{match:/\$[(.]/}]}}function Vn(e){const r=e.regex,i=ar(e),a=mt,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],g={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},l={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[i.exports.CLASS_REFERENCE]},d={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],m={$pattern:mt,keyword:Ln.concat(u),literal:Dn,built_in:Hn.concat(s),"variable.language":Un},y={className:"meta",begin:"@"+a},p=(L,G,S)=>{const Z=L.contains.findIndex(O=>O.label===G);if(Z===-1)throw new Error("can not find mode to replace");L.contains.splice(Z,1,S)};Object.assign(i.keywords,m),i.exports.PARAMS_CONTAINS.push(y);const x=i.contains.find(L=>L.scope==="attr"),c=Object.assign({},x,{match:r.concat(a,r.lookahead(/\s*\?:/))});i.exports.PARAMS_CONTAINS.push([i.exports.CLASS_REFERENCE,x,c]),i.contains=i.contains.concat([y,g,l,c]),p(i,"shebang",e.SHEBANG()),p(i,"use_strict",d);const A=i.contains.find(L=>L.label==="func.def");return A.relevance=0,Object.assign(i,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),i}function Fn(e){const r=e.regex,i=r.concat(/[\p{L}_]/u,r.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},g={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},l=e.inherit(g,{begin:/\(/,end:/\)/}),d=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),m={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:a,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[s]},{begin:/'/,end:/'/,contains:[s]},{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:[g,u,d,l,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[g,l,u,d]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:r.concat(/</,r.lookahead(r.concat(i,r.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:i,relevance:0,starts:m}]},{className:"tag",begin:r.concat(/<\//,r.lookahead(r.concat(i,/>/))),contains:[{className:"name",begin:i,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function Wn(e){const r="true false yes no null",i="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},g={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},l={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,s]},d=e.inherit(l,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),x={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"},c={end:",",endsWithParent:!0,excludeEnd:!0,keywords:r,relevance:0},A={begin:/\{/,end:/\}/,contains:[c],illegal:"\\n",relevance:0},L={begin:"\\[",end:"\\]",contains:[c],illegal:"\\n",relevance:0},G=[a,{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+!"+i},{className:"type",begin:"!<"+i+">"},{className:"type",begin:"!"+i},{className:"type",begin:"!!"+i},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:r,keywords:{literal:r}},x,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},A,L,g,l],S=[...G];return S.pop(),S.push(d),c.contains=S,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:G}}const zt={bash:Dt,sh:Dt,shell:Dt,css:Jo,go:_n,golang:_n,java:Qo,javascript:Rn,js:Rn,json:or,markdown:On,md:On,python:In,py:In,rust:Bn,rs:Bn,sql:rr,typescript:Vn,ts:Vn,xml:Fn,html:Fn,yaml:Wn,yml:Wn};for(const[e,r]of Object.entries(zt))Lt.registerLanguage(e,r);function Gn(e){const r=e.split(`
|
|
16
16
|
`);return/^(`{3,}|~{3,})/.test(r[0]??"")&&r.shift(),/^(`{3,}|~{3,})\s*$/.test(r[r.length-1]??"")&&r.pop(),r.join(`
|
|
17
17
|
`).replace(/\n+$/,"")}function Kn(e){const r=/^(`{3,}|~{3,})([^\s`~]*)/.exec(e.split(`
|
|
18
|
-
`)[0]??""),i=((r==null?void 0:r[2])??"").toLowerCase();return i&&zt[i]?i:""}function
|
|
19
|
-
`).filter(r=>r.trim().length>0).filter(r=>!/^\s*\|?\s*(:?-+:?\s*\|\s*)+(:?-+:?)(\s*\|)?\s*$/.test(r)).map(r=>r.replace(/^\s*\|/,"").replace(/\|\s*$/,"").split("|").map(i=>i.trim()))}function
|
|
18
|
+
`)[0]??""),i=((r==null?void 0:r[2])??"").toLowerCase();return i&&zt[i]?i:""}function sr(e,r){const i=r&&zt[r]?r:"";try{return i?Lt.highlight(e,{language:i,ignoreIllegals:!0}).value:Lt.highlightAuto(e).value}catch{return cr(e)}}function lr(e){return e.split(`
|
|
19
|
+
`).filter(r=>r.trim().length>0).filter(r=>!/^\s*\|?\s*(:?-+:?\s*\|\s*)+(:?-+:?)(\s*\|)?\s*$/.test(r)).map(r=>r.replace(/^\s*\|/,"").replace(/\|\s*$/,"").split("|").map(i=>i.trim()))}function cr(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function dr(e,r,i){if(e.length<=1)return e.slice();const[a,...s]=e,g=s.map(m=>m[r]??""),l=g.length>0&&g.every(m=>m.trim()!==""&&!Number.isNaN(Number(m))),d=i==="asc"?1:-1,u=s.slice().sort((m,y)=>{const p=m[r]??"",x=y[r]??"";return l?(Number(p)-Number(x))*d:p.localeCompare(x,"zh-Hans-CN",{numeric:!0})*d});return[a,...u]}const ur=["viewBox","width","height"],fr={class:"zm-edges"},gr=["d","fill"],mr=["data-node-id","onClick","onDblclick","onContextmenu","onMouseenter","onMouseleave"],hr=["src","width","height","alt"],pr=["onDblclick"],br={key:0,class:"zm-rich-code"},Er=["innerHTML"],yr={key:1,class:"zm-rich-table"},xr=["onClick"],kr={class:"zm-rich-sort-mark","aria-hidden":"true"},Nr={key:2,class:"zm-text"},wr={class:"zm-text-label"},_r=["href","title"],Sr=["title","onClick"],Mr=["title"],vr=["title","onClick"],Tr=["onClick"],Cr=["onMousedown"],Ar=["onClick"],Rr={key:0,class:"zm-toolbar"},Or=["src"],Ir=["src"],Br={class:"zm-tb-tip"},Be=24,Ve=400,Ae=160,Zn=t.defineComponent({__name:"MindMap",props:{data:{},theme:{},previewMode:{type:Boolean,default:!1},markdown:{},lineColors:{}},emits:["change","select","edit-note","markdownChange"],setup(e,{expose:r,emit:i}){const a=e,s=i,g=t.ref(null),l=t.ref(null),d=t.ref(""),u=t.ref(null),m=t.ref(new Set),y=t.ref(null),p=t.ref(""),x=t.ref(new Map),c=t.ref(Me(a.data)),A=t.ref({}),L=t.ref({}),G=t.ref(a.markdown!==void 0);let S=!1;t.watch(()=>a.markdown,n=>{if(n===void 0){G.value=!1;return}G.value=!0;const o=Ct(n||"");S=!0,c.value=Me(o),u.value=null,m.value=new Set,_(),t.nextTick(()=>{S=!1,ve()})}),t.watch(c,()=>{G.value&&!S&&s("markdownChange",lt(c.value))},{deep:!0});const Z=t.computed(()=>T.showOrderBadge===!0),O=t.ref(new Map),B=O.value;function P(n,o){const f={};o.bg&&(f.bg=o.bg),o.textColor&&(f.textColor=o.textColor),o.borderColor&&(f.borderColor=o.borderColor),o.fontWeight&&(f.fontWeight=o.fontWeight),Object.keys(f).length===0?B.delete(n):B.set(n,f),O.value=new Map(B)}function R(n){return B.get(n)??{}}function j(n,o){const f=F(c.value,n);f&&(f.image={src:o.src,naturalW:o.naturalW,naturalH:o.naturalH,width:z(o.width,Be,Ve),height:z(o.height,Be,Ve)},k(),_(),s("change",c.value))}function J(n){const o=F(c.value,n);!o||!o.image||(delete o.image,k(),_(),s("change",c.value))}function de(n,o){const f=o.trim();if(!F(c.value,n))return;if(!f){J(n);return}const b=new Image;b.onload=()=>{const M=F(c.value,n);if(!M)return;const C=b.naturalWidth&&b.naturalHeight?b.naturalWidth/b.naturalHeight:1,D=z(b.naturalWidth||Ae,Be,Ve),X=Math.round(D/C);M.image={src:f,naturalW:b.naturalWidth||D,naturalH:b.naturalHeight||X,width:D,height:X},k(),_(),s("change",c.value)},b.onerror=()=>{},b.src=f}function z(n,o,f){return Math.min(f,Math.max(o,n))}function Q(n,o){const f=new FileReader;f.onload=()=>{if(typeof f.result!="string")return;const w=f.result,b=new window.Image;b.onload=()=>{const M=b.naturalWidth||Ae,C=b.naturalHeight||Ae,D=z(M,Be,Ae),X=z(Math.round(C*D/M),Be,Ve);o({src:w,naturalW:M,naturalH:C,width:D,height:X})},b.onerror=()=>{o({src:w,naturalW:Ae,naturalH:Ae,width:Ae,height:Ae})},b.src=w},f.readAsDataURL(n)}function ae(n){const o=document.createElement("input");o.type="file",o.accept="image/*",o.style.display="none",o.onchange=()=>{var w;const f=(w=o.files)==null?void 0:w[0];f&&(Q(f,b=>j(n,b)),document.body.removeChild(o))},document.body.appendChild(o),o.click()}function ne(n,o){const f=o.trim(),w=F(c.value,n);w&&(f?w.link={url:f}:delete w.link,k(),_(),s("change",c.value))}function ie(n){ne(n,"")}function le(n,o){const f=F(c.value,n);f&&(o?f.note={text:o}:delete f.note,k(),_(),s("change",c.value))}function E(n){le(n,"")}function v(n,o){const f=F(c.value,n);f&&(o?f.richContent=o:delete f.richContent,k(),_(),s("change",c.value))}const N=t.ref(null);function $(n,o){a.previewMode||(n.preventDefault(),n.stopPropagation(),u.value=o.id,s("select",F(c.value,o.id)),N.value={nodeId:o.id,x:n.clientX,y:n.clientY})}function K(){N.value=null}function ee(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&ae(n)}function ce(){var w,b,M;const n=(w=N.value)==null?void 0:w.nodeId;if(!n)return;const o=((M=(b=F(c.value,n))==null?void 0:b.link)==null?void 0:M.url)??"",f=window.prompt("输入链接 URL(留空取消)",o);f!==null&&ne(n,f)}function he(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&ie(n)}function ue(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&Et(n)}function pe(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&E(n)}function ht(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&J(n)}function je(){var W,xe;const n=(W=N.value)==null?void 0:W.nodeId;if(!n)return;const o=(xe=F(c.value,n))==null?void 0:xe.richContent,f=(o==null?void 0:o.kind)==="code"?Gn(o.raw):"",w=(o==null?void 0:o.kind)==="code"&&o.lang||"",b=w?"```"+w+`
|
|
20
20
|
`:"```\n",C=window.prompt("输入代码块内容(用 ```lang 包裹;留空取消)",f?b+f+(f.endsWith("```")?"":"\n```"):b+"// 你的代码"+"\n```");if(C===null)return;const D=C.trim();if(!D){v(n,null);return}const X=/^```([^\s`]*)/.exec(D),h=X?X[1]:void 0;v(n,{kind:"code",raw:D,lang:h})}function pt(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&v(n,null)}function bt(){var C,D;const n=(C=N.value)==null?void 0:C.nodeId;if(!n)return;const o=(D=F(c.value,n))==null?void 0:D.richContent,f=(o==null?void 0:o.kind)==="table"?o.raw:"",b=window.prompt("输入 markdown 表格(每行以 | 分隔;留空取消)",f||`| 列1 | 列2 | 列3 |
|
|
21
21
|
| --- | --- | --- |
|
|
22
|
-
| a | b | c |`);if(b===null)return;const M=b.trim();if(!M){v(n,null);return}v(n,{kind:"table",raw:M})}function $t(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&v(n,null)}function Et(n){a.readonly||s("edit-note",n)}function Pt(n,o=60){const f=n.replace(/\s+/g," ").trim();return f.length<=o?f||"点击编辑笔记":f.slice(0,o)+"…"}function Le(n){var b;if(a.readonly||l.value)return;const o=n.target;if(o&&(o.tagName==="INPUT"||o.tagName==="TEXTAREA"||o.isContentEditable))return;const f=u.value;if(!f)return;const w=(b=n.clipboardData)==null?void 0:b.items;if(w)for(let M=0;M<w.length;M++){const C=w[M];if(C.kind==="file"&&C.type.startsWith("image/")){const D=C.getAsFile();if(!D)continue;n.preventDefault();const X=F(c.value,f);if(X!=null&&X.image&&!window.confirm("该节点已有图片,要用剪贴板里的图片替换吗?"))return;Q(D,h=>j(f,h));return}}}t.onMounted(()=>{window.addEventListener("paste",Le),_()}),t.onBeforeUnmount(()=>{window.removeEventListener("paste",Le)});const Re=t.ref(null),be=t.computed(()=>{var n;return((n=Re.value)==null?void 0:n.nodeId)??null});function Ut(n,o){if(!o.image)return;n.preventDefault(),n.stopPropagation();const f=o.image.naturalW||o.image.width,w=o.image.naturalH||o.image.height,b=w>0?w/f:1;Re.value={nodeId:o.id,startX:n.clientX,startY:n.clientY,startW:o.image.width,startH:o.image.height,naturalW:f,naturalH:w,ratio:b,pendingW:o.image.width,pendingH:o.image.height},window.addEventListener("mousemove",Fe),window.addEventListener("mouseup",I)}function Fe(n){var X,h;const o=Re.value;if(!o)return;const f=V.scale.value||1,w=n.clientX-o.startX,b=z(o.startW+w/f,Be,Ve),M=z(b*o.ratio,Be,Ve);o.pendingW=b,o.pendingH=M;const C=(X=g.value)==null?void 0:X.querySelector(`[data-node-id="${o.nodeId}"] .zm-node-img`);C&&(C.style.width=`${b}px`,C.style.height=`${M}px`);const D=(h=g.value)==null?void 0:h.querySelector(`[data-node-id="${o.nodeId}"]`);D&&(D.style.minWidth=`${Math.max(80,Math.ceil(b+28))}px`,D.style.height=`${Math.ceil(M+8+30)}px`)}function I(){const n=Re.value;if(window.removeEventListener("mousemove",Fe),window.removeEventListener("mouseup",I),Re.value=null,!n)return;const o=F(c.value,n.nodeId);!o||!o.image||(j(n.nodeId,{src:o.image.src,naturalW:o.image.naturalW,naturalH:o.image.naturalH,width:n.pendingW,height:n.pendingH}),u.value=n.nodeId,s("select",o),oe=!0)}const We=t.ref(null);let oe=!1;function q(n){We.value=n}function Ge(n){We.value===n&&(We.value=null)}const Ne=t.ref(0),De=t.ref(!1),Ee=Yi(100);function k(){Ee.record({data:c.value})}function _(){m.value=new Set(m.value),Ne.value++,t.nextTick().then(()=>t.nextTick()).then(()=>U()).then(()=>{Ne.value++})}function U(){const n=document.querySelectorAll(".zm-rich"),o={},f={};n.forEach(w=>{let b=w,M=null;for(;b&&!M;)M=b.getAttribute("data-node-id"),b=b.parentElement;if(!M)return;const C=w.offsetHeight,D=w.scrollWidth,X=Math.round(C*2)/2,h=Math.round(D*2)/2;o[M]=X,f[M]=h,A.value[M],L.value[M]}),A.value=o,L.value=f}const H=t.computed(()=>{var n,o,f,w,b,M,C,D,X,h;return{rootBg:((n=a.theme)==null?void 0:n.rootBg)??"#1f2937",rootText:((o=a.theme)==null?void 0:o.rootText)??"#ffffff",branchBg:((f=a.theme)==null?void 0:f.branchBg)??"#ffffff",branchText:((w=a.theme)==null?void 0:w.branchText)??"#1f2937",lineColor:((b=a.theme)==null?void 0:b.lineColor)??"#94a3b8",bgColor:((M=a.theme)==null?void 0:M.bgColor)??"#f8fafc",fontSize:((C=a.theme)==null?void 0:C.fontSize)??14,lineWidthStart:((D=a.theme)==null?void 0:D.lineWidthStart)??2.2,lineWidthEnd:((X=a.theme)==null?void 0:X.lineWidthEnd)??.8,rainbowBranch:((h=a.theme)==null?void 0:h.rainbowBranch)??!1}}),T=t.reactive({autoBalanceOnChange:!0,lineWidthStart:12,lineWidthEnd:3.6,rainbowBranch:!0,branchPaletteId:"default",customPalettes:[],lineStyle:"curve",layoutMode:"mindmap",taperedEdge:!0,showOrderBadge:!1});function ye(n){return T.taperedEdge?Ht(n):Yn(n)}function yt(n){return T.taperedEdge?T.lineWidthEnd:Yn(n)}function Ht(n){return n<=0?T.lineWidthStart:n===1?Math.max(1.5,T.lineWidthStart*.67):n===2?Math.max(.8,T.lineWidthStart*.42):T.lineWidthEnd}function Yn(n){if(n<=0)return T.lineWidthStart;if(n>=3)return T.lineWidthEnd;const o=n/3;return T.lineWidthStart+(T.lineWidthEnd-T.lineWidthStart)*o}function Kr(n,o,f,w){const b=1-n,M=b*b*b*o.x+3*b*b*n*f.x1+3*b*n*n*f.x2+n*n*n*w.x,C=b*b*b*o.y+3*b*b*n*f.y1+3*b*n*n*f.y2+n*n*n*w.y;return{x:M,y:C}}function Zr(n,o,f,w,b=32,M="curve",C="right"){if(M==="curve"){let Se;if(C==="right"||C==="left"){const te=Math.abs(o.x-n.x)*.45,Te=C==="right"?1:-1;Se={x1:n.x+Te*te,y1:n.y,x2:o.x-Te*te,y2:o.y}}else{const te=Math.abs(o.y-n.y)*.45;Se={x1:n.x,y1:n.y+te,x2:o.x,y2:o.y-te}}const ci=Y=>{const te=1-Y,Te=-3*te*te*n.x+3*(te*te-2*te*Y)*Se.x1+3*(2*te*Y-Y*Y)*Se.x2+3*Y*Y*o.x,Ze=-3*te*te*n.y+3*(te*te-2*te*Y)*Se.y1+3*(2*te*Y-Y*Y)*Se.y2+3*Y*Y*o.y;return{dx:Te,dy:Ze}},it=[],Zt=[];for(let Y=0;Y<=b;Y++){const te=Y/b,Te=Y===0?n:Y===b?o:Kr(te,n,Se,o),Ze=ci(te);let _t=Math.hypot(Ze.dx,Ze.dy);_t<1e-6&&(_t=1);const di=-Ze.dy/_t,ui=Ze.dx/_t,St=(f+(w-f)*te)/2;it.push({x:Te.x+di*St,y:Te.y+ui*St}),Zt.push({x:Te.x-di*St,y:Te.y-ui*St})}let wt=`M ${it[0].x.toFixed(2)} ${it[0].y.toFixed(2)}`;for(let Y=1;Y<=b;Y++)wt+=` L ${it[Y].x.toFixed(2)} ${it[Y].y.toFixed(2)}`;for(let Y=b;Y>=0;Y--)wt+=` L ${Zt[Y].x.toFixed(2)} ${Zt[Y].y.toFixed(2)}`;return wt+=" Z",wt}const D=o.x-n.x,X=o.y-n.y;let h=Math.hypot(D,X);h<1e-6&&(h=1);const W=-X/h,xe=D/h,_e=f/2,fe=w/2,Qe={x:n.x+W*_e,y:n.y+xe*_e},et={x:n.x-W*_e,y:n.y-xe*_e},tt={x:o.x-W*fe,y:o.y-xe*fe},nt={x:o.x+W*fe,y:o.y+xe*fe};return`M ${Qe.x.toFixed(2)} ${Qe.y.toFixed(2)} L ${nt.x.toFixed(2)} ${nt.y.toFixed(2)} L ${tt.x.toFixed(2)} ${tt.y.toFixed(2)} L ${et.x.toFixed(2)} ${et.y.toFixed(2)} Z`}const xt=t.computed(()=>ge.value.root.children),Yr=Ye[0].colors,Xn=t.computed(()=>zi(T.branchPaletteId,T.customPalettes)),ze=t.computed(()=>{const n=new Map;if(!T.rainbowBranch)return n;const o=a.lineColors,f=o&&o.length>0?o:Xn.value.colors.length>0?Xn.value.colors:Yr;for(let b=0;b<xt.value.length;b++){const M=xt.value[b];n.set(M.id,f[b%f.length])}const w=(b,M)=>{n.set(b.id,M);for(const C of b.children)w(C,M)};for(let b=0;b<xt.value.length;b++){const M=xt.value[b];w(M,f[b%f.length])}return n});function Xr(n,o){return T.rainbowBranch?ze.value.get(o.id)??H.value.lineColor:H.value.lineColor}function qr(n){const o=R(n.id);if(o.bg)return o.bg;if(n.isRoot)return H.value.rootBg;if(T.rainbowBranch){const f=ze.value.get(n.id);if(f)return ea(f,.18)}return H.value.branchBg}function jr(n){const o=R(n.id);if(o.textColor)return o.textColor;if(n.isRoot)return H.value.rootText;if(T.rainbowBranch){const f=ze.value.get(n.id);if(f)return qn(f,.55)}return H.value.branchText}function Jr(n){const o=R(n.id);if(o.borderColor)return o.borderColor;if(n.isRoot)return H.value.rootBg;if(T.rainbowBranch){const f=ze.value.get(n.id);if(f)return qn(f,.3)}return H.value.lineColor}function Qr(n){return R(n.id).fontWeight??(n.isRoot?600:400)}function ea(n,o){const f=n.replace("#",""),w=f.length===6?f:f.split("").map(D=>D+D).join(""),b=parseInt(w.slice(0,2),16),M=parseInt(w.slice(2,4),16),C=parseInt(w.slice(4,6),16);return`rgba(${b}, ${M}, ${C}, ${o})`}function qn(n,o){const f=n.replace("#",""),w=f.length===6?f:f.split("").map(D=>D+D).join(""),b=Math.round(parseInt(w.slice(0,2),16)*(1-o)),M=Math.round(parseInt(w.slice(2,4),16)*(1-o)),C=Math.round(parseInt(w.slice(4,6),16)*(1-o));return`rgb(${b}, ${M}, ${C})`}const V=Gi({getContainer:()=>g.value});V.setOnMarqueeEnd(ba),Zi({isEditing:()=>l.value!==null,isReadonly:()=>a.readonly,getSelectedId:()=>u.value,getRootId:()=>c.value.id,defaultTargetId:()=>c.value.id,onAddChild:Ke,onAddSibling:Nt,onAddSiblingBefore:ei,onRemove:ni,onStartEdit:Je,onClearSelection:()=>{u.value=null,s("select",null)},onDuplicate:ti,onUndo:Ft,onRedo:Wt,onNavigate:ua,onSelectRoot:()=>{u.value=c.value.id;const n=F(c.value,c.value.id);n&&s("select",n)}});const ge=t.computed(()=>{const n=Me(c.value);return Jn(n),Ii(n,{mode:T.layoutMode,baseFontSize:H.value.fontSize,richHeights:A.value,richWidths:L.value})}),jn=t.ref([]),Vt=t.computed(()=>(Ne.value,jn.value));t.watch(ge,n=>{const o=[],f=w=>{o.push(w);for(const b of w.children)f(b)};f(n.root),jn.value=o},{immediate:!0});const ta=t.computed(()=>{const n=[];for(const o of Vt.value)for(const f of o.children)n.push({from:o,to:f,key:`${o.id}->${f.id}`});return n}),na=t.computed(()=>`${ge.value.vbX} ${ge.value.vbY} ${ge.value.vbW} ${ge.value.vbH}`);function Jn(n){if(m.value.has(n.id)){n.children=[],n.collapsed=!0;return}n.collapsed=!1;for(const o of n.children)Jn(o)}function Je(n){const o=F(c.value,n);o&&(l.value=n,d.value=o.text,t.nextTick(()=>{const f=document.querySelector(".zm-input");f==null||f.focus(),f==null||f.select()}))}function kt(n={}){if(!l.value)return;const o=F(c.value,l.value);o&&o.text!==(d.value.trim()||" ")&&(o.text=d.value.trim()||" ",k(),s("change",c.value));const f=l.value;l.value=null,n.addChild?t.nextTick(()=>Ke(f)):n.addSibling==="after"?t.nextTick(()=>Nt(f)):n.addSibling==="before"&&t.nextTick(()=>ei(f))}function ia(){l.value=null}function oa(n){if(a.readonly)return;const o=F(c.value,n);o!=null&&o.richContent&&(y.value=n,p.value=o.richContent.raw,t.nextTick(()=>{const f=document.querySelector(".zm-node .zm-rich textarea");f==null||f.focus()}))}function Qn(){if(!y.value)return;const n=y.value,o=F(c.value,n),f=p.value;if(o&&o.richContent&&o.richContent.raw!==f)if(o.richContent.kind==="code"){const w=Kn(f)||void 0;v(n,{kind:"code",raw:f,lang:w})}else v(n,{kind:"table",raw:f});y.value=null}function ra(){y.value=null}function aa(n){n.key==="Escape"?(n.preventDefault(),ra()):n.key==="Enter"&&(n.ctrlKey||n.metaKey)&&(n.preventDefault(),Qn())}function sa(n,o){const f=x.value.get(n);!f||f.col!==o?x.value.set(n,{col:o,dir:"asc"}):f.dir==="asc"?x.value.set(n,{col:o,dir:"desc"}):x.value.delete(n)}function la(n,o){const f=x.value.get(n);return!f||o.length<=1?o:xr(o,f.col,f.dir)}function ca(n,o){const f=x.value.get(n);return!f||f.col!==o?"↕":f.dir==="asc"?"▲":"▼"}function da(n){const o=n.metaKey||n.ctrlKey;o&&(n.key==="z"||n.key==="Z")&&!n.shiftKey?(n.preventDefault(),Ft()):(o&&n.shiftKey&&(n.key==="z"||n.key==="Z")||o&&(n.key==="y"||n.key==="Y")&&!n.shiftKey)&&(n.preventDefault(),Wt())}function Ke(n){const o=en(c.value,n,st);o&&(k(),_(),s("change",c.value),t.nextTick(()=>Je(o.id)))}function Nt(n){if(n===c.value.id){Ke(n);return}const o=tn(c.value,n,st);o&&(k(),_(),s("change",c.value),t.nextTick(()=>Je(o.id)))}function ei(n){if(n===c.value.id){Ke(n);return}const o=Ui(c.value,n,st);o&&(k(),_(),s("change",c.value),t.nextTick(()=>Je(o.id)))}function ti(n){if(n===c.value.id)return;const o=Hi(c.value,n);o&&(k(),u.value=o.id,s("change",c.value),_())}function Ft(){const n=Ee.undo();n&&(c.value=n.data,u.value=null,s("select",null),_(),s("change",c.value))}function Wt(){const n=Ee.redo();n&&(c.value=n.data,u.value=null,s("select",null),_(),s("change",c.value))}function ua(n,o){const f=u.value??c.value.id,w=F(c.value,f);if(!w)return;let b=null;if(o===1){const M=ke(c.value,w.id);if(M){const C=M.children.findIndex(D=>D.id===w.id);C>=0&&C<M.children.length-1&&(b=M.children[C+1].id)}}else if(o===-1){const M=ke(c.value,w.id);if(M){const C=M.children.findIndex(D=>D.id===w.id);C>0&&(b=M.children[C-1].id)}}else if(n===1){const M=ke(c.value,w.id);M&&(b=M.id)}else n===-1&&w.children.length>0&&(b=w.children[0].id);if(b){u.value=b;const M=F(c.value,b);M&&s("select",M)}}function ni(n){n!==c.value.id&&Tt(c.value,n)&&(k(),u.value===n&&(u.value=null),_(),s("change",c.value))}function ii(n){m.value.has(n)?m.value.delete(n):m.value.add(n),_()}function fa(n,o){$i(c.value,n,o)&&(k(),_(),s("change",c.value))}function ga(n,o,f){return Pi(c.value,n,o,f)?(k(),_(),s("change",c.value),!0):!1}function ma(n,o){n.stopPropagation(),u.value=o.id;const f=F(c.value,o.id);s("select",f)}function ha(n){const o=n.target;if(!o||o.closest(".zm-node, .zm-toolbar, button, input, textarea"))return;if(n.button===2){V.startPan(n);return}if(n.button!==0)return;const f=g.value.getBoundingClientRect(),w=(n.clientX-f.left-V.offsetX.value)/V.scale.value,b=(n.clientY-f.top-V.offsetY.value)/V.scale.value;V.startMarquee(w,b)}function pa(n){if(oe){oe=!1;return}const o=n.target;if(!o||o.closest(".zm-node"))return;const f=V.marquee;f.width>=4||f.height>=4||u.value!==null&&(u.value=null,s("select",null))}function ba(){const n=V.marquee;if(n.width<4&&n.height<4)return;const o=n.x,f=n.y,w=n.x+n.width,b=n.y+n.height,M=[];for(const C of Vt.value){const D=C.width/2,X=C.height/2,h=C.x-D,W=C.x+D,xe=C.y-X,_e=C.y+X;h<=w&&W>=o&&xe<=b&&_e>=f&&M.push(C.id)}if(M.length>0){u.value=M[0];const C=F(c.value,M[0]);C&&s("select",C)}}function oi(n){return m.value.has(n)}function Ea(n){const o=F(c.value,n.id);return!!o&&o.children.length>0}function Gt(n){const o=F(c.value,n);return o?o.children.length:0}function ri(n){if(!F(c.value,n))return 0;const w=[c.value];for(;w.length;){const b=w.pop(),M=b.children.findIndex(C=>C.id===n);if(M>=0)return M;for(const C of b.children)w.push(C)}return 0}function ai(n,o,f,w){if(((w==null?void 0:w._dir)??n._dir)==="down")return o==="out"?{x:n.x,y:n.y+n.height/2}:{x:n.x,y:n.y-n.height/2};let M;o==="in"?M=-n.side:f!==void 0?M=f:M=n.side;const C=o==="in"?n._richInsetX??0:0;return{x:n.x+M*(n.width/2-C),y:n.y}}function ve(){const n=ge.value;V.resetView(n.width,n.height,n.root.y)}function ya(){De.value=!0,k(),_(),t.nextTick(()=>ve())}function Kt(n){T.layoutMode!==n&&(T.layoutMode=n,_(),t.nextTick(()=>ve()))}function si(){return JSON.stringify(c.value,null,2)}function li(n){try{const o=JSON.parse(n);return!o.id||!Array.isArray(o.children)?!1:(Ee.reset(),c.value=Me(o),u.value=null,m.value=new Set,_(),t.nextTick(()=>ve()),s("change",c.value),!0)}catch{return!1}}function xa(){const n=document.createElement("input");n.type="file",n.accept="application/json",n.onchange=()=>{var w;const o=(w=n.files)==null?void 0:w[0];if(!o)return;const f=new FileReader;f.onload=()=>{typeof f.result=="string"&&(li(f.result)||alert("导入失败:JSON 格式无效"))},f.readAsText(o)},n.click()}function ka(){const n=new Blob([si()],{type:"application/json"}),o=URL.createObjectURL(n),f=document.createElement("a");f.href=o,f.download=`${c.value.text||"mindmap"}.json`,f.click(),URL.revokeObjectURL(o)}return r({addChild:n=>Ke(n),addSibling:n=>Nt(n),removeNode:n=>ni(n),duplicateNode:n=>ti(n),setNodeText:(n,o)=>fa(n,o),moveNode:(n,o,f)=>ga(n,o,f),lineWidthForDepth:ye,endWidthForDepth:yt,getData:()=>c.value,setData:n=>{Ee.reset(),c.value=Me(n),u.value=null,m.value=new Set,_(),k(),t.nextTick(()=>ve())},resetView:()=>ve(),exportData:si,importData:li,getMarkdown:()=>lt(c.value),setMarkdown:(n,o=!0)=>{const f=Ct(n||"");o&&(G.value=!0),S=!o,Ee.reset(),c.value=Me(f),u.value=null,m.value=new Set,_(),k(),t.nextTick(()=>{S=!1,ve()}),s("change",c.value)},setBalanced:n=>{De.value=n},isBalanced:()=>De.value,balance:()=>ya(),applyNodeStyle:(n,o)=>P(n,o),getNodeStyle:n=>R(n),applyNodeImage:(n,o)=>j(n,o),applyNodeImageByUrl:(n,o)=>de(n,o),removeNodeImage:n=>J(n),applyNodeLink:(n,o)=>ne(n,o),removeNodeLink:n=>ie(n),applyNodeNote:(n,o)=>le(n,o),removeNodeNote:n=>E(n),applyNodeRichContent:(n,o)=>v(n,o),undo:()=>Ft(),redo:()=>Wt(),canUndo:()=>Ee.canUndo(),canRedo:()=>Ee.canRedo(),applySettings:n=>{n.autoBalanceOnChange!==void 0&&(T.autoBalanceOnChange=n.autoBalanceOnChange),n.lineWidthStart!==void 0&&(T.lineWidthStart=Math.max(.5,Math.min(20,n.lineWidthStart))),n.lineWidthEnd!==void 0&&(T.lineWidthEnd=Math.max(.3,Math.min(10,n.lineWidthEnd))),n.rainbowBranch!==void 0&&(T.rainbowBranch=n.rainbowBranch),n.branchPaletteId!==void 0&&(T.branchPaletteId=n.branchPaletteId),n.customPalettes!==void 0&&(T.customPalettes=n.customPalettes),n.lineStyle!==void 0&&(T.lineStyle=n.lineStyle),n.taperedEdge!==void 0&&(T.taperedEdge=n.taperedEdge),n.showOrderBadge!==void 0&&(T.showOrderBadge=n.showOrderBadge)},getSettings:()=>({autoBalanceOnChange:T.autoBalanceOnChange,lineWidthStart:T.lineWidthStart,lineWidthEnd:T.lineWidthEnd,rainbowBranch:T.rainbowBranch,branchPaletteId:T.branchPaletteId,customPalettes:T.customPalettes,lineStyle:T.lineStyle,layoutMode:T.layoutMode,taperedEdge:T.taperedEdge,showOrderBadge:T.showOrderBadge}),setBranchPalette:n=>{if(!n)return;[...Ye,...T.customPalettes].find(f=>f.id===n)&&(T.branchPaletteId=n)},getBranchPalette:()=>T.branchPaletteId,getBranchPalettes:()=>[...Ye,...T.customPalettes]}),t.watch(()=>a.data,n=>{c.value=Me(n),_()},{deep:!1}),t.onMounted(()=>{k(),t.nextTick(()=>ve())}),(n,o)=>{var f,w,b,M,C,D,X;return t.openBlock(),t.createElementBlock("div",{class:"zm-mindmap",style:t.normalizeStyle({background:H.value.bgColor,fontSize:H.value.fontSize+"px"})},[t.createElementVNode("div",{ref_key:"wrapperRef",ref:g,class:"zm-canvas",onMousedown:ha,onContextmenu:o[16]||(o[16]=t.withModifiers(()=>{},["prevent"])),onWheel:o[17]||(o[17]=(...h)=>t.unref(V).onWheel&&t.unref(V).onWheel(...h)),onClick:pa},[t.createElementVNode("div",{class:"zm-svg-layer",style:t.normalizeStyle({left:ge.value.vbX*t.unref(V).scale.value+t.unref(V).offsetX.value+"px",top:ge.value.vbY*t.unref(V).scale.value+t.unref(V).offsetY.value+"px",width:ge.value.vbW*t.unref(V).scale.value+"px",height:ge.value.vbH*t.unref(V).scale.value+"px"})},[(t.openBlock(),t.createElementBlock("svg",{class:"zm-svg",viewBox:na.value,preserveAspectRatio:"xMinYMin meet",width:ge.value.vbW*t.unref(V).scale.value,height:ge.value.vbH*t.unref(V).scale.value},[t.createElementVNode("g",Nr,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(ta.value,h=>(t.openBlock(),t.createElementBlock("path",{key:h.key,d:Zr(ai(h.from,"out",h.to.side,h.to),ai(h.to,"in"),ye(h.from.depth),yt(h.to.depth),32,T.lineStyle,h.to._dir),fill:Xr(h.from,h.to),stroke:"none"},null,8,wr))),128))])],8,kr))],4),t.unref(V).isMarquee.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"zm-marquee",style:t.normalizeStyle({left:t.unref(V).marquee.x*t.unref(V).scale.value+t.unref(V).offsetX.value+"px",top:t.unref(V).marquee.y*t.unref(V).scale.value+t.unref(V).offsetY.value+"px",width:t.unref(V).marquee.width*t.unref(V).scale.value+"px",height:t.unref(V).marquee.height*t.unref(V).scale.value+"px"})},null,4)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"zm-world",style:t.normalizeStyle({transform:`translate(${t.unref(V).offsetX.value}px, ${t.unref(V).offsetY.value}px) scale(${t.unref(V).scale.value})`})},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Vt.value,h=>(t.openBlock(),t.createElementBlock("div",{key:h.id,class:t.normalizeClass(["zm-node",{"is-root":h.isRoot,"is-selected":u.value===h.id,"is-editing":l.value===h.id,"has-image":!!h.image,"is-resizing":be.value===h.id}]),"data-node-id":h.id,style:t.normalizeStyle({left:h.x+"px",top:h.y+"px",width:h.width+"px",minWidth:h.width+"px",height:h.height+"px",fontSize:h.fontSize+"px",background:qr(h),color:jr(h),borderColor:Jr(h),fontWeight:Qr(h),transform:"translate(-50%, -50%)"}),onClick:W=>ma(W,h),onDblclick:W=>{W.stopPropagation(),e.readonly||Je(h.id)},onContextmenu:W=>$(W,h),onMouseenter:W=>q(h.id),onMouseleave:W=>Ge(h.id)},[h.image?(t.openBlock(),t.createElementBlock("img",{key:0,class:"zm-node-img",src:h.image.src,width:h.image.width,height:h.image.height,alt:h.text,draggable:"false"},null,8,Sr)):t.createCommentVNode("",!0),h.richContent&&(h.richContent.kind==="code"||h.richContent.kind==="table")&&l.value!==h.id?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["zm-rich zm-rich-above",{"zm-rich-no-overflow":h.richContent.kind==="table"||h.richContent.kind==="code"}]),onClick:o[1]||(o[1]=t.withModifiers(()=>{},["stop"])),onDblclick:t.withModifiers(W=>oa(h.id),["stop"]),onMousedown:o[2]||(o[2]=t.withModifiers(()=>{},["stop"]))},[y.value===h.id?t.withDirectives((t.openBlock(),t.createElementBlock("textarea",{key:0,"onUpdate:modelValue":o[0]||(o[0]=W=>p.value=W),class:"zm-rich-edit",spellcheck:"false",onBlur:Qn,onKeydown:aa},null,544)),[[t.vModelText,p.value]]):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[h.richContent.kind==="code"?(t.openBlock(),t.createElementBlock("pre",vr,[t.createElementVNode("code",{innerHTML:t.unref(br)(t.unref(Gn)(h.richContent.raw),t.unref(Kn)(h.richContent.raw))},null,8,Tr)])):h.richContent.kind==="table"?(t.openBlock(),t.createElementBlock("table",Cr,[t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(la(h.id,t.unref(Er)(h.richContent.raw)),(W,xe)=>(t.openBlock(),t.createElementBlock("tr",{key:xe},[xe===0?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(W,(_e,fe)=>{var Qe,et,tt,nt,Se;return t.openBlock(),t.createElementBlock("th",{key:`h${fe}`,class:t.normalizeClass(["zm-rich-table-sort",{"is-sorted":((Qe=x.value.get(h.id))==null?void 0:Qe.col)===fe,"is-asc":((et=x.value.get(h.id))==null?void 0:et.col)===fe&&((tt=x.value.get(h.id))==null?void 0:tt.dir)==="asc","is-desc":((nt=x.value.get(h.id))==null?void 0:nt.col)===fe&&((Se=x.value.get(h.id))==null?void 0:Se.dir)==="desc"}]),onClick:t.withModifiers(ci=>sa(h.id,fe),["stop"])},[t.createElementVNode("span",null,t.toDisplayString(_e),1),t.createElementVNode("span",Rr,t.toDisplayString(ca(h.id,fe)),1)],10,Ar)}),128)):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(W,(_e,fe)=>(t.openBlock(),t.createElementBlock("td",{key:`c${fe}`},t.toDisplayString(_e),1))),128))]))),128))])])):t.createCommentVNode("",!0)],64))],42,Mr)):t.createCommentVNode("",!0),l.value!==h.id?(t.openBlock(),t.createElementBlock("span",Or,[t.createElementVNode("span",Ir,t.toDisplayString(h.text),1),h.link&&!l.value?(t.openBlock(),t.createElementBlock("a",{key:0,class:"zm-node-link",href:h.link.url,target:"_blank",rel:"noopener noreferrer",title:`打开链接:${h.link.url}`,onClick:o[3]||(o[3]=t.withModifiers(()=>{},["stop"])),onMousedown:o[4]||(o[4]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(re,{name:"link",size:11,stroke:2})],40,Br)):t.createCommentVNode("",!0),h.note&&!l.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:"zm-node-note-btn",type:"button",title:Pt(h.note.text),onClick:t.withModifiers(W=>Et(h.id),["stop"]),onMousedown:o[5]||(o[5]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(re,{name:"note",size:11,stroke:2})],40,Lr)):t.createCommentVNode("",!0)])):t.withDirectives((t.openBlock(),t.createElementBlock("input",{key:3,class:"zm-input","onUpdate:modelValue":o[6]||(o[6]=W=>d.value=W),autofocus:"",onBlur:o[7]||(o[7]=W=>kt()),onKeydown:[o[8]||(o[8]=t.withKeys(t.withModifiers(W=>kt({addSibling:"after"}),["exact"]),["enter"])),o[9]||(o[9]=t.withKeys(t.withModifiers(W=>kt({addSibling:"before"}),["shift","prevent","exact"]),["enter"])),o[10]||(o[10]=t.withKeys(t.withModifiers(W=>kt({addChild:!0}),["prevent"]),["tab"])),t.withKeys(ia,["esc"]),da],onMousedown:o[11]||(o[11]=t.withModifiers(()=>{},["stop"])),onClick:o[12]||(o[12]=t.withModifiers(()=>{},["stop"]))},null,544)),[[t.vModelText,d.value]]),Z.value?(t.openBlock(),t.createElementBlock("span",{key:4,class:"zm-order-badge",title:`数据顺序:第 ${ri(h.id)+1} 个`},t.toDisplayString(ri(h.id)+1),9,Dr)):t.createCommentVNode("",!0),oi(h.id)&&!h.isRoot&&Gt(h.id)>0?(t.openBlock(),t.createElementBlock("span",{key:5,class:t.normalizeClass(["zm-collapse-badge",{"is-on-left":h.side===-1}]),style:t.normalizeStyle({background:ze.value.get(h.id)??"#64748b"}),title:`展开 ${Gt(h.id)} 个子节点`,onMousedown:o[13]||(o[13]=t.withModifiers(()=>{},["stop"])),onClick:t.withModifiers(W=>ii(h.id),["stop"])},t.toDisplayString(Gt(h.id)),47,zr)):t.createCommentVNode("",!0),!e.readonly&&!h.isRoot&&Ea(h)&&!oi(h.id)?(t.openBlock(),t.createElementBlock("button",{key:6,class:t.normalizeClass(["zm-btn zm-collapse",{"is-on-left":h.side===-1}]),style:t.normalizeStyle({color:ze.value.get(h.id)??"#64748b",borderColor:ze.value.get(h.id)??"#64748b"}),title:"折叠",onMousedown:o[14]||(o[14]=t.withModifiers(()=>{},["stop"])),onClick:t.withModifiers(W=>ii(h.id),["stop"])},[t.createVNode(re,{name:"minus",size:10,stroke:2.4})],46,$r)):t.createCommentVNode("",!0),h.image&&u.value===h.id&&l.value!==h.id?(t.openBlock(),t.createElementBlock("span",{key:7,class:"zm-img-resize-handle",title:"拖动调整图片大小",onMousedown:t.withModifiers(W=>Ut(W,h),["stop"])},null,40,Pr)):t.createCommentVNode("",!0),h.image&&u.value===h.id&&l.value!==h.id?(t.openBlock(),t.createElementBlock("button",{key:8,class:"zm-img-remove-btn",title:"移除图片",onMousedown:o[15]||(o[15]=t.withModifiers(()=>{},["stop"])),onClick:t.withModifiers(W=>J(h.id),["stop"])},[t.createVNode(re,{name:"x",size:9,stroke:2.2})],40,Ur)):t.createCommentVNode("",!0)],46,_r))),128))],4),N.value?(t.openBlock(),t.createBlock(ro,{key:1,x:N.value.x,y:N.value.y,container:g.value,"has-image":!!((f=t.unref(F)(c.value,N.value.nodeId))!=null&&f.image),"has-link":!!((w=t.unref(F)(c.value,N.value.nodeId))!=null&&w.link),"has-note":!!((b=t.unref(F)(c.value,N.value.nodeId))!=null&&b.note),"has-code":((C=(M=t.unref(F)(c.value,N.value.nodeId))==null?void 0:M.richContent)==null?void 0:C.kind)==="code","has-table":((X=(D=t.unref(F)(c.value,N.value.nodeId))==null?void 0:D.richContent)==null?void 0:X.kind)==="table",readonly:a.readonly,onPickImage:ee,onRemoveImage:ht,onSetLink:ce,onRemoveLink:he,onEditNote:ue,onRemoveNote:pe,onAddCode:je,onEditCode:je,onRemoveCode:pt,onAddTable:bt,onEditTable:bt,onRemoveTable:$t,onClose:K},null,8,["x","y","container","has-image","has-link","has-note","has-code","has-table","readonly"])):t.createCommentVNode("",!0)],544),a.previewMode?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",Hr,[t.createElementVNode("button",{class:"zm-tb-btn",title:"放大",onClick:o[18]||(o[18]=(...h)=>t.unref(V).zoomIn&&t.unref(V).zoomIn(...h))},[t.createVNode(re,{name:"zoom-in"})]),t.createElementVNode("button",{class:"zm-tb-btn",title:"缩小",onClick:o[19]||(o[19]=(...h)=>t.unref(V).zoomOut&&t.unref(V).zoomOut(...h))},[t.createVNode(re,{name:"zoom-out"})]),t.createElementVNode("button",{class:"zm-tb-btn",title:"重置视图",onClick:ve},[t.createVNode(re,{name:"reset"})]),o[25]||(o[25]=t.createElementVNode("span",{class:"zm-tb-divider"},null,-1)),e.readonly?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:0,class:"zm-tb-btn",title:"添加子节点 (Tab)",onClick:o[20]||(o[20]=h=>u.value&&Ke(u.value))},[t.createElementVNode("img",{src:t.unref(pi),width:"14",height:"14",alt:"添加子节点",draggable:"false"},null,8,Vr)])),e.readonly?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:1,class:"zm-tb-btn",title:"添加同级 (Enter)",onClick:o[21]||(o[21]=h=>u.value&&Nt(u.value))},[t.createElementVNode("img",{src:t.unref(hi),width:"14",height:"14",alt:"添加同级",draggable:"false"},null,8,Fr)])),o[26]||(o[26]=t.createElementVNode("span",{class:"zm-tb-divider"},null,-1)),t.createElementVNode("button",{class:t.normalizeClass(["zm-tb-btn",{active:T.layoutMode==="mindmap"}]),title:"思维导图布局 (中心辐射)",onClick:o[22]||(o[22]=h=>Kt("mindmap"))},[t.createVNode(re,{name:"mindmap"})],2),t.createElementVNode("button",{class:t.normalizeClass(["zm-tb-btn",{active:T.layoutMode==="tree"}]),title:"树形布局 (向右展开)",onClick:o[23]||(o[23]=h=>Kt("tree"))},[t.createVNode(re,{name:"tree"})],2),t.createElementVNode("button",{class:t.normalizeClass(["zm-tb-btn",{active:T.layoutMode==="org"}]),title:"组织结构布局 (向下展开)",onClick:o[24]||(o[24]=h=>Kt("org"))},[t.createVNode(re,{name:"org"})],2),o[27]||(o[27]=t.createElementVNode("span",{class:"zm-tb-divider"},null,-1)),e.readonly?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("button",{key:2,class:"zm-tb-btn",title:"导入 JSON",onClick:xa},[t.createVNode(re,{name:"import"})])),t.createElementVNode("button",{class:"zm-tb-btn",title:"导出 JSON",onClick:ka},[t.createVNode(re,{name:"export"})]),t.createElementVNode("span",Wr,t.toDisplayString(Math.round(t.unref(V).scale.value*100))+"%",1)]))],4)}}}),Gr={install(e){e.component("FlowMindMap",Zn)}};se.MindMap=Zn,se.addChild=en,se.addSibling=tn,se.clone=Me,se.default=Gr,se.findNode=F,se.findParent=ke,se.markdownToMindMap=Ct,se.markdownToRichMindMap=Fi,se.mindMapToMarkdown=lt,se.removeNode=Tt,se.richBlockToMarkdown=Wi,se.uid=we,Object.defineProperties(se,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
22
|
+
| a | b | c |`);if(b===null)return;const M=b.trim();if(!M){v(n,null);return}v(n,{kind:"table",raw:M})}function $t(){var o;const n=(o=N.value)==null?void 0:o.nodeId;n&&v(n,null)}function Et(n){a.previewMode||s("edit-note",n)}function Pt(n,o=60){const f=n.replace(/\s+/g," ").trim();return f.length<=o?f||"点击编辑笔记":f.slice(0,o)+"…"}function Le(n){var b;if(a.previewMode||l.value)return;const o=n.target;if(o&&(o.tagName==="INPUT"||o.tagName==="TEXTAREA"||o.isContentEditable))return;const f=u.value;if(!f)return;const w=(b=n.clipboardData)==null?void 0:b.items;if(w)for(let M=0;M<w.length;M++){const C=w[M];if(C.kind==="file"&&C.type.startsWith("image/")){const D=C.getAsFile();if(!D)continue;n.preventDefault();const X=F(c.value,f);if(X!=null&&X.image&&!window.confirm("该节点已有图片,要用剪贴板里的图片替换吗?"))return;Q(D,h=>j(f,h));return}}}t.onMounted(()=>{window.addEventListener("paste",Le),_()}),t.onBeforeUnmount(()=>{window.removeEventListener("paste",Le)});const Re=t.ref(null),be=t.computed(()=>{var n;return((n=Re.value)==null?void 0:n.nodeId)??null});function Ut(n,o){if(!o.image)return;n.preventDefault(),n.stopPropagation();const f=o.image.naturalW||o.image.width,w=o.image.naturalH||o.image.height,b=w>0?w/f:1;Re.value={nodeId:o.id,startX:n.clientX,startY:n.clientY,startW:o.image.width,startH:o.image.height,naturalW:f,naturalH:w,ratio:b,pendingW:o.image.width,pendingH:o.image.height},window.addEventListener("mousemove",Fe),window.addEventListener("mouseup",I)}function Fe(n){var X,h;const o=Re.value;if(!o)return;const f=V.scale.value||1,w=n.clientX-o.startX,b=z(o.startW+w/f,Be,Ve),M=z(b*o.ratio,Be,Ve);o.pendingW=b,o.pendingH=M;const C=(X=g.value)==null?void 0:X.querySelector(`[data-node-id="${o.nodeId}"] .zm-node-img`);C&&(C.style.width=`${b}px`,C.style.height=`${M}px`);const D=(h=g.value)==null?void 0:h.querySelector(`[data-node-id="${o.nodeId}"]`);D&&(D.style.minWidth=`${Math.max(80,Math.ceil(b+28))}px`,D.style.height=`${Math.ceil(M+8+30)}px`)}function I(){const n=Re.value;if(window.removeEventListener("mousemove",Fe),window.removeEventListener("mouseup",I),Re.value=null,!n)return;const o=F(c.value,n.nodeId);!o||!o.image||(j(n.nodeId,{src:o.image.src,naturalW:o.image.naturalW,naturalH:o.image.naturalH,width:n.pendingW,height:n.pendingH}),u.value=n.nodeId,s("select",o),oe=!0)}const We=t.ref(null);let oe=!1;function q(n){We.value=n}function Ge(n){We.value===n&&(We.value=null)}const Ne=t.ref(0),De=t.ref(!1),Ee=Yi(100);function k(){Ee.record({data:c.value})}function _(){m.value=new Set(m.value),Ne.value++,t.nextTick().then(()=>t.nextTick()).then(()=>U()).then(()=>{Ne.value++})}function U(){const n=document.querySelectorAll(".zm-rich"),o={},f={};n.forEach(w=>{let b=w,M=null;for(;b&&!M;)M=b.getAttribute("data-node-id"),b=b.parentElement;if(!M)return;const C=w.offsetHeight,D=w.scrollWidth,X=Math.round(C*2)/2,h=Math.round(D*2)/2;o[M]=X,f[M]=h,A.value[M],L.value[M]}),A.value=o,L.value=f}const H=t.computed(()=>{var n,o,f,w,b,M,C,D,X,h;return{rootBg:((n=a.theme)==null?void 0:n.rootBg)??"#1f2937",rootText:((o=a.theme)==null?void 0:o.rootText)??"#ffffff",branchBg:((f=a.theme)==null?void 0:f.branchBg)??"#ffffff",branchText:((w=a.theme)==null?void 0:w.branchText)??"#1f2937",lineColor:((b=a.theme)==null?void 0:b.lineColor)??"#94a3b8",bgColor:((M=a.theme)==null?void 0:M.bgColor)??"#f8fafc",fontSize:((C=a.theme)==null?void 0:C.fontSize)??14,lineWidthStart:((D=a.theme)==null?void 0:D.lineWidthStart)??2.2,lineWidthEnd:((X=a.theme)==null?void 0:X.lineWidthEnd)??.8,rainbowBranch:((h=a.theme)==null?void 0:h.rainbowBranch)??!1}}),T=t.reactive({autoBalanceOnChange:!0,lineWidthStart:12,lineWidthEnd:3.6,rainbowBranch:!0,branchPaletteId:"default",customPalettes:[],lineStyle:"curve",layoutMode:"mindmap",taperedEdge:!0,showOrderBadge:!1});function ye(n){return T.taperedEdge?Ht(n):Yn(n)}function yt(n){return T.taperedEdge?T.lineWidthEnd:Yn(n)}function Ht(n){return n<=0?T.lineWidthStart:n===1?Math.max(1.5,T.lineWidthStart*.67):n===2?Math.max(.8,T.lineWidthStart*.42):T.lineWidthEnd}function Yn(n){if(n<=0)return T.lineWidthStart;if(n>=3)return T.lineWidthEnd;const o=n/3;return T.lineWidthStart+(T.lineWidthEnd-T.lineWidthStart)*o}function Dr(n,o,f,w){const b=1-n,M=b*b*b*o.x+3*b*b*n*f.x1+3*b*n*n*f.x2+n*n*n*w.x,C=b*b*b*o.y+3*b*b*n*f.y1+3*b*n*n*f.y2+n*n*n*w.y;return{x:M,y:C}}function zr(n,o,f,w,b=32,M="curve",C="right"){if(M==="curve"){let Se;if(C==="right"||C==="left"){const te=Math.abs(o.x-n.x)*.45,Te=C==="right"?1:-1;Se={x1:n.x+Te*te,y1:n.y,x2:o.x-Te*te,y2:o.y}}else{const te=Math.abs(o.y-n.y)*.45;Se={x1:n.x,y1:n.y+te,x2:o.x,y2:o.y-te}}const ci=Y=>{const te=1-Y,Te=-3*te*te*n.x+3*(te*te-2*te*Y)*Se.x1+3*(2*te*Y-Y*Y)*Se.x2+3*Y*Y*o.x,Ze=-3*te*te*n.y+3*(te*te-2*te*Y)*Se.y1+3*(2*te*Y-Y*Y)*Se.y2+3*Y*Y*o.y;return{dx:Te,dy:Ze}},it=[],Zt=[];for(let Y=0;Y<=b;Y++){const te=Y/b,Te=Y===0?n:Y===b?o:Dr(te,n,Se,o),Ze=ci(te);let _t=Math.hypot(Ze.dx,Ze.dy);_t<1e-6&&(_t=1);const di=-Ze.dy/_t,ui=Ze.dx/_t,St=(f+(w-f)*te)/2;it.push({x:Te.x+di*St,y:Te.y+ui*St}),Zt.push({x:Te.x-di*St,y:Te.y-ui*St})}let wt=`M ${it[0].x.toFixed(2)} ${it[0].y.toFixed(2)}`;for(let Y=1;Y<=b;Y++)wt+=` L ${it[Y].x.toFixed(2)} ${it[Y].y.toFixed(2)}`;for(let Y=b;Y>=0;Y--)wt+=` L ${Zt[Y].x.toFixed(2)} ${Zt[Y].y.toFixed(2)}`;return wt+=" Z",wt}const D=o.x-n.x,X=o.y-n.y;let h=Math.hypot(D,X);h<1e-6&&(h=1);const W=-X/h,xe=D/h,_e=f/2,fe=w/2,Qe={x:n.x+W*_e,y:n.y+xe*_e},et={x:n.x-W*_e,y:n.y-xe*_e},tt={x:o.x-W*fe,y:o.y-xe*fe},nt={x:o.x+W*fe,y:o.y+xe*fe};return`M ${Qe.x.toFixed(2)} ${Qe.y.toFixed(2)} L ${nt.x.toFixed(2)} ${nt.y.toFixed(2)} L ${tt.x.toFixed(2)} ${tt.y.toFixed(2)} L ${et.x.toFixed(2)} ${et.y.toFixed(2)} Z`}const xt=t.computed(()=>ge.value.root.children),$r=Ye[0].colors,Xn=t.computed(()=>zi(T.branchPaletteId,T.customPalettes)),ze=t.computed(()=>{const n=new Map;if(!T.rainbowBranch)return n;const o=a.lineColors,f=o&&o.length>0?o:Xn.value.colors.length>0?Xn.value.colors:$r;for(let b=0;b<xt.value.length;b++){const M=xt.value[b];n.set(M.id,f[b%f.length])}const w=(b,M)=>{n.set(b.id,M);for(const C of b.children)w(C,M)};for(let b=0;b<xt.value.length;b++){const M=xt.value[b];w(M,f[b%f.length])}return n});function Pr(n,o){return T.rainbowBranch?ze.value.get(o.id)??H.value.lineColor:H.value.lineColor}function Ur(n){const o=R(n.id);if(o.bg)return o.bg;if(n.isRoot)return H.value.rootBg;if(T.rainbowBranch){const f=ze.value.get(n.id);if(f)return Wr(f,.18)}return H.value.branchBg}function Hr(n){const o=R(n.id);if(o.textColor)return o.textColor;if(n.isRoot)return H.value.rootText;if(T.rainbowBranch){const f=ze.value.get(n.id);if(f)return qn(f,.55)}return H.value.branchText}function Vr(n){const o=R(n.id);if(o.borderColor)return o.borderColor;if(n.isRoot)return H.value.rootBg;if(T.rainbowBranch){const f=ze.value.get(n.id);if(f)return qn(f,.3)}return H.value.lineColor}function Fr(n){return R(n.id).fontWeight??(n.isRoot?600:400)}function Wr(n,o){const f=n.replace("#",""),w=f.length===6?f:f.split("").map(D=>D+D).join(""),b=parseInt(w.slice(0,2),16),M=parseInt(w.slice(2,4),16),C=parseInt(w.slice(4,6),16);return`rgba(${b}, ${M}, ${C}, ${o})`}function qn(n,o){const f=n.replace("#",""),w=f.length===6?f:f.split("").map(D=>D+D).join(""),b=Math.round(parseInt(w.slice(0,2),16)*(1-o)),M=Math.round(parseInt(w.slice(2,4),16)*(1-o)),C=Math.round(parseInt(w.slice(4,6),16)*(1-o));return`rgb(${b}, ${M}, ${C})`}const V=Gi({getContainer:()=>g.value});V.setOnMarqueeEnd(sa),Zi({isEditing:()=>l.value!==null,isReadonly:()=>a.previewMode,getSelectedId:()=>u.value,getRootId:()=>c.value.id,defaultTargetId:()=>c.value.id,onAddChild:Ke,onAddSibling:Nt,onAddSiblingBefore:ei,onRemove:ni,onStartEdit:Je,onClearSelection:()=>{u.value=null,s("select",null)},onDuplicate:ti,onUndo:Ft,onRedo:Wt,onNavigate:ta,onSelectRoot:()=>{u.value=c.value.id;const n=F(c.value,c.value.id);n&&s("select",n)}});const ge=t.computed(()=>{const n=Me(c.value);return Jn(n),Ii(n,{mode:T.layoutMode,baseFontSize:H.value.fontSize,richHeights:A.value,richWidths:L.value})}),jn=t.ref([]),Vt=t.computed(()=>(Ne.value,jn.value));t.watch(ge,n=>{const o=[],f=w=>{o.push(w);for(const b of w.children)f(b)};f(n.root),jn.value=o},{immediate:!0});const Gr=t.computed(()=>{const n=[];for(const o of Vt.value)for(const f of o.children)n.push({from:o,to:f,key:`${o.id}->${f.id}`});return n}),Kr=t.computed(()=>`${ge.value.vbX} ${ge.value.vbY} ${ge.value.vbW} ${ge.value.vbH}`);function Jn(n){if(m.value.has(n.id)){n.children=[],n.collapsed=!0;return}n.collapsed=!1;for(const o of n.children)Jn(o)}function Je(n){const o=F(c.value,n);o&&(l.value=n,d.value=o.text,t.nextTick(()=>{const f=document.querySelector(".zm-input");f==null||f.focus(),f==null||f.select()}))}function kt(n={}){if(!l.value)return;const o=F(c.value,l.value);o&&o.text!==(d.value.trim()||" ")&&(o.text=d.value.trim()||" ",k(),s("change",c.value));const f=l.value;l.value=null,n.addChild?t.nextTick(()=>Ke(f)):n.addSibling==="after"?t.nextTick(()=>Nt(f)):n.addSibling==="before"&&t.nextTick(()=>ei(f))}function Zr(){l.value=null}function Yr(n){if(a.previewMode)return;const o=F(c.value,n);o!=null&&o.richContent&&(y.value=n,p.value=o.richContent.raw,t.nextTick(()=>{const f=document.querySelector(".zm-node .zm-rich textarea");f==null||f.focus()}))}function Qn(){if(!y.value)return;const n=y.value,o=F(c.value,n),f=p.value;if(o&&o.richContent&&o.richContent.raw!==f)if(o.richContent.kind==="code"){const w=Kn(f)||void 0;v(n,{kind:"code",raw:f,lang:w})}else v(n,{kind:"table",raw:f});y.value=null}function Xr(){y.value=null}function qr(n){n.key==="Escape"?(n.preventDefault(),Xr()):n.key==="Enter"&&(n.ctrlKey||n.metaKey)&&(n.preventDefault(),Qn())}function jr(n,o){const f=x.value.get(n);!f||f.col!==o?x.value.set(n,{col:o,dir:"asc"}):f.dir==="asc"?x.value.set(n,{col:o,dir:"desc"}):x.value.delete(n)}function Jr(n,o){const f=x.value.get(n);return!f||o.length<=1?o:dr(o,f.col,f.dir)}function Qr(n,o){const f=x.value.get(n);return!f||f.col!==o?"↕":f.dir==="asc"?"▲":"▼"}function ea(n){const o=n.metaKey||n.ctrlKey;o&&(n.key==="z"||n.key==="Z")&&!n.shiftKey?(n.preventDefault(),Ft()):(o&&n.shiftKey&&(n.key==="z"||n.key==="Z")||o&&(n.key==="y"||n.key==="Y")&&!n.shiftKey)&&(n.preventDefault(),Wt())}function Ke(n){const o=en(c.value,n,st);o&&(k(),_(),s("change",c.value),t.nextTick(()=>Je(o.id)))}function Nt(n){if(n===c.value.id){Ke(n);return}const o=tn(c.value,n,st);o&&(k(),_(),s("change",c.value),t.nextTick(()=>Je(o.id)))}function ei(n){if(n===c.value.id){Ke(n);return}const o=Ui(c.value,n,st);o&&(k(),_(),s("change",c.value),t.nextTick(()=>Je(o.id)))}function ti(n){if(n===c.value.id)return;const o=Hi(c.value,n);o&&(k(),u.value=o.id,s("change",c.value),_())}function Ft(){const n=Ee.undo();n&&(c.value=n.data,u.value=null,s("select",null),_(),s("change",c.value))}function Wt(){const n=Ee.redo();n&&(c.value=n.data,u.value=null,s("select",null),_(),s("change",c.value))}function ta(n,o){const f=u.value??c.value.id,w=F(c.value,f);if(!w)return;let b=null;if(o===1){const M=ke(c.value,w.id);if(M){const C=M.children.findIndex(D=>D.id===w.id);C>=0&&C<M.children.length-1&&(b=M.children[C+1].id)}}else if(o===-1){const M=ke(c.value,w.id);if(M){const C=M.children.findIndex(D=>D.id===w.id);C>0&&(b=M.children[C-1].id)}}else if(n===1){const M=ke(c.value,w.id);M&&(b=M.id)}else n===-1&&w.children.length>0&&(b=w.children[0].id);if(b){u.value=b;const M=F(c.value,b);M&&s("select",M)}}function ni(n){n!==c.value.id&&Tt(c.value,n)&&(k(),u.value===n&&(u.value=null),_(),s("change",c.value))}function ii(n){m.value.has(n)?m.value.delete(n):m.value.add(n),_()}function na(n,o){$i(c.value,n,o)&&(k(),_(),s("change",c.value))}function ia(n,o,f){return Pi(c.value,n,o,f)?(k(),_(),s("change",c.value),!0):!1}function oa(n,o){n.stopPropagation(),u.value=o.id;const f=F(c.value,o.id);s("select",f)}function ra(n){const o=n.target;if(!o||o.closest(".zm-node, .zm-toolbar, button, input, textarea"))return;if(n.button===2){V.startPan(n);return}if(n.button!==0)return;const f=g.value.getBoundingClientRect(),w=(n.clientX-f.left-V.offsetX.value)/V.scale.value,b=(n.clientY-f.top-V.offsetY.value)/V.scale.value;V.startMarquee(w,b)}function aa(n){if(oe){oe=!1;return}const o=n.target;if(!o||o.closest(".zm-node"))return;const f=V.marquee;f.width>=4||f.height>=4||u.value!==null&&(u.value=null,s("select",null))}function sa(){const n=V.marquee;if(n.width<4&&n.height<4)return;const o=n.x,f=n.y,w=n.x+n.width,b=n.y+n.height,M=[];for(const C of Vt.value){const D=C.width/2,X=C.height/2,h=C.x-D,W=C.x+D,xe=C.y-X,_e=C.y+X;h<=w&&W>=o&&xe<=b&&_e>=f&&M.push(C.id)}if(M.length>0){u.value=M[0];const C=F(c.value,M[0]);C&&s("select",C)}}function oi(n){return m.value.has(n)}function la(n){const o=F(c.value,n.id);return!!o&&o.children.length>0}function Gt(n){const o=F(c.value,n);return o?o.children.length:0}function ri(n){if(!F(c.value,n))return 0;const w=[c.value];for(;w.length;){const b=w.pop(),M=b.children.findIndex(C=>C.id===n);if(M>=0)return M;for(const C of b.children)w.push(C)}return 0}function ai(n,o,f,w){if(((w==null?void 0:w._dir)??n._dir)==="down")return o==="out"?{x:n.x,y:n.y+n.height/2}:{x:n.x,y:n.y-n.height/2};let M;o==="in"?M=-n.side:f!==void 0?M=f:M=n.side;const C=o==="in"?n._richInsetX??0:0;return{x:n.x+M*(n.width/2-C),y:n.y}}function ve(){const n=ge.value;V.resetView(n.width,n.height,n.root.y)}function ca(){De.value=!0,k(),_(),t.nextTick(()=>ve())}function Kt(n){T.layoutMode!==n&&(T.layoutMode=n,_(),t.nextTick(()=>ve()))}function si(){return JSON.stringify(c.value,null,2)}function li(n){try{const o=JSON.parse(n);return!o.id||!Array.isArray(o.children)?!1:(Ee.reset(),c.value=Me(o),u.value=null,m.value=new Set,_(),t.nextTick(()=>ve()),s("change",c.value),!0)}catch{return!1}}function da(){const n=document.createElement("input");n.type="file",n.accept="application/json",n.onchange=()=>{var w;const o=(w=n.files)==null?void 0:w[0];if(!o)return;const f=new FileReader;f.onload=()=>{typeof f.result=="string"&&(li(f.result)||alert("导入失败:JSON 格式无效"))},f.readAsText(o)},n.click()}function ua(){const n=new Blob([si()],{type:"application/json"}),o=URL.createObjectURL(n),f=document.createElement("a");f.href=o,f.download=`${c.value.text||"mindmap"}.json`,f.click(),URL.revokeObjectURL(o)}return r({addChild:n=>Ke(n),addSibling:n=>Nt(n),removeNode:n=>ni(n),duplicateNode:n=>ti(n),setNodeText:(n,o)=>na(n,o),moveNode:(n,o,f)=>ia(n,o,f),lineWidthForDepth:ye,endWidthForDepth:yt,getData:()=>c.value,setData:n=>{Ee.reset(),c.value=Me(n),u.value=null,m.value=new Set,_(),k(),t.nextTick(()=>ve())},resetView:()=>ve(),exportData:si,importData:li,getMarkdown:()=>lt(c.value),setMarkdown:(n,o=!0)=>{const f=Ct(n||"");o&&(G.value=!0),S=!o,Ee.reset(),c.value=Me(f),u.value=null,m.value=new Set,_(),k(),t.nextTick(()=>{S=!1,ve()}),s("change",c.value)},setBalanced:n=>{De.value=n},isBalanced:()=>De.value,balance:()=>ca(),applyNodeStyle:(n,o)=>P(n,o),getNodeStyle:n=>R(n),applyNodeImage:(n,o)=>j(n,o),applyNodeImageByUrl:(n,o)=>de(n,o),removeNodeImage:n=>J(n),applyNodeLink:(n,o)=>ne(n,o),removeNodeLink:n=>ie(n),applyNodeNote:(n,o)=>le(n,o),removeNodeNote:n=>E(n),applyNodeRichContent:(n,o)=>v(n,o),undo:()=>Ft(),redo:()=>Wt(),canUndo:()=>Ee.canUndo(),canRedo:()=>Ee.canRedo(),applySettings:n=>{n.autoBalanceOnChange!==void 0&&(T.autoBalanceOnChange=n.autoBalanceOnChange),n.lineWidthStart!==void 0&&(T.lineWidthStart=Math.max(.5,Math.min(20,n.lineWidthStart))),n.lineWidthEnd!==void 0&&(T.lineWidthEnd=Math.max(.3,Math.min(10,n.lineWidthEnd))),n.rainbowBranch!==void 0&&(T.rainbowBranch=n.rainbowBranch),n.branchPaletteId!==void 0&&(T.branchPaletteId=n.branchPaletteId),n.customPalettes!==void 0&&(T.customPalettes=n.customPalettes),n.lineStyle!==void 0&&(T.lineStyle=n.lineStyle),n.taperedEdge!==void 0&&(T.taperedEdge=n.taperedEdge),n.showOrderBadge!==void 0&&(T.showOrderBadge=n.showOrderBadge)},getSettings:()=>({autoBalanceOnChange:T.autoBalanceOnChange,lineWidthStart:T.lineWidthStart,lineWidthEnd:T.lineWidthEnd,rainbowBranch:T.rainbowBranch,branchPaletteId:T.branchPaletteId,customPalettes:T.customPalettes,lineStyle:T.lineStyle,layoutMode:T.layoutMode,taperedEdge:T.taperedEdge,showOrderBadge:T.showOrderBadge}),setBranchPalette:n=>{if(!n)return;[...Ye,...T.customPalettes].find(f=>f.id===n)&&(T.branchPaletteId=n)},getBranchPalette:()=>T.branchPaletteId,getBranchPalettes:()=>[...Ye,...T.customPalettes]}),t.watch(()=>a.data,n=>{c.value=Me(n),_()},{deep:!1}),t.onMounted(()=>{k(),t.nextTick(()=>ve())}),(n,o)=>{var f,w,b,M,C,D,X;return t.openBlock(),t.createElementBlock("div",{class:"zm-mindmap",style:t.normalizeStyle({background:H.value.bgColor,fontSize:H.value.fontSize+"px"})},[t.createElementVNode("div",{ref_key:"wrapperRef",ref:g,class:"zm-canvas",onMousedown:ra,onContextmenu:o[16]||(o[16]=t.withModifiers(()=>{},["prevent"])),onWheel:o[17]||(o[17]=(...h)=>t.unref(V).onWheel&&t.unref(V).onWheel(...h)),onClick:aa},[t.createElementVNode("div",{class:"zm-svg-layer",style:t.normalizeStyle({left:ge.value.vbX*t.unref(V).scale.value+t.unref(V).offsetX.value+"px",top:ge.value.vbY*t.unref(V).scale.value+t.unref(V).offsetY.value+"px",width:ge.value.vbW*t.unref(V).scale.value+"px",height:ge.value.vbH*t.unref(V).scale.value+"px"})},[(t.openBlock(),t.createElementBlock("svg",{class:"zm-svg",viewBox:Kr.value,preserveAspectRatio:"xMinYMin meet",width:ge.value.vbW*t.unref(V).scale.value,height:ge.value.vbH*t.unref(V).scale.value},[t.createElementVNode("g",fr,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Gr.value,h=>(t.openBlock(),t.createElementBlock("path",{key:h.key,d:zr(ai(h.from,"out",h.to.side,h.to),ai(h.to,"in"),ye(h.from.depth),yt(h.to.depth),32,T.lineStyle,h.to._dir),fill:Pr(h.from,h.to),stroke:"none"},null,8,gr))),128))])],8,ur))],4),t.unref(V).isMarquee.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:"zm-marquee",style:t.normalizeStyle({left:t.unref(V).marquee.x*t.unref(V).scale.value+t.unref(V).offsetX.value+"px",top:t.unref(V).marquee.y*t.unref(V).scale.value+t.unref(V).offsetY.value+"px",width:t.unref(V).marquee.width*t.unref(V).scale.value+"px",height:t.unref(V).marquee.height*t.unref(V).scale.value+"px"})},null,4)):t.createCommentVNode("",!0),t.createElementVNode("div",{class:"zm-world",style:t.normalizeStyle({transform:`translate(${t.unref(V).offsetX.value}px, ${t.unref(V).offsetY.value}px) scale(${t.unref(V).scale.value})`})},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Vt.value,h=>(t.openBlock(),t.createElementBlock("div",{key:h.id,class:t.normalizeClass(["zm-node",{"is-root":h.isRoot,"is-selected":u.value===h.id,"is-editing":l.value===h.id,"has-image":!!h.image,"is-resizing":be.value===h.id}]),"data-node-id":h.id,style:t.normalizeStyle({left:h.x+"px",top:h.y+"px",width:h.width+"px",minWidth:h.width+"px",height:h.height+"px",fontSize:h.fontSize+"px",background:Ur(h),color:Hr(h),borderColor:Vr(h),fontWeight:Fr(h),transform:"translate(-50%, -50%)"}),onClick:W=>oa(W,h),onDblclick:W=>{W.stopPropagation(),e.previewMode||Je(h.id)},onContextmenu:W=>$(W,h),onMouseenter:W=>q(h.id),onMouseleave:W=>Ge(h.id)},[h.image?(t.openBlock(),t.createElementBlock("img",{key:0,class:"zm-node-img",src:h.image.src,width:h.image.width,height:h.image.height,alt:h.text,draggable:"false"},null,8,hr)):t.createCommentVNode("",!0),h.richContent&&(h.richContent.kind==="code"||h.richContent.kind==="table")&&l.value!==h.id?(t.openBlock(),t.createElementBlock("div",{key:1,class:t.normalizeClass(["zm-rich zm-rich-above",{"zm-rich-no-overflow":h.richContent.kind==="table"||h.richContent.kind==="code"}]),onClick:o[1]||(o[1]=t.withModifiers(()=>{},["stop"])),onDblclick:t.withModifiers(W=>Yr(h.id),["stop"]),onMousedown:o[2]||(o[2]=t.withModifiers(()=>{},["stop"]))},[y.value===h.id?t.withDirectives((t.openBlock(),t.createElementBlock("textarea",{key:0,"onUpdate:modelValue":o[0]||(o[0]=W=>p.value=W),class:"zm-rich-edit",spellcheck:"false",onBlur:Qn,onKeydown:qr},null,544)),[[t.vModelText,p.value]]):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[h.richContent.kind==="code"?(t.openBlock(),t.createElementBlock("pre",br,[t.createElementVNode("code",{innerHTML:t.unref(sr)(t.unref(Gn)(h.richContent.raw),t.unref(Kn)(h.richContent.raw))},null,8,Er)])):h.richContent.kind==="table"?(t.openBlock(),t.createElementBlock("table",yr,[t.createElementVNode("tbody",null,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(Jr(h.id,t.unref(lr)(h.richContent.raw)),(W,xe)=>(t.openBlock(),t.createElementBlock("tr",{key:xe},[xe===0?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(W,(_e,fe)=>{var Qe,et,tt,nt,Se;return t.openBlock(),t.createElementBlock("th",{key:`h${fe}`,class:t.normalizeClass(["zm-rich-table-sort",{"is-sorted":((Qe=x.value.get(h.id))==null?void 0:Qe.col)===fe,"is-asc":((et=x.value.get(h.id))==null?void 0:et.col)===fe&&((tt=x.value.get(h.id))==null?void 0:tt.dir)==="asc","is-desc":((nt=x.value.get(h.id))==null?void 0:nt.col)===fe&&((Se=x.value.get(h.id))==null?void 0:Se.dir)==="desc"}]),onClick:t.withModifiers(ci=>jr(h.id,fe),["stop"])},[t.createElementVNode("span",null,t.toDisplayString(_e),1),t.createElementVNode("span",kr,t.toDisplayString(Qr(h.id,fe)),1)],10,xr)}),128)):(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:1},t.renderList(W,(_e,fe)=>(t.openBlock(),t.createElementBlock("td",{key:`c${fe}`},t.toDisplayString(_e),1))),128))]))),128))])])):t.createCommentVNode("",!0)],64))],42,pr)):t.createCommentVNode("",!0),l.value!==h.id?(t.openBlock(),t.createElementBlock("span",Nr,[t.createElementVNode("span",wr,t.toDisplayString(h.text),1),h.link&&!l.value?(t.openBlock(),t.createElementBlock("a",{key:0,class:"zm-node-link",href:h.link.url,target:"_blank",rel:"noopener noreferrer",title:`打开链接:${h.link.url}`,onClick:o[3]||(o[3]=t.withModifiers(()=>{},["stop"])),onMousedown:o[4]||(o[4]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(re,{name:"link",size:11,stroke:2})],40,_r)):t.createCommentVNode("",!0),h.note&&!l.value?(t.openBlock(),t.createElementBlock("button",{key:1,class:"zm-node-note-btn",type:"button",title:Pt(h.note.text),onClick:t.withModifiers(W=>Et(h.id),["stop"]),onMousedown:o[5]||(o[5]=t.withModifiers(()=>{},["stop"]))},[t.createVNode(re,{name:"note",size:11,stroke:2})],40,Sr)):t.createCommentVNode("",!0)])):t.withDirectives((t.openBlock(),t.createElementBlock("input",{key:3,class:"zm-input","onUpdate:modelValue":o[6]||(o[6]=W=>d.value=W),autofocus:"",onBlur:o[7]||(o[7]=W=>kt()),onKeydown:[o[8]||(o[8]=t.withKeys(t.withModifiers(W=>kt({addSibling:"after"}),["exact"]),["enter"])),o[9]||(o[9]=t.withKeys(t.withModifiers(W=>kt({addSibling:"before"}),["shift","prevent","exact"]),["enter"])),o[10]||(o[10]=t.withKeys(t.withModifiers(W=>kt({addChild:!0}),["prevent"]),["tab"])),t.withKeys(Zr,["esc"]),ea],onMousedown:o[11]||(o[11]=t.withModifiers(()=>{},["stop"])),onClick:o[12]||(o[12]=t.withModifiers(()=>{},["stop"]))},null,544)),[[t.vModelText,d.value]]),Z.value?(t.openBlock(),t.createElementBlock("span",{key:4,class:"zm-order-badge",title:`数据顺序:第 ${ri(h.id)+1} 个`},t.toDisplayString(ri(h.id)+1),9,Mr)):t.createCommentVNode("",!0),oi(h.id)&&!h.isRoot&&Gt(h.id)>0?(t.openBlock(),t.createElementBlock("span",{key:5,class:t.normalizeClass(["zm-collapse-badge",{"is-on-left":h.side===-1}]),style:t.normalizeStyle({background:ze.value.get(h.id)??"#64748b"}),title:`展开 ${Gt(h.id)} 个子节点`,onMousedown:o[13]||(o[13]=t.withModifiers(()=>{},["stop"])),onClick:t.withModifiers(W=>ii(h.id),["stop"])},t.toDisplayString(Gt(h.id)),47,vr)):t.createCommentVNode("",!0),!h.isRoot&&la(h)&&!oi(h.id)?(t.openBlock(),t.createElementBlock("button",{key:6,class:t.normalizeClass(["zm-btn zm-collapse",{"is-on-left":h.side===-1}]),style:t.normalizeStyle({color:ze.value.get(h.id)??"#64748b",borderColor:ze.value.get(h.id)??"#64748b"}),title:"折叠",onMousedown:o[14]||(o[14]=t.withModifiers(()=>{},["stop"])),onClick:t.withModifiers(W=>ii(h.id),["stop"])},[t.createVNode(re,{name:"minus",size:10,stroke:2.4})],46,Tr)):t.createCommentVNode("",!0),h.image&&u.value===h.id&&l.value!==h.id?(t.openBlock(),t.createElementBlock("span",{key:7,class:"zm-img-resize-handle",title:"拖动调整图片大小",onMousedown:t.withModifiers(W=>Ut(W,h),["stop"])},null,40,Cr)):t.createCommentVNode("",!0),h.image&&u.value===h.id&&l.value!==h.id?(t.openBlock(),t.createElementBlock("button",{key:8,class:"zm-img-remove-btn",title:"移除图片",onMousedown:o[15]||(o[15]=t.withModifiers(()=>{},["stop"])),onClick:t.withModifiers(W=>J(h.id),["stop"])},[t.createVNode(re,{name:"x",size:9,stroke:2.2})],40,Ar)):t.createCommentVNode("",!0)],46,mr))),128))],4),N.value?(t.openBlock(),t.createBlock(Xi,{key:1,x:N.value.x,y:N.value.y,container:g.value,"has-image":!!((f=t.unref(F)(c.value,N.value.nodeId))!=null&&f.image),"has-link":!!((w=t.unref(F)(c.value,N.value.nodeId))!=null&&w.link),"has-note":!!((b=t.unref(F)(c.value,N.value.nodeId))!=null&&b.note),"has-code":((C=(M=t.unref(F)(c.value,N.value.nodeId))==null?void 0:M.richContent)==null?void 0:C.kind)==="code","has-table":((X=(D=t.unref(F)(c.value,N.value.nodeId))==null?void 0:D.richContent)==null?void 0:X.kind)==="table",onPickImage:ee,onRemoveImage:ht,onSetLink:ce,onRemoveLink:he,onEditNote:ue,onRemoveNote:pe,onAddCode:je,onEditCode:je,onRemoveCode:pt,onAddTable:bt,onEditTable:bt,onRemoveTable:$t,onClose:K},null,8,["x","y","container","has-image","has-link","has-note","has-code","has-table"])):t.createCommentVNode("",!0)],544),a.previewMode?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("div",Rr,[t.createElementVNode("button",{class:"zm-tb-btn",title:"放大",onClick:o[18]||(o[18]=(...h)=>t.unref(V).zoomIn&&t.unref(V).zoomIn(...h))},[t.createVNode(re,{name:"zoom-in"})]),t.createElementVNode("button",{class:"zm-tb-btn",title:"缩小",onClick:o[19]||(o[19]=(...h)=>t.unref(V).zoomOut&&t.unref(V).zoomOut(...h))},[t.createVNode(re,{name:"zoom-out"})]),t.createElementVNode("button",{class:"zm-tb-btn",title:"重置视图",onClick:ve},[t.createVNode(re,{name:"reset"})]),o[25]||(o[25]=t.createElementVNode("span",{class:"zm-tb-divider"},null,-1)),t.createElementVNode("button",{class:"zm-tb-btn",title:"添加子节点 (Tab)",onClick:o[20]||(o[20]=h=>u.value&&Ke(u.value))},[t.createElementVNode("img",{src:t.unref(pi),width:"14",height:"14",alt:"添加子节点",draggable:"false"},null,8,Or)]),t.createElementVNode("button",{class:"zm-tb-btn",title:"添加同级 (Enter)",onClick:o[21]||(o[21]=h=>u.value&&Nt(u.value))},[t.createElementVNode("img",{src:t.unref(hi),width:"14",height:"14",alt:"添加同级",draggable:"false"},null,8,Ir)]),o[26]||(o[26]=t.createElementVNode("span",{class:"zm-tb-divider"},null,-1)),t.createElementVNode("button",{class:t.normalizeClass(["zm-tb-btn",{active:T.layoutMode==="mindmap"}]),title:"思维导图布局 (中心辐射)",onClick:o[22]||(o[22]=h=>Kt("mindmap"))},[t.createVNode(re,{name:"mindmap"})],2),t.createElementVNode("button",{class:t.normalizeClass(["zm-tb-btn",{active:T.layoutMode==="tree"}]),title:"树形布局 (向右展开)",onClick:o[23]||(o[23]=h=>Kt("tree"))},[t.createVNode(re,{name:"tree"})],2),t.createElementVNode("button",{class:t.normalizeClass(["zm-tb-btn",{active:T.layoutMode==="org"}]),title:"组织结构布局 (向下展开)",onClick:o[24]||(o[24]=h=>Kt("org"))},[t.createVNode(re,{name:"org"})],2),o[27]||(o[27]=t.createElementVNode("span",{class:"zm-tb-divider"},null,-1)),t.createElementVNode("button",{class:"zm-tb-btn",title:"导入 JSON",onClick:da},[t.createVNode(re,{name:"import"})]),t.createElementVNode("button",{class:"zm-tb-btn",title:"导出 JSON",onClick:ua},[t.createVNode(re,{name:"export"})]),t.createElementVNode("span",Br,t.toDisplayString(Math.round(t.unref(V).scale.value*100))+"%",1)]))],4)}}}),Lr={install(e){e.component("FlowMindMap",Zn)}};se.MindMap=Zn,se.addChild=en,se.addSibling=tn,se.clone=Me,se.default=Lr,se.findNode=F,se.findParent=ke,se.markdownToMindMap=Ct,se.markdownToRichMindMap=Fi,se.mindMapToMarkdown=lt,se.removeNode=Tt,se.richBlockToMarkdown=Wi,se.uid=we,Object.defineProperties(se,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|