import{D as Z,e as Y,C as k,W as i,_ as j,S as A,Y as I,q as N,d as U,k as q,a as z}from"./index-Bo-aCpEW.js";const b=1,D=2,B=3,F=4,M=5,J=35,K=36,H=37,L=11,OO=13;function eO(O){return O==45||O==46||O==58||O>=65&&O<=90||O==95||O>=97&&O<=122||O>=161}function tO(O){return O==9||O==10||O==13||O==32}let w=null,x=null,X=0;function v(O,e){let n=O.pos+e;if(x==O&&X==n)return w;for(;tO(O.peek(e));)e++;let t="";for(;;){let a=O.peek(e);if(!eO(a))break;t+=String.fromCharCode(a),e++}return x=O,X=n,w=t||null}function Q(O,e){this.name=O,this.parent=e,this.hash=e?e.hash:0;for(let n=0;n{if(O.next==60){if(O.advance(),O.next==47){O.advance();let n=v(O,0);if(!n)return O.acceptToken(M);if(e.context&&n==e.context.name)return O.acceptToken(D);for(let t=e.context;t;t=t.parent)if(t.name==n)return O.acceptToken(B,-2);O.acceptToken(F)}else if(O.next!=33&&O.next!=63)return O.acceptToken(b)}},{contextual:!0});function C(O,e){return new Y(n=>{let t=0,a=e.charCodeAt(0);O:for(;!(n.next<0);n.advance(),t++)if(n.next==a){for(let r=1;r"),lO=C(K,"?>"),oO=C(H,"]]>"),sO=k({Text:i.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":i.angleBracket,TagName:i.tagName,"MismatchedCloseTag/Tagname":[i.tagName,i.invalid],AttributeName:i.attributeName,AttributeValue:i.attributeValue,Is:i.definitionOperator,"EntityReference CharacterReference":i.character,Comment:i.blockComment,ProcessingInst:i.processingInstruction,DoctypeDecl:i.documentMeta,Cdata:i.special(i.string)}),yO=j.deserialize({version:14,states:",SOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DS'#DSOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C{'#C{O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C|'#C|O$dOrO,59^OOOP,59^,59^OOOS'#C}'#C}O$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6y-E6yOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6z-E6zOOOP1G.x1G.xOOOS-E6{-E6{OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'jO!bO,59eOOOO-E6w-E6wO'xOpO1G.uO'xOpO1G.uOOOP1G.u1G.uO(QOpO7+$fOOOP7+$f7+$fO(YO!bO<d!d;'S%y;'S;=`&_<%lO%yX>iV{WOr%ysv%yw!}%y!}#O?O#O;'S%y;'S;=`&_<%lO%yX?VT{WxPOr%ysv%yw;'S%y;'S;=`&_<%lO%yX?kV{WOr%ysv%yw#W%y#W#X@Q#X;'S%y;'S;=`&_<%lO%yX@VV{WOr%ysv%yw#T%y#T#U@l#U;'S%y;'S;=`&_<%lO%yX@qV{WOr%ysv%yw#h%y#h#iAW#i;'S%y;'S;=`&_<%lO%yXA]V{WOr%ysv%yw#T%y#T#U>d#U;'S%y;'S;=`&_<%lO%yXAwV{WOr%ysv%yw#c%y#c#dB^#d;'S%y;'S;=`&_<%lO%yXBcV{WOr%ysv%yw#V%y#V#WBx#W;'S%y;'S;=`&_<%lO%yXB}V{WOr%ysv%yw#h%y#h#iCd#i;'S%y;'S;=`&_<%lO%yXCiV{WOr%ysv%yw#m%y#m#nDO#n;'S%y;'S;=`&_<%lO%yXDTV{WOr%ysv%yw#d%y#d#eDj#e;'S%y;'S;=`&_<%lO%yXDoV{WOr%ysv%yw#X%y#X#Y9i#Y;'S%y;'S;=`&_<%lO%yXE]T!PP{WOr%ysv%yw;'S%y;'S;=`&_<%lO%yZEuWaQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$n_FhW[UVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$nZGXYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_!`$n!`!aGw!a;'S$n;'S;=`&e<%lO$nZHQW!OQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$nZHqYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_#P$n#P#QIa#Q;'S$n;'S;=`&e<%lO$nZIhYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_!`$n!`!aJW!a;'S$n;'S;=`&e<%lO$nZJaWwQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$n",tokenizers:[aO,rO,lO,oO,0,1,2,3],topRules:{Document:[0,6]},tokenPrec:0});function V(O,e){let n=e&&e.getChild("TagName");return n?O.sliceString(n.from,n.to):""}function _(O,e){let n=e&&e.firstChild;return!n||n.name!="OpenTag"?"":V(O,n)}function iO(O,e,n){let t=e&&e.getChildren("Attribute").find(r=>r.from<=n&&r.to>=n),a=t&&t.getChild("AttributeName");return a?O.sliceString(a.from,a.to):""}function T(O){for(let e=O&&O.parent;e;e=e.parent)if(e.name=="Element")return e;return null}function $O(O,e){var n;let t=z(O).resolveInner(e,-1),a=null;for(let r=t;!a&&r.parent;r=r.parent)(r.name=="OpenTag"||r.name=="CloseTag"||r.name=="SelfClosingTag"||r.name=="MismatchedCloseTag")&&(a=r);if(a&&(a.to>e||a.lastChild.type.isError)){let r=a.parent;if(t.name=="TagName")return a.name=="CloseTag"||a.name=="MismatchedCloseTag"?{type:"closeTag",from:t.from,context:r}:{type:"openTag",from:t.from,context:T(r)};if(t.name=="AttributeName")return{type:"attrName",from:t.from,context:a};if(t.name=="AttributeValue")return{type:"attrValue",from:t.from,context:a};let y=t==a||t.name=="Attribute"?t.childBefore(e):t;return(y==null?void 0:y.name)=="StartTag"?{type:"openTag",from:e,context:T(r)}:(y==null?void 0:y.name)=="StartCloseTag"&&y.to<=e?{type:"closeTag",from:e,context:r}:(y==null?void 0:y.name)=="Is"?{type:"attrValue",from:e,context:a}:y?{type:"attrName",from:e,context:a}:null}else if(t.name=="StartCloseTag")return{type:"closeTag",from:e,context:t.parent};for(;t.parent&&t.to==e&&!(!((n=t.lastChild)===null||n===void 0)&&n.type.isError);)t=t.parent;return t.name=="Element"||t.name=="Text"||t.name=="Document"?{type:"tag",from:e,context:t.name=="Element"?t:T(t)}:null}class cO{constructor(e,n,t){this.attrs=n,this.attrValues=t,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map(a=>({label:a,type:"text"})):[]}}const W=/^[:\-\.\w\u00b7-\uffff]*$/;function E(O){return Object.assign(Object.assign({type:"property"},O.completion||{}),{label:O.name})}function G(O){return typeof O=="string"?{label:`"${O}"`,type:"constant"}:/^"/.test(O.label)?O:Object.assign(Object.assign({},O),{label:`"${O.label}"`})}function pO(O,e){let n=[],t=[],a=Object.create(null);for(let l of e){let $=E(l);n.push($),l.global&&t.push($),l.values&&(a[l.name]=l.values.map(G))}let r=[],y=[],m=Object.create(null);for(let l of O){let $=t,o=a;l.attributes&&($=$.concat(l.attributes.map(c=>typeof c=="string"?n.find(f=>f.label==c)||{label:c,type:"property"}:(c.values&&(o==a&&(o=Object.create(o)),o[c.name]=c.values.map(G)),E(c)))));let g=new cO(l,$,o);m[g.name]=g,r.push(g),l.top&&y.push(g)}y.length||(y=r);for(let l=0;l{var $;let{doc:o}=l.state,g=$O(l.state,l.pos);if(!g||g.type=="tag"&&!l.explicit)return null;let{type:c,from:f,context:S}=g;if(c=="openTag"){let s=y,p=_(o,S);if(p){let u=m[p];s=(u==null?void 0:u.children)||r}return{from:f,options:s.map(u=>u.completion),validFor:W}}else if(c=="closeTag"){let s=_(o,S);return s?{from:f,to:l.pos+(o.sliceString(l.pos,l.pos+1)==">"?1:0),options:[(($=m[s])===null||$===void 0?void 0:$.closeNameCompletion)||{label:s+">",type:"type"}],validFor:W}:null}else if(c=="attrName"){let s=m[V(o,S)];return{from:f,options:(s==null?void 0:s.attrs)||t,validFor:W}}else if(c=="attrValue"){let s=iO(o,S,f);if(!s)return null;let p=m[V(o,S)],u=((p==null?void 0:p.attrValues)||a)[s];return!u||!u.length?null:{from:f,to:l.pos+(o.sliceString(l.pos,l.pos+1)=='"'?1:0),options:u,validFor:/^"[^"]*"?$/}}else if(c=="tag"){let s=_(o,S),p=m[s],u=[],P=S&&S.lastChild;s&&(!P||P.name!="CloseTag"||V(o,P)!=s)&&u.push(p?p.closeCompletion:{label:"",type:"type",boost:2});let h=u.concat(((p==null?void 0:p.children)||(S?r:y)).map(d=>d.openCompletion));if(S&&p!=null&&p.text.length){let d=S.firstChild;d.to>l.pos-20&&!/\S/.test(l.state.sliceDoc(d.to,l.pos))&&(h=h.concat(p.text))}return{from:f,options:h,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const R=A.define({name:"xml",parser:yO.configure({props:[I.add({Element(O){let e=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(e?0:O.unit)},"OpenTag CloseTag SelfClosingTag"(O){return O.column(O.node.from)+O.unit}}),N.add({Element(O){let e=O.firstChild,n=O.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:n.name=="CloseTag"?n.from:O.to}}}),U.add({"OpenTag CloseTag":O=>O.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function SO(O={}){return new q(R,R.data.of({autocomplete:pO(O.elements||[],O.attributes||[])}))}export{pO as completeFromSchema,SO as xml,R as xmlLanguage};