13 lines
31 KiB
JavaScript
13 lines
31 KiB
JavaScript
var Ee=()=>document.querySelector("#editor-mode");var Le=["esm.sh","skypack","esm.run","jsdelivr.esm","fastly.jsdelivr.esm","gcore.jsdelivr.esm","testingcf.jsdelivr.esm","jsdelivr.b-cdn.esm","jspm"],Se=["jsdelivr","fastly.jsdelivr","unpkg","gcore.jsdelivr","testingcf.jsdelivr","jsdelivr.b-cdn","npmcdn"],we=["jsdelivr.gh","fastly.jsdelivr.gh","statically","gcore.jsdelivr.gh","testingcf.jsdelivr.gh","jsdelivr.b-cdn.gh"],q={getModuleUrl:(t,{isModule:o=!0,defaultCDN:n="esm.sh",external:s}={})=>{t=t.replace(/#nobundle/g,"");let c=l=>!s||!l.includes("https://esm.sh")?l:l.includes("?")?`${l}&external=${s}`:`${l}?external=${s}`,i=Me(t,o,n);return i?c(i):o?c("https://esm.sh/"+t):"https://cdn.jsdelivr.net/npm/"+t},getUrl:(t,o)=>t.startsWith("http")||t.startsWith("data:")?t:Me(t,!1,o||vt())||t,cdnLists:{npm:Se,module:Le,gh:we},checkCDNs:async(t,o)=>{let n=[o,...q.cdnLists.npm].filter(Boolean);for(let s of n)try{if((await fetch(q.getUrl(t,s),{method:"HEAD"})).ok)return s}catch{}return q.cdnLists.npm[0]}},vt=()=>{if(globalThis.appCDN)return globalThis.appCDN;try{return new URL(location.href).searchParams.get("appCDN")||q.cdnLists.npm[0]}catch{return q.cdnLists.npm[0]}},Me=(t,o,n)=>{let s=o&&t.startsWith("unpkg:")?"?module":"";t.startsWith("gh:")?t=t.replace("gh",we[0]):t.includes(":")||(t=(n||(o?Le[0]:Se[0]))+":"+t);for(let c of jt){let[i,l]=c;if(i.test(t))return t.replace(i,l)+s}return null},jt=[[/^(esm\.sh:)(.+)/i,"https://esm.sh/$2"],[/^(npm:)(.+)/i,"https://esm.sh/$2"],[/^(node:)(.+)/i,"https://esm.sh/$2"],[/^(jsr:)(.+)/i,"https://esm.sh/jsr/$2"],[/^(skypack:)(.+)/i,"https://cdn.skypack.dev/$2"],[/^(jsdelivr:)(.+)/i,"https://cdn.jsdelivr.net/npm/$2"],[/^(fastly\.jsdelivr:)(.+)/i,"https://fastly.jsdelivr.net/npm/$2"],[/^(gcore\.jsdelivr:)(.+)/i,"https://gcore.jsdelivr.net/npm/$2"],[/^(testingcf\.jsdelivr:)(.+)/i,"https://testingcf.jsdelivr.net/npm/$2"],[/^(jsdelivr\.b-cdn:)(.+)/i,"https://jsdelivr.b-cdn.net/npm/$2"],[/^(jsdelivr\.gh:)(.+)/i,"https://cdn.jsdelivr.net/gh/$2"],[/^(fastly\.jsdelivr\.gh:)(.+)/i,"https://fastly.jsdelivr.net/gh/$2"],[/^(gcore\.jsdelivr\.gh:)(.+)/i,"https://gcore.jsdelivr.net/gh/$2"],[/^(testingcf\.jsdelivr\.gh:)(.+)/i,"https://testingcf.jsdelivr.net/gh/$2"],[/^(jsdelivr\.b-cdn\.gh:)(.+)/i,"https://jsdelivr.b-cdn.net/gh/$2"],[/^(statically:)(.+)/i,"https://cdn.statically.io/gh/$2"],[/^(esm\.run:)(.+)/i,"https://esm.run/$2"],[/^(jsdelivr\.esm:)(.+)/i,"https://cdn.jsdelivr.net/npm/$2/+esm"],[/^(fastly\.jsdelivr\.esm:)(.+)/i,"https://fastly.jsdelivr.net/npm/$2/+esm"],[/^(gcore\.jsdelivr\.esm:)(.+)/i,"https://gcore.jsdelivr.net/npm/$2/+esm"],[/^(testingcf\.jsdelivr\.esm:)(.+)/i,"https://testingcf.jsdelivr.net/npm/$2/+esm"],[/^(jsdelivr\.b-cdn\.esm:)(.+)/i,"https://jsdelivr.b-cdn.net/npm/$2/+esm"],[/^(jspm:)(.+)/i,"https://jspm.dev/$2"],[/^(esbuild:)(.+)/i,"https://esbuild.vercel.app/$2"],[/^(bundle\.run:)(.+)/i,"https://bundle.run/$2"],[/^(unpkg:)(.+)/i,"https://unpkg.com/$2"],[/^(npmcdn:)(.+)/i,"https://npmcdn.com/$2"],[/^(bundlejs:)(.+)/i,"https://deno.bundlejs.com/?file&q=$2"],[/^(bundle:)(.+)/i,"https://deno.bundlejs.com/?file&q=$2"],[/^(deno:)(.+)/i,"https://deno.bundlejs.com/?file&q=https://deno.land/x/$2/mod.ts"],[/^(https:\/\/deno\.land\/.+)/i,"https://deno.bundlejs.com/?file&q=$1"],[/^(github:|https:\/\/github\.com\/)(.[^\/]+?)\/(.[^\/]+?)\/(?!releases\/)(?:(?:blob|raw)\/)?(.+?\/.+)/i,"https://deno.bundlejs.com/?file&q=https://cdn.jsdelivr.net/gh/$2/$3@$4"],[/^(gist\.github:)(.+?\/[0-9a-f]+\/raw\/(?:[0-9a-f]+\/)?.+)$/i,"https://gist.githack.com/$2"],[/^(gitlab:|https:\/\/gitlab\.com\/)([^\/]+.*\/[^\/]+)\/(?:raw|blob)\/(.+?)(?:\?.*)?$/i,"https://deno.bundlejs.com/?file&q=https://gl.githack.com/$2/raw/$3"],[/^(bitbucket:|https:\/\/bitbucket\.org\/)([^\/]+\/[^\/]+)\/(?:raw|src)\/(.+?)(?:\?.*)?$/i,"https://deno.bundlejs.com/?file&q=https://bb.githack.com/$2/raw/$3"],[/^(bitbucket:)snippets\/([^\/]+\/[^\/]+)\/revisions\/([^\/\#\?]+)(?:\?[^#]*)?(?:\#file-(.+?))$/i,"https://bb.githack.com/!api/2.0/snippets/$2/$3/files/$4"],[/^(bitbucket:)snippets\/([^\/]+\/[^\/\#\?]+)(?:\?[^#]*)?(?:\#file-(.+?))$/i,"https://bb.githack.com/!api/2.0/snippets/$2/HEAD/files/$3"],[/^(bitbucket:)\!api\/2.0\/snippets\/([^\/]+\/[^\/]+\/[^\/]+)\/files\/(.+?)(?:\?.*)?$/i,"https://bb.githack.com/!api/2.0/snippets/$2/files/$3"],[/^(api\.bitbucket:)2.0\/snippets\/([^\/]+\/[^\/]+\/[^\/]+)\/files\/(.+?)(?:\?.*)?$/i,"https://bb.githack.com/!api/2.0/snippets/$2/files/$3"],[/^(rawgit:)(.+?\/[0-9a-f]+\/raw\/(?:[0-9a-f]+\/)?.+)$/i,"https://gist.githack.com/$2"],[/^(rawgit:|https:\/\/raw\.githubusercontent\.com)(\/[^\/]+\/[^\/]+|[0-9A-Za-z-]+\/[0-9a-f]+\/raw)\/(.+)/i,"https://deno.bundlejs.com/?file&q=https://raw.githack.com/$2/$3"]];var ve=()=>{let t=navigator.userAgent.toLowerCase();return t.includes("firefox")||t.includes("fxios")};var je=t=>(globalThis.structuredClone||(o=>JSON.parse(JSON.stringify(o,(n,s)=>s===void 0?null:s))))(t);var ke=()=>String(Math.random())+"-"+Date.now().toFixed();var Q=(t,o)=>new Promise((n,s)=>{if(o&&globalThis[o])return n(globalThis[o]);if(typeof globalThis.importScripts=="function")return globalThis.importScripts(t),o&&globalThis[o]?n(globalThis[o]):n(globalThis);let c=document.createElement("script");c.src=t,c.async=!0;let i=()=>{c.removeEventListener("load",l),c.removeEventListener("error",y)},l=()=>{if(i(),!o)return n("loaded: "+t);let f=setInterval(()=>{if(window[o])return clearInterval(f),n(window[o])},5)},y=()=>{i(),s("failed to load: "+t)};c.addEventListener("load",l),c.addEventListener("error",y),document.head.appendChild(c)});var ae=t=>t.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,"$1");var kt=/(import\s+?(?:(?:(?:[\w*\s{},\$]*)\s+from\s+?)|))((?:".*?")|(?:'.*?'))([\s]*?(?:;|$|))/g,Ht=/(import\s*?\(\s*?((?:".*?")|(?:'.*?'))\s*?\))/g,He=(t,o=!1)=>[...ae(t).matchAll(new RegExp(kt)),...ae(t).matchAll(new RegExp(Ht))].map(n=>n[2].replace(/"/g,"").replace(/'/g,"")).map(n=>!o||!Ct(n)||!n.includes(":")?n:n.split(":")[1]);var Ct=t=>!t.startsWith("https://")&&!t.startsWith("http://")&&!t.startsWith(".")&&!t.startsWith("/")&&!t.startsWith("data:")&&!t.startsWith("blob:");var Ce=t=>{if(!t.startsWith("https://"))return t;let o=["https://esm.sh/","https://cdn.skypack.dev/","https://cdn.jsdelivr.net/npm/","https://fastly.jsdelivr.net/npm/","https://gcore.jsdelivr.net/npm/","https://testingcf.jsdelivr.net/npm/","https://jsdelivr.b-cdn.net/npm/","https://esm.run/","https://esbuild.vercel.app/","https://bundle.run/","https://unpkg.com/","https://npmcdn.com/","https://deno.bundlejs.com/?file&q=","https://jspm.dev/"];for(let n of o)if(t.startsWith(n))return t.replace(n,"");return t},qe=t=>t.includes(":")&&!t.startsWith("data:")&&!t.startsWith("http")?t.split(":")[1]:t;var Ue=t=>`https://ofcncog2cu-dsn.algolia.net/1/indexes/npm-search/${encodeURIComponent(t)}?x-algolia-agent=Browser`,Ie={"X-Algolia-Application-Id":"OFCNCOG2CU","X-Algolia-API-Key":"f54e21fa3a2a0160595bb058179bfb1e"},Ae=["name","description","homepage","repository.url","version"],ce="https://data.jsdelivr.com/v1",le={...ve()?{}:{"User-Agent":"https://livecodes.io"}},_=t=>{let o=t.startsWith("@"),n=o?t.slice(1):t,[s,c]=n.split("@");return[(o?"@":"")+s,c]},qt=async(t,o=10)=>{let n={page:0,hitsPerPage:o,attributesToHighlight:[],attributesToRetrieve:Ae,analyticsTags:["jsdelivr"]},[s,c]=_(t),i;if(c){let f=await Y(t);typeof f=="string"&&(i=_(f)[1])}let l=await fetch(Ue("query"),{method:"POST",headers:{"Content-Type":"application/json; charset=UTF-8",...Ie},body:JSON.stringify({query:s,...n})}).then(f=>{if(!f.ok)throw new Error("failed to fetch");return f}).then(f=>f.json()).catch(f=>({error:!0,message:f.message||String(f)}));if("error"in l)return l;let y=l.hits.map(f=>(f.name===s&&i&&(f.version=i),f.repository?.url&&(f.repo=f.repository?.url),f));return y.sort((f,I)=>f.name===s?-1:I.name===s?1:0),y},Y=async t=>{let o=`${ce}/package/resolve/npm/${t}`,n=await fetch(o,{headers:le}).then(i=>{if(!i.ok)throw new Error("failed to fetch");return i}).then(i=>i.json()).catch(i=>({error:!0,message:i.message||String(i)}));if("error"in n)return n;let s=_(t)[0],c=n.version;return c?`${s}@${c}`:s},Ut=async t=>{let[o,n]=_(qe(Ce(t))),s;if(n){let l=await Y(t);typeof l=="string"&&(s=_(l)[1])}let c=Ue(o)+"&attributesToRetrieve="+Ae.join(","),i=await fetch(c,{method:"GET",headers:Ie}).then(l=>{if(!l.ok)throw new Error("failed to fetch");return l}).then(l=>l.json()).catch(l=>({error:!0,message:l.message||String(l)}));return"error"in i||(s&&(i.version=s),i.repository?.url&&(i.repo=i.repository?.url)),i},It=async t=>{let o=await Y(t),n=`${ce}/package/npm/${o}/flat`,s=await fetch(n,{headers:le}).then(i=>{if(!i.ok)throw new Error("failed to fetch");return i}).then(i=>i.json()).catch(i=>({error:!0,message:i.message||String(i)}));if("error"in s)return s;let c=`https://cdn.jsdelivr.net/npm/${o}`;return{...s.default?{default:c+s.default}:{},files:s.files.map(i=>c+i.name)}},At=async t=>{let o=await Y(t),n=`${ce}/package/npm/${o}/entrypoints`,s=await fetch(n,{headers:le}).then(i=>{if(!i.ok)throw new Error("failed to fetch");return i}).then(i=>i.json()).catch(i=>({error:!0,message:i.message||String(i)}));if("error"in s)return s;let c=`https://cdn.jsdelivr.net/npm/${o}`;return{...s.js?.file?{js:c+s.js?.file}:{},...s.css?.file?{css:c+s.css?.file}:{}}},Be={search:qt,getPkgInfo:Ut,getPkgFiles:It,getPkgDefaultFiles:At};var{getUrl:U,getModuleUrl:mo}=q,B=U("@live-codes/browser-compilers@0.22.3/dist/");var Pe=U("@live-codes/monaco-codeium-provider@0.2.2/dist/index.js");var De=U("emmet-monaco-es@5.5.0/dist/emmet-monaco.js");var Re=U("@live-codes/monaco-editor@0.3.0/"),$e=U("monaco-emacs@0.3.0/dist/monaco-emacs.js"),p=U("monaco-themes@0.4.4/themes/"),We=U("monaco-vim@0.4.1/dist/monaco-vim.js"),Oe=U("@live-codes/monaco-volar@0.1.0/dist/index.js");var Bt=t=>{let o=t.trim(),n,s;return t.includes(":")&&([n,o]=o.split(":"),n!=="monaco"&&n!=="codemirror"&&n!=="codejar"&&(n=void 0)),t.includes("@")&&([o,s]=o.split("@"),s!=="light"&&s!=="dark"&&(s=void 0)),{editor:n,editorTheme:o,theme:s}},Ne=({editor:t,editorTheme:o,theme:n,editorThemes:s})=>{if(!o)return null;let i=(typeof o=="string"?o.split(",").map(l=>l.trim()):o).map(Bt);for(let l of i)if((l.editor===t||l.editor===void 0)&&(l.theme===n||l.theme===void 0)&&s.includes(l.editorTheme))return l.editorTheme;return null};var pe=["jsx","tsx","react","react-tsx","sucrase","babel","flow","solid","solid.tsx","stencil","react-native","react-native-tsx","vue"],me=t=>{let n=["javascript","jsx","react","flow","solid","react-native"].includes(t),s=pe.includes(t),c=["solid","solid.tsx","stencil","vue"].includes(t),i={allowJs:!0,checkJs:!n,strictNullChecks:!n,allowNonTsExtensions:!0,experimentalDecorators:!0,emitDecoratorMetadata:!0,allowSyntheticDefaultImports:!0,allowUmdGlobalAccess:!0,esModuleInterop:!0,target:7,module:99,moduleResolution:2,lib:["es2021","dom","dom.iterable"]},l={jsx:4},y={jsx:1,jsxFactory:"h",...["solid","solid.tsx"].includes(t)?{jsxImportSource:"solid-js",jsxFactory:"JSX"}:{},jsxFragmentFactory:"Fragment"};return{...i,...s?l:{},...c?y:{}}};var ue=[{name:"active4d",title:"Active4D",url:p+"Active4D.json"},{name:"all-hallows-eve",title:"All Hallows Eve",url:p+"All Hallows Eve.json"},{name:"amy",title:"Amy",url:p+"Amy.json"},{name:"birds-of-paradise",title:"Birds of Paradise",url:p+"Birds of Paradise.json"},{name:"blackboard",title:"Blackboard",url:p+"Blackboard.json"},{name:"brilliance-black",title:"Brilliance Black",url:p+"Brilliance Black.json"},{name:"brilliance-dull",title:"Brilliance Dull",url:p+"Brilliance Dull.json"},{name:"catppuccin-latte",title:"Catppuccin Latte",url:B+"catppuccin/monaco/latte.json"},{name:"catppuccin-frappe",title:"Catppuccin Frappe",url:B+"catppuccin/monaco/frappe.json"},{name:"catppuccin-macchiato",title:"Catppuccin Macchiato",url:B+"catppuccin/monaco/macchiato.json"},{name:"catppuccin-mocha",title:"Catppuccin Mocha",url:B+"catppuccin/monaco/mocha.json"},{name:"chrome-devtools",title:"Chrome DevTools",url:p+"Chrome DevTools.json"},{name:"clouds-midnight",title:"Clouds Midnight",url:p+"Clouds Midnight.json"},{name:"clouds",title:"Clouds",url:p+"Clouds.json"},{name:"cobalt",title:"Cobalt",url:p+"Cobalt.json"},{name:"cobalt2",title:"Cobalt2",url:p+"Cobalt2.json"},{name:"dawn",title:"Dawn",url:p+"Dawn.json"},{name:"dracula",title:"Dracula",url:p+"Dracula.json"},{name:"dreamweaver",title:"Dreamweaver",url:p+"Dreamweaver.json"},{name:"eiffel",title:"Eiffel",url:p+"Eiffel.json"},{name:"espresso-libre",title:"Espresso Libre",url:p+"Espresso Libre.json"},{name:"github",title:"GitHub",url:p+"GitHub.json"},{name:"github-dark",title:"GitHub Dark",url:p+"GitHub Dark.json"},{name:"github-light",title:"GitHub Light",url:p+"GitHub Light.json"},{name:"hc-black",title:"High Contrast (Black)"},{name:"hc-light",title:"High Contrast (Light)"},{name:"idle",title:"Idle",url:p+"IDLE.json"},{name:"idlefingers",title:"Idle Fingers",url:p+"idleFingers.json"},{name:"iplastic",title:"iPlastic",url:p+"iPlastic.json"},{name:"katzenmilch",title:"Katzenmilch",url:p+"Katzenmilch.json"},{name:"krtheme",title:"krTheme",url:p+"krTheme.json"},{name:"kuroir",title:"Kuroir Theme",url:p+"Kuroir Theme.json"},{name:"lazy",title:"Lazy",url:p+"LAZY.json"},{name:"magicwb-amiga",title:"MagicWB (Amiga)",url:p+"MagicWB (Amiga).json"},{name:"merbivore-soft",title:"Merbivore Soft",url:p+"Merbivore Soft.json"},{name:"merbivore",title:"Merbivore",url:p+"Merbivore.json"},{name:"monochrome",title:"Monochrome"},{name:"monochrome-dark",title:"Monochrome Dark"},{name:"monoindustrial",title:"monoindustrial",url:p+"monoindustrial.json"},{name:"monokai",title:"Monokai",url:p+"Monokai.json"},{name:"monokai-bright",title:"Monokai Bright",url:p+"Monokai Bright.json"},{name:"night-owl",title:"Night Owl",url:p+"Night Owl.json"},{name:"nord",title:"Nord",url:p+"Nord.json"},{name:"oceanic-next",title:"Oceanic Next",url:p+"Oceanic Next.json"},{name:"pastels-on-dark",title:"Pastels on Dark",url:p+"Pastels on Dark.json"},{name:"slush-and-poppies",title:"Slush and Poppies",url:p+"Slush and Poppies.json"},{name:"solarized-dark",title:"Solarized Dark",url:p+"Solarized-dark.json"},{name:"solarized-light",title:"Solarized Light",url:p+"Solarized-light.json"},{name:"spacecadet",title:"SpaceCadet",url:p+"SpaceCadet.json"},{name:"sunburst",title:"Sunburst",url:p+"Sunburst.json"},{name:"textmate-mac-classic",title:"Textmate (Mac Classic)",url:p+"Textmate (Mac Classic).json"},{name:"tomorrow",title:"Tomorrow",url:p+"Tomorrow.json"},{name:"tomorrow-night",title:"Tomorrow Night",url:p+"Tomorrow-Night.json"},{name:"tomorrow-night-blue",title:"Tomorrow Night Blue",url:p+"Tomorrow-Night-Blue.json"},{name:"tomorrow-night-bright",title:"Tomorrow Night Bright",url:p+"Tomorrow-Night-Bright.json"},{name:"tomorrow-night-eighties",title:"Tomorrow Night Eighties",url:p+"Tomorrow-Night-Eighties.json"},{name:"twilight",title:"Twilight",url:p+"Twilight.json"},{name:"upstream-sunburst",title:"Upstream Sunburst",url:p+"Upstream Sunburst.json"},{name:"vibrant-ink",title:"Vibrant Ink",url:p+"Vibrant Ink.json"},{name:"vs",title:"VS"},{name:"vs-dark",title:"VS Dark"},{name:"xcode-default",title:"Xcode Default",url:p+"Xcode_default.json"},{name:"zenburnesque",title:"Zenburnesque",url:p+"Zenburnesque.json"}],Fe=[{name:"custom-vs-light",theme:{base:"vs",inherit:!0,rules:[{token:"comment",fontStyle:"italic"}],colors:{}}},{name:"custom-vs-dark",theme:{base:"vs-dark",inherit:!0,rules:[{token:"comment",fontStyle:"italic"}],colors:{}}},{name:"monochrome",theme:{base:"vs",inherit:!1,rules:[],colors:{"editor.foreground":"#24292e","editorBracketHighlight.foreground1":"#24292e","editorBracketHighlight.foreground2":"#24292e","editorBracketHighlight.foreground3":"#24292e","editorBracketHighlight.foreground4":"#24292e","editorBracketHighlight.unexpectedBracket.foreground":"#24292e"}}},{name:"monochrome-dark",theme:{base:"vs-dark",inherit:!1,rules:[],colors:{"editor.foreground":"#e2e2e3","editor.background":"#24292e","editorBracketHighlight.foreground1":"#e2e2e3","editorBracketHighlight.foreground2":"#e2e2e3","editorBracketHighlight.foreground3":"#e2e2e3","editorBracketHighlight.foreground4":"#e2e2e3","editorBracketHighlight.unexpectedBracket.foreground":"#e2e2e3"}}}];var Pt=/^\/\/\s?@(\w+)$/,Dt=/^\/\/\s?@(\w+):\s?(.+)$/,Je=t=>{let o=new Map;if(t)for(let n of t)o.set(n.name.toLowerCase(),n);return n=>{let s=n.split(`
|
|
`),c={};return s.forEach(i=>{let l,y=i.trim();(l=Pt.exec(y))?o.has(l[1].toLowerCase())&&(c[l[1]]=!0,Ve(l[1],"true",c,o)):(l=Dt.exec(y))&&o.has(l[1].toLowerCase())&&Ve(l[1],l[2],c,o)}),c}};function Ve(t,o,n,s){let c=s.get(t.toLowerCase());if(c)switch(c.type){case"number":case"string":case"boolean":n[c.name]=_e(o,c.type);break;case"list":let i=c.element.type,l=o.split(",");typeof i=="string"?n[c.name]=l.map(f=>_e(f,i)):n[c.name]=l.map(f=>ze(c.name,f,i)).filter(Boolean);break;default:let y=c.type;n[c.name]=ze(c.name,o,y)}}function _e(t,o){switch(o){case"number":return+t;case"string":return t;case"boolean":return t.toLowerCase()==="true"||t.length===0}}function ze(t,o,n){return n.get(o.toLowerCase())}var Ke=t=>(o,n,s)=>{let c=[],i=o.getValueInRange({startLineNumber:n.lineNumber,startColumn:0,endLineNumber:n.lineNumber,endColumn:n.column});if(!i.startsWith("//"))return{suggestions:[]};let l=i.replace(" ","").split(" ");if(l.length!==2)return{suggestions:[]};let y=l[1];if(y.startsWith("-"))return{suggestions:[{label:"---cut---",kind:14,detail:"Twoslash split output",insertText:"---cut---".replace(y,"")}]};if(!y.startsWith("@"))return{suggestions:[]};let f=["noErrors","errors","showEmit","showEmittedFile","noStaticSemanticInfo","emit","noErrorValidation","filename"],I=(t||[]).map(w=>w.name);return f.concat(I).forEach(w=>{w.startsWith(y.slice(1))&&c.push({label:w,kind:14,detail:"Twoslash comment",insertText:w})}),{suggestions:c}};var ee,Ge=async({isJSLang:t,editor:o,monaco:n,compilerOptions:s})=>{let c=t?"javascript":"typescript",i=t?n.languages.typescript.getJavaScriptWorker:n.languages.typescript.getTypeScriptWorker,l=t?n.languages.typescript.javascriptDefaults:n.languages.typescript.typescriptDefaults,y=o.getModel();ee=ee||await window.compiler.typescriptFeatures({feature:"getOptionDeclarations"}),window.isTwoslashCompletionsRegistered||(["javascript","typescript"].forEach(E=>{n.languages.registerCompletionItemProvider(E,{triggerCharacters:["@","/","-"],provideCompletionItems:Ke(ee)})}),window.isTwoslashCompletionsRegistered=!0);let f=x=>{let E=Object.keys(x);E.length&&(E.forEach(A=>{s[A]===x[A]&&delete x[A]}),Object.keys(x).length&&(s={...s,...x},l.setCompilerOptions(s)))},I=Je(ee),w=()=>{let x=o.getModel()?.getValue();if(!x)return;let E=I(x);f(E)};w();let b=async()=>y?(await i())(y.uri):void 0,te=()=>({provideInlayHints:async(E,A,K)=>{let oe=E.getValue(),L=/^\s*\/\/\s*\^\?$/gm,P,D=[],H=await b();if(!H||E.isDisposed())return{hints:[],dispose:()=>{}};for(;(P=L.exec(oe))!==null;){if(K.isCancellationRequested||E.isDisposed())return{hints:[],dispose:()=>{}};let R=P.index+P[0].length-1,$=E.getPositionAt(R),ne=new n.Position($.lineNumber-1,$.column),G=E.getOffsetAt(ne),N=await H.getQuickInfoAtPosition("file://"+E.uri.path,G);if(!N||!N.displayParts)continue;let T=N.displayParts.map(v=>v.text).join("").replace(/\\n/g,"").replace(/ /g,"");T.length>120&&(T=T.slice(0,119)+"...");let Z={kind:0,position:new n.Position($.lineNumber,$.column+1),label:T,paddingLeft:!0};D.push(Z)}return{hints:D,dispose:()=>{}}}});window.inlayHintRegistered=window.inlayHintRegistered||new Set,window.inlayHintRegistered.has(c)||(n.languages.registerInlayHintsProvider(c,te()),window.inlayHintRegistered.add(c),o.getModel()?.onDidChangeContent(w))};var Ze=!1,k={},m,Xe=new Set,z,W=[],J,Qe=!1,O={},Co=async t=>{let{container:o,baseUrl:n,readonly:s,theme:c,editorTheme:i,isEmbed:l,getLanguageExtension:y,mapLanguage:f,getFormatterConfig:I,getFontFamily:w}=t,b=t.language;if(!o)throw new Error("editor container not found");let te=()=>import(Re+"monaco.js"),x,E=c,A=i,K=e=>({fontFamily:w(e.fontFamily),fontSize:e.fontSize||(l?12:14),insertSpaces:!e.useTabs,detectIndentation:!1,tabSize:e.tabSize,lineNumbers:e.lineNumbers==="relative"?"relative":e.lineNumbers?"on":"off",wordWrap:e.wordWrap?"on":"off",autoClosingBrackets:e.closeBrackets?"always":"never",autoClosingQuotes:e.closeBrackets?"always":"never",autoClosingDelete:e.closeBrackets?"always":"never"}),oe=K(t),L=e=>e==="livescript"?"coffeescript":["rescript","reason","ocaml"].includes(e)?"csharp":e.startsWith("vue")?"vue":["svelte","malina","riot"].includes(e)?"razor":f(e);try{window.monaco=window.monaco||(await te()).monaco,m=window.monaco}catch{throw new Error("Failed to load monaco editor")}Fe.forEach(e=>m.editor.defineTheme(e.name,e.theme));let P=async(e,r)=>{let a=Ne({editor:"monaco",editorTheme:r,theme:e,editorThemes:ue.map(g=>g.name)}),d=a==="vs"?"custom-vs-light":a==="vs-dark"?"custom-vs-dark":a||"custom-vs-"+e;if(Xe.has(d))return d;let h=ue.find(g=>g.name===d);return h?.url&&await fetch(h.url).then(g=>g.json()).then(g=>{m.editor.defineTheme(d,g),Xe.add(d)}),d},D=(e,r)=>{P(e,r).then(a=>{m.editor.setTheme(O[a]??a),E=e,A=r})},H=navigator&&/android/i.test(navigator.userAgent),R={theme:await P(c,i),fontLigatures:!0,formatOnType:!1,lineNumbersMinChars:3,minimap:{enabled:!1},scrollbar:{useShadows:!1},mouseWheelZoom:!1,automaticLayout:!0,readOnly:s,fixedOverflowWidgets:!0,lightbulb:{enabled:"on"},quickSuggestions:{other:!H,comments:!H,strings:!H},acceptSuggestionOnCommitCharacter:!H,acceptSuggestionOnEnter:H?"off":"on",inlayHints:{enabled:"on"}},$={...R,scrollBeyondLastLine:!1,contextmenu:!1},ne={...R,scrollBeyondLastLine:!1},G={...R,glyphMargin:!0,folding:!1,lineDecorationsWidth:0,lineNumbersMinChars:0,scrollbar:{vertical:"auto"},scrollBeyondLastLine:!1,contextmenu:!1},N={...G},T=t.editorId,Z=T==="console"?G:T==="compiled"?ne:T==="embed"?N:t.mode==="codeblock"?$:R,v=je({...oe,...Z}),Ye=()=>{let r=["javascript","jsx","react","flow","solid","react-native"].includes(b);if(!["script","tests","editorSettings"].includes(T)||!["javascript","typescript"].includes(L(b)))return;let a=me(b);m.languages.typescript.typescriptDefaults.setCompilerOptions(a),m.languages.typescript.javascriptDefaults.setCompilerOptions(a);let d={noSemanticValidation:b==="flow",diagnosticCodesToIgnore:[2354]};m.languages.typescript.typescriptDefaults.setDiagnosticsOptions(d),m.languages.typescript.javascriptDefaults.setDiagnosticsOptions(d),Ge({isJSLang:r,editor:u,monaco:m,compilerOptions:a})},re=[],et=()=>{re.forEach(e=>u.getModel()?.onDidChangeContent(e))},tt={astro:n+"monaco-lang-astro.f30e7d04fcebf9df1d1428cecdca96a0.js",clio:n+"monaco-lang-clio.ee3a53f8e10786f6ab567382a5cdde30.js",imba:n+"monaco-lang-imba.ea949da9285ec36b5d1be2adfa54307a.js",wat:n+"monaco-lang-wat.5cbc6437814cc38898ad90fdc5566503.js"},ot=async()=>{if(Qe)return;Qe=!0;let{registerVue:e,registerHighlighter:r}=await import(Oe),a={...me("vue"),jsx:"preserve"};await e({editor:u,monaco:m,tsCompilerOptions:a,silent:!0}),O=r(m),O["custom-vs-light"]=O.vs,O["custom-vs-dark"]=O["vs-dark"],D(E,A)},de=async e=>{if(L(e)==="vue"){await ot();return}let r=tt[e];if(r&&!m.languages.getLanguages().find(a=>a.id===e)){let a=(await import(r)).default;m.languages.register({id:e}),a.config&&m.languages.setLanguageConfiguration(e,a.config),a.tokens&&m.languages.setMonarchTokensProvider(e,a.tokens)}},ge="",se=(e,r,a)=>{let d=ke(),h=y(a),g=L(a)==="typescript"&&!h?.endsWith("ts")&&!h?.endsWith("tsx")?h+".tsx":h;ge=`file:///${T}.${d}.${g}`;let S=e.getModel(),M=m.editor.createModel(r||"",L(a),m.Uri.parse(ge));e.setModel(M),setTimeout(()=>S?.dispose(),1e3),et(),Ye()},u=m.editor.create(o,{...v,language:b.startsWith("vue")?"html":L(b)});se(u,t.value,b.startsWith("vue")?"html":b),de(b),b.startsWith("vue")&&setTimeout(()=>{be(b)},50);let he=(e,r,a)=>{let d=m.editor.getModel(a);return d?(d.setValue(e),d):m.editor.createModel(e,r,a)};["markup","style","script","tests"].includes(T)&&W.push(u),v.theme==="vs-light"&&(o.style.backgroundColor="#fff"),(v.theme?.startsWith("http")||v.theme?.startsWith("./"))&&fetch(v.theme).then(e=>e.json()).then(e=>{m.editor.defineTheme("theme",e),m.editor.setTheme("theme"),o.style.backgroundColor=e.colors["editor.background"]});let nt=()=>T,rt=()=>u.getValue(),fe=(e="")=>{u.getModel()?.setValue(e)},F=[],X=e=>!e.filename.startsWith("/node_modules/"),st=(e,r)=>{let a=e.content,d="file://"+e.filename,h=F.find(g=>g.filename===e.filename);if(h){if(X(e)&&(h.libJs.dispose(),h.libJs=m.languages.typescript.javascriptDefaults.addExtraLib(a,d)),!r)return;h.libJs?.dispose(),h.libTs?.dispose()}F.push({editorId:T,filename:e.filename,libJs:m.languages.typescript.javascriptDefaults.addExtraLib(a,d),libTs:X(e)?{dispose:()=>{}}:m.languages.typescript.typescriptDefaults.addExtraLib(a,d)})},xe;(()=>{if(T!=="tests")return;let e="javascript",r=W.find(d=>{let h=d.getModel()?.getLanguageId();return e=h||"javascript",["javascript","typescript"].includes(h)});if(!r)return;let a=e==="typescript"?"tsx":"jsx";xe=he(r.getValue(),e,m.Uri.parse("script."+a))})(),(()=>{if(T!=="script")return;he(`
|
|
declare module 'https://*';
|
|
declare module 'data:*';
|
|
declare module './*';
|
|
`,void 0,m.Uri.parse("file:///declarations.d.ts"))})();let ye=(e=!0)=>{xe?.dispose(),T!=="tests"&&(F.filter(r=>r.editorId===T).filter(r=>e?!0:X(r)).forEach(r=>{r.libJs.dispose(),r.libTs.dispose()}),F=F.filter(r=>r.editorId!==T).filter(r=>e?!1:!X(r)))},it=()=>b,be=(e,r)=>{b=e,ye(!1);let a=r??u.getValue();L(e)==="vue"?fe(a):se(u,a,b),de(e).then(()=>{L(e)==="vue"&&se(u,u.getValue(),b)})},at=()=>u.focus(),ct=()=>u.layout(),lt=e=>{re.push(e),u.getModel()?.onDidChangeContent(e)},pt={CtrlEnter:m.KeyMod.CtrlCmd|m.KeyCode.Enter,ShiftEnter:m.KeyMod.Shift|m.KeyCode.Enter,Enter:m.KeyCode.Enter,UpArrow:m.KeyCode.UpArrow,DownArrow:m.KeyCode.DownArrow,ShiftAltF:m.KeyMod.Shift|m.KeyMod.Alt|m.KeyCode.KeyF},mt=(e,r,a)=>{u.addAction({id:e,label:e,keybindings:[r],precondition:"!suggestWidgetVisible && !markersNavigationVisible && !findWidgetVisible",run:a})},Te=async e=>{let r=Ee(),a=document.querySelector(`#editor-status [data-status="${t.editorId}"]`),d=g=>{r&&(r.textContent=g)},h=g=>{a&&(a.textContent=g)};if(!e){x?.dispose(),x=void 0,h(""),d("");return}if(e==="vim"){if(x?.mode==="vim")return;x?.mode==="emacs"&&(x.dispose(),h(""));let g=await Q(We,"MonacoVim"),S=a?.innerHTML!==""?void 0:a;x=g.initVimMode(u,S),x.mode="vim",d("Vim")}if(e==="emacs"){if(x?.mode==="emacs")return;x?.mode==="vim"&&(x.dispose(),h(""));let g=await Q($e,"MonacoEmacs");x=new g.EmacsExtension(u),h(""),x.onDidMarkChange(function(S){h(S?"Mark Set!":"Mark Unset")}),x.onDidChangeKey(function(S){h(S)}),x.start(),x.mode="emacs",d("Emacs")}};Te(t.editorMode);let ut=e=>{let r=u.getModel();!e||!r||m.languages.registerDocumentFormattingEditProvider(L(b),{provideDocumentFormattingEdits:async()=>{let a=u;if(u.getModel()||(a=W.find(g=>g.getModel()?.getLanguageId()===L(b))||u),r=a.getModel(),!r)return[];let d=a.getValue()||"",h=await e(d,0,I());return[{range:r.getFullModelRange(),text:h.formatted}]}})},dt=async()=>u.getAction("editor.action.formatDocument")?.run(),gt=e=>{!e&&!window.emmetMonaco||Q(De,"emmetMonaco").then(r=>{e?(!k.html||k.disabled)&&(k.html=r.emmetHTML(m,["html","php","astro","markdown","mdx"]),k.css=r.emmetCSS(m,["css","scss","less"]),k.jsx=r.emmetJSX(m,["javascript","typescript","jsx","tsx"]),k.disabled=!1):(k.html?.(),k.css?.(),k.jsx?.(),k.disabled=!0)})},ht=e=>{if(!e){J?.dispose(),J=void 0;return}J||(J=!0,import(B+"tailwindcss/monaco-tailwindcss.js").then(({configureMonacoTailwindcss:r,tailwindcssData:a})=>{m.languages.css.cssDefaults.setOptions({data:{dataProviders:{tailwindcssData:a}}}),J=r(m)}))},ft=e=>{v={...K(e),...Z},gt(e.emmet),Te(e.editorMode),u.updateOptions(v),D(e.theme,e.editorTheme),Lt(e.enableAI)},xt=()=>{u.getModel()?.undo?.()},yt=()=>{u.getModel()?.redo?.()},bt=()=>{let e=u.getPosition();return{lineNumber:e?.lineNumber??1,column:e?.column??1}},Tt=e=>{let r={lineNumber:e.lineNumber,column:e.column??1};u.setPosition(r),setTimeout(()=>u.revealPositionInCenter(r,0),50)},Et=async()=>{let e=u.getModel();if(!e)return;let r=/\/\/#region[\s\S]*?\/\/#endregion/g,a;for(;(a=r.exec(e.getValue()))!==null;){let d=e.getPositionAt(a.index).lineNumber,h=e.getPositionAt(a.index+a[0].length).lineNumber;u.setSelection(new m.Selection(d,1,h+1,1)),await u.getAction("editor.createFoldingRangeFromSelection")?.run()}},Mt=async e=>{for(let r of e){let a=r.from??0,d=r.to??u.getModel().getLineCount();a<0||d<0||a>d||(u.setSelection(new m.Selection(a,1,d+1,1)),await u.getAction("editor.createFoldingRangeFromSelection")?.run())}},Lt=e=>{if(!e){z?.dispose(),z=void 0;return}z||(z={dispose:()=>"loading..."},import(Pe).then(r=>{z=r.registerCodeiumProvider(m,{getEditors:()=>W})}))},St=()=>{W=W.filter(e=>e!==u),x?.dispose(),re.length=0,ye(!0),u.getModel()?.dispose(),u.dispose(),o.innerHTML=""};window.addEventListener("unhandledrejection",function(e){e.reason&&e.reason.name==="Canceled"&&e.preventDefault()});let wt=e=>{let r=["html","markdown","javascript","typescript"],a=u.getModel();if(!a||!r.includes(L(b))||L(b)==="typescript"&&!pe.includes(b)||v.autoClosingBrackets==="never")return;let d=h=>["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","circle","ellipse","line","path","polygon","polyline","rect","stop","use"].includes(h);if(e.browserEvent.key===">"){let h=u.getSelections()||[],g=[],S=[];for(let M of h){S.push(new m.Selection(M.selectionStartLineNumber,M.selectionStartColumn+1,M.endLineNumber,M.endColumn+1));let j=a.getValueInRange({startLineNumber:1,startColumn:1,endLineNumber:M.endLineNumber,endColumn:M.endColumn}).match(/<([\w-]+)(?![^>]*\/>)[^>]*$/);if(!j)continue;let[ie,V]=j;d(V)||ie.trim().endsWith("/")||g.push({range:{startLineNumber:M.endLineNumber,startColumn:M.endColumn+1,endLineNumber:M.endLineNumber,endColumn:M.endColumn+1},text:`</${V}>`})}setTimeout(()=>{u.executeEdits(a.getValue(),g,S)},0)}};return u.onKeyDown(wt),Ze||(()=>{let e=new Map,r={provideHover(a,d){let h=a.getLineContent(d.lineNumber),g=He(h,!0)[0];if(!g||g.startsWith("https://")||g.startsWith("http://")||g.startsWith(".")||g.startsWith("data:")||g.startsWith("blob:"))return;let S=g.split("/"),M=S[0].startsWith("@")?2:1;return g=S.slice(0,M).join("/"),(async()=>{let C;if(e.has(g))C=e.get(g);else{if(C=await Be.getPkgInfo(g),"error"in C)return;e.set(g,C)}if(!C||"error"in C)return;let{name:j,description:ie="",repo:V=""}=C;return{contents:[{value:`## [${j}](https://www.npmjs.com/package/${j})
|
|
${ie}
|
|
|
|
|
|
${V?`[GitHub](${V}) |`:""} [Skypack](https://skypack.dev/view/${j}) | [jsDelivr](https://www.jsdelivr.com/package/npm/${j}) | [Unpkg](https://unpkg.com/browse/${j}/) | [Snyk](https://snyk.io/advisor/npm-package/${j}) | [Bundlephobia](https://bundlephobia.com/package/${j})
|
|
|
|
Docs: [Importing modules](${new URL("/docs/",location.href).href}features/module-resolution)`}]}})()}};m.languages.registerHoverProvider("javascript",r),m.languages.registerHoverProvider("typescript",r),m.languages.registerHoverProvider("html",r)})(),Ze=!0,{getValue:rt,setValue:fe,getLanguage:it,setLanguage:be,getEditorId:nt,focus:at,getPosition:bt,setPosition:Tt,foldRegions:Et,foldLines:Mt,layout:ct,addTypes:st,changeSettings:ft,configureTailwindcss:ht,onContentChanged:lt,keyCodes:pt,addKeyBinding:mt,registerFormatter:ut,format:dt,isReadonly:s,setTheme:D,undo:xt,redo:yt,destroy:St,monaco:u}};export{Co as createEditor};
|