|
|
|
/*! © SpryMedia Ltd - datatables.net/license */
|
|
|
|
|
|
|
|
(function( factory ){
|
|
|
|
if ( typeof define === 'function' && define.amd ) {
|
|
|
|
// AMD
|
|
|
|
define( ['jquery', 'datatables.net'], function ( $ ) {
|
|
|
|
return factory( $, window, document );
|
|
|
|
} );
|
|
|
|
}
|
|
|
|
else if ( typeof exports === 'object' ) {
|
|
|
|
// CommonJS
|
|
|
|
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 ( ! $ ) {
|
|
|
|
$ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window
|
|
|
|
require('jquery') :
|
|
|
|
require('jquery')( root );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( ! $.fn.dataTable ) {
|
|
|
|
require('datatables.net')(root, $);
|
|
|
|
}
|
|
|
|
|
|
|
|
return factory( $, root, root.document );
|
|
|
|
};
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
// Browser
|
|
|
|
factory( jQuery, window, document );
|
|
|
|
}
|
|
|
|
}(function( $, window, document, undefined ) {
|
|
|
|
'use strict';
|
|
|
|
var DataTable = $.fn.dataTable;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sort data by a defined enumerated (enum) list. The options for the values in
|
|
|
|
* the enum are defined by passing the values in an array to the method
|
|
|
|
* `DataTable.enum`. Type detection and sorting plug-ins for DataTables will
|
|
|
|
* automatically be generated and added to the table.
|
|
|
|
*
|
|
|
|
* For full details and instructions please see [this DataTables blog
|
|
|
|
* post](//datatables.net/blog/2016-06-16).
|
|
|
|
*
|
|
|
|
* @name enum
|
|
|
|
* @summary Dynamically create enum sorting options for a DataTable
|
|
|
|
* @author [SpryMedia Ltd](http://datatables.net)
|
|
|
|
*
|
|
|
|
* @example
|
|
|
|
* DataTable.enum( [ 'High', 'Medium', 'Low' ] );
|
|
|
|
*
|
|
|
|
* new DataTable('#myTable');
|
|
|
|
*/
|
|
|
|
var unique = 0;
|
|
|
|
var types = DataTable.ext.type;
|
|
|
|
// Using form DataTable.enum breaks at least YuiCompressor since enum is
|
|
|
|
// a reserved word in JavaScript
|
|
|
|
DataTable['enum'] = function (arr) {
|
|
|
|
var name = 'enum-' + unique++;
|
|
|
|
var lookup = window.Map ? new Map() : {};
|
|
|
|
for (var i = 0, ien = arr.length; i < ien; i++) {
|
|
|
|
lookup[arr[i]] = i;
|
|
|
|
}
|
|
|
|
// Add type detection
|
|
|
|
types.detect.unshift(function (d) {
|
|
|
|
return lookup[d] !== undefined ? name : null;
|
|
|
|
});
|
|
|
|
// Add sorting method
|
|
|
|
types.order[name + '-pre'] = function (d) {
|
|
|
|
return lookup[d];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
return DataTable;
|
|
|
|
}));
|