src/pyams_skin/resources/js/ext/tinymce/dev/classes/dom/Selection.min.js
changeset 81 472bd9195a15
equal deleted inserted replaced
80:181b3a0ee15a 81:472bd9195a15
       
     1 define("tinymce/dom/Selection",["tinymce/dom/TreeWalker","tinymce/dom/TridentSelection","tinymce/dom/ControlSelection","tinymce/dom/RangeUtils","tinymce/dom/BookmarkManager","tinymce/Env","tinymce/util/Tools"],function(i,g,a,e,j,f,d){var h=d.each,c=d.trim;var b=f.ie;function k(p,o,n,m){var l=this;l.dom=p;l.win=o;l.serializer=n;l.editor=m;l.bookmarkManager=new j(l);l.controlSelection=new a(l,m);if(!l.win.getSelection){l.tridentSel=new g(l)}}k.prototype={setCursorLocation:function(n,o){var m=this,l=m.dom.createRng();if(!n){m._moveEndPoint(l,m.editor.getBody(),true);m.setRng(l)}else{l.setStart(n,o);l.setEnd(n,o);m.setRng(l);m.collapse(false)}},getContent:function(p){var n=this,m=n.getRng(),l=n.dom.create("body");var s=n.getSel(),r,q,o;p=p||{};r=q="";p.get=true;p.format=p.format||"html";p.selection=true;n.editor.fire("BeforeGetContent",p);if(p.format=="text"){return n.isCollapsed()?"":(m.text||(s.toString?s.toString():""))}if(m.cloneContents){o=m.cloneContents();if(o){l.appendChild(o)}}else{if(m.item!==undefined||m.htmlText!==undefined){l.innerHTML="<br>"+(m.item?m.item(0).outerHTML:m.htmlText);l.removeChild(l.firstChild)}else{l.innerHTML=m.toString()}}if(/^\s/.test(l.innerHTML)){r=" "}if(/\s+$/.test(l.innerHTML)){q=" "}p.getInner=true;p.content=n.isCollapsed()?"":r+n.serializer.serialize(l,p)+q;n.editor.fire("GetContent",p);return p.content},setContent:function(m,o){var t=this,l=t.getRng(),p,q=t.win.document,s,r;o=o||{format:"html"};o.set=true;o.selection=true;m=o.content=m;if(!o.no_events){t.editor.fire("BeforeSetContent",o)}m=o.content;if(l.insertNode){m+='<span id="__caret">_</span>';if(l.startContainer==q&&l.endContainer==q){q.body.innerHTML=m}else{l.deleteContents();if(q.body.childNodes.length===0){q.body.innerHTML=m}else{if(l.createContextualFragment){l.insertNode(l.createContextualFragment(m))}else{s=q.createDocumentFragment();r=q.createElement("div");s.appendChild(r);r.outerHTML=m;l.insertNode(s)}}}p=t.dom.get("__caret");l=q.createRange();l.setStartBefore(p);l.setEndBefore(p);t.setRng(l);t.dom.remove("__caret");try{t.setRng(l)}catch(n){}}else{if(l.item){q.execCommand("Delete",false,null);l=t.getRng()}if(/^\s+/.test(m)){l.pasteHTML('<span id="__mce_tmp">_</span>'+m);t.dom.remove("__mce_tmp")}else{l.pasteHTML(m)}}if(!o.no_events){t.editor.fire("SetContent",o)}},getStart:function(r){var n=this,m=n.getRng(),o,l,q,p;if(m.duplicate||m.item){if(m.item){return m.item(0)}q=m.duplicate();q.collapse(1);o=q.parentElement();if(o.ownerDocument!==n.dom.doc){o=n.dom.getRoot()}l=p=m.parentElement();while((p=p.parentNode)){if(p==o){o=l;break}}return o}else{o=m.startContainer;if(o.nodeType==1&&o.hasChildNodes()){if(!r||!m.collapsed){o=o.childNodes[Math.min(o.childNodes.length-1,m.startOffset)]}}if(o&&o.nodeType==3){return o.parentNode}return o}},getEnd:function(p){var m=this,l=m.getRng(),o,n;if(l.duplicate||l.item){if(l.item){return l.item(0)}l=l.duplicate();l.collapse(0);o=l.parentElement();if(o.ownerDocument!==m.dom.doc){o=m.dom.getRoot()}if(o&&o.nodeName=="BODY"){return o.lastChild||o}return o}else{o=l.endContainer;n=l.endOffset;if(o.nodeType==1&&o.hasChildNodes()){if(!p||!l.collapsed){o=o.childNodes[n>0?n-1:n]}}if(o&&o.nodeType==3){return o.parentNode}return o}},getBookmark:function(l,m){return this.bookmarkManager.getBookmark(l,m)},moveToBookmark:function(l){return this.bookmarkManager.moveToBookmark(l)},select:function(p,o){var n=this,q=n.dom,m=q.createRng(),l;n.lastFocusBookmark=null;if(p){if(!o&&n.controlSelection.controlSelect(p)){return}l=q.nodeIndex(p);m.setStart(p.parentNode,l);m.setEnd(p.parentNode,l+1);if(o){n._moveEndPoint(m,p,true);n._moveEndPoint(m,p)}n.setRng(m)}return p},isCollapsed:function(){var m=this,l=m.getRng(),n=m.getSel();if(!l||l.item){return false}if(l.compareEndPoints){return l.compareEndPoints("StartToEnd",l)===0}return !n||l.collapsed},collapse:function(n){var m=this,l=m.getRng(),o;if(l.item){o=l.item(0);l=m.win.document.body.createTextRange();l.moveToElementText(o)}l.collapse(!!n);m.setRng(l)},getSel:function(){var l=this.win;return l.getSelection?l.getSelection():l.document.selection},getRng:function(r){var u=this,t,l,p,s=u.win.document,n;function q(x,y,v){try{return y.compareBoundaryPoints(x,v)}catch(w){return -1}}if(!r&&u.lastFocusBookmark){var m=u.lastFocusBookmark;if(m.startContainer){l=s.createRange();l.setStart(m.startContainer,m.startOffset);l.setEnd(m.endContainer,m.endOffset)}else{l=m}return l}if(r&&u.tridentSel){return u.tridentSel.getRangeAt(0)}try{if((t=u.getSel())){if(t.rangeCount>0){l=t.getRangeAt(0)}else{l=t.createRange?t.createRange():s.createRange()}}}catch(o){}if(b&&l&&l.setStart&&s.selection){try{n=s.selection.createRange()}catch(o){}if(n&&n.item){p=n.item(0);l=s.createRange();l.setStartBefore(p);l.setEndAfter(p)}}if(!l){l=s.createRange?s.createRange():s.body.createTextRange()}if(l.setStart&&l.startContainer.nodeType===9&&l.collapsed){p=u.dom.getRoot();l.setStart(p,0);l.setEnd(p,0)}if(u.selectedRange&&u.explicitRange){if(q(l.START_TO_START,l,u.selectedRange)===0&&q(l.END_TO_END,l,u.selectedRange)===0){l=u.explicitRange}else{u.selectedRange=null;u.explicitRange=null}}return l},setRng:function(l,n){var m=this,p;if(!l){return}if(l.select){try{l.select()}catch(o){}return}if(!m.tridentSel){p=m.getSel();if(p){m.explicitRange=l;try{p.removeAllRanges();p.addRange(l)}catch(o){}if(n===false&&p.extend){p.collapse(l.endContainer,l.endOffset);p.extend(l.startContainer,l.startOffset)}m.selectedRange=p.rangeCount>0?p.getRangeAt(0):null}}else{if(l.cloneRange){try{m.tridentSel.addRange(l);return}catch(o){}}}},setNode:function(m){var l=this;l.setContent(l.dom.getOuterHTML(m));return m},getNode:function(){var s=this,l=s.getRng(),o;var m=l.startContainer,t=l.endContainer;var p=l.startOffset,q=l.endOffset,r=s.dom.getRoot();function n(v,u){var w=v;while(v&&v.nodeType===3&&v.length===0){v=u?v.nextSibling:v.previousSibling}return v||w}if(!l){return r}if(l.setStart){o=l.commonAncestorContainer;if(!l.collapsed){if(m==t){if(q-p<2){if(m.hasChildNodes()){o=m.childNodes[p]}}}if(m.nodeType===3&&t.nodeType===3){if(m.length===p){m=n(m.nextSibling,true)}else{m=m.parentNode}if(q===0){t=n(t.previousSibling,false)}else{t=t.parentNode}if(m&&m===t){return m}}}if(o&&o.nodeType==3){return o.parentNode}return o}o=l.item?l.item(0):l.parentElement();if(o.ownerDocument!==s.win.document){o=r}return o},getSelectedBlocks:function(o,n){var m=this,s=m.dom,p,l,r=[];l=s.getRoot();o=s.getParent(o||m.getStart(),s.isBlock);n=s.getParent(n||m.getEnd(),s.isBlock);if(o&&o!=l){r.push(o)}if(o&&n&&o!=n){p=o;var q=new i(o,l);while((p=q.next())&&p!=n){if(s.isBlock(p)){r.push(p)}}}if(n&&o!=n&&n!=l){r.push(n)}return r},isForward:function(){var n=this.dom,l=this.getSel(),o,m;if(!l||!l.anchorNode||!l.focusNode){return true}o=n.createRng();o.setStart(l.anchorNode,l.anchorOffset);o.collapse(true);m=n.createRng();m.setStart(l.focusNode,l.focusOffset);m.collapse(true);return o.compareBoundaryPoints(o.START_TO_START,m)<=0},normalize:function(){var m=this,l=m.getRng();if(f.range&&new e(m.dom).normalize(l)){m.setRng(l,m.isForward())}return l},selectorChanged:function(l,o){var m=this,n;if(!m.selectorChangedData){m.selectorChangedData={};n={};m.editor.on("NodeChange",function(s){var r=s.element,t=m.dom,p=t.getParents(r,null,t.getRoot()),q={};h(m.selectorChangedData,function(v,u){h(p,function(w){if(t.is(w,u)){if(!n[u]){h(v,function(x){x(true,{node:w,selector:u,parents:p})});n[u]=v}q[u]=v;return false}})});h(n,function(v,u){if(!q[u]){delete n[u];h(v,function(w){w(false,{node:r,selector:u,parents:p})})}})})}if(!m.selectorChangedData[l]){m.selectorChangedData[l]=[]}m.selectorChangedData[l].push(o);return m},getScrollContainer:function(){var l,m=this.dom.getRoot();while(m&&m.nodeName!="BODY"){if(m.scrollHeight>m.clientHeight){l=m;break}m=m.parentNode}return l},scrollIntoView:function(o){var q,t,u=this,n=u.dom,r=n.getRoot(),l,s;function m(A){var v=0,z=0;var w=A;while(w&&w.nodeType){v+=w.offsetLeft||0;z+=w.offsetTop||0;w=w.offsetParent}return{x:v,y:z}}if(r.nodeName!="BODY"){var p=u.getScrollContainer();if(p){q=m(o).y-m(p).y;s=p.clientHeight;l=p.scrollTop;if(q<l||q+25>l+s){p.scrollTop=q<l?q:q-s+25}return}}t=n.getViewPort(u.editor.getWin());q=n.getPos(o).y;l=t.y;s=t.h;if(q<t.y||q+25>l+s){u.editor.getWin().scrollTo(0,q<l?q:q-s+25)}},placeCaretAt:function(p,o){var q=this.editor.getDoc(),m,l;if(q.caretPositionFromPoint){l=q.caretPositionFromPoint(p,o);m=q.createRange();m.setStart(l.offsetNode,l.offset);m.collapse(true)}else{if(q.caretRangeFromPoint){m=q.caretRangeFromPoint(p,o)}else{if(q.body.createTextRange){m=q.body.createTextRange();try{m.moveToPoint(p,o);m.collapse(true)}catch(n){m.collapse(o<q.body.clientHeight)}}}}this.setRng(m)},_moveEndPoint:function(m,o,q){var l=o,p=new i(o,l);var n=this.dom.schema.getNonEmptyElements();do{if(o.nodeType==3&&c(o.nodeValue).length!==0){if(q){m.setStart(o,0)}else{m.setEnd(o,o.nodeValue.length)}return}if(n[o.nodeName]&&!/^(TD|TH)$/.test(o.nodeName)){if(q){m.setStartBefore(o)}else{if(o.nodeName=="BR"){m.setEndBefore(o)}else{m.setEndAfter(o)}}return}if(f.ie&&f.ie<11&&this.dom.isBlock(o)&&this.dom.isEmpty(o)){if(q){m.setStart(o,0)}else{m.setEnd(o,0)}return}}while((o=(q?p.next():p.prev())));if(l.nodeName=="BODY"){if(q){m.setStart(l,0)}else{m.setEnd(l,l.childNodes.length)}}},destroy:function(){this.win=null;this.controlSelection.destroy()}};return k});