-
-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathrestables.min.js
8 lines (8 loc) · 3.12 KB
/
restables.min.js
1
2
3
4
5
6
7
8
/**
* resTables - jQuery plugin for responsive tables
* Copyright (C) 2011-2016 Codefog
* @author Codefog <http://codefog.pl>
* @author Kamil Kuzminski <[email protected]>
* @license MIT
*/
!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){"use strict";function s(s,i){this.element=t(s),this.settings=t.extend({},n,i),this._defaults=n,this._name=e,this.init()}var e="resTables",n={merge:{},move:{},skip:[],span:[],cssClassOrigin:"restables-origin",cssClassClone:"restables-clone",uniqueAttributes:["id","for"],attributeSuffix:"-restables-clone",cloneCallback:null,preserveCellClasses:!0};t.extend(s.prototype,{init:function(){this.buildStructure(),this.mergeColumns(),this.settings.span.length>0&&this.spanColumns(),this.moveColumns(),this.settings.skip.length>0&&this.skipColumns(),this.generateTable()},buildStructure:function(){var s=this;s.headers=[],s.element.find("thead").find("th").each(function(){var e=t(this);s.headers.push({cssClass:e.attr("class")||"",html:e.html()})}),s.structure=[],s.element.find("tbody").find("tr").each(function(){var e=[];t(this).find("td").each(function(n){var i=t(this);e.push([s.headers[n],{cssClass:i.attr("class")||"",html:i.html().trim()}])}),s.structure.push(e)})},mergeColumns:function(){var t=this;for(var s in t.settings.merge)t.structure.forEach(function(e,n){t.settings.merge[s].forEach(function(e){t.structure[n][s][1].html+=" "+t.structure[n][e][1].html,t.structure[n].splice(e,1)})})},moveColumns:function(){var t=this;for(var s in t.settings.move)t.structure.forEach(function(e,n){t.structure[n].splice(t.settings.move[s],0,t.structure[n].splice(s,1)[0])})},skipColumns:function(){var s=this;s.structure.forEach(function(e,n){s.structure[n]=s.structure[n].filter(function(e,n){return t.inArray(n,s.settings.skip)===-1})})},spanColumns:function(){var t=this;t.structure.forEach(function(s,e){t.settings.span.forEach(function(s){t.structure[e][s]=[t.structure[e][s][1]]})})},generateTable:function(){var s=this,e=t(s.element[0].cloneNode(!1));s.structure.forEach(function(n){var i=t("<tbody/>");n.forEach(function(e){var n=t("<tr/>"),r=t("<td/>").html(e[0].html).appendTo(n);if(s.settings.preserveCellClasses&&e[0].cssClass&&r.attr("class",e[0].cssClass),e.hasOwnProperty(1)){var u=t("<td/>").html(e[1].html).appendTo(n);s.settings.preserveCellClasses&&e[1].cssClass&&u.attr("class",e[1].cssClass)}else r.attr("colspan",2);n.appendTo(i)}),i.appendTo(e)}),s.settings.uniqueAttributes.length>0&&s.makeAttributesUnique(e),"function"==typeof s.settings.cloneCallback&&s.settings.cloneCallback(e),e.addClass(s.settings.cssClassClone).insertAfter(s.element.addClass(s.settings.cssClassOrigin))},makeAttributesUnique:function(s){var e=this,n=[];e.settings.uniqueAttributes.forEach(function(t){n.push("["+t+"]")}),s.find(n.join(",")).each(function(){var s=t(this);e.settings.uniqueAttributes.forEach(function(t){s.attr(t)&&s.attr(t,s.attr(t)+e.settings.attributeSuffix)})})}}),t.fn[e]=function(n){return this.each(function(){t.data(this,"plugin_"+e)||t.data(this,"plugin_"+e,new s(this,n))})}});