12345 |
- /*
- Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
- For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- !function(){function t(t){return t.type==CKEDITOR.NODE_TEXT&&0<t.getLength()&&(!a||!t.isReadOnly())}function e(t){return!(t.type==CKEDITOR.NODE_ELEMENT&&t.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)))}var a,n=function(){return{textNode:this.textNode,offset:this.offset,character:this.textNode?this.textNode.getText().charAt(this.offset):null,hitMatchBoundary:this._.matchBoundary}},i=["find","replace"],h=[["txtFindFind","txtFindReplace"],["txtFindCaseChk","txtReplaceCaseChk"],["txtFindWordChk","txtReplaceWordChk"],["txtFindCyclic","txtReplaceCyclic"]];CKEDITOR.dialog.add("find",function(r){function s(a,n){var i=this,h=new CKEDITOR.dom.walker(a);h.guard=n?e:function(t){!e(t)&&(i._.matchBoundary=!0)},h.evaluator=t,h.breakOnFalse=1,a.startContainer.type==CKEDITOR.NODE_TEXT&&(this.textNode=a.startContainer,this.offset=a.startOffset-1),this._={matchWord:n,walker:h,matchBoundary:!1}}function l(t,e){var a=r.createRange();return a.setStart(t.textNode,e?t.offset:t.offset+1),a.setEndAt(r.editable(),CKEDITOR.POSITION_BEFORE_END),a}function c(t){if(!t)return!0;var e=t.charCodeAt(0);return e>=9&&13>=e||e>=8192&&8202>=e||R.test(t)}function o(t){var e=r.getSelection().getRanges()[0],a=r.editable();return e&&!t?(t=e.clone(),t.collapse(!0)):(t=r.createRange(),t.setStartAt(a,CKEDITOR.POSITION_AFTER_START)),t.setEndAt(a,CKEDITOR.POSITION_BEFORE_END),t}function g(t,e){var a=e.replace(m,function(t){return t=t.split(""),CKEDITOR.tools.array.map(t,function(t,e){return 0===e%2?" ":t}).join("")});return t.document.createText(a)}var d=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{"data-cke-highlight":1},fullMatch:1,ignoreReadonly:1,childRule:function(){return 0}},r.config.find_highlight,!0));s.prototype={next:function(){return this.move()},back:function(){return this.move(!0)},move:function(t){var e=this.textNode;if(null===e)return n.call(this);if(this._.matchBoundary=!1,e&&t&&0<this.offset)this.offset--;else if(e&&this.offset<e.getLength()-1)this.offset++;else{for(e=null;!(e||(e=this._.walker[t?"previous":"next"].call(this._.walker),this._.matchWord&&!e||this._.walker._.end)););this.offset=(this.textNode=e)&&t?e.getLength()-1:0}return n.call(this)}};var u=function(t,e){this._={walker:t,cursors:[],rangeLength:e,highlightRange:null,isMatched:0}};u.prototype={toDomRange:function(){var t=r.createRange(),e=this._.cursors;if(1>e.length){var a=this._.walker.textNode;if(!a)return null;t.setStartAfter(a)}else a=e[0],e=e[e.length-1],t.setStart(a.textNode,a.offset),t.setEnd(e.textNode,e.offset+1);return t},updateFromDomRange:function(t){var e=new s(t);this._.cursors=[];do t=e.next(),t.character&&this._.cursors.push(t);while(t.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched=!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1>this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var t=this.toDomRange(),e=t.createBookmark();d.applyToRange(t,r),t.moveToBookmark(e),this._.highlightRange=t,e=t.startContainer,e.type!=CKEDITOR.NODE_ELEMENT&&(e=e.getParent()),e.scrollIntoView(),this.updateFromDomRange(t)}},removeHighlight:function(){if(this._.highlightRange){var t=this._.highlightRange.createBookmark();d.removeFromRange(this._.highlightRange,r),this._.highlightRange.moveToBookmark(t),this.updateFromDomRange(this._.highlightRange),this._.highlightRange=null}},isReadOnly:function(){return this._.highlightRange?this._.highlightRange.startContainer.isReadOnly():0},moveBack:function(){var t=this._.walker.back(),e=this._.cursors;return t.hitMatchBoundary&&(this._.cursors=e=[]),e.unshift(t),e.length>this._.rangeLength&&e.pop(),t},moveNext:function(){var t=this._.walker.next(),e=this._.cursors;return t.hitMatchBoundary&&(this._.cursors=e=[]),e.push(t),e.length>this._.rangeLength&&e.shift(),t},getEndCharacter:function(){var t=this._.cursors;return 1>t.length?null:t[t.length-1].character},getNextCharacterRange:function(t){var e,a;return a=this._.cursors,a=(e=a[a.length-1])&&e.textNode?new s(l(e)):this._.walker,new u(a,t)},getCursors:function(){return this._.cursors}};var f=function(t,e){var a=[-1];e&&(t=t.toLowerCase());for(var n=0;n<t.length;n++)for(a.push(a[n]+1);0<a[n+1]&&t.charAt(n)!=t.charAt(a[n+1]-1);)a[n+1]=a[a[n+1]-1]+1;this._={overlap:a,state:0,ignoreCase:!!e,pattern:t}};f.prototype={feedCharacter:function(t){for(this._.ignoreCase&&(t=t.toLowerCase());;){var e,a=this._.pattern.charAt(this._.state);if(t==a?e=!0:(e=p.test(t),a=p.test(a),e=e&&a),e)return this._.state++,this._.state==this._.pattern.length?(this._.state=0,2):1;if(!this._.state)return 0;this._.state=this._.overlap[this._.state]}},reset:function(){this._.state=0}};var R=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,p=/[\u0020\u00a0\u1680\u202f\u205f\u3000\u2000-\u200a]/,m=/[\u0020\u00a0\u1680\u202f\u205f\u3000\u2000-\u200a]{2,}/g,C={searchRange:null,matchRange:null,find:function(t,e,a,n,i,h){this.matchRange?(this.matchRange.removeHighlight(),this.matchRange=this.matchRange.getNextCharacterRange(t.length)):this.matchRange=new u(new s(this.searchRange),t.length);for(var g=new f(t,!e),d=0,R="%";null!==R;){for(this.matchRange.moveNext();(R=this.matchRange.getEndCharacter())&&(d=g.feedCharacter(R),2!=d);)this.matchRange.moveNext().hitMatchBoundary&&g.reset();if(2==d){if(a){var p=this.matchRange.getCursors(),m=p[p.length-1],p=p[0],x=r.createRange();if(x.setStartAt(r.editable(),CKEDITOR.POSITION_AFTER_START),x.setEnd(p.textNode,p.offset),p=x,m=l(m),p.trim(),m.trim(),p=new s(p,!0),m=new s(m,!0),!c(p.back().character)||!c(m.next().character))continue}return this.matchRange.setMatched(),!1!==i&&this.matchRange.highlight(),!0}}return this.matchRange.clearMatched(),this.matchRange.removeHighlight(),n&&!h?(this.searchRange=o(1),this.matchRange=null,C.find.apply(this,Array.prototype.slice.call(arguments).concat([!0]))):!1},replaceCounter:0,replace:function(t,e,n,i,h,s,l){if(a=1,t=0,t=this.hasMatchOptionsChanged(e,i,h),!this.matchRange||!this.matchRange.isMatched()||this.matchRange._.isReplaced||this.matchRange.isReadOnly()||t)t&&this.matchRange&&(this.matchRange.clearMatched(),this.matchRange.removeHighlight(),this.matchRange=null),t=this.find(e,i,h,s,!l);else{if(this.matchRange.removeHighlight(),e=this.matchRange.toDomRange(),n=g(r,n),!l){var c=r.getSelection();c.selectRanges([e]),r.fire("saveSnapshot")}e.deleteContents(),e.insertNode(n),l||(c.selectRanges([e]),r.fire("saveSnapshot")),this.matchRange.updateFromDomRange(e),l||this.matchRange.highlight(),this.matchRange._.isReplaced=!0,this.replaceCounter++,t=1}return a=0,t},matchOptions:null,hasMatchOptionsChanged:function(t,e,a){return t=[t,e,a].join("."),e=this.matchOptions&&this.matchOptions!=t,this.matchOptions=t,e}},x=r.lang.find;return{title:x.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton(r,{label:r.lang.common.close})],contents:[{id:"find",label:x.find,title:x.find,accessKey:"",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindFind",label:x.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFind",align:"left",style:"width:100%",label:x.find,onClick:function(){var t=this.getDialog();C.find(t.getValueOf("find","txtFindFind"),t.getValueOf("find","txtFindCaseChk"),t.getValueOf("find","txtFindWordChk"),t.getValueOf("find","txtFindCyclic"))||alert(x.notFoundMsg)}}]},{type:"fieldset",className:"cke_dialog_find_fieldset",label:CKEDITOR.tools.htmlEncode(x.findOptions),style:"margin-top:29px",children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtFindCaseChk",isChanged:!1,label:x.matchCase},{type:"checkbox",id:"txtFindWordChk",isChanged:!1,label:x.matchWord},{type:"checkbox",id:"txtFindCyclic",isChanged:!1,"default":!0,label:x.matchCyclic}]}]}]},{id:"replace",label:x.replace,accessKey:"M",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindReplace",label:x.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFindReplace",align:"left",style:"width:100%",label:x.replace,onClick:function(){var t=this.getDialog();C.replace(t,t.getValueOf("replace","txtFindReplace"),t.getValueOf("replace","txtReplace"),t.getValueOf("replace","txtReplaceCaseChk"),t.getValueOf("replace","txtReplaceWordChk"),t.getValueOf("replace","txtReplaceCyclic"))||alert(x.notFoundMsg)}}]},{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtReplace",label:x.replaceWith,isChanged:!1,labelLayout:"horizontal",accessKey:"R"},{type:"button",id:"btnReplaceAll",align:"left",style:"width:100%",label:x.replaceAll,isChanged:!1,onClick:function(){var t=this.getDialog();for(C.replaceCounter=0,C.searchRange=o(1),C.matchRange&&(C.matchRange.removeHighlight(),C.matchRange=null),r.fire("saveSnapshot");C.replace(t,t.getValueOf("replace","txtFindReplace"),t.getValueOf("replace","txtReplace"),t.getValueOf("replace","txtReplaceCaseChk"),t.getValueOf("replace","txtReplaceWordChk"),!1,!0););C.replaceCounter?(alert(x.replaceSuccessMsg.replace(/%1/,C.replaceCounter)),r.fire("saveSnapshot")):alert(x.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(x.findOptions),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtReplaceCaseChk",isChanged:!1,label:x.matchCase},{type:"checkbox",id:"txtReplaceWordChk",isChanged:!1,label:x.matchWord},{type:"checkbox",id:"txtReplaceCyclic",isChanged:!1,"default":!0,label:x.matchCyclic}]}]}]}],onLoad:function(){var t,e=this,a=0;this.on("hide",function(){a=0}),this.on("show",function(){a=1}),this.selectPage=CKEDITOR.tools.override(this.selectPage,function(n){return function(r){n.call(e,r);var s,l=e._.tabs[r];if(s="find"===r?"txtFindWordChk":"txtReplaceWordChk",t=e.getContentElement(r,"find"===r?"txtFindFind":"txtFindReplace"),e.getContentElement(r,s),l.initialized||(CKEDITOR.document.getById(t._.inputId),l.initialized=!0),a){var c;r="find"===r?1:0;var o,l=1-r,g=h.length;for(o=0;g>o;o++)s=this.getContentElement(i[r],h[o][r]),c=this.getContentElement(i[l],h[o][l]),c.setValue(s.getValue())}}})},onShow:function(){C.searchRange=o();var t=this._.currentTabId,e=this.getParentEditor().getSelection().getSelectedText(),a=this.getContentElement(t,"find"==t?"txtFindFind":"txtFindReplace");a.setValue(e),a.select(),this[("find"==t&&this._.editor.readOnly?"hide":"show")+"Page"]("replace")},onHide:function(){var t;C.matchRange&&C.matchRange.isMatched()&&(C.matchRange.removeHighlight(),(t=C.matchRange.toDomRange())&&r.getSelection().selectRanges([t]),r.focus()),delete C.matchRange},onFocus:function(){return"replace"==this._.currentTabId?this.getContentElement("replace","txtFindReplace"):this.getContentElement("find","txtFindFind")}}})}();
|