8 if ( typeof define ===
'function' && define.amd ) {
10 define( [
'jquery',
'datatables.net'],
function ( $ ) {
11 return factory( $, window, document );
14 else if ( typeof exports ===
'object' ) {
16 module.exports =
function (root, $) {
21 if ( ! $ || ! $.fn.dataTable ) {
25 $ = require(
'datatables.net')(root, $).$;
28 return factory( $, root, root.document );
33 factory( jQuery, window, document );
35 }(
function( $, window, document, undefined ) {
37 var DataTable = $.fn.dataTable;
41 $.extend(
true, DataTable.defaults, {
43 "<'row uk-grid'<'uk-width-1-2'l><'uk-width-1-2'f>>" +
44 "<'row uk-grid dt-merge-grid'<'uk-width-1-1'tr>>" +
45 "<'row uk-grid dt-merge-grid'<'uk-width-2-5'i><'uk-width-3-5'p>>",
51 $.extend( DataTable.ext.classes, {
52 sWrapper:
"dataTables_wrapper uk-form dt-uikit",
53 sFilterInput:
"uk-form-small",
54 sLengthSelect:
"uk-form-small",
55 sProcessing:
"dataTables_processing uk-panel"
60 DataTable.ext.renderer.pageButton.uikit =
function ( settings, host, idx, buttons, page, pages ) {
61 var api =
new DataTable.Api( settings );
62 var classes = settings.oClasses;
63 var lang = settings.oLanguage.oPaginate;
64 var aria = settings.oLanguage.oAria.paginate || {};
65 var btnDisplay, btnClass, counter=0;
67 var attach =
function( container, buttons ) {
68 var i, ien, node, button;
69 var clickHandler =
function ( e ) {
71 if ( !$(e.currentTarget).hasClass(
'disabled') && api.page() != e.data.action ) {
72 api.page( e.data.action ).draw(
'page' );
76 for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
79 if ( $.isArray( button ) ) {
80 attach( container, button );
88 btnDisplay =
'<i class="uk-icon-ellipsis-h"></i>';
89 btnClass =
'uk-disabled disabled';
93 btnDisplay =
'<i class="uk-icon-angle-double-left"></i> ' + lang.sFirst;
94 btnClass = (page > 0 ?
95 '' :
' uk-disabled disabled');
99 btnDisplay =
'<i class="uk-icon-angle-left"></i> ' + lang.sPrevious;
100 btnClass = (page > 0 ?
101 '' :
'uk-disabled disabled');
105 btnDisplay = lang.sNext +
' <i class="uk-icon-angle-right"></i>';
106 btnClass = (page < pages-1 ?
107 '' :
'uk-disabled disabled');
111 btnDisplay = lang.sLast +
' <i class="uk-icon-angle-double-right"></i>';
112 btnClass = (page < pages-1 ?
113 '' :
' uk-disabled disabled');
117 btnDisplay = button + 1;
118 btnClass = page === button ?
125 'class': classes.sPageButton+
' '+btnClass,
126 'id': idx === 0 && typeof button ===
'string' ?
127 settings.sTableId +
'_'+ button :
130 .append( $(( -1 != btnClass.indexOf(
'disabled') || -1 != btnClass.indexOf(
'active') ) ?
'<span>' :
'<a>', {
132 'aria-controls': settings.sTableId,
133 'aria-label': aria[ button ],
134 'data-dt-idx': counter,
135 'tabindex': settings.iTabIndex
139 .appendTo( container );
141 settings.oApi._fnBindAction(
142 node, {action: button}, clickHandler
160 activeEl = $(host).find(document.activeElement).data(
'dt-idx');
165 $(host).empty().html(
'<ul class="uk-pagination uk-pagination-right"/>').children(
'ul'),
170 $(host).find(
'[data-dt-idx='+activeEl+
']' ).focus();