datatables.net-searchbuilder 1.3.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/js/dataTables.searchBuilder.js +239 -225
- package/js/dataTables.searchBuilder.min.js +4 -149
- package/js/dataTables.searchBuilder.min.mjs +7 -0
- package/js/dataTables.searchBuilder.mjs +3829 -0
- package/package.json +4 -2
- package/types/index.d.ts +1 -1
- package/types/searchBuilder.bootstrap.d.ts +4 -0
- package/types/searchBuilder.bootstrap4.d.ts +4 -0
- package/types/searchBuilder.bootstrap5.d.ts +4 -0
- package/types/searchBuilder.bulma.d.ts +4 -0
- package/types/searchBuilder.dataTables.d.ts +4 -0
- package/types/searchBuilder.foundation.d.ts +4 -0
- package/types/searchBuilder.jqueryui.d.ts +4 -0
- package/types/searchBuilder.semanticui.d.ts +4 -0
- package/types/types.d.ts +81 -22
|
@@ -1,11 +1,51 @@
|
|
|
1
|
-
/*! SearchBuilder 1.
|
|
1
|
+
/*! SearchBuilder 1.4.0
|
|
2
2
|
* ©SpryMedia Ltd - datatables.net/license/mit
|
|
3
3
|
*/
|
|
4
|
+
|
|
5
|
+
(function( factory ){
|
|
6
|
+
if ( typeof define === 'function' && define.amd ) {
|
|
7
|
+
// AMD
|
|
8
|
+
define( ['jquery', 'datatables.net'], function ( $ ) {
|
|
9
|
+
return factory( $, window, document );
|
|
10
|
+
} );
|
|
11
|
+
}
|
|
12
|
+
else if ( typeof exports === 'object' ) {
|
|
13
|
+
// CommonJS
|
|
14
|
+
module.exports = function (root, $) {
|
|
15
|
+
if ( ! root ) {
|
|
16
|
+
// CommonJS environments without a window global must pass a
|
|
17
|
+
// root. This will give an error otherwise
|
|
18
|
+
root = window;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if ( ! $ ) {
|
|
22
|
+
$ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window
|
|
23
|
+
require('jquery') :
|
|
24
|
+
require('jquery')( root );
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if ( ! $.fn.dataTable ) {
|
|
28
|
+
require('datatables.net')(root, $);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
return factory( $, root, root.document );
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Browser
|
|
37
|
+
factory( jQuery, window, document );
|
|
38
|
+
}
|
|
39
|
+
}(function( $, window, document, undefined ) {
|
|
40
|
+
'use strict';
|
|
41
|
+
var DataTable = $.fn.dataTable;
|
|
42
|
+
|
|
43
|
+
|
|
4
44
|
(function () {
|
|
5
45
|
'use strict';
|
|
6
46
|
|
|
7
|
-
var $$
|
|
8
|
-
var dataTable$
|
|
47
|
+
var $$3;
|
|
48
|
+
var dataTable$3;
|
|
9
49
|
function moment() {
|
|
10
50
|
return window.moment;
|
|
11
51
|
}
|
|
@@ -18,8 +58,8 @@
|
|
|
18
58
|
* @param jq the instance of jQuery to be set
|
|
19
59
|
*/
|
|
20
60
|
function setJQuery$2(jq) {
|
|
21
|
-
$$
|
|
22
|
-
dataTable$
|
|
61
|
+
$$3 = jq;
|
|
62
|
+
dataTable$3 = jq.fn.dataTable;
|
|
23
63
|
}
|
|
24
64
|
/**
|
|
25
65
|
* The Criteria class is used within SearchBuilder to represent a search criteria
|
|
@@ -31,12 +71,12 @@
|
|
|
31
71
|
if (depth === void 0) { depth = 1; }
|
|
32
72
|
if (serverData === void 0) { serverData = undefined; }
|
|
33
73
|
// Check that the required version of DataTables is included
|
|
34
|
-
if (!dataTable$
|
|
74
|
+
if (!dataTable$3 || !dataTable$3.versionCheck || !dataTable$3.versionCheck('1.10.0')) {
|
|
35
75
|
throw new Error('SearchPane requires DataTables 1.10 or newer');
|
|
36
76
|
}
|
|
37
|
-
this.classes = $$
|
|
77
|
+
this.classes = $$3.extend(true, {}, Criteria.classes);
|
|
38
78
|
// Get options from user and any extra conditions/column types defined by plug-ins
|
|
39
|
-
this.c = $$
|
|
79
|
+
this.c = $$3.extend(true, {}, Criteria.defaults, $$3.fn.dataTable.ext.searchBuilder, opts);
|
|
40
80
|
var i18n = this.c.i18n;
|
|
41
81
|
this.s = {
|
|
42
82
|
condition: undefined,
|
|
@@ -57,58 +97,58 @@
|
|
|
57
97
|
value: []
|
|
58
98
|
};
|
|
59
99
|
this.dom = {
|
|
60
|
-
buttons: $$
|
|
100
|
+
buttons: $$3('<div/>')
|
|
61
101
|
.addClass(this.classes.buttonContainer),
|
|
62
|
-
condition: $$
|
|
102
|
+
condition: $$3('<select disabled/>')
|
|
63
103
|
.addClass(this.classes.condition)
|
|
64
104
|
.addClass(this.classes.dropDown)
|
|
65
105
|
.addClass(this.classes.italic)
|
|
66
106
|
.attr('autocomplete', 'hacking'),
|
|
67
|
-
conditionTitle: $$
|
|
107
|
+
conditionTitle: $$3('<option value="" disabled selected hidden/>')
|
|
68
108
|
.html(this.s.dt.i18n('searchBuilder.condition', i18n.condition)),
|
|
69
|
-
container: $$
|
|
109
|
+
container: $$3('<div/>')
|
|
70
110
|
.addClass(this.classes.container),
|
|
71
|
-
data: $$
|
|
111
|
+
data: $$3('<select/>')
|
|
72
112
|
.addClass(this.classes.data)
|
|
73
113
|
.addClass(this.classes.dropDown)
|
|
74
114
|
.addClass(this.classes.italic),
|
|
75
|
-
dataTitle: $$
|
|
115
|
+
dataTitle: $$3('<option value="" disabled selected hidden/>')
|
|
76
116
|
.html(this.s.dt.i18n('searchBuilder.data', i18n.data)),
|
|
77
|
-
defaultValue: $$
|
|
117
|
+
defaultValue: $$3('<select disabled/>')
|
|
78
118
|
.addClass(this.classes.value)
|
|
79
119
|
.addClass(this.classes.dropDown)
|
|
80
120
|
.addClass(this.classes.select)
|
|
81
121
|
.addClass(this.classes.italic),
|
|
82
|
-
"delete": $$
|
|
122
|
+
"delete": $$3('<button/>')
|
|
83
123
|
.html(this.s.dt.i18n('searchBuilder.delete', i18n["delete"]))
|
|
84
124
|
.addClass(this.classes["delete"])
|
|
85
125
|
.addClass(this.classes.button)
|
|
86
126
|
.attr('title', this.s.dt.i18n('searchBuilder.deleteTitle', i18n.deleteTitle))
|
|
87
127
|
.attr('type', 'button'),
|
|
88
|
-
inputCont: $$
|
|
128
|
+
inputCont: $$3('<div/>')
|
|
89
129
|
.addClass(this.classes.inputCont),
|
|
90
130
|
// eslint-disable-next-line no-useless-escape
|
|
91
|
-
left: $$
|
|
131
|
+
left: $$3('<button/>')
|
|
92
132
|
.html(this.s.dt.i18n('searchBuilder.left', i18n.left))
|
|
93
133
|
.addClass(this.classes.left)
|
|
94
134
|
.addClass(this.classes.button)
|
|
95
135
|
.attr('title', this.s.dt.i18n('searchBuilder.leftTitle', i18n.leftTitle))
|
|
96
136
|
.attr('type', 'button'),
|
|
97
137
|
// eslint-disable-next-line no-useless-escape
|
|
98
|
-
right: $$
|
|
138
|
+
right: $$3('<button/>')
|
|
99
139
|
.html(this.s.dt.i18n('searchBuilder.right', i18n.right))
|
|
100
140
|
.addClass(this.classes.right)
|
|
101
141
|
.addClass(this.classes.button)
|
|
102
142
|
.attr('title', this.s.dt.i18n('searchBuilder.rightTitle', i18n.rightTitle))
|
|
103
143
|
.attr('type', 'button'),
|
|
104
144
|
value: [
|
|
105
|
-
$$
|
|
145
|
+
$$3('<select disabled/>')
|
|
106
146
|
.addClass(this.classes.value)
|
|
107
147
|
.addClass(this.classes.dropDown)
|
|
108
148
|
.addClass(this.classes.italic)
|
|
109
149
|
.addClass(this.classes.select)
|
|
110
150
|
],
|
|
111
|
-
valueTitle: $$
|
|
151
|
+
valueTitle: $$3('<option value="--valueTitle--" disabled selected hidden/>')
|
|
112
152
|
.html(this.s.dt.i18n('searchBuilder.value', i18n.value))
|
|
113
153
|
};
|
|
114
154
|
// If the greyscale option is selected then add the class to add the grey colour to SearchBuilder
|
|
@@ -121,7 +161,7 @@
|
|
|
121
161
|
val.addClass(this.classes.greyscale);
|
|
122
162
|
}
|
|
123
163
|
}
|
|
124
|
-
$$
|
|
164
|
+
$$3(window).on('resize.dtsb', dataTable$3.util.throttle(function () {
|
|
125
165
|
_this.s.topGroup.trigger('dtsb-redrawLogic');
|
|
126
166
|
}));
|
|
127
167
|
this._buildCriteria();
|
|
@@ -359,15 +399,15 @@
|
|
|
359
399
|
var data_1 = this.dom.data;
|
|
360
400
|
this.dom.data.children('option').each(function () {
|
|
361
401
|
if (!foundData &&
|
|
362
|
-
($$
|
|
363
|
-
loadedCriteria.origData && $$
|
|
364
|
-
$$
|
|
402
|
+
($$3(this).text() === loadedCriteria.data ||
|
|
403
|
+
loadedCriteria.origData && $$3(this).prop('origData') === loadedCriteria.origData)) {
|
|
404
|
+
$$3(this).prop('selected', true);
|
|
365
405
|
data_1.removeClass(italic_1);
|
|
366
406
|
foundData = true;
|
|
367
|
-
dataIdx = $$
|
|
407
|
+
dataIdx = $$3(this).val();
|
|
368
408
|
}
|
|
369
409
|
else {
|
|
370
|
-
$$
|
|
410
|
+
$$3(this).removeProp('selected');
|
|
371
411
|
}
|
|
372
412
|
});
|
|
373
413
|
}
|
|
@@ -385,7 +425,7 @@
|
|
|
385
425
|
var options = this.dom.condition.children('option');
|
|
386
426
|
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
387
427
|
for (var i = 0; i < options.length; i++) {
|
|
388
|
-
var option = $$
|
|
428
|
+
var option = $$3(options[i]);
|
|
389
429
|
if (loadedCriteria.condition !== undefined &&
|
|
390
430
|
option.val() === loadedCriteria.condition &&
|
|
391
431
|
typeof loadedCriteria.condition === 'string') {
|
|
@@ -404,7 +444,7 @@
|
|
|
404
444
|
this.dom.condition.removeClass(this.classes.italic);
|
|
405
445
|
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
406
446
|
for (var i = 0; i < options.length; i++) {
|
|
407
|
-
var option = $$
|
|
447
|
+
var option = $$3(options[i]);
|
|
408
448
|
if (option.val() !== this.s.condition) {
|
|
409
449
|
option.removeProp('selected');
|
|
410
450
|
}
|
|
@@ -429,7 +469,7 @@
|
|
|
429
469
|
var options = _this.dom.data.children('option.' + _this.classes.option);
|
|
430
470
|
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
431
471
|
for (var i = 0; i < options.length; i++) {
|
|
432
|
-
var option = $$
|
|
472
|
+
var option = $$3(options[i]);
|
|
433
473
|
if (option.val() === _this.dom.data.val()) {
|
|
434
474
|
_this.dom.data.removeClass(_this.classes.italic);
|
|
435
475
|
option.prop('selected', true);
|
|
@@ -464,7 +504,7 @@
|
|
|
464
504
|
var options = _this.dom.condition.children('option.' + _this.classes.option);
|
|
465
505
|
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
466
506
|
for (var i = 0; i < options.length; i++) {
|
|
467
|
-
var option = $$
|
|
507
|
+
var option = $$3(options[i]);
|
|
468
508
|
if (option.val() === _this.dom.condition.val()) {
|
|
469
509
|
_this.dom.condition.removeClass(_this.classes.italic);
|
|
470
510
|
option.prop('selected', true);
|
|
@@ -605,7 +645,7 @@
|
|
|
605
645
|
}
|
|
606
646
|
this.s.value = [];
|
|
607
647
|
this.dom.value = [
|
|
608
|
-
$$
|
|
648
|
+
$$3('<select disabled/>')
|
|
609
649
|
.addClass(this.classes.value)
|
|
610
650
|
.addClass(this.classes.dropDown)
|
|
611
651
|
.addClass(this.classes.italic)
|
|
@@ -620,7 +660,7 @@
|
|
|
620
660
|
*/
|
|
621
661
|
Criteria.prototype._getOptions = function () {
|
|
622
662
|
var table = this.s.dt;
|
|
623
|
-
return $$
|
|
663
|
+
return $$3.extend(true, {}, Criteria.defaults, table.settings()[0].aoColumns[this.s.dataIdx].searchBuilder);
|
|
624
664
|
};
|
|
625
665
|
/**
|
|
626
666
|
* Populates the condition dropdown
|
|
@@ -644,7 +684,7 @@
|
|
|
644
684
|
}
|
|
645
685
|
// If the column type is still unknown, call a draw to try reading it again
|
|
646
686
|
if (this.s.type === null || this.s.type === undefined) {
|
|
647
|
-
$$
|
|
687
|
+
$$3.fn.dataTable.ext.oApi._fnColumnTypes(this.s.dt.settings()[0]);
|
|
648
688
|
this.s.type = this.s.dt.columns().type().toArray()[column];
|
|
649
689
|
}
|
|
650
690
|
// Enable the condition element
|
|
@@ -704,7 +744,7 @@
|
|
|
704
744
|
if (typeof condName === 'function') {
|
|
705
745
|
condName = condName(this.s.dt, this.c.i18n);
|
|
706
746
|
}
|
|
707
|
-
conditionOpts.push($$
|
|
747
|
+
conditionOpts.push($$3('<option>', {
|
|
708
748
|
text: condName,
|
|
709
749
|
value: condition
|
|
710
750
|
})
|
|
@@ -722,7 +762,7 @@
|
|
|
722
762
|
if (typeof condName === 'function') {
|
|
723
763
|
condName = condName(this.s.dt, this.c.i18n);
|
|
724
764
|
}
|
|
725
|
-
var newOpt = $$
|
|
765
|
+
var newOpt = $$3('<option>', {
|
|
726
766
|
text: condName,
|
|
727
767
|
value: condition
|
|
728
768
|
})
|
|
@@ -814,7 +854,7 @@
|
|
|
814
854
|
col.searchBuilderTitle).replace(/(<([^>]+)>)/ig, '')
|
|
815
855
|
};
|
|
816
856
|
_this.s.dataPoints.push(opt);
|
|
817
|
-
_this.dom.data.append($$
|
|
857
|
+
_this.dom.data.append($$3('<option>', {
|
|
818
858
|
text: opt.text,
|
|
819
859
|
value: opt.index
|
|
820
860
|
})
|
|
@@ -841,7 +881,7 @@
|
|
|
841
881
|
data.origData = col.data;
|
|
842
882
|
}
|
|
843
883
|
});
|
|
844
|
-
var newOpt = $$
|
|
884
|
+
var newOpt = $$3('<option>', {
|
|
845
885
|
text: data.text.replace(/(<([^>]+)>)/ig, ''),
|
|
846
886
|
value: data.index
|
|
847
887
|
})
|
|
@@ -893,7 +933,7 @@
|
|
|
893
933
|
if (children.length > 1) {
|
|
894
934
|
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
895
935
|
for (var i = 0; i < children.length; i++) {
|
|
896
|
-
$$
|
|
936
|
+
$$3(children[i]).remove();
|
|
897
937
|
}
|
|
898
938
|
}
|
|
899
939
|
// Find the column with the title matching the data for the criteria and take note of the index
|
|
@@ -1000,14 +1040,14 @@
|
|
|
1000
1040
|
var settings = that.s.dt.settings()[0];
|
|
1001
1041
|
that.dom.valueTitle.prop('selected', true);
|
|
1002
1042
|
// Declare select element to be used with all of the default classes and listeners.
|
|
1003
|
-
var el = $$
|
|
1043
|
+
var el = $$3('<select/>')
|
|
1004
1044
|
.addClass(Criteria.classes.value)
|
|
1005
1045
|
.addClass(Criteria.classes.dropDown)
|
|
1006
1046
|
.addClass(Criteria.classes.italic)
|
|
1007
1047
|
.addClass(Criteria.classes.select)
|
|
1008
1048
|
.append(that.dom.valueTitle)
|
|
1009
1049
|
.on('change.dtsb', function () {
|
|
1010
|
-
$$
|
|
1050
|
+
$$3(this).removeClass(Criteria.classes.italic);
|
|
1011
1051
|
fn(that, this);
|
|
1012
1052
|
});
|
|
1013
1053
|
if (that.c.greyscale) {
|
|
@@ -1042,7 +1082,7 @@
|
|
|
1042
1082
|
filt.replace(/(<([^>]+)>)/ig, '');
|
|
1043
1083
|
}
|
|
1044
1084
|
// Add text and value, stripping out any html if that is the column type
|
|
1045
|
-
var opt = $$
|
|
1085
|
+
var opt = $$3('<option>', {
|
|
1046
1086
|
type: Array.isArray(filt) ? 'Array' : 'String',
|
|
1047
1087
|
value: filt
|
|
1048
1088
|
})
|
|
@@ -1131,14 +1171,14 @@
|
|
|
1131
1171
|
if (preDefined === void 0) { preDefined = null; }
|
|
1132
1172
|
that.dom.valueTitle.prop('selected', true);
|
|
1133
1173
|
// Declare select element to be used with all of the default classes and listeners.
|
|
1134
|
-
var el = $$
|
|
1174
|
+
var el = $$3('<select/>')
|
|
1135
1175
|
.addClass(Criteria.classes.value)
|
|
1136
1176
|
.addClass(Criteria.classes.dropDown)
|
|
1137
1177
|
.addClass(Criteria.classes.italic)
|
|
1138
1178
|
.addClass(Criteria.classes.select)
|
|
1139
1179
|
.append(that.dom.valueTitle)
|
|
1140
1180
|
.on('change.dtsb', function () {
|
|
1141
|
-
$$
|
|
1181
|
+
$$3(this).removeClass(Criteria.classes.italic);
|
|
1142
1182
|
fn(that, this);
|
|
1143
1183
|
});
|
|
1144
1184
|
if (that.c.greyscale) {
|
|
@@ -1155,7 +1195,7 @@
|
|
|
1155
1195
|
filt.replace(/(<([^>]+)>)/ig, '');
|
|
1156
1196
|
}
|
|
1157
1197
|
// Add text and value, stripping out any html if that is the column type
|
|
1158
|
-
var opt = $$
|
|
1198
|
+
var opt = $$3('<option>', {
|
|
1159
1199
|
type: Array.isArray(filt) ? 'Array' : 'String',
|
|
1160
1200
|
value: filt
|
|
1161
1201
|
})
|
|
@@ -1198,7 +1238,7 @@
|
|
|
1198
1238
|
if (preDefined === void 0) { preDefined = null; }
|
|
1199
1239
|
// Declare the input element
|
|
1200
1240
|
var searchDelay = that.s.dt.settings()[0].searchDelay;
|
|
1201
|
-
var el = $$
|
|
1241
|
+
var el = $$3('<input/>')
|
|
1202
1242
|
.addClass(Criteria.classes.value)
|
|
1203
1243
|
.addClass(Criteria.classes.input)
|
|
1204
1244
|
.on('input.dtsb keypress.dtsb', that._throttle(function (e) {
|
|
@@ -1226,17 +1266,17 @@
|
|
|
1226
1266
|
// Declare all of the necessary jQuery elements
|
|
1227
1267
|
var searchDelay = that.s.dt.settings()[0].searchDelay;
|
|
1228
1268
|
var els = [
|
|
1229
|
-
$$
|
|
1269
|
+
$$3('<input/>')
|
|
1230
1270
|
.addClass(Criteria.classes.value)
|
|
1231
1271
|
.addClass(Criteria.classes.input)
|
|
1232
1272
|
.on('input.dtsb keypress.dtsb', that._throttle(function (e) {
|
|
1233
1273
|
var code = e.keyCode || e.which;
|
|
1234
1274
|
return fn(that, this, code);
|
|
1235
1275
|
}, searchDelay === null ? 100 : searchDelay)),
|
|
1236
|
-
$$
|
|
1276
|
+
$$3('<span>')
|
|
1237
1277
|
.addClass(that.classes.joiner)
|
|
1238
1278
|
.html(that.s.dt.i18n('searchBuilder.valueJoiner', that.c.i18n.valueJoiner)),
|
|
1239
|
-
$$
|
|
1279
|
+
$$3('<input/>')
|
|
1240
1280
|
.addClass(Criteria.classes.value)
|
|
1241
1281
|
.addClass(Criteria.classes.input)
|
|
1242
1282
|
.on('input.dtsb keypress.dtsb', that._throttle(function (e) {
|
|
@@ -1266,7 +1306,7 @@
|
|
|
1266
1306
|
if (preDefined === void 0) { preDefined = null; }
|
|
1267
1307
|
var searchDelay = that.s.dt.settings()[0].searchDelay;
|
|
1268
1308
|
// Declare date element using DataTables dateTime plugin
|
|
1269
|
-
var el = $$
|
|
1309
|
+
var el = $$3('<input/>')
|
|
1270
1310
|
.addClass(Criteria.classes.value)
|
|
1271
1311
|
.addClass(Criteria.classes.input)
|
|
1272
1312
|
.dtDateTime({
|
|
@@ -1307,7 +1347,7 @@
|
|
|
1307
1347
|
var searchDelay = that.s.dt.settings()[0].searchDelay;
|
|
1308
1348
|
// Declare all of the date elements that are required using DataTables dateTime plugin
|
|
1309
1349
|
var els = [
|
|
1310
|
-
$$
|
|
1350
|
+
$$3('<input/>')
|
|
1311
1351
|
.addClass(Criteria.classes.value)
|
|
1312
1352
|
.addClass(Criteria.classes.input)
|
|
1313
1353
|
.dtDateTime({
|
|
@@ -1327,10 +1367,10 @@
|
|
|
1327
1367
|
return fn(that, this, code);
|
|
1328
1368
|
}, searchDelay === null ? 0 : searchDelay);
|
|
1329
1369
|
}),
|
|
1330
|
-
$$
|
|
1370
|
+
$$3('<span>')
|
|
1331
1371
|
.addClass(that.classes.joiner)
|
|
1332
1372
|
.html(that.s.dt.i18n('searchBuilder.valueJoiner', that.c.i18n.valueJoiner)),
|
|
1333
|
-
$$
|
|
1373
|
+
$$3('<input/>')
|
|
1334
1374
|
.addClass(Criteria.classes.value)
|
|
1335
1375
|
.addClass(Criteria.classes.input)
|
|
1336
1376
|
.dtDateTime({
|
|
@@ -2434,16 +2474,16 @@
|
|
|
2434
2474
|
return Criteria;
|
|
2435
2475
|
}());
|
|
2436
2476
|
|
|
2437
|
-
var $$
|
|
2438
|
-
var dataTable$
|
|
2477
|
+
var $$2;
|
|
2478
|
+
var dataTable$2;
|
|
2439
2479
|
/**
|
|
2440
2480
|
* Sets the value of jQuery for use in the file
|
|
2441
2481
|
*
|
|
2442
2482
|
* @param jq the instance of jQuery to be set
|
|
2443
2483
|
*/
|
|
2444
2484
|
function setJQuery$1(jq) {
|
|
2445
|
-
$$
|
|
2446
|
-
dataTable$
|
|
2485
|
+
$$2 = jq;
|
|
2486
|
+
dataTable$2 = jq.fn.dataTable;
|
|
2447
2487
|
}
|
|
2448
2488
|
/**
|
|
2449
2489
|
* The Group class is used within SearchBuilder to represent a group of criteria
|
|
@@ -2455,12 +2495,12 @@
|
|
|
2455
2495
|
if (depth === void 0) { depth = 1; }
|
|
2456
2496
|
if (serverData === void 0) { serverData = undefined; }
|
|
2457
2497
|
// Check that the required version of DataTables is included
|
|
2458
|
-
if (!dataTable$
|
|
2498
|
+
if (!dataTable$2 || !dataTable$2.versionCheck || !dataTable$2.versionCheck('1.10.0')) {
|
|
2459
2499
|
throw new Error('SearchBuilder requires DataTables 1.10 or newer');
|
|
2460
2500
|
}
|
|
2461
|
-
this.classes = $$
|
|
2501
|
+
this.classes = $$2.extend(true, {}, Group.classes);
|
|
2462
2502
|
// Get options from user
|
|
2463
|
-
this.c = $$
|
|
2503
|
+
this.c = $$2.extend(true, {}, Group.defaults, opts);
|
|
2464
2504
|
this.s = {
|
|
2465
2505
|
criteria: [],
|
|
2466
2506
|
depth: depth,
|
|
@@ -2475,21 +2515,21 @@
|
|
|
2475
2515
|
topGroup: topGroup
|
|
2476
2516
|
};
|
|
2477
2517
|
this.dom = {
|
|
2478
|
-
add: $$
|
|
2518
|
+
add: $$2('<button/>')
|
|
2479
2519
|
.addClass(this.classes.add)
|
|
2480
2520
|
.addClass(this.classes.button)
|
|
2481
2521
|
.attr('type', 'button'),
|
|
2482
|
-
clear: $$
|
|
2522
|
+
clear: $$2('<button>×</button>')
|
|
2483
2523
|
.addClass(this.classes.button)
|
|
2484
2524
|
.addClass(this.classes.clearGroup)
|
|
2485
2525
|
.attr('type', 'button'),
|
|
2486
|
-
container: $$
|
|
2526
|
+
container: $$2('<div/>')
|
|
2487
2527
|
.addClass(this.classes.group),
|
|
2488
|
-
logic: $$
|
|
2528
|
+
logic: $$2('<button><div/></button>')
|
|
2489
2529
|
.addClass(this.classes.logic)
|
|
2490
2530
|
.addClass(this.classes.button)
|
|
2491
2531
|
.attr('type', 'button'),
|
|
2492
|
-
logicContainer: $$
|
|
2532
|
+
logicContainer: $$2('<div/>')
|
|
2493
2533
|
.addClass(this.classes.logicContainer)
|
|
2494
2534
|
};
|
|
2495
2535
|
// A reference to the top level group is maintained throughout any subgroups and criteria that may be created
|
|
@@ -2704,7 +2744,7 @@
|
|
|
2704
2744
|
// Set vertical alignment
|
|
2705
2745
|
var firstCrit = this.dom.logicContainer.next();
|
|
2706
2746
|
var currentTop = logicOffset.top;
|
|
2707
|
-
var firstTop = $$
|
|
2747
|
+
var firstTop = $$2(firstCrit).offset().top;
|
|
2708
2748
|
var shuffleTop = currentTop - firstTop;
|
|
2709
2749
|
var newTop = currentTop - shuffleTop;
|
|
2710
2750
|
this.dom.logicContainer.offset({ top: newTop });
|
|
@@ -3173,16 +3213,16 @@
|
|
|
3173
3213
|
return Group;
|
|
3174
3214
|
}());
|
|
3175
3215
|
|
|
3176
|
-
var
|
|
3177
|
-
var dataTable;
|
|
3216
|
+
var $$1;
|
|
3217
|
+
var dataTable$1;
|
|
3178
3218
|
/**
|
|
3179
3219
|
* Sets the value of jQuery for use in the file
|
|
3180
3220
|
*
|
|
3181
3221
|
* @param jq the instance of jQuery to be set
|
|
3182
3222
|
*/
|
|
3183
3223
|
function setJQuery(jq) {
|
|
3184
|
-
|
|
3185
|
-
dataTable = jq.fn.DataTable;
|
|
3224
|
+
$$1 = jq;
|
|
3225
|
+
dataTable$1 = jq.fn.DataTable;
|
|
3186
3226
|
}
|
|
3187
3227
|
/**
|
|
3188
3228
|
* SearchBuilder class for DataTables.
|
|
@@ -3192,23 +3232,23 @@
|
|
|
3192
3232
|
function SearchBuilder(builderSettings, opts) {
|
|
3193
3233
|
var _this = this;
|
|
3194
3234
|
// Check that the required version of DataTables is included
|
|
3195
|
-
if (!dataTable || !dataTable.versionCheck || !dataTable.versionCheck('1.10.0')) {
|
|
3235
|
+
if (!dataTable$1 || !dataTable$1.versionCheck || !dataTable$1.versionCheck('1.10.0')) {
|
|
3196
3236
|
throw new Error('SearchBuilder requires DataTables 1.10 or newer');
|
|
3197
3237
|
}
|
|
3198
|
-
var table = new dataTable.Api(builderSettings);
|
|
3199
|
-
this.classes =
|
|
3238
|
+
var table = new dataTable$1.Api(builderSettings);
|
|
3239
|
+
this.classes = $$1.extend(true, {}, SearchBuilder.classes);
|
|
3200
3240
|
// Get options from user
|
|
3201
|
-
this.c =
|
|
3241
|
+
this.c = $$1.extend(true, {}, SearchBuilder.defaults, opts);
|
|
3202
3242
|
this.dom = {
|
|
3203
|
-
clearAll:
|
|
3243
|
+
clearAll: $$1('<button type="button">' + table.i18n('searchBuilder.clearAll', this.c.i18n.clearAll) + '</button>')
|
|
3204
3244
|
.addClass(this.classes.clearAll)
|
|
3205
3245
|
.addClass(this.classes.button)
|
|
3206
3246
|
.attr('type', 'button'),
|
|
3207
|
-
container:
|
|
3247
|
+
container: $$1('<div/>')
|
|
3208
3248
|
.addClass(this.classes.container),
|
|
3209
|
-
title:
|
|
3249
|
+
title: $$1('<div/>')
|
|
3210
3250
|
.addClass(this.classes.title),
|
|
3211
|
-
titleRow:
|
|
3251
|
+
titleRow: $$1('<div/>')
|
|
3212
3252
|
.addClass(this.classes.titleRow),
|
|
3213
3253
|
topGroup: undefined
|
|
3214
3254
|
};
|
|
@@ -3324,14 +3364,14 @@
|
|
|
3324
3364
|
var _this = this;
|
|
3325
3365
|
if (loadState === void 0) { loadState = true; }
|
|
3326
3366
|
// Register an Api method for getting the column type
|
|
3327
|
-
|
|
3367
|
+
$$1.fn.DataTable.Api.registerPlural('columns().type()', 'column().type()', function () {
|
|
3328
3368
|
return this.iterator('column', function (settings, column) {
|
|
3329
3369
|
return settings.aoColumns[column].sType;
|
|
3330
3370
|
}, 1);
|
|
3331
3371
|
});
|
|
3332
3372
|
// Check that DateTime is included, If not need to check if it could be used
|
|
3333
3373
|
// eslint-disable-next-line no-extra-parens
|
|
3334
|
-
if (!dataTable.DateTime) {
|
|
3374
|
+
if (!dataTable$1.DateTime) {
|
|
3335
3375
|
var types = this.s.dt.columns().type().toArray();
|
|
3336
3376
|
if (types === undefined || types.includes(undefined) || types.includes(null)) {
|
|
3337
3377
|
types = [];
|
|
@@ -3343,7 +3383,7 @@
|
|
|
3343
3383
|
var columnIdxs = this.s.dt.columns().toArray();
|
|
3344
3384
|
// If the types are not yet set then draw to see if they can be retrieved then
|
|
3345
3385
|
if (types === undefined || types.includes(undefined) || types.includes(null)) {
|
|
3346
|
-
|
|
3386
|
+
$$1.fn.dataTable.ext.oApi._fnColumnTypes(this.s.dt.settings()[0]);
|
|
3347
3387
|
types = this.s.dt.columns().type().toArray();
|
|
3348
3388
|
}
|
|
3349
3389
|
for (var i = 0; i < columnIdxs[0].length; i++) {
|
|
@@ -3466,7 +3506,7 @@
|
|
|
3466
3506
|
this.dom.container.append(this.dom.topGroup);
|
|
3467
3507
|
this._setRedrawListener();
|
|
3468
3508
|
var tableNode = this.s.dt.table(0).node();
|
|
3469
|
-
if (
|
|
3509
|
+
if (!$$1.fn.dataTable.ext.search.includes(this.s.search)) {
|
|
3470
3510
|
// Custom search function for SearchBuilder
|
|
3471
3511
|
this.s.search = function (settings, searchData, dataIndex) {
|
|
3472
3512
|
if (settings.nTable !== tableNode) {
|
|
@@ -3475,18 +3515,18 @@
|
|
|
3475
3515
|
return _this.s.topGroup.search(searchData, dataIndex);
|
|
3476
3516
|
};
|
|
3477
3517
|
// Add SearchBuilder search function to the dataTables search array
|
|
3478
|
-
|
|
3518
|
+
$$1.fn.dataTable.ext.search.push(this.s.search);
|
|
3479
3519
|
}
|
|
3480
3520
|
this.s.dt.on('destroy.dtsb', function () {
|
|
3481
3521
|
_this.dom.container.remove();
|
|
3482
3522
|
_this.dom.clearAll.remove();
|
|
3483
|
-
var searchIdx =
|
|
3523
|
+
var searchIdx = $$1.fn.dataTable.ext.search.indexOf(_this.s.search);
|
|
3484
3524
|
while (searchIdx !== -1) {
|
|
3485
|
-
|
|
3486
|
-
searchIdx =
|
|
3525
|
+
$$1.fn.dataTable.ext.search.splice(searchIdx, 1);
|
|
3526
|
+
searchIdx = $$1.fn.dataTable.ext.search.indexOf(_this.s.search);
|
|
3487
3527
|
}
|
|
3488
3528
|
_this.s.dt.off('.dtsb');
|
|
3489
|
-
|
|
3529
|
+
$$1(_this.s.dt.table().node()).off('.dtsb');
|
|
3490
3530
|
});
|
|
3491
3531
|
};
|
|
3492
3532
|
/**
|
|
@@ -3597,7 +3637,7 @@
|
|
|
3597
3637
|
_this.dom.clearAll.remove();
|
|
3598
3638
|
});
|
|
3599
3639
|
};
|
|
3600
|
-
SearchBuilder.version = '1.
|
|
3640
|
+
SearchBuilder.version = '1.4.0';
|
|
3601
3641
|
SearchBuilder.classes = {
|
|
3602
3642
|
button: 'dtsb-button',
|
|
3603
3643
|
clearAll: 'dtsb-clearAll',
|
|
@@ -3703,149 +3743,123 @@
|
|
|
3703
3743
|
return SearchBuilder;
|
|
3704
3744
|
}());
|
|
3705
3745
|
|
|
3706
|
-
/*! SearchBuilder 1.
|
|
3746
|
+
/*! SearchBuilder 1.4.0
|
|
3707
3747
|
* ©SpryMedia Ltd - datatables.net/license/mit
|
|
3708
3748
|
*/
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3749
|
+
setJQuery($);
|
|
3750
|
+
setJQuery$1($);
|
|
3751
|
+
setJQuery$2($);
|
|
3752
|
+
var dataTable = $.fn.dataTable;
|
|
3753
|
+
// eslint-disable-next-line no-extra-parens
|
|
3754
|
+
DataTable.SearchBuilder = SearchBuilder;
|
|
3755
|
+
// eslint-disable-next-line no-extra-parens
|
|
3756
|
+
dataTable.SearchBuilder = SearchBuilder;
|
|
3757
|
+
// eslint-disable-next-line no-extra-parens
|
|
3758
|
+
DataTable.Group = Group;
|
|
3759
|
+
// eslint-disable-next-line no-extra-parens
|
|
3760
|
+
dataTable.Group = Group;
|
|
3761
|
+
// eslint-disable-next-line no-extra-parens
|
|
3762
|
+
DataTable.Criteria = Criteria;
|
|
3763
|
+
// eslint-disable-next-line no-extra-parens
|
|
3764
|
+
dataTable.Criteria = Criteria;
|
|
3765
|
+
// eslint-disable-next-line no-extra-parens
|
|
3766
|
+
var apiRegister = DataTable.Api.register;
|
|
3767
|
+
// Set up object for plugins
|
|
3768
|
+
DataTable.ext.searchBuilder = {
|
|
3769
|
+
conditions: {}
|
|
3770
|
+
};
|
|
3771
|
+
DataTable.ext.buttons.searchBuilder = {
|
|
3772
|
+
action: function (e, dt, node, config) {
|
|
3773
|
+
this.popover(config._searchBuilder.getNode(), {
|
|
3774
|
+
align: 'container',
|
|
3775
|
+
span: 'container'
|
|
3717
3776
|
});
|
|
3777
|
+
var topGroup = config._searchBuilder.s.topGroup;
|
|
3778
|
+
// Need to redraw the contents to calculate the correct positions for the elements
|
|
3779
|
+
if (topGroup !== undefined) {
|
|
3780
|
+
topGroup.dom.container.trigger('dtsb-redrawContents-noDraw');
|
|
3781
|
+
}
|
|
3782
|
+
if (topGroup.s.criteria.length === 0) {
|
|
3783
|
+
$('.' + $.fn.dataTable.Group.classes.add.replace(/ /g, '.')).click();
|
|
3784
|
+
}
|
|
3785
|
+
},
|
|
3786
|
+
config: {},
|
|
3787
|
+
init: function (dt, node, config) {
|
|
3788
|
+
var sb = new DataTable.SearchBuilder(dt, $.extend({
|
|
3789
|
+
filterChanged: function (count, text) {
|
|
3790
|
+
dt.button(node).text(text);
|
|
3791
|
+
}
|
|
3792
|
+
}, config.config));
|
|
3793
|
+
dt.button(node).text(config.text || dt.i18n('searchBuilder.button', sb.c.i18n.button, 0));
|
|
3794
|
+
config._searchBuilder = sb;
|
|
3795
|
+
},
|
|
3796
|
+
text: null
|
|
3797
|
+
};
|
|
3798
|
+
apiRegister('searchBuilder.getDetails()', function (deFormatDates) {
|
|
3799
|
+
if (deFormatDates === void 0) { deFormatDates = false; }
|
|
3800
|
+
var ctx = this.context[0];
|
|
3801
|
+
// If SearchBuilder has not been initialised on this instance then return
|
|
3802
|
+
return ctx._searchBuilder ?
|
|
3803
|
+
ctx._searchBuilder.getDetails(deFormatDates) :
|
|
3804
|
+
null;
|
|
3805
|
+
});
|
|
3806
|
+
apiRegister('searchBuilder.rebuild()', function (details) {
|
|
3807
|
+
var ctx = this.context[0];
|
|
3808
|
+
// If SearchBuilder has not been initialised on this instance then return
|
|
3809
|
+
if (ctx._searchBuilder === undefined) {
|
|
3810
|
+
return null;
|
|
3718
3811
|
}
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
var
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
// eslint-disable-next-line no-extra-parens
|
|
3751
|
-
$.fn.dataTable.Criteria = Criteria;
|
|
3752
|
-
// eslint-disable-next-line no-extra-parens
|
|
3753
|
-
$.fn.DataTable.Criteria = Criteria;
|
|
3754
|
-
// eslint-disable-next-line no-extra-parens
|
|
3755
|
-
var apiRegister = $.fn.dataTable.Api.register;
|
|
3756
|
-
// Set up object for plugins
|
|
3757
|
-
$.fn.dataTable.ext.searchBuilder = {
|
|
3758
|
-
conditions: {}
|
|
3759
|
-
};
|
|
3760
|
-
$.fn.dataTable.ext.buttons.searchBuilder = {
|
|
3761
|
-
action: function (e, dt, node, config) {
|
|
3762
|
-
this.popover(config._searchBuilder.getNode(), {
|
|
3763
|
-
align: 'container',
|
|
3764
|
-
span: 'container'
|
|
3765
|
-
});
|
|
3766
|
-
var topGroup = config._searchBuilder.s.topGroup;
|
|
3767
|
-
// Need to redraw the contents to calculate the correct positions for the elements
|
|
3768
|
-
if (topGroup !== undefined) {
|
|
3769
|
-
topGroup.dom.container.trigger('dtsb-redrawContents-noDraw');
|
|
3770
|
-
}
|
|
3771
|
-
if (topGroup.s.criteria.length === 0) {
|
|
3772
|
-
$('.' + $.fn.dataTable.Group.classes.add.replace(/ /g, '.')).click();
|
|
3773
|
-
}
|
|
3774
|
-
},
|
|
3775
|
-
config: {},
|
|
3776
|
-
init: function (dt, node, config) {
|
|
3777
|
-
var sb = new $.fn.dataTable.SearchBuilder(dt, $.extend({
|
|
3778
|
-
filterChanged: function (count, text) {
|
|
3779
|
-
dt.button(node).text(text);
|
|
3780
|
-
}
|
|
3781
|
-
}, config.config));
|
|
3782
|
-
dt.button(node).text(config.text || dt.i18n('searchBuilder.button', sb.c.i18n.button, 0));
|
|
3783
|
-
config._searchBuilder = sb;
|
|
3784
|
-
},
|
|
3785
|
-
text: null
|
|
3786
|
-
};
|
|
3787
|
-
apiRegister('searchBuilder.getDetails()', function (deFormatDates) {
|
|
3788
|
-
if (deFormatDates === void 0) { deFormatDates = false; }
|
|
3789
|
-
var ctx = this.context[0];
|
|
3790
|
-
// If SearchBuilder has not been initialised on this instance then return
|
|
3791
|
-
return ctx._searchBuilder ?
|
|
3792
|
-
ctx._searchBuilder.getDetails(deFormatDates) :
|
|
3793
|
-
null;
|
|
3794
|
-
});
|
|
3795
|
-
apiRegister('searchBuilder.rebuild()', function (details) {
|
|
3796
|
-
var ctx = this.context[0];
|
|
3797
|
-
// If SearchBuilder has not been initialised on this instance then return
|
|
3798
|
-
if (ctx._searchBuilder === undefined) {
|
|
3799
|
-
return null;
|
|
3800
|
-
}
|
|
3801
|
-
ctx._searchBuilder.rebuild(details);
|
|
3802
|
-
return this;
|
|
3803
|
-
});
|
|
3804
|
-
apiRegister('searchBuilder.container()', function () {
|
|
3805
|
-
var ctx = this.context[0];
|
|
3806
|
-
// If SearchBuilder has not been initialised on this instance then return
|
|
3807
|
-
return ctx._searchBuilder ?
|
|
3808
|
-
ctx._searchBuilder.getNode() :
|
|
3809
|
-
null;
|
|
3810
|
-
});
|
|
3811
|
-
/**
|
|
3812
|
-
* Init function for SearchBuilder
|
|
3813
|
-
*
|
|
3814
|
-
* @param settings the settings to be applied
|
|
3815
|
-
* @param options the options for SearchBuilder
|
|
3816
|
-
* @returns JQUERY<HTMLElement> Returns the node of the SearchBuilder
|
|
3817
|
-
*/
|
|
3818
|
-
function _init(settings, options) {
|
|
3819
|
-
var api = new dataTable.Api(settings);
|
|
3820
|
-
var opts = options
|
|
3821
|
-
? options
|
|
3822
|
-
: api.init().searchBuilder || dataTable.defaults.searchBuilder;
|
|
3823
|
-
var searchBuilder = new SearchBuilder(api, opts);
|
|
3824
|
-
var node = searchBuilder.getNode();
|
|
3825
|
-
return node;
|
|
3812
|
+
ctx._searchBuilder.rebuild(details);
|
|
3813
|
+
return this;
|
|
3814
|
+
});
|
|
3815
|
+
apiRegister('searchBuilder.container()', function () {
|
|
3816
|
+
var ctx = this.context[0];
|
|
3817
|
+
// If SearchBuilder has not been initialised on this instance then return
|
|
3818
|
+
return ctx._searchBuilder ?
|
|
3819
|
+
ctx._searchBuilder.getNode() :
|
|
3820
|
+
null;
|
|
3821
|
+
});
|
|
3822
|
+
/**
|
|
3823
|
+
* Init function for SearchBuilder
|
|
3824
|
+
*
|
|
3825
|
+
* @param settings the settings to be applied
|
|
3826
|
+
* @param options the options for SearchBuilder
|
|
3827
|
+
* @returns JQUERY<HTMLElement> Returns the node of the SearchBuilder
|
|
3828
|
+
*/
|
|
3829
|
+
function _init(settings, options) {
|
|
3830
|
+
var api = new DataTable.Api(settings);
|
|
3831
|
+
var opts = options
|
|
3832
|
+
? options
|
|
3833
|
+
: api.init().searchBuilder || DataTable.defaults.searchBuilder;
|
|
3834
|
+
var searchBuilder = new SearchBuilder(api, opts);
|
|
3835
|
+
var node = searchBuilder.getNode();
|
|
3836
|
+
return node;
|
|
3837
|
+
}
|
|
3838
|
+
// Attach a listener to the document which listens for DataTables initialisation
|
|
3839
|
+
// events so we can automatically initialise
|
|
3840
|
+
$(document).on('preInit.dt.dtsp', function (e, settings) {
|
|
3841
|
+
if (e.namespace !== 'dt') {
|
|
3842
|
+
return;
|
|
3826
3843
|
}
|
|
3827
|
-
|
|
3828
|
-
|
|
3829
|
-
|
|
3830
|
-
|
|
3831
|
-
return;
|
|
3844
|
+
if (settings.oInit.searchBuilder ||
|
|
3845
|
+
DataTable.defaults.searchBuilder) {
|
|
3846
|
+
if (!settings._searchBuilder) {
|
|
3847
|
+
_init(settings);
|
|
3832
3848
|
}
|
|
3833
|
-
if (settings.oInit.searchBuilder ||
|
|
3834
|
-
dataTable.defaults.searchBuilder) {
|
|
3835
|
-
if (!settings._searchBuilder) {
|
|
3836
|
-
_init(settings);
|
|
3837
|
-
}
|
|
3838
|
-
}
|
|
3839
|
-
});
|
|
3840
|
-
// DataTables `dom` feature option
|
|
3841
|
-
dataTable.ext.feature.push({
|
|
3842
|
-
cFeature: 'Q',
|
|
3843
|
-
fnInit: _init
|
|
3844
|
-
});
|
|
3845
|
-
// DataTables 2 layout feature
|
|
3846
|
-
if (dataTable.ext.features) {
|
|
3847
|
-
dataTable.ext.features.register('searchBuilder', _init);
|
|
3848
3849
|
}
|
|
3849
|
-
})
|
|
3850
|
+
});
|
|
3851
|
+
// DataTables `dom` feature option
|
|
3852
|
+
DataTable.ext.feature.push({
|
|
3853
|
+
cFeature: 'Q',
|
|
3854
|
+
fnInit: _init
|
|
3855
|
+
});
|
|
3856
|
+
// DataTables 2 layout feature
|
|
3857
|
+
if (DataTable.ext.features) {
|
|
3858
|
+
DataTable.ext.features.register('searchBuilder', _init);
|
|
3859
|
+
}
|
|
3850
3860
|
|
|
3851
3861
|
}());
|
|
3862
|
+
|
|
3863
|
+
|
|
3864
|
+
return DataTable;
|
|
3865
|
+
}));
|