/*! © 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; }));