PageSourceSearch

https://gerken-arbeitsbuehnen.de/_assets/d0d546548060c296fb28e51bd…/Js/datatableSortingNatural.js?1790673825

js gerken-arbeitsbuehnen.de collected 2026-10-09 00:02:53 UTC 3,985 bytes, 143 lines download raw bytes

1/*! © SpryMedia Ltd - datatables.net/license */
2
3(function( factory ){
4	if ( typeof define === 'function' && define.amd ) {
5		// AMD
6		define( ['jquery', 'datatables.net'], function ( $ ) {
7			return factory( $, window, document );
8		} );
9	}
10	else if ( typeof exports === 'object' ) {
11		// CommonJS
12		var jq = require('jquery');
13		var cjsRequires = function (root, $) {
14			if ( ! $.fn.dataTable ) {
15				require('datatables.net')(root, $);
16			}
17		};
18
19		if (typeof window === 'undefined') {
20			module.exports = function (root, $) {
21				if ( ! root ) {
22					// CommonJS environments without a window global must pass a
23					// root. This will give an error otherwise
24					root = window;
25				}
26
27				if ( ! $ ) {
28					$ = jq( root );
29				}
30
31				cjsRequires( root, $ );
32				return factory( $, root, root.document );
33			};
34		}
35		else {
36			cjsRequires( window, jq );
37			module.exports = factory( jq, window, window.document );
38		}
39	}
40	else {
41		// Browser
42		factory( jQuery, window, document );
43	}
44}(function( $, window, document ) {
45'use strict';
46var DataTable = $.fn.dataTable;
47
48
49/**
50 * Data can often be a complicated mix of numbers and letters (file names
51 * are a common example) and sorting them in a natural manner is quite a
52 * difficult problem.
53 *
54 * Fortunately the Javascript `localeCompare` method is now widely supported
55 * and provides a natural sorting method we can use with DataTables.
56 *
57 *  @name Natural sorting
58 *  @summary Sort data with a mix of numbers and letters _naturally_.
59 *  @author Allan Jardine
60 *  @requires DataTables 2+
61 *
62 *  @example
63 *   // Natural sorting
64 *   new DataTable('#myTable',
65 *       columnDefs: [
66 *           { type: 'natural', target: 0 }
67 *       ]
68 *   } );
69 *
70 *  @example
71 *   // Html can be stripped from sorting by using 'natural-nohtml' such as
72 *   new DataTable('#myTable',
73 *       columnDefs: [
74 *    	     { type: 'natural-nohtml', target: 0 }
75 *       ]
76 *    } );
77 *
78 *  @example
79 *   // Case insensitive natural sorting
80 *   new DataTable('#myTable',
81 *       columnDefs: [
82 *    	     { type: 'natural-ci', target: 0 }
83 *       ]
84 *    } );
85 *
86 */
87DataTable.type("natural", {
88    order: {
89        asc: function (a, b) {
90            return a.localeCompare(b, navigator.languages[0] || navigator.language, {
91                numeric: true,
92                ignorePunctuation: true,
93            });
94        },
95        desc: function (a, b) {
96            return (a.localeCompare(b, navigator.languages[0] || navigator.language, { numeric: true, ignorePunctuation: true }) *
97                -1);
98        },
99    },
100    className: "natural-sort",
101});
102DataTable.type("natural-nohtml", {
103    order: {
104        asc: function (a, b) {
105            a = DataTable.util.stripHtml(a);
106            b = DataTable.util.stripHtml(b);
107            return a.localeCompare(b, navigator.languages[0] || navigator.language, {
108                numeric: true,
109                ignorePunctuation: true,
110            });
111        },
112        desc: function (a, b) {
113            a = DataTable.util.stripHtml(a);
114            b = DataTable.util.stripHtml(b);
115            return (a.localeCompare(b, navigator.languages[0] || navigator.language, { numeric: true, ignorePunctuation: true }) *
116                -1);
117        },
118    },
119    className: "natural-sort",
120});
121DataTable.type("natural-ci", {
122    order: {
123        asc: function (a, b) {
124            a = a.toString().toLowerCase();
125            b = b.toString().toLowerCase();
126            return a.localeCompare(b, navigator.languages[0] || navigator.language, {
127                numeric: true,
128                ignorePunctuation: true,
129            });
130        },
131        desc: function (a, b) {
132            a = a.toString().toLowerCase();
133            b = b.toString().toLowerCase();
134            return (a.localeCompare(b, navigator.languages[0] || navigator.language, { numeric: true, ignorePunctuation: true }) *
135                -1);
136        },
137    },
138    className: "natural-sort",
139});
140
141
142return DataTable;
143}));

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.