/* * FooTable v3 - FooTable is a jQuery plugin that aims to make HTML tables on smaller devices look awesome. * @version 3.1.6 * @link http://fooplugins.com * @copyright Steven Usher & Brad Vincent 2015 * @license Released under the GPLv3 license. */ !function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="/",i(i.s=0)}([function(t,e,i){t.exports=i(1)},function(t,e){var i,n,s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(t,e){window.console=window.console||{log:function(){},error:function(){}},t.fn.footable=function(t,i){return t=t||{},this.filter("table").each(function(n,s){e.init(s,t,i)})};var i={events:[]};e.__debug__=JSON.parse(localStorage.getItem("footable_debug"))||!1,e.__debug_options__=JSON.parse(localStorage.getItem("footable_debug_options"))||i,e.debug=function(n,s){if(!e.is.boolean(n))return e.__debug__;e.__debug__=n,e.__debug__?(localStorage.setItem("footable_debug",JSON.stringify(e.__debug__)),e.__debug_options__=t.extend(!0,{},i,s||{}),e.is.hash(s)&&localStorage.setItem("footable_debug_options",JSON.stringify(e.__debug_options__))):(localStorage.removeItem("footable_debug"),localStorage.removeItem("footable_debug_options"))},e.get=function(e){return t(e).first().data("__FooTable__")},e.init=function(t,i,n){var s=e.get(t);return s instanceof e.Table&&s.destroy(),new e.Table(t,i,n)},e.getRow=function(e){var i=t(e).closest("tr");return i.hasClass("footable-detail-row")&&(i=i.prev()),i.data("__FooTableRow__")}}(jQuery,FooTable=window.FooTable||{}),i=FooTable,n=function(){return!0},i.arr={},i.arr.each=function(t,e){if(i.is.array(t)&&i.is.fn(e))for(var n=0,s=t.length;n0},t.is.moment=function(e){return t.is.defined(window.moment)&&t.is.object(e)&&t.is.boolean(e._isAMomentObject)},t.is.emptyObject=function(e){if(!t.is.hash(e))return!1;for(var i in e)if(e.hasOwnProperty(i))return!1;return!0},t.is.emptyArray=function(e){return!t.is.array(e)||0===e.length},t.is.emptyString=function(e){return!t.is.string(e)||0===e.length}}(FooTable),function(t){t.str={},t.str.contains=function(e,i,n){return!t.is.emptyString(e)&&!t.is.emptyString(i)&&(i.length<=e.length&&-1!==(n?e.toUpperCase().indexOf(i.toUpperCase()):e.indexOf(i)))},t.str.containsExact=function(e,i,n){return!(t.is.emptyString(e)||t.is.emptyString(i)||i.length>e.length)&&(n||(e=e.toLowerCase(),i=i.toLowerCase()),e.includes(i))},t.str.containsWord=function(e,i,n){if(t.is.emptyString(e)||t.is.emptyString(i)||e.length1)throw Error("Second argument not supported");if(!t.is.object(i))throw TypeError("Argument must be an object");e.prototype=i;var n=new e;return e.prototype=null,n}}());var i=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;e.__extend__=function(e,n,s,o){var r;e[n]=t.is.fn(o)&&i.test(s)?(r=s,function(){var t,e;return t=this._super,this._super=o,e=r.apply(this,arguments),this._super=t,e}):s},e.extend=function(n,s){var o=Array.prototype.slice.call(arguments);function r(e,n,s,o){var r,a;e[n]=t.is.fn(o)&&i.test(s)?(r=s,a=o,function(){var t,e;return t=this._super,this._super=a,e=r.apply(this,arguments),this._super=t,e}):s}if(n=o.shift(),s=o.shift(),t.is.hash(n)){var a=Object.create(this.prototype),l=this.prototype;for(var c in n)"__ctor__"!==c&&r(a,c,n[c],l[c]);var u=t.is.fn(a.__ctor__)?a.__ctor__:function(){if(!t.is.fn(this.construct))throw new SyntaxError('FooTable class objects must be constructed with the "new" keyword.');this.construct.apply(this,arguments)};return a.construct=t.is.fn(a.construct)?a.construct:function(){},u.prototype=a,a.constructor=u,u.extend=e.extend,u}t.is.string(n)&&t.is.fn(s)&&r(this.prototype,n,s,this.prototype[n])},t.Class=e,t.ClassFactory=t.Class.extend({construct:function(){this.registered={}},contains:function(e){return t.is.defined(this.registered[e])},names:function(){var t,e=[];for(t in this.registered)this.registered.hasOwnProperty(t)&&e.push(t);return e},register:function(e,i,n){if(t.is.string(e)&&t.is.fn(i)){var s=this.registered[e];this.registered[e]={name:e,klass:i,priority:t.is.number(n)?n:t.is.defined(s)?s.priority:0}}},load:function(e,i,n){var s,o,r=this,a=Array.prototype.slice.call(arguments),l=[],c=[];for(s in e=a.shift()||{},r.registered)if(r.registered.hasOwnProperty(s)){var u=r.registered[s];e.hasOwnProperty(s)&&(o=e[s],t.is.string(o)&&(o=t.getFnPointer(e[s])),t.is.fn(o)&&(u={name:s,klass:o,priority:r.registered[s].priority})),l.push(u)}for(s in e)e.hasOwnProperty(s)&&!r.registered.hasOwnProperty(s)&&(o=e[s],t.is.string(o)&&(o=t.getFnPointer(e[s])),t.is.fn(o)&&l.push({name:s,klass:o,priority:0}));return l.sort(function(t,e){return e.priority-t.priority}),t.arr.each(l,function(e){t.is.fn(e.klass)&&c.push(r._make(e.klass,a))}),c},make:function(e,i,n){var s,o=Array.prototype.slice.call(arguments);return e=o.shift(),s=this.registered[e],t.is.fn(s.klass)?this._make(s.klass,o):null},_make:function(t,e){function i(){return t.apply(this,e)}return i.prototype=t.prototype,new i}})}(FooTable),function(t,e){e.css2json=function(i){if(e.is.emptyString(i))return{};for(var n,s,o,r={},a=i.split(";"),l=0,c=a.length;l")).data("value",this.value).contents().detach().end().append(this.format(this.value)),this._setClasses(this.$el),this._setStyle(this.$el),this.$detail=t("").addClass(this.row.classes.join(" ")).data("__FooTableCell__",this).append(t("")).append(t("")),this.created=!0)},collapse:function(){this.created&&(this.$detail.children("th").html(this.column.title),this.$el.clone().attr("id",this.$el.attr("id")?this.$el.attr("id")+"-detail":void 0).css("display","table-cell").html("").append(this.$el.contents().detach()).replaceAll(this.$detail.children("td").first()),e.is.jq(this.$detail.parent())||this.$detail.appendTo(this.row.$details.find(".footable-details > tbody")))},restore:function(){if(this.created){if(e.is.jq(this.$detail.parent())){var t=this.$detail.children("td").first();this.$el.attr("class",t.attr("class")).attr("style",t.attr("style")).css("display",this.column.hidden||!this.column.visible?"none":"table-cell").append(t.contents().detach())}this.$detail.detach()}},parse:function(){return this.column.parser.call(this.column,this.$el,this.ft.o)},format:function(t){return this.column.formatter.call(this.column,t,this.ft.o,this.row.value)},val:function(i,n,s){if(e.is.undef(i))return this.value;var o=e.is.hash(i)&&e.is.hash(i.options)&&e.is.defined(i.value);if(this.o=t.extend(!0,{classes:this.classes,style:this.style},o?i.options:{}),this.value=o?i.value:i,this.classes=e.is.array(this.o.classes)?this.o.classes:e.is.string(this.o.classes)?this.o.classes.match(/\S+/g):[],this.style=e.is.hash(this.o.style)?this.o.style:e.is.string(this.o.style)?e.css2json(this.o.style):{},s=!e.is.boolean(s)||s,this.created&&s){this.$el.data("value",this.value).empty();var r=this.$detail.children("td").first().empty(),a=e.is.jq(this.$detail.parent())?r:this.$el;a.append(this.format(this.value)),this._setClasses(a),this._setStyle(a),e.is.boolean(n)&&!n||this.row.draw()}},_setClasses:function(t){var i=!e.is.emptyArray(this.column.classes),n=!e.is.emptyArray(this.classes),s=null;t.removeAttr("class"),(i||n)&&(i&&n?s=this.classes.concat(this.column.classes).join(" "):i?s=this.column.classes.join(" "):n&&(s=this.classes.join(" ")),e.is.emptyString(s)||t.addClass(s))},_setStyle:function(i){var n=!e.is.emptyObject(this.column.style),s=!e.is.emptyObject(this.style),o=null;i.removeAttr("style"),(n||s)&&(n&&s?o=t.extend({},this.column.style,this.style):n?o=this.column.style:s&&(o=this.style),e.is.hash(o)&&i.css(o))}})}(jQuery,FooTable),function(t,e){e.Column=e.Class.extend({construct:function(t,i,n){this.ft=t,this.type=e.is.emptyString(n)?"text":n,this.virtual=!!e.is.boolean(i.virtual)&&i.virtual,this.$el=e.is.jq(i.$el)?i.$el:null,this.index=e.is.number(i.index)?i.index:-1,this.internal=!1,this.define(i),this.$create()},define:function(t){this.hidden=!!e.is.boolean(t.hidden)&&t.hidden,this.visible=!e.is.boolean(t.visible)||t.visible,this.name=e.is.string(t.name)?t.name:null,null==this.name&&(this.name="col"+(t.index+1)),this.title=e.is.string(t.title)?t.title:null,!this.virtual&&null==this.title&&e.is.jq(this.$el)&&(this.title=this.$el.html()),null==this.title&&(this.title="Column "+(t.index+1)),this.style=e.is.hash(t.style)?t.style:e.is.string(t.style)?e.css2json(t.style):{},this.classes=e.is.array(t.classes)?t.classes:e.is.string(t.classes)?t.classes.match(/\S+/g):[],this.parser=e.checkFnValue(this,t.parser,this.parser),this.formatter=e.checkFnValue(this,t.formatter,this.formatter)},$create:function(){(this.$el=!this.virtual&&e.is.jq(this.$el)?this.$el:t("")).html(this.title).addClass(this.classes.join(" ")).css(this.style)},parser:function(i){if(e.is.element(i)||e.is.jq(i)){var n=t(i).data("value");return e.is.defined(n)?n:t(i).html()}return e.is.defined(i)&&null!=i?i+"":null},formatter:function(t,e,i){return null==t?"":t},createCell:function(t){var i=e.is.jq(t.$el)?t.$el.children("td,th").get(this.index):null,n=e.is.hash(t.value)?t.value[this.name]:null;return new e.Cell(this.ft,t,this,i||n)}}),e.columns=new e.ClassFactory,e.columns.register("text",e.Column)}(jQuery,FooTable),function(t,e){e.Component=e.Class.extend({construct:function(t,i){if(!(t instanceof e.Table))throw new TypeError("The instance parameter must be an instance of FooTable.Table.");this.ft=t,this.enabled=!!e.is.boolean(i)&&i},preinit:function(t){},init:function(){},destroy:function(){},predraw:function(){},draw:function(){},postdraw:function(){}}),e.components=new e.ClassFactory}(jQuery,FooTable),function(t,e){e.Defaults=function(){this.stopPropagation=!1,this.on=null},e.defaults=new e.Defaults}(jQuery,FooTable),function(t,e){e.Row=e.Class.extend({construct:function(t,e,i){this.ft=t,this.columns=e,this.created=!1,this.define(i)},define:function(i){this.$el=e.is.element(i)||e.is.jq(i)?t(i):null,this.$toggle=t("",{class:"footable-toggle fooicon fooicon-plus"});var n=e.is.hash(i),s=n&&e.is.hash(i.options)&&e.is.hash(i.value);this.value=n?s?i.value:i:null,this.o=t.extend(!0,{expanded:!1,classes:null,style:null},s?i.options:{}),this.expanded=e.is.jq(this.$el)&&this.$el.data("expanded")||this.o.expanded,this.classes=e.is.jq(this.$el)&&this.$el.attr("class")?this.$el.attr("class").match(/\S+/g):e.is.array(this.o.classes)?this.o.classes:e.is.string(this.o.classes)?this.o.classes.match(/\S+/g):[],this.style=e.is.jq(this.$el)&&this.$el.attr("style")?e.css2json(this.$el.attr("style")):e.is.hash(this.o.style)?this.o.style:e.is.string(this.o.style)?e.css2json(this.o.style):{},this.cells=this.createCells();var o=this;o.value={},e.arr.each(o.cells,function(t){o.value[t.column.name]=t.val()})},$create:function(){if(!this.created){(this.$el=e.is.jq(this.$el)?this.$el:t("")).data("__FooTableRow__",this),this._setClasses(this.$el),this._setStyle(this.$el),"last"==this.ft.rows.toggleColumn&&this.$toggle.addClass("last-column"),this.$details=t("",{class:"footable-detail-row"}).append(t("",{colspan:this.ft.columns.visibleColspan}).append(t("",{class:"footable-details "+this.ft.classes.join(" ")}).append("")));var i=this;e.arr.each(i.cells,function(t){t.created||t.$create(),i.$el.append(t.$el)}),i.$el.off("click.ft.row").on("click.ft.row",{self:i},i._onToggle),this.created=!0}},createCells:function(){var t=this;return e.arr.map(t.columns,function(e){return e.createCell(t)})},val:function(i,n,s){var o=this;if(!e.is.hash(i))return e.is.hash(this.value)&&!e.is.emptyObject(this.value)||(this.value={},e.arr.each(this.cells,function(t){t.column.internal||(o.value[t.column.name]=t.val())})),this.value;this.collapse(!1);var r=e.is.hash(i),a=r&&e.is.hash(i.options)&&e.is.hash(i.value);if(this.o=t.extend(!0,{expanded:o.expanded,classes:o.classes,style:o.style},a?i.options:{}),this.expanded=this.o.expanded,this.classes=e.is.array(this.o.classes)?this.o.classes:e.is.string(this.o.classes)?this.o.classes.match(/\S+/g):[],this.style=e.is.hash(this.o.style)?this.o.style:e.is.string(this.o.style)?e.css2json(this.o.style):{},r)if(a&&(i=i.value),e.is.hash(this.value))for(var l in i)i.hasOwnProperty(l)&&(this.value[l]=i[l]);else this.value=i;else this.value=null;s=!e.is.boolean(s)||s,e.arr.each(this.cells,function(t){!t.column.internal&&e.is.defined(o.value[t.column.name])&&t.val(o.value[t.column.name],!1,s)}),this.created&&s&&(this._setClasses(this.$el),this._setStyle(this.$el),e.is.boolean(n)&&!n||this.draw())},_setClasses:function(t){var i=!e.is.emptyArray(this.classes),n=null;t.removeAttr("class"),i&&(n=this.classes.join(" "),e.is.emptyString(n)||t.addClass(n))},_setStyle:function(t){var i=!e.is.emptyObject(this.style),n=null;t.removeAttr("style"),i&&(n=this.style,e.is.hash(n)&&t.css(n))},expand:function(){if(this.created){var t=this;t.ft.raise("expand.ft.row",[t]).then(function(){t.__hidden__=e.arr.map(t.cells,function(t){return t.column.hidden&&t.column.visible?t:null}),t.__hidden__.length>0&&(t.$details.insertAfter(t.$el).children("td").first().attr("colspan",t.ft.columns.visibleColspan),e.arr.each(t.__hidden__,function(t){t.collapse()})),t.$el.attr("data-expanded",!0),t.$toggle.removeClass("fooicon-plus").addClass("fooicon-minus"),t.expanded=!0,t.ft.raise("expanded.ft.row",[t])})}},collapse:function(t){if(this.created){var i=this;i.ft.raise("collapse.ft.row",[i]).then(function(){e.arr.each(i.__hidden__,function(t){t.restore()}),i.$details.detach(),i.$el.removeAttr("data-expanded"),i.$toggle.removeClass("fooicon-minus").addClass("fooicon-plus"),e.is.boolean(t)&&!t||(i.expanded=!1),i.ft.raise("collapsed.ft.row",[i])})}},predraw:function(t){this.created&&(this.expanded&&this.collapse(!1),this.$toggle.detach(),(t=!e.is.boolean(t)||t)&&this.$el.detach())},draw:function(t){this.created||this.$create(),e.is.jq(t)&&t.append(this.$el);var i=this;e.arr.each(i.cells,function(t){t.$el.css("display",t.column.hidden||!t.column.visible?"none":"table-cell"),i.ft.rows.showToggle&&i.ft.columns.hasHidden&&("first"==i.ft.rows.toggleColumn&&t.column.index==i.ft.columns.firstVisibleIndex||"last"==i.ft.rows.toggleColumn&&t.column.index==i.ft.columns.lastVisibleIndex)&&t.$el.prepend(i.$toggle),t.$el.add(t.column.$el).removeClass("footable-first-visible footable-last-visible"),t.column.index==i.ft.columns.firstVisibleIndex&&t.$el.add(t.column.$el).addClass("footable-first-visible"),t.column.index==i.ft.columns.lastVisibleIndex&&t.$el.add(t.column.$el).addClass("footable-last-visible")}),this.expanded&&this.expand()},toggle:function(){this.created&&this.ft.columns.hasHidden&&(this.expanded?this.collapse():this.expand())},_onToggle:function(e){var i=e.data.self;t(e.target).is(i.ft.rows.toggleSelector)&&i.toggle()}})}(jQuery,FooTable),function(t,e){e.instances=[],e.Table=e.Class.extend({construct:function(i,n,s){this._resizeTimeout=null,this.id=e.instances.push(this),this.initialized=!1,this.$el=(e.is.jq(i)?i:t(i)).first(),this.$loader=t("
",{class:"footable-loader"}).append(t("",{class:"fooicon fooicon-loader"})),this.o=t.extend(!0,{},e.defaults,n),this.data=this.$el.data()||{},this.classes=[],this.components=e.components.load(e.is.hash(this.data.components)?this.data.components:this.o.components,this),this.breakpoints=this.use(FooTable.Breakpoints),this.columns=this.use(FooTable.Columns),this.rows=this.use(FooTable.Rows),this._construct(s)},_construct:function(t){var i=this;return this._preinit().then(function(){return i._init().then(function(){return i.raise("ready.ft.table").then(function(){e.is.fn(t)&&t.call(i,i)})})}).always(function(t){i.$el.show(),e.is.error(t)&&console.error("FooTable: unhandled error thrown during initialization.",t)})},_preinit:function(){var t=this;return this.raise("preinit.ft.table",[t.data]).then(function(){var i=(t.$el.attr("class")||"").match(/\S+/g)||[];t.o.ajax=e.checkFnValue(t,t.data.ajax,t.o.ajax),t.o.stopPropagation=e.is.boolean(t.data.stopPropagation)?t.data.stopPropagation:t.o.stopPropagation;for(var n=0,s=i.length;n")),0==s.length&&i.$el.append("
"),0==n.length&&i.$el.prepend(n=t("")),i.execute(!1,!0,"init").then(function(){return i.$el.data("__FooTable__",i),0==o.children("tr").length&&o.remove(),0==n.children("tr").length&&n.remove(),i.raise("postinit.ft.table").then(function(){return i.draw()}).always(function(){t(window).off("resize.ft"+i.id,i._onWindowResize).on("resize.ft"+i.id,{self:i},i._onWindowResize),i.initialized=!0})})})},destroy:function(){var i=this;return i.raise("destroy.ft.table").then(function(){return i.execute(!0,!0,"destroy").then(function(){i.$el.removeData("__FooTable__").removeClass("footable-"+i.id),e.is.hash(i.o.on)&&i.$el.off(i.o.on),t(window).off("resize.ft"+i.id,i._onWindowResize),i.initialized=!1,e.instances[i.id]=null})}).fail(function(t){e.is.error(t)&&console.error("FooTable: unhandled error thrown while destroying the plugin.",t)})},raise:function(i,n){var s=this,o=e.__debug__&&(e.is.emptyArray(e.__debug_options__.events)||e.arr.any(e.__debug_options__.events,function(t){return e.str.contains(i,t)}));return(n=n||[]).unshift(this),t.Deferred(function(e){var r=t.Event(i);1==s.o.stopPropagation&&s.$el.one(i,function(t){t.stopPropagation()}),o&&console.log("FooTable:"+i+": ",n),s.$el.trigger(r,n),r.isDefaultPrevented()?(o&&console.log('FooTable: default prevented for the "'+i+'" event.'),e.reject(r)):e.resolve(r)})},use:function(t){for(var e=0,i=this.components.length;e3&&(n[0]=n[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,this.thousandSeparator)),n.join(this.decimalSeparator)}}),e.columns.register("number",e.NumberColumn)}(jQuery,FooTable),function(t,e){e.ObjectColumn=e.Column.extend({construct:function(t,e){this._super(t,e,"object")},parser:function(i){if(e.is.element(i)||e.is.jq(i)){var n=t(i),s=n.data("value");if(e.is.object(s))return s;s=n.html();try{s=JSON.parse(s)}catch(t){s=null}return e.is.object(s)?s:null}return e.is.object(i)?i:null},formatter:function(t,i,n){return e.is.object(t)?JSON.stringify(t):""}}),e.columns.register("object",e.ObjectColumn)}(jQuery,FooTable),function(t,e){e.Breakpoint=e.Class.extend({construct:function(t,e){this.name=t,this.width=e}})}(jQuery,FooTable),function(t,e){e.Breakpoints=e.Component.extend({construct:function(t){this._super(t,!0),this.o=t.o,this.current=null,this.array=[],this.cascade=this.o.cascade,this.useParentWidth=this.o.useParentWidth,this.hidden=null,this._classNames="",this.getWidth=e.checkFnValue(this,this.o.getWidth,this.getWidth)},preinit:function(t){var i=this;return this.ft.raise("preinit.ft.breakpoints",[t]).then(function(){for(var n in i.cascade=e.is.boolean(t.cascade)?t.cascade:i.cascade,i.o.breakpoints=e.is.hash(t.breakpoints)?t.breakpoints:i.o.breakpoints,i.getWidth=e.checkFnValue(i,t.getWidth,i.getWidth),null==i.o.breakpoints&&(i.o.breakpoints={xs:480,sm:768,md:992,lg:1200}),i.o.breakpoints)i.o.breakpoints.hasOwnProperty(n)&&(i.array.push(new e.Breakpoint(n,i.o.breakpoints[n])),i._classNames+="breakpoint-"+n+" ");i.array.sort(function(t,e){return e.width-t.width})})},init:function(){var t=this;return this.ft.raise("init.ft.breakpoints").then(function(){t.current=t.get()})},draw:function(){this.ft.$el.removeClass(this._classNames).addClass("breakpoint-"+this.current.name)},calculate:function(){for(var t,i=null,n=[],s=null,o=this.getWidth(),r=0,a=this.array.length;r=t.width&&(!(s instanceof e.Breakpoint)||o=0&&to&&(o=t.index)}),o++;for(var r,a,l=0;l tr:last:has([data-breakpoints]), tbody > tr:first:has([data-breakpoints]), thead > tr:last, tbody > tr:first").first();if(c.length>0){var u=c.parent().is("tbody")&&c.children().length==c.children("td").length;u||(n.$header=c.addClass("footable-header")),c.children("td,th").each(function(e,i){o=t(i),(r=o.data()).index=e,r.$el=o,r.virtual=u,l.push(r)}),u&&(n.showHeader=!1)}e.is.array(n.o.columns)&&!e.is.emptyArray(n.o.columns)?(e.arr.each(n.o.columns,function(t,e){t.index=e,a.push(t)}),n.parseFinalize(i,s(a,l))):e.is.promise(n.o.columns)?n.o.columns.then(function(t){e.arr.each(t,function(t,e){t.index=e,a.push(t)}),n.parseFinalize(i,s(a,l))},function(t){i.reject(Error("Columns ajax request error: "+t.status+" ("+t.statusText+")"))}):n.parseFinalize(i,s(a,l))})},parseFinalize:function(t,i){var n,s=this,o=[];e.arr.each(i,function(t){(n=e.columns.contains(t.type)?e.columns.make(t.type,s.ft,t):new e.Column(s.ft,t))&&o.push(n)}),e.is.emptyArray(o)?t.reject(Error("No columns supplied.")):(o.sort(function(t,e){return t.index-e.index}),t.resolve(o))},preinit:function(t){var i=this;return i.ft.raise("preinit.ft.columns",[t]).then(function(){return i.parse(t).then(function(n){i.array=n,i.showHeader=e.is.boolean(t.showHeader)?t.showHeader:i.showHeader})})},init:function(){var t=this;return this.ft.raise("init.ft.columns",[t.array]).then(function(){t.$create()})},destroy:function(){var t=this;this.ft.raise("destroy.ft.columns").then(function(){t._fromHTML||t.$header.remove()})},predraw:function(){var t=this,i=!0;t.visibleColspan=0,t.firstVisibleIndex=0,t.lastVisibleIndex=0,t.hasHidden=!1,e.arr.each(t.array,function(e){e.hidden=!t.ft.breakpoints.visible(e.breakpoints),!e.hidden&&e.visible&&(i&&(t.firstVisibleIndex=e.index,i=!1),t.lastVisibleIndex=e.index,t.visibleColspan++),e.hidden&&(t.hasHidden=!0)}),t.ft.$el.toggleClass("breakpoint",t.hasHidden)},draw:function(){e.arr.each(this.array,function(t){t.$el.css("display",t.hidden||!t.visible?"none":"table-cell")}),!this.showHeader&&e.is.jq(this.$header.parent())&&this.$header.detach()},$create:function(){var i=this;i.$header=e.is.jq(i.$header)?i.$header:t("",{class:"footable-header"}),i.$header.children("th,td").detach(),e.arr.each(i.array,function(t){i.$header.append(t.$el)}),i.showHeader&&!e.is.jq(i.$header.parent())&&i.ft.$el.children("thead").append(i.$header)},get:function(t){return t instanceof e.Column?t:e.is.string(t)?e.arr.first(this.array,function(e){return e.name==t}):e.is.number(t)?e.arr.first(this.array,function(e){return e.index==t}):e.is.fn(t)?e.arr.get(this.array,t):null},ensure:function(t){var i=this,n=[];return e.is.array(t)?(e.arr.each(t,function(t){n.push(i.get(t))}),n):n}}),e.components.register("columns",e.Columns,900)}(jQuery,FooTable),function(t){t.Defaults.prototype.columns=[],t.Defaults.prototype.showHeader=!0}(FooTable),function(t,e){e.Rows=e.Component.extend({construct:function(t){this._super(t,!0),this.o=t.o,this.array=[],this.all=[],this.showToggle=t.o.showToggle,this.toggleSelector=t.o.toggleSelector,this.toggleColumn=t.o.toggleColumn,this.emptyString=t.o.empty,this.expandFirst=t.o.expandFirst,this.expandAll=t.o.expandAll,this.$empty=null,this._fromHTML=e.is.emptyArray(t.o.rows)&&!e.is.promise(t.o.rows)},parse:function(){var i=this;return t.Deferred(function(t){var n=i.ft.$el.children("tbody").children("tr");e.is.array(i.o.rows)&&i.o.rows.length>0?i.parseFinalize(t,i.o.rows):e.is.promise(i.o.rows)?i.o.rows.then(function(e){i.parseFinalize(t,e)},function(e){t.reject(Error("Rows ajax request error: "+e.status+" ("+e.statusText+")"))}):e.is.jq(n)?(i.parseFinalize(t,n),n.detach()):i.parseFinalize(t,[])})},parseFinalize:function(i,n){var s=this,o=t.map(n,function(t){return new e.Row(s.ft,s.ft.columns.array,t)});i.resolve(o)},preinit:function(t){var i=this;return i.ft.raise("preinit.ft.rows",[t]).then(function(){return i.parse().then(function(n){i.all=n,i.array=i.all.slice(0),i.showToggle=e.is.boolean(t.showToggle)?t.showToggle:i.showToggle,i.toggleSelector=e.is.string(t.toggleSelector)?t.toggleSelector:i.toggleSelector,i.toggleColumn=e.is.string(t.toggleColumn)?t.toggleColumn:i.toggleColumn,"first"!=i.toggleColumn&&"last"!=i.toggleColumn&&(i.toggleColumn="first"),i.emptyString=e.is.string(t.empty)?t.empty:i.emptyString,i.expandFirst=e.is.boolean(t.expandFirst)?t.expandFirst:i.expandFirst,i.expandAll=e.is.boolean(t.expandAll)?t.expandAll:i.expandAll})})},init:function(){var t=this;return t.ft.raise("init.ft.rows",[t.all]).then(function(){t.$create()})},destroy:function(){var t=this;this.ft.raise("destroy.ft.rows").then(function(){e.arr.each(t.array,function(e){e.predraw(!t._fromHTML)}),t.all=t.array=[]})},predraw:function(){e.arr.each(this.array,function(t){t.predraw()}),this.array=this.all.slice(0)},$create:function(){this.$empty=t("",{class:"footable-empty"}).append(t("",{class:"footable-filtering"}).prependTo(this.ft.$el.children("thead")),this.$cell=t(""),this.ft.$el.append(i)),this.$row.appendTo(i)}else this.$wrapper.appendTo(this.$container);this.detached=!1}e.is.jq(this.$cell)&&this.$cell.attr("colspan",this.ft.columns.visibleColspan),this._createLinks(),this._setVisible(this.current,this.current>this.previous),this._setNavigation(!0),this.$count.text(this.formattedCount)}},$create:function(){this._createdLinks=0;var i="footable-paging-center";switch(this.position){case"left":i="footable-paging-left";break;case"right":i="footable-paging-right"}if(this.ft.$el.addClass("footable-paging").addClass(i),this.$container=null===this.container?null:t(this.container).first(),e.is.jq(this.$container))this.$container.addClass("footable-paging-external").addClass(i);else{var n=this.ft.$el.children("tfoot");0==n.length&&(n=t(""),this.ft.$el.append(n)),this.$row=t("",{class:"footable-paging"}).prependTo(n),this.$container=this.$cell=t(""),this.ft.$el.append(i)),this.$row=t("",{class:"footable-editing"}).append(this.$cell).appendTo(i)},$buttonShow:function(){return'"},$buttonHide:function(){return'"},$buttonAdd:function(){return' "},$buttonEdit:function(){return' "},$buttonDelete:function(){return'"},$buttonView:function(){return' "},$rowButtons:function(){return e.is.jq(this._$buttons)?this._$buttons.clone():(this._$buttons=t('
'),this.allowView&&this._$buttons.append(this.$buttonView()),this.allowEdit&&this._$buttons.append(this.$buttonEdit()),this.allowDelete&&this._$buttons.append(this.$buttonDelete()),this._$buttons)},draw:function(){this.$cell.attr("colspan",this.ft.columns.visibleColspan)},_onEditClick:function(i){i.preventDefault();var n=i.data.self,s=t(this).closest("tr").data("__FooTableRow__");s instanceof e.Row&&n.ft.raise("edit.ft.editing",[s]).then(function(){n.callbacks.editRow.call(n.ft,s)})},_onDeleteClick:function(i){i.preventDefault();var n=i.data.self,s=t(this).closest("tr").data("__FooTableRow__");s instanceof e.Row&&n.ft.raise("delete.ft.editing",[s]).then(function(){n.callbacks.deleteRow.call(n.ft,s)})},_onViewClick:function(i){i.preventDefault();var n=i.data.self,s=t(this).closest("tr").data("__FooTableRow__");s instanceof e.Row&&n.ft.raise("view.ft.editing",[s]).then(function(){n.callbacks.viewRow.call(n.ft,s)})},_onAddClick:function(t){t.preventDefault();var e=t.data.self;e.ft.raise("add.ft.editing").then(function(){e.callbacks.addRow.call(e.ft)})},_onShowClick:function(t){t.preventDefault();var e=t.data.self;e.ft.raise("show.ft.editing").then(function(){e.ft.$el.addClass("footable-editing-show"),e.column.visible=!0,e.ft.draw()})},_onHideClick:function(t){t.preventDefault();var e=t.data.self;e.ft.raise("hide.ft.editing").then(function(){e.ft.$el.removeClass("footable-editing-show"),e.column.visible=!1,e.ft.draw()})}}),e.components.register("editing",e.Editing,850)}(jQuery,FooTable),function(t,e){e.EditingColumn=e.Column.extend({construct:function(t,e,i){this._super(t,i,"editing"),this.editing=e,this.internal=!0},$create:function(){(this.$el=!this.virtual&&e.is.jq(this.$el)?this.$el:t("
").text(this.emptyString))},draw:function(){var t=this,i=t.ft.$el.children("tbody"),n=!0;t.array.length>0?(t.$empty.detach(),e.arr.each(t.array,function(e){(t.expandFirst&&n||t.expandAll)&&(e.expanded=!0,n=!1),e.draw(i)})):(t.$empty.children("td").attr("colspan",t.ft.columns.visibleColspan),i.append(t.$empty))},load:function(i,n){var s=this,o=t.map(i,function(t){return new e.Row(s.ft,s.ft.columns.array,t)});e.arr.each(n?o:this.array,function(t){t.predraw()}),this.all=e.is.boolean(n)&&n?this.all.concat(o):o,this.array=this.all.slice(0),this.ft.draw()},expand:function(){e.arr.each(this.array,function(t){t.expand()})},collapse:function(){e.arr.each(this.array,function(t){t.collapse()})}}),e.components.register("rows",e.Rows,800)}(jQuery,FooTable),function(t){t.Defaults.prototype.rows=[],t.Defaults.prototype.empty="No results",t.Defaults.prototype.showToggle=!0,t.Defaults.prototype.toggleSelector="tr,td,.footable-toggle",t.Defaults.prototype.toggleColumn="first",t.Defaults.prototype.expandFirst=!1,t.Defaults.prototype.expandAll=!1}(FooTable),FooTable.Table.prototype.loadRows=function(t,e){this.rows.load(t,e)},function(t){t.Filter=t.Class.extend({construct:function(e,i,n,s,o,r,a){this.name=e,this.space=!t.is.string(s)||"OR"!=s&&"AND"!=s?"AND":s,this.connectors=!t.is.boolean(o)||o,this.ignoreCase=!t.is.boolean(r)||r,this.hidden=!!t.is.boolean(a)&&a,this.query=i instanceof t.Query?i:new t.Query(i,this.space,this.connectors,this.ignoreCase),this.columns=n},match:function(e){return!!t.is.string(e)&&(t.is.string(this.query)&&(this.query=new t.Query(this.query,this.space,this.connectors,this.ignoreCase)),this.query instanceof t.Query&&this.query.match(e))},matchRow:function(e){var i=this,n=t.arr.map(e.cells,function(e){return t.arr.contains(i.columns,e.column)?e.filterValue:null}).join(" ");return i.match(n)}})}(FooTable),function(t,e){e.Filtering=e.Component.extend({construct:function(t){this._super(t,t.o.filtering.enabled),this.filters=t.o.filtering.filters,this.delay=t.o.filtering.delay,this.min=t.o.filtering.min,this.space=t.o.filtering.space,this.connectors=t.o.filtering.connectors,this.ignoreCase=t.o.filtering.ignoreCase,this.exactMatch=t.o.filtering.exactMatch,this.placeholder=t.o.filtering.placeholder,this.dropdownTitle=t.o.filtering.dropdownTitle,this.position=t.o.filtering.position,this.focus=t.o.filtering.focus,this.container=t.o.filtering.container,this.$container=null,this.$row=null,this.$cell=null,this.$form=null,this.$dropdown=null,this.$input=null,this.$button=null,this._filterTimeout=null,this._exactRegExp=/^"(.*?)"$/},preinit:function(t){var i=this;return i.ft.raise("preinit.ft.filtering").then(function(){i.ft.$el.hasClass("footable-filtering")&&(i.enabled=!0),i.enabled=e.is.boolean(t.filtering)?t.filtering:i.enabled,i.enabled&&(i.space=e.is.string(t.filterSpace)?t.filterSpace:i.space,i.min=e.is.number(t.filterMin)?t.filterMin:i.min,i.connectors=e.is.boolean(t.filterConnectors)?t.filterConnectors:i.connectors,i.ignoreCase=e.is.boolean(t.filterIgnoreCase)?t.filterIgnoreCase:i.ignoreCase,i.exactMatch=e.is.boolean(t.filterExactMatch)?t.filterExactMatch:i.exactMatch,i.focus=e.is.boolean(t.filterFocus)?t.filterFocus:i.focus,i.delay=e.is.number(t.filterDelay)?t.filterDelay:i.delay,i.placeholder=e.is.string(t.filterPlaceholder)?t.filterPlaceholder:i.placeholder,i.dropdownTitle=e.is.string(t.filterDropdownTitle)?t.filterDropdownTitle:i.dropdownTitle,i.container=e.is.string(t.filterContainer)?t.filterContainer:i.container,i.filters=e.is.array(t.filterFilters)?i.ensure(t.filterFilters):i.ensure(i.filters),i.ft.$el.hasClass("footable-filtering-left")&&(i.position="left"),i.ft.$el.hasClass("footable-filtering-center")&&(i.position="center"),i.ft.$el.hasClass("footable-filtering-right")&&(i.position="right"),i.position=e.is.string(t.filterPosition)?t.filterPosition:i.position)},function(){i.enabled=!1})},init:function(){var t=this;return t.ft.raise("init.ft.filtering").then(function(){t.$create()},function(){t.enabled=!1})},destroy:function(){var t=this;return t.ft.raise("destroy.ft.filtering").then(function(){t.ft.$el.removeClass("footable-filtering").find("thead > tr.footable-filtering").remove()})},$create:function(){var i,n=t("
",{class:"form-group footable-filtering-search"}).append(t("
").attr("colspan",this.ft.columns.visibleColspan).appendTo(this.$row),this.$container=this.$cell),this.$form=t("
",{class:"form-inline"}).append(n).appendTo(this.$container),this.$input=t("",{type:"text",class:"form-control",placeholder:this.placeholder}),this.$button=t("
").attr("colspan",this.ft.columns.visibleColspan).appendTo(this.$row)}this.$wrapper=t("
",{class:"footable-pagination-wrapper"}).appendTo(this.$container),this.$pagination=t("
").attr("colspan",this.ft.columns.visibleColspan).append(this.$buttonShow()),this.allowAdd&&this.$cell.append(this.$buttonAdd()),this.$cell.append(this.$buttonHide()),this.alwaysShow&&this.ft.$el.addClass("footable-editing-always-show"),this.allowAdd||this.ft.$el.addClass("footable-editing-no-add"),this.allowEdit||this.ft.$el.addClass("footable-editing-no-edit"),this.allowDelete||this.ft.$el.addClass("footable-editing-no-delete"),this.allowView||this.ft.$el.addClass("footable-editing-no-view");var i=this.ft.$el.children("tfoot");0==i.length&&(i=t("
",{class:"footable-editing"})).html(this.title)},parser:function(i){if(e.is.string(i)&&(i=t(t.trim(i))),e.is.element(i)&&(i=t(i)),e.is.jq(i)){var n=i.prop("tagName").toLowerCase();return"td"==n||"th"==n?i.data("value")||i.contents():i}return null},createCell:function(i){var n=this.editing.$rowButtons(),s=t("").append(n);return e.is.jq(i.$el)&&(0===this.index?s.prependTo(i.$el):s.insertAfter(i.$el.children().eq(this.index-1))),new e.Cell(this.ft,i,this,s||s.html())}}),e.columns.register("editing",e.EditingColumn)}(jQuery,FooTable),jQuery,FooTable.Defaults.prototype.editing={enabled:!1,pageToNew:!0,position:"right",alwaysShow:!1,addRow:function(){},editRow:function(t){},deleteRow:function(t){},viewRow:function(t){},showText:' Edit rows',hideText:"Cancel",addText:"New row",editText:'',deleteText:'',viewText:'',allowAdd:!0,allowEdit:!0,allowDelete:!0,allowView:!1,column:{classes:"footable-editing",name:"editing",title:"",filterable:!1,sortable:!1}},function(t,e){e.is.defined(e.Paging)&&(e.Paging.prototype.unpaged=[],e.Paging.extend("predraw",function(){this.unpaged=this.ft.rows.array.slice(0),this._super()}))}(jQuery,FooTable),function(t,e){e.Row.prototype.add=function(i){i=!e.is.boolean(i)||i;var n=this;return t.Deferred(function(t){var e=n.ft.rows.all.push(n)-1;if(i)return n.ft.draw().then(function(){t.resolve(e)});t.resolve(e)})},e.Row.prototype.delete=function(i){i=!e.is.boolean(i)||i;var n=this;return t.Deferred(function(t){var s=n.ft.rows.all.indexOf(n);if(e.is.number(s)&&s>=0&&s=0&&e=0&&e>>0}(location.origin+location.pathname);e.State=e.Component.extend({construct:function(t){this._super(t,t.o.state.enabled),this._key="1",this.key=this._key+(e.is.string(t.o.state.key)?t.o.state.key:this._uid()),this.filtering=!e.is.boolean(t.o.state.filtering)||t.o.state.filtering,this.paging=!e.is.boolean(t.o.state.paging)||t.o.state.paging,this.sorting=!e.is.boolean(t.o.state.sorting)||t.o.state.sorting},preinit:function(t){var i=this;this.ft.raise("preinit.ft.state",[t]).then(function(){i.enabled=e.is.boolean(t.state)?t.state:i.enabled,i.enabled&&(i.key=i._key+(e.is.string(t.stateKey)?t.stateKey:i.key),i.filtering=e.is.boolean(t.stateFiltering)?t.stateFiltering:i.filtering,i.paging=e.is.boolean(t.statePaging)?t.statePaging:i.paging,i.sorting=e.is.boolean(t.stateSorting)?t.stateSorting:i.sorting)},function(){i.enabled=!1})},get:function(t){return JSON.parse(localStorage.getItem(this.key+":"+t))},set:function(t,e){localStorage.setItem(this.key+":"+t,JSON.stringify(e))},remove:function(t){localStorage.removeItem(this.key+":"+t)},read:function(){this.ft.execute(!1,!0,"readState")},write:function(){this.ft.execute(!1,!0,"writeState")},clear:function(){this.ft.execute(!1,!0,"clearState")},_uid:function(){var t=this.ft.$el.attr("id");return n+"_"+(e.is.string(t)?t:++i)}}),e.components.register("state",e.State,700)}(jQuery,FooTable),function(t){t.Component.prototype.readState=function(){},t.Component.prototype.writeState=function(){},t.Component.prototype.clearState=function(){}}(FooTable),FooTable.Defaults.prototype.state={enabled:!1,filtering:!0,paging:!0,sorting:!0,key:null},function(t){t.Filtering&&(t.Filtering.prototype.readState=function(){if(this.ft.state.filtering){var e=this.ft.state.get("filtering");t.is.hash(e)&&!t.is.emptyArray(e.filters)&&(this.filters=this.ensure(e.filters))}},t.Filtering.prototype.writeState=function(){if(this.ft.state.filtering){var e=t.arr.map(this.filters,function(e){return{name:e.name,query:e.query instanceof t.Query?e.query.val():e.query,columns:t.arr.map(e.columns,function(t){return t.name}),hidden:e.hidden,space:e.space,connectors:e.connectors,ignoreCase:e.ignoreCase}});this.ft.state.set("filtering",{filters:e})}},t.Filtering.prototype.clearState=function(){this.ft.state.filtering&&this.ft.state.remove("filtering")})}(FooTable),function(t){t.Paging&&(t.Paging.prototype.readState=function(){if(this.ft.state.paging){var e=this.ft.state.get("paging");t.is.hash(e)&&(this.current=e.current,this.size=e.size)}},t.Paging.prototype.writeState=function(){this.ft.state.paging&&this.ft.state.set("paging",{current:this.current,size:this.size})},t.Paging.prototype.clearState=function(){this.ft.state.paging&&this.ft.state.remove("paging")})}(FooTable),function(t){t.Sorting&&(t.Sorting.prototype.readState=function(){if(this.ft.state.sorting){var e=this.ft.state.get("sorting");if(t.is.hash(e)){var i=this.ft.columns.get(e.column);i instanceof t.Column&&(this.column=i,this.column.direction=e.direction)}}},t.Sorting.prototype.writeState=function(){this.ft.state.sorting&&this.column instanceof t.Column&&this.ft.state.set("sorting",{column:this.column.name,direction:this.column.direction})},t.Sorting.prototype.clearState=function(){this.ft.state.sorting&&this.ft.state.remove("sorting")})}(FooTable),function(t){t.Table.extend("_construct",function(t){return this.state=this.use(FooTable.State),this._super(t)}),t.Table.extend("_preinit",function(){var t=this;return t._super().then(function(){t.state.enabled&&t.state.read()})}),t.Table.extend("draw",function(){var t=this;return t._super().then(function(){t.state.enabled&&t.state.write()})})}(FooTable),function(t,e){e.Export=e.Component.extend({construct:function(t){this._super(t,!0),this.snapshot=[]},predraw:function(){this.snapshot=this.ft.rows.array.slice(0)},columns:function(){var t=[];return e.arr.each(this.ft.columns.array,function(e){e.internal||t.push({type:e.type,name:e.name,title:e.title,visible:e.visible,hidden:e.hidden,classes:e.classes,style:e.style})}),t},rows:function(t){var i=(t=!!e.is.boolean(t)&&t)?this.ft.rows.all:this.snapshot,n=[];return e.arr.each(i,function(t){n.push(t.val())}),n},json:function(t){return JSON.parse(JSON.stringify({columns:this.columns(),rows:this.rows(t)}))},csv:function(t){var i,n,s="",o=this.columns();e.arr.each(o,function(t,e){n='"'+t.title.replace(/"/g,'""')+'"',s+=0===e?n:","+n}),s+="\n";var r=t?this.ft.rows.all:this.snapshot;return e.arr.each(r,function(t){e.arr.each(t.cells,function(t,e){t.column.internal||(i=t.column.stringify.call(t.column,t.value,t.ft.o,t.row.value),n='"'+i.replace(/"/g,'""')+'"',s+=0===e?n:","+n)}),s+="\n"}),s}}),e.components.register("export",e.Export,490)}(jQuery,FooTable),function(t){t.Column.prototype.__export_define__=function(e){this.stringify=t.checkFnValue(this,e.stringify,this.stringify)},t.Column.extend("define",function(t){this._super(t),this.__export_define__(t)}),t.Column.prototype.stringify=function(t,e,i){return t+""},t.is.defined(t.DateColumn)&&(t.DateColumn.prototype.stringify=function(e,i,n){return t.is.object(e)&&t.is.boolean(e._isAMomentObject)&&e.isValid()?e.format(this.formatString):""}),t.ObjectColumn.prototype.stringify=function(e,i,n){return t.is.object(e)?JSON.stringify(e):""},t.ArrayColumn.prototype.stringify=function(e,i,n){return t.is.array(e)?JSON.stringify(e):""}}(FooTable),function(t){t.Table.prototype.toJSON=function(e){return this.use(t.Export).json(e)},t.Table.prototype.toCSV=function(e){return this.use(t.Export).csv(e)}}(FooTable)}]);