(function(b,a){if(typeof define=="function"&&define.amd){define(["./rangy-core"],b)}else{if(typeof module!="undefined"&&typeof exports=="object"){module.exports=b(require("rangy"))}else{b(a.rangy)}}})(function(a){a.createModule("TextRange",["WrappedSelection"],function(v,aF){var E="undefined";var M="character",j="word";var B=v.dom,ao=v.util;var ac=ao.extend;var s=ao.createOptions;var aD=B.getBody;var n=/^[ \t\f\r\n]+$/;var aq=/^[ \t\f\r]+$/;var aj=/^[\t-\r \u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000]+$/;var R=/^[\t \u00A0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000]+$/;var F=/^[\n-\r\u0085\u2028\u2029]$/;var aw="en";var az=v.Selection.isDirectionBackward;var p=false;var au=false;var am=false;var l=true;(function(){var aM=B.createTestElement(document,"
1
",true);var aO=aM.firstChild;var aN=v.getSelection();aN.collapse(aO.lastChild,2);aN.setStart(aO.firstChild,0);p=(""+aN).length==1;aM.innerHTML="1
";aN.collapse(aM,2);aN.setStart(aM.firstChild,0);au=(""+aN).length==1;aM.innerHTML="1 1
";aN.collapse(aM,2);aN.setStart(aM.firstChild,0);am=(""+aN).length==1;B.removeNode(aM);aN.removeAllRanges()})();function d(aR,aO){var aM=aR.join(""),aU,aP=[];function aQ(aX,aV,aW){aP.push({start:aX,end:aV,isWord:aW})}var aN=0,aT,aS;while((aU=aO.wordRegex.exec(aM))){aT=aU.index;aS=aT+aU[0].length;if(aT>aN){aQ(aN,aT,false)}if(aO.includeTrailingSpace){while(R.test(aR[aS])){++aS}}aQ(aT,aS,true);aN=aS}if(aN0){if(aO.nodeType==3){var aX=aO.data;var aM=aX.charAt(aQ-1);var aV=aU.nodeWrapper.getTextNodeInfo();var aS=aV.spaceRegex;if(aV.collapseSpaces){if(aS.test(aM)){if(aQ>1&&aS.test(aX.charAt(aQ-2))){}else{if(aV.preLine&&aX.charAt(aQ)==="\n"){aN=" ";aR=h}else{aN=" ";aR=z}}}else{aN=aM;aR=S;aW=true}}else{aN=aM;aR=k;aW=true}}else{var aT=aO.childNodes[aQ-1];if(aT&&aT.nodeType==1&&!m(aT)){if(aT.tagName.toLowerCase()=="br"){aN="\n";aU.isBr=true;aR=z;aW=false}else{aU.checkForTrailingSpace=true}}if(!aN){var aP=aO.childNodes[aQ];if(aP&&aP.nodeType==1&&!m(aP)){aU.checkForLeadingSpace=true}}}}aU.prepopulatedChar=true;aU.character=aN;aU.characterType=aR;aU.isCharInvariant=aW}},isDefinitelyNonEmpty:function(){var aM=this.characterType;return aM==S||aM==k},resolveLeadingAndTrailingSpaces:function(){if(!this.prepopulatedChar){this.prepopulateChar()}if(this.checkForTrailingSpace){var aN=this.session.getNodeWrapper(this.node.childNodes[this.offset-1]).getTrailingSpace();if(aN){this.isTrailingSpace=true;this.character=aN;this.characterType=z}this.checkForTrailingSpace=false}if(this.checkForLeadingSpace){var aM=this.session.getNodeWrapper(this.node.childNodes[this.offset]).getLeadingSpace();if(aM){this.isLeadingSpace=true;this.character=aM;this.characterType=z}this.checkForLeadingSpace=false}},getPrecedingUncollapsedPosition:function(aM){var aO=this,aN;while((aO=aO.previousVisible())){aN=aO.getCharacter(aM);if(aN!==""){return aO}}return null},getCharacter:function(aX){this.resolveLeadingAndTrailingSpaces();var aP=this.character,aZ;var aV=T(aX.ignoreCharacters);var aN=(aP!==""&&aV.indexOf(aP)>-1);if(this.isCharInvariant){aZ=aN?"":aP;return aZ}var aT=["character",aX.includeSpaceBeforeBr,aX.includeBlockContentTrailingSpace,aX.includePreLineTrailingSpace,aV].join("_");var aO=this.cache.get(aT);if(aO!==null){return aO}var aQ="";var aY=(this.characterType==z);var aS,aR;var aM=false;var aU=this;function aW(){if(!aM){aR=aU.getPrecedingUncollapsedPosition(aX);aM=true}return aR}if(aY){if(this.type==ay){aQ="\n"}else{if(aP==" "&&(!aW()||aR.isTrailingSpace||aR.character=="\n"||(aR.character==" "&&aR.characterType==z))){}else{if(aP=="\n"&&this.isLeadingSpace){if(aW()&&aR.character!="\n"){aQ="\n"}else{}}else{aS=this.nextUncollapsed();if(aS){if(aS.isBr){this.type=ah}else{if(aS.isTrailingSpace&&aS.character=="\n"){this.type=H}else{if(aS.isLeadingSpace&&aS.character=="\n"){this.type=P}}}if(aS.character=="\n"){if(this.type==ah&&!aX.includeSpaceBeforeBr){}else{if(this.type==P&&!aX.includeSpaceBeforeBlock){}else{if(this.type==H&&aS.isTrailingSpace&&!aX.includeBlockContentTrailingSpace){}else{if(this.type==h&&aS.type==S&&!aX.includePreLineTrailingSpace){}else{if(aP=="\n"){if(aS.isTrailingSpace){if(this.isTrailingSpace){}else{if(this.isBr){aS.type=L;if(aW()&&aR.isLeadingSpace&&!aR.isTrailingSpace&&aR.character=="\n"){aS.character=""}else{aS.type=ay}}}}else{aQ="\n"}}else{if(aP==" "){aQ=" "}else{}}}}}}}else{aQ=aP}}else{}}}}}if(aV.indexOf(aQ)>-1){aQ=""}this.cache.set(aT,aQ);return aQ},equals:function(aM){return !!aM&&this.node===aM.node&&this.offset===aM.offset},inspect:ar,toString:function(){return this.character}};an.prototype=X;ac(X,{next:av("nextPos",function(aT){var aP=aT.nodeWrapper,aO=aT.node,aR=aT.offset,aQ=aP.session;if(!aO){return null}var aM,aN,aS;if(aR==aP.getLength()){aM=aO.parentNode;aN=aM?aP.getNodeIndex()+1:0}else{if(aP.isCharacterDataNode()){aM=aO;aN=aR+1}else{aS=aO.childNodes[aR];if(aQ.getNodeWrapper(aS).containsPositions()){aM=aS;aN=0}else{aM=aO;aN=aR+1}}}return aM?aQ.getPosition(aM,aN):null}),previous:av("previous",function(aT){var aP=aT.nodeWrapper,aO=aT.node,aR=aT.offset,aQ=aP.session;var aM,aN,aS;if(aR==0){aM=aO.parentNode;aN=aM?aP.getNodeIndex():0}else{if(aP.isCharacterDataNode()){aM=aO;aN=aR-1}else{aS=aO.childNodes[aR-1];if(aQ.getNodeWrapper(aS).containsPositions()){aM=aS;aN=B.getNodeLength(aS)}else{aM=aO;aN=aR-1}}}return aM?aQ.getPosition(aM,aN):null}),nextVisible:av("nextVisible",function(aQ){var aN=aQ.next();if(!aN){return null}var aP=aN.nodeWrapper,aO=aN.node;var aM=aN;if(aP.isCollapsed()){aM=aP.session.getPosition(aO.parentNode,aP.getNodeIndex()+1)}return aM}),nextUncollapsed:av("nextUncollapsed",function(aN){var aM=aN;while((aM=aM.nextVisible())){aM.resolveLeadingAndTrailingSpaces();if(aM.character!==""){return aM}}return null}),previousVisible:av("previousVisible",function(aQ){var aO=aQ.previous();if(!aO){return null}var aP=aO.nodeWrapper,aN=aO.node;var aM=aO;if(aP.isCollapsed()){aM=aP.session.getPosition(aN.parentNode,aP.getNodeIndex())}return aM})});var ab=null;var Q=(function(){function aM(aQ){var aP=new N();return{get:function(aT){var aS=aP.get(aT[aQ]);if(aS){for(var aR=0,aU;aU=aS[aR++];){if(aU.node===aT){return aU}}}return null},set:function(aT){var aS=aT.node[aQ];var aR=aP.get(aS)||aP.set(aS,[]);aR.push(aT)}}}var aN=ao.isHostProperty(document.documentElement,"uniqueID");function aO(){this.initCaches()}aO.prototype={initCaches:function(){this.elementCache=aN?(function(){var aP=new N();return{get:function(aQ){return aP.get(aQ.uniqueID)},set:function(aQ){aP.set(aQ.node.uniqueID,aQ)}}})():aM("tagName");this.textNodeCache=aM("data");this.otherNodeCache=aM("nodeName")},getNodeWrapper:function(aP){var aR;switch(aP.nodeType){case 1:aR=this.elementCache;break;case 3:aR=this.textNodeCache;break;default:aR=this.otherNodeCache;break}var aQ=aR.get(aP);if(!aQ){aQ=new aE(aP,this);aR.set(aQ)}return aQ},getPosition:function(aP,aQ){return this.getNodeWrapper(aP).getPosition(aQ)},getRangeBoundaryPosition:function(aQ,aP){var aR=aP?"start":"end";return this.getPosition(aQ[aR+"Container"],aQ[aR+"Offset"])},detach:function(){this.elementCache=this.textNodeCache=this.otherNodeCache=null}};return aO})();function aa(){aH();return(ab=new Q())}function G(){return ab||aa()}function aH(){if(ab){ab.detach()}ab=null}ac(B,{nextNode:aI,previousNode:f});function t(aQ,aU,aM,aT){if(aM){if(aU){if(m(aM.node)){aM=aQ.previousVisible()}}else{if(m(aM.node)){aM=aM.nextVisible()}}}var aR=aQ,aO=false;function aP(){var aV=null;if(aU){aV=aR;if(!aO){aR=aR.previousVisible();aO=!aR||(aM&&aR.equals(aM))}}else{if(!aO){aV=aR=aR.nextVisible();aO=!aR||(aM&&aR.equals(aM))}}if(aO){aR=null}return aV}var aN,aS=false;return{next:function(){if(aS){aS=false;return aN}else{var aW,aV;while((aW=aP())){aV=aW.getCharacter(aT);if(aV){aN=aW;return aW}}return null}},rewind:function(){if(aN){aS=true}else{throw aF.createError("createCharacterIterator: cannot rewind. Only one position can be rewound.")}},dispose:function(){aQ=aM=null}}}var q=Array.prototype.indexOf?function(aM,aN){return aM.indexOf(aN)}:function(aN,aP){for(var aO=0,aM=aN.length;aO0){aV=x(aZ.chars.concat(a0),aS,aW)}return aV.shift()},previousStartToken:function(){var aZ,a0;while(aM.length==1&&!(aZ=aM[0]).isWord&&(a0=aP(false)).length>0){aM=x(a0.reverse().concat(aZ.chars),aS,aW)}return aM.pop()},dispose:function(){aO.dispose();aR.dispose();aV=aM=null}}}function K(aW,aY,aS,aZ,aO){var aR=0,aT,aV=aW,aX,aU,aN=Math.abs(aS),aM;if(aS!==0){var a0=(aS<0);switch(aY){case M:aX=t(aW,a0,null,aZ);while((aT=aX.next())&&aR0)){aN=aM(aO,aY);break}}else{aT=true}}}else{if((aO=aZ.indexOf(aQ))!=-1){aN=aM(aO,aO+aQ.length);break}}}if(aT){aN=aM(aO,aY)}aR.dispose();return aN}function Y(aM){return function(){var aQ=!!ab;var aP=G();var aN=[aP].concat(ao.toArray(arguments));var aO=aM.apply(this,aN);if(!aQ){aH()}return aO}}function aB(aM,aN){return Y(function(aU,aT,aS,aR){if(typeof aS==E){aS=aT;aT=M}aR=ak(aR,ag);var aP=aM;if(aN){aP=(aS>=0);this.collapse(!aP)}var aO=K(aU.getRangeBoundaryPosition(this,aP),aT,aS,aR.characterOptions,aR.wordOptions);var aQ=aO.position;this[aP?"setStart":"setEnd"](aQ.node,aQ.offset);return aO.unitsMoved})}function o(aM){return Y(function(aR,aN){aN=s(aN,aC);var aS;var aO=af(aR,this,aN,!aM);var aP=0;while((aS=aO.next())&&aj.test(aS.character)){++aP}aO.dispose();var aQ=(aP>0);if(aQ){this[aM?"moveStart":"moveEnd"]("character",aM?aP:-aP,{characterOptions:aN})}return aQ})}ac(v.rangePrototype,{moveStart:aB(true,false),moveEnd:aB(false,false),move:aB(true,true),trimStart:o(true),trimEnd:o(false),trim:Y(function(aO,aM){var aP=this.trimStart(aM),aN=this.trimEnd(aM);return aP||aN}),expand:Y(function(aV,aY,aW){var aX=false;aW=ak(aW,at);var aZ=aW.characterOptions;if(!aY){aY=M}if(aY==j){var aP=aW.wordOptions;var aT=aV.getRangeBoundaryPosition(this,true);var aM=aV.getRangeBoundaryPosition(this,false);var aQ=c(aT,aZ,aP);var aS=aQ.nextEndToken();var aU=aS.chars[0].previousVisible();var aN,aO;if(this.collapsed){aN=aS}else{var aR=c(aM,aZ,aP);aN=aR.previousStartToken()}aO=aN.chars[aN.chars.length-1];if(!aU.equals(aT)){this.setStart(aU.node,aU.offset);aX=true}if(aO&&!aO.equals(aM)){this.setEnd(aO.node,aO.offset);aX=true}if(aW.trim){if(aW.trimStart){aX=this.trimStart(aZ)||aX}if(aW.trimEnd){aX=this.trimEnd(aZ)||aX}}return aX}else{return this.moveEnd(M,1,aW)}}),text:Y(function(aN,aM){return this.collapsed?"":ae(aN,this,s(aM,aC)).join("")}),selectCharacters:Y(function(aQ,aM,aR,aP,aN){var aO={characterOptions:aN};if(!aM){aM=aD(this.getDocument())}this.selectNodeContents(aM);this.collapse(true);this.moveStart("character",aR,aO);this.collapse(true);this.moveEnd("character",aP-aR,aO)}),toCharacterRange:Y(function(aP,aN,aU){if(!aN){aN=aD(this.getDocument())}var aR=aN.parentNode,aM=B.getNodeIndex(aN);var aT=(B.comparePoints(this.startContainer,this.endContainer,aR,aM)==-1);var aQ=this.cloneRange();var aS,aO;if(aT){aQ.setStartAndEnd(this.startContainer,this.startOffset,aR,aM);aS=-aQ.text(aU).length}else{aQ.setStartAndEnd(aR,aM,this.startContainer,this.startOffset);aS=aQ.text(aU).length}aO=aS+this.text(aU).length;return{start:aS,end:aO}}),findText:Y(function(aS,aO,aQ){aQ=ak(aQ,U);if(aQ.wholeWordsOnly){aQ.wordOptions.includeTrailingSpace=false}var aX=az(aQ.direction);var aR=aQ.withinRange;if(!aR){aR=v.createRange();aR.selectNodeContents(this.getDocument())}var aP=aO,aT=false;if(typeof aP=="string"){if(!aQ.caseSensitive){aP=aP.toLowerCase()}}else{aT=true}var aN=aS.getRangeBoundaryPosition(this,!aX);var aW=aR.comparePoint(aN.node,aN.offset);if(aW===-1){aN=aS.getRangeBoundaryPosition(aR,true)}else{if(aW===1){aN=aS.getRangeBoundaryPosition(aR,false)}}var aV=aN;var aU=false;var aM;while(true){aM=al(aV,aP,aT,aR,aQ);if(aM){if(aM.valid){this.setStartAndEnd(aM.startPos.node,aM.startPos.offset,aM.endPos.node,aM.endPos.offset);return true}else{aV=aX?aM.startPos:aM.endPos}}else{if(aQ.wrap&&!aU){aR=aR.cloneRange();aV=aS.getRangeBoundaryPosition(aR,!aX);aR.setBoundary(aN.node,aN.offset,aX);aU=true}else{return false}}}}),pasteHtml:function(aM){this.deleteContents();if(aM){var aO=this.createContextualFragment(aM);var aN=aO.lastChild;this.insertNode(aO);this.collapseAfter(aN)}}});function i(aM){return Y(function(aP,aN){var aO=false;this.changeEachRange(function(aQ){aO=aQ[aM](aN)||aO});return aO})}ac(v.selectionPrototype,{expand:Y(function(aO,aN,aM){this.changeEachRange(function(aP){aP.expand(aN,aM)})}),move:Y(function(aQ,aP,aO,aN){var aR=0;if(this.focusNode){this.collapse(this.focusNode,this.focusOffset);var aM=this.getRangeAt(0);if(!aN){aN={}}aN.characterOptions=s(aN.characterOptions,aK);aR=aM.move(aP,aO,aN);this.setSingleRange(aM)}return aR}),trimStart:i("trimStart"),trimEnd:i("trimEnd"),trim:i("trim"),selectCharacters:Y(function(aR,aM,aS,aP,aQ,aN){var aO=v.createRange(aM);aO.selectCharacters(aM,aS,aP,aN);this.setSingleRange(aO,aQ)}),saveCharacterRanges:Y(function(aS,aN,aT){var aM=this.getAllRanges(),aO=aM.length;var aQ=[];var aU=aO==1&&this.isBackward();for(var aP=0,aR=aM.length;aP