!function(o){"function"==typeof define&&define.amd?define(["jquery","dataTables","dataTablesButtons"],function(n){return o(n,window,document)}):"object"==typeof exports?module.exports=function(n,t){return n=n||window,(t=t&&t.fn.dataTable?t:require("dataTables")(n,t).$).fn.dataTable.Buttons||require("dataTablesButtons")(n,t),o(t,0,n.document)}:o(jQuery,window,document)}(function(n,t,o,u){"use strict";var e=n.fn.dataTable;return n.extend(e.ext.buttons,{colvis:function(n,t){return{extend:"collection",text:function(n){return n.i18n("buttons.colvis","Column visibility")},className:"buttons-colvis",buttons:[{extend:"columnsToggle",columns:t.columns,columnText:t.columnText}]}},columnsToggle:function(n,t){return n.columns(t.columns).indexes().map(function(n){return{extend:"columnToggle",columns:n,columnText:t.columnText}}).toArray()},columnToggle:function(n,t){return{extend:"columnVisibility",columns:t.columns,columnText:t.columnText}},columnsVisibility:function(n,t){return n.columns(t.columns).indexes().map(function(n){return{extend:"columnVisibility",columns:n,visibility:t.visibility,columnText:t.columnText}}).toArray()},columnVisibility:{columns:u,text:function(n,t,o){return o._columnText(n,o)},className:"buttons-columnVisibility",action:function(n,t,o,e){var t=t.columns(e.columns),i=t.visible();t.visible(e.visibility!==u?e.visibility:!(i.length&&i[0]))},init:function(e,n,i){var u=this;e.on("column-visibility.dt"+i.namespace,function(n,t){t.bDestroying||t.nTable!=e.settings()[0].nTable||u.active(e.column(i.columns).visible())}).on("column-reorder.dt"+i.namespace,function(n,t,o){1===e.columns(i.columns).count()&&("number"==typeof i.columns&&(i.columns=o.mapping[i.columns]),o=e.column(i.columns),u.text(i._columnText(e,i)),u.active(o.visible()))}),this.active(e.column(i.columns).visible())},destroy:function(n,t,o){n.off("column-visibility.dt"+o.namespace).off("column-reorder.dt"+o.namespace)},_columnText:function(n,t){var o=n.column(t.columns).index(),e=n.settings()[0].aoColumns[o].sTitle.replace(/\n/g," ").replace(/<br\s*\/?>/gi," ").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,"");return t.columnText?t.columnText(n,o,e):e}},colvisRestore:{className:"buttons-colvisRestore",text:function(n){return n.i18n("buttons.colvisRestore","Restore visibility")},init:function(t,n,o){o._visOriginal=t.columns().indexes().map(function(n){return t.column(n).visible()}).toArray()},action:function(n,t,o,e){t.columns().every(function(n){n=t.colReorder&&t.colReorder.transpose?t.colReorder.transpose(n,"toOriginal"):n;this.visible(e._visOriginal[n])})}},colvisGroup:{className:"buttons-colvisGroup",action:function(n,t,o,e){t.columns(e.show).visible(!0,!1),t.columns(e.hide).visible(!1,!1),t.columns.adjust()},show:[],hide:[]}}),e.Buttons});