PageSourceSearch

https://artlofthotel.com/cdn/datatables/dataTables.bootstrap.js

js artlofthotel.com collected 2026-10-09 00:01:20 UTC 4,839 bytes, 206 lines download raw bytes

1/*! DataTables Bootstrap 3 integration
2 * ©2011-2014 SpryMedia Ltd - datatables.net/license
3 */
4
5/**
6 * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
7 * DataTables 1.10 or newer.
8 *
9 * This file sets the defaults and adds options to DataTables to style its
10 * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
11 * for further information.
12 */
13(function(window, document, undefined){
14
15var factory = function( $, DataTable ) {
16"use strict";
17
18
19/* Set the defaults for DataTables initialisation */
20$.extend( true, DataTable.defaults, {
21	dom:
22		"<'row'<'col-sm-6'l><'col-sm-6'f>>" +
23		"<'row'<'col-sm-12'tr>>" +
24		"<'row'<'col-sm-5'i><'col-sm-7'p>>",
25	renderer: 'bootstrap'
26} );
27
28
29/* Default class modification */
30$.extend( DataTable.ext.classes, {
31	sWrapper:      "dataTables_wrapper form-inline dt-bootstrap",
32	sFilterInput:  "form-control input-sm",
33	sLengthSelect: "form-control input-sm"
34} );
35
36
37/* Bootstrap paging button renderer */
38DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
39	var api     = new DataTable.Api( settings );
40	var classes = settings.oClasses;
41	var lang    = settings.oLanguage.oPaginate;
42	var btnDisplay, btnClass, counter=0;
43
44	var attach = function( container, buttons ) {
45		var i, ien, node, button;
46		var clickHandler = function ( e ) {
47			e.preventDefault();
48			if ( !$(e.currentTarget).hasClass('disabled') ) {
49				api.page( e.data.action ).draw( false );
50			}
51		};
52
53		for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
54			button = buttons[i];
55
56			if ( $.isArray( button ) ) {
57				attach( container, button );
58			}
59			else {
60				btnDisplay = '';
61				btnClass = '';
62
63				switch ( button ) {
64					case 'ellipsis':
65						btnDisplay = '&hellip;';
66						btnClass = 'disabled';
67						break;
68
69					case 'first':
70						btnDisplay = lang.sFirst;
71						btnClass = button + (page > 0 ?
72							'' : ' disabled');
73						break;
74
75					case 'previous':
76						btnDisplay = lang.sPrevious;
77						btnClass = button + (page > 0 ?
78							'' : ' disabled');
79						break;
80
81					case 'next':
82						btnDisplay = lang.sNext;
83						btnClass = button + (page < pages-1 ?
84							'' : ' disabled');
85						break;
86
87					case 'last':
88						btnDisplay = lang.sLast;
89						btnClass = button + (page < pages-1 ?
90							'' : ' disabled');
91						break;
92
93					default:
94						btnDisplay = button + 1;
95						btnClass = page === button ?
96							'active' : '';
97						break;
98				}
99
100				if ( btnDisplay ) {
101					node = $('<li>', {
102							'class': classes.sPageButton+' '+btnClass,
103							'id': idx === 0 && typeof button === 'string' ?
104								settings.sTableId +'_'+ button :
105								null
106						} )
107						.append( $('<a>', {
108								'href': '#',
109								'aria-controls': settings.sTableId,
110								'data-dt-idx': counter,
111								'tabindex': settings.iTabIndex
112							} )
113							.html( btnDisplay )
114						)
115						.appendTo( container );
116
117					settings.oApi._fnBindAction(
118						node, {action: button}, clickHandler
119					);
120
121					counter++;
122				}
123			}
124		}
125	};
126
127	// IE9 throws an 'unknown error' if document.activeElement is used
128	// inside an iframe or frame. 
129	var activeEl;
130
131	try {
132		// Because this approach is destroying and recreating the paging
133		// elements, focus is lost on the select button which is bad for
134		// accessibility. So we want to restore focus once the draw has
135		// completed
136		activeEl = $(document.activeElement).data('dt-idx');
137	}
138	catch (e) {}
139
140	attach(
141		$(host).empty().html('<ul class="pagination"/>').children('ul'),
142		buttons
143	);
144
145	if ( activeEl ) {
146		$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
147	}
148};
149
150
151/*
152 * TableTools Bootstrap compatibility
153 * Required TableTools 2.1+
154 */
155if ( DataTable.TableTools ) {
156	// Set the classes that TableTools uses to something suitable for Bootstrap
157	$.extend( true, DataTable.TableTools.classes, {
158		"container": "DTTT btn-group",
159		"buttons": {
160			"normal": "btn btn-default",
161			"disabled": "disabled"
162		},
163		"collection": {
164			"container": "DTTT_dropdown dropdown-menu",
165			"buttons": {
166				"normal": "",
167				"disabled": "disabled"
168			}
169		},
170		"print": {
171			"info": "DTTT_print_info"
172		},
173		"select": {
174			"row": "active"
175		}
176	} );
177
178	// Have the collection use a bootstrap compatible drop down
179	$.extend( true, DataTable.TableTools.DEFAULTS.oTags, {
180		"collection": {
181			"container": "ul",
182			"button": "li",
183			"liner": "a"
184		}
185	} );
186}
187
188}; // /factory
189
190
191// Define as an AMD module if possible
192if ( typeof define === 'function' && define.amd ) {
193	define( ['jquery', 'datatables'], factory );
194}
195else if ( typeof exports === 'object' ) {
196    // Node/CommonJS
197    factory( require('jquery'), require('datatables') );
198}
199else if ( jQuery ) {
200	// Otherwise simply initialise as normal, stopping multiple evaluation
201	factory( jQuery, jQuery.fn.dataTable );
202}
203
204
205})(window, document);
206

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.