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.
@@ -1,11 +1,51 @@
1
- /*! SearchBuilder 1.3.4
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 $$2;
8
- var dataTable$2;
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
- $$2 = jq;
22
- dataTable$2 = jq.fn.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$2 || !dataTable$2.versionCheck || !dataTable$2.versionCheck('1.10.0')) {
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 = $$2.extend(true, {}, Criteria.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 = $$2.extend(true, {}, Criteria.defaults, $$2.fn.dataTable.ext.searchBuilder, opts);
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: $$2('<div/>')
100
+ buttons: $$3('<div/>')
61
101
  .addClass(this.classes.buttonContainer),
62
- condition: $$2('<select disabled/>')
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: $$2('<option value="" disabled selected hidden/>')
107
+ conditionTitle: $$3('<option value="" disabled selected hidden/>')
68
108
  .html(this.s.dt.i18n('searchBuilder.condition', i18n.condition)),
69
- container: $$2('<div/>')
109
+ container: $$3('<div/>')
70
110
  .addClass(this.classes.container),
71
- data: $$2('<select/>')
111
+ data: $$3('<select/>')
72
112
  .addClass(this.classes.data)
73
113
  .addClass(this.classes.dropDown)
74
114
  .addClass(this.classes.italic),
75
- dataTitle: $$2('<option value="" disabled selected hidden/>')
115
+ dataTitle: $$3('<option value="" disabled selected hidden/>')
76
116
  .html(this.s.dt.i18n('searchBuilder.data', i18n.data)),
77
- defaultValue: $$2('<select disabled/>')
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": $$2('<button/>')
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: $$2('<div/>')
128
+ inputCont: $$3('<div/>')
89
129
  .addClass(this.classes.inputCont),
90
130
  // eslint-disable-next-line no-useless-escape
91
- left: $$2('<button/>')
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: $$2('<button/>')
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
- $$2('<select disabled/>')
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: $$2('<option value="--valueTitle--" disabled selected hidden/>')
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
- $$2(window).on('resize.dtsb', dataTable$2.util.throttle(function () {
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
- ($$2(this).text() === loadedCriteria.data ||
363
- loadedCriteria.origData && $$2(this).prop('origData') === loadedCriteria.origData)) {
364
- $$2(this).prop('selected', true);
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 = $$2(this).val();
407
+ dataIdx = $$3(this).val();
368
408
  }
369
409
  else {
370
- $$2(this).removeProp('selected');
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 = $$2(options[i]);
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 = $$2(options[i]);
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 = $$2(options[i]);
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 = $$2(options[i]);
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
- $$2('<select disabled/>')
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 $$2.extend(true, {}, Criteria.defaults, table.settings()[0].aoColumns[this.s.dataIdx].searchBuilder);
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
- $$2.fn.dataTable.ext.oApi._fnColumnTypes(this.s.dt.settings()[0]);
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($$2('<option>', {
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 = $$2('<option>', {
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($$2('<option>', {
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 = $$2('<option>', {
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
- $$2(children[i]).remove();
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 = $$2('<select/>')
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
- $$2(this).removeClass(Criteria.classes.italic);
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 = $$2('<option>', {
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 = $$2('<select/>')
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
- $$2(this).removeClass(Criteria.classes.italic);
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 = $$2('<option>', {
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 = $$2('<input/>')
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
- $$2('<input/>')
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
- $$2('<span>')
1276
+ $$3('<span>')
1237
1277
  .addClass(that.classes.joiner)
1238
1278
  .html(that.s.dt.i18n('searchBuilder.valueJoiner', that.c.i18n.valueJoiner)),
1239
- $$2('<input/>')
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 = $$2('<input/>')
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
- $$2('<input/>')
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
- $$2('<span>')
1370
+ $$3('<span>')
1331
1371
  .addClass(that.classes.joiner)
1332
1372
  .html(that.s.dt.i18n('searchBuilder.valueJoiner', that.c.i18n.valueJoiner)),
1333
- $$2('<input/>')
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 $$1;
2438
- var dataTable$1;
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
- $$1 = jq;
2446
- dataTable$1 = jq.fn.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$1 || !dataTable$1.versionCheck || !dataTable$1.versionCheck('1.10.0')) {
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 = $$1.extend(true, {}, Group.classes);
2501
+ this.classes = $$2.extend(true, {}, Group.classes);
2462
2502
  // Get options from user
2463
- this.c = $$1.extend(true, {}, Group.defaults, opts);
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: $$1('<button/>')
2518
+ add: $$2('<button/>')
2479
2519
  .addClass(this.classes.add)
2480
2520
  .addClass(this.classes.button)
2481
2521
  .attr('type', 'button'),
2482
- clear: $$1('<button>&times</button>')
2522
+ clear: $$2('<button>&times</button>')
2483
2523
  .addClass(this.classes.button)
2484
2524
  .addClass(this.classes.clearGroup)
2485
2525
  .attr('type', 'button'),
2486
- container: $$1('<div/>')
2526
+ container: $$2('<div/>')
2487
2527
  .addClass(this.classes.group),
2488
- logic: $$1('<button><div/></button>')
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: $$1('<div/>')
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 = $$1(firstCrit).offset().top;
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
- $ = jq;
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 = $.extend(true, {}, SearchBuilder.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 = $.extend(true, {}, SearchBuilder.defaults, opts);
3241
+ this.c = $$1.extend(true, {}, SearchBuilder.defaults, opts);
3202
3242
  this.dom = {
3203
- clearAll: $('<button type="button">' + table.i18n('searchBuilder.clearAll', this.c.i18n.clearAll) + '</button>')
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: $('<div/>')
3247
+ container: $$1('<div/>')
3208
3248
  .addClass(this.classes.container),
3209
- title: $('<div/>')
3249
+ title: $$1('<div/>')
3210
3250
  .addClass(this.classes.title),
3211
- titleRow: $('<div/>')
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
- $.fn.DataTable.Api.registerPlural('columns().type()', 'column().type()', function () {
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
- $.fn.dataTable.ext.oApi._fnColumnTypes(this.s.dt.settings()[0]);
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 (!$.fn.dataTable.ext.search.includes(this.s.search)) {
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
- $.fn.dataTable.ext.search.push(this.s.search);
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 = $.fn.dataTable.ext.search.indexOf(_this.s.search);
3523
+ var searchIdx = $$1.fn.dataTable.ext.search.indexOf(_this.s.search);
3484
3524
  while (searchIdx !== -1) {
3485
- $.fn.dataTable.ext.search.splice(searchIdx, 1);
3486
- searchIdx = $.fn.dataTable.ext.search.indexOf(_this.s.search);
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
- $(_this.s.dt.table().node()).off('.dtsb');
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.3.4';
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.3.4
3746
+ /*! SearchBuilder 1.4.0
3707
3747
  * ©SpryMedia Ltd - datatables.net/license/mit
3708
3748
  */
3709
- // DataTables extensions common UMD. Note that this allows for AMD, CommonJS
3710
- // (with window and jQuery being allowed as parameters to the returned
3711
- // function) or just default browser loading.
3712
- (function (factory) {
3713
- if (typeof define === 'function' && define.amd) {
3714
- // AMD
3715
- define(['jquery', 'datatables.net'], function ($) {
3716
- return factory($, window, document);
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
- else if (typeof exports === 'object') {
3720
- // CommonJS
3721
- module.exports = function (root, $) {
3722
- if (!root) {
3723
- root = window;
3724
- }
3725
- if (!$ || !$.fn.dataTable) {
3726
- // eslint-disable-next-line @typescript-eslint/no-var-requires
3727
- $ = require('datatables.net')(root, $).$;
3728
- }
3729
- return factory($, root, root.document);
3730
- };
3731
- }
3732
- else {
3733
- // Browser - assume jQuery has already been loaded
3734
- // eslint-disable-next-line no-extra-parens
3735
- factory(window.jQuery, window, document);
3736
- }
3737
- }(function ($, window, document) {
3738
- setJQuery($);
3739
- setJQuery$1($);
3740
- setJQuery$2($);
3741
- var dataTable = $.fn.dataTable;
3742
- // eslint-disable-next-line no-extra-parens
3743
- $.fn.dataTable.SearchBuilder = SearchBuilder;
3744
- // eslint-disable-next-line no-extra-parens
3745
- $.fn.DataTable.SearchBuilder = SearchBuilder;
3746
- // eslint-disable-next-line no-extra-parens
3747
- $.fn.dataTable.Group = Group;
3748
- // eslint-disable-next-line no-extra-parens
3749
- $.fn.DataTable.Group = Group;
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
- // Attach a listener to the document which listens for DataTables initialisation
3828
- // events so we can automatically initialise
3829
- $(document).on('preInit.dt.dtsp', function (e, settings) {
3830
- if (e.namespace !== 'dt') {
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
+ }));