| 1 |
- (function(){function e(e,t,n,r,a){var i,d=[],l,o=0,s;var c,f,u;s=t.ownerDocument;c=a.getBlockElements();f=a.getWhiteSpaceElements();u=a.getShortEndedElements();function h(e,t){t=t||0;if(!e[0]){throw"findAndReplaceDOMText cannot handle zero-length matches"}var n=e.index;if(t>0){var r=e[t];if(!r){throw"Invalid capture group"}n+=e[0].indexOf(r);e[0]=r}return[n,n+e[0].length,[e[0]]]}function m(e){var t;if(e.nodeType===3){return e.data}if(f[e.nodeName]&&!c[e.nodeName]){return""}t="";if(c[e.nodeName]||u[e.nodeName]){t+="\n"}if(e=e.firstChild){do{t+=m(e)}while(e=e.nextSibling)}return t}function g(e,t,n){var r,a,i,d,l=[],o=0,s=e,h=t.shift(),m=0;e:while(true){if(c[s.nodeName]||u[s.nodeName]){o++}if(s.nodeType===3){if(!a&&s.length+o>=h[1]){a=s;d=h[1]-o}else if(r){l.push(s)}if(!r&&s.length+o>h[0]){r=s;i=h[0]-o}o+=s.length}if(r&&a){s=n({startNode:r,startNodeIndex:i,endNode:a,endNodeIndex:d,innerNodes:l,match:h[2],matchIndex:m});o-=a.length-d;r=null;a=null;l=[];h=t.shift();m++;if(!h){break}}else if((!f[s.nodeName]||c[s.nodeName])&&s.firstChild){s=s.firstChild;continue}else if(s.nextSibling){s=s.nextSibling;continue}while(true){if(s.nextSibling){s=s.nextSibling;break}else if(s.parentNode!==e){s=s.parentNode}else{break e}}}}function p(e){var t;if(typeof e!="function"){var n=e.nodeType?e:s.createElement(e);t=function(e,t){var r=n.cloneNode(false);r.setAttribute("data-mce-index",t);if(e){r.appendChild(s.createTextNode(e))}return r}}else{t=e}return function(e){var n,r,a,i=e.startNode,d=e.endNode,l=e.matchIndex;if(i===d){var o=i;a=o.parentNode;if(e.startNodeIndex>0){n=s.createTextNode(o.data.substring(0,e.startNodeIndex));a.insertBefore(n,o)}var c=t(e.match[0],l);a.insertBefore(c,o);if(e.endNodeIndex<o.length){r=s.createTextNode(o.data.substring(e.endNodeIndex));a.insertBefore(r,o)}o.parentNode.removeChild(o);return c}else{n=s.createTextNode(i.data.substring(0,e.startNodeIndex));r=s.createTextNode(d.data.substring(e.endNodeIndex));var f=t(i.data.substring(e.startNodeIndex),l);var u=[];for(var h=0,m=e.innerNodes.length;h<m;++h){var g=e.innerNodes[h];var p=t(g.data,l);g.parentNode.replaceChild(p,g);u.push(p)}var x=t(d.data.substring(0,e.endNodeIndex),l);a=i.parentNode;a.insertBefore(n,i);a.insertBefore(f,i);a.removeChild(i);a=d.parentNode;a.insertBefore(x,d);a.insertBefore(r,d);a.removeChild(d);return x}}}l=m(t);if(!l){return}if(e.global){while(i=e.exec(l)){d.push(h(i,r))}}else{i=l.match(e);d.push(h(i,r))}if(d.length){o=d.length;g(t,d,p(n))}return o}function t(t){var n=this,r=-1;function a(){var e={};function a(){d.statusbar.find("#next").disabled(!o(r+1).length);d.statusbar.find("#prev").disabled(!o(r-1).length)}function i(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){d.find("#find")[0].focus()})}var d=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){t.focus();n.done()},onSubmit:function(t){var l,s,c,f;t.preventDefault();s=d.find("#case").checked();f=d.find("#words").checked();c=d.find("#find").value();if(!c.length){n.done(false);d.statusbar.items().slice(1).disabled(true);return}if(e.text==c&&e.caseState==s&&e.wholeWord==f){if(o(r+1).length===0){i();return}n.next();a();return}l=n.find(c,s,f);if(!l){i()}d.statusbar.items().slice(1).disabled(l===0);a();e={text:c,caseState:s,wholeWord:f}},buttons:[{text:"Find",onclick:function(){d.submit()}},{text:"Replace",disabled:true,onclick:function(){if(!n.replace(d.find("#replace").value())){d.statusbar.items().slice(1).disabled(true);r=-1;e={}}}},{text:"Replace all",disabled:true,onclick:function(){n.replace(d.find("#replace").value(),true,true);d.statusbar.items().slice(1).disabled(true);e={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:true,onclick:function(){n.prev();a()}},{text:"Next",name:"next",disabled:true,onclick:function(){n.next();a()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:t.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}n.init=function(e){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Ctrl+F",onclick:a,separator:"before",context:"edit"});e.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Ctrl+F",onclick:a});e.addCommand("SearchReplace",a);e.shortcuts.add("Ctrl+F","",a)};function i(e){var t=e.getAttribute("data-mce-index");if(typeof t=="number"){return""+t}return t}function d(r){var a,i;i=t.dom.create("span",{"data-mce-bogus":1});i.className="mce-match-marker";a=t.getBody();n.done(false);return e(r,a,i,false,t.schema)}function l(e){var t=e.parentNode;if(e.firstChild){t.insertBefore(e.firstChild,e)}e.parentNode.removeChild(e)}function o(e){var n,r=[];n=tinymce.toArray(t.getBody().getElementsByTagName("span"));if(n.length){for(var a=0;a<n.length;a++){var d=i(n[a]);if(d===null||!d.length){continue}if(d===e.toString()){r.push(n[a])}}}return r}function s(e){var n=r,a=t.dom;e=e!==false;if(e){n++}else{n--}a.removeClass(o(r),"mce-match-marker-selected");var i=o(n);if(i.length){a.addClass(o(n),"mce-match-marker-selected");t.selection.scrollIntoView(i[0]);return n}return-1}function c(e){e.parentNode.removeChild(e)}n.find=function(e,t,n){e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");e=n?"\\b"+e+"\\b":e;var a=d(new RegExp(e,t?"g":"gi"));if(a){r=-1;r=s(true)}return a};n.next=function(){var e=s(true);if(e!==-1){r=e}};n.prev=function(){var e=s(false);if(e!==-1){r=e}};n.replace=function(e,a,d){var s,f,u,h,m,g=r,p;a=a!==false;u=t.getBody();f=tinymce.toArray(u.getElementsByTagName("span"));for(s=0;s<f.length;s++){var x=i(f[s]);if(x===null||!x.length){continue}h=m=parseInt(x,10);if(d||h===r){if(e.length){f[s].firstChild.nodeValue=e;l(f[s])}else{c(f[s])}while(f[++s]){h=i(f[s]);if(x===null||!x.length){continue}if(h===m){c(f[s])}else{s--;break}}if(a){g--}}else if(m>r){f[s].setAttribute("data-mce-index",m-1)}}t.undoManager.add();r=g;if(a){p=o(g+1).length>0;n.next()}else{p=o(g-1).length>0;n.prev()}return!d&&p};n.done=function(e){var n,a,d,o;a=tinymce.toArray(t.getBody().getElementsByTagName("span"));for(n=0;n<a.length;n++){var s=i(a[n]);if(s!==null&&s.length){if(s===r.toString()){if(!d){d=a[n].firstChild}o=a[n].firstChild}l(a[n])}}if(d&&o){var c=t.dom.createRng();c.setStart(d,0);c.setEnd(o,o.data.length);if(e!==false){t.selection.setRng(c)}return c}}}tinymce.PluginManager.add("searchreplace",t)})();
|