@rr0/ufoathome 0.100.0 → 0.100.1

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.
@@ -20,4 +20,4 @@ let yn=[],Wo=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,
20
20
  constructor(\${params}) {
21
21
  \${}
22
22
  }
23
- }`,{label:"class",detail:"definition",type:"keyword"}),pe('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),pe('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],jm=pO.concat([pe("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),pe("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),pe("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Ao=new lh,gO=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function li(n){return(e,t)=>{let i=e.node.getChild("VariableDefinition");return i&&t(i,n),!0}}const Ym=["FunctionDeclaration"],zm={FunctionDeclaration:li("function"),ClassDeclaration:li("class"),ClassExpression:()=>!0,EnumDeclaration:li("constant"),TypeAliasDeclaration:li("type"),NamespaceDeclaration:li("namespace"),VariableDefinition(n,e){n.matchContext(Ym)||e(n,"variable")},TypeDefinition(n,e){e(n,"type")},__proto__:null};function mO(n,e){let t=Ao.get(e);if(t)return t;let i=[],r=!0;function s(l,o){let a=n.sliceString(l.from,l.to);i.push({label:a,type:o})}return e.cursor(_.IncludeAnonymous).iterate(l=>{if(r)r=!1;else if(l.name){let o=zm[l.name];if(o&&o(l,s)||gO.has(l.name))return!1}else if(l.to-l.from>8192){for(let o of mO(n,l.node))i.push(o);return!1}}),Ao.set(e,i),i}const Mo=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,QO=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function _m(n){let e=le(n.state).resolveInner(n.pos,-1);if(QO.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Mo.test(n.state.sliceDoc(e.from,e.to));if(!t&&!n.explicit)return null;let i=[];for(let r=e;r;r=r.parent)gO.has(r.name)&&(i=i.concat(mO(n.state.doc,r)));return{options:i,from:t?e.from:n.pos,validFor:Mo}}const Ue=Nt.define({name:"javascript",parser:Qm.configure({props:[Wr.add({IfStatement:rr({except:/^\s*({|else\b)/}),TryStatement:rr({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Du,SwitchBody:n=>{let e=n.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return n.baseIndent+(t?0:i?1:2)*n.unit},Block:Eu({closing:"}"}),ArrowFunction:n=>n.baseIndent+n.unit,"TemplateString BlockComment":()=>null,"Statement Property":rr({except:/^\s*{/}),JSXElement(n){let e=/^\s*<\//.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},JSXEscape(n){let e=/\s*\}/.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},"JSXOpenTag JSXSelfClosingTag"(n){return n.column(n.node.from)+n.unit}}),js.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":ph,BlockComment(n){return{from:n.from+2,to:n.to-2}},JSXElement(n){let e=n.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=n.lastChild;return{from:e.to,to:t.type.isError?n.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(n){var e;let t=(e=n.firstChild)===null||e===void 0?void 0:e.nextSibling,i=n.lastChild;return!t||t.type.isError?null:{from:t.to,to:i.type.isError?n.to:i.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),SO={test:n=>/^JSX/.test(n.name),facet:Oh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},yO=Ue.configure({dialect:"ts"},"typescript"),$O=Ue.configure({dialect:"jsx",props:[Rs.add(n=>n.isTop?[SO]:void 0)]}),bO=Ue.configure({dialect:"jsx ts",props:[Rs.add(n=>n.isTop?[SO]:void 0)]},"typescript");let xO=n=>({label:n,type:"keyword"});const wO="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(xO),Wm=wO.concat(["declare","implements","private","protected","public"].map(xO));function Vm(n={}){let e=n.jsx?n.typescript?bO:$O:n.typescript?yO:Ue,t=n.typescript?jm.concat(Wm):pO.concat(wO);return new As(e,[Ue.data.of({autocomplete:$m(QO,ym(t))}),Ue.data.of({autocomplete:_m}),n.jsx?Dm:[]])}function qm(n){for(;;){if(n.name=="JSXOpenTag"||n.name=="JSXSelfClosingTag"||n.name=="JSXFragmentTag")return n;if(n.name=="JSXEscape"||!n.parent)return null;n=n.parent}}function jo(n,e,t=n.length){for(let i=e?.firstChild;i;i=i.nextSibling)if(i.name=="JSXIdentifier"||i.name=="JSXBuiltin"||i.name=="JSXNamespacedName"||i.name=="JSXMemberExpression")return n.sliceString(i.from,Math.min(i.to,t));return""}const Em=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Dm=T.inputHandler.of((n,e,t,i,r)=>{if((Em?n.composing:n.compositionStarted)||n.state.readOnly||e!=t||i!=">"&&i!="/"||!Ue.isActiveAt(n.state,e,-1))return!1;let s=r(),{state:l}=s,o=l.changeByRange(a=>{var h;let{head:O}=a,c=le(l).resolveInner(O-1,-1),f;if(c.name=="JSXStartTag"&&(c=c.parent),!(l.doc.sliceString(O-1,O)!=i||c.name=="JSXAttributeValue"&&c.to>O)){if(i==">"&&c.name=="JSXFragmentTag")return{range:a,changes:{from:O,insert:"</>"}};if(i=="/"&&c.name=="JSXStartCloseTag"){let u=c.parent,d=u.parent;if(d&&u.from==O-2&&((f=jo(l.doc,d.firstChild,O))||((h=d.firstChild)===null||h===void 0?void 0:h.name)=="JSXFragmentTag")){let p=`${f}>`;return{range:S.cursor(O+p.length,-1),changes:{from:O,insert:p}}}}else if(i==">"){let u=qm(c);if(u&&u.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(l.doc.sliceString(O,O+2))&&(f=jo(l.doc,u,O)))return{range:a,changes:{from:O,insert:`</${f}>`}}}}return{range:a}});return o.changes.empty?!1:(n.dispatch([s,l.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),oi=["_blank","_self","_top","_parent"],mn=["ascii","utf-8","utf-16","latin1","latin1"],Qn=["get","post","put","delete"],Sn=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],ye=["true","false"],v={},Lm={a:{attrs:{href:null,ping:null,type:null,media:null,target:oi,hreflang:null}},abbr:v,address:v,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:v,aside:v,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:v,base:{attrs:{href:null,target:oi}},bdi:v,bdo:v,blockquote:{attrs:{cite:null}},body:v,br:v,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Sn,formmethod:Qn,formnovalidate:["novalidate"],formtarget:oi,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:v,center:v,cite:v,code:v,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:v,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:v,div:v,dl:v,dt:v,em:v,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:v,figure:v,footer:v,form:{attrs:{action:null,name:null,"accept-charset":mn,autocomplete:["on","off"],enctype:Sn,method:Qn,novalidate:["novalidate"],target:oi}},h1:v,h2:v,h3:v,h4:v,h5:v,h6:v,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:v,hgroup:v,hr:v,html:{attrs:{manifest:null}},i:v,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Sn,formmethod:Qn,formnovalidate:["novalidate"],formtarget:oi,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:v,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:v,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:v,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:mn,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:v,noscript:v,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:v,param:{attrs:{name:null,value:null}},pre:v,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:v,rt:v,ruby:v,samp:v,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:mn}},section:v,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:v,source:{attrs:{src:null,type:null,media:null}},span:v,strong:v,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:v,summary:v,sup:v,table:v,tbody:v,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:v,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:v,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:v,time:{attrs:{datetime:null}},title:v,tr:v,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:v,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:v},PO={accesskey:null,class:null,contenteditable:ye,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:ye,autocorrect:ye,autocapitalize:ye,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":ye,"aria-autocomplete":["inline","list","both","none"],"aria-busy":ye,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":ye,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":ye,"aria-hidden":ye,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":ye,"aria-multiselectable":ye,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":ye,"aria-relevant":null,"aria-required":ye,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},kO="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(n=>"on"+n);for(let n of kO)PO[n]=null;class Zr{constructor(e,t){this.tags={...Lm,...e},this.globalAttrs={...PO,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Zr.default=new Zr;function Tt(n,e,t=n.length){if(!e)return"";let i=e.firstChild,r=i&&i.getChild("TagName");return r?n.sliceString(r.from,Math.min(r.to,t)):""}function Kt(n,e=!1){for(;n;n=n.parent)if(n.name=="Element")if(e)e=!1;else return n;return null}function vO(n,e,t){let i=t.tags[Tt(n,Kt(e))];return i?.children||t.allTags}function Is(n,e){let t=[];for(let i=Kt(e);i&&!i.type.isTop;i=Kt(i.parent)){let r=Tt(n,i);if(r&&i.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=i.firstChild.to)&&t.push(r)}return t}const TO=/^[:\-\.\w\u00b7-\uffff]*$/;function Yo(n,e,t,i,r){let s=/\s*>/.test(n.sliceDoc(r,r+5))?"":">",l=Kt(t,t.name=="StartTag"||t.name=="TagName");return{from:i,to:r,options:vO(n.doc,l,e).map(o=>({label:o,type:"type"})).concat(Is(n.doc,t).map((o,a)=>({label:"/"+o,apply:"/"+o+s,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function zo(n,e,t,i){let r=/\s*>/.test(n.sliceDoc(i,i+5))?"":">";return{from:t,to:i,options:Is(n.doc,e).map((s,l)=>({label:s,apply:s+r,type:"type",boost:99-l})),validFor:TO}}function Bm(n,e,t,i){let r=[],s=0;for(let l of vO(n.doc,t,e))r.push({label:"<"+l,type:"type"});for(let l of Is(n.doc,t))r.push({label:"</"+l+">",type:"type",boost:99-s++});return{from:i,to:i,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Im(n,e,t,i,r){let s=Kt(t),l=s?e.tags[Tt(n.doc,s)]:null,o=l&&l.attrs?Object.keys(l.attrs):[],a=l&&l.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:i,to:r,options:a.map(h=>({label:h,type:"property"})),validFor:TO}}function Gm(n,e,t,i,r){var s;let l=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),o=[],a;if(l){let h=n.sliceDoc(l.from,l.to),O=e.globalAttrs[h];if(!O){let c=Kt(t),f=c?e.tags[Tt(n.doc,c)]:null;O=f?.attrs&&f.attrs[h]}if(O){let c=n.sliceDoc(i,r).toLowerCase(),f='"',u='"';/^['"]/.test(c)?(a=c[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",u=n.sliceDoc(r,r+1)==c[0]?"":c[0],c=c.slice(1),i++):a=/^[^\s<>='"]*$/;for(let d of O)o.push({label:d,apply:f+d+u,type:"constant"})}}return{from:i,to:r,options:o,validFor:a}}function Nm(n,e){let{state:t,pos:i}=e,r=le(t).resolveInner(i,-1),s=r.resolve(i);for(let l=i,o;s==r&&(o=r.childBefore(l));){let a=o.lastChild;if(!a||!a.type.isError||a.from<a.to)break;s=r=o,l=a.from}return r.name=="TagName"?r.parent&&/CloseTag$/.test(r.parent.name)?zo(t,r,r.from,i):Yo(t,n,r,r.from,i):r.name=="StartTag"||r.name=="IncompleteTag"?Yo(t,n,r,i,i):r.name=="StartCloseTag"||r.name=="IncompleteCloseTag"?zo(t,r,i,i):r.name=="OpenTag"||r.name=="SelfClosingTag"||r.name=="AttributeName"?Im(t,n,r,r.name=="AttributeName"?r.from:i,i):r.name=="Is"||r.name=="AttributeValue"||r.name=="UnquotedAttributeValue"?Gm(t,n,r,r.name=="Is"?i:r.from,i):e.explicit&&(s.name=="Element"||s.name=="Text"||s.name=="Document")?Bm(t,n,r,i):null}function Um(n){let{extraTags:e,extraGlobalAttributes:t}=n,i=t||e?new Zr(e,t):Zr.default;return r=>Nm(i,r)}const Fm=Ue.parser.configure({top:"SingleExpression"}),ZO=[{tag:"script",attrs:n=>n.type=="text/typescript"||n.lang=="ts",parser:yO.parser},{tag:"script",attrs:n=>n.type=="text/babel"||n.type=="text/jsx",parser:$O.parser},{tag:"script",attrs:n=>n.type=="text/typescript-jsx",parser:bO.parser},{tag:"script",attrs(n){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(n.type)},parser:Fm},{tag:"script",attrs(n){return!n.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(n.type)},parser:Ue.parser},{tag:"style",attrs(n){return(!n.lang||n.lang=="css")&&(!n.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(n.type))},parser:Tr.parser}],XO=[{name:"style",parser:Tr.parser.configure({top:"Styles"})}].concat(kO.map(n=>({name:n,parser:Ue.parser}))),CO=Nt.define({name:"html",parser:sg.configure({props:[Wr.add({Element(n){let e=/^(\s*)(<\/)?/.exec(n.textAfter);return n.node.to<=n.pos+e[0].length?n.continue():n.lineIndent(n.node.from)+(e[2]?0:n.unit)},"OpenTag CloseTag SelfClosingTag"(n){return n.column(n.node.from)+n.unit},Document(n){if(n.pos+/\s*/.exec(n.textAfter)[0].length<n.node.to)return n.continue();let e=null,t;for(let i=n.node;;){let r=i.lastChild;if(!r||r.name!="Element"||r.to!=i.to)break;e=i=r}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?n.lineIndent(e.from)+n.unit:null}}),js.add({Element(n){let e=n.firstChild,t=n.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:n.to}}}),mh.add({"OpenTag CloseTag":n=>n.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),lr=CO.configure({wrap:lO(ZO,XO)});function Hm(n={}){let e="",t;n.matchClosingTags===!1&&(e="noMatch"),n.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(n.nestedLanguages&&n.nestedLanguages.length||n.nestedAttributes&&n.nestedAttributes.length)&&(t=lO((n.nestedLanguages||[]).concat(ZO),(n.nestedAttributes||[]).concat(XO)));let i=t?CO.configure({wrap:t,dialect:e}):e?lr.configure({dialect:e}):lr;return new As(i,[lr.data.of({autocomplete:Um(n)}),n.autoCloseTags!==!1?Jm:[],Vm().support,qg().support])}const _o=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" "));function Km(n,e,t){for(var i;;){if(((i=e.lastChild)===null||i===void 0?void 0:i.name)!="CloseTag")return!1;let r=e.parent;if(!r||Tt(n,r)!=t)return!0;e=r}}const Jm=T.inputHandler.of((n,e,t,i,r)=>{if(n.composing||n.state.readOnly||e!=t||i!=">"&&i!="/"||!lr.isActiveAt(n.state,e,-1))return!1;let s=r(),{state:l}=s,o=l.changeByRange(a=>{var h;let O=l.doc.sliceString(a.from-1,a.to)==i,{head:c}=a,f=le(l).resolveInner(c,-1),u;if(O&&i==">"&&f.name=="EndTag"){let d=f.parent;if((u=Tt(l.doc,d.parent,c))&&!_o.has(u)&&!Km(l.doc,d.parent,u)){let p=c+(l.doc.sliceString(c,c+1)===">"?1:0),g=`</${u}>`;return{range:a,changes:{from:c,to:p,insert:g}}}}else if(O&&i=="/"&&f.name=="IncompleteCloseTag"){let d=f.parent;if(f.from==c-2&&((h=d.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(u=Tt(l.doc,d,c))&&!_o.has(u)){let p=c+(l.doc.sliceString(c,c+1)===">"?1:0),g=`${u}>`;return{range:S.cursor(c+g.length,-1),changes:{from:c,to:p,insert:g}}}}return{range:a}});return o.changes.empty?!1:(n.dispatch([s,l.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});class RO{static COLOURS=Vr.define([{tag:m.tagName,color:"#1a5fb4"},{tag:m.angleBracket,color:"#777"},{tag:m.attributeName,color:"#8a4b00"},{tag:[m.string,m.attributeValue],color:"#1a7f37"}]);view;changing=!1;constructor(e,t,i,r){this.view=new T({parent:e,doc:t,extensions:[su(),hd(),Uf(),vs.of([...up,...Qd]),T.lineWrapping,T.theme({"&":{fontSize:"0.8em",border:"1px solid #ccc",borderRadius:"0.6em"},".cm-scroller":{fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",lineHeight:"1.4"}}),Lu(RO.COLOURS,{fallback:!0}),Hm(),T.contentAttributes.of({"aria-label":r}),T.updateListener.of(s=>{s.docChanged&&!this.changing&&i(s.state.doc.toString())})]})}get text(){return this.view.state.doc.toString()}set text(e){const t=this.view.state.doc.toString();if(e!==t){this.changing=!0;try{this.view.dispatch({changes:{from:0,to:t.length,insert:e}})}finally{this.changing=!1}}}destroy(){this.view.destroy()}}export{RO as ShareCodeEditor};
23
+ }`,{label:"class",detail:"definition",type:"keyword"}),pe('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),pe('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],jm=pO.concat([pe("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),pe("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),pe("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Ao=new lh,gO=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function li(n){return(e,t)=>{let i=e.node.getChild("VariableDefinition");return i&&t(i,n),!0}}const Ym=["FunctionDeclaration"],zm={FunctionDeclaration:li("function"),ClassDeclaration:li("class"),ClassExpression:()=>!0,EnumDeclaration:li("constant"),TypeAliasDeclaration:li("type"),NamespaceDeclaration:li("namespace"),VariableDefinition(n,e){n.matchContext(Ym)||e(n,"variable")},TypeDefinition(n,e){e(n,"type")},__proto__:null};function mO(n,e){let t=Ao.get(e);if(t)return t;let i=[],r=!0;function s(l,o){let a=n.sliceString(l.from,l.to);i.push({label:a,type:o})}return e.cursor(_.IncludeAnonymous).iterate(l=>{if(r)r=!1;else if(l.name){let o=zm[l.name];if(o&&o(l,s)||gO.has(l.name))return!1}else if(l.to-l.from>8192){for(let o of mO(n,l.node))i.push(o);return!1}}),Ao.set(e,i),i}const Mo=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,QO=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function _m(n){let e=le(n.state).resolveInner(n.pos,-1);if(QO.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Mo.test(n.state.sliceDoc(e.from,e.to));if(!t&&!n.explicit)return null;let i=[];for(let r=e;r;r=r.parent)gO.has(r.name)&&(i=i.concat(mO(n.state.doc,r)));return{options:i,from:t?e.from:n.pos,validFor:Mo}}const Ue=Nt.define({name:"javascript",parser:Qm.configure({props:[Wr.add({IfStatement:rr({except:/^\s*({|else\b)/}),TryStatement:rr({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Du,SwitchBody:n=>{let e=n.textAfter,t=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return n.baseIndent+(t?0:i?1:2)*n.unit},Block:Eu({closing:"}"}),ArrowFunction:n=>n.baseIndent+n.unit,"TemplateString BlockComment":()=>null,"Statement Property":rr({except:/^\s*{/}),JSXElement(n){let e=/^\s*<\//.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},JSXEscape(n){let e=/\s*\}/.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},"JSXOpenTag JSXSelfClosingTag"(n){return n.column(n.node.from)+n.unit}}),js.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":ph,BlockComment(n){return{from:n.from+2,to:n.to-2}},JSXElement(n){let e=n.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=n.lastChild;return{from:e.to,to:t.type.isError?n.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(n){var e;let t=(e=n.firstChild)===null||e===void 0?void 0:e.nextSibling,i=n.lastChild;return!t||t.type.isError?null:{from:t.to,to:i.type.isError?n.to:i.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),SO={test:n=>/^JSX/.test(n.name),facet:Oh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},yO=Ue.configure({dialect:"ts"},"typescript"),$O=Ue.configure({dialect:"jsx",props:[Rs.add(n=>n.isTop?[SO]:void 0)]}),bO=Ue.configure({dialect:"jsx ts",props:[Rs.add(n=>n.isTop?[SO]:void 0)]},"typescript");let xO=n=>({label:n,type:"keyword"});const wO="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(xO),Wm=wO.concat(["declare","implements","private","protected","public"].map(xO));function Vm(n={}){let e=n.jsx?n.typescript?bO:$O:n.typescript?yO:Ue,t=n.typescript?jm.concat(Wm):pO.concat(wO);return new As(e,[Ue.data.of({autocomplete:$m(QO,ym(t))}),Ue.data.of({autocomplete:_m}),n.jsx?Dm:[]])}function qm(n){for(;;){if(n.name=="JSXOpenTag"||n.name=="JSXSelfClosingTag"||n.name=="JSXFragmentTag")return n;if(n.name=="JSXEscape"||!n.parent)return null;n=n.parent}}function jo(n,e,t=n.length){for(let i=e?.firstChild;i;i=i.nextSibling)if(i.name=="JSXIdentifier"||i.name=="JSXBuiltin"||i.name=="JSXNamespacedName"||i.name=="JSXMemberExpression")return n.sliceString(i.from,Math.min(i.to,t));return""}const Em=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Dm=T.inputHandler.of((n,e,t,i,r)=>{if((Em?n.composing:n.compositionStarted)||n.state.readOnly||e!=t||i!=">"&&i!="/"||!Ue.isActiveAt(n.state,e,-1))return!1;let s=r(),{state:l}=s,o=l.changeByRange(a=>{var h;let{head:O}=a,c=le(l).resolveInner(O-1,-1),f;if(c.name=="JSXStartTag"&&(c=c.parent),!(l.doc.sliceString(O-1,O)!=i||c.name=="JSXAttributeValue"&&c.to>O)){if(i==">"&&c.name=="JSXFragmentTag")return{range:a,changes:{from:O,insert:"</>"}};if(i=="/"&&c.name=="JSXStartCloseTag"){let u=c.parent,d=u.parent;if(d&&u.from==O-2&&((f=jo(l.doc,d.firstChild,O))||((h=d.firstChild)===null||h===void 0?void 0:h.name)=="JSXFragmentTag")){let p=`${f}>`;return{range:S.cursor(O+p.length,-1),changes:{from:O,insert:p}}}}else if(i==">"){let u=qm(c);if(u&&u.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(l.doc.sliceString(O,O+2))&&(f=jo(l.doc,u,O)))return{range:a,changes:{from:O,insert:`</${f}>`}}}}return{range:a}});return o.changes.empty?!1:(n.dispatch([s,l.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),oi=["_blank","_self","_top","_parent"],mn=["ascii","utf-8","utf-16","latin1","latin1"],Qn=["get","post","put","delete"],Sn=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],ye=["true","false"],v={},Lm={a:{attrs:{href:null,ping:null,type:null,media:null,target:oi,hreflang:null}},abbr:v,address:v,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:v,aside:v,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:v,base:{attrs:{href:null,target:oi}},bdi:v,bdo:v,blockquote:{attrs:{cite:null}},body:v,br:v,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Sn,formmethod:Qn,formnovalidate:["novalidate"],formtarget:oi,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:v,center:v,cite:v,code:v,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:v,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:v,div:v,dl:v,dt:v,em:v,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:v,figure:v,footer:v,form:{attrs:{action:null,name:null,"accept-charset":mn,autocomplete:["on","off"],enctype:Sn,method:Qn,novalidate:["novalidate"],target:oi}},h1:v,h2:v,h3:v,h4:v,h5:v,h6:v,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:v,hgroup:v,hr:v,html:{attrs:{manifest:null}},i:v,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Sn,formmethod:Qn,formnovalidate:["novalidate"],formtarget:oi,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:v,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:v,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:v,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:mn,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:v,noscript:v,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:v,param:{attrs:{name:null,value:null}},pre:v,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:v,rt:v,ruby:v,samp:v,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:mn}},section:v,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:v,source:{attrs:{src:null,type:null,media:null}},span:v,strong:v,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:v,summary:v,sup:v,table:v,tbody:v,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:v,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:v,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:v,time:{attrs:{datetime:null}},title:v,tr:v,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:v,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:v},PO={accesskey:null,class:null,contenteditable:ye,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:ye,autocorrect:ye,autocapitalize:ye,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":ye,"aria-autocomplete":["inline","list","both","none"],"aria-busy":ye,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":ye,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":ye,"aria-hidden":ye,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":ye,"aria-multiselectable":ye,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":ye,"aria-relevant":null,"aria-required":ye,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},kO="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(n=>"on"+n);for(let n of kO)PO[n]=null;class Zr{constructor(e,t){this.tags={...Lm,...e},this.globalAttrs={...PO,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}Zr.default=new Zr;function Tt(n,e,t=n.length){if(!e)return"";let i=e.firstChild,r=i&&i.getChild("TagName");return r?n.sliceString(r.from,Math.min(r.to,t)):""}function Kt(n,e=!1){for(;n;n=n.parent)if(n.name=="Element")if(e)e=!1;else return n;return null}function vO(n,e,t){let i=t.tags[Tt(n,Kt(e))];return i?.children||t.allTags}function Is(n,e){let t=[];for(let i=Kt(e);i&&!i.type.isTop;i=Kt(i.parent)){let r=Tt(n,i);if(r&&i.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=i.firstChild.to)&&t.push(r)}return t}const TO=/^[:\-\.\w\u00b7-\uffff]*$/;function Yo(n,e,t,i,r){let s=/\s*>/.test(n.sliceDoc(r,r+5))?"":">",l=Kt(t,t.name=="StartTag"||t.name=="TagName");return{from:i,to:r,options:vO(n.doc,l,e).map(o=>({label:o,type:"type"})).concat(Is(n.doc,t).map((o,a)=>({label:"/"+o,apply:"/"+o+s,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function zo(n,e,t,i){let r=/\s*>/.test(n.sliceDoc(i,i+5))?"":">";return{from:t,to:i,options:Is(n.doc,e).map((s,l)=>({label:s,apply:s+r,type:"type",boost:99-l})),validFor:TO}}function Bm(n,e,t,i){let r=[],s=0;for(let l of vO(n.doc,t,e))r.push({label:"<"+l,type:"type"});for(let l of Is(n.doc,t))r.push({label:"</"+l+">",type:"type",boost:99-s++});return{from:i,to:i,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Im(n,e,t,i,r){let s=Kt(t),l=s?e.tags[Tt(n.doc,s)]:null,o=l&&l.attrs?Object.keys(l.attrs):[],a=l&&l.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:i,to:r,options:a.map(h=>({label:h,type:"property"})),validFor:TO}}function Gm(n,e,t,i,r){var s;let l=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),o=[],a;if(l){let h=n.sliceDoc(l.from,l.to),O=e.globalAttrs[h];if(!O){let c=Kt(t),f=c?e.tags[Tt(n.doc,c)]:null;O=f?.attrs&&f.attrs[h]}if(O){let c=n.sliceDoc(i,r).toLowerCase(),f='"',u='"';/^['"]/.test(c)?(a=c[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",u=n.sliceDoc(r,r+1)==c[0]?"":c[0],c=c.slice(1),i++):a=/^[^\s<>='"]*$/;for(let d of O)o.push({label:d,apply:f+d+u,type:"constant"})}}return{from:i,to:r,options:o,validFor:a}}function Nm(n,e){let{state:t,pos:i}=e,r=le(t).resolveInner(i,-1),s=r.resolve(i);for(let l=i,o;s==r&&(o=r.childBefore(l));){let a=o.lastChild;if(!a||!a.type.isError||a.from<a.to)break;s=r=o,l=a.from}return r.name=="TagName"?r.parent&&/CloseTag$/.test(r.parent.name)?zo(t,r,r.from,i):Yo(t,n,r,r.from,i):r.name=="StartTag"||r.name=="IncompleteTag"?Yo(t,n,r,i,i):r.name=="StartCloseTag"||r.name=="IncompleteCloseTag"?zo(t,r,i,i):r.name=="OpenTag"||r.name=="SelfClosingTag"||r.name=="AttributeName"?Im(t,n,r,r.name=="AttributeName"?r.from:i,i):r.name=="Is"||r.name=="AttributeValue"||r.name=="UnquotedAttributeValue"?Gm(t,n,r,r.name=="Is"?i:r.from,i):e.explicit&&(s.name=="Element"||s.name=="Text"||s.name=="Document")?Bm(t,n,r,i):null}function Um(n){let{extraTags:e,extraGlobalAttributes:t}=n,i=t||e?new Zr(e,t):Zr.default;return r=>Nm(i,r)}const Fm=Ue.parser.configure({top:"SingleExpression"}),ZO=[{tag:"script",attrs:n=>n.type=="text/typescript"||n.lang=="ts",parser:yO.parser},{tag:"script",attrs:n=>n.type=="text/babel"||n.type=="text/jsx",parser:$O.parser},{tag:"script",attrs:n=>n.type=="text/typescript-jsx",parser:bO.parser},{tag:"script",attrs(n){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(n.type)},parser:Fm},{tag:"script",attrs(n){return!n.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(n.type)},parser:Ue.parser},{tag:"style",attrs(n){return(!n.lang||n.lang=="css")&&(!n.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(n.type))},parser:Tr.parser}],XO=[{name:"style",parser:Tr.parser.configure({top:"Styles"})}].concat(kO.map(n=>({name:n,parser:Ue.parser}))),CO=Nt.define({name:"html",parser:sg.configure({props:[Wr.add({Element(n){let e=/^(\s*)(<\/)?/.exec(n.textAfter);return n.node.to<=n.pos+e[0].length?n.continue():n.lineIndent(n.node.from)+(e[2]?0:n.unit)},"OpenTag CloseTag SelfClosingTag"(n){return n.column(n.node.from)+n.unit},Document(n){if(n.pos+/\s*/.exec(n.textAfter)[0].length<n.node.to)return n.continue();let e=null,t;for(let i=n.node;;){let r=i.lastChild;if(!r||r.name!="Element"||r.to!=i.to)break;e=i=r}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?n.lineIndent(e.from)+n.unit:null}}),js.add({Element(n){let e=n.firstChild,t=n.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:n.to}}}),mh.add({"OpenTag CloseTag":n=>n.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),lr=CO.configure({wrap:lO(ZO,XO)});function Hm(n={}){let e="",t;n.matchClosingTags===!1&&(e="noMatch"),n.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(n.nestedLanguages&&n.nestedLanguages.length||n.nestedAttributes&&n.nestedAttributes.length)&&(t=lO((n.nestedLanguages||[]).concat(ZO),(n.nestedAttributes||[]).concat(XO)));let i=t?CO.configure({wrap:t,dialect:e}):e?lr.configure({dialect:e}):lr;return new As(i,[lr.data.of({autocomplete:Um(n)}),n.autoCloseTags!==!1?Jm:[],Vm().support,qg().support])}const _o=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" "));function Km(n,e,t){for(var i;;){if(((i=e.lastChild)===null||i===void 0?void 0:i.name)!="CloseTag")return!1;let r=e.parent;if(!r||Tt(n,r)!=t)return!0;e=r}}const Jm=T.inputHandler.of((n,e,t,i,r)=>{if(n.composing||n.state.readOnly||e!=t||i!=">"&&i!="/"||!lr.isActiveAt(n.state,e,-1))return!1;let s=r(),{state:l}=s,o=l.changeByRange(a=>{var h;let O=l.doc.sliceString(a.from-1,a.to)==i,{head:c}=a,f=le(l).resolveInner(c,-1),u;if(O&&i==">"&&f.name=="EndTag"){let d=f.parent;if((u=Tt(l.doc,d.parent,c))&&!_o.has(u)&&!Km(l.doc,d.parent,u)){let p=c+(l.doc.sliceString(c,c+1)===">"?1:0),g=`</${u}>`;return{range:a,changes:{from:c,to:p,insert:g}}}}else if(O&&i=="/"&&f.name=="IncompleteCloseTag"){let d=f.parent;if(f.from==c-2&&((h=d.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(u=Tt(l.doc,d,c))&&!_o.has(u)){let p=c+(l.doc.sliceString(c,c+1)===">"?1:0),g=`${u}>`;return{range:S.cursor(c+g.length,-1),changes:{from:c,to:p,insert:g}}}}return{range:a}});return o.changes.empty?!1:(n.dispatch([s,l.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});class RO{static COLOURS=Vr.define([{tag:m.tagName,color:"var(--pop-tag)"},{tag:m.angleBracket,color:"var(--pop-faint)"},{tag:m.attributeName,color:"var(--pop-attr)"},{tag:[m.string,m.attributeValue],color:"var(--pop-string)"}]);view;changing=!1;constructor(e,t,i,r){this.view=new T({parent:e,doc:t,extensions:[su(),hd(),Uf(),vs.of([...up,...Qd]),T.lineWrapping,T.theme({"&":{fontSize:"0.8em",border:"1px solid var(--pop-border)",borderRadius:"0.6em"},".cm-scroller":{fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",lineHeight:"1.4"}}),Lu(RO.COLOURS,{fallback:!0}),Hm(),T.contentAttributes.of({"aria-label":r}),T.updateListener.of(s=>{s.docChanged&&!this.changing&&i(s.state.doc.toString())})]})}get text(){return this.view.state.doc.toString()}set text(e){const t=this.view.state.doc.toString();if(e!==t){this.changing=!0;try{this.view.dispatch({changes:{from:0,to:t.length,insert:e}})}finally{this.changing=!1}}}destroy(){this.view.destroy()}}export{RO as ShareCodeEditor};