/*! © SpryMedia Ltd, Afshin Mehrabani - datatables.net/license */ import jQuery from 'jquery'; import DataTable from 'datatables.net'; // Allow reassignment of the $ variable let $ = jQuery; /** * Sorting in Javascript can be difficult to get right with non-Roman * characters - for which special consideration must be made. This plug-in * performs correct sorting on Persian characters. * * @name Persian * @summary Sort Persian strings alphabetically * @author [Afshin Mehrabani](http://www.afshinm.name/) * * @example * $('#example').dataTable( { * columnDefs: [ * { type: 'pstring', targets: 0 } * ] * } ); */ var persianSort = [ 'آ', 'ا', 'ب', 'پ', 'ت', 'ث', 'ج', 'چ', 'ح', 'خ', 'د', 'ذ', 'ر', 'ز', 'ژ', 'س', 'ش', 'ص', 'ط', 'ظ', 'ع', 'غ', 'ف', 'ق', 'ک', 'گ', 'ل', 'م', 'ن', 'و', 'ه', 'ی', 'ي', ]; function GetUniCode(source) { source = source.trim(); var result = ''; var i, index; for (i = 0; i < source.length; i++) { index = persianSort.indexOf(source.charAt(i)); if (index < 0) { index = source.charCodeAt(i); } if (index < 10) { index = '0' + index; } result += '00' + index; } return 'a' + result; } DataTable.ext.type.order['pstring-pre'] = function (a, b) { return GetUniCode(a.toLowerCase()); }; export default DataTable;