118 lines
2.6 KiB
JavaScript
118 lines
2.6 KiB
JavaScript
/*! Bootstrap integration for DataTables' Buttons
|
|
* © SpryMedia Ltd - datatables.net/license
|
|
*/
|
|
|
|
(function( factory ){
|
|
if ( typeof define === 'function' && define.amd ) {
|
|
// AMD
|
|
define( ['jquery', 'datatables.net-bs4', 'datatables.net-buttons'], function ( $ ) {
|
|
return factory( $, window, document );
|
|
} );
|
|
}
|
|
else if ( typeof exports === 'object' ) {
|
|
// CommonJS
|
|
var jq = require('jquery');
|
|
var cjsRequires = function (root, $) {
|
|
if ( ! $.fn.dataTable ) {
|
|
require('datatables.net-bs4')(root, $);
|
|
}
|
|
|
|
if ( ! $.fn.dataTable.Buttons ) {
|
|
require('datatables.net-buttons')(root, $);
|
|
}
|
|
};
|
|
|
|
if (typeof window === 'undefined') {
|
|
module.exports = function (root, $) {
|
|
if ( ! root ) {
|
|
// CommonJS environments without a window global must pass a
|
|
// root. This will give an error otherwise
|
|
root = window;
|
|
}
|
|
|
|
if ( ! $ ) {
|
|
$ = jq( root );
|
|
}
|
|
|
|
cjsRequires( root, $ );
|
|
return factory( $, root, root.document );
|
|
};
|
|
}
|
|
else {
|
|
cjsRequires( window, jq );
|
|
module.exports = factory( jq, window, window.document );
|
|
}
|
|
}
|
|
else {
|
|
// Browser
|
|
factory( jQuery, window, document );
|
|
}
|
|
}(function( $, window, document, undefined ) {
|
|
'use strict';
|
|
var DataTable = $.fn.dataTable;
|
|
|
|
|
|
|
|
$.extend(true, DataTable.Buttons.defaults, {
|
|
dom: {
|
|
container: {
|
|
className: 'dt-buttons btn-group flex-wrap'
|
|
},
|
|
button: {
|
|
className: 'btn btn-secondary',
|
|
active: 'active'
|
|
},
|
|
collection: {
|
|
action: {
|
|
dropHtml: ''
|
|
},
|
|
container: {
|
|
tag: 'div',
|
|
className: 'dropdown-menu dt-button-collection'
|
|
},
|
|
closeButton: false,
|
|
button: {
|
|
tag: 'a',
|
|
className: 'dt-button dropdown-item',
|
|
active: 'dt-button-active',
|
|
disabled: 'disabled',
|
|
spacer: {
|
|
className: 'dropdown-divider',
|
|
tag: 'hr'
|
|
}
|
|
}
|
|
},
|
|
split: {
|
|
action: {
|
|
tag: 'a',
|
|
className: 'btn btn-secondary dt-button-split-drop-button',
|
|
closeButton: false
|
|
},
|
|
dropdown: {
|
|
tag: 'button',
|
|
dropHtml: '',
|
|
className:
|
|
'btn btn-secondary dt-button-split-drop dropdown-toggle dropdown-toggle-split',
|
|
closeButton: false,
|
|
align: 'split-left',
|
|
splitAlignClass: 'dt-button-split-left'
|
|
},
|
|
wrapper: {
|
|
tag: 'div',
|
|
className: 'dt-button-split btn-group',
|
|
closeButton: false
|
|
}
|
|
}
|
|
},
|
|
buttonCreated: function (config, button) {
|
|
return config.buttons ? $('<div class="btn-group"/>').append(button) : button;
|
|
}
|
|
});
|
|
|
|
DataTable.ext.buttons.collection.className += ' dropdown-toggle';
|
|
DataTable.ext.buttons.collection.rightAlignClassName = 'dropdown-menu-right';
|
|
|
|
|
|
return DataTable;
|
|
}));
|