1 line
6.3 KiB
JavaScript
1 line
6.3 KiB
JavaScript
|
!function(){function e(e){return e&&1==e.nodeType&&"false"===e.contentEditable}function t(t,n,r,i,o){function a(e,t){if(t=t||0,!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 s(t){var n;if(3===t.nodeType)return t.data;if(h[t.nodeName]&&!p[t.nodeName])return"";if(n="",e(t))return"\n";if((p[t.nodeName]||m[t.nodeName])&&(n+="\n"),t=t.firstChild)do n+=s(t);while(t=t.nextSibling);return n}function l(t,n,r){var i,o,a,s,l=[],u=0,c=t,d=n.shift(),f=0;e:for(;;){if((p[c.nodeName]||m[c.nodeName]||e(c))&&u++,3===c.nodeType&&(!o&&c.length+u>=d[1]?(o=c,s=d[1]-u):i&&l.push(c),!i&&c.length+u>d[0]&&(i=c,a=d[0]-u),u+=c.length),i&&o){if(c=r({startNode:i,startNodeIndex:a,endNode:o,endNodeIndex:s,innerNodes:l,match:d[2],matchIndex:f}),u-=o.length-s,i=null,o=null,l=[],d=n.shift(),f++,!d)break}else if(h[c.nodeName]&&!p[c.nodeName]||!c.firstChild){if(c.nextSibling){c=c.nextSibling;continue}}else if(!e(c)){c=c.firstChild;continue}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===t)break e;c=c.parentNode}}}function u(e){var t;if("function"!=typeof e){var n=e.nodeType?e:f.createElement(e);t=function(e,t){var r=n.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(f.createTextNode(e)),r}}else t=e;return function(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex;if(o===a){var l=o;i=l.parentNode,e.startNodeIndex>0&&(n=f.createTextNode(l.data.substring(0,e.startNodeIndex)),i.insertBefore(n,l));var u=t(e.match[0],s);return i.insertBefore(u,l),e.endNodeIndex<l.length&&(r=f.createTextNode(l.data.substring(e.endNodeIndex)),i.insertBefore(r,l)),l.parentNode.removeChild(l),u}n=f.createTextNode(o.data.substring(0,e.startNodeIndex)),r=f.createTextNode(a.data.substring(e.endNodeIndex));for(var c=t(o.data.substring(e.startNodeIndex),s),d=[],p=0,h=e.innerNodes.length;p<h;++p){var m=e.innerNodes[p],g=t(m.data,s);m.parentNode.replaceChild(g,m),d.push(g)}var v=t(a.data.substring(0,e.endNodeIndex),s);return i=o.parentNode,i.insertBefore(n,o),i.insertBefore(c,o),i.removeChild(o),i=a.parentNode,i.insertBefore(v,a),i.insertBefore(r,a),i.removeChild(a),v}}var c,d,f,p,h,m,g=[],v=0;if(f=n.ownerDocument,p=o.getBlockElements(),h=o.getWhiteSpaceElements(),m=o.getShortEndedElements(),d=s(n)){if(t.global)for(;c=t.exec(d);)g.push(a(c,i));else c=d.match(t),g.push(a(c,i));return g.length&&(v=g.length,l(n,g,u(r))),v}}function n(e){function n(){function t(){o.statusbar.find("#next").disabled(!a(d+1).length),o.statusbar.find("#prev").disabled(!a(d-1).length)}function n(){e.windowManager.alert("Could not find the specified string.",function(){o.find("#find")[0].focus()})}var r,i={};r=tinymce.trim(e.selection.getContent({format:"text"}));var o=e.windowManager.open({layout:"flex",pack:"center",align:"center",onClose:function(){e.focus(),c.done()},onSubmit:function(e){var r,s,l,u;return e.preventDefault(),s=o.find("#case").checked(),u=o.find("#words").checked(),l=o.find("#find").value(),l.length?i.text==l&&i.caseState==s&&i.wholeWord==u?0===a(d+1).length?void n():(c.next(),void t()):(r=c.find(l,s,u),r||n(),o.statusbar.items().slice(1).disabled(0===r),t(),void(i={text:l,caseState:s,wholeWord:u})):(c.done(!1),void o.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){o.submit()}},{text:"Replace",disabled:!0,onclick:function(){c.replace(o.find("#replace").value())||(o.statusbar.items().slice(1).disabled(!0),d=-1,i={})}},{text:"Replace all",disabled:!0,onclick:function(){c.replace(o.find("#replace").value(),!0,!0),o.statusbar.items().slice(1).disabled(!0),i={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){c.prev(),t()}},{text:"Next",name:"next",disabled:!0,onclick:function(){c.next(),t()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:r},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"ca
|