MDL-62497 javascript: fix truncate.js
[moodle.git] / lib / amd / build / truncate.min.js
blob7a3cd071e6dca8cf6de8a07afc2cc60137d86a8f
1 define ("core/truncate",["jquery"],function(a){var b=/(\s*\S+|\s)$/,c=/^(\S*)/,d=/\s/,e=function(a,b){var c=a+"",d=c.length,e=b?+b:0;if(e!=e){e=0}if(-1>=e||e>=d){return""}e=0|e;var f=c.charCodeAt(e),g,h=e+1,i=1;if(55296<=f&&56319>=f&&d>h){g=c.charCodeAt(h);if(56320<=g&&57343>=g){i=2}}return i},f=function(a){for(var b=0,c=0;c<a.length;c+=e(a,c)){b++}return b},g=function(a,b){if(!a.length){return 0}var c=0,d=0;do{c+=e(a,c);d++}while(c<a.length&&d<b);return c};a.truncate=function(b,c){return a("<div></div>").append(b).truncate(c).html()};a.fn.truncate=function(e){if(!isNaN(parseFloat(e)))e={length:e};var h=a.extend({},a.truncate.defaults,e);return this.each(function(){var e=a(this);if(h.noBreaks)e.find("br").replaceWith(" ");var j=h.ellipsis.length,k=e.text(),l=f(k),m=l-h.length+j;if(l<h.length)return;if(h.stripTags)e.text(k);if(h.words&&0<m){var n=k.slice(0,g(k,h.length-j)+1),o=n.replace(b,""),p=f(o),q=n.match(d)?!1:!0;if(h.keepFirstWord&&0===p){m=l-f(c.exec(k)[0])-j}else if(q&&0===p){m=l-h.length+j}else{m=l-p-1}}if(m>l){m=l-h.length}if(0>m||!m&&!h.truncated)return;a.each(e.contents().get().reverse(),function(b,c){var d=a(c),e=d.text(),i=f(e);if(i<=m){h.truncated=!0;m-=i;d.remove();return}if(3===c.nodeType){var k=i-m;k=0<=k?g(e,k):0;a(c.splitText(k)).replaceWith(h.ellipsis);return!1}d.truncate(a.extend(h,{length:i-m+j}));return!1})})};a.truncate.defaults={stripTags:!1,words:!1,keepFirstWord:!1,noBreaks:!1,length:1/0,ellipsis:"\u2026"};return{truncate:a.truncate}});
2 //# sourceMappingURL=truncate.min.js.map