Files
AdminLTE/plugins/datatables-buttons/js/buttons.colVis.js
REJack 2865815c47 dependencies/devDependencies updates
- updated dependencies
  - `@fortawesome/fontawesome-free` to 5.10.2
  - `@fullcalendar/bootstrap` to 4.3.0
  - `@fullcalendar/core` to 4.3.1
  - `@fullcalendar/daygrid` to 4.3.0
  - `@fullcalendar/interaction` to 4.3.0
  - `@fullcalendar/timegrid` to 4.3.0
  - `bootstrap-slider` to 10.6.2
  - `flot` to 3.2.9
  - `overlayscrollbars` to 1.9.1
  - `raphael` to 2.3.0
  - `select2` to 4.0.10
  - `sweetalert2` to 8.16.3
- replaced dependencies
  - `jqvmap` with `jqvmap-novulnerability` (removes git requirement on `npm i`)
- added new dependencies
  - `datatables.net-autofill-bs4` to 2.3.3
  - `datatables.net-bs4` to 1.10.19
  - `datatables.net-buttons-bs4` to 1.5.6
  - `datatables.net-colreorder-bs4` to 1.5.1
  - `datatables.net-fixedcolumns-bs4` to 3.2.6
  - `datatables.net-fixedheader-bs4` to 3.1.5
  - `datatables.net-keytable-bs4` to 2.5.0
  - `datatables.net-responsive-bs4` to 2.2.3
  - `datatables.net-rowgroup-bs4` to 1.1.0
  - `datatables.net-rowreorder-bs4` to 1.2.5
  - `datatables.net-scroller-bs4` to 2.0.0
  - `datatables.net-select-bs4` to 1.3.0
  - `jszip` to 3.2.2
  - `pdfmake` to 0.1.58
- updated devDependencies
  - `@babel/cli` to 7.5.5
  - `@babel/core` to 7.5.5
  - `@babel/preset-env` to 7.5.5
  - `css-loader` to 3.2.0
  - `rollup"` to .20.2
  - `terser` to 4.2.1
- removed old plugins
  - `morris`
2019-08-28 12:59:33 +02:00

214 lines
5.5 KiB
JavaScript
Executable File

/*!
* Column visibility buttons for Buttons and DataTables.
* 2016 SpryMedia Ltd - datatables.net/license
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
$ = require('datatables.net')(root, $).$;
}
if ( ! $.fn.dataTable.Buttons ) {
require('datatables.net-buttons')(root, $);
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
$.extend( DataTable.ext.buttons, {
// A collection of column visibility buttons
colvis: function ( dt, conf ) {
return {
extend: 'collection',
text: function ( dt ) {
return dt.i18n( 'buttons.colvis', 'Column visibility' );
},
className: 'buttons-colvis',
buttons: [ {
extend: 'columnsToggle',
columns: conf.columns,
columnText: conf.columnText
} ]
};
},
// Selected columns with individual buttons - toggle column visibility
columnsToggle: function ( dt, conf ) {
var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {
return {
extend: 'columnToggle',
columns: idx,
columnText: conf.columnText
};
} ).toArray();
return columns;
},
// Single button to toggle column visibility
columnToggle: function ( dt, conf ) {
return {
extend: 'columnVisibility',
columns: conf.columns,
columnText: conf.columnText
};
},
// Selected columns with individual buttons - set column visibility
columnsVisibility: function ( dt, conf ) {
var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {
return {
extend: 'columnVisibility',
columns: idx,
visibility: conf.visibility,
columnText: conf.columnText
};
} ).toArray();
return columns;
},
// Single button to set column visibility
columnVisibility: {
columns: undefined, // column selector
text: function ( dt, button, conf ) {
return conf._columnText( dt, conf );
},
className: 'buttons-columnVisibility',
action: function ( e, dt, button, conf ) {
var col = dt.columns( conf.columns );
var curr = col.visible();
col.visible( conf.visibility !== undefined ?
conf.visibility :
! (curr.length ? curr[0] : false )
);
},
init: function ( dt, button, conf ) {
var that = this;
button.attr( 'data-cv-idx', conf.columns );
dt
.on( 'column-visibility.dt'+conf.namespace, function (e, settings) {
if ( ! settings.bDestroying && settings.nTable == dt.settings()[0].nTable ) {
that.active( dt.column( conf.columns ).visible() );
}
} )
.on( 'column-reorder.dt'+conf.namespace, function (e, settings, details) {
// Don't rename buttons based on column name if the button
// controls more than one column!
if ( dt.columns( conf.columns ).count() !== 1 ) {
return;
}
conf.columns = $.inArray( conf.columns, details.mapping );
button.attr( 'data-cv-idx', conf.columns );
// Reorder buttons for new table order
button
.parent()
.children('[data-cv-idx]')
.sort( function (a, b) {
return (a.getAttribute('data-cv-idx')*1) - (b.getAttribute('data-cv-idx')*1);
} )
.appendTo(button.parent());
} );
this.active( dt.column( conf.columns ).visible() );
},
destroy: function ( dt, button, conf ) {
dt
.off( 'column-visibility.dt'+conf.namespace )
.off( 'column-reorder.dt'+conf.namespace );
},
_columnText: function ( dt, conf ) {
// Use DataTables' internal data structure until this is presented
// is a public API. The other option is to use
// `$( column(col).node() ).text()` but the node might not have been
// populated when Buttons is constructed.
var idx = dt.column( conf.columns ).index();
var title = dt.settings()[0].aoColumns[ idx ].sTitle
.replace(/\n/g," ") // remove new lines
.replace(/<br\s*\/?>/gi, " ") // replace line breaks with spaces
.replace(/<select(.*?)<\/select>/g, "") // remove select tags, including options text
.replace(/<!\-\-.*?\-\->/g, "") // strip HTML comments
.replace(/<.*?>/g, "") // strip HTML
.replace(/^\s+|\s+$/g,""); // trim
return conf.columnText ?
conf.columnText( dt, idx, title ) :
title;
}
},
colvisRestore: {
className: 'buttons-colvisRestore',
text: function ( dt ) {
return dt.i18n( 'buttons.colvisRestore', 'Restore visibility' );
},
init: function ( dt, button, conf ) {
conf._visOriginal = dt.columns().indexes().map( function ( idx ) {
return dt.column( idx ).visible();
} ).toArray();
},
action: function ( e, dt, button, conf ) {
dt.columns().every( function ( i ) {
// Take into account that ColReorder might have disrupted our
// indexes
var idx = dt.colReorder && dt.colReorder.transpose ?
dt.colReorder.transpose( i, 'toOriginal' ) :
i;
this.visible( conf._visOriginal[ idx ] );
} );
}
},
colvisGroup: {
className: 'buttons-colvisGroup',
action: function ( e, dt, button, conf ) {
dt.columns( conf.show ).visible( true, false );
dt.columns( conf.hide ).visible( false, false );
dt.columns.adjust();
},
show: [],
hide: []
}
} );
return DataTable.Buttons;
}));