datatables.net-searchbuilder 2.0.0 → 2.0.1

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,4 +1,4 @@
1
- /*! SearchBuilder 2.0.0 for DataTables
1
+ /*! SearchBuilder 2.0.1 for DataTables
2
2
  * Copyright (c) SpryMedia Ltd - datatables.net/license
3
3
  */
4
4
 
@@ -745,18 +745,55 @@ class Criteria {
745
745
  conditionObj = this.c.conditions[this.s.type];
746
746
  }
747
747
  else if (this.s.type && this.s.type === 'datetime') {
748
- // If no format was specified in the DT type, then we need to use
749
- // Moment / Luxon's default locale formatting.
750
- let moment = DataTable.use('moment');
751
- let luxon = DataTable.use('luxon');
752
- if (moment) {
748
+ conditionObj = this.c.conditions.date;
749
+ // If no format was specified in the DT type, a Javascript
750
+ // native toLocaleDateString was used. Need to work out what
751
+ // that format is in Moment or Luxon. We need to pass a known
752
+ // value though the renderer and work out the format
753
+ //
754
+ // This is the same method as ColumnControl uses. A shared
755
+ // method might be appropriate in future.
756
+ let renderer = colInits[column].render;
757
+ let resultPm = renderer('1999-08-07T23:05:04Z', 'display');
758
+ let resultAm = renderer('1999-08-07T03:05:04Z', 'display');
759
+ let leadingZero = resultAm.includes('03');
760
+ // What formatter are we using?
761
+ if (DataTable.use('moment')) {
753
762
  conditionObj = this.c.conditions.moment;
754
- this.s.dateFormat =
755
- moment().creationData().locale._longDateFormat.L;
763
+ this.s.dateFormat = resultPm
764
+ .replace('23', leadingZero ? 'HH' : 'H')
765
+ .replace('11', leadingZero ? 'hh' : 'h')
766
+ .replace('05', 'mm')
767
+ .replace('04', 'ss')
768
+ .replace('PM', 'A')
769
+ .replace('pm', 'a')
770
+ .replace('07', 'DD')
771
+ .replace('7', 'D')
772
+ .replace('08', 'MM')
773
+ .replace('8', 'M')
774
+ .replace('1999', 'YYYY')
775
+ .replace('99', 'YY');
756
776
  }
757
- if (luxon) {
777
+ else if (DataTable.use('luxon')) {
758
778
  conditionObj = this.c.conditions.luxon;
759
- this.s.dateFormat = luxon.DateTime.DATE_SHORT;
779
+ this.s.dateFormat = resultPm
780
+ .replace('23', leadingZero ? 'HH' : 'H')
781
+ .replace('11', leadingZero ? 'hh' : 'h')
782
+ .replace('05', 'mm')
783
+ .replace('04', 'ss')
784
+ .replace('PM', 'a')
785
+ .replace('07', 'dd')
786
+ .replace('7', 'd')
787
+ .replace('08', 'MM')
788
+ .replace('8', 'M')
789
+ .replace('1999', 'yyyy')
790
+ .replace('99', 'yy');
791
+ }
792
+ else if (resultPm.includes('23') && resultPm.includes('1999')) {
793
+ this.s.dateFormat = 'YYYY-MM-DD hh:mm:ss';
794
+ }
795
+ else if (resultPm.includes('23')) {
796
+ this.s.dateFormat = 'hh:mm:ss';
760
797
  }
761
798
  }
762
799
  else if (this.s.type && this.s.type.includes('datetime-')) {
@@ -996,32 +1033,14 @@ class Criteria {
996
1033
  }
997
1034
  }
998
1035
  /**
999
- * Provides throttling capabilities to SearchBuilder without having to use dt's _fnThrottle function
1000
- * This is because that function is not quite suitable for our needs as it runs initially rather than waiting
1036
+ * Provides debounce capabilities to SearchBuilder. Makes use of DataTables'
1037
+ * utility methods.
1001
1038
  *
1002
1039
  * @param args arguments supplied to the throttle function
1003
1040
  * @returns Function that is to be run that implements the throttling
1004
1041
  */
1005
1042
  _throttle(fn, frequency = 200) {
1006
- let last = null;
1007
- let timer = null;
1008
- let that = this;
1009
- if (frequency === null) {
1010
- frequency = 200;
1011
- }
1012
- return function (...args) {
1013
- let now = +new Date();
1014
- if (last !== null && now < last + frequency) {
1015
- clearTimeout(timer);
1016
- }
1017
- else {
1018
- last = now;
1019
- }
1020
- timer = setTimeout(function () {
1021
- last = null;
1022
- fn.apply(that, args);
1023
- }, frequency);
1024
- };
1043
+ return DataTable.util.debounce(fn, frequency);
1025
1044
  }
1026
1045
  }
1027
1046
  Criteria.classes = {
@@ -3626,7 +3645,7 @@ class SearchBuilder {
3626
3645
  });
3627
3646
  }
3628
3647
  }
3629
- SearchBuilder.version = '2.0.0';
3648
+ SearchBuilder.version = '2.0.1';
3630
3649
  SearchBuilder.classes = {
3631
3650
  button: 'dtsb-button',
3632
3651
  clearAll: 'dtsb-clearAll',
@@ -1,4 +1,4 @@
1
- /*! SearchBuilder 2.0.0 for DataTables
1
+ /*! SearchBuilder 2.0.1 for DataTables
2
2
  * Copyright (c) SpryMedia Ltd - datatables.net/license
3
3
  */
4
- (e=>{var i;"function"==typeof define&&define.amd?define(["datatables.net"],function(t){return e(window,document,t)}):"object"==typeof exports?(i=function(t){t.DataTable||require("datatables.net")(t)},"undefined"==typeof window?module.exports=function(t){return t=t||window,i(t),e(t,t.document,t.DataTable)}:(i(window),module.exports=e(window,window.document,window.DataTable))):e(window,document,window.DataTable)})(function(e,t,m){var g=m.Dom,i=m.Api,d=m.util;function r(){var t=m.use("moment");return t||e.moment}function a(){var t=m.use("luxon");return t||e.luxon}class f{constructor(t,e,i,s=0,n=1,r=void 0,a=!1){this.classes=d.object.assignDeep({},f.classes),this.c=d.object.assignDeep({},f.defaults,m.ext.searchBuilder,e);e=this.c.i18n;if(this.s={condition:void 0,conditions:{},data:void 0,dataIdx:-1,dataPoints:[],dateFormat:!1,depth:n,dt:t,filled:!1,index:s,liveSearch:a,origData:void 0,preventRedraw:!1,serverData:r,topGroup:i,type:"",value:[]},this.dom={buttons:g.c("div").classAdd(this.classes.buttonContainer),condition:g.c("select").prop("disabled",!0).classAdd(this.classes.condition).classAdd(this.classes.dropDown).classAdd(this.classes.italic).attr("autocomplete","hacking"),conditionTitle:g.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.condition",e.condition)),container:g.c("div").classAdd(this.classes.container),data:g.c("select").classAdd(this.classes.data).classAdd(this.classes.dropDown).classAdd(this.classes.italic),dataTitle:g.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.data",e.data)),defaultValue:g.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.select).classAdd(this.classes.italic),delete:g.c("button").html(this.s.dt.i18n("searchBuilder.delete",e.delete)).classAdd(this.classes.delete).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.deleteTitle",e.deleteTitle)).attr("type","button"),inputCont:g.c("div").classAdd(this.classes.inputCont),left:g.c("button").html(this.s.dt.i18n("searchBuilder.left",e.left)).classAdd(this.classes.left).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.leftTitle",e.leftTitle)).attr("type","button"),right:g.c("button").html(this.s.dt.i18n("searchBuilder.right",e.right)).classAdd(this.classes.right).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.rightTitle",e.rightTitle)).attr("type","button"),value:[g.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select)],valueTitle:g.c("option").attr("value","--valueTitle--").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.value",e.value))},this.c.greyscale){this.dom.data.classAdd(this.classes.greyscale),this.dom.condition.classAdd(this.classes.greyscale),this.dom.defaultValue.classAdd(this.classes.greyscale);for(var o of this.dom.value)o.classAdd(this.classes.greyscale)}return g.w.on("resize.dtsb",m.util.throttle(()=>{this.s.topGroup.trigger("dtsb-redrawLogic")})),this._buildCriteria(),this}doSearch(){this.c.liveSearch&&this.s.dt.draw()}static parseNumFmt(t){return+t.replace(/(?!^-)[^0-9.]/g,"")}updateArrows(t=!1){this.dom.container.children().detach(),this.dom.container.append(this.dom.data).append(this.dom.condition).append(this.dom.inputCont),this.setListeners(),void 0!==this.dom.value[0]&&this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted");1<this.s.depth&&this.dom.buttons.append(this.dom.left),(!1===this.c.depthLimit||this.s.depth<this.c.depthLimit)&&t?this.dom.buttons.append(this.dom.right):this.dom.right.remove(),this.dom.buttons.append(this.dom.delete),this.dom.container.append(this.dom.buttons)}destroy(){this.dom.data.off(".dtsb"),this.dom.condition.off(".dtsb"),this.dom.delete.off(".dtsb");for(var t of this.dom.value)t.off(".dtsb");this.dom.container.remove()}search(i,e){var s=this.s.dt.settings()[0],n=this.s.conditions[this.s.condition];if(void 0!==this.s.condition&&void 0!==n){let t=i[this.s.dataIdx];if(this.s.type&&this.s.type.includes("num")&&(""!==s.language.decimal||""!==s.language.thousands)){let e=[i[this.s.dataIdx]];if(""!==s.language.decimal&&(e=i[this.s.dataIdx].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<e.length;t++)e[t]=e[t].replace(s.language.thousands,",");t=e.join(".")}if("filter"!==this.c.orthogonal.search&&(t=s.fastData(e,this.s.dataIdx,"string"==typeof this.c.orthogonal?this.c.orthogonal:this.c.orthogonal.search)),"array"===this.s.type){(t=Array.isArray(t)?t:[t]).sort();for(var r of t)r&&"string"==typeof r&&(r=r.replace(/[\r\n\u2028]/g," "))}else null!==t&&"string"==typeof t&&(t=t.replace(/[\r\n\u2028]/g," "));return null===(t=this.s.type.includes("html")&&"string"==typeof t?t.replace(/(<([^>]+)>)/gi,""):t)&&(t=""),n.search(t,this.s.value,this)}}isReturnSearch(){var t=this.s.dt.settings()[0].init.search;return!!d.is.plainObject(t)&&t.return}getDetails(t=!1){let i;var s=this.s.dt.settings()[0];if(null===this.s.type||!["num","num-fmt","html-num","html-num-fmt"].includes(this.s.type)||""===s.language.decimal&&""===s.language.thousands){if(null!==this.s.type&&t){var e=r(),n=a();if(this.s.type.includes("date")||this.s.type.includes("time"),this.s.type.includes("moment")||this.s.type.includes("datetime")&&r)for(i=0;i<this.s.value.length;i++)this.s.value[i]&&0<this.s.value[i].length&&e(this.s.value[i],this.s.dateFormat,!0).isValid()&&(this.s.value[i]=e(this.s.value[i],this.s.dateFormat).format("YYYY-MM-DD HH:mm:ss"));else if(this.s.type.includes("luxon")||this.s.type.includes("datetime")&&a)for(i=0;i<this.s.value.length;i++)this.s.value[i]&&0<this.s.value[i].length&&null===n.DateTime.fromFormat(this.s.value[i],this.s.dateFormat).invalid&&(this.s.value[i]=n.DateTime.fromFormat(this.s.value[i],this.s.dateFormat).toFormat("yyyy-MM-dd HH:mm:ss"))}}else for(i=0;i<this.s.value.length;i++){let e=[this.s.value[i].toString()];if(""!==s.language.decimal&&(e=this.s.value[i].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<e.length;t++)e[t]=e[t].replace(s.language.thousands,",");this.s.value[i]=e.join(".")}if(this.s.type&&this.s.type.includes("num")&&this.s.dt.page.info().serverSide)for(i=0;i<this.s.value.length;i++)this.s.value[i]=this.s.value[i].replace(/[^0-9.\-]/g,"");return{condition:this.s.condition,data:this.s.data,origData:this.s.origData,type:this.s.type,value:this.s.value.map(t=>null!=t?t.toString():t)}}getNode(){return this.dom.container}parseNumber(t){var e=this.s.dt.i18n("decimal",".");return+(t=e&&"."!==e?t.replace(/\./g,"").replace(e,"."):t).replace(/(?!^-)[^0-9.]/g,"")}populate(){this._populateData(),-1!==this.s.dataIdx&&(this._populateCondition(),void 0!==this.s.condition)&&this._populateValue()}rebuild(s){let n=!1,r,e;if(this._populateData(),void 0!==s.data){let e=this.classes.italic,i=this.dom.data;this.dom.data.children("option").each(function(t){t=g.s(t);!n&&(t.text()===s.data||s.origData&&t.prop("origData")===s.origData)?(t.prop("selected",!0),i.classRemove(e),n=!0,r=parseInt(t.val(),10)):t.propRemove("selected")})}if(n){this.s.data=s.data,this.s.origData=s.origData,this.s.dataIdx=r,this.c.orthogonal=this._getOptions().orthogonal,this.dom.dataTitle.remove(),this._populateCondition(),this.dom.conditionTitle.remove();let t;var i=this.dom.condition.children("option");for(e=0;e<i.count();e++){var a=i.eq(e);void 0!==s.condition&&a.val()===s.condition&&"string"==typeof s.condition?(a.prop("selected",!0),t=a.val()):a.propRemove("selected")}if(this.s.condition=t,void 0!==this.s.condition){for(this.dom.conditionTitle.propRemove("selected"),this.dom.conditionTitle.remove(),this.dom.condition.classRemove(this.classes.italic),e=0;e<i.count();e++){var o=i.eq(e);o.val()!==this.s.condition&&o.propRemove("selected")}this._populateValue(s)}else this.dom.conditionTitle.prependTo(this.dom.condition).prop("selected",!0)}}setListeners(){this.dom.data.off("change").on("change.dtsb",()=>{this.dom.dataTitle.propRemove("selected");var e=this.dom.data.children("option."+this.classes.option);for(let t=0;t<e.count();t++){var i=e.eq(t);i.val()===this.dom.data.val()?(this.dom.data.classRemove(this.classes.italic),i.prop("selected",!0),this.s.dataIdx=+i.val(),this.s.data=i.text(),this.s.origData=i.prop("origData").toString(),this.c.orthogonal=this._getOptions().orthogonal,this._clearCondition(),this._clearValue(),this._populateCondition(),this.s.filled&&(this.s.filled=!1,this.doSearch(),this.setListeners()),this.s.dt.state.save()):i.propRemove("selected")}}),this.dom.condition.off("change").on("change.dtsb",()=>{this.dom.conditionTitle.propRemove("selected");var e=this.dom.condition.children("option."+this.classes.option);for(let t=0;t<e.count();t++){var i=e.eq(t);if(i.val()===this.dom.condition.val()){this.dom.condition.classRemove(this.classes.italic),i.prop("selected",!0);var s,n,r=i.val();for(s of Object.keys(this.s.conditions))if(s===r){this.s.condition=r;break}this._clearValue(),this._populateValue();for(n of this.dom.value)this.s.filled&&void 0!==n&&this.dom.inputCont.contains(n[0])&&(this.s.filled=!1,this.doSearch(),this.setListeners());(0===this.dom.value.length||1===this.dom.value.length&&void 0===this.dom.value[0])&&this.doSearch()}else i.propRemove("selected")}})}setupButtons(){550<e.innerWidth?(this.dom.container.classRemove(this.classes.vertical),this.dom.buttons.css("left",null),this.dom.buttons.css("top",null)):(this.dom.container.classAdd(this.classes.vertical),this.dom.buttons.css("left",this.dom.data.width("inner")+"px"),this.dom.buttons.css("top",this.dom.data.position().top+"px"))}_buildCriteria(){this.dom.data.append(this.dom.dataTitle),this.dom.condition.append(this.dom.conditionTitle),this.dom.container.append(this.dom.data).append(this.dom.condition),this.dom.inputCont.empty();for(var t of this.dom.value)t.append(this.dom.valueTitle),this.dom.inputCont.append(t);this.dom.buttons.append(this.dom.delete).append(this.dom.right),this.dom.container.append(this.dom.inputCont).append(this.dom.buttons),this.setListeners()}_clearCondition(){this.dom.condition.empty(),this.dom.conditionTitle.prop("selected",!0).attr("disabled","true"),this.dom.condition.prepend(this.dom.conditionTitle).prop("selectedIndex",0),this.s.conditions={},this.s.condition=void 0}_clearValue(){let t;if(void 0!==this.s.condition){if(0<this.dom.value.length&&void 0!==this.dom.value[0])for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);if(this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,f.updateListener)),0<this.dom.value.length&&void 0!==this.dom.value[0]){this.dom.inputCont.empty().append(this.dom.value[0]).insertAfter(this.dom.condition.get(0)),this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted")}}else{for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);this.dom.valueTitle.prop("selected",!0),this.dom.defaultValue.append(this.dom.valueTitle).insertAfter(this.dom.condition.get(0))}this.s.value=[],this.dom.value=[g.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select).append(this.dom.valueTitle.clone())]}_getOptions(){var t=this.s.dt;return d.object.assignDeep({},f.defaults,t.settings()[0].columns[this.s.dataIdx].searchBuilder)}_populateCondition(){var t,e=[],i=Object.keys(this.s.conditions).length,s=this.s.dt,n=s.settings()[0].columns,r=+this.dom.data.val();let a,o;if(0===i){this.s.type=s.column(r).type(),void 0!==n&&(null!=(c=n[r]).searchBuilderType?this.s.type=c.searchBuilderType:null==this.s.type&&(this.s.type=c.type)),null==this.s.type&&(this.s.type=s.column(r).type()),this.dom.condition.attrRemove("disabled").empty().append(this.dom.conditionTitle).classAdd(this.classes.italic),this.dom.conditionTitle.prop("selected",!0);var d,l,c=s.settings()[0].language.decimal;""!==c&&this.s.type&&this.s.type.indexOf(c)===this.s.type.length-c.length&&(this.s.type.includes("num-fmt")||this.s.type.includes("num"))&&(this.s.type=this.s.type.replace(c,""));let t;void 0!==this.c.conditions[this.s.type]?t=this.c.conditions[this.s.type]:this.s.type&&"datetime"===this.s.type?(c=m.use("moment"),d=m.use("luxon"),c&&(t=this.c.conditions.moment,this.s.dateFormat=c().creationData().locale._longDateFormat.L),d&&(t=this.c.conditions.luxon,this.s.dateFormat=d.DateTime.DATE_SHORT)):this.s.type&&this.s.type.includes("datetime-")?(t=m.use("moment")?this.c.conditions.moment:this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/datetime-/g,"")):this.s.type&&this.s.type.includes("moment")?(t=this.c.conditions.moment,this.s.dateFormat=this.s.type.replace(/moment-/g,"")):this.s.type&&this.s.type.includes("luxon")?(t=this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/luxon-/g,"")):t=this.c.conditions.string;for(a of Object.keys(t))null!==t[a]&&(s.page.info().serverSide&&t[a].init===f.initSelect&&(l=n[r],this.s.serverData&&this.s.serverData[l.data]?(t[a].init=f.initSelectSSP,t[a].inputValue=f.inputValueSelect,t[a].isInputValid=f.isInputValidSelect):(t[a].init=f.initInput,t[a].inputValue=f.inputValueInput,t[a].isInputValid=f.isInputValidInput)),this.s.conditions[a]=t[a],"function"==typeof(o=t[a].conditionName)&&(o=o(s,this.c.i18n)),e.push(g.c("option").text(o).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic)))}else{if(!(0<i))return void this.dom.condition.attr("disabled","true").classAdd(this.classes.italic);this.dom.condition.empty().attrRemove("disabled").classAdd(this.classes.italic);for(a of Object.keys(this.s.conditions)){let t=this.s.conditions[a].conditionName;"function"==typeof t&&(t=t(s,this.c.i18n));var u=g.c("option").text(t).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic);void 0!==this.s.condition&&this.s.condition===t&&(u.prop("selected",!0),this.dom.condition.classRemove(this.classes.italic)),e.push(u)}}for(t of e)this.dom.condition.append(t);if(n[r].searchBuilder&&n[r].searchBuilder.defaultCondition){var h=n[r].searchBuilder.defaultCondition;if("number"==typeof h)this.dom.condition.prop("selectedIndex",h),this.dom.condition.trigger("change");else if("string"==typeof h)for(let t=0;t<e.length;t++)for(var p of Object.keys(this.s.conditions))if(("string"==typeof(o=this.s.conditions[p].conditionName)?o:o(s,this.c.i18n))===e[t].text()&&p===h){this.dom.condition.prop("selectedIndex",this.dom.condition.children().get().indexOf(e[t].get(0))).classRemove(this.classes.italic),this.dom.condition.trigger("change"),t=e.length;break}}else this.dom.condition.prop("selectedIndex",0)}_populateData(){var e,i,s=this.s.dt.settings()[0].columns,n=this.s.dt.columns(this.c.columns).indexes().toArray();this.dom.data.empty().append(this.dom.dataTitle);for(let t=0;t<s.length;t++)"*"!==this.c.columns&&!n.includes(t)||(e=s[t],i={index:t,origData:e.data,text:(e.searchBuilderTitle||e.title).replace(/(<([^>]+)>)/gi,"")},this.dom.data.append(g.c("option").text(i.text).val(i.index).classAdd(this.classes.option).classAdd(this.classes.notItalic).prop("origData",e.data).prop("selected",this.s.dataIdx===i.index)),this.s.dataIdx!==i.index)||this.dom.dataTitle.propRemove("selected")}_populateValue(e){var t=this.s.filled;let i;this.s.filled=!1,setTimeout(()=>{this.dom.defaultValue.remove()},50);for(let t of this.dom.value)setTimeout(function(){void 0!==t&&t.remove()},50);var s=this.dom.inputCont.children();if(1<s.count())for(i=0;i<s.count();i++)s.eq(i).remove();for(void 0!==e&&this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===e.data&&(this.s.dataIdx=t)}),this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,f.updateListener,void 0!==e?e.value:void 0)),void 0!==e&&void 0!==e.value&&(this.s.value=e.value),this.dom.inputCont.empty(),void 0!==this.dom.value[0]&&this.dom.value[0].appendTo(this.dom.inputCont).trigger("dtsb-inserted"),i=1;i<this.dom.value.length;i++)this.dom.value[i].insertAfter(this.dom.value[i-1].get(0)).trigger("dtsb-inserted");this.s.filled=this.s.conditions[this.s.condition].isInputValid(this.dom.value,this),this.setListeners(),this.s.preventRedraw||t===this.s.filled||(this.s.dt.page.info().serverSide||this.doSearch(),this.setListeners())}_throttle(i,s=200){let n=null,r=null,a=this;return null===s&&(s=200),function(...t){var e=+new Date;null!==n&&e<n+s?clearTimeout(r):n=e,r=setTimeout(function(){n=null,i.apply(a,t)},s)}}}f.classes={button:"dtsb-button",buttonContainer:"dtsb-buttonContainer",condition:"dtsb-condition",container:"dtsb-criteria",data:"dtsb-data",delete:"dtsb-delete",dropDown:"dtsb-dropDown",greyscale:"dtsb-greyscale",input:"dtsb-input",inputCont:"dtsb-inputCont",italic:"dtsb-italic",joiner:"dtsb-joiner",left:"dtsb-left",notItalic:"dtsb-notItalic",option:"dtsb-option",right:"dtsb-right",select:"dtsb-select",value:"dtsb-value",vertical:"dtsb-vertical"},f.initSelect=function(i,t,s=null,e=!1){var n,r,a=parseInt(i.dom.data.val()),o=i.s.dt.rows().indexes().toArray(),d=i.s.dt.settings()[0].fastData;i.dom.valueTitle.prop("selected",!0);let l=g.c("select").classAdd(f.classes.value).classAdd(f.classes.dropDown).classAdd(f.classes.italic).classAdd(f.classes.select).append(i.dom.valueTitle).on("change.dtsb",function(){l.classRemove(f.classes.italic),t(i,this)}),c=(i.c.greyscale&&l.classAdd(f.classes.greyscale),[]),u=[];for(n of o){var h=d(n,a,"string"==typeof i.c.orthogonal?i.c.orthogonal:i.c.orthogonal.search),p={filter:"string"==typeof h?h.replace(/[\r\n\u2028]/g," "):h,text:d(n,a,"string"==typeof i.c.orthogonal?i.c.orthogonal:i.c.orthogonal.display)},m=("array"===i.s.type&&(p.filter=Array.isArray(p.filter)?p.filter:[p.filter],p.text=Array.isArray(p.text)?p.text:[p.text]),(t,e)=>{i.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=g.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(i.classes.option).classAdd(i.classes.notItalic).html("string"==typeof e?e.replace(/(<([^>]+)>)/gi,""):e),e=t.val();-1===c.indexOf(e)&&(c.push(e),u.push(t),null!==s&&Array.isArray(s[0])&&(s[0]=s[0].sort().join(",")),null!==s)&&t.val()===s[0]&&(t.prop("selected",!0),l.classRemove(f.classes.italic),i.dom.valueTitle.propRemove("selected"))});if(e)for(let t=0;t<p.filter.length;t++)m(p.filter[t],p.text[t]);else m(p.filter,Array.isArray(p.text)?p.text.join(", "):p.text)}u.sort((t,e)=>"array"===i.s.type||"string"===i.s.type||"html"===i.s.type?t.val()<e.val()?-1:t.val()>e.val()?1:0:"num"===i.s.type||"html-num"===i.s.type?+t.val().replace(/(<([^>]+)>)/gi,"")<+e.val().replace(/(<([^>]+)>)/gi,"")?-1:+t.val().replace(/(<([^>]+)>)/gi,"")>+e.val().replace(/(<([^>]+)>)/gi,"")?1:0:"num-fmt"===i.s.type||"html-num-fmt"===i.s.type?+t.val().replace(/[^0-9.]/g,"")<+e.val().replace(/[^0-9.]/g,"")?-1:+t.val().replace(/[^0-9.]/g,"")>+e.val().replace(/[^0-9.]/g,"")?1:0:void 0);for(r of u)l.append(r);return l},f.initSelectSSP=function(i,t,s=null){i.dom.valueTitle.prop("selected",!0);let n=g.c("select").classAdd(f.classes.value).classAdd(f.classes.dropDown).classAdd(f.classes.italic).classAdd(f.classes.select).append(i.dom.valueTitle).on("change.dtsb",function(){n.classRemove(f.classes.italic),t(i,this)}),r=(i.c.greyscale&&n.classAdd(f.classes.greyscale),[]);for(var e of i.s.serverData[i.s.origData])((t,e)=>{i.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=g.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(i.classes.option).classAdd(i.classes.notItalic).html("string"==typeof e?e.replace(/(<([^>]+)>)/gi,""):e);r.push(t),null!==s&&t.val()===s[0]&&(t.prop("selected",!0),n.classRemove(f.classes.italic),i.dom.valueTitle.propRemove("selected"))})(e.value,e.label);for(var a of r)n.append(a);return n},f.initSelectArray=function(t,e,i=null){return f.initSelect(t,e,i,!0)},f.initInput=function(e,i,t=null){var s=e.s.dt.settings()[0].searchDelay,s=g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("input.dtsb keypress.dtsb",e._throttle(function(t){t=t.keyCode||t.which;return i(e,this,t)},null===s?100:s));return e.c.greyscale&&s.classAdd(f.classes.greyscale),null!==t&&s.val(t[0]),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),s},f.init2Input=function(e,i,t=null){var s=e.s.dt.settings()[0].searchDelay,s=[g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("input.dtsb keypress.dtsb",e._throttle(function(t){t=t.keyCode||t.which;return i(e,this,t)},null===s?100:s)),g.c("span").classAdd(e.classes.joiner).html(e.s.dt.i18n("searchBuilder.valueJoiner",e.c.i18n.valueJoiner)),g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("input.dtsb keypress.dtsb",e._throttle(function(t){t=t.keyCode||t.which;return i(e,this,t)},null===s?100:s))];return e.c.greyscale&&(s[0].classAdd(f.classes.greyscale),s[2].classAdd(f.classes.greyscale)),null!==t&&(s[0].val(t[0]),s[2].val(t[1])),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),s},f.initDate=function(i,s,t=null){let n=i.s.dt.settings()[0].searchDelay;var e=i.s.dt.i18n("datetime",{},!1),r=g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("change.dtsb",i._throttle(function(){return s(i,this)},null===n?100:n)).on("input.dtsb keypress.dtsb",e=>{i._throttle(function(){var t=e.keyCode||e.which;return s(i,this,t)},null===n?100:n)}),a=m.use("datetime");return a&&new a(r.get(0),{format:i.s.dateFormat||void 0,i18n:e}),i.c.greyscale&&r.classAdd(f.classes.greyscale),null!==t&&r.val(t[0]),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),r},f.initNoValue=function(t){return t.s.dt.one("draw.dtsb",()=>{t.s.topGroup.trigger("dtsb-redrawLogic")}),[]},f.init2Date=function(i,s,t=null){let n=i.s.dt.settings()[0].searchDelay;var e=i.isReturnSearch(),r=i.s.dt.i18n("datetime",{},!1),e=[g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("change.dtsb",null!==n?m.util.throttle(function(){return s(i,this)},n):()=>{s(i,this)}).on("input.dtsb keypress.dtsb",e=>{m.util.throttle(function(){var t=e.keyCode||e.which;return s(i,this,t)},null===n?0:n)}),g.c("span").classAdd(i.classes.joiner).html(i.s.dt.i18n("searchBuilder.valueJoiner",i.c.i18n.valueJoiner)),g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("change.dtsb",null!==n?m.util.throttle(function(){return s(i,this)},n):()=>{s(i,this)}).on("input.dtsb keypress.dtsb",i.c.enterSearch||e||null===n?t=>{t=t.keyCode||t.which;s(i,this,t)}:m.util.throttle(function(){return s(i,this)},n))],a=m.use("datetime");return a&&(new a(e[0],{format:i.s.dateFormat||void 0,i18n:r}),new a(e[2],{format:i.s.dateFormat||void 0,i18n:r})),i.c.greyscale&&(e[0].classAdd(f.classes.greyscale),e[2].classAdd(f.classes.greyscale)),null!==t&&0<t.length&&(e[0].val(t[0]),e[2].val(t[1])),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),e},f.isInputValidSelect=function(t){let e=!0;for(var i of t){var s=i.children("option").get(),n=s.filter(t=>t.selected),i=i.children("option."+f.classes.notItalic).get();n.length===s.length-i.length&&1===n.length&&n[0]===s[0]&&(e=!1)}return e},f.isInputValidInput=function(t){let e=!0;for(var i of t)i.is("input")&&0===i.val().length&&(e=!1);return e},f.inputValueSelect=function(t){var e,i,s=[];for(e of t)e.is("select")&&(i=[].concat(e.children("option").filter(t=>t.selected).data("sbv")).map(t=>d.escapeHtml(t)),s.push(...i));return s},f.inputValueInput=function(t){var e,i=[];for(e of t)e.is("input")&&i.push(d.escapeHtml(e.val()));return i.map(t=>m.util.diacritics(t))},f.updateListener=function(i,s,n){var t=i.s.conditions[i.s.condition];let r;if(i.s.filled=t.isInputValid(i.dom.value,i),i.s.value=t.inputValue(i.dom.value,i),i.s.filled){for(Array.isArray(i.s.value)||(i.s.value=[i.s.value]),r=0;r<i.s.value.length;r++)Array.isArray(i.s.value[r])&&i.s.value[r].sort();let t=null,e=null;for(r=0;r<i.dom.value.length;r++)s===i.dom.value[r][0]&&(t=r,void 0!==s.selectionStart)&&(e=s.selectionStart);(!i.c.enterSearch&&!i.isReturnSearch()||13===n||void 0===n||s.nodeName&&"select"===s.nodeName.toLowerCase())&&i.doSearch(),null!==t&&(i.dom.value[t].classRemove(i.classes.italic),i.dom.value[t].focus(),null!==e)&&i.dom.value[t][0].setSelectionRange(e,e)}else(i.c.enterSearch||i.isReturnSearch())&&13!==n||i.doSearch()},f.dateConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.equals",e.conditions.date.equals)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))===e[0]}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.not",e.conditions.date.not)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))!==e[0]}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.before",e.conditions.date.before)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))<e[0]}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.after",e.conditions.date.after)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))>e[0]}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.between",e.conditions.date.between)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t=t.replace(/(\/|-|,)/g,"-"),e[0]<e[1]?e[0]<=t&&t<=e[1]:e[1]<=t&&t<=e[0]}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notBetween",e.conditions.date.notBetween)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t=t.replace(/(\/|-|,)/g,"-"),e[0]<e[1]?!(e[0]<=t&&t<=e[1]):!(e[1]<=t&&t<=e[0])}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.empty",e.conditions.date.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notEmpty",e.conditions.date.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.momentDateConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.equals",e.conditions.date.equals)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()===r()(e[0],i.s.dateFormat).valueOf()}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.not",e.conditions.date.not)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()!==r()(e[0],i.s.dateFormat).valueOf()}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.before",e.conditions.date.before)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()<r()(e[0],i.s.dateFormat).valueOf()}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.after",e.conditions.date.after)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()>r()(e[0],i.s.dateFormat).valueOf()}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.between",e.conditions.date.between)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=r()(t,i.s.dateFormat).valueOf(),s=r()(e[0],i.s.dateFormat).valueOf(),e=r()(e[1],i.s.dateFormat).valueOf();return s<e?s<=t&&t<=e:e<=t&&t<=s}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notBetween",e.conditions.date.notBetween)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=r()(t,i.s.dateFormat).valueOf(),s=r()(e[0],i.s.dateFormat).valueOf(),e=r()(e[1],i.s.dateFormat).valueOf();return s<e?!(+s<=+t&&+t<=+e):!(+e<=+t&&+t<=+s)}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.empty",e.conditions.date.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notEmpty",e.conditions.date.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.luxonDateConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.equals",e.conditions.date.equals)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts===a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.not",e.conditions.date.not)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts!==a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.before",e.conditions.date.before)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts<a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.after",e.conditions.date.after)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts>a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.between",e.conditions.date.between)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=a().DateTime.fromFormat(t,i.s.dateFormat).ts,s=a().DateTime.fromFormat(e[0],i.s.dateFormat).ts,e=a().DateTime.fromFormat(e[1],i.s.dateFormat).ts;return s<e?s<=t&&t<=e:e<=t&&t<=s}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notBetween",e.conditions.date.notBetween)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=a().DateTime.fromFormat(t,i.s.dateFormat).ts,s=a().DateTime.fromFormat(e[0],i.s.dateFormat).ts,e=a().DateTime.fromFormat(e[1],i.s.dateFormat).ts;return s<e?!(+s<=+t&&+t<=+e):!(+e<=+t&&+t<=+s)}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.empty",e.conditions.date.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notEmpty",e.conditions.date.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.numConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.equals",e.conditions.number.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return+t==+e[0]}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.not",e.conditions.number.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return+t!=+e[0]}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lt",e.conditions.number.lt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t<+e[0]}},"<=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lte",e.conditions.number.lte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t<=+e[0]}},">=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gte",e.conditions.number.gte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t>=+e[0]}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gt",e.conditions.number.gt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t>+e[0]}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.between",e.conditions.number.between)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+e[0]<+e[1]?+e[0]<=+t&&+t<=+e[1]:+e[1]<=+t&&+t<=+e[0]}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notBetween",e.conditions.number.notBetween)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+e[0]<+e[1]?!(+e[0]<=+t&&+t<=+e[1]):!(+e[1]<=+t&&+t<=+e[0])}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.empty",e.conditions.number.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notEmpty",e.conditions.number.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.numFmtConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.equals",e.conditions.number.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e,i){return i.parseNumber(t)===i.parseNumber(e[0])}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.not",e.conditions.number.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e,i){return i.parseNumber(t)!==i.parseNumber(e[0])}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lt",e.conditions.number.lt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)<i.parseNumber(e[0])}},"<=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lte",e.conditions.number.lte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)<=i.parseNumber(e[0])}},">=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gte",e.conditions.number.gte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)>=i.parseNumber(e[0])}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gt",e.conditions.number.gt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)>i.parseNumber(e[0])}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.between",e.conditions.number.between)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=i.parseNumber(t),s=i.parseNumber(e[0]),i=i.parseNumber(e[1]);return+s<+i?+s<=+t&&+t<=+i:+i<=+t&&+t<=+s}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notBetween",e.conditions.number.notBetween)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=i.parseNumber(t),s=i.parseNumber(e[0]),i=i.parseNumber(e[1]);return+s<+i?!(+s<=+t&&+t<=+i):!(+i<=+t&&+t<=+s)}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.empty",e.conditions.number.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notEmpty",e.conditions.number.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.stringConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.equals",e.conditions.string.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return t===e[0]}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.not",e.conditions.string.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidInput,search(t,e){return t!==e[0]}},starts:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.startsWith",e.conditions.string.startsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return 0===t.toLowerCase().indexOf(e[0].toLowerCase())}},"!starts":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notStartsWith",e.conditions.string.notStartsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return 0!==t.toLowerCase().indexOf(e[0].toLowerCase())}},contains:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.contains",e.conditions.string.contains)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t.toLowerCase().includes(e[0].toLowerCase())}},"!contains":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notContains",e.conditions.string.notContains)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return!t.toLowerCase().includes(e[0].toLowerCase())}},ends:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.endsWith",e.conditions.string.endsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t.toLowerCase().endsWith(e[0].toLowerCase())}},"!ends":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notEndsWith",e.conditions.string.notEndsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return!t.toLowerCase().endsWith(e[0].toLowerCase())}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.empty",e.conditions.string.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notEmpty",e.conditions.string.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.arrayConditions={contains:{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.contains",e.conditions.array.contains)},init:f.initSelectArray,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return t.includes(e[0])}},without:{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.without",e.conditions.array.without)},init:f.initSelectArray,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return-1===t.indexOf(e[0])}},"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.equals",e.conditions.array.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(e,i){if(e.length!==i.length)return!1;i.sort();for(let t=0;t<e.length;t++)if(e[t]!==i[t])return!1;return!0}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.not",e.conditions.array.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(e,i){if(e.length!==i.length)return!0;i.sort();for(let t=0;t<e.length;t++)if(e[t]!==i[t])return!0;return!1}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.empty",e.conditions.array.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.notEmpty",e.conditions.array.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null!=t&&0!==t.length}}},f.defaults={columns:"*",conditions:{array:f.arrayConditions,date:f.dateConditions,html:f.stringConditions,"html-num":f.numConditions,"html-num-fmt":f.numFmtConditions,luxon:f.luxonDateConditions,moment:f.momentDateConditions,num:f.numConditions,"num-fmt":f.numFmtConditions,string:f.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},liveSearch:!0,logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1};class o{constructor(t,e,i,s=0,n=!1,r=1,a=void 0){return this.classes=m.util.object.assignDeep({},o.classes),this.c=m.util.object.assignDeep({},o.defaults,e),this.s={criteria:[],depth:r,dt:t,index:s,isChild:n,logic:void 0,opts:e,preventRedraw:!1,serverData:a,toDrop:void 0,topGroup:i},this.dom={add:g.c("button").classAdd(this.classes.add).classAdd(this.classes.button).attr("type","button"),clear:g.c("button").html("&times").classAdd(this.classes.button).classAdd(this.classes.clearGroup).attr("type","button"),container:g.c("div").classAdd(this.classes.group),logic:g.c("button").append(g.c("div")).classAdd(this.classes.logic).classAdd(this.classes.button).attr("type","button"),logicContainer:g.c("div").classAdd(this.classes.logicContainer),search:g.c("button").classAdd(this.classes.search).classAdd(this.classes.button).attr("type","button").css("display","none")},void 0===this.s.topGroup&&(this.s.topGroup=this.dom.container),this._setup(),this}destroy(){this.dom.add.off(".dtsb"),this.dom.logic.off(".dtsb"),this.dom.search.off(".dtsb"),this.dom.container.trigger("dtsb-destroy"),this.dom.container.remove(),this.s.criteria=[]}getDetails(t=!1){if(0===this.s.criteria.length)return{};var e,i={criteria:[],logic:this.s.logic};for(e of this.s.criteria)i.criteria.push(e.criteria.getDetails(t));return i}getNode(){return this.dom.container}rebuild(t){let e;if(!(null==t.criteria||Array.isArray(t.criteria)&&0===t.criteria.length)){if(this.s.logic=t.logic,this.dom.logic.children().eq(0).html("OR"===this.s.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),Array.isArray(t.criteria))for(e of t.criteria)void 0!==e.logic?this._addPrevGroup(e):void 0===e.logic&&this._addPrevCriteria(e);for(e of this.s.criteria)e.criteria instanceof f&&(e.criteria.updateArrows(1<this.s.criteria.length),this._setCriteriaListeners(e.criteria))}}redrawContents(){if(!this.s.preventRedraw){this.dom.container.children().detach(),this.dom.container.append(this.dom.logicContainer).append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search),this.s.criteria.sort(function(t,e){return t.criteria.s.index<e.criteria.s.index?-1:t.criteria.s.index>e.criteria.s.index?1:0}),this.setListeners();for(let t=0;t<this.s.criteria.length;t++){var e=this.s.criteria[t].criteria;e instanceof f?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),this._setCriteriaListeners(e),this.s.criteria[t].criteria.s.preventRedraw=this.s.preventRedraw,this.s.criteria[t].criteria.rebuild(this.s.criteria[t].criteria.getDetails()),this.s.criteria[t].criteria.s.preventRedraw=!1):e instanceof o&&0<e.s.criteria.length?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),e.s.preventRedraw=this.s.preventRedraw,e.redrawContents(),e.s.preventRedraw=!1,this._setGroupListeners(e)):(this.s.criteria.splice(t,1),t--)}this.setupLogic()}}redrawLogic(){for(var t of this.s.criteria)t.criteria instanceof o&&t.criteria.redrawLogic();this.setupLogic()}search(t,e){return"AND"===this.s.logic?this._andSearch(t,e):"OR"!==this.s.logic||this._orSearch(t,e)}setupLogic(){if(this.dom.logicContainer.remove(),this.dom.clear.remove(),this.s.criteria.length<1)this.s.isChild||this.dom.container.trigger("dtsb-destroy"),this.dom.search.css("display","none");else{this.dom.clear.height("0px"),this.dom.logicContainer.append(this.dom.clear),this.s.isChild||this.dom.search.css("display","inline-block"),this.dom.container.prepend(this.dom.logicContainer);for(var t of this.s.criteria)t.criteria instanceof f&&t.criteria.setupButtons();var e=this.dom.container.height()-1;this.dom.logicContainer.width(e),this.dom.clear.height(this.dom.logicContainer.width()),this._setLogicListener(),this._setClearListener()}}setListeners(){this.dom.add.off("click"),this.dom.add.on("click.dtsb",()=>(this.s.isChild||this.dom.container.prepend(this.dom.logicContainer),this.addCriteria(),this.dom.container.trigger("dtsb-add"),this.s.dt.state.save(),!1)),this.dom.search.off("click.dtsb").on("click.dtsb",()=>{this.s.dt.draw()});for(var t of this.s.criteria)t.criteria.setListeners();this._setClearListener(),this._setLogicListener()}addCriteria(t=null){var e,i=null===t?this.s.criteria.length:t.s.index,s=new f(this.s.dt,this.s.opts,this.s.topGroup,i,this.s.depth,this.s.serverData,this.c.liveSearch);null!==t&&(s.c=t.c,s.s=t.s,s.s.depth=this.s.depth,s.classes=t.classes),s.populate();let n=!1;for(let t=0;t<this.s.criteria.length;t++)0===t&&this.s.criteria[t].criteria.s.index>s.s.index?(s.getNode().insertBefore(this.s.criteria[t].criteria.dom.container),n=!0):t<this.s.criteria.length-1&&this.s.criteria[t].criteria.s.index<s.s.index&&this.s.criteria[t+1].criteria.s.index>s.s.index&&(s.getNode().insertAfter(this.s.criteria[t].criteria.dom.container),n=!0);n||s.getNode().insertBefore(this.dom.add),this.s.criteria.push({criteria:s,index:i}),this.s.criteria=this.s.criteria.sort((t,e)=>t.criteria.s.index-e.criteria.s.index);for(e of this.s.criteria)e.criteria instanceof f&&e.criteria.updateArrows(1<this.s.criteria.length);this._setCriteriaListeners(s),s.setListeners(),this.setupLogic()}checkFilled(){for(var t of this.s.criteria)if(t.criteria instanceof f&&t.criteria.s.filled||t.criteria instanceof o&&t.criteria.checkFilled())return!0;return!1}count(){let t=0;for(var e of this.s.criteria)e.criteria instanceof o?t+=e.criteria.count():t++;return t}_addPrevGroup(t){var e=this.s.criteria.length,i=new o(this.s.dt,this.c,this.s.topGroup,e,!0,this.s.depth+1,this.s.serverData);this.s.criteria.push({criteria:i,index:e,logic:i.s.logic}),i.rebuild(t),this.s.criteria[e].criteria=i,this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(i)}_addPrevCriteria(t){var e=this.s.criteria.length,i=new f(this.s.dt,this.s.opts,this.s.topGroup,e,this.s.depth,this.s.serverData);i.populate(),this.s.criteria.push({criteria:i,index:e}),i.s.preventRedraw=this.s.preventRedraw,i.rebuild(t),i.s.preventRedraw=!1,this.s.criteria[e].criteria=i,this.s.preventRedraw||this.s.topGroup.trigger("dtsb-redrawContents")}_andSearch(t,e){if(0!==this.s.criteria.length)for(var i of this.s.criteria)if((!(i.criteria instanceof f)||i.criteria.s.filled)&&!i.criteria.search(t,e))return!1;return!0}_orSearch(t,e){if(0===this.s.criteria.length)return!0;let i=!1;for(var s of this.s.criteria)if(s.criteria instanceof f&&s.criteria.s.filled){if(i=!0,s.criteria.search(t,e))return!0}else if(s.criteria instanceof o&&s.criteria.checkFilled()&&(i=!0,s.criteria.search(t,e)))return!0;return!i}_removeCriteria(e,i=!1){let s;if(this.s.criteria.length<=1&&this.s.isChild)this.destroy();else{let t;for(s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index===e.s.index&&(!i||this.s.criteria[s].criteria instanceof o)&&(t=s);for(void 0!==t&&this.s.criteria.splice(t,1),s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index=s,this.s.criteria[s].criteria.s.index=s}}_setCriteriaListeners(i){i.dom.delete.off("click").on("click.dtsb",()=>{this._removeCriteria(i),i.dom.container.remove();for(var t of this.s.criteria)t.criteria instanceof f&&t.criteria.updateArrows(1<this.s.criteria.length);return i.destroy(),this.s.dt.draw(),this.s.topGroup.trigger("dtsb-redrawContents"),!1}),i.dom.right.off("click").on("click.dtsb",()=>{var t=i.s.index,e=new o(this.s.dt,this.s.opts,this.s.topGroup,i.s.index,!0,this.s.depth+1,this.s.serverData);return e.addCriteria(i),this.s.criteria[t].criteria=e,this.s.criteria[t].logic="AND",this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(e),!1}),i.dom.left.off("click").on("click.dtsb",()=>{this.s.toDrop=new f(this.s.dt,this.s.opts,this.s.topGroup,i.s.index,void 0,this.s.serverData),this.s.toDrop.s=i.s,this.s.toDrop.c=i.c,this.s.toDrop.classes=i.classes,this.s.toDrop.populate();var t=this.s.toDrop.s.index;return this.dom.container.trigger("dtsb-dropCriteria"),i.s.index=t,this._removeCriteria(i),this.s.topGroup.trigger("dtsb-redrawContents"),this.s.dt.draw(),!1})}_setClearListener(){this.dom.clear.off("click").on("click.dtsb",()=>(this.s.isChild?(this.destroy(),this.s.topGroup.trigger("dtsb-redrawContents")):this.dom.container.trigger("dtsb-clearContents"),!1))}_setGroupListeners(e){e.dom.add.off("click").on("click.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),e.dom.container.off("dtsb-add").on("dtsb-add.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),e.dom.container.off("dtsb-destroy").on("dtsb-destroy.dtsb",()=>(this._removeCriteria(e,!0),e.dom.container.remove(),this.setupLogic(),!1)),e.dom.container.off("dtsb-dropCriteria").on("dtsb-dropCriteria.dtsb",()=>{var t=e.s.toDrop;return t.s.index=e.s.index,t.updateArrows(1<this.s.criteria.length),this.addCriteria(t),!1}),e.setListeners()}_setup(){this.setListeners(),this.dom.add.html(this.s.dt.i18n("searchBuilder.add",this.c.i18n.add)),this.dom.search.html(this.s.dt.i18n("searchBuilder.search",this.c.i18n.search)),this.dom.logic.children().eq(0).html("OR"===this.c.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),this.s.logic="OR"===this.c.logic?"OR":"AND",this.c.greyscale&&this.dom.logic.classAdd(this.classes.greyscale),this.dom.logicContainer.append(this.dom.logic).append(this.dom.clear),this.s.isChild&&this.dom.container.append(this.dom.logicContainer),this.dom.container.append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search)}_setLogicListener(){this.dom.logic.off("click").on("click.dtsb",()=>{this._toggleLogic(),this.s.dt.draw();for(var t of this.s.criteria)t.criteria.setListeners()})}_toggleLogic(){"OR"===this.s.logic?(this.s.logic="AND",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd))):"AND"===this.s.logic&&(this.s.logic="OR",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr)))}}if(o.classes={add:"dtsb-add",button:"dtsb-button",clearGroup:"dtsb-clearGroup",greyscale:"dtsb-greyscale",group:"dtsb-group",inputButton:"dtsb-iptbtn",logic:"dtsb-logic",logicContainer:"dtsb-logicContainer",search:"dtsb-search"},o.defaults={columns:"*",conditions:{date:f.dateConditions,html:f.stringConditions,"html-num":f.numConditions,"html-num-fmt":f.numFmtConditions,luxon:f.luxonDateConditions,moment:f.momentDateConditions,num:f.numConditions,"num-fmt":f.numFmtConditions,string:f.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},!m||!m.versionCheck||!m.versionCheck("3"))throw new Error("SearchBuilder requires DataTables 3 or newer");class s{constructor(t,e){t=new m.Api(t);if(this.classes=d.object.assignDeep({},s.classes),this.c=d.object.assignDeep({},s.defaults,e),this.dom={clearAll:g.c("button").attr("type","button").html(t.i18n("searchBuilder.clearAll",this.c.i18n.clearAll)).classAdd(this.classes.clearAll).classAdd(this.classes.button).attr("type","button"),container:g.c("div").classAdd(this.classes.container),title:g.c("div").classAdd(this.classes.title),titleRow:g.c("div").classAdd(this.classes.titleRow),topGroup:void 0},this.s={dt:t,opts:e,search:void 0,serverData:void 0,topGroup:void 0},void 0===t.settings()[0]._searchBuilder)return(t.settings()[0]._searchBuilder=this).s.dt.page.info().serverSide&&(this.s.dt.on("preXhr.dtsb",(t,e,i)=>{var s=this.s.dt.state.loaded();s&&s.searchBuilder&&(i.searchBuilder=this._collapseArray(s.searchBuilder))}),this.s.dt.on("xhr.dtsb",(t,e,i)=>{i&&i.searchBuilder&&i.searchBuilder.options&&(this.s.serverData=i.searchBuilder.options)})),this.s.dt.settings()[0]._bInitComplete?this._setUp():t.one("init.dt",()=>{this._setUp()}),this}getDetails(t=!1){return this.s.topGroup?this.s.topGroup.getDetails(t):{}}getNode(){return this.dom.container}rebuild(t,e=!0){return this.dom.clearAll.trigger("click",!1),null!=t&&(this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.rebuild(t),this.s.topGroup.s.preventRedraw=!1,this._checkClear(),this._updateTitle(this.s.topGroup.count()),this.s.topGroup.redrawContents(),e&&this.s.dt.draw(!1),this.s.topGroup.setListeners()),this}_applyPreDefDefaults(t){void 0!==t.criteria&&void 0===t.logic&&(t.logic="AND");for(let e of t.criteria)void 0!==e.criteria?e=this._applyPreDefDefaults(e):this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===e.data&&(e.dataIdx=t)});return t}_setUp(t=!0){if("function"!=typeof this.s.dt.column().type&&m.Api.registerPlural("columns().types()","column().type()",function(){return this.iterator("column",function(t,e){return t.columns[e].type},1)}),!m.DateTime){let e=this.s.dt.columns().types().toArray();if(void 0===e||e.includes(void 0)||e.includes(null)){e=[];for(var i of this.s.dt.settings()[0].columns)e.push(void 0!==i.searchBuilderType?i.searchBuilderType:i.type)}var s=this.s.dt.columns().toArray();(void 0===e||e.includes(void 0)||e.includes(null))&&(e=this.s.dt.columns().types().toArray());for(let t=0;t<s[0].length;t++){var n=s[0][t],n=e[n];if(("*"===this.c.columns||Array.isArray(this.c.columns)&&this.c.columns.includes(t))&&(n.includes("date")||n.includes("moment")||n.includes("luxon")))throw alert("SearchBuilder Requires DateTime when used with dates."),new Error("SearchBuilder requires DateTime")}}this.s.topGroup=new o(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._setClearListener(),this.s.dt.on("stateSaveParams.dtsb",(t,e,i)=>{i.searchBuilder=this.getDetails(),i.scroller?i.start=this.s.dt.state().start:i.page=this.s.dt.page()}),this.s.dt.on("stateLoadParams.dtsb",(t,e,i)=>{this.rebuild(i.searchBuilder)}),this._build(),this.s.dt.on("preXhr.dtsb",(t,e,i)=>{this.s.dt.page.info().serverSide&&(i.searchBuilder=this._collapseArray(this.getDetails(!0)))}),this.s.dt.on("columns-reordered",()=>{this.rebuild(this.getDetails())}),t&&(null!==(t=this.s.dt.state.loaded())&&void 0!==t.searchBuilder?(this.s.topGroup.rebuild(t.searchBuilder),this.s.topGroup.dom.container.trigger("dtsb-redrawContents"),this.s.dt.page.info().serverSide||(t.page?this.s.dt.page(t.page).draw("page"):this.s.dt.scroller&&t.scroller&&this.s.dt.scroller().scrollToRow(t.scroller.topRow)),this.s.topGroup.setListeners()):!1!==this.c.preDefined&&(this.c.preDefined=this._applyPreDefDefaults(this.c.preDefined),this.rebuild(this.c.preDefined))),this._setEmptyListener(),this.s.dt.state.save()}_collapseArray(e){if(void 0===e.logic)void 0!==e.value&&(e.value.sort((t,e)=>(isNaN(+t)||(t=+t,e=+e),t<e?-1:e<t?1:0)),e.value1=e.value[0],e.value2=e.value[1]);else for(let t=0;t<e.criteria.length;t++)e.criteria[t]=this._collapseArray(e.criteria[t]);return e}_updateTitle(t){this.dom.title.html(this.s.dt.i18n("searchBuilder.title",this.c.i18n.title,t))}_build(){this.dom.clearAll.remove(),this.dom.container.empty();var t=this.s.topGroup.count();this._updateTitle(t),this.dom.titleRow.append(this.dom.title),this.dom.container.append(this.dom.titleRow),this.dom.topGroup=this.s.topGroup.getNode(),this.dom.container.append(this.dom.topGroup),this._setRedrawListener();let s=this.s.dt.table(0).node();m.ext.search.includes(this.s.search)||(this.s.search=(t,e,i)=>t.table!==s||this.s.topGroup.search(e,i),m.ext.search.push(this.s.search)),this.s.dt.on("destroy.dtsb",()=>{this.dom.container.remove(),this.dom.clearAll.remove();let t=m.ext.search.indexOf(this.s.search);for(;-1!==t;)m.ext.search.splice(t,1),t=m.ext.search.indexOf(this.s.search);this.s.dt.off(".dtsb"),g.s(this.s.dt.table().node()).off(".dtsb")})}_checkClear(){0<this.s.topGroup.s.criteria.length?(this.dom.clearAll.insertAfter(this.dom.title.get(0)),this._setClearListener()):this.dom.clearAll.remove()}_filterChanged(t){var e=this.c.filterChanged;"function"==typeof e&&e(t,this.s.dt.i18n("searchBuilder.button",this.c.i18n.button,t))}_setClearListener(){this.dom.clearAll.off("click"),this.dom.clearAll.on("click.dtsb",(t,e)=>(this.s.topGroup=new o(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._build(),!1!==e&&this.s.dt.draw(),this.s.topGroup.setListeners(),this.dom.clearAll.remove(),this._setEmptyListener(),this._filterChanged(0),!1))}_setRedrawListener(){this.s.topGroup.dom.container.off("dtsb-redrawContents"),this.s.topGroup.dom.container.on("dtsb-redrawContents.dtsb",()=>{this._checkClear(),this.s.topGroup.redrawContents(),this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this.s.dt.page.info().serverSide||this.s.dt.draw(),this.s.dt.state.save()}),this.s.topGroup.dom.container.off("dtsb-redrawContents-noDraw"),this.s.topGroup.dom.container.on("dtsb-redrawContents-noDraw.dtsb",()=>{this._checkClear(),this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.redrawContents(),this.s.topGroup.s.preventRedraw=!1,this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-redrawLogic"),this.s.topGroup.dom.container.on("dtsb-redrawLogic.dtsb",()=>{this.s.topGroup.redrawLogic();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-add"),this.s.topGroup.dom.container.on("dtsb-add.dtsb",()=>{var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this._checkClear()}),this.s.dt.on("postEdit.dtsb postCreate.dtsb postRemove.dtsb",()=>{this.s.topGroup.redrawContents()}),this.s.topGroup.dom.container.off("dtsb-clearContents"),this.s.topGroup.dom.container.on("dtsb-clearContents.dtsb",()=>{this._setUp(!1),this._filterChanged(0),this.s.dt.draw()})}_setEmptyListener(){this.s.topGroup.dom.add.on("click.dtsb",()=>{this._checkClear()}),this.s.topGroup.dom.container.on("dtsb-destroy.dtsb",()=>{this.dom.clearAll.remove()})}}function n(t,e){t=new m.Api(t),e=e||t.init().searchBuilder||m.defaults.searchBuilder;return new s(t,e).getNode()}return s.version="2.0.0",s.classes={button:"dtsb-button",clearAll:"dtsb-clearAll",container:"dtsb-searchBuilder",inputButton:"dtsb-iptbtn",title:"dtsb-title",titleRow:"dtsb-titleRow"},s.defaults={columns:"*",conditions:{date:f.dateConditions,html:f.stringConditions,"html-num":f.numConditions,"html-num-fmt":f.numFmtConditions,luxon:f.luxonDateConditions,moment:f.momentDateConditions,num:f.numConditions,"num-fmt":f.numFmtConditions,string:f.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",conditions:{array:{contains:"Contains",empty:"Empty",equals:"Equals",not:"Not",notEmpty:"Not Empty",without:"Without"},date:{after:"After",before:"Before",between:"Between",empty:"Empty",equals:"Equals",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},number:{between:"Between",empty:"Empty",equals:"Equals",gt:"Greater Than",gte:"Greater Than Equal To",lt:"Less Than",lte:"Less Than Equal To",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},string:{contains:"Contains",empty:"Empty",endsWith:"Ends With",equals:"Equals",not:"Not",notContains:"Does Not Contain",notEmpty:"Not Empty",notEndsWith:"Does Not End With",notStartsWith:"Does Not Start With",startsWith:"Starts With"}},data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},m.SearchBuilder=s,m.Group=o,m.Criteria=f,m.ext.searchBuilder={conditions:{}},m.ext.buttons.searchBuilder={action(t,e,i,s){this.popover(s._searchBuilder.getNode(),{align:"container",span:"container"});s=s._searchBuilder.s.topGroup;void 0!==s&&s.dom.container.trigger("dtsb-redrawContents-noDraw"),0===s.s.criteria.length&&g.s("."+o.classes.add.replace(/ /g,".")).trigger("click")},config:{},init(e,t,i){let s=this,n=new m.SearchBuilder(e,i.config);e.on("draw",function(){var t=n.s.topGroup?n.s.topGroup.count():0;s.text(e.i18n("searchBuilder.button",n.c.i18n.button,t))}),s.text(i.text||e.i18n("searchBuilder.button",n.c.i18n.button,0)),i._searchBuilder=n},text:null},i.register("searchBuilder.getDetails()",function(t=!1){var e=this.context[0];return e._searchBuilder?e._searchBuilder.getDetails(t):null}),i.register("searchBuilder.rebuild()",function(t,e=!0){var i=this.context[0];return void 0===i._searchBuilder?null:(i._searchBuilder.rebuild(t,e),this)}),i.register("searchBuilder.container()",function(){var t=this.context[0];return t._searchBuilder?t._searchBuilder.getNode():null}),g.s(t).on("preInit.dt.dtsp",function(t,e){"dt"!==t.namespace||!e.init.searchBuilder&&!m.defaults.searchBuilder||e._searchBuilder||n(e)}),m.ext.feature.push({cFeature:"Q",fnInit:n}),m.feature.register("searchBuilder",n),m});
4
+ (e=>{var i;"function"==typeof define&&define.amd?define(["datatables.net"],function(t){return e(window,document,t)}):"object"==typeof exports?(i=function(t){t.DataTable||require("datatables.net")(t)},"undefined"==typeof window?module.exports=function(t){return t=t||window,i(t),e(t,t.document,t.DataTable)}:(i(window),module.exports=e(window,window.document,window.DataTable))):e(window,document,window.DataTable)})(function(e,t,m){var g=m.Dom,i=m.Api,d=m.util;function r(){var t=m.use("moment");return t||e.moment}function a(){var t=m.use("luxon");return t||e.luxon}class f{constructor(t,e,i,s=0,n=1,r=void 0,a=!1){this.classes=d.object.assignDeep({},f.classes),this.c=d.object.assignDeep({},f.defaults,m.ext.searchBuilder,e);e=this.c.i18n;if(this.s={condition:void 0,conditions:{},data:void 0,dataIdx:-1,dataPoints:[],dateFormat:!1,depth:n,dt:t,filled:!1,index:s,liveSearch:a,origData:void 0,preventRedraw:!1,serverData:r,topGroup:i,type:"",value:[]},this.dom={buttons:g.c("div").classAdd(this.classes.buttonContainer),condition:g.c("select").prop("disabled",!0).classAdd(this.classes.condition).classAdd(this.classes.dropDown).classAdd(this.classes.italic).attr("autocomplete","hacking"),conditionTitle:g.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.condition",e.condition)),container:g.c("div").classAdd(this.classes.container),data:g.c("select").classAdd(this.classes.data).classAdd(this.classes.dropDown).classAdd(this.classes.italic),dataTitle:g.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.data",e.data)),defaultValue:g.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.select).classAdd(this.classes.italic),delete:g.c("button").html(this.s.dt.i18n("searchBuilder.delete",e.delete)).classAdd(this.classes.delete).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.deleteTitle",e.deleteTitle)).attr("type","button"),inputCont:g.c("div").classAdd(this.classes.inputCont),left:g.c("button").html(this.s.dt.i18n("searchBuilder.left",e.left)).classAdd(this.classes.left).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.leftTitle",e.leftTitle)).attr("type","button"),right:g.c("button").html(this.s.dt.i18n("searchBuilder.right",e.right)).classAdd(this.classes.right).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.rightTitle",e.rightTitle)).attr("type","button"),value:[g.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select)],valueTitle:g.c("option").attr("value","--valueTitle--").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.value",e.value))},this.c.greyscale){this.dom.data.classAdd(this.classes.greyscale),this.dom.condition.classAdd(this.classes.greyscale),this.dom.defaultValue.classAdd(this.classes.greyscale);for(var o of this.dom.value)o.classAdd(this.classes.greyscale)}return g.w.on("resize.dtsb",m.util.throttle(()=>{this.s.topGroup.trigger("dtsb-redrawLogic")})),this._buildCriteria(),this}doSearch(){this.c.liveSearch&&this.s.dt.draw()}static parseNumFmt(t){return+t.replace(/(?!^-)[^0-9.]/g,"")}updateArrows(t=!1){this.dom.container.children().detach(),this.dom.container.append(this.dom.data).append(this.dom.condition).append(this.dom.inputCont),this.setListeners(),void 0!==this.dom.value[0]&&this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted");1<this.s.depth&&this.dom.buttons.append(this.dom.left),(!1===this.c.depthLimit||this.s.depth<this.c.depthLimit)&&t?this.dom.buttons.append(this.dom.right):this.dom.right.remove(),this.dom.buttons.append(this.dom.delete),this.dom.container.append(this.dom.buttons)}destroy(){this.dom.data.off(".dtsb"),this.dom.condition.off(".dtsb"),this.dom.delete.off(".dtsb");for(var t of this.dom.value)t.off(".dtsb");this.dom.container.remove()}search(i,e){var s=this.s.dt.settings()[0],n=this.s.conditions[this.s.condition];if(void 0!==this.s.condition&&void 0!==n){let t=i[this.s.dataIdx];if(this.s.type&&this.s.type.includes("num")&&(""!==s.language.decimal||""!==s.language.thousands)){let e=[i[this.s.dataIdx]];if(""!==s.language.decimal&&(e=i[this.s.dataIdx].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<e.length;t++)e[t]=e[t].replace(s.language.thousands,",");t=e.join(".")}if("filter"!==this.c.orthogonal.search&&(t=s.fastData(e,this.s.dataIdx,"string"==typeof this.c.orthogonal?this.c.orthogonal:this.c.orthogonal.search)),"array"===this.s.type){(t=Array.isArray(t)?t:[t]).sort();for(var r of t)r&&"string"==typeof r&&(r=r.replace(/[\r\n\u2028]/g," "))}else null!==t&&"string"==typeof t&&(t=t.replace(/[\r\n\u2028]/g," "));return null===(t=this.s.type.includes("html")&&"string"==typeof t?t.replace(/(<([^>]+)>)/gi,""):t)&&(t=""),n.search(t,this.s.value,this)}}isReturnSearch(){var t=this.s.dt.settings()[0].init.search;return!!d.is.plainObject(t)&&t.return}getDetails(t=!1){let i;var s=this.s.dt.settings()[0];if(null===this.s.type||!["num","num-fmt","html-num","html-num-fmt"].includes(this.s.type)||""===s.language.decimal&&""===s.language.thousands){if(null!==this.s.type&&t){var e=r(),n=a();if(this.s.type.includes("date")||this.s.type.includes("time"),this.s.type.includes("moment")||this.s.type.includes("datetime")&&r)for(i=0;i<this.s.value.length;i++)this.s.value[i]&&0<this.s.value[i].length&&e(this.s.value[i],this.s.dateFormat,!0).isValid()&&(this.s.value[i]=e(this.s.value[i],this.s.dateFormat).format("YYYY-MM-DD HH:mm:ss"));else if(this.s.type.includes("luxon")||this.s.type.includes("datetime")&&a)for(i=0;i<this.s.value.length;i++)this.s.value[i]&&0<this.s.value[i].length&&null===n.DateTime.fromFormat(this.s.value[i],this.s.dateFormat).invalid&&(this.s.value[i]=n.DateTime.fromFormat(this.s.value[i],this.s.dateFormat).toFormat("yyyy-MM-dd HH:mm:ss"))}}else for(i=0;i<this.s.value.length;i++){let e=[this.s.value[i].toString()];if(""!==s.language.decimal&&(e=this.s.value[i].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<e.length;t++)e[t]=e[t].replace(s.language.thousands,",");this.s.value[i]=e.join(".")}if(this.s.type&&this.s.type.includes("num")&&this.s.dt.page.info().serverSide)for(i=0;i<this.s.value.length;i++)this.s.value[i]=this.s.value[i].replace(/[^0-9.\-]/g,"");return{condition:this.s.condition,data:this.s.data,origData:this.s.origData,type:this.s.type,value:this.s.value.map(t=>null!=t?t.toString():t)}}getNode(){return this.dom.container}parseNumber(t){var e=this.s.dt.i18n("decimal",".");return+(t=e&&"."!==e?t.replace(/\./g,"").replace(e,"."):t).replace(/(?!^-)[^0-9.]/g,"")}populate(){this._populateData(),-1!==this.s.dataIdx&&(this._populateCondition(),void 0!==this.s.condition)&&this._populateValue()}rebuild(s){let n=!1,r,e;if(this._populateData(),void 0!==s.data){let e=this.classes.italic,i=this.dom.data;this.dom.data.children("option").each(function(t){t=g.s(t);!n&&(t.text()===s.data||s.origData&&t.prop("origData")===s.origData)?(t.prop("selected",!0),i.classRemove(e),n=!0,r=parseInt(t.val(),10)):t.propRemove("selected")})}if(n){this.s.data=s.data,this.s.origData=s.origData,this.s.dataIdx=r,this.c.orthogonal=this._getOptions().orthogonal,this.dom.dataTitle.remove(),this._populateCondition(),this.dom.conditionTitle.remove();let t;var i=this.dom.condition.children("option");for(e=0;e<i.count();e++){var a=i.eq(e);void 0!==s.condition&&a.val()===s.condition&&"string"==typeof s.condition?(a.prop("selected",!0),t=a.val()):a.propRemove("selected")}if(this.s.condition=t,void 0!==this.s.condition){for(this.dom.conditionTitle.propRemove("selected"),this.dom.conditionTitle.remove(),this.dom.condition.classRemove(this.classes.italic),e=0;e<i.count();e++){var o=i.eq(e);o.val()!==this.s.condition&&o.propRemove("selected")}this._populateValue(s)}else this.dom.conditionTitle.prependTo(this.dom.condition).prop("selected",!0)}}setListeners(){this.dom.data.off("change").on("change.dtsb",()=>{this.dom.dataTitle.propRemove("selected");var e=this.dom.data.children("option."+this.classes.option);for(let t=0;t<e.count();t++){var i=e.eq(t);i.val()===this.dom.data.val()?(this.dom.data.classRemove(this.classes.italic),i.prop("selected",!0),this.s.dataIdx=+i.val(),this.s.data=i.text(),this.s.origData=i.prop("origData").toString(),this.c.orthogonal=this._getOptions().orthogonal,this._clearCondition(),this._clearValue(),this._populateCondition(),this.s.filled&&(this.s.filled=!1,this.doSearch(),this.setListeners()),this.s.dt.state.save()):i.propRemove("selected")}}),this.dom.condition.off("change").on("change.dtsb",()=>{this.dom.conditionTitle.propRemove("selected");var e=this.dom.condition.children("option."+this.classes.option);for(let t=0;t<e.count();t++){var i=e.eq(t);if(i.val()===this.dom.condition.val()){this.dom.condition.classRemove(this.classes.italic),i.prop("selected",!0);var s,n,r=i.val();for(s of Object.keys(this.s.conditions))if(s===r){this.s.condition=r;break}this._clearValue(),this._populateValue();for(n of this.dom.value)this.s.filled&&void 0!==n&&this.dom.inputCont.contains(n[0])&&(this.s.filled=!1,this.doSearch(),this.setListeners());(0===this.dom.value.length||1===this.dom.value.length&&void 0===this.dom.value[0])&&this.doSearch()}else i.propRemove("selected")}})}setupButtons(){550<e.innerWidth?(this.dom.container.classRemove(this.classes.vertical),this.dom.buttons.css("left",null),this.dom.buttons.css("top",null)):(this.dom.container.classAdd(this.classes.vertical),this.dom.buttons.css("left",this.dom.data.width("inner")+"px"),this.dom.buttons.css("top",this.dom.data.position().top+"px"))}_buildCriteria(){this.dom.data.append(this.dom.dataTitle),this.dom.condition.append(this.dom.conditionTitle),this.dom.container.append(this.dom.data).append(this.dom.condition),this.dom.inputCont.empty();for(var t of this.dom.value)t.append(this.dom.valueTitle),this.dom.inputCont.append(t);this.dom.buttons.append(this.dom.delete).append(this.dom.right),this.dom.container.append(this.dom.inputCont).append(this.dom.buttons),this.setListeners()}_clearCondition(){this.dom.condition.empty(),this.dom.conditionTitle.prop("selected",!0).attr("disabled","true"),this.dom.condition.prepend(this.dom.conditionTitle).prop("selectedIndex",0),this.s.conditions={},this.s.condition=void 0}_clearValue(){let t;if(void 0!==this.s.condition){if(0<this.dom.value.length&&void 0!==this.dom.value[0])for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);if(this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,f.updateListener)),0<this.dom.value.length&&void 0!==this.dom.value[0]){this.dom.inputCont.empty().append(this.dom.value[0]).insertAfter(this.dom.condition.get(0)),this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted")}}else{for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);this.dom.valueTitle.prop("selected",!0),this.dom.defaultValue.append(this.dom.valueTitle).insertAfter(this.dom.condition.get(0))}this.s.value=[],this.dom.value=[g.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select).append(this.dom.valueTitle.clone())]}_getOptions(){var t=this.s.dt;return d.object.assignDeep({},f.defaults,t.settings()[0].columns[this.s.dataIdx].searchBuilder)}_populateCondition(){var t,e=[],i=Object.keys(this.s.conditions).length,s=this.s.dt,n=s.settings()[0].columns,r=+this.dom.data.val();let a,o;if(0===i){this.s.type=s.column(r).type(),void 0!==n&&(null!=(c=n[r]).searchBuilderType?this.s.type=c.searchBuilderType:null==this.s.type&&(this.s.type=c.type)),null==this.s.type&&(this.s.type=s.column(r).type()),this.dom.condition.attrRemove("disabled").empty().append(this.dom.conditionTitle).classAdd(this.classes.italic),this.dom.conditionTitle.prop("selected",!0);var d,l,c=s.settings()[0].language.decimal;""!==c&&this.s.type&&this.s.type.indexOf(c)===this.s.type.length-c.length&&(this.s.type.includes("num-fmt")||this.s.type.includes("num"))&&(this.s.type=this.s.type.replace(c,""));let t;void 0!==this.c.conditions[this.s.type]?t=this.c.conditions[this.s.type]:this.s.type&&"datetime"===this.s.type?(t=this.c.conditions.date,d=(c=n[r].render)("1999-08-07T23:05:04Z","display"),c=c("1999-08-07T03:05:04Z","display").includes("03"),m.use("moment")?(t=this.c.conditions.moment,this.s.dateFormat=d.replace("23",c?"HH":"H").replace("11",c?"hh":"h").replace("05","mm").replace("04","ss").replace("PM","A").replace("pm","a").replace("07","DD").replace("7","D").replace("08","MM").replace("8","M").replace("1999","YYYY").replace("99","YY")):m.use("luxon")?(t=this.c.conditions.luxon,this.s.dateFormat=d.replace("23",c?"HH":"H").replace("11",c?"hh":"h").replace("05","mm").replace("04","ss").replace("PM","a").replace("07","dd").replace("7","d").replace("08","MM").replace("8","M").replace("1999","yyyy").replace("99","yy")):d.includes("23")&&d.includes("1999")?this.s.dateFormat="YYYY-MM-DD hh:mm:ss":d.includes("23")&&(this.s.dateFormat="hh:mm:ss")):this.s.type&&this.s.type.includes("datetime-")?(t=m.use("moment")?this.c.conditions.moment:this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/datetime-/g,"")):this.s.type&&this.s.type.includes("moment")?(t=this.c.conditions.moment,this.s.dateFormat=this.s.type.replace(/moment-/g,"")):this.s.type&&this.s.type.includes("luxon")?(t=this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/luxon-/g,"")):t=this.c.conditions.string;for(a of Object.keys(t))null!==t[a]&&(s.page.info().serverSide&&t[a].init===f.initSelect&&(l=n[r],this.s.serverData&&this.s.serverData[l.data]?(t[a].init=f.initSelectSSP,t[a].inputValue=f.inputValueSelect,t[a].isInputValid=f.isInputValidSelect):(t[a].init=f.initInput,t[a].inputValue=f.inputValueInput,t[a].isInputValid=f.isInputValidInput)),this.s.conditions[a]=t[a],"function"==typeof(o=t[a].conditionName)&&(o=o(s,this.c.i18n)),e.push(g.c("option").text(o).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic)))}else{if(!(0<i))return void this.dom.condition.attr("disabled","true").classAdd(this.classes.italic);this.dom.condition.empty().attrRemove("disabled").classAdd(this.classes.italic);for(a of Object.keys(this.s.conditions)){let t=this.s.conditions[a].conditionName;"function"==typeof t&&(t=t(s,this.c.i18n));var u=g.c("option").text(t).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic);void 0!==this.s.condition&&this.s.condition===t&&(u.prop("selected",!0),this.dom.condition.classRemove(this.classes.italic)),e.push(u)}}for(t of e)this.dom.condition.append(t);if(n[r].searchBuilder&&n[r].searchBuilder.defaultCondition){var h=n[r].searchBuilder.defaultCondition;if("number"==typeof h)this.dom.condition.prop("selectedIndex",h),this.dom.condition.trigger("change");else if("string"==typeof h)for(let t=0;t<e.length;t++)for(var p of Object.keys(this.s.conditions))if(("string"==typeof(o=this.s.conditions[p].conditionName)?o:o(s,this.c.i18n))===e[t].text()&&p===h){this.dom.condition.prop("selectedIndex",this.dom.condition.children().get().indexOf(e[t].get(0))).classRemove(this.classes.italic),this.dom.condition.trigger("change"),t=e.length;break}}else this.dom.condition.prop("selectedIndex",0)}_populateData(){var e,i,s=this.s.dt.settings()[0].columns,n=this.s.dt.columns(this.c.columns).indexes().toArray();this.dom.data.empty().append(this.dom.dataTitle);for(let t=0;t<s.length;t++)"*"!==this.c.columns&&!n.includes(t)||(e=s[t],i={index:t,origData:e.data,text:(e.searchBuilderTitle||e.title).replace(/(<([^>]+)>)/gi,"")},this.dom.data.append(g.c("option").text(i.text).val(i.index).classAdd(this.classes.option).classAdd(this.classes.notItalic).prop("origData",e.data).prop("selected",this.s.dataIdx===i.index)),this.s.dataIdx!==i.index)||this.dom.dataTitle.propRemove("selected")}_populateValue(e){var t=this.s.filled;let i;this.s.filled=!1,setTimeout(()=>{this.dom.defaultValue.remove()},50);for(let t of this.dom.value)setTimeout(function(){void 0!==t&&t.remove()},50);var s=this.dom.inputCont.children();if(1<s.count())for(i=0;i<s.count();i++)s.eq(i).remove();for(void 0!==e&&this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===e.data&&(this.s.dataIdx=t)}),this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,f.updateListener,void 0!==e?e.value:void 0)),void 0!==e&&void 0!==e.value&&(this.s.value=e.value),this.dom.inputCont.empty(),void 0!==this.dom.value[0]&&this.dom.value[0].appendTo(this.dom.inputCont).trigger("dtsb-inserted"),i=1;i<this.dom.value.length;i++)this.dom.value[i].insertAfter(this.dom.value[i-1].get(0)).trigger("dtsb-inserted");this.s.filled=this.s.conditions[this.s.condition].isInputValid(this.dom.value,this),this.setListeners(),this.s.preventRedraw||t===this.s.filled||(this.s.dt.page.info().serverSide||this.doSearch(),this.setListeners())}_throttle(t,e=200){return m.util.debounce(t,e)}}f.classes={button:"dtsb-button",buttonContainer:"dtsb-buttonContainer",condition:"dtsb-condition",container:"dtsb-criteria",data:"dtsb-data",delete:"dtsb-delete",dropDown:"dtsb-dropDown",greyscale:"dtsb-greyscale",input:"dtsb-input",inputCont:"dtsb-inputCont",italic:"dtsb-italic",joiner:"dtsb-joiner",left:"dtsb-left",notItalic:"dtsb-notItalic",option:"dtsb-option",right:"dtsb-right",select:"dtsb-select",value:"dtsb-value",vertical:"dtsb-vertical"},f.initSelect=function(i,t,s=null,e=!1){var n,r,a=parseInt(i.dom.data.val()),o=i.s.dt.rows().indexes().toArray(),d=i.s.dt.settings()[0].fastData;i.dom.valueTitle.prop("selected",!0);let l=g.c("select").classAdd(f.classes.value).classAdd(f.classes.dropDown).classAdd(f.classes.italic).classAdd(f.classes.select).append(i.dom.valueTitle).on("change.dtsb",function(){l.classRemove(f.classes.italic),t(i,this)}),c=(i.c.greyscale&&l.classAdd(f.classes.greyscale),[]),u=[];for(n of o){var h=d(n,a,"string"==typeof i.c.orthogonal?i.c.orthogonal:i.c.orthogonal.search),p={filter:"string"==typeof h?h.replace(/[\r\n\u2028]/g," "):h,text:d(n,a,"string"==typeof i.c.orthogonal?i.c.orthogonal:i.c.orthogonal.display)},m=("array"===i.s.type&&(p.filter=Array.isArray(p.filter)?p.filter:[p.filter],p.text=Array.isArray(p.text)?p.text:[p.text]),(t,e)=>{i.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=g.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(i.classes.option).classAdd(i.classes.notItalic).html("string"==typeof e?e.replace(/(<([^>]+)>)/gi,""):e),e=t.val();-1===c.indexOf(e)&&(c.push(e),u.push(t),null!==s&&Array.isArray(s[0])&&(s[0]=s[0].sort().join(",")),null!==s)&&t.val()===s[0]&&(t.prop("selected",!0),l.classRemove(f.classes.italic),i.dom.valueTitle.propRemove("selected"))});if(e)for(let t=0;t<p.filter.length;t++)m(p.filter[t],p.text[t]);else m(p.filter,Array.isArray(p.text)?p.text.join(", "):p.text)}u.sort((t,e)=>"array"===i.s.type||"string"===i.s.type||"html"===i.s.type?t.val()<e.val()?-1:t.val()>e.val()?1:0:"num"===i.s.type||"html-num"===i.s.type?+t.val().replace(/(<([^>]+)>)/gi,"")<+e.val().replace(/(<([^>]+)>)/gi,"")?-1:+t.val().replace(/(<([^>]+)>)/gi,"")>+e.val().replace(/(<([^>]+)>)/gi,"")?1:0:"num-fmt"===i.s.type||"html-num-fmt"===i.s.type?+t.val().replace(/[^0-9.]/g,"")<+e.val().replace(/[^0-9.]/g,"")?-1:+t.val().replace(/[^0-9.]/g,"")>+e.val().replace(/[^0-9.]/g,"")?1:0:void 0);for(r of u)l.append(r);return l},f.initSelectSSP=function(i,t,s=null){i.dom.valueTitle.prop("selected",!0);let n=g.c("select").classAdd(f.classes.value).classAdd(f.classes.dropDown).classAdd(f.classes.italic).classAdd(f.classes.select).append(i.dom.valueTitle).on("change.dtsb",function(){n.classRemove(f.classes.italic),t(i,this)}),r=(i.c.greyscale&&n.classAdd(f.classes.greyscale),[]);for(var e of i.s.serverData[i.s.origData])((t,e)=>{i.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=g.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(i.classes.option).classAdd(i.classes.notItalic).html("string"==typeof e?e.replace(/(<([^>]+)>)/gi,""):e);r.push(t),null!==s&&t.val()===s[0]&&(t.prop("selected",!0),n.classRemove(f.classes.italic),i.dom.valueTitle.propRemove("selected"))})(e.value,e.label);for(var a of r)n.append(a);return n},f.initSelectArray=function(t,e,i=null){return f.initSelect(t,e,i,!0)},f.initInput=function(e,i,t=null){var s=e.s.dt.settings()[0].searchDelay,s=g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("input.dtsb keypress.dtsb",e._throttle(function(t){t=t.keyCode||t.which;return i(e,this,t)},null===s?100:s));return e.c.greyscale&&s.classAdd(f.classes.greyscale),null!==t&&s.val(t[0]),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),s},f.init2Input=function(e,i,t=null){var s=e.s.dt.settings()[0].searchDelay,s=[g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("input.dtsb keypress.dtsb",e._throttle(function(t){t=t.keyCode||t.which;return i(e,this,t)},null===s?100:s)),g.c("span").classAdd(e.classes.joiner).html(e.s.dt.i18n("searchBuilder.valueJoiner",e.c.i18n.valueJoiner)),g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("input.dtsb keypress.dtsb",e._throttle(function(t){t=t.keyCode||t.which;return i(e,this,t)},null===s?100:s))];return e.c.greyscale&&(s[0].classAdd(f.classes.greyscale),s[2].classAdd(f.classes.greyscale)),null!==t&&(s[0].val(t[0]),s[2].val(t[1])),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),s},f.initDate=function(i,s,t=null){let n=i.s.dt.settings()[0].searchDelay;var e=i.s.dt.i18n("datetime",{},!1),r=g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("change.dtsb",i._throttle(function(){return s(i,this)},null===n?100:n)).on("input.dtsb keypress.dtsb",e=>{i._throttle(function(){var t=e.keyCode||e.which;return s(i,this,t)},null===n?100:n)}),a=m.use("datetime");return a&&new a(r.get(0),{format:i.s.dateFormat||void 0,i18n:e}),i.c.greyscale&&r.classAdd(f.classes.greyscale),null!==t&&r.val(t[0]),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),r},f.initNoValue=function(t){return t.s.dt.one("draw.dtsb",()=>{t.s.topGroup.trigger("dtsb-redrawLogic")}),[]},f.init2Date=function(i,s,t=null){let n=i.s.dt.settings()[0].searchDelay;var e=i.isReturnSearch(),r=i.s.dt.i18n("datetime",{},!1),e=[g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("change.dtsb",null!==n?m.util.throttle(function(){return s(i,this)},n):()=>{s(i,this)}).on("input.dtsb keypress.dtsb",e=>{m.util.throttle(function(){var t=e.keyCode||e.which;return s(i,this,t)},null===n?0:n)}),g.c("span").classAdd(i.classes.joiner).html(i.s.dt.i18n("searchBuilder.valueJoiner",i.c.i18n.valueJoiner)),g.c("input").classAdd(f.classes.value).classAdd(f.classes.input).on("change.dtsb",null!==n?m.util.throttle(function(){return s(i,this)},n):()=>{s(i,this)}).on("input.dtsb keypress.dtsb",i.c.enterSearch||e||null===n?t=>{t=t.keyCode||t.which;s(i,this,t)}:m.util.throttle(function(){return s(i,this)},n))],a=m.use("datetime");return a&&(new a(e[0],{format:i.s.dateFormat||void 0,i18n:r}),new a(e[2],{format:i.s.dateFormat||void 0,i18n:r})),i.c.greyscale&&(e[0].classAdd(f.classes.greyscale),e[2].classAdd(f.classes.greyscale)),null!==t&&0<t.length&&(e[0].val(t[0]),e[2].val(t[1])),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),e},f.isInputValidSelect=function(t){let e=!0;for(var i of t){var s=i.children("option").get(),n=s.filter(t=>t.selected),i=i.children("option."+f.classes.notItalic).get();n.length===s.length-i.length&&1===n.length&&n[0]===s[0]&&(e=!1)}return e},f.isInputValidInput=function(t){let e=!0;for(var i of t)i.is("input")&&0===i.val().length&&(e=!1);return e},f.inputValueSelect=function(t){var e,i,s=[];for(e of t)e.is("select")&&(i=[].concat(e.children("option").filter(t=>t.selected).data("sbv")).map(t=>d.escapeHtml(t)),s.push(...i));return s},f.inputValueInput=function(t){var e,i=[];for(e of t)e.is("input")&&i.push(d.escapeHtml(e.val()));return i.map(t=>m.util.diacritics(t))},f.updateListener=function(i,s,n){var t=i.s.conditions[i.s.condition];let r;if(i.s.filled=t.isInputValid(i.dom.value,i),i.s.value=t.inputValue(i.dom.value,i),i.s.filled){for(Array.isArray(i.s.value)||(i.s.value=[i.s.value]),r=0;r<i.s.value.length;r++)Array.isArray(i.s.value[r])&&i.s.value[r].sort();let t=null,e=null;for(r=0;r<i.dom.value.length;r++)s===i.dom.value[r][0]&&(t=r,void 0!==s.selectionStart)&&(e=s.selectionStart);(!i.c.enterSearch&&!i.isReturnSearch()||13===n||void 0===n||s.nodeName&&"select"===s.nodeName.toLowerCase())&&i.doSearch(),null!==t&&(i.dom.value[t].classRemove(i.classes.italic),i.dom.value[t].focus(),null!==e)&&i.dom.value[t][0].setSelectionRange(e,e)}else(i.c.enterSearch||i.isReturnSearch())&&13!==n||i.doSearch()},f.dateConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.equals",e.conditions.date.equals)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))===e[0]}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.not",e.conditions.date.not)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))!==e[0]}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.before",e.conditions.date.before)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))<e[0]}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.after",e.conditions.date.after)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return(t=t.replace(/(\/|-|,)/g,"-"))>e[0]}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.between",e.conditions.date.between)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t=t.replace(/(\/|-|,)/g,"-"),e[0]<e[1]?e[0]<=t&&t<=e[1]:e[1]<=t&&t<=e[0]}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notBetween",e.conditions.date.notBetween)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t=t.replace(/(\/|-|,)/g,"-"),e[0]<e[1]?!(e[0]<=t&&t<=e[1]):!(e[1]<=t&&t<=e[0])}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.empty",e.conditions.date.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notEmpty",e.conditions.date.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.momentDateConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.equals",e.conditions.date.equals)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()===r()(e[0],i.s.dateFormat).valueOf()}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.not",e.conditions.date.not)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()!==r()(e[0],i.s.dateFormat).valueOf()}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.before",e.conditions.date.before)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()<r()(e[0],i.s.dateFormat).valueOf()}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.after",e.conditions.date.after)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return r()(t,i.s.dateFormat).valueOf()>r()(e[0],i.s.dateFormat).valueOf()}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.between",e.conditions.date.between)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=r()(t,i.s.dateFormat).valueOf(),s=r()(e[0],i.s.dateFormat).valueOf(),e=r()(e[1],i.s.dateFormat).valueOf();return s<e?s<=t&&t<=e:e<=t&&t<=s}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notBetween",e.conditions.date.notBetween)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=r()(t,i.s.dateFormat).valueOf(),s=r()(e[0],i.s.dateFormat).valueOf(),e=r()(e[1],i.s.dateFormat).valueOf();return s<e?!(+s<=+t&&+t<=+e):!(+e<=+t&&+t<=+s)}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.empty",e.conditions.date.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notEmpty",e.conditions.date.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.luxonDateConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.equals",e.conditions.date.equals)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts===a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.not",e.conditions.date.not)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts!==a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.before",e.conditions.date.before)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts<a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.after",e.conditions.date.after)},init:f.initDate,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return a().DateTime.fromFormat(t,i.s.dateFormat).ts>a().DateTime.fromFormat(e[0],i.s.dateFormat).ts}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.between",e.conditions.date.between)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=a().DateTime.fromFormat(t,i.s.dateFormat).ts,s=a().DateTime.fromFormat(e[0],i.s.dateFormat).ts,e=a().DateTime.fromFormat(e[1],i.s.dateFormat).ts;return s<e?s<=t&&t<=e:e<=t&&t<=s}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notBetween",e.conditions.date.notBetween)},init:f.init2Date,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=a().DateTime.fromFormat(t,i.s.dateFormat).ts,s=a().DateTime.fromFormat(e[0],i.s.dateFormat).ts,e=a().DateTime.fromFormat(e[1],i.s.dateFormat).ts;return s<e?!(+s<=+t&&+t<=+e):!(+e<=+t&&+t<=+s)}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.empty",e.conditions.date.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.date.notEmpty",e.conditions.date.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.numConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.equals",e.conditions.number.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return+t==+e[0]}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.not",e.conditions.number.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return+t!=+e[0]}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lt",e.conditions.number.lt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t<+e[0]}},"<=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lte",e.conditions.number.lte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t<=+e[0]}},">=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gte",e.conditions.number.gte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t>=+e[0]}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gt",e.conditions.number.gt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+t>+e[0]}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.between",e.conditions.number.between)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+e[0]<+e[1]?+e[0]<=+t&&+t<=+e[1]:+e[1]<=+t&&+t<=+e[0]}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notBetween",e.conditions.number.notBetween)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return+e[0]<+e[1]?!(+e[0]<=+t&&+t<=+e[1]):!(+e[1]<=+t&&+t<=+e[0])}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.empty",e.conditions.number.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notEmpty",e.conditions.number.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.numFmtConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.equals",e.conditions.number.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e,i){return i.parseNumber(t)===i.parseNumber(e[0])}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.not",e.conditions.number.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e,i){return i.parseNumber(t)!==i.parseNumber(e[0])}},"<":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lt",e.conditions.number.lt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)<i.parseNumber(e[0])}},"<=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.lte",e.conditions.number.lte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)<=i.parseNumber(e[0])}},">=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gte",e.conditions.number.gte)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)>=i.parseNumber(e[0])}},">":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.gt",e.conditions.number.gt)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){return i.parseNumber(t)>i.parseNumber(e[0])}},between:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.between",e.conditions.number.between)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=i.parseNumber(t),s=i.parseNumber(e[0]),i=i.parseNumber(e[1]);return+s<+i?+s<=+t&&+t<=+i:+i<=+t&&+t<=+s}},"!between":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notBetween",e.conditions.number.notBetween)},init:f.init2Input,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e,i){var t=i.parseNumber(t),s=i.parseNumber(e[0]),i=i.parseNumber(e[1]);return+s<+i?!(+s<=+t&&+t<=+i):!(+i<=+t&&+t<=+s)}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.empty",e.conditions.number.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.number.notEmpty",e.conditions.number.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.stringConditions={"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.equals",e.conditions.string.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return t===e[0]}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.not",e.conditions.string.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidInput,search(t,e){return t!==e[0]}},starts:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.startsWith",e.conditions.string.startsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return 0===t.toLowerCase().indexOf(e[0].toLowerCase())}},"!starts":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notStartsWith",e.conditions.string.notStartsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return 0!==t.toLowerCase().indexOf(e[0].toLowerCase())}},contains:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.contains",e.conditions.string.contains)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t.toLowerCase().includes(e[0].toLowerCase())}},"!contains":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notContains",e.conditions.string.notContains)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return!t.toLowerCase().includes(e[0].toLowerCase())}},ends:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.endsWith",e.conditions.string.endsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return t.toLowerCase().endsWith(e[0].toLowerCase())}},"!ends":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notEndsWith",e.conditions.string.notEndsWith)},init:f.initInput,inputValue:f.inputValueInput,isInputValid:f.isInputValidInput,search(t,e){return!t.toLowerCase().endsWith(e[0].toLowerCase())}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.empty",e.conditions.string.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.string.notEmpty",e.conditions.string.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},f.arrayConditions={contains:{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.contains",e.conditions.array.contains)},init:f.initSelectArray,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return t.includes(e[0])}},without:{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.without",e.conditions.array.without)},init:f.initSelectArray,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(t,e){return-1===t.indexOf(e[0])}},"=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.equals",e.conditions.array.equals)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(e,i){if(e.length!==i.length)return!1;i.sort();for(let t=0;t<e.length;t++)if(e[t]!==i[t])return!1;return!0}},"!=":{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.not",e.conditions.array.not)},init:f.initSelect,inputValue:f.inputValueSelect,isInputValid:f.isInputValidSelect,search(e,i){if(e.length!==i.length)return!0;i.sort();for(let t=0;t<e.length;t++)if(e[t]!==i[t])return!0;return!1}},null:{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.empty",e.conditions.array.empty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,e){return t.i18n("searchBuilder.conditions.array.notEmpty",e.conditions.array.notEmpty)},init:f.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null!=t&&0!==t.length}}},f.defaults={columns:"*",conditions:{array:f.arrayConditions,date:f.dateConditions,html:f.stringConditions,"html-num":f.numConditions,"html-num-fmt":f.numFmtConditions,luxon:f.luxonDateConditions,moment:f.momentDateConditions,num:f.numConditions,"num-fmt":f.numFmtConditions,string:f.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},liveSearch:!0,logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1};class o{constructor(t,e,i,s=0,n=!1,r=1,a=void 0){return this.classes=m.util.object.assignDeep({},o.classes),this.c=m.util.object.assignDeep({},o.defaults,e),this.s={criteria:[],depth:r,dt:t,index:s,isChild:n,logic:void 0,opts:e,preventRedraw:!1,serverData:a,toDrop:void 0,topGroup:i},this.dom={add:g.c("button").classAdd(this.classes.add).classAdd(this.classes.button).attr("type","button"),clear:g.c("button").html("&times").classAdd(this.classes.button).classAdd(this.classes.clearGroup).attr("type","button"),container:g.c("div").classAdd(this.classes.group),logic:g.c("button").append(g.c("div")).classAdd(this.classes.logic).classAdd(this.classes.button).attr("type","button"),logicContainer:g.c("div").classAdd(this.classes.logicContainer),search:g.c("button").classAdd(this.classes.search).classAdd(this.classes.button).attr("type","button").css("display","none")},void 0===this.s.topGroup&&(this.s.topGroup=this.dom.container),this._setup(),this}destroy(){this.dom.add.off(".dtsb"),this.dom.logic.off(".dtsb"),this.dom.search.off(".dtsb"),this.dom.container.trigger("dtsb-destroy"),this.dom.container.remove(),this.s.criteria=[]}getDetails(t=!1){if(0===this.s.criteria.length)return{};var e,i={criteria:[],logic:this.s.logic};for(e of this.s.criteria)i.criteria.push(e.criteria.getDetails(t));return i}getNode(){return this.dom.container}rebuild(t){let e;if(!(null==t.criteria||Array.isArray(t.criteria)&&0===t.criteria.length)){if(this.s.logic=t.logic,this.dom.logic.children().eq(0).html("OR"===this.s.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),Array.isArray(t.criteria))for(e of t.criteria)void 0!==e.logic?this._addPrevGroup(e):void 0===e.logic&&this._addPrevCriteria(e);for(e of this.s.criteria)e.criteria instanceof f&&(e.criteria.updateArrows(1<this.s.criteria.length),this._setCriteriaListeners(e.criteria))}}redrawContents(){if(!this.s.preventRedraw){this.dom.container.children().detach(),this.dom.container.append(this.dom.logicContainer).append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search),this.s.criteria.sort(function(t,e){return t.criteria.s.index<e.criteria.s.index?-1:t.criteria.s.index>e.criteria.s.index?1:0}),this.setListeners();for(let t=0;t<this.s.criteria.length;t++){var e=this.s.criteria[t].criteria;e instanceof f?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),this._setCriteriaListeners(e),this.s.criteria[t].criteria.s.preventRedraw=this.s.preventRedraw,this.s.criteria[t].criteria.rebuild(this.s.criteria[t].criteria.getDetails()),this.s.criteria[t].criteria.s.preventRedraw=!1):e instanceof o&&0<e.s.criteria.length?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),e.s.preventRedraw=this.s.preventRedraw,e.redrawContents(),e.s.preventRedraw=!1,this._setGroupListeners(e)):(this.s.criteria.splice(t,1),t--)}this.setupLogic()}}redrawLogic(){for(var t of this.s.criteria)t.criteria instanceof o&&t.criteria.redrawLogic();this.setupLogic()}search(t,e){return"AND"===this.s.logic?this._andSearch(t,e):"OR"!==this.s.logic||this._orSearch(t,e)}setupLogic(){if(this.dom.logicContainer.remove(),this.dom.clear.remove(),this.s.criteria.length<1)this.s.isChild||this.dom.container.trigger("dtsb-destroy"),this.dom.search.css("display","none");else{this.dom.clear.height("0px"),this.dom.logicContainer.append(this.dom.clear),this.s.isChild||this.dom.search.css("display","inline-block"),this.dom.container.prepend(this.dom.logicContainer);for(var t of this.s.criteria)t.criteria instanceof f&&t.criteria.setupButtons();var e=this.dom.container.height()-1;this.dom.logicContainer.width(e),this.dom.clear.height(this.dom.logicContainer.width()),this._setLogicListener(),this._setClearListener()}}setListeners(){this.dom.add.off("click"),this.dom.add.on("click.dtsb",()=>(this.s.isChild||this.dom.container.prepend(this.dom.logicContainer),this.addCriteria(),this.dom.container.trigger("dtsb-add"),this.s.dt.state.save(),!1)),this.dom.search.off("click.dtsb").on("click.dtsb",()=>{this.s.dt.draw()});for(var t of this.s.criteria)t.criteria.setListeners();this._setClearListener(),this._setLogicListener()}addCriteria(t=null){var e,i=null===t?this.s.criteria.length:t.s.index,s=new f(this.s.dt,this.s.opts,this.s.topGroup,i,this.s.depth,this.s.serverData,this.c.liveSearch);null!==t&&(s.c=t.c,s.s=t.s,s.s.depth=this.s.depth,s.classes=t.classes),s.populate();let n=!1;for(let t=0;t<this.s.criteria.length;t++)0===t&&this.s.criteria[t].criteria.s.index>s.s.index?(s.getNode().insertBefore(this.s.criteria[t].criteria.dom.container),n=!0):t<this.s.criteria.length-1&&this.s.criteria[t].criteria.s.index<s.s.index&&this.s.criteria[t+1].criteria.s.index>s.s.index&&(s.getNode().insertAfter(this.s.criteria[t].criteria.dom.container),n=!0);n||s.getNode().insertBefore(this.dom.add),this.s.criteria.push({criteria:s,index:i}),this.s.criteria=this.s.criteria.sort((t,e)=>t.criteria.s.index-e.criteria.s.index);for(e of this.s.criteria)e.criteria instanceof f&&e.criteria.updateArrows(1<this.s.criteria.length);this._setCriteriaListeners(s),s.setListeners(),this.setupLogic()}checkFilled(){for(var t of this.s.criteria)if(t.criteria instanceof f&&t.criteria.s.filled||t.criteria instanceof o&&t.criteria.checkFilled())return!0;return!1}count(){let t=0;for(var e of this.s.criteria)e.criteria instanceof o?t+=e.criteria.count():t++;return t}_addPrevGroup(t){var e=this.s.criteria.length,i=new o(this.s.dt,this.c,this.s.topGroup,e,!0,this.s.depth+1,this.s.serverData);this.s.criteria.push({criteria:i,index:e,logic:i.s.logic}),i.rebuild(t),this.s.criteria[e].criteria=i,this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(i)}_addPrevCriteria(t){var e=this.s.criteria.length,i=new f(this.s.dt,this.s.opts,this.s.topGroup,e,this.s.depth,this.s.serverData);i.populate(),this.s.criteria.push({criteria:i,index:e}),i.s.preventRedraw=this.s.preventRedraw,i.rebuild(t),i.s.preventRedraw=!1,this.s.criteria[e].criteria=i,this.s.preventRedraw||this.s.topGroup.trigger("dtsb-redrawContents")}_andSearch(t,e){if(0!==this.s.criteria.length)for(var i of this.s.criteria)if((!(i.criteria instanceof f)||i.criteria.s.filled)&&!i.criteria.search(t,e))return!1;return!0}_orSearch(t,e){if(0===this.s.criteria.length)return!0;let i=!1;for(var s of this.s.criteria)if(s.criteria instanceof f&&s.criteria.s.filled){if(i=!0,s.criteria.search(t,e))return!0}else if(s.criteria instanceof o&&s.criteria.checkFilled()&&(i=!0,s.criteria.search(t,e)))return!0;return!i}_removeCriteria(e,i=!1){let s;if(this.s.criteria.length<=1&&this.s.isChild)this.destroy();else{let t;for(s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index===e.s.index&&(!i||this.s.criteria[s].criteria instanceof o)&&(t=s);for(void 0!==t&&this.s.criteria.splice(t,1),s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index=s,this.s.criteria[s].criteria.s.index=s}}_setCriteriaListeners(i){i.dom.delete.off("click").on("click.dtsb",()=>{this._removeCriteria(i),i.dom.container.remove();for(var t of this.s.criteria)t.criteria instanceof f&&t.criteria.updateArrows(1<this.s.criteria.length);return i.destroy(),this.s.dt.draw(),this.s.topGroup.trigger("dtsb-redrawContents"),!1}),i.dom.right.off("click").on("click.dtsb",()=>{var t=i.s.index,e=new o(this.s.dt,this.s.opts,this.s.topGroup,i.s.index,!0,this.s.depth+1,this.s.serverData);return e.addCriteria(i),this.s.criteria[t].criteria=e,this.s.criteria[t].logic="AND",this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(e),!1}),i.dom.left.off("click").on("click.dtsb",()=>{this.s.toDrop=new f(this.s.dt,this.s.opts,this.s.topGroup,i.s.index,void 0,this.s.serverData),this.s.toDrop.s=i.s,this.s.toDrop.c=i.c,this.s.toDrop.classes=i.classes,this.s.toDrop.populate();var t=this.s.toDrop.s.index;return this.dom.container.trigger("dtsb-dropCriteria"),i.s.index=t,this._removeCriteria(i),this.s.topGroup.trigger("dtsb-redrawContents"),this.s.dt.draw(),!1})}_setClearListener(){this.dom.clear.off("click").on("click.dtsb",()=>(this.s.isChild?(this.destroy(),this.s.topGroup.trigger("dtsb-redrawContents")):this.dom.container.trigger("dtsb-clearContents"),!1))}_setGroupListeners(e){e.dom.add.off("click").on("click.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),e.dom.container.off("dtsb-add").on("dtsb-add.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),e.dom.container.off("dtsb-destroy").on("dtsb-destroy.dtsb",()=>(this._removeCriteria(e,!0),e.dom.container.remove(),this.setupLogic(),!1)),e.dom.container.off("dtsb-dropCriteria").on("dtsb-dropCriteria.dtsb",()=>{var t=e.s.toDrop;return t.s.index=e.s.index,t.updateArrows(1<this.s.criteria.length),this.addCriteria(t),!1}),e.setListeners()}_setup(){this.setListeners(),this.dom.add.html(this.s.dt.i18n("searchBuilder.add",this.c.i18n.add)),this.dom.search.html(this.s.dt.i18n("searchBuilder.search",this.c.i18n.search)),this.dom.logic.children().eq(0).html("OR"===this.c.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),this.s.logic="OR"===this.c.logic?"OR":"AND",this.c.greyscale&&this.dom.logic.classAdd(this.classes.greyscale),this.dom.logicContainer.append(this.dom.logic).append(this.dom.clear),this.s.isChild&&this.dom.container.append(this.dom.logicContainer),this.dom.container.append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search)}_setLogicListener(){this.dom.logic.off("click").on("click.dtsb",()=>{this._toggleLogic(),this.s.dt.draw();for(var t of this.s.criteria)t.criteria.setListeners()})}_toggleLogic(){"OR"===this.s.logic?(this.s.logic="AND",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd))):"AND"===this.s.logic&&(this.s.logic="OR",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr)))}}if(o.classes={add:"dtsb-add",button:"dtsb-button",clearGroup:"dtsb-clearGroup",greyscale:"dtsb-greyscale",group:"dtsb-group",inputButton:"dtsb-iptbtn",logic:"dtsb-logic",logicContainer:"dtsb-logicContainer",search:"dtsb-search"},o.defaults={columns:"*",conditions:{date:f.dateConditions,html:f.stringConditions,"html-num":f.numConditions,"html-num-fmt":f.numFmtConditions,luxon:f.luxonDateConditions,moment:f.momentDateConditions,num:f.numConditions,"num-fmt":f.numFmtConditions,string:f.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},!m||!m.versionCheck||!m.versionCheck("3"))throw new Error("SearchBuilder requires DataTables 3 or newer");class s{constructor(t,e){t=new m.Api(t);if(this.classes=d.object.assignDeep({},s.classes),this.c=d.object.assignDeep({},s.defaults,e),this.dom={clearAll:g.c("button").attr("type","button").html(t.i18n("searchBuilder.clearAll",this.c.i18n.clearAll)).classAdd(this.classes.clearAll).classAdd(this.classes.button).attr("type","button"),container:g.c("div").classAdd(this.classes.container),title:g.c("div").classAdd(this.classes.title),titleRow:g.c("div").classAdd(this.classes.titleRow),topGroup:void 0},this.s={dt:t,opts:e,search:void 0,serverData:void 0,topGroup:void 0},void 0===t.settings()[0]._searchBuilder)return(t.settings()[0]._searchBuilder=this).s.dt.page.info().serverSide&&(this.s.dt.on("preXhr.dtsb",(t,e,i)=>{var s=this.s.dt.state.loaded();s&&s.searchBuilder&&(i.searchBuilder=this._collapseArray(s.searchBuilder))}),this.s.dt.on("xhr.dtsb",(t,e,i)=>{i&&i.searchBuilder&&i.searchBuilder.options&&(this.s.serverData=i.searchBuilder.options)})),this.s.dt.settings()[0]._bInitComplete?this._setUp():t.one("init.dt",()=>{this._setUp()}),this}getDetails(t=!1){return this.s.topGroup?this.s.topGroup.getDetails(t):{}}getNode(){return this.dom.container}rebuild(t,e=!0){return this.dom.clearAll.trigger("click",!1),null!=t&&(this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.rebuild(t),this.s.topGroup.s.preventRedraw=!1,this._checkClear(),this._updateTitle(this.s.topGroup.count()),this.s.topGroup.redrawContents(),e&&this.s.dt.draw(!1),this.s.topGroup.setListeners()),this}_applyPreDefDefaults(t){void 0!==t.criteria&&void 0===t.logic&&(t.logic="AND");for(let e of t.criteria)void 0!==e.criteria?e=this._applyPreDefDefaults(e):this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===e.data&&(e.dataIdx=t)});return t}_setUp(t=!0){if("function"!=typeof this.s.dt.column().type&&m.Api.registerPlural("columns().types()","column().type()",function(){return this.iterator("column",function(t,e){return t.columns[e].type},1)}),!m.DateTime){let e=this.s.dt.columns().types().toArray();if(void 0===e||e.includes(void 0)||e.includes(null)){e=[];for(var i of this.s.dt.settings()[0].columns)e.push(void 0!==i.searchBuilderType?i.searchBuilderType:i.type)}var s=this.s.dt.columns().toArray();(void 0===e||e.includes(void 0)||e.includes(null))&&(e=this.s.dt.columns().types().toArray());for(let t=0;t<s[0].length;t++){var n=s[0][t],n=e[n];if(("*"===this.c.columns||Array.isArray(this.c.columns)&&this.c.columns.includes(t))&&(n.includes("date")||n.includes("moment")||n.includes("luxon")))throw alert("SearchBuilder Requires DateTime when used with dates."),new Error("SearchBuilder requires DateTime")}}this.s.topGroup=new o(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._setClearListener(),this.s.dt.on("stateSaveParams.dtsb",(t,e,i)=>{i.searchBuilder=this.getDetails(),i.scroller?i.start=this.s.dt.state().start:i.page=this.s.dt.page()}),this.s.dt.on("stateLoadParams.dtsb",(t,e,i)=>{this.rebuild(i.searchBuilder)}),this._build(),this.s.dt.on("preXhr.dtsb",(t,e,i)=>{this.s.dt.page.info().serverSide&&(i.searchBuilder=this._collapseArray(this.getDetails(!0)))}),this.s.dt.on("columns-reordered",()=>{this.rebuild(this.getDetails())}),t&&(null!==(t=this.s.dt.state.loaded())&&void 0!==t.searchBuilder?(this.s.topGroup.rebuild(t.searchBuilder),this.s.topGroup.dom.container.trigger("dtsb-redrawContents"),this.s.dt.page.info().serverSide||(t.page?this.s.dt.page(t.page).draw("page"):this.s.dt.scroller&&t.scroller&&this.s.dt.scroller().scrollToRow(t.scroller.topRow)),this.s.topGroup.setListeners()):!1!==this.c.preDefined&&(this.c.preDefined=this._applyPreDefDefaults(this.c.preDefined),this.rebuild(this.c.preDefined))),this._setEmptyListener(),this.s.dt.state.save()}_collapseArray(e){if(void 0===e.logic)void 0!==e.value&&(e.value.sort((t,e)=>(isNaN(+t)||(t=+t,e=+e),t<e?-1:e<t?1:0)),e.value1=e.value[0],e.value2=e.value[1]);else for(let t=0;t<e.criteria.length;t++)e.criteria[t]=this._collapseArray(e.criteria[t]);return e}_updateTitle(t){this.dom.title.html(this.s.dt.i18n("searchBuilder.title",this.c.i18n.title,t))}_build(){this.dom.clearAll.remove(),this.dom.container.empty();var t=this.s.topGroup.count();this._updateTitle(t),this.dom.titleRow.append(this.dom.title),this.dom.container.append(this.dom.titleRow),this.dom.topGroup=this.s.topGroup.getNode(),this.dom.container.append(this.dom.topGroup),this._setRedrawListener();let s=this.s.dt.table(0).node();m.ext.search.includes(this.s.search)||(this.s.search=(t,e,i)=>t.table!==s||this.s.topGroup.search(e,i),m.ext.search.push(this.s.search)),this.s.dt.on("destroy.dtsb",()=>{this.dom.container.remove(),this.dom.clearAll.remove();let t=m.ext.search.indexOf(this.s.search);for(;-1!==t;)m.ext.search.splice(t,1),t=m.ext.search.indexOf(this.s.search);this.s.dt.off(".dtsb"),g.s(this.s.dt.table().node()).off(".dtsb")})}_checkClear(){0<this.s.topGroup.s.criteria.length?(this.dom.clearAll.insertAfter(this.dom.title.get(0)),this._setClearListener()):this.dom.clearAll.remove()}_filterChanged(t){var e=this.c.filterChanged;"function"==typeof e&&e(t,this.s.dt.i18n("searchBuilder.button",this.c.i18n.button,t))}_setClearListener(){this.dom.clearAll.off("click"),this.dom.clearAll.on("click.dtsb",(t,e)=>(this.s.topGroup=new o(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._build(),!1!==e&&this.s.dt.draw(),this.s.topGroup.setListeners(),this.dom.clearAll.remove(),this._setEmptyListener(),this._filterChanged(0),!1))}_setRedrawListener(){this.s.topGroup.dom.container.off("dtsb-redrawContents"),this.s.topGroup.dom.container.on("dtsb-redrawContents.dtsb",()=>{this._checkClear(),this.s.topGroup.redrawContents(),this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this.s.dt.page.info().serverSide||this.s.dt.draw(),this.s.dt.state.save()}),this.s.topGroup.dom.container.off("dtsb-redrawContents-noDraw"),this.s.topGroup.dom.container.on("dtsb-redrawContents-noDraw.dtsb",()=>{this._checkClear(),this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.redrawContents(),this.s.topGroup.s.preventRedraw=!1,this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-redrawLogic"),this.s.topGroup.dom.container.on("dtsb-redrawLogic.dtsb",()=>{this.s.topGroup.redrawLogic();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-add"),this.s.topGroup.dom.container.on("dtsb-add.dtsb",()=>{var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this._checkClear()}),this.s.dt.on("postEdit.dtsb postCreate.dtsb postRemove.dtsb",()=>{this.s.topGroup.redrawContents()}),this.s.topGroup.dom.container.off("dtsb-clearContents"),this.s.topGroup.dom.container.on("dtsb-clearContents.dtsb",()=>{this._setUp(!1),this._filterChanged(0),this.s.dt.draw()})}_setEmptyListener(){this.s.topGroup.dom.add.on("click.dtsb",()=>{this._checkClear()}),this.s.topGroup.dom.container.on("dtsb-destroy.dtsb",()=>{this.dom.clearAll.remove()})}}function n(t,e){t=new m.Api(t),e=e||t.init().searchBuilder||m.defaults.searchBuilder;return new s(t,e).getNode()}return s.version="2.0.1",s.classes={button:"dtsb-button",clearAll:"dtsb-clearAll",container:"dtsb-searchBuilder",inputButton:"dtsb-iptbtn",title:"dtsb-title",titleRow:"dtsb-titleRow"},s.defaults={columns:"*",conditions:{date:f.dateConditions,html:f.stringConditions,"html-num":f.numConditions,"html-num-fmt":f.numFmtConditions,luxon:f.luxonDateConditions,moment:f.momentDateConditions,num:f.numConditions,"num-fmt":f.numFmtConditions,string:f.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",conditions:{array:{contains:"Contains",empty:"Empty",equals:"Equals",not:"Not",notEmpty:"Not Empty",without:"Without"},date:{after:"After",before:"Before",between:"Between",empty:"Empty",equals:"Equals",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},number:{between:"Between",empty:"Empty",equals:"Equals",gt:"Greater Than",gte:"Greater Than Equal To",lt:"Less Than",lte:"Less Than Equal To",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},string:{contains:"Contains",empty:"Empty",endsWith:"Ends With",equals:"Equals",not:"Not",notContains:"Does Not Contain",notEmpty:"Not Empty",notEndsWith:"Does Not End With",notStartsWith:"Does Not Start With",startsWith:"Starts With"}},data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},m.SearchBuilder=s,m.Group=o,m.Criteria=f,m.ext.searchBuilder={conditions:{}},m.ext.buttons.searchBuilder={action(t,e,i,s){this.popover(s._searchBuilder.getNode(),{align:"container",span:"container"});s=s._searchBuilder.s.topGroup;void 0!==s&&s.dom.container.trigger("dtsb-redrawContents-noDraw"),0===s.s.criteria.length&&g.s("."+o.classes.add.replace(/ /g,".")).trigger("click")},config:{},init(e,t,i){let s=this,n=new m.SearchBuilder(e,i.config);e.on("draw",function(){var t=n.s.topGroup?n.s.topGroup.count():0;s.text(e.i18n("searchBuilder.button",n.c.i18n.button,t))}),s.text(i.text||e.i18n("searchBuilder.button",n.c.i18n.button,0)),i._searchBuilder=n},text:null},i.register("searchBuilder.getDetails()",function(t=!1){var e=this.context[0];return e._searchBuilder?e._searchBuilder.getDetails(t):null}),i.register("searchBuilder.rebuild()",function(t,e=!0){var i=this.context[0];return void 0===i._searchBuilder?null:(i._searchBuilder.rebuild(t,e),this)}),i.register("searchBuilder.container()",function(){var t=this.context[0];return t._searchBuilder?t._searchBuilder.getNode():null}),g.s(t).on("preInit.dt.dtsp",function(t,e){"dt"!==t.namespace||!e.init.searchBuilder&&!m.defaults.searchBuilder||e._searchBuilder||n(e)}),m.ext.feature.push({cFeature:"Q",fnInit:n}),m.feature.register("searchBuilder",n),m});
@@ -1,4 +1,4 @@
1
- /*! SearchBuilder 2.0.0 for DataTables
1
+ /*! SearchBuilder 2.0.1 for DataTables
2
2
  * Copyright (c) SpryMedia Ltd - datatables.net/license
3
3
  */
4
- import DataTable,{util,Dom,Api}from"datatables.net";function moment(){var t=DataTable.use("moment");return t||window.moment}function luxon(){var t=DataTable.use("luxon");return t||window.luxon}class Criteria{constructor(t,i,e,s=0,r=1,n=void 0,a=!1){this.classes=util.object.assignDeep({},Criteria.classes),this.c=util.object.assignDeep({},Criteria.defaults,DataTable.ext.searchBuilder,i);i=this.c.i18n;if(this.s={condition:void 0,conditions:{},data:void 0,dataIdx:-1,dataPoints:[],dateFormat:!1,depth:r,dt:t,filled:!1,index:s,liveSearch:a,origData:void 0,preventRedraw:!1,serverData:n,topGroup:e,type:"",value:[]},this.dom={buttons:Dom.c("div").classAdd(this.classes.buttonContainer),condition:Dom.c("select").prop("disabled",!0).classAdd(this.classes.condition).classAdd(this.classes.dropDown).classAdd(this.classes.italic).attr("autocomplete","hacking"),conditionTitle:Dom.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.condition",i.condition)),container:Dom.c("div").classAdd(this.classes.container),data:Dom.c("select").classAdd(this.classes.data).classAdd(this.classes.dropDown).classAdd(this.classes.italic),dataTitle:Dom.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.data",i.data)),defaultValue:Dom.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.select).classAdd(this.classes.italic),delete:Dom.c("button").html(this.s.dt.i18n("searchBuilder.delete",i.delete)).classAdd(this.classes.delete).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.deleteTitle",i.deleteTitle)).attr("type","button"),inputCont:Dom.c("div").classAdd(this.classes.inputCont),left:Dom.c("button").html(this.s.dt.i18n("searchBuilder.left",i.left)).classAdd(this.classes.left).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.leftTitle",i.leftTitle)).attr("type","button"),right:Dom.c("button").html(this.s.dt.i18n("searchBuilder.right",i.right)).classAdd(this.classes.right).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.rightTitle",i.rightTitle)).attr("type","button"),value:[Dom.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select)],valueTitle:Dom.c("option").attr("value","--valueTitle--").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.value",i.value))},this.c.greyscale){this.dom.data.classAdd(this.classes.greyscale),this.dom.condition.classAdd(this.classes.greyscale),this.dom.defaultValue.classAdd(this.classes.greyscale);for(var o of this.dom.value)o.classAdd(this.classes.greyscale)}return Dom.w.on("resize.dtsb",DataTable.util.throttle(()=>{this.s.topGroup.trigger("dtsb-redrawLogic")})),this._buildCriteria(),this}doSearch(){this.c.liveSearch&&this.s.dt.draw()}static parseNumFmt(t){return+t.replace(/(?!^-)[^0-9.]/g,"")}updateArrows(t=!1){this.dom.container.children().detach(),this.dom.container.append(this.dom.data).append(this.dom.condition).append(this.dom.inputCont),this.setListeners(),void 0!==this.dom.value[0]&&this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted");1<this.s.depth&&this.dom.buttons.append(this.dom.left),(!1===this.c.depthLimit||this.s.depth<this.c.depthLimit)&&t?this.dom.buttons.append(this.dom.right):this.dom.right.remove(),this.dom.buttons.append(this.dom.delete),this.dom.container.append(this.dom.buttons)}destroy(){this.dom.data.off(".dtsb"),this.dom.condition.off(".dtsb"),this.dom.delete.off(".dtsb");for(var t of this.dom.value)t.off(".dtsb");this.dom.container.remove()}search(e,i){var s=this.s.dt.settings()[0],r=this.s.conditions[this.s.condition];if(void 0!==this.s.condition&&void 0!==r){let t=e[this.s.dataIdx];if(this.s.type&&this.s.type.includes("num")&&(""!==s.language.decimal||""!==s.language.thousands)){let i=[e[this.s.dataIdx]];if(""!==s.language.decimal&&(i=e[this.s.dataIdx].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<i.length;t++)i[t]=i[t].replace(s.language.thousands,",");t=i.join(".")}if("filter"!==this.c.orthogonal.search&&(t=s.fastData(i,this.s.dataIdx,"string"==typeof this.c.orthogonal?this.c.orthogonal:this.c.orthogonal.search)),"array"===this.s.type){(t=Array.isArray(t)?t:[t]).sort();for(var n of t)n&&"string"==typeof n&&(n=n.replace(/[\r\n\u2028]/g," "))}else null!==t&&"string"==typeof t&&(t=t.replace(/[\r\n\u2028]/g," "));return null===(t=this.s.type.includes("html")&&"string"==typeof t?t.replace(/(<([^>]+)>)/gi,""):t)&&(t=""),r.search(t,this.s.value,this)}}isReturnSearch(){var t=this.s.dt.settings()[0].init.search;return!!util.is.plainObject(t)&&t.return}getDetails(t=!1){let e;var s=this.s.dt.settings()[0];if(null===this.s.type||!["num","num-fmt","html-num","html-num-fmt"].includes(this.s.type)||""===s.language.decimal&&""===s.language.thousands){if(null!==this.s.type&&t){var i=moment(),r=luxon();if(!this.s.type.includes("date")&&!this.s.type.includes("time")||moment||luxon){if(this.s.type.includes("moment")||this.s.type.includes("datetime")&&moment)for(e=0;e<this.s.value.length;e++)this.s.value[e]&&0<this.s.value[e].length&&i(this.s.value[e],this.s.dateFormat,!0).isValid()&&(this.s.value[e]=i(this.s.value[e],this.s.dateFormat).format("YYYY-MM-DD HH:mm:ss"));else if(this.s.type.includes("luxon")||this.s.type.includes("datetime")&&luxon)for(e=0;e<this.s.value.length;e++)this.s.value[e]&&0<this.s.value[e].length&&null===r.DateTime.fromFormat(this.s.value[e],this.s.dateFormat).invalid&&(this.s.value[e]=r.DateTime.fromFormat(this.s.value[e],this.s.dateFormat).toFormat("yyyy-MM-dd HH:mm:ss"))}else for(e=0;e<this.s.value.length;e++)null===this.s.value[e].match(/^\d{4}-([0]\d|1[0-2])-([0-2]\d|3[01])$/g)&&(this.s.value[e]="")}}else for(e=0;e<this.s.value.length;e++){let i=[this.s.value[e].toString()];if(""!==s.language.decimal&&(i=this.s.value[e].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<i.length;t++)i[t]=i[t].replace(s.language.thousands,",");this.s.value[e]=i.join(".")}if(this.s.type&&this.s.type.includes("num")&&this.s.dt.page.info().serverSide)for(e=0;e<this.s.value.length;e++)this.s.value[e]=this.s.value[e].replace(/[^0-9.\-]/g,"");return{condition:this.s.condition,data:this.s.data,origData:this.s.origData,type:this.s.type,value:this.s.value.map(t=>null!=t?t.toString():t)}}getNode(){return this.dom.container}parseNumber(t){var i=this.s.dt.i18n("decimal",".");return+(t=i&&"."!==i?t.replace(/\./g,"").replace(i,"."):t).replace(/(?!^-)[^0-9.]/g,"")}populate(){this._populateData(),-1!==this.s.dataIdx&&(this._populateCondition(),void 0!==this.s.condition)&&this._populateValue()}rebuild(s){let r=!1,n,i;if(this._populateData(),void 0!==s.data){let i=this.classes.italic,e=this.dom.data;this.dom.data.children("option").each(function(t){t=Dom.s(t);!r&&(t.text()===s.data||s.origData&&t.prop("origData")===s.origData)?(t.prop("selected",!0),e.classRemove(i),r=!0,n=parseInt(t.val(),10)):t.propRemove("selected")})}if(r){this.s.data=s.data,this.s.origData=s.origData,this.s.dataIdx=n,this.c.orthogonal=this._getOptions().orthogonal,this.dom.dataTitle.remove(),this._populateCondition(),this.dom.conditionTitle.remove();let t;var e=this.dom.condition.children("option");for(i=0;i<e.count();i++){var a=e.eq(i);void 0!==s.condition&&a.val()===s.condition&&"string"==typeof s.condition?(a.prop("selected",!0),t=a.val()):a.propRemove("selected")}if(this.s.condition=t,void 0!==this.s.condition){for(this.dom.conditionTitle.propRemove("selected"),this.dom.conditionTitle.remove(),this.dom.condition.classRemove(this.classes.italic),i=0;i<e.count();i++){var o=e.eq(i);o.val()!==this.s.condition&&o.propRemove("selected")}this._populateValue(s)}else this.dom.conditionTitle.prependTo(this.dom.condition).prop("selected",!0)}}setListeners(){this.dom.data.off("change").on("change.dtsb",()=>{this.dom.dataTitle.propRemove("selected");var i=this.dom.data.children("option."+this.classes.option);for(let t=0;t<i.count();t++){var e=i.eq(t);e.val()===this.dom.data.val()?(this.dom.data.classRemove(this.classes.italic),e.prop("selected",!0),this.s.dataIdx=+e.val(),this.s.data=e.text(),this.s.origData=e.prop("origData").toString(),this.c.orthogonal=this._getOptions().orthogonal,this._clearCondition(),this._clearValue(),this._populateCondition(),this.s.filled&&(this.s.filled=!1,this.doSearch(),this.setListeners()),this.s.dt.state.save()):e.propRemove("selected")}}),this.dom.condition.off("change").on("change.dtsb",()=>{this.dom.conditionTitle.propRemove("selected");var i=this.dom.condition.children("option."+this.classes.option);for(let t=0;t<i.count();t++){var e=i.eq(t);if(e.val()===this.dom.condition.val()){this.dom.condition.classRemove(this.classes.italic),e.prop("selected",!0);var s,r,n=e.val();for(s of Object.keys(this.s.conditions))if(s===n){this.s.condition=n;break}this._clearValue(),this._populateValue();for(r of this.dom.value)this.s.filled&&void 0!==r&&this.dom.inputCont.contains(r[0])&&(this.s.filled=!1,this.doSearch(),this.setListeners());(0===this.dom.value.length||1===this.dom.value.length&&void 0===this.dom.value[0])&&this.doSearch()}else e.propRemove("selected")}})}setupButtons(){550<window.innerWidth?(this.dom.container.classRemove(this.classes.vertical),this.dom.buttons.css("left",null),this.dom.buttons.css("top",null)):(this.dom.container.classAdd(this.classes.vertical),this.dom.buttons.css("left",this.dom.data.width("inner")+"px"),this.dom.buttons.css("top",this.dom.data.position().top+"px"))}_buildCriteria(){this.dom.data.append(this.dom.dataTitle),this.dom.condition.append(this.dom.conditionTitle),this.dom.container.append(this.dom.data).append(this.dom.condition),this.dom.inputCont.empty();for(var t of this.dom.value)t.append(this.dom.valueTitle),this.dom.inputCont.append(t);this.dom.buttons.append(this.dom.delete).append(this.dom.right),this.dom.container.append(this.dom.inputCont).append(this.dom.buttons),this.setListeners()}_clearCondition(){this.dom.condition.empty(),this.dom.conditionTitle.prop("selected",!0).attr("disabled","true"),this.dom.condition.prepend(this.dom.conditionTitle).prop("selectedIndex",0),this.s.conditions={},this.s.condition=void 0}_clearValue(){let t;if(void 0!==this.s.condition){if(0<this.dom.value.length&&void 0!==this.dom.value[0])for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);if(this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,Criteria.updateListener)),0<this.dom.value.length&&void 0!==this.dom.value[0]){this.dom.inputCont.empty().append(this.dom.value[0]).insertAfter(this.dom.condition.get(0)),this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted")}}else{for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);this.dom.valueTitle.prop("selected",!0),this.dom.defaultValue.append(this.dom.valueTitle).insertAfter(this.dom.condition.get(0))}this.s.value=[],this.dom.value=[Dom.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select).append(this.dom.valueTitle.clone())]}_getOptions(){var t=this.s.dt;return util.object.assignDeep({},Criteria.defaults,t.settings()[0].columns[this.s.dataIdx].searchBuilder)}_populateCondition(){var t,i=[],e=Object.keys(this.s.conditions).length,s=this.s.dt,r=s.settings()[0].columns,n=+this.dom.data.val();let a,o;if(0===e){this.s.type=s.column(n).type(),void 0!==r&&(null!=(c=r[n]).searchBuilderType?this.s.type=c.searchBuilderType:null==this.s.type&&(this.s.type=c.type)),null==this.s.type&&(this.s.type=s.column(n).type()),this.dom.condition.attrRemove("disabled").empty().append(this.dom.conditionTitle).classAdd(this.classes.italic),this.dom.conditionTitle.prop("selected",!0);var d,l,c=s.settings()[0].language.decimal;""!==c&&this.s.type&&this.s.type.indexOf(c)===this.s.type.length-c.length&&(this.s.type.includes("num-fmt")||this.s.type.includes("num"))&&(this.s.type=this.s.type.replace(c,""));let t;void 0!==this.c.conditions[this.s.type]?t=this.c.conditions[this.s.type]:this.s.type&&"datetime"===this.s.type?(c=DataTable.use("moment"),d=DataTable.use("luxon"),c&&(t=this.c.conditions.moment,this.s.dateFormat=c().creationData().locale._longDateFormat.L),d&&(t=this.c.conditions.luxon,this.s.dateFormat=d.DateTime.DATE_SHORT)):this.s.type&&this.s.type.includes("datetime-")?(t=DataTable.use("moment")?this.c.conditions.moment:this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/datetime-/g,"")):this.s.type&&this.s.type.includes("moment")?(t=this.c.conditions.moment,this.s.dateFormat=this.s.type.replace(/moment-/g,"")):this.s.type&&this.s.type.includes("luxon")?(t=this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/luxon-/g,"")):t=this.c.conditions.string;for(a of Object.keys(t))null!==t[a]&&(s.page.info().serverSide&&t[a].init===Criteria.initSelect&&(l=r[n],this.s.serverData&&this.s.serverData[l.data]?(t[a].init=Criteria.initSelectSSP,t[a].inputValue=Criteria.inputValueSelect,t[a].isInputValid=Criteria.isInputValidSelect):(t[a].init=Criteria.initInput,t[a].inputValue=Criteria.inputValueInput,t[a].isInputValid=Criteria.isInputValidInput)),this.s.conditions[a]=t[a],"function"==typeof(o=t[a].conditionName)&&(o=o(s,this.c.i18n)),i.push(Dom.c("option").text(o).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic)))}else{if(!(0<e))return void this.dom.condition.attr("disabled","true").classAdd(this.classes.italic);this.dom.condition.empty().attrRemove("disabled").classAdd(this.classes.italic);for(a of Object.keys(this.s.conditions)){let t=this.s.conditions[a].conditionName;"function"==typeof t&&(t=t(s,this.c.i18n));var u=Dom.c("option").text(t).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic);void 0!==this.s.condition&&this.s.condition===t&&(u.prop("selected",!0),this.dom.condition.classRemove(this.classes.italic)),i.push(u)}}for(t of i)this.dom.condition.append(t);if(r[n].searchBuilder&&r[n].searchBuilder.defaultCondition){var h=r[n].searchBuilder.defaultCondition;if("number"==typeof h)this.dom.condition.prop("selectedIndex",h),this.dom.condition.trigger("change");else if("string"==typeof h)for(let t=0;t<i.length;t++)for(var p of Object.keys(this.s.conditions))if(("string"==typeof(o=this.s.conditions[p].conditionName)?o:o(s,this.c.i18n))===i[t].text()&&p===h){this.dom.condition.prop("selectedIndex",this.dom.condition.children().get().indexOf(i[t].get(0))).classRemove(this.classes.italic),this.dom.condition.trigger("change"),t=i.length;break}}else this.dom.condition.prop("selectedIndex",0)}_populateData(){var i,e,s=this.s.dt.settings()[0].columns,r=this.s.dt.columns(this.c.columns).indexes().toArray();this.dom.data.empty().append(this.dom.dataTitle);for(let t=0;t<s.length;t++)"*"!==this.c.columns&&!r.includes(t)||(i=s[t],e={index:t,origData:i.data,text:(i.searchBuilderTitle||i.title).replace(/(<([^>]+)>)/gi,"")},this.dom.data.append(Dom.c("option").text(e.text).val(e.index).classAdd(this.classes.option).classAdd(this.classes.notItalic).prop("origData",i.data).prop("selected",this.s.dataIdx===e.index)),this.s.dataIdx!==e.index)||this.dom.dataTitle.propRemove("selected")}_populateValue(i){var t=this.s.filled;let e;this.s.filled=!1,setTimeout(()=>{this.dom.defaultValue.remove()},50);for(let t of this.dom.value)setTimeout(function(){void 0!==t&&t.remove()},50);var s=this.dom.inputCont.children();if(1<s.count())for(e=0;e<s.count();e++)s.eq(e).remove();for(void 0!==i&&this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===i.data&&(this.s.dataIdx=t)}),this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,Criteria.updateListener,void 0!==i?i.value:void 0)),void 0!==i&&void 0!==i.value&&(this.s.value=i.value),this.dom.inputCont.empty(),void 0!==this.dom.value[0]&&this.dom.value[0].appendTo(this.dom.inputCont).trigger("dtsb-inserted"),e=1;e<this.dom.value.length;e++)this.dom.value[e].insertAfter(this.dom.value[e-1].get(0)).trigger("dtsb-inserted");this.s.filled=this.s.conditions[this.s.condition].isInputValid(this.dom.value,this),this.setListeners(),this.s.preventRedraw||t===this.s.filled||(this.s.dt.page.info().serverSide||this.doSearch(),this.setListeners())}_throttle(e,s=200){let r=null,n=null,a=this;return null===s&&(s=200),function(...t){var i=+new Date;null!==r&&i<r+s?clearTimeout(n):r=i,n=setTimeout(function(){r=null,e.apply(a,t)},s)}}}Criteria.classes={button:"dtsb-button",buttonContainer:"dtsb-buttonContainer",condition:"dtsb-condition",container:"dtsb-criteria",data:"dtsb-data",delete:"dtsb-delete",dropDown:"dtsb-dropDown",greyscale:"dtsb-greyscale",input:"dtsb-input",inputCont:"dtsb-inputCont",italic:"dtsb-italic",joiner:"dtsb-joiner",left:"dtsb-left",notItalic:"dtsb-notItalic",option:"dtsb-option",right:"dtsb-right",select:"dtsb-select",value:"dtsb-value",vertical:"dtsb-vertical"},Criteria.initSelect=function(e,t,s=null,i=!1){var r,n,a=parseInt(e.dom.data.val()),o=e.s.dt.rows().indexes().toArray(),d=e.s.dt.settings()[0].fastData;e.dom.valueTitle.prop("selected",!0);let l=Dom.c("select").classAdd(Criteria.classes.value).classAdd(Criteria.classes.dropDown).classAdd(Criteria.classes.italic).classAdd(Criteria.classes.select).append(e.dom.valueTitle).on("change.dtsb",function(){l.classRemove(Criteria.classes.italic),t(e,this)}),c=(e.c.greyscale&&l.classAdd(Criteria.classes.greyscale),[]),u=[];for(r of o){var h=d(r,a,"string"==typeof e.c.orthogonal?e.c.orthogonal:e.c.orthogonal.search),p={filter:"string"==typeof h?h.replace(/[\r\n\u2028]/g," "):h,text:d(r,a,"string"==typeof e.c.orthogonal?e.c.orthogonal:e.c.orthogonal.display)},m=("array"===e.s.type&&(p.filter=Array.isArray(p.filter)?p.filter:[p.filter],p.text=Array.isArray(p.text)?p.text:[p.text]),(t,i)=>{e.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=Dom.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(e.classes.option).classAdd(e.classes.notItalic).html("string"==typeof i?i.replace(/(<([^>]+)>)/gi,""):i),i=t.val();-1===c.indexOf(i)&&(c.push(i),u.push(t),null!==s&&Array.isArray(s[0])&&(s[0]=s[0].sort().join(",")),null!==s)&&t.val()===s[0]&&(t.prop("selected",!0),l.classRemove(Criteria.classes.italic),e.dom.valueTitle.propRemove("selected"))});if(i)for(let t=0;t<p.filter.length;t++)m(p.filter[t],p.text[t]);else m(p.filter,Array.isArray(p.text)?p.text.join(", "):p.text)}u.sort((t,i)=>"array"===e.s.type||"string"===e.s.type||"html"===e.s.type?t.val()<i.val()?-1:t.val()>i.val()?1:0:"num"===e.s.type||"html-num"===e.s.type?+t.val().replace(/(<([^>]+)>)/gi,"")<+i.val().replace(/(<([^>]+)>)/gi,"")?-1:+t.val().replace(/(<([^>]+)>)/gi,"")>+i.val().replace(/(<([^>]+)>)/gi,"")?1:0:"num-fmt"===e.s.type||"html-num-fmt"===e.s.type?+t.val().replace(/[^0-9.]/g,"")<+i.val().replace(/[^0-9.]/g,"")?-1:+t.val().replace(/[^0-9.]/g,"")>+i.val().replace(/[^0-9.]/g,"")?1:0:void 0);for(n of u)l.append(n);return l},Criteria.initSelectSSP=function(e,t,s=null){e.dom.valueTitle.prop("selected",!0);let r=Dom.c("select").classAdd(Criteria.classes.value).classAdd(Criteria.classes.dropDown).classAdd(Criteria.classes.italic).classAdd(Criteria.classes.select).append(e.dom.valueTitle).on("change.dtsb",function(){r.classRemove(Criteria.classes.italic),t(e,this)}),n=(e.c.greyscale&&r.classAdd(Criteria.classes.greyscale),[]);for(var i of e.s.serverData[e.s.origData])((t,i)=>{e.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=Dom.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(e.classes.option).classAdd(e.classes.notItalic).html("string"==typeof i?i.replace(/(<([^>]+)>)/gi,""):i);n.push(t),null!==s&&t.val()===s[0]&&(t.prop("selected",!0),r.classRemove(Criteria.classes.italic),e.dom.valueTitle.propRemove("selected"))})(i.value,i.label);for(var a of n)r.append(a);return r},Criteria.initSelectArray=function(t,i,e=null){return Criteria.initSelect(t,i,e,!0)},Criteria.initInput=function(i,e,t=null){var s=i.s.dt.settings()[0].searchDelay,s=Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("input.dtsb keypress.dtsb",i._throttle(function(t){t=t.keyCode||t.which;return e(i,this,t)},null===s?100:s));return i.c.greyscale&&s.classAdd(Criteria.classes.greyscale),null!==t&&s.val(t[0]),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),s},Criteria.init2Input=function(i,e,t=null){var s=i.s.dt.settings()[0].searchDelay,s=[Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("input.dtsb keypress.dtsb",i._throttle(function(t){t=t.keyCode||t.which;return e(i,this,t)},null===s?100:s)),Dom.c("span").classAdd(i.classes.joiner).html(i.s.dt.i18n("searchBuilder.valueJoiner",i.c.i18n.valueJoiner)),Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("input.dtsb keypress.dtsb",i._throttle(function(t){t=t.keyCode||t.which;return e(i,this,t)},null===s?100:s))];return i.c.greyscale&&(s[0].classAdd(Criteria.classes.greyscale),s[2].classAdd(Criteria.classes.greyscale)),null!==t&&(s[0].val(t[0]),s[2].val(t[1])),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),s},Criteria.initDate=function(e,s,t=null){let r=e.s.dt.settings()[0].searchDelay;var i=e.s.dt.i18n("datetime",{},!1),n=Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("change.dtsb",e._throttle(function(){return s(e,this)},null===r?100:r)).on("input.dtsb keypress.dtsb",i=>{e._throttle(function(){var t=i.keyCode||i.which;return s(e,this,t)},null===r?100:r)}),a=DataTable.use("datetime");return a&&new a(n.get(0),{format:e.s.dateFormat||void 0,i18n:i}),e.c.greyscale&&n.classAdd(Criteria.classes.greyscale),null!==t&&n.val(t[0]),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),n},Criteria.initNoValue=function(t){return t.s.dt.one("draw.dtsb",()=>{t.s.topGroup.trigger("dtsb-redrawLogic")}),[]},Criteria.init2Date=function(e,s,t=null){let r=e.s.dt.settings()[0].searchDelay;var i=e.isReturnSearch(),n=e.s.dt.i18n("datetime",{},!1),i=[Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("change.dtsb",null!==r?DataTable.util.throttle(function(){return s(e,this)},r):()=>{s(e,this)}).on("input.dtsb keypress.dtsb",i=>{DataTable.util.throttle(function(){var t=i.keyCode||i.which;return s(e,this,t)},null===r?0:r)}),Dom.c("span").classAdd(e.classes.joiner).html(e.s.dt.i18n("searchBuilder.valueJoiner",e.c.i18n.valueJoiner)),Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("change.dtsb",null!==r?DataTable.util.throttle(function(){return s(e,this)},r):()=>{s(e,this)}).on("input.dtsb keypress.dtsb",e.c.enterSearch||i||null===r?t=>{t=t.keyCode||t.which;s(e,this,t)}:DataTable.util.throttle(function(){return s(e,this)},r))],a=DataTable.use("datetime");return a&&(new a(i[0],{format:e.s.dateFormat||void 0,i18n:n}),new a(i[2],{format:e.s.dateFormat||void 0,i18n:n})),e.c.greyscale&&(i[0].classAdd(Criteria.classes.greyscale),i[2].classAdd(Criteria.classes.greyscale)),null!==t&&0<t.length&&(i[0].val(t[0]),i[2].val(t[1])),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),i},Criteria.isInputValidSelect=function(t){let i=!0;for(var e of t){var s=e.children("option").get(),r=s.filter(t=>t.selected),e=e.children("option."+Criteria.classes.notItalic).get();r.length===s.length-e.length&&1===r.length&&r[0]===s[0]&&(i=!1)}return i},Criteria.isInputValidInput=function(t){let i=!0;for(var e of t)e.is("input")&&0===e.val().length&&(i=!1);return i},Criteria.inputValueSelect=function(t){var i,e,s=[];for(i of t)i.is("select")&&(e=[].concat(i.children("option").filter(t=>t.selected).data("sbv")).map(t=>util.escapeHtml(t)),s.push(...e));return s},Criteria.inputValueInput=function(t){var i,e=[];for(i of t)i.is("input")&&e.push(util.escapeHtml(i.val()));return e.map(t=>DataTable.util.diacritics(t))},Criteria.updateListener=function(e,s,r){var t=e.s.conditions[e.s.condition];let n;if(e.s.filled=t.isInputValid(e.dom.value,e),e.s.value=t.inputValue(e.dom.value,e),e.s.filled){for(Array.isArray(e.s.value)||(e.s.value=[e.s.value]),n=0;n<e.s.value.length;n++)Array.isArray(e.s.value[n])&&e.s.value[n].sort();let t=null,i=null;for(n=0;n<e.dom.value.length;n++)s===e.dom.value[n][0]&&(t=n,void 0!==s.selectionStart)&&(i=s.selectionStart);(!e.c.enterSearch&&!e.isReturnSearch()||13===r||void 0===r||s.nodeName&&"select"===s.nodeName.toLowerCase())&&e.doSearch(),null!==t&&(e.dom.value[t].classRemove(e.classes.italic),e.dom.value[t].focus(),null!==i)&&e.dom.value[t][0].setSelectionRange(i,i)}else(e.c.enterSearch||e.isReturnSearch())&&13!==r||e.doSearch()},Criteria.dateConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.equals",i.conditions.date.equals)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))===i[0]}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.not",i.conditions.date.not)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))!==i[0]}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.before",i.conditions.date.before)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))<i[0]}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.after",i.conditions.date.after)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))>i[0]}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.between",i.conditions.date.between)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t=t.replace(/(\/|-|,)/g,"-"),i[0]<i[1]?i[0]<=t&&t<=i[1]:i[1]<=t&&t<=i[0]}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notBetween",i.conditions.date.notBetween)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t=t.replace(/(\/|-|,)/g,"-"),i[0]<i[1]?!(i[0]<=t&&t<=i[1]):!(i[1]<=t&&t<=i[0])}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.empty",i.conditions.date.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notEmpty",i.conditions.date.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.momentDateConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.equals",i.conditions.date.equals)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()===moment()(i[0],e.s.dateFormat).valueOf()}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.not",i.conditions.date.not)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()!==moment()(i[0],e.s.dateFormat).valueOf()}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.before",i.conditions.date.before)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()<moment()(i[0],e.s.dateFormat).valueOf()}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.after",i.conditions.date.after)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()>moment()(i[0],e.s.dateFormat).valueOf()}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.between",i.conditions.date.between)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=moment()(t,e.s.dateFormat).valueOf(),s=moment()(i[0],e.s.dateFormat).valueOf(),i=moment()(i[1],e.s.dateFormat).valueOf();return s<i?s<=t&&t<=i:i<=t&&t<=s}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notBetween",i.conditions.date.notBetween)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=moment()(t,e.s.dateFormat).valueOf(),s=moment()(i[0],e.s.dateFormat).valueOf(),i=moment()(i[1],e.s.dateFormat).valueOf();return s<i?!(+s<=+t&&+t<=+i):!(+i<=+t&&+t<=+s)}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.empty",i.conditions.date.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notEmpty",i.conditions.date.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.luxonDateConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.equals",i.conditions.date.equals)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts===luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.not",i.conditions.date.not)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts!==luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.before",i.conditions.date.before)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts<luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.after",i.conditions.date.after)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts>luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.between",i.conditions.date.between)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=luxon().DateTime.fromFormat(t,e.s.dateFormat).ts,s=luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts,i=luxon().DateTime.fromFormat(i[1],e.s.dateFormat).ts;return s<i?s<=t&&t<=i:i<=t&&t<=s}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notBetween",i.conditions.date.notBetween)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=luxon().DateTime.fromFormat(t,e.s.dateFormat).ts,s=luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts,i=luxon().DateTime.fromFormat(i[1],e.s.dateFormat).ts;return s<i?!(+s<=+t&&+t<=+i):!(+i<=+t&&+t<=+s)}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.empty",i.conditions.date.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notEmpty",i.conditions.date.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.numConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.equals",i.conditions.number.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return+t==+i[0]}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.not",i.conditions.number.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return+t!=+i[0]}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lt",i.conditions.number.lt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t<+i[0]}},"<=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lte",i.conditions.number.lte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t<=+i[0]}},">=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gte",i.conditions.number.gte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t>=+i[0]}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gt",i.conditions.number.gt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t>+i[0]}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.between",i.conditions.number.between)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+i[0]<+i[1]?+i[0]<=+t&&+t<=+i[1]:+i[1]<=+t&&+t<=+i[0]}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notBetween",i.conditions.number.notBetween)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+i[0]<+i[1]?!(+i[0]<=+t&&+t<=+i[1]):!(+i[1]<=+t&&+t<=+i[0])}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.empty",i.conditions.number.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notEmpty",i.conditions.number.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.numFmtConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.equals",i.conditions.number.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i,e){return e.parseNumber(t)===e.parseNumber(i[0])}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.not",i.conditions.number.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i,e){return e.parseNumber(t)!==e.parseNumber(i[0])}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lt",i.conditions.number.lt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)<e.parseNumber(i[0])}},"<=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lte",i.conditions.number.lte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)<=e.parseNumber(i[0])}},">=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gte",i.conditions.number.gte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)>=e.parseNumber(i[0])}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gt",i.conditions.number.gt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)>e.parseNumber(i[0])}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.between",i.conditions.number.between)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=e.parseNumber(t),s=e.parseNumber(i[0]),e=e.parseNumber(i[1]);return+s<+e?+s<=+t&&+t<=+e:+e<=+t&&+t<=+s}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notBetween",i.conditions.number.notBetween)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=e.parseNumber(t),s=e.parseNumber(i[0]),e=e.parseNumber(i[1]);return+s<+e?!(+s<=+t&&+t<=+e):!(+e<=+t&&+t<=+s)}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.empty",i.conditions.number.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notEmpty",i.conditions.number.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.stringConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.equals",i.conditions.string.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return t===i[0]}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.not",i.conditions.string.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidInput,search(t,i){return t!==i[0]}},starts:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.startsWith",i.conditions.string.startsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return 0===t.toLowerCase().indexOf(i[0].toLowerCase())}},"!starts":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notStartsWith",i.conditions.string.notStartsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return 0!==t.toLowerCase().indexOf(i[0].toLowerCase())}},contains:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.contains",i.conditions.string.contains)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t.toLowerCase().includes(i[0].toLowerCase())}},"!contains":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notContains",i.conditions.string.notContains)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return!t.toLowerCase().includes(i[0].toLowerCase())}},ends:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.endsWith",i.conditions.string.endsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t.toLowerCase().endsWith(i[0].toLowerCase())}},"!ends":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notEndsWith",i.conditions.string.notEndsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return!t.toLowerCase().endsWith(i[0].toLowerCase())}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.empty",i.conditions.string.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notEmpty",i.conditions.string.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.arrayConditions={contains:{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.contains",i.conditions.array.contains)},init:Criteria.initSelectArray,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return t.includes(i[0])}},without:{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.without",i.conditions.array.without)},init:Criteria.initSelectArray,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return-1===t.indexOf(i[0])}},"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.equals",i.conditions.array.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(i,e){if(i.length!==e.length)return!1;e.sort();for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!1;return!0}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.not",i.conditions.array.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(i,e){if(i.length!==e.length)return!0;e.sort();for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!0;return!1}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.empty",i.conditions.array.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.notEmpty",i.conditions.array.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null!=t&&0!==t.length}}},Criteria.defaults={columns:"*",conditions:{array:Criteria.arrayConditions,date:Criteria.dateConditions,html:Criteria.stringConditions,"html-num":Criteria.numConditions,"html-num-fmt":Criteria.numFmtConditions,luxon:Criteria.luxonDateConditions,moment:Criteria.momentDateConditions,num:Criteria.numConditions,"num-fmt":Criteria.numFmtConditions,string:Criteria.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},liveSearch:!0,logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1};class Group{constructor(t,i,e,s=0,r=!1,n=1,a=void 0){return this.classes=DataTable.util.object.assignDeep({},Group.classes),this.c=DataTable.util.object.assignDeep({},Group.defaults,i),this.s={criteria:[],depth:n,dt:t,index:s,isChild:r,logic:void 0,opts:i,preventRedraw:!1,serverData:a,toDrop:void 0,topGroup:e},this.dom={add:Dom.c("button").classAdd(this.classes.add).classAdd(this.classes.button).attr("type","button"),clear:Dom.c("button").html("&times").classAdd(this.classes.button).classAdd(this.classes.clearGroup).attr("type","button"),container:Dom.c("div").classAdd(this.classes.group),logic:Dom.c("button").append(Dom.c("div")).classAdd(this.classes.logic).classAdd(this.classes.button).attr("type","button"),logicContainer:Dom.c("div").classAdd(this.classes.logicContainer),search:Dom.c("button").classAdd(this.classes.search).classAdd(this.classes.button).attr("type","button").css("display","none")},void 0===this.s.topGroup&&(this.s.topGroup=this.dom.container),this._setup(),this}destroy(){this.dom.add.off(".dtsb"),this.dom.logic.off(".dtsb"),this.dom.search.off(".dtsb"),this.dom.container.trigger("dtsb-destroy"),this.dom.container.remove(),this.s.criteria=[]}getDetails(t=!1){if(0===this.s.criteria.length)return{};var i,e={criteria:[],logic:this.s.logic};for(i of this.s.criteria)e.criteria.push(i.criteria.getDetails(t));return e}getNode(){return this.dom.container}rebuild(t){let i;if(!(null==t.criteria||Array.isArray(t.criteria)&&0===t.criteria.length)){if(this.s.logic=t.logic,this.dom.logic.children().eq(0).html("OR"===this.s.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),Array.isArray(t.criteria))for(i of t.criteria)void 0!==i.logic?this._addPrevGroup(i):void 0===i.logic&&this._addPrevCriteria(i);for(i of this.s.criteria)i.criteria instanceof Criteria&&(i.criteria.updateArrows(1<this.s.criteria.length),this._setCriteriaListeners(i.criteria))}}redrawContents(){if(!this.s.preventRedraw){this.dom.container.children().detach(),this.dom.container.append(this.dom.logicContainer).append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search),this.s.criteria.sort(function(t,i){return t.criteria.s.index<i.criteria.s.index?-1:t.criteria.s.index>i.criteria.s.index?1:0}),this.setListeners();for(let t=0;t<this.s.criteria.length;t++){var i=this.s.criteria[t].criteria;i instanceof Criteria?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),this._setCriteriaListeners(i),this.s.criteria[t].criteria.s.preventRedraw=this.s.preventRedraw,this.s.criteria[t].criteria.rebuild(this.s.criteria[t].criteria.getDetails()),this.s.criteria[t].criteria.s.preventRedraw=!1):i instanceof Group&&0<i.s.criteria.length?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),i.s.preventRedraw=this.s.preventRedraw,i.redrawContents(),i.s.preventRedraw=!1,this._setGroupListeners(i)):(this.s.criteria.splice(t,1),t--)}this.setupLogic()}}redrawLogic(){for(var t of this.s.criteria)t.criteria instanceof Group&&t.criteria.redrawLogic();this.setupLogic()}search(t,i){return"AND"===this.s.logic?this._andSearch(t,i):"OR"!==this.s.logic||this._orSearch(t,i)}setupLogic(){if(this.dom.logicContainer.remove(),this.dom.clear.remove(),this.s.criteria.length<1)this.s.isChild||this.dom.container.trigger("dtsb-destroy"),this.dom.search.css("display","none");else{this.dom.clear.height("0px"),this.dom.logicContainer.append(this.dom.clear),this.s.isChild||this.dom.search.css("display","inline-block"),this.dom.container.prepend(this.dom.logicContainer);for(var t of this.s.criteria)t.criteria instanceof Criteria&&t.criteria.setupButtons();var i=this.dom.container.height()-1;this.dom.logicContainer.width(i),this.dom.clear.height(this.dom.logicContainer.width()),this._setLogicListener(),this._setClearListener()}}setListeners(){this.dom.add.off("click"),this.dom.add.on("click.dtsb",()=>(this.s.isChild||this.dom.container.prepend(this.dom.logicContainer),this.addCriteria(),this.dom.container.trigger("dtsb-add"),this.s.dt.state.save(),!1)),this.dom.search.off("click.dtsb").on("click.dtsb",()=>{this.s.dt.draw()});for(var t of this.s.criteria)t.criteria.setListeners();this._setClearListener(),this._setLogicListener()}addCriteria(t=null){var i,e=null===t?this.s.criteria.length:t.s.index,s=new Criteria(this.s.dt,this.s.opts,this.s.topGroup,e,this.s.depth,this.s.serverData,this.c.liveSearch);null!==t&&(s.c=t.c,s.s=t.s,s.s.depth=this.s.depth,s.classes=t.classes),s.populate();let r=!1;for(let t=0;t<this.s.criteria.length;t++)0===t&&this.s.criteria[t].criteria.s.index>s.s.index?(s.getNode().insertBefore(this.s.criteria[t].criteria.dom.container),r=!0):t<this.s.criteria.length-1&&this.s.criteria[t].criteria.s.index<s.s.index&&this.s.criteria[t+1].criteria.s.index>s.s.index&&(s.getNode().insertAfter(this.s.criteria[t].criteria.dom.container),r=!0);r||s.getNode().insertBefore(this.dom.add),this.s.criteria.push({criteria:s,index:e}),this.s.criteria=this.s.criteria.sort((t,i)=>t.criteria.s.index-i.criteria.s.index);for(i of this.s.criteria)i.criteria instanceof Criteria&&i.criteria.updateArrows(1<this.s.criteria.length);this._setCriteriaListeners(s),s.setListeners(),this.setupLogic()}checkFilled(){for(var t of this.s.criteria)if(t.criteria instanceof Criteria&&t.criteria.s.filled||t.criteria instanceof Group&&t.criteria.checkFilled())return!0;return!1}count(){let t=0;for(var i of this.s.criteria)i.criteria instanceof Group?t+=i.criteria.count():t++;return t}_addPrevGroup(t){var i=this.s.criteria.length,e=new Group(this.s.dt,this.c,this.s.topGroup,i,!0,this.s.depth+1,this.s.serverData);this.s.criteria.push({criteria:e,index:i,logic:e.s.logic}),e.rebuild(t),this.s.criteria[i].criteria=e,this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(e)}_addPrevCriteria(t){var i=this.s.criteria.length,e=new Criteria(this.s.dt,this.s.opts,this.s.topGroup,i,this.s.depth,this.s.serverData);e.populate(),this.s.criteria.push({criteria:e,index:i}),e.s.preventRedraw=this.s.preventRedraw,e.rebuild(t),e.s.preventRedraw=!1,this.s.criteria[i].criteria=e,this.s.preventRedraw||this.s.topGroup.trigger("dtsb-redrawContents")}_andSearch(t,i){if(0!==this.s.criteria.length)for(var e of this.s.criteria)if((!(e.criteria instanceof Criteria)||e.criteria.s.filled)&&!e.criteria.search(t,i))return!1;return!0}_orSearch(t,i){if(0===this.s.criteria.length)return!0;let e=!1;for(var s of this.s.criteria)if(s.criteria instanceof Criteria&&s.criteria.s.filled){if(e=!0,s.criteria.search(t,i))return!0}else if(s.criteria instanceof Group&&s.criteria.checkFilled()&&(e=!0,s.criteria.search(t,i)))return!0;return!e}_removeCriteria(i,e=!1){let s;if(this.s.criteria.length<=1&&this.s.isChild)this.destroy();else{let t;for(s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index===i.s.index&&(!e||this.s.criteria[s].criteria instanceof Group)&&(t=s);for(void 0!==t&&this.s.criteria.splice(t,1),s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index=s,this.s.criteria[s].criteria.s.index=s}}_setCriteriaListeners(e){e.dom.delete.off("click").on("click.dtsb",()=>{this._removeCriteria(e),e.dom.container.remove();for(var t of this.s.criteria)t.criteria instanceof Criteria&&t.criteria.updateArrows(1<this.s.criteria.length);return e.destroy(),this.s.dt.draw(),this.s.topGroup.trigger("dtsb-redrawContents"),!1}),e.dom.right.off("click").on("click.dtsb",()=>{var t=e.s.index,i=new Group(this.s.dt,this.s.opts,this.s.topGroup,e.s.index,!0,this.s.depth+1,this.s.serverData);return i.addCriteria(e),this.s.criteria[t].criteria=i,this.s.criteria[t].logic="AND",this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(i),!1}),e.dom.left.off("click").on("click.dtsb",()=>{this.s.toDrop=new Criteria(this.s.dt,this.s.opts,this.s.topGroup,e.s.index,void 0,this.s.serverData),this.s.toDrop.s=e.s,this.s.toDrop.c=e.c,this.s.toDrop.classes=e.classes,this.s.toDrop.populate();var t=this.s.toDrop.s.index;return this.dom.container.trigger("dtsb-dropCriteria"),e.s.index=t,this._removeCriteria(e),this.s.topGroup.trigger("dtsb-redrawContents"),this.s.dt.draw(),!1})}_setClearListener(){this.dom.clear.off("click").on("click.dtsb",()=>(this.s.isChild?(this.destroy(),this.s.topGroup.trigger("dtsb-redrawContents")):this.dom.container.trigger("dtsb-clearContents"),!1))}_setGroupListeners(i){i.dom.add.off("click").on("click.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),i.dom.container.off("dtsb-add").on("dtsb-add.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),i.dom.container.off("dtsb-destroy").on("dtsb-destroy.dtsb",()=>(this._removeCriteria(i,!0),i.dom.container.remove(),this.setupLogic(),!1)),i.dom.container.off("dtsb-dropCriteria").on("dtsb-dropCriteria.dtsb",()=>{var t=i.s.toDrop;return t.s.index=i.s.index,t.updateArrows(1<this.s.criteria.length),this.addCriteria(t),!1}),i.setListeners()}_setup(){this.setListeners(),this.dom.add.html(this.s.dt.i18n("searchBuilder.add",this.c.i18n.add)),this.dom.search.html(this.s.dt.i18n("searchBuilder.search",this.c.i18n.search)),this.dom.logic.children().eq(0).html("OR"===this.c.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),this.s.logic="OR"===this.c.logic?"OR":"AND",this.c.greyscale&&this.dom.logic.classAdd(this.classes.greyscale),this.dom.logicContainer.append(this.dom.logic).append(this.dom.clear),this.s.isChild&&this.dom.container.append(this.dom.logicContainer),this.dom.container.append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search)}_setLogicListener(){this.dom.logic.off("click").on("click.dtsb",()=>{this._toggleLogic(),this.s.dt.draw();for(var t of this.s.criteria)t.criteria.setListeners()})}_toggleLogic(){"OR"===this.s.logic?(this.s.logic="AND",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd))):"AND"===this.s.logic&&(this.s.logic="OR",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr)))}}if(Group.classes={add:"dtsb-add",button:"dtsb-button",clearGroup:"dtsb-clearGroup",greyscale:"dtsb-greyscale",group:"dtsb-group",inputButton:"dtsb-iptbtn",logic:"dtsb-logic",logicContainer:"dtsb-logicContainer",search:"dtsb-search"},Group.defaults={columns:"*",conditions:{date:Criteria.dateConditions,html:Criteria.stringConditions,"html-num":Criteria.numConditions,"html-num-fmt":Criteria.numFmtConditions,luxon:Criteria.luxonDateConditions,moment:Criteria.momentDateConditions,num:Criteria.numConditions,"num-fmt":Criteria.numFmtConditions,string:Criteria.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},!DataTable||!DataTable.versionCheck||!DataTable.versionCheck("3"))throw new Error("SearchBuilder requires DataTables 3 or newer");class SearchBuilder{constructor(t,i){t=new DataTable.Api(t);if(this.classes=util.object.assignDeep({},SearchBuilder.classes),this.c=util.object.assignDeep({},SearchBuilder.defaults,i),this.dom={clearAll:Dom.c("button").attr("type","button").html(t.i18n("searchBuilder.clearAll",this.c.i18n.clearAll)).classAdd(this.classes.clearAll).classAdd(this.classes.button).attr("type","button"),container:Dom.c("div").classAdd(this.classes.container),title:Dom.c("div").classAdd(this.classes.title),titleRow:Dom.c("div").classAdd(this.classes.titleRow),topGroup:void 0},this.s={dt:t,opts:i,search:void 0,serverData:void 0,topGroup:void 0},void 0===t.settings()[0]._searchBuilder)return(t.settings()[0]._searchBuilder=this).s.dt.page.info().serverSide&&(this.s.dt.on("preXhr.dtsb",(t,i,e)=>{var s=this.s.dt.state.loaded();s&&s.searchBuilder&&(e.searchBuilder=this._collapseArray(s.searchBuilder))}),this.s.dt.on("xhr.dtsb",(t,i,e)=>{e&&e.searchBuilder&&e.searchBuilder.options&&(this.s.serverData=e.searchBuilder.options)})),this.s.dt.settings()[0]._bInitComplete?this._setUp():t.one("init.dt",()=>{this._setUp()}),this}getDetails(t=!1){return this.s.topGroup?this.s.topGroup.getDetails(t):{}}getNode(){return this.dom.container}rebuild(t,i=!0){return this.dom.clearAll.trigger("click",!1),null!=t&&(this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.rebuild(t),this.s.topGroup.s.preventRedraw=!1,this._checkClear(),this._updateTitle(this.s.topGroup.count()),this.s.topGroup.redrawContents(),i&&this.s.dt.draw(!1),this.s.topGroup.setListeners()),this}_applyPreDefDefaults(t){void 0!==t.criteria&&void 0===t.logic&&(t.logic="AND");for(let i of t.criteria)void 0!==i.criteria?i=this._applyPreDefDefaults(i):this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===i.data&&(i.dataIdx=t)});return t}_setUp(t=!0){if("function"!=typeof this.s.dt.column().type&&DataTable.Api.registerPlural("columns().types()","column().type()",function(){return this.iterator("column",function(t,i){return t.columns[i].type},1)}),!DataTable.DateTime){let i=this.s.dt.columns().types().toArray();if(void 0===i||i.includes(void 0)||i.includes(null)){i=[];for(var e of this.s.dt.settings()[0].columns)i.push(void 0!==e.searchBuilderType?e.searchBuilderType:e.type)}var s=this.s.dt.columns().toArray();(void 0===i||i.includes(void 0)||i.includes(null))&&(i=this.s.dt.columns().types().toArray());for(let t=0;t<s[0].length;t++){var r=s[0][t],r=i[r];if(("*"===this.c.columns||Array.isArray(this.c.columns)&&this.c.columns.includes(t))&&(r.includes("date")||r.includes("moment")||r.includes("luxon")))throw alert("SearchBuilder Requires DateTime when used with dates."),new Error("SearchBuilder requires DateTime")}}this.s.topGroup=new Group(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._setClearListener(),this.s.dt.on("stateSaveParams.dtsb",(t,i,e)=>{e.searchBuilder=this.getDetails(),e.scroller?e.start=this.s.dt.state().start:e.page=this.s.dt.page()}),this.s.dt.on("stateLoadParams.dtsb",(t,i,e)=>{this.rebuild(e.searchBuilder)}),this._build(),this.s.dt.on("preXhr.dtsb",(t,i,e)=>{this.s.dt.page.info().serverSide&&(e.searchBuilder=this._collapseArray(this.getDetails(!0)))}),this.s.dt.on("columns-reordered",()=>{this.rebuild(this.getDetails())}),t&&(null!==(t=this.s.dt.state.loaded())&&void 0!==t.searchBuilder?(this.s.topGroup.rebuild(t.searchBuilder),this.s.topGroup.dom.container.trigger("dtsb-redrawContents"),this.s.dt.page.info().serverSide||(t.page?this.s.dt.page(t.page).draw("page"):this.s.dt.scroller&&t.scroller&&this.s.dt.scroller().scrollToRow(t.scroller.topRow)),this.s.topGroup.setListeners()):!1!==this.c.preDefined&&(this.c.preDefined=this._applyPreDefDefaults(this.c.preDefined),this.rebuild(this.c.preDefined))),this._setEmptyListener(),this.s.dt.state.save()}_collapseArray(i){if(void 0===i.logic)void 0!==i.value&&(i.value.sort((t,i)=>(isNaN(+t)||(t=+t,i=+i),t<i?-1:i<t?1:0)),i.value1=i.value[0],i.value2=i.value[1]);else for(let t=0;t<i.criteria.length;t++)i.criteria[t]=this._collapseArray(i.criteria[t]);return i}_updateTitle(t){this.dom.title.html(this.s.dt.i18n("searchBuilder.title",this.c.i18n.title,t))}_build(){this.dom.clearAll.remove(),this.dom.container.empty();var t=this.s.topGroup.count();this._updateTitle(t),this.dom.titleRow.append(this.dom.title),this.dom.container.append(this.dom.titleRow),this.dom.topGroup=this.s.topGroup.getNode(),this.dom.container.append(this.dom.topGroup),this._setRedrawListener();let s=this.s.dt.table(0).node();DataTable.ext.search.includes(this.s.search)||(this.s.search=(t,i,e)=>t.table!==s||this.s.topGroup.search(i,e),DataTable.ext.search.push(this.s.search)),this.s.dt.on("destroy.dtsb",()=>{this.dom.container.remove(),this.dom.clearAll.remove();let t=DataTable.ext.search.indexOf(this.s.search);for(;-1!==t;)DataTable.ext.search.splice(t,1),t=DataTable.ext.search.indexOf(this.s.search);this.s.dt.off(".dtsb"),Dom.s(this.s.dt.table().node()).off(".dtsb")})}_checkClear(){0<this.s.topGroup.s.criteria.length?(this.dom.clearAll.insertAfter(this.dom.title.get(0)),this._setClearListener()):this.dom.clearAll.remove()}_filterChanged(t){var i=this.c.filterChanged;"function"==typeof i&&i(t,this.s.dt.i18n("searchBuilder.button",this.c.i18n.button,t))}_setClearListener(){this.dom.clearAll.off("click"),this.dom.clearAll.on("click.dtsb",(t,i)=>(this.s.topGroup=new Group(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._build(),!1!==i&&this.s.dt.draw(),this.s.topGroup.setListeners(),this.dom.clearAll.remove(),this._setEmptyListener(),this._filterChanged(0),!1))}_setRedrawListener(){this.s.topGroup.dom.container.off("dtsb-redrawContents"),this.s.topGroup.dom.container.on("dtsb-redrawContents.dtsb",()=>{this._checkClear(),this.s.topGroup.redrawContents(),this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this.s.dt.page.info().serverSide||this.s.dt.draw(),this.s.dt.state.save()}),this.s.topGroup.dom.container.off("dtsb-redrawContents-noDraw"),this.s.topGroup.dom.container.on("dtsb-redrawContents-noDraw.dtsb",()=>{this._checkClear(),this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.redrawContents(),this.s.topGroup.s.preventRedraw=!1,this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-redrawLogic"),this.s.topGroup.dom.container.on("dtsb-redrawLogic.dtsb",()=>{this.s.topGroup.redrawLogic();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-add"),this.s.topGroup.dom.container.on("dtsb-add.dtsb",()=>{var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this._checkClear()}),this.s.dt.on("postEdit.dtsb postCreate.dtsb postRemove.dtsb",()=>{this.s.topGroup.redrawContents()}),this.s.topGroup.dom.container.off("dtsb-clearContents"),this.s.topGroup.dom.container.on("dtsb-clearContents.dtsb",()=>{this._setUp(!1),this._filterChanged(0),this.s.dt.draw()})}_setEmptyListener(){this.s.topGroup.dom.add.on("click.dtsb",()=>{this._checkClear()}),this.s.topGroup.dom.container.on("dtsb-destroy.dtsb",()=>{this.dom.clearAll.remove()})}}function _init(t,i){t=new DataTable.Api(t),i=i||t.init().searchBuilder||DataTable.defaults.searchBuilder;return new SearchBuilder(t,i).getNode()}SearchBuilder.version="2.0.0",SearchBuilder.classes={button:"dtsb-button",clearAll:"dtsb-clearAll",container:"dtsb-searchBuilder",inputButton:"dtsb-iptbtn",title:"dtsb-title",titleRow:"dtsb-titleRow"},SearchBuilder.defaults={columns:"*",conditions:{date:Criteria.dateConditions,html:Criteria.stringConditions,"html-num":Criteria.numConditions,"html-num-fmt":Criteria.numFmtConditions,luxon:Criteria.luxonDateConditions,moment:Criteria.momentDateConditions,num:Criteria.numConditions,"num-fmt":Criteria.numFmtConditions,string:Criteria.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",conditions:{array:{contains:"Contains",empty:"Empty",equals:"Equals",not:"Not",notEmpty:"Not Empty",without:"Without"},date:{after:"After",before:"Before",between:"Between",empty:"Empty",equals:"Equals",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},number:{between:"Between",empty:"Empty",equals:"Equals",gt:"Greater Than",gte:"Greater Than Equal To",lt:"Less Than",lte:"Less Than Equal To",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},string:{contains:"Contains",empty:"Empty",endsWith:"Ends With",equals:"Equals",not:"Not",notContains:"Does Not Contain",notEmpty:"Not Empty",notEndsWith:"Does Not End With",notStartsWith:"Does Not Start With",startsWith:"Starts With"}},data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},DataTable.SearchBuilder=SearchBuilder,DataTable.Group=Group,DataTable.Criteria=Criteria,DataTable.ext.searchBuilder={conditions:{}},DataTable.ext.buttons.searchBuilder={action(t,i,e,s){this.popover(s._searchBuilder.getNode(),{align:"container",span:"container"});s=s._searchBuilder.s.topGroup;void 0!==s&&s.dom.container.trigger("dtsb-redrawContents-noDraw"),0===s.s.criteria.length&&Dom.s("."+Group.classes.add.replace(/ /g,".")).trigger("click")},config:{},init(i,t,e){let s=this,r=new DataTable.SearchBuilder(i,e.config);i.on("draw",function(){var t=r.s.topGroup?r.s.topGroup.count():0;s.text(i.i18n("searchBuilder.button",r.c.i18n.button,t))}),s.text(e.text||i.i18n("searchBuilder.button",r.c.i18n.button,0)),e._searchBuilder=r},text:null},Api.register("searchBuilder.getDetails()",function(t=!1){var i=this.context[0];return i._searchBuilder?i._searchBuilder.getDetails(t):null}),Api.register("searchBuilder.rebuild()",function(t,i=!0){var e=this.context[0];return void 0===e._searchBuilder?null:(e._searchBuilder.rebuild(t,i),this)}),Api.register("searchBuilder.container()",function(){var t=this.context[0];return t._searchBuilder?t._searchBuilder.getNode():null}),Dom.s(document).on("preInit.dt.dtsp",function(t,i){"dt"!==t.namespace||!i.init.searchBuilder&&!DataTable.defaults.searchBuilder||i._searchBuilder||_init(i)}),DataTable.ext.feature.push({cFeature:"Q",fnInit:_init}),DataTable.feature.register("searchBuilder",_init);export default DataTable;
4
+ import DataTable,{util,Dom,Api}from"datatables.net";function moment(){var t=DataTable.use("moment");return t||window.moment}function luxon(){var t=DataTable.use("luxon");return t||window.luxon}class Criteria{constructor(t,i,e,s=0,r=1,n=void 0,a=!1){this.classes=util.object.assignDeep({},Criteria.classes),this.c=util.object.assignDeep({},Criteria.defaults,DataTable.ext.searchBuilder,i);i=this.c.i18n;if(this.s={condition:void 0,conditions:{},data:void 0,dataIdx:-1,dataPoints:[],dateFormat:!1,depth:r,dt:t,filled:!1,index:s,liveSearch:a,origData:void 0,preventRedraw:!1,serverData:n,topGroup:e,type:"",value:[]},this.dom={buttons:Dom.c("div").classAdd(this.classes.buttonContainer),condition:Dom.c("select").prop("disabled",!0).classAdd(this.classes.condition).classAdd(this.classes.dropDown).classAdd(this.classes.italic).attr("autocomplete","hacking"),conditionTitle:Dom.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.condition",i.condition)),container:Dom.c("div").classAdd(this.classes.container),data:Dom.c("select").classAdd(this.classes.data).classAdd(this.classes.dropDown).classAdd(this.classes.italic),dataTitle:Dom.c("option").attr("value","").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.data",i.data)),defaultValue:Dom.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.select).classAdd(this.classes.italic),delete:Dom.c("button").html(this.s.dt.i18n("searchBuilder.delete",i.delete)).classAdd(this.classes.delete).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.deleteTitle",i.deleteTitle)).attr("type","button"),inputCont:Dom.c("div").classAdd(this.classes.inputCont),left:Dom.c("button").html(this.s.dt.i18n("searchBuilder.left",i.left)).classAdd(this.classes.left).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.leftTitle",i.leftTitle)).attr("type","button"),right:Dom.c("button").html(this.s.dt.i18n("searchBuilder.right",i.right)).classAdd(this.classes.right).classAdd(this.classes.button).attr("title",this.s.dt.i18n("searchBuilder.rightTitle",i.rightTitle)).attr("type","button"),value:[Dom.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select)],valueTitle:Dom.c("option").attr("value","--valueTitle--").prop("disabled",!0).prop("selected",!0).prop("hidden",!0).html(this.s.dt.i18n("searchBuilder.value",i.value))},this.c.greyscale){this.dom.data.classAdd(this.classes.greyscale),this.dom.condition.classAdd(this.classes.greyscale),this.dom.defaultValue.classAdd(this.classes.greyscale);for(var o of this.dom.value)o.classAdd(this.classes.greyscale)}return Dom.w.on("resize.dtsb",DataTable.util.throttle(()=>{this.s.topGroup.trigger("dtsb-redrawLogic")})),this._buildCriteria(),this}doSearch(){this.c.liveSearch&&this.s.dt.draw()}static parseNumFmt(t){return+t.replace(/(?!^-)[^0-9.]/g,"")}updateArrows(t=!1){this.dom.container.children().detach(),this.dom.container.append(this.dom.data).append(this.dom.condition).append(this.dom.inputCont),this.setListeners(),void 0!==this.dom.value[0]&&this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted");1<this.s.depth&&this.dom.buttons.append(this.dom.left),(!1===this.c.depthLimit||this.s.depth<this.c.depthLimit)&&t?this.dom.buttons.append(this.dom.right):this.dom.right.remove(),this.dom.buttons.append(this.dom.delete),this.dom.container.append(this.dom.buttons)}destroy(){this.dom.data.off(".dtsb"),this.dom.condition.off(".dtsb"),this.dom.delete.off(".dtsb");for(var t of this.dom.value)t.off(".dtsb");this.dom.container.remove()}search(e,i){var s=this.s.dt.settings()[0],r=this.s.conditions[this.s.condition];if(void 0!==this.s.condition&&void 0!==r){let t=e[this.s.dataIdx];if(this.s.type&&this.s.type.includes("num")&&(""!==s.language.decimal||""!==s.language.thousands)){let i=[e[this.s.dataIdx]];if(""!==s.language.decimal&&(i=e[this.s.dataIdx].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<i.length;t++)i[t]=i[t].replace(s.language.thousands,",");t=i.join(".")}if("filter"!==this.c.orthogonal.search&&(t=s.fastData(i,this.s.dataIdx,"string"==typeof this.c.orthogonal?this.c.orthogonal:this.c.orthogonal.search)),"array"===this.s.type){(t=Array.isArray(t)?t:[t]).sort();for(var n of t)n&&"string"==typeof n&&(n=n.replace(/[\r\n\u2028]/g," "))}else null!==t&&"string"==typeof t&&(t=t.replace(/[\r\n\u2028]/g," "));return null===(t=this.s.type.includes("html")&&"string"==typeof t?t.replace(/(<([^>]+)>)/gi,""):t)&&(t=""),r.search(t,this.s.value,this)}}isReturnSearch(){var t=this.s.dt.settings()[0].init.search;return!!util.is.plainObject(t)&&t.return}getDetails(t=!1){let e;var s=this.s.dt.settings()[0];if(null===this.s.type||!["num","num-fmt","html-num","html-num-fmt"].includes(this.s.type)||""===s.language.decimal&&""===s.language.thousands){if(null!==this.s.type&&t){var i=moment(),r=luxon();if(!this.s.type.includes("date")&&!this.s.type.includes("time")||moment||luxon){if(this.s.type.includes("moment")||this.s.type.includes("datetime")&&moment)for(e=0;e<this.s.value.length;e++)this.s.value[e]&&0<this.s.value[e].length&&i(this.s.value[e],this.s.dateFormat,!0).isValid()&&(this.s.value[e]=i(this.s.value[e],this.s.dateFormat).format("YYYY-MM-DD HH:mm:ss"));else if(this.s.type.includes("luxon")||this.s.type.includes("datetime")&&luxon)for(e=0;e<this.s.value.length;e++)this.s.value[e]&&0<this.s.value[e].length&&null===r.DateTime.fromFormat(this.s.value[e],this.s.dateFormat).invalid&&(this.s.value[e]=r.DateTime.fromFormat(this.s.value[e],this.s.dateFormat).toFormat("yyyy-MM-dd HH:mm:ss"))}else for(e=0;e<this.s.value.length;e++)null===this.s.value[e].match(/^\d{4}-([0]\d|1[0-2])-([0-2]\d|3[01])$/g)&&(this.s.value[e]="")}}else for(e=0;e<this.s.value.length;e++){let i=[this.s.value[e].toString()];if(""!==s.language.decimal&&(i=this.s.value[e].split(s.language.decimal)),""!==s.language.thousands)for(let t=0;t<i.length;t++)i[t]=i[t].replace(s.language.thousands,",");this.s.value[e]=i.join(".")}if(this.s.type&&this.s.type.includes("num")&&this.s.dt.page.info().serverSide)for(e=0;e<this.s.value.length;e++)this.s.value[e]=this.s.value[e].replace(/[^0-9.\-]/g,"");return{condition:this.s.condition,data:this.s.data,origData:this.s.origData,type:this.s.type,value:this.s.value.map(t=>null!=t?t.toString():t)}}getNode(){return this.dom.container}parseNumber(t){var i=this.s.dt.i18n("decimal",".");return+(t=i&&"."!==i?t.replace(/\./g,"").replace(i,"."):t).replace(/(?!^-)[^0-9.]/g,"")}populate(){this._populateData(),-1!==this.s.dataIdx&&(this._populateCondition(),void 0!==this.s.condition)&&this._populateValue()}rebuild(s){let r=!1,n,i;if(this._populateData(),void 0!==s.data){let i=this.classes.italic,e=this.dom.data;this.dom.data.children("option").each(function(t){t=Dom.s(t);!r&&(t.text()===s.data||s.origData&&t.prop("origData")===s.origData)?(t.prop("selected",!0),e.classRemove(i),r=!0,n=parseInt(t.val(),10)):t.propRemove("selected")})}if(r){this.s.data=s.data,this.s.origData=s.origData,this.s.dataIdx=n,this.c.orthogonal=this._getOptions().orthogonal,this.dom.dataTitle.remove(),this._populateCondition(),this.dom.conditionTitle.remove();let t;var e=this.dom.condition.children("option");for(i=0;i<e.count();i++){var a=e.eq(i);void 0!==s.condition&&a.val()===s.condition&&"string"==typeof s.condition?(a.prop("selected",!0),t=a.val()):a.propRemove("selected")}if(this.s.condition=t,void 0!==this.s.condition){for(this.dom.conditionTitle.propRemove("selected"),this.dom.conditionTitle.remove(),this.dom.condition.classRemove(this.classes.italic),i=0;i<e.count();i++){var o=e.eq(i);o.val()!==this.s.condition&&o.propRemove("selected")}this._populateValue(s)}else this.dom.conditionTitle.prependTo(this.dom.condition).prop("selected",!0)}}setListeners(){this.dom.data.off("change").on("change.dtsb",()=>{this.dom.dataTitle.propRemove("selected");var i=this.dom.data.children("option."+this.classes.option);for(let t=0;t<i.count();t++){var e=i.eq(t);e.val()===this.dom.data.val()?(this.dom.data.classRemove(this.classes.italic),e.prop("selected",!0),this.s.dataIdx=+e.val(),this.s.data=e.text(),this.s.origData=e.prop("origData").toString(),this.c.orthogonal=this._getOptions().orthogonal,this._clearCondition(),this._clearValue(),this._populateCondition(),this.s.filled&&(this.s.filled=!1,this.doSearch(),this.setListeners()),this.s.dt.state.save()):e.propRemove("selected")}}),this.dom.condition.off("change").on("change.dtsb",()=>{this.dom.conditionTitle.propRemove("selected");var i=this.dom.condition.children("option."+this.classes.option);for(let t=0;t<i.count();t++){var e=i.eq(t);if(e.val()===this.dom.condition.val()){this.dom.condition.classRemove(this.classes.italic),e.prop("selected",!0);var s,r,n=e.val();for(s of Object.keys(this.s.conditions))if(s===n){this.s.condition=n;break}this._clearValue(),this._populateValue();for(r of this.dom.value)this.s.filled&&void 0!==r&&this.dom.inputCont.contains(r[0])&&(this.s.filled=!1,this.doSearch(),this.setListeners());(0===this.dom.value.length||1===this.dom.value.length&&void 0===this.dom.value[0])&&this.doSearch()}else e.propRemove("selected")}})}setupButtons(){550<window.innerWidth?(this.dom.container.classRemove(this.classes.vertical),this.dom.buttons.css("left",null),this.dom.buttons.css("top",null)):(this.dom.container.classAdd(this.classes.vertical),this.dom.buttons.css("left",this.dom.data.width("inner")+"px"),this.dom.buttons.css("top",this.dom.data.position().top+"px"))}_buildCriteria(){this.dom.data.append(this.dom.dataTitle),this.dom.condition.append(this.dom.conditionTitle),this.dom.container.append(this.dom.data).append(this.dom.condition),this.dom.inputCont.empty();for(var t of this.dom.value)t.append(this.dom.valueTitle),this.dom.inputCont.append(t);this.dom.buttons.append(this.dom.delete).append(this.dom.right),this.dom.container.append(this.dom.inputCont).append(this.dom.buttons),this.setListeners()}_clearCondition(){this.dom.condition.empty(),this.dom.conditionTitle.prop("selected",!0).attr("disabled","true"),this.dom.condition.prepend(this.dom.conditionTitle).prop("selectedIndex",0),this.s.conditions={},this.s.condition=void 0}_clearValue(){let t;if(void 0!==this.s.condition){if(0<this.dom.value.length&&void 0!==this.dom.value[0])for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);if(this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,Criteria.updateListener)),0<this.dom.value.length&&void 0!==this.dom.value[0]){this.dom.inputCont.empty().append(this.dom.value[0]).insertAfter(this.dom.condition.get(0)),this.dom.value[0].trigger("dtsb-inserted");for(let t=1;t<this.dom.value.length;t++)this.dom.inputCont.append(this.dom.value[t]),this.dom.value[t].trigger("dtsb-inserted")}}else{for(t of this.dom.value)void 0!==t&&setTimeout(function(){t.remove()},50);this.dom.valueTitle.prop("selected",!0),this.dom.defaultValue.append(this.dom.valueTitle).insertAfter(this.dom.condition.get(0))}this.s.value=[],this.dom.value=[Dom.c("select").prop("disabled",!0).classAdd(this.classes.value).classAdd(this.classes.dropDown).classAdd(this.classes.italic).classAdd(this.classes.select).append(this.dom.valueTitle.clone())]}_getOptions(){var t=this.s.dt;return util.object.assignDeep({},Criteria.defaults,t.settings()[0].columns[this.s.dataIdx].searchBuilder)}_populateCondition(){var t,i=[],e=Object.keys(this.s.conditions).length,s=this.s.dt,r=s.settings()[0].columns,n=+this.dom.data.val();let a,o;if(0===e){this.s.type=s.column(n).type(),void 0!==r&&(null!=(c=r[n]).searchBuilderType?this.s.type=c.searchBuilderType:null==this.s.type&&(this.s.type=c.type)),null==this.s.type&&(this.s.type=s.column(n).type()),this.dom.condition.attrRemove("disabled").empty().append(this.dom.conditionTitle).classAdd(this.classes.italic),this.dom.conditionTitle.prop("selected",!0);var d,l,c=s.settings()[0].language.decimal;""!==c&&this.s.type&&this.s.type.indexOf(c)===this.s.type.length-c.length&&(this.s.type.includes("num-fmt")||this.s.type.includes("num"))&&(this.s.type=this.s.type.replace(c,""));let t;void 0!==this.c.conditions[this.s.type]?t=this.c.conditions[this.s.type]:this.s.type&&"datetime"===this.s.type?(t=this.c.conditions.date,d=(c=r[n].render)("1999-08-07T23:05:04Z","display"),c=c("1999-08-07T03:05:04Z","display").includes("03"),DataTable.use("moment")?(t=this.c.conditions.moment,this.s.dateFormat=d.replace("23",c?"HH":"H").replace("11",c?"hh":"h").replace("05","mm").replace("04","ss").replace("PM","A").replace("pm","a").replace("07","DD").replace("7","D").replace("08","MM").replace("8","M").replace("1999","YYYY").replace("99","YY")):DataTable.use("luxon")?(t=this.c.conditions.luxon,this.s.dateFormat=d.replace("23",c?"HH":"H").replace("11",c?"hh":"h").replace("05","mm").replace("04","ss").replace("PM","a").replace("07","dd").replace("7","d").replace("08","MM").replace("8","M").replace("1999","yyyy").replace("99","yy")):d.includes("23")&&d.includes("1999")?this.s.dateFormat="YYYY-MM-DD hh:mm:ss":d.includes("23")&&(this.s.dateFormat="hh:mm:ss")):this.s.type&&this.s.type.includes("datetime-")?(t=DataTable.use("moment")?this.c.conditions.moment:this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/datetime-/g,"")):this.s.type&&this.s.type.includes("moment")?(t=this.c.conditions.moment,this.s.dateFormat=this.s.type.replace(/moment-/g,"")):this.s.type&&this.s.type.includes("luxon")?(t=this.c.conditions.luxon,this.s.dateFormat=this.s.type.replace(/luxon-/g,"")):t=this.c.conditions.string;for(a of Object.keys(t))null!==t[a]&&(s.page.info().serverSide&&t[a].init===Criteria.initSelect&&(l=r[n],this.s.serverData&&this.s.serverData[l.data]?(t[a].init=Criteria.initSelectSSP,t[a].inputValue=Criteria.inputValueSelect,t[a].isInputValid=Criteria.isInputValidSelect):(t[a].init=Criteria.initInput,t[a].inputValue=Criteria.inputValueInput,t[a].isInputValid=Criteria.isInputValidInput)),this.s.conditions[a]=t[a],"function"==typeof(o=t[a].conditionName)&&(o=o(s,this.c.i18n)),i.push(Dom.c("option").text(o).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic)))}else{if(!(0<e))return void this.dom.condition.attr("disabled","true").classAdd(this.classes.italic);this.dom.condition.empty().attrRemove("disabled").classAdd(this.classes.italic);for(a of Object.keys(this.s.conditions)){let t=this.s.conditions[a].conditionName;"function"==typeof t&&(t=t(s,this.c.i18n));var u=Dom.c("option").text(t).val(a).classAdd(this.classes.option).classAdd(this.classes.notItalic);void 0!==this.s.condition&&this.s.condition===t&&(u.prop("selected",!0),this.dom.condition.classRemove(this.classes.italic)),i.push(u)}}for(t of i)this.dom.condition.append(t);if(r[n].searchBuilder&&r[n].searchBuilder.defaultCondition){var h=r[n].searchBuilder.defaultCondition;if("number"==typeof h)this.dom.condition.prop("selectedIndex",h),this.dom.condition.trigger("change");else if("string"==typeof h)for(let t=0;t<i.length;t++)for(var p of Object.keys(this.s.conditions))if(("string"==typeof(o=this.s.conditions[p].conditionName)?o:o(s,this.c.i18n))===i[t].text()&&p===h){this.dom.condition.prop("selectedIndex",this.dom.condition.children().get().indexOf(i[t].get(0))).classRemove(this.classes.italic),this.dom.condition.trigger("change"),t=i.length;break}}else this.dom.condition.prop("selectedIndex",0)}_populateData(){var i,e,s=this.s.dt.settings()[0].columns,r=this.s.dt.columns(this.c.columns).indexes().toArray();this.dom.data.empty().append(this.dom.dataTitle);for(let t=0;t<s.length;t++)"*"!==this.c.columns&&!r.includes(t)||(i=s[t],e={index:t,origData:i.data,text:(i.searchBuilderTitle||i.title).replace(/(<([^>]+)>)/gi,"")},this.dom.data.append(Dom.c("option").text(e.text).val(e.index).classAdd(this.classes.option).classAdd(this.classes.notItalic).prop("origData",i.data).prop("selected",this.s.dataIdx===e.index)),this.s.dataIdx!==e.index)||this.dom.dataTitle.propRemove("selected")}_populateValue(i){var t=this.s.filled;let e;this.s.filled=!1,setTimeout(()=>{this.dom.defaultValue.remove()},50);for(let t of this.dom.value)setTimeout(function(){void 0!==t&&t.remove()},50);var s=this.dom.inputCont.children();if(1<s.count())for(e=0;e<s.count();e++)s.eq(e).remove();for(void 0!==i&&this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===i.data&&(this.s.dataIdx=t)}),this.dom.value=[].concat(this.s.conditions[this.s.condition].init(this,Criteria.updateListener,void 0!==i?i.value:void 0)),void 0!==i&&void 0!==i.value&&(this.s.value=i.value),this.dom.inputCont.empty(),void 0!==this.dom.value[0]&&this.dom.value[0].appendTo(this.dom.inputCont).trigger("dtsb-inserted"),e=1;e<this.dom.value.length;e++)this.dom.value[e].insertAfter(this.dom.value[e-1].get(0)).trigger("dtsb-inserted");this.s.filled=this.s.conditions[this.s.condition].isInputValid(this.dom.value,this),this.setListeners(),this.s.preventRedraw||t===this.s.filled||(this.s.dt.page.info().serverSide||this.doSearch(),this.setListeners())}_throttle(t,i=200){return DataTable.util.debounce(t,i)}}Criteria.classes={button:"dtsb-button",buttonContainer:"dtsb-buttonContainer",condition:"dtsb-condition",container:"dtsb-criteria",data:"dtsb-data",delete:"dtsb-delete",dropDown:"dtsb-dropDown",greyscale:"dtsb-greyscale",input:"dtsb-input",inputCont:"dtsb-inputCont",italic:"dtsb-italic",joiner:"dtsb-joiner",left:"dtsb-left",notItalic:"dtsb-notItalic",option:"dtsb-option",right:"dtsb-right",select:"dtsb-select",value:"dtsb-value",vertical:"dtsb-vertical"},Criteria.initSelect=function(e,t,s=null,i=!1){var r,n,a=parseInt(e.dom.data.val()),o=e.s.dt.rows().indexes().toArray(),d=e.s.dt.settings()[0].fastData;e.dom.valueTitle.prop("selected",!0);let l=Dom.c("select").classAdd(Criteria.classes.value).classAdd(Criteria.classes.dropDown).classAdd(Criteria.classes.italic).classAdd(Criteria.classes.select).append(e.dom.valueTitle).on("change.dtsb",function(){l.classRemove(Criteria.classes.italic),t(e,this)}),c=(e.c.greyscale&&l.classAdd(Criteria.classes.greyscale),[]),u=[];for(r of o){var h=d(r,a,"string"==typeof e.c.orthogonal?e.c.orthogonal:e.c.orthogonal.search),p={filter:"string"==typeof h?h.replace(/[\r\n\u2028]/g," "):h,text:d(r,a,"string"==typeof e.c.orthogonal?e.c.orthogonal:e.c.orthogonal.display)},m=("array"===e.s.type&&(p.filter=Array.isArray(p.filter)?p.filter:[p.filter],p.text=Array.isArray(p.text)?p.text:[p.text]),(t,i)=>{e.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=Dom.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(e.classes.option).classAdd(e.classes.notItalic).html("string"==typeof i?i.replace(/(<([^>]+)>)/gi,""):i),i=t.val();-1===c.indexOf(i)&&(c.push(i),u.push(t),null!==s&&Array.isArray(s[0])&&(s[0]=s[0].sort().join(",")),null!==s)&&t.val()===s[0]&&(t.prop("selected",!0),l.classRemove(Criteria.classes.italic),e.dom.valueTitle.propRemove("selected"))});if(i)for(let t=0;t<p.filter.length;t++)m(p.filter[t],p.text[t]);else m(p.filter,Array.isArray(p.text)?p.text.join(", "):p.text)}u.sort((t,i)=>"array"===e.s.type||"string"===e.s.type||"html"===e.s.type?t.val()<i.val()?-1:t.val()>i.val()?1:0:"num"===e.s.type||"html-num"===e.s.type?+t.val().replace(/(<([^>]+)>)/gi,"")<+i.val().replace(/(<([^>]+)>)/gi,"")?-1:+t.val().replace(/(<([^>]+)>)/gi,"")>+i.val().replace(/(<([^>]+)>)/gi,"")?1:0:"num-fmt"===e.s.type||"html-num-fmt"===e.s.type?+t.val().replace(/[^0-9.]/g,"")<+i.val().replace(/[^0-9.]/g,"")?-1:+t.val().replace(/[^0-9.]/g,"")>+i.val().replace(/[^0-9.]/g,"")?1:0:void 0);for(n of u)l.append(n);return l},Criteria.initSelectSSP=function(e,t,s=null){e.dom.valueTitle.prop("selected",!0);let r=Dom.c("select").classAdd(Criteria.classes.value).classAdd(Criteria.classes.dropDown).classAdd(Criteria.classes.italic).classAdd(Criteria.classes.select).append(e.dom.valueTitle).on("change.dtsb",function(){r.classRemove(Criteria.classes.italic),t(e,this)}),n=(e.c.greyscale&&r.classAdd(Criteria.classes.greyscale),[]);for(var i of e.s.serverData[e.s.origData])((t,i)=>{e.s.type.includes("html")&&null!==t&&"string"==typeof t&&t.replace(/(<([^>]+)>)/gi,"");t=Dom.c("option").attr("type",Array.isArray(t)?"Array":"String").attr("value",t).data("sbv",t).classAdd(e.classes.option).classAdd(e.classes.notItalic).html("string"==typeof i?i.replace(/(<([^>]+)>)/gi,""):i);n.push(t),null!==s&&t.val()===s[0]&&(t.prop("selected",!0),r.classRemove(Criteria.classes.italic),e.dom.valueTitle.propRemove("selected"))})(i.value,i.label);for(var a of n)r.append(a);return r},Criteria.initSelectArray=function(t,i,e=null){return Criteria.initSelect(t,i,e,!0)},Criteria.initInput=function(i,e,t=null){var s=i.s.dt.settings()[0].searchDelay,s=Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("input.dtsb keypress.dtsb",i._throttle(function(t){t=t.keyCode||t.which;return e(i,this,t)},null===s?100:s));return i.c.greyscale&&s.classAdd(Criteria.classes.greyscale),null!==t&&s.val(t[0]),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),s},Criteria.init2Input=function(i,e,t=null){var s=i.s.dt.settings()[0].searchDelay,s=[Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("input.dtsb keypress.dtsb",i._throttle(function(t){t=t.keyCode||t.which;return e(i,this,t)},null===s?100:s)),Dom.c("span").classAdd(i.classes.joiner).html(i.s.dt.i18n("searchBuilder.valueJoiner",i.c.i18n.valueJoiner)),Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("input.dtsb keypress.dtsb",i._throttle(function(t){t=t.keyCode||t.which;return e(i,this,t)},null===s?100:s))];return i.c.greyscale&&(s[0].classAdd(Criteria.classes.greyscale),s[2].classAdd(Criteria.classes.greyscale)),null!==t&&(s[0].val(t[0]),s[2].val(t[1])),i.s.dt.one("draw.dtsb",()=>{i.s.topGroup.trigger("dtsb-redrawLogic")}),s},Criteria.initDate=function(e,s,t=null){let r=e.s.dt.settings()[0].searchDelay;var i=e.s.dt.i18n("datetime",{},!1),n=Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("change.dtsb",e._throttle(function(){return s(e,this)},null===r?100:r)).on("input.dtsb keypress.dtsb",i=>{e._throttle(function(){var t=i.keyCode||i.which;return s(e,this,t)},null===r?100:r)}),a=DataTable.use("datetime");return a&&new a(n.get(0),{format:e.s.dateFormat||void 0,i18n:i}),e.c.greyscale&&n.classAdd(Criteria.classes.greyscale),null!==t&&n.val(t[0]),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),n},Criteria.initNoValue=function(t){return t.s.dt.one("draw.dtsb",()=>{t.s.topGroup.trigger("dtsb-redrawLogic")}),[]},Criteria.init2Date=function(e,s,t=null){let r=e.s.dt.settings()[0].searchDelay;var i=e.isReturnSearch(),n=e.s.dt.i18n("datetime",{},!1),i=[Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("change.dtsb",null!==r?DataTable.util.throttle(function(){return s(e,this)},r):()=>{s(e,this)}).on("input.dtsb keypress.dtsb",i=>{DataTable.util.throttle(function(){var t=i.keyCode||i.which;return s(e,this,t)},null===r?0:r)}),Dom.c("span").classAdd(e.classes.joiner).html(e.s.dt.i18n("searchBuilder.valueJoiner",e.c.i18n.valueJoiner)),Dom.c("input").classAdd(Criteria.classes.value).classAdd(Criteria.classes.input).on("change.dtsb",null!==r?DataTable.util.throttle(function(){return s(e,this)},r):()=>{s(e,this)}).on("input.dtsb keypress.dtsb",e.c.enterSearch||i||null===r?t=>{t=t.keyCode||t.which;s(e,this,t)}:DataTable.util.throttle(function(){return s(e,this)},r))],a=DataTable.use("datetime");return a&&(new a(i[0],{format:e.s.dateFormat||void 0,i18n:n}),new a(i[2],{format:e.s.dateFormat||void 0,i18n:n})),e.c.greyscale&&(i[0].classAdd(Criteria.classes.greyscale),i[2].classAdd(Criteria.classes.greyscale)),null!==t&&0<t.length&&(i[0].val(t[0]),i[2].val(t[1])),e.s.dt.one("draw.dtsb",()=>{e.s.topGroup.trigger("dtsb-redrawLogic")}),i},Criteria.isInputValidSelect=function(t){let i=!0;for(var e of t){var s=e.children("option").get(),r=s.filter(t=>t.selected),e=e.children("option."+Criteria.classes.notItalic).get();r.length===s.length-e.length&&1===r.length&&r[0]===s[0]&&(i=!1)}return i},Criteria.isInputValidInput=function(t){let i=!0;for(var e of t)e.is("input")&&0===e.val().length&&(i=!1);return i},Criteria.inputValueSelect=function(t){var i,e,s=[];for(i of t)i.is("select")&&(e=[].concat(i.children("option").filter(t=>t.selected).data("sbv")).map(t=>util.escapeHtml(t)),s.push(...e));return s},Criteria.inputValueInput=function(t){var i,e=[];for(i of t)i.is("input")&&e.push(util.escapeHtml(i.val()));return e.map(t=>DataTable.util.diacritics(t))},Criteria.updateListener=function(e,s,r){var t=e.s.conditions[e.s.condition];let n;if(e.s.filled=t.isInputValid(e.dom.value,e),e.s.value=t.inputValue(e.dom.value,e),e.s.filled){for(Array.isArray(e.s.value)||(e.s.value=[e.s.value]),n=0;n<e.s.value.length;n++)Array.isArray(e.s.value[n])&&e.s.value[n].sort();let t=null,i=null;for(n=0;n<e.dom.value.length;n++)s===e.dom.value[n][0]&&(t=n,void 0!==s.selectionStart)&&(i=s.selectionStart);(!e.c.enterSearch&&!e.isReturnSearch()||13===r||void 0===r||s.nodeName&&"select"===s.nodeName.toLowerCase())&&e.doSearch(),null!==t&&(e.dom.value[t].classRemove(e.classes.italic),e.dom.value[t].focus(),null!==i)&&e.dom.value[t][0].setSelectionRange(i,i)}else(e.c.enterSearch||e.isReturnSearch())&&13!==r||e.doSearch()},Criteria.dateConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.equals",i.conditions.date.equals)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))===i[0]}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.not",i.conditions.date.not)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))!==i[0]}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.before",i.conditions.date.before)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))<i[0]}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.after",i.conditions.date.after)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return(t=t.replace(/(\/|-|,)/g,"-"))>i[0]}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.between",i.conditions.date.between)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t=t.replace(/(\/|-|,)/g,"-"),i[0]<i[1]?i[0]<=t&&t<=i[1]:i[1]<=t&&t<=i[0]}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notBetween",i.conditions.date.notBetween)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t=t.replace(/(\/|-|,)/g,"-"),i[0]<i[1]?!(i[0]<=t&&t<=i[1]):!(i[1]<=t&&t<=i[0])}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.empty",i.conditions.date.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notEmpty",i.conditions.date.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.momentDateConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.equals",i.conditions.date.equals)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()===moment()(i[0],e.s.dateFormat).valueOf()}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.not",i.conditions.date.not)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()!==moment()(i[0],e.s.dateFormat).valueOf()}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.before",i.conditions.date.before)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()<moment()(i[0],e.s.dateFormat).valueOf()}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.after",i.conditions.date.after)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return moment()(t,e.s.dateFormat).valueOf()>moment()(i[0],e.s.dateFormat).valueOf()}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.between",i.conditions.date.between)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=moment()(t,e.s.dateFormat).valueOf(),s=moment()(i[0],e.s.dateFormat).valueOf(),i=moment()(i[1],e.s.dateFormat).valueOf();return s<i?s<=t&&t<=i:i<=t&&t<=s}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notBetween",i.conditions.date.notBetween)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=moment()(t,e.s.dateFormat).valueOf(),s=moment()(i[0],e.s.dateFormat).valueOf(),i=moment()(i[1],e.s.dateFormat).valueOf();return s<i?!(+s<=+t&&+t<=+i):!(+i<=+t&&+t<=+s)}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.empty",i.conditions.date.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notEmpty",i.conditions.date.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.luxonDateConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.equals",i.conditions.date.equals)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts===luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.not",i.conditions.date.not)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts!==luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.before",i.conditions.date.before)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts<luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.after",i.conditions.date.after)},init:Criteria.initDate,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return luxon().DateTime.fromFormat(t,e.s.dateFormat).ts>luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.between",i.conditions.date.between)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=luxon().DateTime.fromFormat(t,e.s.dateFormat).ts,s=luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts,i=luxon().DateTime.fromFormat(i[1],e.s.dateFormat).ts;return s<i?s<=t&&t<=i:i<=t&&t<=s}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notBetween",i.conditions.date.notBetween)},init:Criteria.init2Date,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=luxon().DateTime.fromFormat(t,e.s.dateFormat).ts,s=luxon().DateTime.fromFormat(i[0],e.s.dateFormat).ts,i=luxon().DateTime.fromFormat(i[1],e.s.dateFormat).ts;return s<i?!(+s<=+t&&+t<=+i):!(+i<=+t&&+t<=+s)}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.empty",i.conditions.date.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.date.notEmpty",i.conditions.date.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.numConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.equals",i.conditions.number.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return+t==+i[0]}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.not",i.conditions.number.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return+t!=+i[0]}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lt",i.conditions.number.lt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t<+i[0]}},"<=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lte",i.conditions.number.lte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t<=+i[0]}},">=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gte",i.conditions.number.gte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t>=+i[0]}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gt",i.conditions.number.gt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+t>+i[0]}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.between",i.conditions.number.between)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+i[0]<+i[1]?+i[0]<=+t&&+t<=+i[1]:+i[1]<=+t&&+t<=+i[0]}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notBetween",i.conditions.number.notBetween)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return+i[0]<+i[1]?!(+i[0]<=+t&&+t<=+i[1]):!(+i[1]<=+t&&+t<=+i[0])}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.empty",i.conditions.number.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notEmpty",i.conditions.number.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.numFmtConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.equals",i.conditions.number.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i,e){return e.parseNumber(t)===e.parseNumber(i[0])}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.not",i.conditions.number.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i,e){return e.parseNumber(t)!==e.parseNumber(i[0])}},"<":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lt",i.conditions.number.lt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)<e.parseNumber(i[0])}},"<=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.lte",i.conditions.number.lte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)<=e.parseNumber(i[0])}},">=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gte",i.conditions.number.gte)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)>=e.parseNumber(i[0])}},">":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.gt",i.conditions.number.gt)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){return e.parseNumber(t)>e.parseNumber(i[0])}},between:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.between",i.conditions.number.between)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=e.parseNumber(t),s=e.parseNumber(i[0]),e=e.parseNumber(i[1]);return+s<+e?+s<=+t&&+t<=+e:+e<=+t&&+t<=+s}},"!between":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notBetween",i.conditions.number.notBetween)},init:Criteria.init2Input,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i,e){var t=e.parseNumber(t),s=e.parseNumber(i[0]),e=e.parseNumber(i[1]);return+s<+e?!(+s<=+t&&+t<=+e):!(+e<=+t&&+t<=+s)}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.empty",i.conditions.number.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.number.notEmpty",i.conditions.number.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.stringConditions={"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.equals",i.conditions.string.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return t===i[0]}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.not",i.conditions.string.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidInput,search(t,i){return t!==i[0]}},starts:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.startsWith",i.conditions.string.startsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return 0===t.toLowerCase().indexOf(i[0].toLowerCase())}},"!starts":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notStartsWith",i.conditions.string.notStartsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return 0!==t.toLowerCase().indexOf(i[0].toLowerCase())}},contains:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.contains",i.conditions.string.contains)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t.toLowerCase().includes(i[0].toLowerCase())}},"!contains":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notContains",i.conditions.string.notContains)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return!t.toLowerCase().includes(i[0].toLowerCase())}},ends:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.endsWith",i.conditions.string.endsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return t.toLowerCase().endsWith(i[0].toLowerCase())}},"!ends":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notEndsWith",i.conditions.string.notEndsWith)},init:Criteria.initInput,inputValue:Criteria.inputValueInput,isInputValid:Criteria.isInputValidInput,search(t,i){return!t.toLowerCase().endsWith(i[0].toLowerCase())}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.empty",i.conditions.string.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.string.notEmpty",i.conditions.string.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return!(null==t||0===t.length)}}},Criteria.arrayConditions={contains:{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.contains",i.conditions.array.contains)},init:Criteria.initSelectArray,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return t.includes(i[0])}},without:{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.without",i.conditions.array.without)},init:Criteria.initSelectArray,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(t,i){return-1===t.indexOf(i[0])}},"=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.equals",i.conditions.array.equals)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(i,e){if(i.length!==e.length)return!1;e.sort();for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!1;return!0}},"!=":{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.not",i.conditions.array.not)},init:Criteria.initSelect,inputValue:Criteria.inputValueSelect,isInputValid:Criteria.isInputValidSelect,search(i,e){if(i.length!==e.length)return!0;e.sort();for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!0;return!1}},null:{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.empty",i.conditions.array.empty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null==t||0===t.length}},"!null":{conditionName(t,i){return t.i18n("searchBuilder.conditions.array.notEmpty",i.conditions.array.notEmpty)},init:Criteria.initNoValue,inputValue(){return[]},isInputValid(){return!0},search(t){return null!=t&&0!==t.length}}},Criteria.defaults={columns:"*",conditions:{array:Criteria.arrayConditions,date:Criteria.dateConditions,html:Criteria.stringConditions,"html-num":Criteria.numConditions,"html-num-fmt":Criteria.numFmtConditions,luxon:Criteria.luxonDateConditions,moment:Criteria.momentDateConditions,num:Criteria.numConditions,"num-fmt":Criteria.numFmtConditions,string:Criteria.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},liveSearch:!0,logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1};class Group{constructor(t,i,e,s=0,r=!1,n=1,a=void 0){return this.classes=DataTable.util.object.assignDeep({},Group.classes),this.c=DataTable.util.object.assignDeep({},Group.defaults,i),this.s={criteria:[],depth:n,dt:t,index:s,isChild:r,logic:void 0,opts:i,preventRedraw:!1,serverData:a,toDrop:void 0,topGroup:e},this.dom={add:Dom.c("button").classAdd(this.classes.add).classAdd(this.classes.button).attr("type","button"),clear:Dom.c("button").html("&times").classAdd(this.classes.button).classAdd(this.classes.clearGroup).attr("type","button"),container:Dom.c("div").classAdd(this.classes.group),logic:Dom.c("button").append(Dom.c("div")).classAdd(this.classes.logic).classAdd(this.classes.button).attr("type","button"),logicContainer:Dom.c("div").classAdd(this.classes.logicContainer),search:Dom.c("button").classAdd(this.classes.search).classAdd(this.classes.button).attr("type","button").css("display","none")},void 0===this.s.topGroup&&(this.s.topGroup=this.dom.container),this._setup(),this}destroy(){this.dom.add.off(".dtsb"),this.dom.logic.off(".dtsb"),this.dom.search.off(".dtsb"),this.dom.container.trigger("dtsb-destroy"),this.dom.container.remove(),this.s.criteria=[]}getDetails(t=!1){if(0===this.s.criteria.length)return{};var i,e={criteria:[],logic:this.s.logic};for(i of this.s.criteria)e.criteria.push(i.criteria.getDetails(t));return e}getNode(){return this.dom.container}rebuild(t){let i;if(!(null==t.criteria||Array.isArray(t.criteria)&&0===t.criteria.length)){if(this.s.logic=t.logic,this.dom.logic.children().eq(0).html("OR"===this.s.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),Array.isArray(t.criteria))for(i of t.criteria)void 0!==i.logic?this._addPrevGroup(i):void 0===i.logic&&this._addPrevCriteria(i);for(i of this.s.criteria)i.criteria instanceof Criteria&&(i.criteria.updateArrows(1<this.s.criteria.length),this._setCriteriaListeners(i.criteria))}}redrawContents(){if(!this.s.preventRedraw){this.dom.container.children().detach(),this.dom.container.append(this.dom.logicContainer).append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search),this.s.criteria.sort(function(t,i){return t.criteria.s.index<i.criteria.s.index?-1:t.criteria.s.index>i.criteria.s.index?1:0}),this.setListeners();for(let t=0;t<this.s.criteria.length;t++){var i=this.s.criteria[t].criteria;i instanceof Criteria?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),this._setCriteriaListeners(i),this.s.criteria[t].criteria.s.preventRedraw=this.s.preventRedraw,this.s.criteria[t].criteria.rebuild(this.s.criteria[t].criteria.getDetails()),this.s.criteria[t].criteria.s.preventRedraw=!1):i instanceof Group&&0<i.s.criteria.length?(this.s.criteria[t].index=t,this.s.criteria[t].criteria.s.index=t,this.s.criteria[t].criteria.dom.container.insertBefore(this.dom.add),i.s.preventRedraw=this.s.preventRedraw,i.redrawContents(),i.s.preventRedraw=!1,this._setGroupListeners(i)):(this.s.criteria.splice(t,1),t--)}this.setupLogic()}}redrawLogic(){for(var t of this.s.criteria)t.criteria instanceof Group&&t.criteria.redrawLogic();this.setupLogic()}search(t,i){return"AND"===this.s.logic?this._andSearch(t,i):"OR"!==this.s.logic||this._orSearch(t,i)}setupLogic(){if(this.dom.logicContainer.remove(),this.dom.clear.remove(),this.s.criteria.length<1)this.s.isChild||this.dom.container.trigger("dtsb-destroy"),this.dom.search.css("display","none");else{this.dom.clear.height("0px"),this.dom.logicContainer.append(this.dom.clear),this.s.isChild||this.dom.search.css("display","inline-block"),this.dom.container.prepend(this.dom.logicContainer);for(var t of this.s.criteria)t.criteria instanceof Criteria&&t.criteria.setupButtons();var i=this.dom.container.height()-1;this.dom.logicContainer.width(i),this.dom.clear.height(this.dom.logicContainer.width()),this._setLogicListener(),this._setClearListener()}}setListeners(){this.dom.add.off("click"),this.dom.add.on("click.dtsb",()=>(this.s.isChild||this.dom.container.prepend(this.dom.logicContainer),this.addCriteria(),this.dom.container.trigger("dtsb-add"),this.s.dt.state.save(),!1)),this.dom.search.off("click.dtsb").on("click.dtsb",()=>{this.s.dt.draw()});for(var t of this.s.criteria)t.criteria.setListeners();this._setClearListener(),this._setLogicListener()}addCriteria(t=null){var i,e=null===t?this.s.criteria.length:t.s.index,s=new Criteria(this.s.dt,this.s.opts,this.s.topGroup,e,this.s.depth,this.s.serverData,this.c.liveSearch);null!==t&&(s.c=t.c,s.s=t.s,s.s.depth=this.s.depth,s.classes=t.classes),s.populate();let r=!1;for(let t=0;t<this.s.criteria.length;t++)0===t&&this.s.criteria[t].criteria.s.index>s.s.index?(s.getNode().insertBefore(this.s.criteria[t].criteria.dom.container),r=!0):t<this.s.criteria.length-1&&this.s.criteria[t].criteria.s.index<s.s.index&&this.s.criteria[t+1].criteria.s.index>s.s.index&&(s.getNode().insertAfter(this.s.criteria[t].criteria.dom.container),r=!0);r||s.getNode().insertBefore(this.dom.add),this.s.criteria.push({criteria:s,index:e}),this.s.criteria=this.s.criteria.sort((t,i)=>t.criteria.s.index-i.criteria.s.index);for(i of this.s.criteria)i.criteria instanceof Criteria&&i.criteria.updateArrows(1<this.s.criteria.length);this._setCriteriaListeners(s),s.setListeners(),this.setupLogic()}checkFilled(){for(var t of this.s.criteria)if(t.criteria instanceof Criteria&&t.criteria.s.filled||t.criteria instanceof Group&&t.criteria.checkFilled())return!0;return!1}count(){let t=0;for(var i of this.s.criteria)i.criteria instanceof Group?t+=i.criteria.count():t++;return t}_addPrevGroup(t){var i=this.s.criteria.length,e=new Group(this.s.dt,this.c,this.s.topGroup,i,!0,this.s.depth+1,this.s.serverData);this.s.criteria.push({criteria:e,index:i,logic:e.s.logic}),e.rebuild(t),this.s.criteria[i].criteria=e,this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(e)}_addPrevCriteria(t){var i=this.s.criteria.length,e=new Criteria(this.s.dt,this.s.opts,this.s.topGroup,i,this.s.depth,this.s.serverData);e.populate(),this.s.criteria.push({criteria:e,index:i}),e.s.preventRedraw=this.s.preventRedraw,e.rebuild(t),e.s.preventRedraw=!1,this.s.criteria[i].criteria=e,this.s.preventRedraw||this.s.topGroup.trigger("dtsb-redrawContents")}_andSearch(t,i){if(0!==this.s.criteria.length)for(var e of this.s.criteria)if((!(e.criteria instanceof Criteria)||e.criteria.s.filled)&&!e.criteria.search(t,i))return!1;return!0}_orSearch(t,i){if(0===this.s.criteria.length)return!0;let e=!1;for(var s of this.s.criteria)if(s.criteria instanceof Criteria&&s.criteria.s.filled){if(e=!0,s.criteria.search(t,i))return!0}else if(s.criteria instanceof Group&&s.criteria.checkFilled()&&(e=!0,s.criteria.search(t,i)))return!0;return!e}_removeCriteria(i,e=!1){let s;if(this.s.criteria.length<=1&&this.s.isChild)this.destroy();else{let t;for(s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index===i.s.index&&(!e||this.s.criteria[s].criteria instanceof Group)&&(t=s);for(void 0!==t&&this.s.criteria.splice(t,1),s=0;s<this.s.criteria.length;s++)this.s.criteria[s].index=s,this.s.criteria[s].criteria.s.index=s}}_setCriteriaListeners(e){e.dom.delete.off("click").on("click.dtsb",()=>{this._removeCriteria(e),e.dom.container.remove();for(var t of this.s.criteria)t.criteria instanceof Criteria&&t.criteria.updateArrows(1<this.s.criteria.length);return e.destroy(),this.s.dt.draw(),this.s.topGroup.trigger("dtsb-redrawContents"),!1}),e.dom.right.off("click").on("click.dtsb",()=>{var t=e.s.index,i=new Group(this.s.dt,this.s.opts,this.s.topGroup,e.s.index,!0,this.s.depth+1,this.s.serverData);return i.addCriteria(e),this.s.criteria[t].criteria=i,this.s.criteria[t].logic="AND",this.s.topGroup.trigger("dtsb-redrawContents"),this._setGroupListeners(i),!1}),e.dom.left.off("click").on("click.dtsb",()=>{this.s.toDrop=new Criteria(this.s.dt,this.s.opts,this.s.topGroup,e.s.index,void 0,this.s.serverData),this.s.toDrop.s=e.s,this.s.toDrop.c=e.c,this.s.toDrop.classes=e.classes,this.s.toDrop.populate();var t=this.s.toDrop.s.index;return this.dom.container.trigger("dtsb-dropCriteria"),e.s.index=t,this._removeCriteria(e),this.s.topGroup.trigger("dtsb-redrawContents"),this.s.dt.draw(),!1})}_setClearListener(){this.dom.clear.off("click").on("click.dtsb",()=>(this.s.isChild?(this.destroy(),this.s.topGroup.trigger("dtsb-redrawContents")):this.dom.container.trigger("dtsb-clearContents"),!1))}_setGroupListeners(i){i.dom.add.off("click").on("click.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),i.dom.container.off("dtsb-add").on("dtsb-add.dtsb",()=>(this.setupLogic(),this.dom.container.trigger("dtsb-add"),!1)),i.dom.container.off("dtsb-destroy").on("dtsb-destroy.dtsb",()=>(this._removeCriteria(i,!0),i.dom.container.remove(),this.setupLogic(),!1)),i.dom.container.off("dtsb-dropCriteria").on("dtsb-dropCriteria.dtsb",()=>{var t=i.s.toDrop;return t.s.index=i.s.index,t.updateArrows(1<this.s.criteria.length),this.addCriteria(t),!1}),i.setListeners()}_setup(){this.setListeners(),this.dom.add.html(this.s.dt.i18n("searchBuilder.add",this.c.i18n.add)),this.dom.search.html(this.s.dt.i18n("searchBuilder.search",this.c.i18n.search)),this.dom.logic.children().eq(0).html("OR"===this.c.logic?this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr):this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd)),this.s.logic="OR"===this.c.logic?"OR":"AND",this.c.greyscale&&this.dom.logic.classAdd(this.classes.greyscale),this.dom.logicContainer.append(this.dom.logic).append(this.dom.clear),this.s.isChild&&this.dom.container.append(this.dom.logicContainer),this.dom.container.append(this.dom.add),this.c.liveSearch||this.dom.container.append(this.dom.search)}_setLogicListener(){this.dom.logic.off("click").on("click.dtsb",()=>{this._toggleLogic(),this.s.dt.draw();for(var t of this.s.criteria)t.criteria.setListeners()})}_toggleLogic(){"OR"===this.s.logic?(this.s.logic="AND",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicAnd",this.c.i18n.logicAnd))):"AND"===this.s.logic&&(this.s.logic="OR",this.dom.logic.children().eq(0).html(this.s.dt.i18n("searchBuilder.logicOr",this.c.i18n.logicOr)))}}if(Group.classes={add:"dtsb-add",button:"dtsb-button",clearGroup:"dtsb-clearGroup",greyscale:"dtsb-greyscale",group:"dtsb-group",inputButton:"dtsb-iptbtn",logic:"dtsb-logic",logicContainer:"dtsb-logicContainer",search:"dtsb-search"},Group.defaults={columns:"*",conditions:{date:Criteria.dateConditions,html:Criteria.stringConditions,"html-num":Criteria.numConditions,"html-num-fmt":Criteria.numFmtConditions,luxon:Criteria.luxonDateConditions,moment:Criteria.momentDateConditions,num:Criteria.numConditions,"num-fmt":Criteria.numFmtConditions,string:Criteria.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},!DataTable||!DataTable.versionCheck||!DataTable.versionCheck("3"))throw new Error("SearchBuilder requires DataTables 3 or newer");class SearchBuilder{constructor(t,i){t=new DataTable.Api(t);if(this.classes=util.object.assignDeep({},SearchBuilder.classes),this.c=util.object.assignDeep({},SearchBuilder.defaults,i),this.dom={clearAll:Dom.c("button").attr("type","button").html(t.i18n("searchBuilder.clearAll",this.c.i18n.clearAll)).classAdd(this.classes.clearAll).classAdd(this.classes.button).attr("type","button"),container:Dom.c("div").classAdd(this.classes.container),title:Dom.c("div").classAdd(this.classes.title),titleRow:Dom.c("div").classAdd(this.classes.titleRow),topGroup:void 0},this.s={dt:t,opts:i,search:void 0,serverData:void 0,topGroup:void 0},void 0===t.settings()[0]._searchBuilder)return(t.settings()[0]._searchBuilder=this).s.dt.page.info().serverSide&&(this.s.dt.on("preXhr.dtsb",(t,i,e)=>{var s=this.s.dt.state.loaded();s&&s.searchBuilder&&(e.searchBuilder=this._collapseArray(s.searchBuilder))}),this.s.dt.on("xhr.dtsb",(t,i,e)=>{e&&e.searchBuilder&&e.searchBuilder.options&&(this.s.serverData=e.searchBuilder.options)})),this.s.dt.settings()[0]._bInitComplete?this._setUp():t.one("init.dt",()=>{this._setUp()}),this}getDetails(t=!1){return this.s.topGroup?this.s.topGroup.getDetails(t):{}}getNode(){return this.dom.container}rebuild(t,i=!0){return this.dom.clearAll.trigger("click",!1),null!=t&&(this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.rebuild(t),this.s.topGroup.s.preventRedraw=!1,this._checkClear(),this._updateTitle(this.s.topGroup.count()),this.s.topGroup.redrawContents(),i&&this.s.dt.draw(!1),this.s.topGroup.setListeners()),this}_applyPreDefDefaults(t){void 0!==t.criteria&&void 0===t.logic&&(t.logic="AND");for(let i of t.criteria)void 0!==i.criteria?i=this._applyPreDefDefaults(i):this.s.dt.columns().every(t=>{this.s.dt.settings()[0].columns[t].title===i.data&&(i.dataIdx=t)});return t}_setUp(t=!0){if("function"!=typeof this.s.dt.column().type&&DataTable.Api.registerPlural("columns().types()","column().type()",function(){return this.iterator("column",function(t,i){return t.columns[i].type},1)}),!DataTable.DateTime){let i=this.s.dt.columns().types().toArray();if(void 0===i||i.includes(void 0)||i.includes(null)){i=[];for(var e of this.s.dt.settings()[0].columns)i.push(void 0!==e.searchBuilderType?e.searchBuilderType:e.type)}var s=this.s.dt.columns().toArray();(void 0===i||i.includes(void 0)||i.includes(null))&&(i=this.s.dt.columns().types().toArray());for(let t=0;t<s[0].length;t++){var r=s[0][t],r=i[r];if(("*"===this.c.columns||Array.isArray(this.c.columns)&&this.c.columns.includes(t))&&(r.includes("date")||r.includes("moment")||r.includes("luxon")))throw alert("SearchBuilder Requires DateTime when used with dates."),new Error("SearchBuilder requires DateTime")}}this.s.topGroup=new Group(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._setClearListener(),this.s.dt.on("stateSaveParams.dtsb",(t,i,e)=>{e.searchBuilder=this.getDetails(),e.scroller?e.start=this.s.dt.state().start:e.page=this.s.dt.page()}),this.s.dt.on("stateLoadParams.dtsb",(t,i,e)=>{this.rebuild(e.searchBuilder)}),this._build(),this.s.dt.on("preXhr.dtsb",(t,i,e)=>{this.s.dt.page.info().serverSide&&(e.searchBuilder=this._collapseArray(this.getDetails(!0)))}),this.s.dt.on("columns-reordered",()=>{this.rebuild(this.getDetails())}),t&&(null!==(t=this.s.dt.state.loaded())&&void 0!==t.searchBuilder?(this.s.topGroup.rebuild(t.searchBuilder),this.s.topGroup.dom.container.trigger("dtsb-redrawContents"),this.s.dt.page.info().serverSide||(t.page?this.s.dt.page(t.page).draw("page"):this.s.dt.scroller&&t.scroller&&this.s.dt.scroller().scrollToRow(t.scroller.topRow)),this.s.topGroup.setListeners()):!1!==this.c.preDefined&&(this.c.preDefined=this._applyPreDefDefaults(this.c.preDefined),this.rebuild(this.c.preDefined))),this._setEmptyListener(),this.s.dt.state.save()}_collapseArray(i){if(void 0===i.logic)void 0!==i.value&&(i.value.sort((t,i)=>(isNaN(+t)||(t=+t,i=+i),t<i?-1:i<t?1:0)),i.value1=i.value[0],i.value2=i.value[1]);else for(let t=0;t<i.criteria.length;t++)i.criteria[t]=this._collapseArray(i.criteria[t]);return i}_updateTitle(t){this.dom.title.html(this.s.dt.i18n("searchBuilder.title",this.c.i18n.title,t))}_build(){this.dom.clearAll.remove(),this.dom.container.empty();var t=this.s.topGroup.count();this._updateTitle(t),this.dom.titleRow.append(this.dom.title),this.dom.container.append(this.dom.titleRow),this.dom.topGroup=this.s.topGroup.getNode(),this.dom.container.append(this.dom.topGroup),this._setRedrawListener();let s=this.s.dt.table(0).node();DataTable.ext.search.includes(this.s.search)||(this.s.search=(t,i,e)=>t.table!==s||this.s.topGroup.search(i,e),DataTable.ext.search.push(this.s.search)),this.s.dt.on("destroy.dtsb",()=>{this.dom.container.remove(),this.dom.clearAll.remove();let t=DataTable.ext.search.indexOf(this.s.search);for(;-1!==t;)DataTable.ext.search.splice(t,1),t=DataTable.ext.search.indexOf(this.s.search);this.s.dt.off(".dtsb"),Dom.s(this.s.dt.table().node()).off(".dtsb")})}_checkClear(){0<this.s.topGroup.s.criteria.length?(this.dom.clearAll.insertAfter(this.dom.title.get(0)),this._setClearListener()):this.dom.clearAll.remove()}_filterChanged(t){var i=this.c.filterChanged;"function"==typeof i&&i(t,this.s.dt.i18n("searchBuilder.button",this.c.i18n.button,t))}_setClearListener(){this.dom.clearAll.off("click"),this.dom.clearAll.on("click.dtsb",(t,i)=>(this.s.topGroup=new Group(this.s.dt,this.c,void 0,void 0,void 0,void 0,this.s.serverData),this._build(),!1!==i&&this.s.dt.draw(),this.s.topGroup.setListeners(),this.dom.clearAll.remove(),this._setEmptyListener(),this._filterChanged(0),!1))}_setRedrawListener(){this.s.topGroup.dom.container.off("dtsb-redrawContents"),this.s.topGroup.dom.container.on("dtsb-redrawContents.dtsb",()=>{this._checkClear(),this.s.topGroup.redrawContents(),this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this.s.dt.page.info().serverSide||this.s.dt.draw(),this.s.dt.state.save()}),this.s.topGroup.dom.container.off("dtsb-redrawContents-noDraw"),this.s.topGroup.dom.container.on("dtsb-redrawContents-noDraw.dtsb",()=>{this._checkClear(),this.s.topGroup.s.preventRedraw=!0,this.s.topGroup.redrawContents(),this.s.topGroup.s.preventRedraw=!1,this.s.topGroup.setupLogic(),this._setEmptyListener();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-redrawLogic"),this.s.topGroup.dom.container.on("dtsb-redrawLogic.dtsb",()=>{this.s.topGroup.redrawLogic();var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t)}),this.s.topGroup.dom.container.off("dtsb-add"),this.s.topGroup.dom.container.on("dtsb-add.dtsb",()=>{var t=this.s.topGroup.count();this._updateTitle(t),this._filterChanged(t),this._checkClear()}),this.s.dt.on("postEdit.dtsb postCreate.dtsb postRemove.dtsb",()=>{this.s.topGroup.redrawContents()}),this.s.topGroup.dom.container.off("dtsb-clearContents"),this.s.topGroup.dom.container.on("dtsb-clearContents.dtsb",()=>{this._setUp(!1),this._filterChanged(0),this.s.dt.draw()})}_setEmptyListener(){this.s.topGroup.dom.add.on("click.dtsb",()=>{this._checkClear()}),this.s.topGroup.dom.container.on("dtsb-destroy.dtsb",()=>{this.dom.clearAll.remove()})}}function _init(t,i){t=new DataTable.Api(t),i=i||t.init().searchBuilder||DataTable.defaults.searchBuilder;return new SearchBuilder(t,i).getNode()}SearchBuilder.version="2.0.1",SearchBuilder.classes={button:"dtsb-button",clearAll:"dtsb-clearAll",container:"dtsb-searchBuilder",inputButton:"dtsb-iptbtn",title:"dtsb-title",titleRow:"dtsb-titleRow"},SearchBuilder.defaults={columns:"*",conditions:{date:Criteria.dateConditions,html:Criteria.stringConditions,"html-num":Criteria.numConditions,"html-num-fmt":Criteria.numFmtConditions,luxon:Criteria.luxonDateConditions,moment:Criteria.momentDateConditions,num:Criteria.numConditions,"num-fmt":Criteria.numFmtConditions,string:Criteria.stringConditions},depthLimit:!1,enterSearch:!1,filterChanged:void 0,greyscale:!1,liveSearch:!0,i18n:{add:"Add Condition",button:{0:"Search Builder",_:"Search Builder (%d)"},clearAll:"Clear All",condition:"Condition",conditions:{array:{contains:"Contains",empty:"Empty",equals:"Equals",not:"Not",notEmpty:"Not Empty",without:"Without"},date:{after:"After",before:"Before",between:"Between",empty:"Empty",equals:"Equals",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},number:{between:"Between",empty:"Empty",equals:"Equals",gt:"Greater Than",gte:"Greater Than Equal To",lt:"Less Than",lte:"Less Than Equal To",not:"Not",notBetween:"Not Between",notEmpty:"Not Empty"},string:{contains:"Contains",empty:"Empty",endsWith:"Ends With",equals:"Equals",not:"Not",notContains:"Does Not Contain",notEmpty:"Not Empty",notEndsWith:"Does Not End With",notStartsWith:"Does Not Start With",startsWith:"Starts With"}},data:"Data",delete:"&times",deleteTitle:"Delete filtering rule",left:"<",leftTitle:"Outdent criteria",logicAnd:"And",logicOr:"Or",right:">",rightTitle:"Indent criteria",search:"Search",title:{0:"Custom Search Builder",_:"Custom Search Builder (%d)"},value:"Value",valueJoiner:"and"},logic:"AND",orthogonal:{display:"display",search:"filter"},preDefined:!1},DataTable.SearchBuilder=SearchBuilder,DataTable.Group=Group,DataTable.Criteria=Criteria,DataTable.ext.searchBuilder={conditions:{}},DataTable.ext.buttons.searchBuilder={action(t,i,e,s){this.popover(s._searchBuilder.getNode(),{align:"container",span:"container"});s=s._searchBuilder.s.topGroup;void 0!==s&&s.dom.container.trigger("dtsb-redrawContents-noDraw"),0===s.s.criteria.length&&Dom.s("."+Group.classes.add.replace(/ /g,".")).trigger("click")},config:{},init(i,t,e){let s=this,r=new DataTable.SearchBuilder(i,e.config);i.on("draw",function(){var t=r.s.topGroup?r.s.topGroup.count():0;s.text(i.i18n("searchBuilder.button",r.c.i18n.button,t))}),s.text(e.text||i.i18n("searchBuilder.button",r.c.i18n.button,0)),e._searchBuilder=r},text:null},Api.register("searchBuilder.getDetails()",function(t=!1){var i=this.context[0];return i._searchBuilder?i._searchBuilder.getDetails(t):null}),Api.register("searchBuilder.rebuild()",function(t,i=!0){var e=this.context[0];return void 0===e._searchBuilder?null:(e._searchBuilder.rebuild(t,i),this)}),Api.register("searchBuilder.container()",function(){var t=this.context[0];return t._searchBuilder?t._searchBuilder.getNode():null}),Dom.s(document).on("preInit.dt.dtsp",function(t,i){"dt"!==t.namespace||!i.init.searchBuilder&&!DataTable.defaults.searchBuilder||i._searchBuilder||_init(i)}),DataTable.ext.feature.push({cFeature:"Q",fnInit:_init}),DataTable.feature.register("searchBuilder",_init);export default DataTable;
@@ -1,4 +1,4 @@
1
- /*! SearchBuilder 2.0.0 for DataTables
1
+ /*! SearchBuilder 2.0.1 for DataTables
2
2
  * Copyright (c) SpryMedia Ltd - datatables.net/license
3
3
  */
4
4
 
@@ -704,18 +704,55 @@ class Criteria {
704
704
  conditionObj = this.c.conditions[this.s.type];
705
705
  }
706
706
  else if (this.s.type && this.s.type === 'datetime') {
707
- // If no format was specified in the DT type, then we need to use
708
- // Moment / Luxon's default locale formatting.
709
- let moment = DataTable.use('moment');
710
- let luxon = DataTable.use('luxon');
711
- if (moment) {
707
+ conditionObj = this.c.conditions.date;
708
+ // If no format was specified in the DT type, a Javascript
709
+ // native toLocaleDateString was used. Need to work out what
710
+ // that format is in Moment or Luxon. We need to pass a known
711
+ // value though the renderer and work out the format
712
+ //
713
+ // This is the same method as ColumnControl uses. A shared
714
+ // method might be appropriate in future.
715
+ let renderer = colInits[column].render;
716
+ let resultPm = renderer('1999-08-07T23:05:04Z', 'display');
717
+ let resultAm = renderer('1999-08-07T03:05:04Z', 'display');
718
+ let leadingZero = resultAm.includes('03');
719
+ // What formatter are we using?
720
+ if (DataTable.use('moment')) {
712
721
  conditionObj = this.c.conditions.moment;
713
- this.s.dateFormat =
714
- moment().creationData().locale._longDateFormat.L;
722
+ this.s.dateFormat = resultPm
723
+ .replace('23', leadingZero ? 'HH' : 'H')
724
+ .replace('11', leadingZero ? 'hh' : 'h')
725
+ .replace('05', 'mm')
726
+ .replace('04', 'ss')
727
+ .replace('PM', 'A')
728
+ .replace('pm', 'a')
729
+ .replace('07', 'DD')
730
+ .replace('7', 'D')
731
+ .replace('08', 'MM')
732
+ .replace('8', 'M')
733
+ .replace('1999', 'YYYY')
734
+ .replace('99', 'YY');
715
735
  }
716
- if (luxon) {
736
+ else if (DataTable.use('luxon')) {
717
737
  conditionObj = this.c.conditions.luxon;
718
- this.s.dateFormat = luxon.DateTime.DATE_SHORT;
738
+ this.s.dateFormat = resultPm
739
+ .replace('23', leadingZero ? 'HH' : 'H')
740
+ .replace('11', leadingZero ? 'hh' : 'h')
741
+ .replace('05', 'mm')
742
+ .replace('04', 'ss')
743
+ .replace('PM', 'a')
744
+ .replace('07', 'dd')
745
+ .replace('7', 'd')
746
+ .replace('08', 'MM')
747
+ .replace('8', 'M')
748
+ .replace('1999', 'yyyy')
749
+ .replace('99', 'yy');
750
+ }
751
+ else if (resultPm.includes('23') && resultPm.includes('1999')) {
752
+ this.s.dateFormat = 'YYYY-MM-DD hh:mm:ss';
753
+ }
754
+ else if (resultPm.includes('23')) {
755
+ this.s.dateFormat = 'hh:mm:ss';
719
756
  }
720
757
  }
721
758
  else if (this.s.type && this.s.type.includes('datetime-')) {
@@ -955,32 +992,14 @@ class Criteria {
955
992
  }
956
993
  }
957
994
  /**
958
- * Provides throttling capabilities to SearchBuilder without having to use dt's _fnThrottle function
959
- * This is because that function is not quite suitable for our needs as it runs initially rather than waiting
995
+ * Provides debounce capabilities to SearchBuilder. Makes use of DataTables'
996
+ * utility methods.
960
997
  *
961
998
  * @param args arguments supplied to the throttle function
962
999
  * @returns Function that is to be run that implements the throttling
963
1000
  */
964
1001
  _throttle(fn, frequency = 200) {
965
- let last = null;
966
- let timer = null;
967
- let that = this;
968
- if (frequency === null) {
969
- frequency = 200;
970
- }
971
- return function (...args) {
972
- let now = +new Date();
973
- if (last !== null && now < last + frequency) {
974
- clearTimeout(timer);
975
- }
976
- else {
977
- last = now;
978
- }
979
- timer = setTimeout(function () {
980
- last = null;
981
- fn.apply(that, args);
982
- }, frequency);
983
- };
1002
+ return DataTable.util.debounce(fn, frequency);
984
1003
  }
985
1004
  }
986
1005
  Criteria.classes = {
@@ -3585,7 +3604,7 @@ class SearchBuilder {
3585
3604
  });
3586
3605
  }
3587
3606
  }
3588
- SearchBuilder.version = '2.0.0';
3607
+ SearchBuilder.version = '2.0.1';
3589
3608
  SearchBuilder.classes = {
3590
3609
  button: 'dtsb-button',
3591
3610
  clearAll: 'dtsb-clearAll',
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "js/dataTables.searchBuilder.js",
5
5
  "module": "js/dataTables.searchBuilder.mjs",
6
6
  "types": "./types/types.d.ts",
7
- "version": "2.0.0",
7
+ "version": "2.0.1",
8
8
  "files": [
9
9
  "js/**/*.js",
10
10
  "js/**/*.mjs",
package/types/types.d.ts CHANGED
@@ -598,8 +598,8 @@ declare class Criteria {
598
598
  */
599
599
  private _populateValue;
600
600
  /**
601
- * Provides throttling capabilities to SearchBuilder without having to use dt's _fnThrottle function
602
- * This is because that function is not quite suitable for our needs as it runs initially rather than waiting
601
+ * Provides debounce capabilities to SearchBuilder. Makes use of DataTables'
602
+ * utility methods.
603
603
  *
604
604
  * @param args arguments supplied to the throttle function
605
605
  * @returns Function that is to be run that implements the throttling
@@ -611,7 +611,7 @@ type DeepPartial<T> = T extends object ? {
611
611
  [P in keyof T]?: DeepPartial<T[P]>;
612
612
  } : T;
613
613
  declare module 'datatables.net' {
614
- interface Config {
614
+ interface Options {
615
615
  /**
616
616
  * SearchBuilder extension options
617
617
  */
@@ -620,7 +620,7 @@ declare module 'datatables.net' {
620
620
  interface Defaults {
621
621
  searchBuilder?: ConfigSearchBuilder;
622
622
  }
623
- interface ConfigLanguage {
623
+ interface Language {
624
624
  /**
625
625
  * SearchBuilder language options
626
626
  */