All Downloads are FREE. Search and download functionalities are using the official Maven repository.

META-INF.resources.bower_components.textAngular.src.DOM.min.js Maven / Gradle / Ivy


angular.module("textAngular.DOM",["textAngular.factories"]).factory("taExecCommand",["taSelection","taBrowserTag","$document",function(f,a,e){var c=function(n,o){var k,m;var l=n.find("li");for(m=l.length-1;m>=0;m--){k=angular.element("<"+o+">"+l[m].innerHTML+"");n.after(k)}n.remove();f.setSelectionToElementEnd(k[0])};var j=function(s,y,o,k,A){var n,q;var z;var w;var m=s.find("li");var x;for(q=0;q0){z=m[q-1]}if(q+1"+y[0].innerHTML+""}else{r+="<"+a(o)+">";r+="
  • "+y[0].innerHTML+"
  • ";r+=""}n=angular.element(r);if(!z){y.remove();s.after(angular.element(s[0].outerHTML));s.after(n);s.remove();f.setSelectionToElementEnd(n[0]);return}else{if(!w){y.remove();s.after(n);f.setSelectionToElementEnd(n[0])}else{var l=s.parent();var v="";var u=s[0].nodeName.toLowerCase();v+="<"+u+">";for(q=0;q"+m[q].innerHTML+""}v+="";var t="";t+="<"+u+">";for(q=x+1;q"+m[q].innerHTML+""}t+="";s.after(angular.element(t));s.after(n);s.after(angular.element(v));s.remove();f.setSelectionToElementEnd(n[0])}}};var b=function(w,v,r,k,B){var q,t,s,n;var A;var l;var o=w.find("li");var m=[];for(t=0;t0){A=o[m[0]-1]}if(m[v.length-1]+1"+v[s].innerHTML+"";v[s].remove()}}else{u+="<"+a(r)+">";for(s=0;s"}q=angular.element(u);if(!A){w.after(angular.element(w[0].outerHTML));w.after(q);w.remove();f.setSelectionToElementEnd(q[0]);return}else{if(!l){w.after(q);f.setSelectionToElementEnd(q[0]);return}else{var z="";var y=w[0].nodeName.toLowerCase();z+="<"+y+">";for(t=0;t"+o[t].innerHTML+""}z+="";var x="";x+="<"+y+">";for(t=m[v.length-1]+1;t"+o[t].innerHTML+""}x+="";w.after(angular.element(x));w.after(q);w.after(angular.element(z));w.remove();f.setSelectionToElementEnd(q[0])}}};var i=function(k){if(/()$/i.test(k.innerHTML.trim())){f.setSelectionBeforeElement(angular.element(k).find("br")[0])}else{f.setSelectionToElementEnd(k)}};var d=function(l,m){var k=angular.element("<"+m+">"+l[0].innerHTML+"");l.after(k);l.remove();i(k.find("li")[0])};var h=function(o,n,p){var m="";for(var l=0;l"+o[l].innerHTML+""}var k=angular.element("<"+p+">"+m+"");n.after(k);n.remove();i(k.find("li")[0])};var g=function(o,m){for(var n=0;n"){return o}else{var k=angular.element(m);k[0].innerHTML=o.innerHTML;o.parentNode.insertBefore(k[0],o);o.parentNode.removeChild(o);return k}};return function(l,k){l=a(l);return function(s,m,q,Q){var H,o,z,t,D,C,G,r;var P=angular.element("<"+l+">");try{if(f.getSelection){r=f.getSelection()}G=f.getSelectionElement();var F,w;if(G.tagName!==undefined){if(G.tagName.toLowerCase()==="div"&&/taTextElement.+/.test(G.id)&&r&&r.start&&r.start.offset===1&&r.end.offset===1){F=G.innerHTML;if(/
    /i.test(F)){F=F.replace(/
    /i,"​")}if(//i.test(F)){F=F.replace(//i,"​")}if(/()+/i.test(F)){F=__.replace(/()+/i,"")}if(/<\/span>(<\/span>)+/i.test(F)){F=__.replace(/<\/span>(<\/span>)+/i,"")}if(/<\/span>/i.test(F)){F=F.replace(/<\/span>/i,"")}w="
    "+F+"
    ";G.innerHTML=w;f.setSelectionToElementEnd(G.childNodes[0]);G=f.getSelectionElement()}else{if(G.tagName.toLowerCase()==="span"&&r&&r.start&&r.start.offset===1&&r.end.offset===1){F=G.innerHTML;if(/
    /i.test(F)){F=F.replace(/
    /i,"​")}if(//i.test(F)){F=F.replace(//i,"​")}if(/()+/i.test(F)){F=__.replace(/()+/i,"")}if(/<\/span>(<\/span>)+/i.test(F)){F=__.replace(/<\/span>(<\/span>)+/i,"")}if(/<\/span>/i.test(F)){F=F.replace(/<\/span>/i,"")}w="
    "+F+"
    ";G.innerHTML=w;f.setSelectionToElementEnd(G.childNodes[0]);G=f.getSelectionElement()}else{if(G.tagName.toLowerCase()==="p"&&r&&r.start&&r.start.offset===1&&r.end.offset===1){F=G.innerHTML;if(/
    /i.test(F)){F=F.replace(/
    /i,"​");G.innerHTML=F}}else{if(G.tagName.toLowerCase()==="li"&&r&&r.start&&r.start.offset===r.end.offset){F=G.innerHTML;if(/
    /i.test(F)){F=F.replace(/
    /i,"");G.innerHTML=F}}}}}}}catch(J){}if(!G){return}var O=angular.element(G);var n=(G&&G.tagName&&G.tagName.toLowerCase())||"";if(s.toLowerCase()==="insertorderedlist"||s.toLowerCase()==="insertunorderedlist"){var A=a((s.toLowerCase()==="insertorderedlist")?"ol":"ul");var N=f.getOnlySelectedElements();if(N.length>1&&(n==="ol"||n==="ul")){return b(O,N,A,A===n,l)}if(n===A){if(O[0].childNodes.length!==N.length&&N.length===1){O=angular.element(N[0]);return j(O.parent(),O,A,true,l)}else{return c(O,l)}}else{if(n==="li"&&O.parent()[0].tagName.toLowerCase()===A&&O.parent().children().length===1){return c(O.parent(),l)}else{if(n==="li"&&O.parent()[0].tagName.toLowerCase()!==A&&O.parent().children().length===1){return d(O.parent(),A)}else{if(n.match(BLOCKELEMENTS)&&!O.hasClass("ta-bind")){if(N.length){if(O[0].childNodes.length!==N.length&&N.length===1){O=angular.element(N[0]);return j(O.parent(),O,A,A===n,l)}}if(n==="ol"||n==="ul"){return d(O,A)}else{var B=false;angular.forEach(O.children(),function(R){if(R.tagName.match(BLOCKELEMENTS)){B=true}});if(B){return h(O.children(),O,A)}else{return h([angular.element("
    "+G.innerHTML+"
    ")[0]],O,A)}}}else{if(n.match(BLOCKELEMENTS)){t=f.getOnlySelectedElements();if(t.length===0){o=angular.element("<"+A+">
  • "+G.innerHTML+"
  • ");O.html("");O.append(o)}else{if(t.length===1&&(t[0].tagName.toLowerCase()==="ol"||t[0].tagName.toLowerCase()==="ul")){if(t[0].tagName.toLowerCase()===A){return c(angular.element(t[0]),l)}else{return d(angular.element(t[0]),A)}}else{z="";var u=[];for(H=0;H"+L[0].innerHTML+""}}}u.unshift(L)}}o=angular.element("<"+A+">"+z+"");u.pop().replaceWith(o);angular.forEach(u,function(R){R.remove()})}}f.setSelectionToElementEnd(o[0]);return}}}}}}else{if(s.toLowerCase()==="formatblock"){C=q.toLowerCase().replace(/[<>]/ig,"");if(C.trim()==="default"){C=l;q="<"+l+">"}if(n==="li"){o=O.parent()}else{o=O}while(!o[0].tagName||!o[0].tagName.match(BLOCKELEMENTS)&&!o.parent().attr("contenteditable")){o=o.parent();n=(o[0].tagName||"").toLowerCase()}if(n===C){t=o.children();var K=false;for(H=0;H");P[0].innerHTML=I[H].outerHTML;I[H]=P[0]}v.parent()[0].insertBefore(I[H],v[0])}v.remove()}else{if(n.match(LISTELEMENTS)){o.wrap(q)}else{t=f.getOnlySelectedElements();if(t.length===0){t=[o[0]]}for(H=0;H1){t=t.filter(function(T,S,R){return !(T.nodeName.toLowerCase()==="div"&&/^taTextElement/.test(T.id))})}if(angular.element(t[0]).hasClass("ta-bind")){o=angular.element(q);o[0].innerHTML=t[0].innerHTML;t[0].innerHTML=o[0].outerHTML}else{if(C==="blockquote"){z="";for(H=0;H=0;H--){if(t[H].parentNode){t[H].parentNode.removeChild(t[H])}}}else{if(C==="pre"&&f.getStateShiftKey()){z="";for(H=0;H=0;H--){if(t[H].parentNode){t[H].parentNode.removeChild(t[H])}}}else{for(H=0;H',M="",x=f.getSelection();if(x.collapsed){f.insertHtml(y+q+M,k)}else{if(rangy.getSelection().getRangeAt(0).canSurroundContents()){var E=angular.element(y+M)[0];rangy.getSelection().getRangeAt(0).surroundContents(E)}}return}else{if(s.toLowerCase()==="inserthtml"){f.insertHtml(q,k);return}}}}try{e[0].execCommand(s,m,q)}catch(J){}}}}]).service("taSelection",["$document","taDOM","$log",function(g,b,e){var a=g[0];var f;var d=function(h,i){if(h.tagName&&h.tagName.match(/^br$/i)&&i===0&&!h.previousSibling){return{element:h.parentNode,offset:0}}else{return{element:h,offset:i}}};var c={getSelection:function(){var i;try{i=rangy.getSelection().getRangeAt(0)}catch(k){return undefined}var h=i.commonAncestorContainer;var j={start:d(i.startContainer,i.startOffset),end:d(i.endContainer,i.endOffset),collapsed:i.collapsed};if(h.nodeType===3){if(h.parentNode.nodeName.toLowerCase()==="div"&&/^taTextElement/.test(h.parentNode.id)){}else{h=h.parentNode}}if(h.nodeName.toLowerCase()==="div"&&/^taTextElement/.test(h.id)){j.start.element=h.childNodes[j.start.offset];j.end.element=h.childNodes[j.end.offset];j.container=h}else{if(h.parentNode===j.start.element||h.parentNode===j.end.element){j.container=h.parentNode}else{j.container=h}}return j},updateLeftArrowKey:function(n){var j=rangy.getSelection().getRangeAt(0);if(j&&j.collapsed){var o=c.getFlattenedDom(j);if(!o.findIndex){return}var l=j.startContainer;var i=o.findIndex(function(q,m){if(q.node===l){return true}var r=q.parents.indexOf(l);return(r!==-1)});var h;var k;o.forEach(function(q,m){q.parents.forEach(function(s,r){})});if(i+10){p=o[i-1].node}if(j.startOffset===0&&p){h=/^\ufeff([^\ufeff]*)$/.exec(p.textContent);if(h){c.setSelectionToElementEnd(p);return}}}return},updateRightArrowKey:function(n){if(false){var p=rangy.getSelection().getRangeAt(0);if(p&&p.collapsed){var j=c.getFlattenedDom(p);if(!j.findIndex){return}var r=p.startContainer;var q=j.findIndex(function(m,i){if(m.node===r){return true}var s=m.parents.indexOf(r);return(s!==-1)});var l;var o;var k;var h=j.findIndex(function(t,s){if(t.textContent){var i=/^\ufeff([^\ufeff]*)$/.exec(t.textContent);if(i){return true}else{return false}}else{return false}});if(h===-1){return}r=j[q];if(r&&r.textContent){k=/^\ufeff([^\ufeff]*)$/.exec(r.textContent);if(k&&p.startOffset-1===k[1].length){return}}if(j&&p.startOffset===0){q=j.indexOf(p.startContainer);if(q!==-1&&q>0){r=j[q-1];if(r.textContent){k=/\ufeff([^\ufeff]*)$/.exec(r.textContent);if(k&&true||p.startOffset===k[1].length+1){return}}}}}}},getFlattenedDom:function(k){var l=k.commonAncestorContainer.parentNode;if(!l){return k.commonAncestorContainer.childNodes}var j=Array.prototype.slice.call(l.childNodes);var i=j.indexOf(k.startContainer);if(i+10){}else{if(l.parentNode){l=l.parentNode}}j=[];function h(m){if(m.node.childNodes.length){var n=Array.prototype.slice.call(m.node.childNodes);n.forEach(function(p){var o=m.parents.slice();if(o.slice(-1)[0]!==m.node){o.push(m.node)}h({parents:o,node:p})})}else{j.push({parents:m.parents,node:m.node})}}h({parents:[l],node:l});return j},getOnlySelectedElements:function(){var i=rangy.getSelection().getRangeAt(0);var h=i.commonAncestorContainer;h=h.nodeType===3?h.parentNode:h;return i.getNodes([1],function(j){return j.parentNode===h})},getAllSelectedElements:function(){var l=rangy.getSelection().getRangeAt(0);var j=l.commonAncestorContainer;j=j.nodeType===3?j.parentNode:j;var n=l.getNodes([1],function(i){return i.parentNode===j});var k=j.innerHTML;k=k.replace(/]+>\ufeff?<\/span>/ig,"");if(k===l.toHtml()&&(!(j.nodeName.toLowerCase()==="div"&&/^taTextElement/.test(j.id)))){var h=[];for(var m=n.length;m--;h.unshift(n[m])){}n=h;n.push(j)}return n},getSelectionElement:function(){var h=c.getSelection();if(h){return c.getSelection().container}else{return undefined}},setSelection:function(k,j,l,h){var i=rangy.createRange();i.setStart(k,l);i.setEnd(j,h);rangy.getSelection().setSingleRange(i)},setSelectionBeforeElement:function(i){var h=rangy.createRange();h.selectNode(i);h.collapse(true);rangy.getSelection().setSingleRange(h)},setSelectionAfterElement:function(i){var h=rangy.createRange();h.selectNode(i);h.collapse(false);rangy.getSelection().setSingleRange(h)},setSelectionToElementStart:function(i){var h=rangy.createRange();h.selectNodeContents(i);h.collapse(true);rangy.getSelection().setSingleRange(h)},setSelectionToElementEnd:function(i){var h=rangy.createRange();h.selectNodeContents(i);h.collapse(false);if(i.childNodes&&i.childNodes[i.childNodes.length-1]&&i.childNodes[i.childNodes.length-1].nodeName==="br"){h.startOffset=h.endOffset=h.startOffset-1}rangy.getSelection().setSingleRange(h)},setStateShiftKey:function(h){f=h},getStateShiftKey:function(){return f},insertHtml:function(s,w){var v,t,y,k,q,j,h;var p=angular.element("
    "+s+"
    ");var r=rangy.getSelection().getRangeAt(0);var x=a.createDocumentFragment();var n=p[0].childNodes;var o=true;if(n.length>0){k=[];for(y=0;y)$/i.test(r.startContainer.innerHTML)){r.selectNode(r.startContainer)}}else{o=true;j=x=a.createTextNode(s)}if(o){r.deleteContents()}else{if(r.collapsed&&r.startContainer!==w){if(r.startContainer.innerHTML&&r.startContainer.innerHTML.match(/^<[^>]*>$/i)){v=r.startContainer;if(r.startOffset===1){r.setStartAfter(v);r.setEndAfter(v)}else{r.setStartBefore(v);r.setEndBefore(v)}}else{if(r.startContainer.nodeType===3&&r.startContainer.parentNode!==w){v=r.startContainer.parentNode;t=v.cloneNode();b.splitNodes(v.childNodes,v,t,r.startContainer,r.startOffset);while(!VALIDELEMENTS.test(v.nodeName)){angular.element(v).after(t);v=v.parentNode;var l=t;t=v.cloneNode();b.splitNodes(v.childNodes,v,t,l)}}else{v=r.startContainer;t=v.cloneNode();b.splitNodes(v.childNodes,v,t,undefined,undefined,r.startOffset)}angular.element(v).after(t);r.setStartAfter(v);r.setEndAfter(v);if(/^(|)$/i.test(v.innerHTML.trim())){r.setStartBefore(v);r.setEndBefore(v);angular.element(v).remove()}if(/^(|)$/i.test(t.innerHTML.trim())){angular.element(t).remove()}if(v.nodeName.toLowerCase()==="li"){h=a.createDocumentFragment();for(q=0;q");b.transferChildNodes(x.childNodes[q],p[0]);b.transferNodeAttributes(x.childNodes[q],p[0]);h.appendChild(p[0])}x=h;if(j){j=x.childNodes[x.childNodes.length-1];j=j.childNodes[j.childNodes.length-1]}}}}else{r.deleteContents()}}r.insertNode(x);if(j){c.setSelectionToElementEnd(j)}}};return c}]).service("taDOM",function(){var a={getByAttribute:function(b,c){var d=[];var e=b.children();if(e.length){angular.forEach(e,function(f){d=d.concat(a.getByAttribute(angular.element(f),c))})}if(b.attr(c)!==undefined){d.push(b)}return d},transferChildNodes:function(b,c){c.innerHTML="";while(b.childNodes.length>0){c.appendChild(b.childNodes[0])}return c},splitNodes:function(c,g,f,b,i,d){if(!b&&isNaN(d)){throw new Error("taDOM.splitNodes requires a splitNode or splitIndex")}var e=document.createDocumentFragment();var j=document.createDocumentFragment();var h=0;while(c.length>0&&(isNaN(d)||d!==h)&&c[0]!==b){e.appendChild(c[0]);h++}if(!isNaN(i)&&i>=0&&c[0]){e.appendChild(document.createTextNode(c[0].nodeValue.substring(0,i)));c[0].nodeValue=c[0].nodeValue.substring(i)}while(c.length>0){j.appendChild(c[0])}a.transferChildNodes(e,g);a.transferChildNodes(j,f)},transferNodeAttributes:function(c,d){for(var b=0;b




    © 2015 - 2025 Weber Informatics LLC | Privacy Policy