Files
sogo/UI/WebServerResources/ckeditor/plugins/domiterator/plugin.js
C Robert b943372f17 HTML composition, take 2
Monotone-Parent: dbd490c81ea6cac4c12b2e17661e2fef43219e68
Monotone-Revision: 0801dc9f1e4fdc49ea44fc0450fb025c2639ed26

Monotone-Author: crobert@inverse.ca
Monotone-Date: 2009-06-25T19:18:02
Monotone-Branch: ca.inverse.sogo
2009-06-25 19:18:02 +00:00

8 lines
3.3 KiB
JavaScript

/*
Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.add('domiterator');(function(){var a=function(c){var d=this;if(arguments.length<1)return;d.range=c;d.forceBrBreak=false;d.enforceRealBlocks=false;d._||(d._={});},b=/^[\r\n\t ]+$/;a.prototype={getNextParagraph:function(c){var z=this;var d,e,f,g,h;if(!z._.lastNode){e=z.range.clone();e.enlarge(z.forceBrBreak?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);var i=new CKEDITOR.dom.walker(e),j=CKEDITOR.dom.walker.bookmark(true,true);i.evaluator=j;z._.nextNode=i.next();i=new CKEDITOR.dom.walker(e);i.evaluator=j;var k=i.previous();z._.lastNode=k.getNextSourceNode(true);if(!z._.lastNode){z._.lastNode=e.document.createText('');z._.lastNode.insertAfter(k);}e=null;}var l=z._.nextNode;k=z._.lastNode;z._.nextNode=null;while(l){var m=false,n=l.type!=CKEDITOR.NODE_ELEMENT,o=false;if(!n){var p=l.getName();if(l.isBlockBoundary(z.forceBrBreak&&{br:1})){if(p=='br')n=true;else if(!e&&!l.getChildCount()&&p!='hr'){d=l;f=l.equals(k);break;}if(e){e.setEndAt(l,CKEDITOR.POSITION_BEFORE_START);if(p!='br')z._.nextNode=l;}m=true;}else{if(l.getFirst()){if(!e){e=new CKEDITOR.dom.range(z.range.document);e.setStartAt(l,CKEDITOR.POSITION_BEFORE_START);}l=l.getFirst();continue;}n=true;}}else if(l.type==CKEDITOR.NODE_TEXT)if(b.test(l.getText()))n=false;if(n&&!e){e=new CKEDITOR.dom.range(z.range.document);e.setStartAt(l,CKEDITOR.POSITION_BEFORE_START);}f=(!m||n)&&(l.equals(k));if(e&&!m)while(!l.getNext()&&!f){var q=l.getParent();if(q.isBlockBoundary(z.forceBrBreak&&{br:1})){m=true;f=f||q.equals(k);break;}l=q;n=true;f=l.equals(k);o=true;}if(n)e.setEndAt(l,CKEDITOR.POSITION_AFTER_END);if((m||f)&&(e)){var r=e.getBoundaryNodes(),s=new CKEDITOR.dom.elementPath(e.startContainer),t=new CKEDITOR.dom.elementPath(e.endContainer);if(r.startNode.equals(r.endNode)&&r.startNode.getParent().equals(s.blockLimit)&&r.startNode.type==CKEDITOR.NODE_ELEMENT&&r.startNode.getAttribute('_fck_bookmark'))e=null;else break;}if(f)break;l=l.getNextSourceNode(o,null,k);}if(!d){if(!e){z._.nextNode=null;return null;}s=new CKEDITOR.dom.elementPath(e.startContainer);var u=s.blockLimit,v={div:1,th:1,td:1};d=s.block;if(!d&&!z.enforceRealBlocks&&v[u.getName()]&&e.checkStartOfBlock()&&e.checkEndOfBlock())d=u;else if(!d||z.enforceRealBlocks&&d.getName()=='li'){d=z.range.document.createElement(c||'p');e.extractContents().appendTo(d);d.trim();e.insertNode(d);g=h=true;}else if(d.getName()!='li'){if(!e.checkStartOfBlock()||!e.checkEndOfBlock()){d=d.clone(false);e.extractContents().appendTo(d);d.trim();
var w=e.splitBlock();g=!w.wasStartOfBlock;h=!w.wasEndOfBlock;e.insertNode(d);}}else if(!f)z._.nextNode=d.equals(k)?null:e.getBoundaryNodes().endNode.getNextSourceNode(true,null,k);}if(g){var x=d.getPrevious();if(x&&x.type==CKEDITOR.NODE_ELEMENT)if(x.getName()=='br')x.remove();else if(x.getLast()&&x.getLast().$.nodeName.toLowerCase()=='br')x.getLast().remove();}if(h){var y=d.getLast();if(y&&y.type==CKEDITOR.NODE_ELEMENT&&y.getName()=='br')if(CKEDITOR.env.ie||y.getPrevious()||y.getNext())y.remove();}if(!z._.nextNode)z._.nextNode=f||d.equals(k)?null:d.getNextSourceNode(true,null,k);return d;}};CKEDITOR.dom.range.prototype.createIterator=function(){return new a(this);};})();