-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjquery.flexitable.min.js
1 lines (1 loc) · 6.17 KB
/
jquery.flexitable.min.js
1
!function(e,t){"use strict";function l(l,o){function n(){var e=!z.lazy_init;l.$table.data("Flexitable")||(i(),a(e),z.lazy_init?(l.$table.data("Flexitable",l),C.$button.one("click",function(){b(),r().done(function(){$(!0)})})):r())}function i(){l.id||(l.id="flexitable-"+o,l.$table[0].id=l.id)}function a(e){l.cfg.use_toggle_button&&(u(),e&&b(),g(),l.$table.trigger("toggle-menu-placed.flexitable",[C,l.$toolbar]))}function r(){var t=l.$table.find("> thead th");return t.length?e.deferredEach(t,s).progress(c).then(function(){z.responsive&&m(!0),l.cfg.use_toggle_button&&k.length&&(f(),h(),y(),d()),l.$table.data("Flexitable",l),l.$table.trigger("toggle-initialized.flexitable")}):void 0}function s(t,o,n){var i,a,r=e(o),s=r.data("flexitablePriorityClass"),c=t+1,u=z.lazy_col_cache&&!n?null:l.$table.find("> thead th:nth-child("+c+"), > tbody td:nth-child("+c+")");if(n)return void(k[t].$cells=u);if(s&&z.responsive)for(i=0,a=u.length;a>i;i++)u[i].className+=" "+s;k[t]={is_visible:"table-cell"===r.css("display"),$th:r,heading_text:r.text(),is_persistent_col:"persist"===s,$cells:u}}function c(e,t,o){function n(){C.$button.height(C.$button.height()),C.$progress_bar.removeClass("flexitable-hidden")}function i(){C.$progress_bar.addClass("flexitable-hidden"),C.$button.removeAttr("style")}if(l.cfg.use_toggle_button){var a=Math.round(100*e)+"%",r=1===t,s=t===o;C.$progress_bar.$amount.text(a),C.$progress_bar.css("width",a),r?n():s&&i()}}function u(){C.$button=e('<button type="button" />').text(l.cfg.toggle_button_txt),C.$list=e("<ul />"),C.$progress_bar=e('<div class="flexitable-toggle-progress-meter flexitable-hidden" />'),C.$progress_bar.$amount=e('<span class="flexitable-toggle-progress-amt" />'),C.$button.append(C.$progress_bar.append(C.$progress_bar.$amount)),C.append(C.$button).append(C.$list)}function f(){var t,o,n,i,a=l.id+"_toggle-col-",r=[];for(C.$list.is_populated&&C.$list.empty(),t=0,o=k.length;o>t;t++)k[t].is_persistent_col||(n=e("<input />",{type:"checkbox",name:"toggle-cols",id:a+t,value:t,"data-flexitable-id":l.id}),n.prop("checked",k[t].is_visible),i=e("<label />",{"for":a+t,text:k[t].heading_text}),r.push(e("<li />").append(n).append(i)));C.$list.append(r),C.$list.is_populated=!0}function g(){var t,o;l.$toolbar.append(C).addClass("flexitable-toolbar-has-widgets"),l.$toolbar.is_inserted||(t="after"===l.cfg.toolbar_before_or_after.toLowerCase()?"insertAfter":"insertBefore",o=l.cfg.toolbar_position_target.jquery?l.cfg.toolbar_position_target:e(l.cfg.toolbar_position_target),l.$toolbar[t](o),l.$toolbar.is_inserted=!0)}function b(){C.$button.prop("disabled",!0)}function d(){C.$button.prop("disabled",!1)}function _(){function t(e,t){var l,o,n=z.responsive?t.$th.data("flexitablePriorityClass"):null,i=t.$cells;l=n?n+" ":"",l+="flexitable-cell-hidden flexitable-cell-shown",o="."+l.split(" ").join(", ."),i&&i.length&&i.filter(o).removeClass(l)}if(l.$table.data("Flexitable"))return l.cfg.use_toggle_button&&(C.hasClass("flexitable-menu-closed")||$(!1),b()),m(!1),e(window).add(document).off(".flexitable"),e.deferredEach(k,t).progress(function(e,t,l){c(1-e,t,l)}).always(function(){l.$toolbar.remove(),l.$table.removeData("Flexitable"),l.$table.trigger("toggle-destroyed.flexitable").off(".flexitable")})}function p(e,t,l){var o,n;return function(){var i=this,a=arguments,r=function(){o=null,l||(n=e.apply(i,a))},s=l&&!o;return clearTimeout(o),o=setTimeout(r,t),s&&(n=e.apply(i,a)),n}}function h(){C.on("click","button",function(){$(C.hasClass("flexitable-menu-closed"))}).on("change",'input[name="toggle-cols"]',function(e){x(e.target.value,e.target.checked)}),e(window).on("orientationchange.flexitable resize.flexitable",p(y,500)),e(document).on("click.flexitable",w)}function $(e){e=Boolean(e),C.toggleClass("flexitable-menu-closed",!e)}function x(e,l){if(e=parseInt(e,10),l=Boolean(l),isNaN(e))throw new Error("_toggleColumnVisibility: col_index arg is missing or a non-number");if(k[e]===t)throw new Error("_toggleColumnVisibility: col_index arg refers to a non-existent column");z.lazy_col_cache&&!k[e].$cells&&s(e,k[e].$th[0],!0),k[e].$cells.toggleClass("flexitable-cell-shown",l).toggleClass("flexitable-cell-hidden",!l),k[e].is_visible=l}function v(e,t){var l=C.$list.find("input[value="+e+"]")[0];if(t=Boolean(t),!l)throw new Error("_toggleMenuCheckbox: checkbox not found");l.checked=t}function m(e){e=Boolean(e),l.$table.toggleClass("flexitable-active",e)}function y(){var e,t,l;for(e=0,t=k.length;t>e;e++)l=k[e].is_visible,k[e].is_visible="table-cell"===k[e].$th.css("display"),l!==k[e].is_visible&&v(e,k[e].is_visible)}function w(e){C.find(e.target).length||$(!1)}var C=e('<div class="flexitable-menu flexitable-menu-closed" />'),k=[],z={lazy_init:l.cfg.use_toggle_button&&l.cfg.init_toggle_on_button_click,lazy_col_cache:l.cfg.use_toggle_button&&l.cfg.lazy_column_caching};return z.responsive=!z.lazy_init&&!z.lazy_col_cache,{init:n,destroy:_}}e.fn.flexitable=function(t){return this.each(function(o){var n=e(this),i=e.extend({toggle_columns:!0,use_toggle_button:!0,toggle_button_txt:"Columns:",init_toggle_on_button_click:!1,lazy_column_caching:!1,toolbar_position_target:n,toolbar_before_or_after:"before",destroy:!1},t||{}),a=n.data("Flexitable")||{id:n[0].id,cfg:i,$table:n,$toolbar:e('<div class="flexitable-toolbar" />')};i.toggle_columns&&!a.toggler&&(a.toggler=l(a,o)),i.destroy?a.toggler.destroy():i.toggle_columns&&a.toggler.init()})}}(jQuery),function(e,t){"use strict";function l(t){for(var l=0,o=[];t>l;l++)o.push(e.Deferred());return o}function o(t){var l=t.length,o=e.type(t);return"function"===o||e.isWindow(t)?!1:1===t.nodeType&&l?!0:"array"===o||0===l||"number"==typeof l&&l>0&&l-1 in t}e.deferredEach=function(n,i){var a,r,s,c=0,u=n.length,f=o(n),g=f&&!u||e.isEmptyObject(n),b=!i||"function"!=typeof i,d=e.Deferred(),_=[];if(g)return d.reject(n,"error: empty collection").promise();if(b)return d.reject(n,"error: invalid callback").promise();if(f)a=l(u),(r=function(){u>c&&i.call(n[c],c,n[c++])!==!1&&setTimeout(r,1),a[c-1].resolve(),d.notify(c/u,c,u)})();else{for(s in n)_.push(s);a=l(_.length),r=function(){c<_.length&&i.call(n[_[c]],_[c],n[_[c++]])!==!1&&setTimeout(r,1),a[c-1].resolve(),d.notify(c/_.length,c,_.length)},r()}return e.when.apply(t,a).then(function(){var e=f?u:_.length;d.notify(1,c,e),d.resolve(n,"done")}),d.promise()}}(jQuery);