| 35 | `?"n":!se||/\s/.test(we)?null:"p";if(se&&!pe&&!Te&&(Te="s"),V&&V!=Te){a<0&&(a=1,H(),i.sticky="after");break}if(Te&&(V=Te),a>0&&!H(!pe))break}var Le=mc(n,i,m,y,!0);return pt(m,Le)&&(Le.hitSide=!0),Le}function Fm(n,i,a,l){var u=n.doc,m=i.left,y;if(l=="page"){var x=Math.min(n.display.wrapper.clientHeight,Pe(n).innerHeight||u(n).documentElement.clientHeight),S=Math.max(x-.5*as(n.display),3);y=(a>0?i.bottom:i.top)+a*S}else l=="line"&&(y=a>0?i.bottom+3:i.top-3);for(var T;T=Nf(n,m,y),!!T.outside;){if(a<0?y<=0:y>=u.height){T.hitSide=!0;break}y+=a*5}return T}var yt=function(n){this.cm=n,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new le,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};yt.prototype.init=function(n){var i=this,a=this,l=a.cm,u=a.div=n.lineDiv;u.contentEditable=!0,ld(u,l.options.spellcheck,l.options.autocorrect,l.options.autocapitalize);function m(x){for(var S=x.target;S;S=S.parentNode){if(S==u)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(S.className))break}return!1}Xe(u,"paste",function(x){!m(x)||Rt(l,x)||$m(x,l)||p<=11&&setTimeout(Qt(l,function(){return i.updateFromDOM()}),20)}),Xe(u,"compositionstart",function(x){i.composing={data:x.data,done:!1}}),Xe(u,"compositionupdate",function(x){i.composing||(i.composing={data:x.data,done:!1})}),Xe(u,"compositionend",function(x){i.composing&&(x.data!=i.composing.data&&i.readFromDOMSoon(),i.composing.done=!0)}),Xe(u,"touchstart",function(){return a.forceCompositionEnd()}),Xe(u,"input",function(){i.composing||i.readFromDOMSoon()});function y(x){if(!(!m(x)||Rt(l,x))){if(l.somethingSelected())kc({lineWise:!1,text:l.getSelections()}),x.type=="cut"&&l.replaceSelection("",null,"cut");else if(l.options.lineWiseCopyCut){var S=Dm(l);kc({lineWise:!0,text:S.text}),x.type=="cut"&&l.operation(function(){l.setSelections(S.ranges,0,Q),l.replaceSelection("",null,"cut")})}else return;if(x.clipboardData){x.clipboardData.clearData();var T=Cr.text.join(` |
| 37 | `);var se=be(Fe(u));Ae(V),setTimeout(function(){l.display.lineSpace.removeChild(H),se.focus(),se==u&&a.showPrimarySelection()},50)}}Xe(u,"copy",y),Xe(u,"cut",y)},yt.prototype.screenReaderLabelChanged=function(n){n?this.div.setAttribute("aria-label",n):this.div.removeAttribute("aria-label")},yt.prototype.prepareSelection=function(){var n=Lg(this.cm,!1);return n.focus=be(Fe(this.div))==this.div,n},yt.prototype.showSelection=function(n,i){!n||!this.cm.display.view.length||((n.focus||i)&&this.showPrimarySelection(),this.showMultipleSelections(n))},yt.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},yt.prototype.showPrimarySelection=function(){var n=this.getSelection(),i=this.cm,a=i.doc.sel.primary(),l=a.from(),u=a.to();if(i.display.viewTo==i.display.viewFrom||l.line>=i.display.viewTo||u.line<i.display.viewFrom){n.removeAllRanges();return}var m=Sc(i,n.anchorNode,n.anchorOffset),y=Sc(i,n.focusNode,n.focusOffset);if(!(m&&!m.bad&&y&&!y.bad&&Ie(is(m,y),l)==0&&Ie(Sn(m,y),u)==0)){var x=i.display.view,S=l.line>=i.display.viewFrom&&Hm(i,l)||{node:x[0].measure.map[2],offset:0},T=u.line<i.display.viewTo&&Hm(i,u);if(!T){var H=x[x.length-1].measure,V=H.maps?H.maps[H.maps.length-1]:H.map;T={node:V[V.length-1],offset:V[V.length-2]-V[V.length-3]}}if(!S||!T){n.removeAllRanges();return}var se=n.rangeCount&&n.getRangeAt(0),te;try{te=B(S.node,S.offset,T.offset,T.node)}catch{}te&&(!s&&i.state.focused?(n.collapse(S.node,S.offset),te.collapsed||(n.removeAllRanges(),n.addRange(te))):(n.removeAllRanges(),n.addRange(te)),se&&n.anchorNode==null?n.addRange(se):s&&this.startGracePeriod()),this.rememberSelection()}},yt.prototype.startGracePeriod=function(){var n=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){n.gracePeriod=!1,n.selectionChanged()&&n.cm.operation(function(){return n.cm.curOp.selectionChanged=!0})},20)},yt.prototype.showMultipleSelections=function(n){C(this.cm.display.cursorDiv,n.cursors),C(this.cm.display.selectionDiv,n.selection)},yt.prototype.rememberSelection=function(){var n=this.getSelection();this.lastAnchorNode=n.anchorNode,this.lastAnchorOffset=n.anchorOffset,this.lastFocusNode=n.focusNode,this.lastFocusOffset=n.focusOffset},yt.prototype.selectionInEditor=function(){var n=this.getSelection();if(!n.rangeCount)return!1;var i=n.getRangeAt(0).commonAncestorContainer;return ce(this.div,i)},yt.prototype.focus=function(){this.cm.options.readOnly!="nocursor"&&((!this.selectionInEditor()||be(Fe(this.div))!=this.div)&&this.showSelection(this.prepareSelection(),!0),this.div.focus())},yt.prototype.blur=function(){this.div.blur()},yt.prototype.getField=function(){return this.div},yt.prototype.supportsTouch=function(){return!0},yt.prototype.receivedFocus=function(){var n=this,i=this;this.selectionInEditor()?setTimeout(function(){return n.pollSelection()},20):Wn(this.cm,function(){return i.cm.curOp.selectionChanged=!0});function a(){i.cm.state.focused&&(i.pollSelection(),i.polling.set(i.cm.options.pollInterval,a))}this.polling.set(this.cm.options.pollInterval,a)},yt.prototype.selectionChanged=function(){var n=this.getSelection();return n.anchorNode!=this.lastAnchorNode||n.anchorOffset!=this.lastAnchorOffset||n.focusNode!=this.lastFocusNode||n.focusOffset!=this.lastFocusOffset},yt.prototype.pollSelection=function(){if(!(this.readDOMTimeout!=null||this.gracePeriod||!this.selectionChanged())){var n=this.getSelection(),i=this.cm;if(I&&b&&this.cm.display.gutterSpecs.length&&LS(n.anchorNode)){this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),this.focus();return}if(!this.composing){this.rememberSelection();var a=Sc(i,n.anchorNode,n.anchorOffset),l=Sc(i,n.focusNode,n.focusOffset);a&&l&&Wn(i,function(){un(i.doc,Fi(a,l),Q),(a.bad||l.bad)&&(i.curOp.selectionChanged=!0)})}}},yt.prototype.pollContent=function(){this.readDOMTimeout!=null&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var n=this.cm,i=n.display,a=n.doc.sel.primary(),l=a.from(),u=a.to();if(l.ch==0&&l.line>n.firstLine()&&(l=fe(l.line-1,qe(n.doc,l.line-1).length)),u.ch==qe(n.doc,u.line).text.length&&u.line<n.lastLine()&&(u=fe(u.line+1,0)),l.line<i.viewFrom||u.line>i.viewTo-1)return!1;var m,y,x;l.line==i.viewFrom||(m=So(n,l.line))==0?(y=A(i.view[0].line),x=i.view[0].node):(y=A(i.view[m].line),x=i.view[m-1].node.nextSibling);var S=So(n,u.line),T,H;if(S==i.view.length-1?(T=i.viewTo-1,H=i.lineDiv.lastChild):(T=A(i.view[S+1].line)-1,H=i.view[S+1].node.previousSibling),!x)return!1;for(var V=n.doc.splitLines(MS(n,x,H,y,T)),se=ii(n.doc,fe(y,0),fe(T,qe(n.doc,T).text.length));V.length>1&&se.length>1;)if(xe(V)==xe(se))V.pop(),se.pop(),T--;else if(V[0]==se[0])V.shift(),se.shift(),y++;else break;for(var te=0,pe=0,we=V[0],Te=se[0],Le=Math.min(we.length,Te.length);te<Le&&we.charCodeAt(te)==Te.charCodeAt(te);)++te;for(var De=xe(V),Me=xe(se),ze=Math.min(De.length-(V.length==1?te:0),Me.length-(se.length==1?te:0));pe<ze&&De.charCodeAt(De.length-pe-1)==Me.charCodeAt(Me.length-pe-1);)++pe;if(V.length==1&&se.length==1&&y==l.line)for(;te&&te>l.ch&&De.charCodeAt(De.length-pe-1)==Me.charCodeAt(Me.length-pe-1);)te--,pe++;V[V.length-1]=De.slice(0,De.length-pe).replace(/^\u200b+/,""),V[0]=V[0].slice(te).replace(/\u200b+$/,"");var Ye=fe(y,te),Ue=fe(T,se.length?xe(se).length-pe:0);if(V.length>1||V[0]||Ie(Ye,Ue))return ms(n.doc,V,Ye,Ue,"+input"),!0},yt.prototype.ensurePolled=function(){this.forceCompositionEnd()},yt.prototype.reset=function(){this.forceCompositionEnd()},yt.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},yt.prototype.readFromDOMSoon=function(){var n=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(n.readDOMTimeout=null,n.composing)if(n.composing.done)n.composing=null;else return;n.updateFromDOM()},80))},yt.prototype.updateFromDOM=function(){var n=this;(this.cm.isReadOnly()||!this.pollContent())&&Wn(this.cm,function(){return _n(n.cm)})},yt.prototype.setUneditable=function(n){n.contentEditable="false"},yt.prototype.onKeyPress=function(n){n.charCode==0||this.composing||(n.preventDefault(),this.cm.isReadOnly()||Qt(this.cm,sd)(this.cm,String.fromCharCode(n.charCode==null?n.keyCode:n.charCode),0))},yt.prototype.readOnlyChanged=function(n){this.div.contentEditable=String(n!="nocursor")},yt.prototype.onContextMenu=function(){},yt.prototype.resetPosition=function(){},yt.prototype.needsContentAttribute=!0;function Hm(n,i){var a=Af(n,i.line);if(!a||a.hidden)return null;var l=qe(n.doc,i.line),u=gg(a,l,i.line),m=lt(l,n.doc.direction),y="left";if(m){var x=Bt(m,i.ch);y=x%2?"right":"left"}var S=yg(u.map,i.ch,y);return S.offset=S.collapse=="right"?S.end:S.start,S}function LS(n){for(var i=n;i;i=i.parentNode)if(/CodeMirror-gutter-wrapper/.test(i.className))return!0;return!1}function xs(n,i){return i&&(n.bad=!0),n}function MS(n,i,a,l,u){var m="",y=!1,x=n.doc.lineSeparator(),S=!1;function T(te){return function(pe){return pe.id==te}}function H(){y&&(m+=x,S&&(m+=x),y=S=!1)}function V(te){te&&(H(),m+=te)}function se(te){if(te.nodeType==1){var pe=te.getAttribute("cm-text");if(pe){V(pe);return}var we=te.getAttribute("cm-marker"),Te;if(we){var Le=n.findMarks(fe(l,0),fe(u+1,0),T(+we));Le.length&&(Te=Le[0].find(0))&&V(ii(n.doc,Te.from,Te.to).join(x));return}if(te.getAttribute("contenteditable")=="false")return;var De=/^(pre|div|p|li|table|br)$/i.test(te.nodeName);if(!/^br$/i.test(te.nodeName)&&te.textContent.length==0)return;De&&H();for(var Me=0;Me<te.childNodes.length;Me++)se(te.childNodes[Me]);/^(pre|p)$/i.test(te.nodeName)&&(S=!0),De&&(y=!0)}else te.nodeType==3&&V(te.nodeValue.replace(/\u200b/g,"").replace(/\u00a0/g," "))}for(;se(i),i!=a;)i=i.nextSibling,S=!1;return m}function Sc(n,i,a){var l;if(i==n.display.lineDiv){if(l=n.display.lineDiv.childNodes[a],!l)return xs(n.clipPos(fe(n.display.viewTo-1)),!0);i=null,a=0}else for(l=i;;l=l.parentNode){if(!l||l==n.display.lineDiv)return null;if(l.parentNode&&l.parentNode==n.display.lineDiv)break}for(var u=0;u<n.display.view.length;u++){var m=n.display.view[u];if(m.node==l)return NS(m,i,a)}}function NS(n,i,a){var l=n.text.firstChild,u=!1;if(!i||!ce(l,i))return xs(fe(A(n.line),0),!0);if(i==l&&(u=!0,i=l.childNodes[a],a=0,!i)){var m=n.rest?xe(n.rest):n.line;return xs(fe(A(m),m.text.length),u)}var y=i.nodeType==3?i:null,x=i;for(!y&&i.childNodes.length==1&&i.firstChild.nodeType==3&&(y=i.firstChild,a&&(a=y.nodeValue.length));x.parentNode!=l;)x=x.parentNode;var S=n.measure,T=S.maps;function H(Te,Le,De){for(var Me=-1;Me<(T?T.length:0);Me++)for(var ze=Me<0?S.map:T[Me],Ye=0;Ye<ze.length;Ye+=3){var Ue=ze[Ye+2];if(Ue==Te||Ue==Le){var st=A(Me<0?n.line:n.rest[Me]),St=ze[Ye]+De;return(De<0||Ue!=Te)&&(St=ze[Ye+(De?1:0)]),fe(st,St)}}}var V=H(y,x,a);if(V)return xs(V,u);for(var se=x.nextSibling,te=y?y.nodeValue.length-a:0;se;se=se.nextSibling){if(V=H(se,se.firstChild,0),V)return xs(fe(V.line,V.ch-te),u);te+=se.textContent.length}for(var pe=x.previousSibling,we=a;pe;pe=pe.previousSibling){if(V=H(pe,pe.firstChild,-1),V)return xs(fe(V.line,V.ch+we),u);we+=pe.textContent.length}}var Wt=function(n){this.cm=n,this.prevInput="",this.pollingFast=!1,this.polling=new le,this.hasSelection=!1,this.composing=null,this.resetting=!1};Wt.prototype.init=function(n){var i=this,a=this,l=this.cm;this.createField(n);var u=this.textarea;n.wrapper.insertBefore(this.wrapper,n.wrapper.firstChild),R&&(u.style.width="0px"),Xe(u,"input",function(){h&&p>=9&&i.hasSelection&&(i.hasSelection=null),a.poll()}),Xe(u,"paste",function(y){Rt(l,y)||$m(y,l)||(l.state.pasteIncoming=+new Date,a.fastPoll())});function m(y){if(!Rt(l,y)){if(l.somethingSelected())kc({lineWise:!1,text:l.getSelections()});else if(l.options.lineWiseCopyCut){var x=Dm(l);kc({lineWise:!0,text:x.text}),y.type=="cut"?l.setSelections(x.ranges,null,Q):(a.prevInput="",u.value=x.text.join(` |
| 38 | `),Ae(u))}else return;y.type=="cut"&&(l.state.cutIncoming=+new Date)}}Xe(u,"cut",m),Xe(u,"copy",m),Xe(n.scroller,"paste",function(y){if(!(li(n,y)||Rt(l,y))){if(!u.dispatchEvent){l.state.pasteIncoming=+new Date,a.focus();return}var x=new Event("paste");x.clipboardData=y.clipboardData,u.dispatchEvent(x)}}),Xe(n.lineSpace,"selectstart",function(y){li(n,y)||cn(y)}),Xe(u,"compositionstart",function(){var y=l.getCursor("from");a.composing&&a.composing.range.clear(),a.composing={start:y,range:l.markText(y,l.getCursor("to"),{className:"CodeMirror-composing"})}}),Xe(u,"compositionend",function(){a.composing&&(a.poll(),a.composing.range.clear(),a.composing=null)})},Wt.prototype.createField=function(n){this.wrapper=zm(),this.textarea=this.wrapper.firstChild;var i=this.cm.options;ld(this.textarea,i.spellcheck,i.autocorrect,i.autocapitalize)},Wt.prototype.screenReaderLabelChanged=function(n){n?this.textarea.setAttribute("aria-label",n):this.textarea.removeAttribute("aria-label")},Wt.prototype.prepareSelection=function(){var n=this.cm,i=n.display,a=n.doc,l=Lg(n);if(n.options.moveInputWithCursor){var u=_r(n,a.sel.primary().head,"div"),m=i.wrapper.getBoundingClientRect(),y=i.lineDiv.getBoundingClientRect();l.teTop=Math.max(0,Math.min(i.wrapper.clientHeight-10,u.top+y.top-m.top)),l.teLeft=Math.max(0,Math.min(i.wrapper.clientWidth-10,u.left+y.left-m.left))}return l},Wt.prototype.showSelection=function(n){var i=this.cm,a=i.display;C(a.cursorDiv,n.cursors),C(a.selectionDiv,n.selection),n.teTop!=null&&(this.wrapper.style.top=n.teTop+"px",this.wrapper.style.left=n.teLeft+"px")},Wt.prototype.reset=function(n){if(!(this.contextMenuPending||this.composing&&n)){var i=this.cm;if(this.resetting=!0,i.somethingSelected()){this.prevInput="";var a=i.getSelection();this.textarea.value=a,i.state.focused&&Ae(this.textarea),h&&p>=9&&(this.hasSelection=a)}else n||(this.prevInput=this.textarea.value="",h&&p>=9&&(this.hasSelection=null));this.resetting=!1}},Wt.prototype.getField=function(){return this.textarea},Wt.prototype.supportsTouch=function(){return!1},Wt.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!_||be(Fe(this.textarea))!=this.textarea))try{this.textarea.focus()}catch{}},Wt.prototype.blur=function(){this.textarea.blur()},Wt.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Wt.prototype.receivedFocus=function(){this.slowPoll()},Wt.prototype.slowPoll=function(){var n=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){n.poll(),n.cm.state.focused&&n.slowPoll()})},Wt.prototype.fastPoll=function(){var n=!1,i=this;i.pollingFast=!0;function a(){var l=i.poll();!l&&!n?(n=!0,i.polling.set(60,a)):(i.pollingFast=!1,i.slowPoll())}i.polling.set(20,a)},Wt.prototype.poll=function(){var n=this,i=this.cm,a=this.textarea,l=this.prevInput;if(this.contextMenuPending||this.resetting||!i.state.focused||Ri(a)&&!l&&!this.composing||i.isReadOnly()||i.options.disableInput||i.state.keySeq)return!1;var u=a.value;if(u==l&&!i.somethingSelected())return!1;if(h&&p>=9&&this.hasSelection===u||$&&/[\uf700-\uf7ff]/.test(u))return i.display.input.reset(),!1;if(i.doc.sel==i.display.selForContextMenu){var m=u.charCodeAt(0);if(m==8203&&!l&&(l=""),m==8666)return this.reset(),this.cm.execCommand("undo")}for(var y=0,x=Math.min(l.length,u.length);y<x&&l.charCodeAt(y)==u.charCodeAt(y);)++y;return Wn(i,function(){sd(i,u.slice(y),l.length-y,null,n.composing?"*compose":null),u.length>1e3||u.indexOf(` |