-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathunorphanize.jquery.min.js
1 lines (1 loc) · 3.54 KB
/
unorphanize.jquery.min.js
1
!function(t){"object"==typeof module&&"object"==typeof module.exports?t(require("jquery"),window,document):t(jQuery,window,document)}(function($,t,s,i){function e(t,s){this.element=t,this.settings=$.extend({},a,s),this._defaults=a,this._name=r,this.init()}Array.prototype.filter||(Array.prototype.filter=function(t){if(this===i||null===this)throw new TypeError(this+"is not an object");if(!(t instanceof Function))throw new TypeError(t+" is not a function");for(var s,e=Object(this),r=arguments[1],a=e instanceof String?e.split(""):e,n=Math.max(Math.min(a.length,9007199254740991),0)||0,h=-1,o=[];++h<n;)s=a[h],h in a&&t.call(r,s,h,e)&&o.push(s);return o}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t,s){var i;if(null===this)throw new TypeError("“this” is null or not defined");var e=Object(this),r=e.length>>>0;if(0===r)return-1;var a=+s||0;if(Math.abs(a)===1/0&&(a=0),a>=r)return-1;for(i=Math.max(a>=0?a:r-Math.abs(a),0);i<r;){if(i in e&&e[i]===t)return i;i++}return-1});var r="unorphanize",a={words:2,wrapEl:"",className:"",append:""};$.extend(e.prototype,{init:function(){var t=this,s=$(this.element);if(0===$.trim(s.text()).length)return!1;this.text=$.trim(s.html()),this.startTags=this.text.match(/<([A-Z][A-Z0-9]*)\b[^>]*>/gi),this.startTagsCount=null!==this.startTags?this.startTags.length:0,this.startPlaceholders=[];for(var i=0;i<this.startTagsCount;i++)this.startPlaceholders.push("__"+i+"__"),this.text=this.text.replace(t.startTags[i],t.startPlaceholders[i]);this.endTags=this.text.match(/<\/[A-Z][A-Z0-9]*>/gi),this.endTagsCount=null!==this.endTags?this.endTags.length:0,this.endPlaceholders=[];for(var i=0;i<this.endTagsCount;i++)this.endPlaceholders.push("~~"+i+"~~"),this.text=this.text.replace(t.endTags[i],t.endPlaceholders[i]);this.wordArray=this.text.split(/\s+/);var e=1;this.wordPositions=[],this.cleanWordArray=this.wordArray.map(function(s,i){return s.match(/__[0-9]+__\b/gi)||s.match(/~~[0-9]+~~\b/gi)?(e++,!1):(t.wordPositions.push(i),s)}),this.cleanWordArray=this.cleanWordArray.filter(function(t){return t}),"number"!=typeof this.settings.words||this.settings.words<1?this.settings.words=this._defaults.words:1===this.settings.words?(this.settings.wrapEl=this.settings.wrapEl.length?this.settings.wrapEl:"span",this.settings.className=this.settings.className.length?this.settings.className:"u-nowrap"):this.settings.words>=this.cleanWordArray.length&&(this.settings.words=this.cleanWordArray.length),this.lastWordPos=this.cleanWordArray.length-this.settings.words,this.lastWordIndex=this.wordPositions[this.lastWordPos],this.firstPart=t.wordArray.slice(0,t.lastWordIndex).join(" "),this.lastPart=t.wordArray.slice(t.lastWordIndex).join(" "),"string"!=typeof this.settings.wrapEl&&(this.settings.wrapEl=this._defaults.wrapEl),"string"!=typeof this.settings.className&&(this.settings.className=this._defaults.className),"string"!=typeof this.settings.append&&(this.settings.append=this._defaults.append),this.settings.wrapEl?this.text=this.firstPart+" <"+this.settings.wrapEl+' class="'+this.settings.className+'">'+this.lastPart+this.settings.append+"</"+this.settings.wrapEl+">":(this.lastPart=this.lastPart.split(" ").join(" "),this.text=this.firstPart+" "+this.lastPart);for(var i=0;i<this.startTagsCount;i++){var r=new RegExp(this.startPlaceholders[i]);this.text=this.text.replace(r,this.startTags[i])}for(var i=0;i<this.endTagsCount;i++){var r=new RegExp(this.endPlaceholders[i]);this.text=this.text.replace(r,this.endTags[i])}s.html(this.text)}}),$.fn[r]=function(t){return this.each(function(){$.data(this,"plugin_"+r)||$.data(this,"plugin_"+r,new e(this,t))})}});