![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ledger.corals.io/public/assets/corals/plugins/queryBuilder/js/ |
!function(e,t){"function"==typeof define&&define.amd?define("jQuery.extendext",["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(e.jQuery)}(this,function(e){"use strict";e.extendext=function(){var t,r,i,n,o,l,s=arguments[0]||{},a=1,u=arguments.length,p=!1,d="default";for("boolean"==typeof s&&(p=s,s=arguments[a++]||{}),"string"==typeof s&&("concat"!==(d=s.toLowerCase())&&"replace"!==d&&"extend"!==d&&(d="default"),s=arguments[a++]||{}),"object"==typeof s||e.isFunction(s)||(s={}),a===u&&(s=this,a--);a<u;a++)if(null!==(t=arguments[a]))if(e.isArray(t)&&"default"!==d)switch(l=s&&e.isArray(s)?s:[],d){case"concat":s=l.concat(e.extend(p,[],t));break;case"replace":s=e.extend(p,[],t);break;case"extend":t.forEach(function(t,r){if("object"==typeof t){var i=e.isArray(t)?[]:{};l[r]=e.extendext(p,d,l[r]||i,t)}else-1===l.indexOf(t)&&l.push(t)}),s=l}else for(r in t)i=s[r],s!==(n=t[r])&&(p&&n&&(e.isPlainObject(n)||(o=e.isArray(n)))?(o?(o=!1,l=i&&e.isArray(i)?i:[]):l=i&&e.isPlainObject(i)?i:{},s[r]=e.extendext(p,d,l,n)):void 0!==n&&(s[r]=n));return s}}),function(){"use strict";var e,t={name:"doT",version:"1.1.1",templateSettings:{evaluate:/\{\{([\s\S]+?(\}?)+)\}\}/g,interpolate:/\{\{=([\s\S]+?)\}\}/g,encode:/\{\{!([\s\S]+?)\}\}/g,use:/\{\{#([\s\S]+?)\}\}/g,useParams:/(^|[^\w$])def(?:\.|\[[\'\"])([\w$\.]+)(?:[\'\"]\])?\s*\:\s*([\w$\.]+|\"[^\"]+\"|\'[^\']+\'|\{[^\}]+\})/g,define:/\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,defineParams:/^\s*([\w$]+):([\s\S]+)/,conditional:/\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,iterate:/\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,varname:"it",strip:!0,append:!0,selfcontained:!1,doNotSkipEncoded:!1},template:void 0,compile:void 0,log:!0};t.encodeHTMLSource=function(e){var t={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},r=e?/[&<>"'\/]/g:/&(?!#?\w+;)|<|>|"|'|\//g;return function(e){return e?e.toString().replace(r,function(e){return t[e]||e}):""}},e=function(){return this||(0,eval)("this")}(),"undefined"!=typeof module&&module.exports?module.exports=t:"function"==typeof define&&define.amd?define("doT",function(){return t}):e.doT=t;var r={append:{start:"'+(",end:")+'",startencode:"'+encodeHTML("},split:{start:"';out+=(",end:");out+='",startencode:"';out+=encodeHTML("}},i=/$^/;function n(e){return e.replace(/\\('|\\)/g,"$1").replace(/[\r\t\n]/g," ")}t.template=function(o,l,s){var a,u,p=(l=l||t.templateSettings).append?r.append:r.split,d=0,c=l.use||l.define?function e(t,r,n){return("string"==typeof r?r:r.toString()).replace(t.define||i,function(e,r,i,o){return 0===r.indexOf("def.")&&(r=r.substring(4)),r in n||(":"===i?(t.defineParams&&o.replace(t.defineParams,function(e,t,i){n[r]={arg:t,text:i}}),r in n||(n[r]=o)):new Function("def","def['"+r+"']="+o)(n)),""}).replace(t.use||i,function(r,i){t.useParams&&(i=i.replace(t.useParams,function(e,t,r,i){if(n[r]&&n[r].arg&&i){var o=(r+":"+i).replace(/'|\\/g,"_");return n.__exp=n.__exp||{},n.__exp[o]=n[r].text.replace(new RegExp("(^|[^\\w$])"+n[r].arg+"([^\\w$])","g"),"$1"+i+"$2"),t+"def.__exp['"+o+"']"}}));var o=new Function("def","return "+i)(n);return o?e(t,o,n):o})}(l,o,s||{}):o;c=("var out='"+(l.strip?c.replace(/(^|\r|\n)\t* +| +\t*(\r|\n|$)/g," ").replace(/\r|\n|\t|\/\*[\s\S]*?\*\//g,""):c).replace(/'|\\/g,"\\$&").replace(l.interpolate||i,function(e,t){return p.start+n(t)+p.end}).replace(l.encode||i,function(e,t){return a=!0,p.startencode+n(t)+p.end}).replace(l.conditional||i,function(e,t,r){return t?r?"';}else if("+n(r)+"){out+='":"';}else{out+='":r?"';if("+n(r)+"){out+='":"';}out+='"}).replace(l.iterate||i,function(e,t,r,i){return t?(d+=1,u=i||"i"+d,t=n(t),"';var arr"+d+"="+t+";if(arr"+d+"){var "+r+","+u+"=-1,l"+d+"=arr"+d+".length-1;while("+u+"<l"+d+"){"+r+"=arr"+d+"["+u+"+=1];out+='"):"';} } out+='"}).replace(l.evaluate||i,function(e,t){return"';"+n(t)+"out+='"})+"';return out;").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/(\s|;|\}|^|\{)out\+='';/g,"$1").replace(/\+''/g,""),a&&(l.selfcontained||!e||e._encodeHTML||(e._encodeHTML=t.encodeHTMLSource(l.doNotSkipEncoded)),c="var encodeHTML = typeof _encodeHTML !== 'undefined' ? _encodeHTML : ("+t.encodeHTMLSource.toString()+"("+(l.doNotSkipEncoded||"")+"));"+c);try{return new Function(l.varname,c)}catch(e){throw"undefined"!=typeof console&&console.log("Could not create a template function: "+c),e}},t.compile=function(e,r){return t.template(e,null,r)}}(),function(e,t){"function"==typeof define&&define.amd?define("query-builder",["jquery","dot/doT","jquery-extendext"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),require("dot/doT"),require("jquery-extendext")):t(e.jQuery,e.doT)}(this,function(e,t){"use strict";var r=function(o,l){this.isResetingFilters=!1,o[0].queryBuilder=this,this.$el=o,this.settings=e.extendext(!0,"replace",{},r.DEFAULTS,l),this.model=new n,this.status={id:null,generated_id:!1,group_id:0,rule_id:0,has_optgroup:!1,has_operator_optgroup:!1},this.filters=this.settings.filters,this.icons=this.settings.icons,this.operators=this.settings.operators,this.templates=this.settings.templates,this.plugins=this.settings.plugins,this.lang=null,void 0===r.regional.en&&i.error("Config",'"i18n/en.js" not loaded.'),this.lang=e.extendext(!0,"replace",{},r.regional.en,r.regional[this.settings.lang_code],this.settings.lang),!1===this.settings.allow_groups?this.settings.allow_groups=0:!0===this.settings.allow_groups&&(this.settings.allow_groups=-1),Object.keys(this.templates).forEach(function(e){this.templates[e]||(this.templates[e]=r.templates[e]),"string"==typeof this.templates[e]&&(this.templates[e]=t.template(this.templates[e]))},this),this.$el.attr("id")||(this.$el.attr("id","qb_"+Math.floor(99999*Math.random())),this.status.generated_id=!0),this.status.id=this.$el.attr("id"),this.$el.addClass("query-builder form-inline"),this.filters=this.checkFilters(this.filters),this.operators=this.checkOperators(this.operators),this.bindEvents(),this.initPlugins()};e.extend(r.prototype,{trigger:function(t){var r=new e.Event(this._tojQueryEvent(t),{builder:this});return this.$el.triggerHandler(r,Array.prototype.slice.call(arguments,1)),r},change:function(t,r){var i=new e.Event(this._tojQueryEvent(t,!0),{builder:this,value:r});return this.$el.triggerHandler(i,Array.prototype.slice.call(arguments,2)),i.value},on:function(e,t){return this.$el.on(this._tojQueryEvent(e),t),this},off:function(e,t){return this.$el.off(this._tojQueryEvent(e),t),this},once:function(e,t){return this.$el.one(this._tojQueryEvent(e),t),this},_tojQueryEvent:function(e,t){return e.split(" ").map(function(e){return e+".queryBuilder"+(t?".filter":"")}).join(" ")}}),r.types={string:"string",integer:"number",double:"number",date:"datetime",time:"datetime",datetime:"datetime",boolean:"boolean"},r.inputs=["text","number","textarea","radio","checkbox","select"],r.modifiable_options=["display_errors","allow_groups","allow_empty","default_condition","default_filter"],r.selectors={group_container:".rules-group-container",rule_container:".rule-container",filter_container:".rule-filter-container",operator_container:".rule-operator-container",value_container:".rule-value-container",error_container:".error-container",condition_container:".rules-group-header .group-conditions",rule_header:".rule-header",group_header:".rules-group-header",group_actions:".group-actions",rule_actions:".rule-actions",rules_list:".rules-group-body>.rules-list",group_condition:".rules-group-header [name$=_cond]",rule_filter:".rule-filter-container [name$=_filter]",rule_operator:".rule-operator-container [name$=_operator]",rule_value:".rule-value-container [name*=_value_]",add_rule:"[data-add=rule]",delete_rule:"[data-delete=rule]",add_group:"[data-add=group]",delete_group:"[data-delete=group]"},r.templates={},r.regional={},r.OPERATORS={equal:{type:"equal",nb_inputs:1,multiple:!1,apply_to:["string","number","datetime","boolean"]},not_equal:{type:"not_equal",nb_inputs:1,multiple:!1,apply_to:["string","number","datetime","boolean"]},in:{type:"in",nb_inputs:1,multiple:!0,apply_to:["string","number","datetime"]},not_in:{type:"not_in",nb_inputs:1,multiple:!0,apply_to:["string","number","datetime"]},less:{type:"less",nb_inputs:1,multiple:!1,apply_to:["number","datetime"]},less_or_equal:{type:"less_or_equal",nb_inputs:1,multiple:!1,apply_to:["number","datetime"]},greater:{type:"greater",nb_inputs:1,multiple:!1,apply_to:["number","datetime"]},greater_or_equal:{type:"greater_or_equal",nb_inputs:1,multiple:!1,apply_to:["number","datetime"]},between:{type:"between",nb_inputs:2,multiple:!1,apply_to:["number","datetime"]},not_between:{type:"not_between",nb_inputs:2,multiple:!1,apply_to:["number","datetime"]},begins_with:{type:"begins_with",nb_inputs:1,multiple:!1,apply_to:["string"]},not_begins_with:{type:"not_begins_with",nb_inputs:1,multiple:!1,apply_to:["string"]},contains:{type:"contains",nb_inputs:1,multiple:!1,apply_to:["string"]},not_contains:{type:"not_contains",nb_inputs:1,multiple:!1,apply_to:["string"]},ends_with:{type:"ends_with",nb_inputs:1,multiple:!1,apply_to:["string"]},not_ends_with:{type:"not_ends_with",nb_inputs:1,multiple:!1,apply_to:["string"]},is_empty:{type:"is_empty",nb_inputs:0,multiple:!1,apply_to:["string"]},is_not_empty:{type:"is_not_empty",nb_inputs:0,multiple:!1,apply_to:["string"]},is_null:{type:"is_null",nb_inputs:0,multiple:!1,apply_to:["string","number","datetime","boolean"]},is_not_null:{type:"is_not_null",nb_inputs:0,multiple:!1,apply_to:["string","number","datetime","boolean"]}},r.DEFAULTS={filters:[],plugins:[],sort_filters:!1,display_errors:!0,allow_groups:-1,allow_empty:!1,conditions:["AND","OR"],default_condition:"AND",inputs_separator:" , ",select_placeholder:"------",display_empty_filter:!0,default_filter:null,optgroups:{},default_rule_flags:{filter_readonly:!1,operator_readonly:!1,value_readonly:!1,no_delete:!1},default_group_flags:{condition_readonly:!1,no_add_rule:!1,no_add_group:!1,no_delete:!1},templates:{group:null,rule:null,filterSelect:null,operatorSelect:null,ruleValueSelect:null},lang_code:"en",lang:{},operators:["equal","not_equal","in","not_in","less","less_or_equal","greater","greater_or_equal","between","not_between","begins_with","not_begins_with","contains","not_contains","ends_with","not_ends_with","is_empty","is_not_empty","is_null","is_not_null"],icons:{add_group:"glyphicon glyphicon-plus-sign",add_rule:"glyphicon glyphicon-plus",remove_group:"glyphicon glyphicon-remove",remove_rule:"glyphicon glyphicon-remove",error:"glyphicon glyphicon-warning-sign"}},r.plugins={},r.defaults=function(t){if("object"!=typeof t)return"string"==typeof t?"object"==typeof r.DEFAULTS[t]?e.extend(!0,{},r.DEFAULTS[t]):r.DEFAULTS[t]:e.extend(!0,{},r.DEFAULTS);e.extendext(!0,"replace",r.DEFAULTS,t)},r.define=function(e,t,i){r.plugins[e]={fct:t,def:i||{}}},r.extend=function(t){e.extend(r.prototype,t)},r.prototype.initPlugins=function(){if(this.plugins){if(e.isArray(this.plugins)){var t={};this.plugins.forEach(function(e){t[e]=null}),this.plugins=t}Object.keys(this.plugins).forEach(function(t){t in r.plugins?(this.plugins[t]=e.extend(!0,{},r.plugins[t].def,this.plugins[t]||{}),r.plugins[t].fct.call(this,this.plugins[t])):i.error("Config",'Unable to find plugin "{0}"',t)},this)}},r.prototype.getPluginOptions=function(e,t){var n;if(this.plugins&&this.plugins[e]?n=this.plugins[e]:r.plugins[e]&&(n=r.plugins[e].def),n)return t?n[t]:n;i.error("Config",'Unable to find plugin "{0}"',e)},r.prototype.init=function(e){this.trigger("afterInit"),e?(this.setRules(e),delete this.settings.rules):this.setRoot(!0)},r.prototype.checkFilters=function(e){var t=[];if(e&&0!==e.length||i.error("Config","Missing filters list"),e.forEach(function(e,n){switch(e.id||i.error("Config","Missing filter {0} id",n),-1!=t.indexOf(e.id)&&i.error("Config",'Filter "{0}" already defined',e.id),t.push(e.id),e.type?r.types[e.type]||i.error("Config",'Invalid type "{0}"',e.type):e.type="string",e.input?"function"!=typeof e.input&&-1==r.inputs.indexOf(e.input)&&i.error("Config",'Invalid input "{0}"',e.input):e.input="number"===r.types[e.type]?"number":"text",e.operators&&e.operators.forEach(function(e){"string"!=typeof e&&i.error("Config","Filter operators must be global operators types (string)")}),e.field||(e.field=e.id),e.label||(e.label=e.field),e.optgroup?(this.status.has_optgroup=!0,this.settings.optgroups[e.optgroup]||(this.settings.optgroups[e.optgroup]=e.optgroup)):e.optgroup=null,e.input){case"radio":case"checkbox":!e.values||e.values.length;break;case"select":var o=[];e.has_optgroup=!1,i.iterateOptions(e.values,function(t,r,i){o.push({value:t,label:r,optgroup:i||null}),i&&(e.has_optgroup=!0,this.settings.optgroups[i]||(this.settings.optgroups[i]=i))}.bind(this)),e.has_optgroup?e.values=i.groupSort(o,"optgroup"):e.values=o,e.placeholder&&(void 0===e.placeholder_value&&(e.placeholder_value=-1),e.values.forEach(function(t){t.value==e.placeholder_value&&i.error("Config",'Placeholder of filter "{0}" overlaps with one of its values',e.id)}))}},this),this.settings.sort_filters)if("function"==typeof this.settings.sort_filters)e.sort(this.settings.sort_filters);else{var n=this;e.sort(function(e,t){return n.translate(e.label).localeCompare(n.translate(t.label))})}return this.status.has_optgroup&&(e=i.groupSort(e,"optgroup")),e},r.prototype.checkOperators=function(t){var n=[];return t.forEach(function(o,l){"string"==typeof o?(r.OPERATORS[o]||i.error("Config",'Unknown operator "{0}"',o),t[l]=o=e.extendext(!0,"replace",{},r.OPERATORS[o])):(o.type||i.error("Config",'Missing "type" for operator {0}',l),r.OPERATORS[o.type]&&(t[l]=o=e.extendext(!0,"replace",{},r.OPERATORS[o.type],o)),void 0!==o.nb_inputs&&void 0!==o.apply_to||i.error("Config",'Missing "nb_inputs" and/or "apply_to" for operator "{0}"',o.type)),-1!=n.indexOf(o.type)&&i.error("Config",'Operator "{0}" already defined',o.type),n.push(o.type),o.optgroup?(this.status.has_operator_optgroup=!0,this.settings.optgroups[o.optgroup]||(this.settings.optgroups[o.optgroup]=o.optgroup)):o.optgroup=null},this),this.status.has_operator_optgroup&&(t=i.groupSort(t,"optgroup")),t},r.prototype.bindEvents=function(){var t=this,i=r.selectors;this.$el.on("change.queryBuilder",i.group_condition,function(){if(e(this).is(":checked")){var r=e(this).closest(i.group_container);t.getModel(r).condition=e(this).val()}}),this.$el.on("change.queryBuilder",i.rule_filter,function(){var r=e(this).closest(i.rule_container);t.getModel(r).filter=t.getFilterById(e(this).val())}),this.$el.on("change.queryBuilder",i.rule_operator,function(){var r=e(this).closest(i.rule_container);t.getModel(r).operator=t.getOperatorByType(e(this).val())}),this.$el.on("click.queryBuilder",i.add_rule,function(){var r=e(this).closest(i.group_container);t.addRule(t.getModel(r))}),this.$el.on("click.queryBuilder",i.delete_rule,function(){var r=e(this).closest(i.rule_container);t.deleteRule(t.getModel(r))}),this.$el.on("afterSetRules.queryBuilder",()=>{setTimeout(()=>{e(".rule-value-container").find("input, select").each(function(){e(this).trigger("change")}),this.$el.isSetRules=!1},1e3)}),0!==this.settings.allow_groups&&(this.$el.on("click.queryBuilder",i.add_group,function(){var r=e(this).closest(i.group_container);t.addGroup(t.getModel(r))}),this.$el.on("click.queryBuilder",i.delete_group,function(){var r=e(this).closest(i.group_container);t.deleteGroup(t.getModel(r))})),this.model.on({drop:function(e,r){r.$el.remove(),t.refreshGroupsConditions()},add:function(e,i,n,o){0===o?n.$el.prependTo(i.$el.find(">"+r.selectors.rules_list)):n.$el.insertAfter(i.rules[o-1].$el),t.refreshGroupsConditions()},move:function(e,i,n,o){i.$el.detach(),0===o?i.$el.prependTo(n.$el.find(">"+r.selectors.rules_list)):i.$el.insertAfter(n.rules[o-1].$el),t.refreshGroupsConditions()},update:function(e,r,i,n,o){if(r instanceof s)switch(i){case"error":t.updateError(r);break;case"flags":t.applyRuleFlags(r);break;case"filter":t.updateRuleFilter(r,o);break;case"operator":t.updateRuleOperator(r,o);break;case"value":t.updateRuleValue(r,o)}else switch(i){case"error":t.updateError(r);break;case"flags":t.applyGroupFlags(r);break;case"condition":t.updateGroupCondition(r,o)}}})},r.prototype.setRoot=function(t,r,i){t=void 0===t||!0===t;var n=this.nextGroupId(),o=e(this.getGroupTemplate(n,1));return this.$el.append(o),this.model.root=new l(null,o),this.model.root.model=this.model,this.model.root.data=r,this.model.root.flags=e.extend({},this.settings.default_group_flags,i),this.model.root.condition=this.settings.default_condition,this.trigger("afterAddGroup",this.model.root),t&&this.addRule(this.model.root),this.model.root},r.prototype.addGroup=function(t,r,i,n){r=void 0===r||!0===r;var o=t.level+1;if(this.trigger("beforeAddGroup",t,r,o).isDefaultPrevented())return null;var l=this.nextGroupId(),s=e(this.getGroupTemplate(l,o)),a=t.addGroup(s);return a.data=i,a.flags=e.extend({},this.settings.default_group_flags,n),a.condition=this.settings.default_condition,this.trigger("afterAddGroup",a),this.trigger("rulesChanged"),r&&this.addRule(a),a},r.prototype.deleteGroup=function(e){if(e.isRoot())return!1;if(this.trigger("beforeDeleteGroup",e).isDefaultPrevented())return!1;var t=!0;return e.each("reverse",function(e){t&=this.deleteRule(e)},function(e){t&=this.deleteGroup(e)},this),t&&(e.drop(),this.trigger("afterDeleteGroup"),this.trigger("rulesChanged")),t},r.prototype.updateGroupCondition=function(t,i){t.$el.find(">"+r.selectors.group_condition).each(function(){var r=e(this);r.prop("checked",r.val()===t.condition),r.parent().toggleClass("active",r.val()===t.condition)}),this.trigger("afterUpdateGroupCondition",t,i),this.trigger("rulesChanged")},r.prototype.refreshGroupsConditions=function(){!function e(t){(!t.flags||t.flags&&!t.flags.condition_readonly)&&t.$el.find(">"+r.selectors.group_condition).prop("disabled",t.rules.length<=1).parent().toggleClass("disabled",t.rules.length<=1),t.each(null,function(t){e(t)},this)}(this.model.root)},r.prototype.addRule=function(t,r,i){if(this.trigger("beforeAddRule",t).isDefaultPrevented())return null;var n=this.nextRuleId(),o=e(this.getRuleTemplate(n)),l=t.addRule(o);return l.data=r,l.flags=e.extend({},this.settings.default_rule_flags,i),this.trigger("afterAddRule",l),this.trigger("rulesChanged"),this.createRuleFilters(l),!this.settings.default_filter&&this.settings.display_empty_filter||(l.filter=this.change("getDefaultFilter",this.getFilterById(this.settings.default_filter||this.filters[0].id),l)),l},r.prototype.deleteRule=function(e){return!e.flags.no_delete&&(!this.trigger("beforeDeleteRule",e).isDefaultPrevented()&&(e.drop(),this.trigger("afterDeleteRule"),this.trigger("rulesChanged"),!0))},r.prototype.createRuleFilters=function(t){var i=this.change("getRuleFilters",this.filters,t),n=e(this.getRuleFilterSelect(t,i));t.$el.find(r.selectors.filter_container).html(n),this.trigger("afterCreateRuleFilters",t),this.applyRuleFlags(t)},r.prototype.createRuleOperators=function(t){var i=t.$el.find(r.selectors.operator_container).empty();if(t.filter){var n=this.getOperators(t.filter),o=e(this.getRuleOperatorSelect(t,n));i.html(o),t.filter.default_operator?t.__.operator=this.getOperatorByType(t.filter.default_operator):t.__.operator=n[0],t.$el.find(r.selectors.rule_operator).val(t.operator.type),this.trigger("afterCreateRuleOperators",t,n),this.applyRuleFlags(t)}},r.prototype.createRuleInput=async function(t){var i=t.$el.find(r.selectors.value_container).empty();if(t.__.value=void 0,t.filter&&t.operator&&0!==t.operator.nb_inputs){for(var n=this,o=e(),l=t.filter,s=0;s<t.operator.nb_inputs;s++){var a=e(await this.getRuleInput(t,s));s>0&&i.append(this.settings.inputs_separator),i.append(a),o=o.add(a)}i.css("display",""),o.on("change "+(l.input_event||""),function(){t._updating_input||(t._updating_value=!0,t.value=n.getRuleInputValue(t),t._updating_value=!1)}),l.plugin&&o[l.plugin](l.plugin_config||{}),this.updateRuleValue(t,t.value),this.trigger("afterCreateRuleInput",t),initSelect2ajax(),initThemeElements(),void 0!==l.default_value?t.value=l.default_value:(t._updating_value=!0,t.value=n.getRuleInputValue(t),t._updating_value=!1),this.applyRuleFlags(t)}},r.prototype.updateRuleFilter=function(e,t){this.createRuleOperators(e),this.$el.isSetRules||this.createRuleInput(e),e.$el.find(r.selectors.rule_filter).val(e.filter?e.filter.id:"-1"),t&&e.filter&&t.id!==e.filter.id&&(e.data=void 0),this.trigger("afterUpdateRuleFilter",e,t),this.trigger("rulesChanged")},r.prototype.updateRuleOperator=function(e,t){var i=e.$el.find(r.selectors.value_container);e.operator&&0!==e.operator.nb_inputs?(i.css("display",""),!i.is(":empty")&&t&&e.operator.nb_inputs===t.nb_inputs&&e.operator.optgroup===t.optgroup&&e.operator.type===t.type||this.createRuleInput(e)):(i.hide(),e.__.value=void 0),e.operator&&(e.$el.find(r.selectors.rule_operator).val(e.operator.type),e.__.value=this.getRuleInputValue(e)),this.trigger("afterUpdateRuleOperator",e,t),this.trigger("rulesChanged")},r.prototype.updateRuleValue=function(e,t){e._updating_value||this.setRuleInputValue(e,e.value),this.trigger("afterUpdateRuleValue",e,t),this.trigger("rulesChanged")},r.prototype.applyRuleFlags=function(e){var t=e.flags,i=r.selectors;e.$el.find(i.rule_filter).prop("disabled",t.filter_readonly),e.$el.find(i.rule_operator).prop("disabled",t.operator_readonly),e.$el.find(i.rule_value).prop("disabled",t.value_readonly),t.no_delete&&e.$el.find(i.delete_rule).remove(),this.trigger("afterApplyRuleFlags",e)},r.prototype.applyGroupFlags=function(e){var t=e.flags,i=r.selectors;e.$el.find(">"+i.group_condition).prop("disabled",t.condition_readonly).parent().toggleClass("readonly",t.condition_readonly),t.no_add_rule&&e.$el.find(i.add_rule).remove(),t.no_add_group&&e.$el.find(i.add_group).remove(),t.no_delete&&e.$el.find(i.delete_group).remove(),this.trigger("afterApplyGroupFlags",e)},r.prototype.clearErrors=function(e){(e=e||this.model.root)&&(e.error=null,e instanceof l&&e.each(function(e){e.error=null},function(e){this.clearErrors(e)},this))},r.prototype.updateError=function(e){if(this.settings.display_errors)if(null===e.error)e.$el.removeClass("has-error");else{var t=this.translate("errors",e.error[0]);t=i.fmt(t,e.error.slice(1)),t=this.change("displayError",t,e.error,e),e.$el.addClass("has-error").find(r.selectors.error_container).eq(0).attr("title",t)}},r.prototype.triggerValidationError=function(t,r,i){e.isArray(r)||(r=[r]),this.trigger("validationError",t,r,i).isDefaultPrevented()||(t.error=r)},r.prototype.destroy=function(){this.trigger("beforeDestroy"),this.status.generated_id&&this.$el.removeAttr("id"),this.clear(),this.model=null,this.$el.off(".queryBuilder").removeClass("query-builder").removeData("queryBuilder"),delete this.$el[0].queryBuilder},r.prototype.reset=function(){this.trigger("beforeReset").isDefaultPrevented()||(this.status.group_id=1,this.status.rule_id=0,this.model.root.empty(),this.model.root.data=void 0,this.model.root.flags=e.extend({},this.settings.default_group_flags),this.model.root.condition=this.settings.default_condition,this.addRule(this.model.root),this.trigger("afterReset"),this.trigger("rulesChanged"),this.isResetingFilters=!0)},r.prototype.clear=function(){this.trigger("beforeClear").isDefaultPrevented()||(this.status.group_id=0,this.status.rule_id=0,this.model.root&&(this.model.root.drop(),this.model.root=null),this.trigger("afterClear"),this.trigger("rulesChanged"))},r.prototype.setOptions=function(t){e.each(t,function(e,t){-1!==r.modifiable_options.indexOf(e)&&(this.settings[e]=t)}.bind(this))},r.prototype.getModel=function(t){return t?t instanceof o?t:e(t).data("queryBuilderModel"):this.model.root},r.prototype.validate=function(t){t=e.extend({skip_empty:!1},t),this.clearErrors();var r=this,i=function e(i){var n=0,o=0;return i.each(function(e){if(e.filter||!t.skip_empty){if(!e.filter)return r.triggerValidationError(e,"no_filter",null),void o++;if(!e.operator)return r.triggerValidationError(e,"no_operator",null),void o++;if(0!==e.operator.nb_inputs){var i=r.validateValue(e,e.value);if(!0!==i)return r.triggerValidationError(e,i,e.value),void o++}n++}},function(t){var r=e(t);!0===r?n++:!1===r&&o++}),!(o>0)&&(0===n&&!i.isRoot()&&t.skip_empty?null:!!(0!==n||r.settings.allow_empty&&i.isRoot())||(r.triggerValidationError(i,"empty_group",null),!1))}(this.model.root);return this.change("validate",i)},r.prototype.getRules=function(t){if(!this.isResetingFilters){t=e.extend({get_flags:!1,allow_invalid:!1,skip_empty:!1},t);var r=this.validate(t);if(!r&&!t.allow_invalid)return null;var i=this,n=function r(n){var o={condition:n.condition,rules:[]};if(n.data&&(o.data=e.extendext(!0,"replace",{},n.data)),t.get_flags){var l=i.getGroupFlags(n.flags,"all"===t.get_flags);e.isEmptyObject(l)||(o.flags=l)}return n.each(function(r){if(r.filter||!t.skip_empty){var n=null;r.operator&&0===r.operator.nb_inputs||(n=r.value);var l={id:r.filter?r.filter.id:null,field:r.filter?r.filter.field:null,type:r.filter?r.filter.type:null,input:r.filter?r.filter.input:null,operator:r.operator?r.operator.type:null,value:n};if((r.filter&&r.filter.data||r.data)&&(l.data=e.extendext(!0,"replace",{},r.filter.data,r.data)),t.get_flags){var s=i.getRuleFlags(r.flags,"all"===t.get_flags);e.isEmptyObject(s)||(l.flags=s)}o.rules.push(i.change("ruleToJson",l,r))}},function(e){var i=r(e);0===i.rules.length&&t.skip_empty||o.rules.push(i)},this),i.change("groupToJson",o,n)}(this.model.root);return n.valid=r,this.change("getRules",n)}this.isResetingFilters=!this.isResetingFilters},r.prototype.setRules=function(t,r){this.$el.isSetRules=!0,r=e.extend({allow_invalid:!1},r),e.isArray(t)&&(t={condition:this.settings.default_condition,rules:t}),t&&t.rules&&(0!==t.rules.length||this.settings.allow_empty)||i.error("RulesParse","Incorrect data object passed"),this.clear(),this.setRoot(!1,t.data,this.parseGroupFlags(t)),t=this.change("setRules",t,r);var n=this;!function e(t,o){null!==o&&(void 0===t.condition?t.condition=n.settings.default_condition:-1==n.settings.conditions.indexOf(t.condition)&&(i.error(!r.allow_invalid,"UndefinedCondition",'Invalid condition "{0}"',t.condition),t.condition=n.settings.default_condition),o.condition=t.condition,t.rules.forEach(function(t){var l;if(void 0!==t.rules)if(-1!==n.settings.allow_groups&&n.settings.allow_groups<o.level)i.error(!r.allow_invalid,"RulesParse","No more than {0} groups are allowed",n.settings.allow_groups),n.reset();else{if(null===(l=n.addGroup(o,!1,t.data,n.parseGroupFlags(t))))return;e(t,l)}else{if(t.empty||(void 0===t.id&&(i.error(!r.allow_invalid,"RulesParse","Missing rule field id"),t.empty=!0),void 0===t.operator&&(t.operator="equal")),null===(l=n.addRule(o,t.data,n.parseRuleFlags(t))))return;t.empty||(l.filter=n.getFilterById(t.id,!r.allow_invalid)),l.filter&&(l.operator=n.getOperatorByType(t.operator,!r.allow_invalid),l.operator||(l.operator=n.getOperators(l.filter)[0])),l.operator&&0!==l.operator.nb_inputs&&(void 0!==t.value?l.value=t.value:void 0!==l.filter.default_value&&(l.value=l.filter.default_value)),n.change("jsonToRule",l,t)!=l&&i.error("RulesParse","Plugin tried to change rule reference")}}),n.change("jsonToGroup",o,t)!=o&&i.error("RulesParse","Plugin tried to change group reference"))}(t,this.model.root),this.trigger("afterSetRules")},r.prototype.validateValue=function(e,t){var r=e.filter.validation||{},i=!0;return i=r.callback?r.callback.call(this,t,e):this._validateValue(e,t),this.change("validateValue",i,t,e)},r.prototype._validateValue=function(t,n){var o,l,s=t.filter,a=t.operator,u=s.validation||{},p=!0;1===t.operator.nb_inputs&&(n=[n]);for(var d=0;d<a.nb_inputs;d++){if(!a.multiple&&e.isArray(n[d])&&n[d].length>1){p=["operator_not_multiple",a.type,this.translate("operators",a.type)];break}switch(s.input){case"radio":if(void 0===n[d]||0===n[d].length){u.allow_empty_value||(p=["radio_empty"]);break}break;case"checkbox":if(void 0===n[d]||0===n[d].length){u.allow_empty_value||(p=["checkbox_empty"]);break}break;case"select":if(void 0===n[d]||0===n[d].length||s.placeholder&&n[d]==s.placeholder_value){u.allow_empty_value||(p=["select_empty"]);break}break;default:l=e.isArray(n[d])?n[d]:[n[d]];for(var c=0;c<l.length;c++){switch(r.types[s.type]){case"string":if(void 0===l[c]||0===l[c].length){u.allow_empty_value||(p=["string_empty"]);break}if(void 0!==u.min&&l[c].length<parseInt(u.min)){p=[this.getValidationMessage(u,"min","string_exceed_min_length"),u.min];break}if(void 0!==u.max&&l[c].length>parseInt(u.max)){p=[this.getValidationMessage(u,"max","string_exceed_max_length"),u.max];break}if(u.format&&("string"==typeof u.format&&(u.format=new RegExp(u.format)),!u.format.test(l[c]))){p=[this.getValidationMessage(u,"format","string_invalid_format"),u.format];break}break;case"number":if(void 0===l[c]||0===l[c].length){u.allow_empty_value||(p=["number_nan"]);break}if(isNaN(l[c])){p=["number_nan"];break}if("integer"==s.type){if(parseInt(l[c])!=l[c]){p=["number_not_integer"];break}}else if(parseFloat(l[c])!=l[c]){p=["number_not_double"];break}if(void 0!==u.min&&l[c]<parseFloat(u.min)){p=[this.getValidationMessage(u,"min","number_exceed_min"),u.min];break}if(void 0!==u.max&&l[c]>parseFloat(u.max)){p=[this.getValidationMessage(u,"max","number_exceed_max"),u.max];break}if(void 0!==u.step&&"any"!==u.step){var f=(l[c]/u.step).toPrecision(14);if(parseInt(f)!=f){p=[this.getValidationMessage(u,"step","number_wrong_step"),u.step];break}}break;case"datetime":if(void 0===l[c]||0===l[c].length){u.allow_empty_value||(p=["datetime_empty"]);break}if(u.format){"moment"in window||i.error("MissingLibrary","MomentJS is required for Date/Time validation. Get it here http://momentjs.com");var g=moment(l[c],u.format);if(!g.isValid()){p=[this.getValidationMessage(u,"format","datetime_invalid"),u.format];break}if(u.min&&g<moment(u.min,u.format)){p=[this.getValidationMessage(u,"min","datetime_exceed_min"),u.min];break}if(u.max&&g>moment(u.max,u.format)){p=[this.getValidationMessage(u,"max","datetime_exceed_max"),u.max];break}}break;case"boolean":if(void 0===l[c]||0===l[c].length){u.allow_empty_value||(p=["boolean_not_valid"]);break}if("true"!==(o=(""+l[c]).trim().toLowerCase())&&"false"!==o&&"1"!==o&&"0"!==o&&1!==l[c]&&0!==l[c]){p=["boolean_not_valid"];break}}if(!0!==p)break}}if(!0!==p)break}if(("between"===t.operator.type||"not_between"===t.operator.type)&&2===n.length)switch(r.types[s.type]){case"number":n[0]>n[1]&&(p=["number_between_invalid",n[0],n[1]]);break;case"datetime":u.format&&("moment"in window||i.error("MissingLibrary","MomentJS is required for Date/Time validation. Get it here http://momentjs.com"),moment(n[0],u.format).isAfter(moment(n[1],u.format))&&(p=["datetime_between_invalid",n[0],n[1]]))}return p},r.prototype.nextGroupId=function(){return this.status.id+"_group_"+this.status.group_id++},r.prototype.nextRuleId=function(){return this.status.id+"_rule_"+this.status.rule_id++},r.prototype.getOperators=function(e){"string"==typeof e&&(e=this.getFilterById(e));for(var t=[],i=0,n=this.operators.length;i<n;i++){if(e.operators){if(-1==e.operators.indexOf(this.operators[i].type))continue}else if(-1==this.operators[i].apply_to.indexOf(r.types[e.type]))continue;t.push(this.operators[i])}return e.operators&&t.sort(function(t,r){return e.operators.indexOf(t.type)-e.operators.indexOf(r.type)}),this.change("getOperators",t,e)},r.prototype.getFilterById=function(e,t){if("-1"==e)return null;for(var r=0,n=this.filters.length;r<n;r++)if(this.filters[r].id==e)return this.filters[r];return i.error(!1!==t,"UndefinedFilter",'Undefined filter "{0}"',e),null},r.prototype.getOperatorByType=function(e,t){if("-1"==e)return null;for(var r=0,n=this.operators.length;r<n;r++)if(this.operators[r].type==e)return this.operators[r];return i.error(!1!==t,"UndefinedOperator",'Undefined operator "{0}"',e),null},r.prototype.getRuleInputValue=function(t){var n=t.filter,o=t.operator,l=[];if(n.valueGetter)l=n.valueGetter.call(this,t);else{for(var s=t.$el.find(r.selectors.value_container),a=0;a<o.nb_inputs;a++){var u,p=i.escapeElementId(t.id+"_value_"+a);switch(n.input){case"radio":l.push(s.find("[name="+p+"]:checked").val());break;case"checkbox":u=[],s.find("[name="+p+"]:checked").each(function(){u.push(e(this).val())}),l.push(u);break;case"select":n.multiple||["in","not_in"].includes(t.operator.type)?(u=e(`[name='${p}[]']`).val(),l.push(u)):l.push(s.find("[name="+p+"] option:selected").val());break;default:l.push(s.find("[name="+p+"]").val())}}l=l.map(function(t){return o.multiple&&n.value_separator&&"string"==typeof t&&(t=t.split(n.value_separator)),e.isArray(t)?t.map(function(e){return i.changeType(e,n.type)}):i.changeType(t,n.type)}),1===o.nb_inputs&&(l=l[0]),n.valueParser&&(l=n.valueParser.call(this,t,l))}return this.change("getRuleValue",l,t)},r.prototype.setRuleInputValue=function(t,n){var o=t.filter,l=t.operator;if(o&&l){if(t._updating_input=!0,o.valueSetter)o.valueSetter.call(this,t,n);else{var s=t.$el.find(r.selectors.value_container);1==l.nb_inputs&&(n=[n]);for(var a=0;a<l.nb_inputs;a++)if(n){var u=i.escapeElementId(t.id+"_value_"+a);switch(o.input){case"radio":s.find("[name="+u+'][value="'+n[a]+'"]').prop("checked",!0).trigger("change");break;case"checkbox":e.isArray(n[a])||(n[a]=[n[a]]),n[a].forEach(function(e){s.find("[name="+u+'][value="'+e+'"]').prop("checked",!0).trigger("change")});break;default:l.multiple&&o.value_separator&&e.isArray(n[a])&&(n[a]=n[a].join(o.value_separator)),l.multiple&&(u+="[]"),n&&null!==n[a]&&s.find('[name="'+u+'"]').val(n[a]).trigger("change")}}}t._updating_input=!1}},r.prototype.parseRuleFlags=function(t){var r=e.extend({},this.settings.default_rule_flags);return t.readonly&&e.extend(r,{filter_readonly:!0,operator_readonly:!0,value_readonly:!0,no_delete:!0}),t.flags&&e.extend(r,t.flags),this.change("parseRuleFlags",r,t)},r.prototype.getRuleFlags=function(t,r){if(r)return e.extend({},t);var i={};return e.each(this.settings.default_rule_flags,function(e,r){t[e]!==r&&(i[e]=t[e])}),i},r.prototype.parseGroupFlags=function(t){var r=e.extend({},this.settings.default_group_flags);return t.readonly&&e.extend(r,{condition_readonly:!0,no_add_rule:!0,no_add_group:!0,no_delete:!0}),t.flags&&e.extend(r,t.flags),this.change("parseGroupFlags",r,t)},r.prototype.getGroupFlags=function(t,r){if(r)return e.extend({},t);var i={};return e.each(this.settings.default_group_flags,function(e,r){t[e]!==r&&(i[e]=t[e])}),i},r.prototype.translate=function(e,t){var r;return t||(t=e,e=void 0),r="object"==typeof t?t[this.settings.lang_code]||t.en:(e?this.lang[e]:this.lang)[t]||t,this.change("translate",r,t,e)},r.prototype.getValidationMessage=function(e,t,r){return e.messages&&e.messages[t]||r},r.templates.group='<div id="{{= it.group_id }}" class="rules-group-container"> <div class="rules-group-header"> <div class="btn-group pull-right group-actions"> <button type="button" class="btn btn-xs btn-success" data-add="rule"> <i class="{{= it.icons.add_rule }}"></i> {{= it.translate("add_rule") }} </button> {{? it.settings.allow_groups===-1 || it.settings.allow_groups>=it.level }} <button type="button" class="btn btn-xs btn-success" data-add="group"> <i class="{{= it.icons.add_group }}"></i> {{= it.translate("add_group") }} </button> {{?}} {{? it.level>1 }} <button type="button" class="btn btn-xs btn-danger" data-delete="group"> <i class="{{= it.icons.remove_group }}"></i> {{= it.translate("delete_group") }} </button> {{?}} </div> <div class="btn-group group-conditions"> {{~ it.conditions: condition }} <label class="btn btn-xs btn-primary"> <input type="radio" name="{{= it.group_id }}_cond" value="{{= condition }}"> {{= it.translate("conditions", condition) }} </label> {{~}} </div> {{? it.settings.display_errors }} <div class="error-container"><i class="{{= it.icons.error }}"></i></div> {{?}} </div> <div class=rules-group-body> <div class=rules-list></div> </div> </div>',r.templates.rule='<div id="{{= it.rule_id }}" class="rule-container"> <div class="rule-header"> <div class="btn-group pull-right rule-actions"> <button type="button" class="btn btn-xs btn-danger" data-delete="rule"> <i class="{{= it.icons.remove_rule }}"></i> {{= it.translate("delete_rule") }} </button> </div> </div> {{? it.settings.display_errors }} <div class="error-container"><i class="{{= it.icons.error }}"></i></div> {{?}} <div class="rule-filter-container"></div> <div class="rule-operator-container"></div> <div class="rule-value-container"></div> </div>',r.templates.filterSelect='{{ var optgroup = null; }} <select class="form-control" name="{{= it.rule.id }}_filter"> {{? it.settings.display_empty_filter }} <option value="-1">{{= it.settings.select_placeholder }}</option> {{?}} {{~ it.filters: filter }} {{? optgroup !== filter.optgroup }} {{? optgroup !== null }}</optgroup>{{?}} {{? (optgroup = filter.optgroup) !== null }} <optgroup label="{{= it.translate(it.settings.optgroups[optgroup]) }}"> {{?}} {{?}} <option value="{{= filter.id }}" {{? filter.icon}}data-icon="{{= filter.icon}}"{{?}}>{{= it.translate(filter.label) }}</option> {{~}} {{? optgroup !== null }}</optgroup>{{?}} </select>',r.templates.operatorSelect='{{? it.operators.length === 1 }} <span> {{= it.translate("operators", it.operators[0].type) }} </span> {{?}} {{ var optgroup = null; }} <select class="form-control {{? it.operators.length === 1 }}hide{{?}}" name="{{= it.rule.id }}_operator"> {{~ it.operators: operator }} {{? optgroup !== operator.optgroup }} {{? optgroup !== null }}</optgroup>{{?}} {{? (optgroup = operator.optgroup) !== null }} <optgroup label="{{= it.translate(it.settings.optgroups[optgroup]) }}"> {{?}} {{?}} <option value="{{= operator.type }}" {{? operator.icon}}data-icon="{{= operator.icon}}"{{?}}>{{= it.translate("operators", operator.type) }}</option> {{~}} {{? optgroup !== null }}</optgroup>{{?}} </select>',r.templates.ruleValueSelect='{{ var optgroup = null; }} <select class="form-control" name="{{= it.name }}" {{? it.rule.filter.multiple }}multiple{{?}}> {{? it.rule.filter.placeholder }} <option value="{{= it.rule.filter.placeholder_value }}" disabled selected>{{= it.rule.filter.placeholder }}</option> {{?}} {{~ it.rule.filter.values: entry }} {{? optgroup !== entry.optgroup }} {{? optgroup !== null }}</optgroup>{{?}} {{? (optgroup = entry.optgroup) !== null }} <optgroup label="{{= it.translate(it.settings.optgroups[optgroup]) }}"> {{?}} {{?}} <option value="{{= entry.value }}">{{= entry.label }}</option> {{~}} {{? optgroup !== null }}</optgroup>{{?}} </select>',r.prototype.getGroupTemplate=function(e,t){var r=this.templates.group({builder:this,group_id:e,level:t,conditions:this.settings.conditions,icons:this.icons,settings:this.settings,translate:this.translate.bind(this)});return this.change("getGroupTemplate",r,t)},r.prototype.getRuleTemplate=function(e){var t=this.templates.rule({builder:this,rule_id:e,icons:this.icons,settings:this.settings,translate:this.translate.bind(this)});return this.change("getRuleTemplate",t)},r.prototype.getRuleFilterSelect=function(e,t){var r=this.templates.filterSelect({builder:this,rule:e,filters:t,icons:this.icons,settings:this.settings,translate:this.translate.bind(this)});return this.change("getRuleFilterSelect",r,e,t)},r.prototype.getRuleOperatorSelect=function(e,t){var r=this.templates.operatorSelect({builder:this,rule:e,operators:t,icons:this.icons,settings:this.settings,translate:this.translate.bind(this)});return this.change("getRuleOperatorSelect",r,e,t)},r.prototype.getRuleValueSelect=function(e,t){var r=this.templates.ruleValueSelect({builder:this,name:e,rule:t,icons:this.icons,settings:this.settings,translate:this.translate.bind(this)});return this.change("getRuleValueSelect",r,e,t)},r.prototype.getRuleInput=async function(t,r){var i=t.filter,n=(t.filter.validation,t.id+"_value_"+r),o=(i.vertical,"");return"function"==typeof i.input?o=i.input.call(this,t,n):(i.name=n,o=await e.get(`${window.base_url}/utilities/render-query-builder-filter-input`,{filter:i,operator:t.operator},e=>e)),this.change("getRuleInput",o,t,n)};var i={};function n(){this.root=null,this.$=e(this)}r.utils=i,i.iterateOptions=function(t,r){t&&(e.isArray(t)?t.forEach(function(t){e.isPlainObject(t)?"value"in t?r(t.value,t.label||t.value,t.optgroup):e.each(t,function(e,t){return r(e,t),!1}):r(t,t)}):e.each(t,function(e,t){r(e,t)}))},i.fmt=function(e,t){return Array.isArray(t)||(t=Array.prototype.slice.call(arguments,1)),e.replace(/{([0-9]+)}/g,function(e,r){return t[parseInt(r)]})},i.error=function(){var e=0,t="boolean"!=typeof arguments[e]||arguments[e++],r=arguments[e++],n=arguments[e++],o=Array.isArray(arguments[e])?arguments[e]:Array.prototype.slice.call(arguments,e);if(t){var l=new Error(i.fmt(n,o));throw l.name=r+"Error",l.args=o,l}console.error(r+"Error: "+i.fmt(n,o))},i.changeType=function(e,t){if(""!==e&&void 0!==e)switch(t){case"integer":return"string"!=typeof e||/^-?\d+$/.test(e)?parseInt(e):e;case"double":return"string"!=typeof e||/^-?\d+\.?\d*$/.test(e)?parseFloat(e):e;case"boolean":return"string"!=typeof e||/^(0|1|true|false){1}$/i.test(e)?!0===e||1===e||"true"===e.toLowerCase()||"1"===e:e;default:return e}},i.escapeString=function(e){return"string"!=typeof e?e:e.replace(/[\0\n\r\b\\\'\"]/g,function(e){switch(e){case"\0":return"\\0";case"\n":return"\\n";case"\r":return"\\r";case"\b":return"\\b";default:return"\\"+e}}).replace(/\t/g,"\\t").replace(/\x1a/g,"\\Z")},i.escapeRegExp=function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},i.escapeElementId=function(e){return e?e.replace(/(\\)?([:.\[\],])/g,function(e,t,r){return t?e:"\\"+r}):e},i.groupSort=function(e,t){var r=[],i=[];return e.forEach(function(e){var n;e[t]?-1==(n=r.lastIndexOf(e[t]))?n=r.length:n++:n=r.length,r.splice(n,0,e[t]),i.splice(n,0,e)}),i},i.defineModelProperties=function(t,r){r.forEach(function(r){Object.defineProperty(t.prototype,r,{enumerable:!0,get:function(){return this.__[r]},set:function(t){var i=null!==this.__[r]&&"object"==typeof this.__[r]?e.extend({},this.__[r]):this.__[r];this.__[r]=t,null!==this.model&&this.model.trigger("update",this,r,t,i)}})})},e.extend(n.prototype,{trigger:function(t){var r=new e.Event(t);return this.$.triggerHandler(r,Array.prototype.slice.call(arguments,1)),r},on:function(){return this.$.on.apply(this.$,Array.prototype.slice.call(arguments)),this},off:function(){return this.$.off.apply(this.$,Array.prototype.slice.call(arguments)),this},once:function(){return this.$.one.apply(this.$,Array.prototype.slice.call(arguments)),this}});var o=function(e,t){if(!(this instanceof o))return new o(e,t);Object.defineProperty(this,"__",{value:{}}),t.data("queryBuilderModel",this),this.__.level=1,this.__.error=null,this.__.flags={},this.__.data=void 0,this.$el=t,this.id=t[0].id,this.model=null,this.parent=e};i.defineModelProperties(o,["level","error","data","flags"]),Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){return this.__.parent},set:function(e){this.__.parent=e,this.level=null===e?1:e.level+1,this.model=null===e?null:e.model}}),o.prototype.isRoot=function(){return 1===this.level},o.prototype.getPos=function(){return this.isRoot()?-1:this.parent.getNodePos(this)},o.prototype.drop=function(){var e=this.model;this.parent&&this.parent.removeNode(this),this.$el.removeData("queryBuilderModel"),null!==e&&e.trigger("drop",this)},o.prototype.moveAfter=function(e){this.isRoot()||this.move(e.parent,e.getPos()+1)},o.prototype.moveAtBegin=function(e){this.isRoot()||(void 0===e&&(e=this.parent),this.move(e,0))},o.prototype.moveAtEnd=function(e){this.isRoot()||(void 0===e&&(e=this.parent),this.move(e,0===e.length()?0:e.length()-1))},o.prototype.move=function(e,t){this.isRoot()||("number"==typeof e&&(t=e,e=this.parent),this.parent.removeNode(this),e.insertNode(this,t,!1),null!==this.model&&this.model.trigger("move",this,e,t))};var l=function(e,t){if(!(this instanceof l))return new l(e,t);o.call(this,e,t),this.rules=[],this.__.condition=null};l.prototype=Object.create(o.prototype),l.prototype.constructor=l,i.defineModelProperties(l,["condition"]),l.prototype.empty=function(){this.each("reverse",function(e){e.drop()},function(e){e.drop()})},l.prototype.drop=function(){this.empty(),o.prototype.drop.call(this)},l.prototype.length=function(){return this.rules.length},l.prototype.insertNode=function(e,t,r){return void 0===t&&(t=this.length()),this.rules.splice(t,0,e),e.parent=this,r&&null!==this.model&&this.model.trigger("add",this,e,t),e},l.prototype.addGroup=function(e,t){return this.insertNode(new l(this,e),t,!0)},l.prototype.addRule=function(e,t){return this.insertNode(new s(this,e),t,!0)},l.prototype.removeNode=function(e){var t=this.getNodePos(e);-1!==t&&(e.parent=null,this.rules.splice(t,1))},l.prototype.getNodePos=function(e){return this.rules.indexOf(e)},l.prototype.each=function(e,t,r,i){"boolean"!=typeof e&&"string"!=typeof e&&(i=r,r=t,t=e,e=!1),i=void 0===i?null:i;for(var n=e?this.rules.length-1:0,o=e?0:this.rules.length-1,s=e?-1:1,a=!1;(e?n>=o:n<=o)&&(this.rules[n]instanceof l?r&&(a=!1===r.call(i,this.rules[n])):t&&(a=!1===t.call(i,this.rules[n])),!a);n+=s);return!a},l.prototype.contains=function(e,t){return-1!==this.getNodePos(e)||!!t&&!this.each(function(){return!0},function(t){return!t.contains(e,!0)})};var s=function(e,t){if(!(this instanceof s))return new s(e,t);o.call(this,e,t),this._updating_value=!1,this._updating_input=!1,this.__.filter=null,this.__.operator=null,this.__.value=void 0};function a(e,t,i){var n,o,l=r.selectors;(n=t.closest(l.rule_container)).length&&(o="moveAfter"),o||(n=t.closest(l.group_header)).length&&(n=t.closest(l.group_container),o="moveAtBegin"),o||(n=t.closest(l.group_container)).length&&(o="moveAtEnd"),o&&(e[o](i.getModel(n)),i&&e instanceof s&&i.setRuleInputValue(e,e.value))}function u(e){var t=e.match(/(question_mark|numbered|named)(?:\((.)\))?/);return t||(t=[null,"question_mark",void 0]),t}return s.prototype=Object.create(o.prototype),s.prototype.constructor=s,i.defineModelProperties(s,["filter","operator","value"]),s.prototype.isRoot=function(){return!1},r.Group=l,r.Rule=s,e.fn.queryBuilder=function(e){0===this.length&&i.error("Config","No target defined"),this.length>1&&i.error("Config","Unable to initialize on multiple target");var t=this.data("queryBuilder"),n="object"==typeof e&&e||{};if(!t&&"destroy"==e)return this;if(!t){var o=new r(this,n);this.data("queryBuilder",o),o.init(n.rules)}return"string"==typeof e?t[e].apply(t,Array.prototype.slice.call(arguments,1)):this},e.fn.queryBuilder.constructor=r,e.fn.queryBuilder.defaults=r.defaults,e.fn.queryBuilder.extend=r.extend,e.fn.queryBuilder.define=r.define,e.fn.queryBuilder.regional=r.regional,r.define("bt-checkbox",function(e){"glyphicons"==e.font&&this.$el.addClass("bt-checkbox-glyphicons"),this.on("getRuleInput.filter",function(t,r,n){var o=r.filter;if(("radio"===o.input||"checkbox"===o.input)&&!o.plugin){t.value="",o.colors||(o.colors={}),o.color&&(o.colors._def_=o.color);var l=o.vertical?' style="display:block"':"",s=0;i.iterateOptions(o.values,function(r,i){var a=o.colors[r]||o.colors._def_||e.color,u=n+"_"+s++;t.value+="<div"+l+' class="'+o.input+" "+o.input+"-"+a+'"> <input type="'+o.input+'" name="'+n+'" id="'+u+'" value="'+r+'"> <label for="'+u+'">'+i+"</label> </div>"})}})},{font:"glyphicons",color:"default"}),r.define("bt-selectpicker",function(t){e.fn.selectpicker&&e.fn.selectpicker.Constructor||i.error("MissingLibrary",'Bootstrap Select is required to use "bt-selectpicker" plugin. Get it here: http://silviomoreto.github.io/bootstrap-select');var n=r.selectors;this.on("afterCreateRuleFilters",function(e,r){r.$el.find(n.rule_filter).removeClass("form-control").selectpicker(t)}),this.on("afterCreateRuleOperators",function(e,r){r.$el.find(n.rule_operator).removeClass("form-control").selectpicker(t)}),this.on("afterUpdateRuleFilter",function(e,t){t.$el.find(n.rule_filter).selectpicker("render")}),this.on("afterUpdateRuleOperator",function(e,t){t.$el.find(n.rule_operator).selectpicker("render")}),this.on("beforeDeleteRule",function(e,t){t.$el.find(n.rule_filter).selectpicker("destroy"),t.$el.find(n.rule_operator).selectpicker("destroy")})},{container:"body",style:"btn-inverse btn-xs",width:"auto",showIcon:!1}),r.define("bt-tooltip-errors",function(t){e.fn.tooltip&&e.fn.tooltip.Constructor&&e.fn.tooltip.Constructor.prototype.fixTitle||i.error("MissingLibrary",'Bootstrap Tooltip is required to use "bt-tooltip-errors" plugin. Get it here: http://getbootstrap.com');var n=this;this.on("getRuleTemplate.filter getGroupTemplate.filter",function(t){var i=e(t.value);i.find(r.selectors.error_container).attr("data-toggle","tooltip"),t.value=i.prop("outerHTML")}),this.model.on("update",function(e,i,o){"error"==o&&n.settings.display_errors&&i.$el.find(r.selectors.error_container).eq(0).tooltip(t).tooltip("hide").tooltip("fixTitle")})},{placement:"right"}),r.extend({setFilters:function(e,t){var n=this;void 0===t&&(t=e,e=!1),t=this.checkFilters(t);var o=(t=this.change("setFilters",t)).map(function(e){return e.id});if(e||function e(t){t.each(function(e){e.filter&&-1===o.indexOf(e.filter.id)&&i.error("ChangeFilter",'A rule is using filter "{0}"',e.filter.id)},e)}(this.model.root),this.filters=t,function e(t){t.each(!0,function(e){e.filter&&-1===o.indexOf(e.filter.id)?(e.drop(),n.trigger("rulesChanged")):(n.createRuleFilters(e),e.$el.find(r.selectors.rule_filter).val(e.filter?e.filter.id:"-1"),n.trigger("afterUpdateRuleFilter",e))},e)}(this.model.root),this.settings.plugins&&(this.settings.plugins["unique-filter"]&&this.updateDisabledFilters(),this.settings.plugins["bt-selectpicker"]&&this.$el.find(r.selectors.rule_filter).selectpicker("render")),this.settings.default_filter)try{this.getFilterById(this.settings.default_filter)}catch(e){this.settings.default_filter=null}this.trigger("afterSetFilters",t)},addFilter:function(t,r){void 0===r||"#end"==r?r=this.filters.length:"#start"==r&&(r=0),e.isArray(t)||(t=[t]);var i=e.extend(!0,[],this.filters);parseInt(r)==r?Array.prototype.splice.apply(i,[r,0].concat(t)):this.filters.some(function(e,t){if(e.id==r)return r=t+1,!0})?Array.prototype.splice.apply(i,[r,0].concat(t)):Array.prototype.push.apply(i,t),this.setFilters(i)},removeFilter:function(t,r){var i=e.extend(!0,[],this.filters);"string"==typeof t&&(t=[t]),i=i.filter(function(e){return-1===t.indexOf(e.id)}),this.setFilters(r,i)}}),r.define("chosen-selectpicker",function(t){e.fn.chosen||i.error("MissingLibrary",'chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'),this.settings.plugins["bt-selectpicker"]&&i.error("Conflict","bt-selectpicker is already selected as the dropdown plugin. Please remove chosen-selectpicker from the plugin list");var n=r.selectors;this.on("afterCreateRuleFilters",function(e,r){r.$el.find(n.rule_filter).removeClass("form-control").chosen(t)}),this.on("afterCreateRuleOperators",function(e,r){r.$el.find(n.rule_operator).removeClass("form-control").chosen(t)}),this.on("afterUpdateRuleFilter",function(e,t){t.$el.find(n.rule_filter).trigger("chosen:updated")}),this.on("afterUpdateRuleOperator",function(e,t){t.$el.find(n.rule_operator).trigger("chosen:updated")}),this.on("beforeDeleteRule",function(e,t){t.$el.find(n.rule_filter).chosen("destroy"),t.$el.find(n.rule_operator).chosen("destroy")})}),r.define("filter-description",function(t){"inline"===t.mode?this.on("afterUpdateRuleFilter afterUpdateRuleOperator",function(r,i){var n=i.$el.find("p.filter-description"),o=r.builder.getFilterDescription(i.filter,i);o?(0===n.length?(n=e('<p class="filter-description"></p>')).appendTo(i.$el):n.css("display",""),n.html('<i class="'+t.icon+'"></i> '+o)):n.hide()}):"popover"===t.mode?(e.fn.popover&&e.fn.popover.Constructor&&e.fn.popover.Constructor.prototype.fixTitle||i.error("MissingLibrary",'Bootstrap Popover is required to use "filter-description" plugin. Get it here: http://getbootstrap.com'),this.on("afterUpdateRuleFilter afterUpdateRuleOperator",function(i,n){var o=n.$el.find("button.filter-description"),l=i.builder.getFilterDescription(n.filter,n);l?(0===o.length?((o=e('<button type="button" class="btn btn-xs btn-info filter-description" data-toggle="popover"><i class="'+t.icon+'"></i></button>')).prependTo(n.$el.find(r.selectors.rule_actions)),o.popover({placement:"left",container:"body",html:!0}),o.on("mouseout",function(){o.popover("hide")})):o.css("display",""),o.data("bs.popover").options.content=l,o.attr("aria-describedby")&&o.popover("show")):(o.hide(),o.data("bs.popover")&&o.popover("hide"))})):"bootbox"===t.mode&&("bootbox"in window||i.error("MissingLibrary",'Bootbox is required to use "filter-description" plugin. Get it here: http://bootboxjs.com'),this.on("afterUpdateRuleFilter afterUpdateRuleOperator",function(i,n){var o=n.$el.find("button.filter-description"),l=i.builder.getFilterDescription(n.filter,n);l?(0===o.length?((o=e('<button type="button" class="btn btn-xs btn-info filter-description" data-toggle="bootbox"><i class="'+t.icon+'"></i></button>')).prependTo(n.$el.find(r.selectors.rule_actions)),o.on("click",function(){bootbox.alert(o.data("description"))})):o.css("display",""),o.data("description",l)):o.hide()}))},{icon:"glyphicon glyphicon-info-sign",mode:"popover"}),r.extend({getFilterDescription:function(e,t){return e?"function"==typeof e.description?e.description.call(this,t):e.description:void 0}}),r.define("invert",function(t){var i=this,n=r.selectors;this.on("afterInit",function(){i.$el.on("click.queryBuilder","[data-invert=group]",function(){var r=e(this).closest(n.group_container);i.invert(i.getModel(r),t)}),t.display_rules_button&&t.invert_rules&&i.$el.on("click.queryBuilder","[data-invert=rule]",function(){var r=e(this).closest(n.rule_container);i.invert(i.getModel(r),t)})}),t.disable_template||(this.on("getGroupTemplate.filter",function(r){var o=e(r.value);o.find(n.condition_container).after('<button type="button" class="btn btn-xs btn-default" data-invert="group"><i class="'+t.icon+'"></i> '+i.translate("invert")+"</button>"),r.value=o.prop("outerHTML")}),t.display_rules_button&&t.invert_rules&&this.on("getRuleTemplate.filter",function(r){var o=e(r.value);o.find(n.rule_actions).prepend('<button type="button" class="btn btn-xs btn-default" data-invert="rule"><i class="'+t.icon+'"></i> '+i.translate("invert")+"</button>"),r.value=o.prop("outerHTML")}))},{icon:"glyphicon glyphicon-random",recursive:!0,invert_rules:!0,display_rules_button:!1,silent_fail:!1,disable_template:!1}),r.defaults({operatorOpposites:{equal:"not_equal",not_equal:"equal",in:"not_in",not_in:"in",less:"greater_or_equal",less_or_equal:"greater",greater:"less_or_equal",greater_or_equal:"less",between:"not_between",not_between:"between",begins_with:"not_begins_with",not_begins_with:"begins_with",contains:"not_contains",not_contains:"contains",ends_with:"not_ends_with",not_ends_with:"ends_with",is_empty:"is_not_empty",is_not_empty:"is_empty",is_null:"is_not_null",is_not_null:"is_null"},conditionOpposites:{AND:"OR",OR:"AND"}}),r.extend({invert:function(t,r){if(!(t instanceof o)){if(!this.model.root)return;r=t,t=this.model.root}if("object"!=typeof r&&(r={}),void 0===r.recursive&&(r.recursive=!0),void 0===r.invert_rules&&(r.invert_rules=!0),void 0===r.silent_fail&&(r.silent_fail=!1),void 0===r.trigger&&(r.trigger=!0),t instanceof l){if(this.settings.conditionOpposites[t.condition]?t.condition=this.settings.conditionOpposites[t.condition]:r.silent_fail||i.error("InvertCondition",'Unknown inverse of condition "{0}"',t.condition),r.recursive){var n=e.extend({},r,{trigger:!1});t.each(function(e){r.invert_rules&&this.invert(e,n)},function(e){this.invert(e,n)},this)}}else if(t instanceof s&&t.operator&&!t.filter.no_invert)if(this.settings.operatorOpposites[t.operator.type]){var a=this.settings.operatorOpposites[t.operator.type];t.filter.operators&&-1==t.filter.operators.indexOf(a)||(t.operator=this.getOperatorByType(a))}else r.silent_fail||i.error("InvertOperator",'Unknown inverse of operator "{0}"',t.operator.type);r.trigger&&(this.trigger("afterInvert",t,r),this.trigger("rulesChanged"))}}),r.defaults({mongoOperators:{equal:function(e){return e[0]},not_equal:function(e){return{$ne:e[0]}},in:function(e){return{$in:e}},not_in:function(e){return{$nin:e}},less:function(e){return{$lt:e[0]}},less_or_equal:function(e){return{$lte:e[0]}},greater:function(e){return{$gt:e[0]}},greater_or_equal:function(e){return{$gte:e[0]}},between:function(e){return{$gte:e[0],$lte:e[1]}},not_between:function(e){return{$lt:e[0],$gt:e[1]}},begins_with:function(e){return{$regex:"^"+i.escapeRegExp(e[0])}},not_begins_with:function(e){return{$regex:"^(?!"+i.escapeRegExp(e[0])+")"}},contains:function(e){return{$regex:i.escapeRegExp(e[0])}},not_contains:function(e){return{$regex:"^((?!"+i.escapeRegExp(e[0])+").)*$",$options:"s"}},ends_with:function(e){return{$regex:i.escapeRegExp(e[0])+"$"}},not_ends_with:function(e){return{$regex:"(?<!"+i.escapeRegExp(e[0])+")$"}},is_empty:function(e){return""},is_not_empty:function(e){return{$ne:""}},is_null:function(e){return null},is_not_null:function(e){return{$ne:null}}},mongoRuleOperators:{$eq:function(e){return{val:e,op:null===e?"is_null":""===e?"is_empty":"equal"}},$ne:function(e){return{val:e=e.$ne,op:null===e?"is_not_null":""===e?"is_not_empty":"not_equal"}},$regex:function(e){return"^(?!"==(e=e.$regex).slice(0,4)&&")"==e.slice(-1)?{val:e.slice(4,-1),op:"not_begins_with"}:"^((?!"==e.slice(0,5)&&").)*$"==e.slice(-5)?{val:e.slice(5,-5),op:"not_contains"}:"(?<!"==e.slice(0,4)&&")$"==e.slice(-2)?{val:e.slice(4,-2),op:"not_ends_with"}:"$"==e.slice(-1)?{val:e.slice(0,-1),op:"ends_with"}:"^"==e.slice(0,1)?{val:e.slice(1),op:"begins_with"}:{val:e,op:"contains"}},between:function(e){return{val:[e.$gte,e.$lte],op:"between"}},not_between:function(e){return{val:[e.$lt,e.$gt],op:"not_between"}},$in:function(e){return{val:e.$in,op:"in"}},$nin:function(e){return{val:e.$nin,op:"not_in"}},$lt:function(e){return{val:e.$lt,op:"less"}},$lte:function(e){return{val:e.$lte,op:"less_or_equal"}},$gt:function(e){return{val:e.$gt,op:"greater"}},$gte:function(e){return{val:e.$gte,op:"greater_or_equal"}}}}),r.extend({getMongo:function(e){if(!(e=void 0===e?this.getRules():e))return null;var t=this;return function e(r){if(r.condition||(r.condition=t.settings.default_condition),-1===["AND","OR"].indexOf(r.condition.toUpperCase())&&i.error("UndefinedMongoCondition",'Unable to build MongoDB query with condition "{0}"',r.condition),!r.rules)return{};var n=[];r.rules.forEach(function(r){if(r.rules&&r.rules.length>0)n.push(e(r));else{var o=t.settings.mongoOperators[r.operator],l=t.getOperatorByType(r.operator);void 0===o&&i.error("UndefinedMongoOperator",'Unknown MongoDB operation for operator "{0}"',r.operator),0!==l.nb_inputs&&(r.value instanceof Array||(r.value=[r.value]));var s={};s[t.change("getMongoDBField",r.field,r)]=o.call(t,r.value),n.push(t.change("ruleToMongo",s,r,r.value,o))}});var o={};return o["$"+r.condition.toLowerCase()]=n,t.change("groupToMongo",o,r)}(e)},getRulesFromMongo:function(e){if(null==e)return null;var t=this;if("rules"in(e=t.change("parseMongoNode",e))&&"condition"in e)return e;if("id"in e&&"operator"in e&&"value"in e)return{condition:this.settings.default_condition,rules:[e]};var r=t.getMongoCondition(e);return r||i.error("MongoParse","Invalid MongoDB query format"),function e(r,n){var o=r[n],l=[];return o.forEach(function(r){if("rules"in(r=t.change("parseMongoNode",r))&&"condition"in r)l.push(r);else if("id"in r&&"operator"in r&&"value"in r)l.push(r);else{var n=t.getMongoCondition(r);if(n)l.push(e(r,n));else{var o=Object.keys(r)[0],s=r[o],a=t.getMongoOperator(s);void 0===a&&i.error("MongoParse","Invalid MongoDB query format");var u=t.settings.mongoRuleOperators[a];void 0===u&&i.error("UndefinedMongoOperator",'JSON Rule operation unknown for operator "{0}"',a);var p=u.call(t,s),d=t.getMongoDBFieldID(o,s),c=t.change("mongoToRule",{id:d,field:o,operator:p.op,value:p.val},r);l.push(c)}}}),t.change("mongoToGroup",{condition:n.replace("$","").toUpperCase(),rules:l},r)}(e,r)},setRulesFromMongo:function(e){this.setRules(this.getRulesFromMongo(e))},getMongoDBFieldID:function(e,t){var r=this.filters.filter(function(t){return t.field===e});return 1===r.length?r[0].id:this.change("getMongoDBFieldID",e,t)},getMongoOperator:function(e){if(null===e||"object"!=typeof e)return"$eq";if(void 0!==e.$gte&&void 0!==e.$lte)return"between";if(void 0!==e.$lt&&void 0!==e.$gt)return"not_between";var t=Object.keys(e).filter(function(e){return!!this.settings.mongoRuleOperators[e]}.bind(this));return 1===t.length?t[0]:void 0},getMongoCondition:function(e){for(var t=Object.keys(e),r=0,i=t.length;r<i;r++)if("$or"===t[r].toLowerCase()||"$and"===t[r].toLowerCase())return t[r]}}),r.define("not-group",function(t){var i=this;this.on("afterInit",function(){i.$el.on("click.queryBuilder","[data-not=group]",function(){var t=e(this).closest(r.selectors.group_container),n=i.getModel(t);n.not=!n.not}),i.model.on("update",function(e,t,r){t instanceof l&&"not"===r&&i.updateGroupNot(t)})}),this.on("afterAddGroup",function(e,t){t.__.not=!1}),t.disable_template||this.on("getGroupTemplate.filter",function(n){var o=e(n.value);o.find(r.selectors.condition_container).prepend('<button type="button" class="btn btn-xs btn-default" data-not="group"><i class="'+t.icon_unchecked+'"></i> '+i.translate("NOT")+"</button>"),n.value=o.prop("outerHTML")}),this.on("groupToJson.filter",function(e,t){e.value.not=t.not}),this.on("jsonToGroup.filter",function(e,t){e.value.not=!!t.not}),this.on("groupToSQL.filter",function(e,t){t.not&&(e.value="NOT ( "+e.value+" )")}),this.on("parseSQLNode.filter",function(e){e.value.name&&"NOT"==e.value.name.toUpperCase()&&(e.value=e.value.arguments.value[0],-1===["AND","OR"].indexOf(e.value.operation.toUpperCase())&&(e.value=new SQLParser.nodes.Op(i.settings.default_condition,e.value,null)),e.value.not=!0)}),this.on("sqlGroupsDistinct.filter",function(e,t,r,i){r.not&&i>0&&(e.value=!0)}),this.on("sqlToGroup.filter",function(e,t){e.value.not=!!t.not}),this.on("groupToMongo.filter",function(e,t){var r="$"+t.condition.toLowerCase();t.not&&e.value[r]&&(e.value={$nor:[e.value]})}),this.on("parseMongoNode.filter",function(e){var t=Object.keys(e.value);"$nor"==t[0]&&(e.value=e.value[t[0]][0],e.value.not=!0)}),this.on("mongoToGroup.filter",function(e,t){e.value.not=!!t.not})},{icon_unchecked:"glyphicon glyphicon-unchecked",icon_checked:"glyphicon glyphicon-check",disable_template:!1}),i.defineModelProperties(l,["not"]),r.selectors.group_not=r.selectors.group_header+" [data-not=group]",r.extend({updateGroupNot:function(e){var t=this.plugins["not-group"];e.$el.find(">"+r.selectors.group_not).toggleClass("active",e.not).find("i").attr("class",e.not?t.icon_checked:t.icon_unchecked),this.trigger("afterUpdateGroupNot",e),this.trigger("rulesChanged")}}),r.define("sortable",function(t){var n,o,s,u;"interact"in window||i.error("MissingLibrary",'interact.js is required to use "sortable" plugin. Get it here: http://interactjs.io'),void 0!==t.default_no_sortable&&(i.error(!1,"Config",'Sortable plugin : "default_no_sortable" options is deprecated, use standard "default_rule_flags" and "default_group_flags" instead'),this.settings.default_rule_flags.no_sortable=this.settings.default_group_flags.no_sortable=t.default_no_sortable),interact.dynamicDrop(!0),interact.pointerMoveTolerance(10),this.on("afterAddRule afterAddGroup",function(i,p){if(p!=n){var d=i.builder;t.inherit_no_sortable&&p.parent&&p.parent.flags.no_sortable&&(p.flags.no_sortable=!0),t.inherit_no_drop&&p.parent&&p.parent.flags.no_drop&&(p.flags.no_drop=!0),p.flags.no_sortable||interact(p.$el[0]).draggable({allowFrom:r.selectors.drag_handle,onstart:function(t){u=!1,s=d.getModel(t.target),o=s.$el.clone().appendTo(s.$el.parent()).width(s.$el.outerWidth()).addClass("dragging");var r=e('<div class="rule-placeholder"> </div>').height(s.$el.outerHeight());n=s.parent.addRule(r,s.getPos()),s.$el.hide()},onmove:function(e){o[0].style.top=e.clientY-15+"px",o[0].style.left=e.clientX-15+"px"},onend:function(t){t.dropzone&&(a(s,e(t.relatedTarget),d),u=!0),o.remove(),o=void 0,n.drop(),n=void 0,s.$el.css("display",""),d.trigger("afterMove",s),d.trigger("rulesChanged")}}),p.flags.no_drop||(interact(p.$el[0]).dropzone({accept:r.selectors.rule_and_group_containers,ondragenter:function(t){a(n,e(t.target),d)},ondrop:function(t){u||a(s,e(t.target),d)}}),p instanceof l&&interact(p.$el.find(r.selectors.group_header)[0]).dropzone({accept:r.selectors.rule_and_group_containers,ondragenter:function(t){a(n,e(t.target),d)},ondrop:function(t){u||a(s,e(t.target),d)}}))}}),this.on("beforeDeleteRule beforeDeleteGroup",function(e,t){e.isDefaultPrevented()||(interact(t.$el[0]).unset(),t instanceof l&&interact(t.$el.find(r.selectors.group_header)[0]).unset())}),this.on("afterApplyRuleFlags afterApplyGroupFlags",function(e,t){t.flags.no_sortable&&t.$el.find(".drag-handle").remove()}),t.disable_template||(this.on("getGroupTemplate.filter",function(i,n){if(n>1){var o=e(i.value);o.find(r.selectors.condition_container).after('<div class="drag-handle"><i class="'+t.icon+'"></i></div>'),i.value=o.prop("outerHTML")}}),this.on("getRuleTemplate.filter",function(i){var n=e(i.value);n.find(r.selectors.rule_header).after('<div class="drag-handle"><i class="'+t.icon+'"></i></div>'),i.value=n.prop("outerHTML")}))},{inherit_no_sortable:!0,inherit_no_drop:!0,icon:"glyphicon glyphicon-sort",disable_template:!1}),r.selectors.rule_and_group_containers=r.selectors.rule_container+", "+r.selectors.group_container,r.selectors.drag_handle=".drag-handle",r.defaults({default_rule_flags:{no_sortable:!1,no_drop:!1},default_group_flags:{no_sortable:!1,no_drop:!1}}),r.define("sql-support",function(e){},{boolean_as_integer:!0}),r.defaults({sqlOperators:{equal:{op:"= ?"},not_equal:{op:"!= ?"},in:{op:"IN(?)",sep:", "},not_in:{op:"NOT IN(?)",sep:", "},less:{op:"< ?"},less_or_equal:{op:"<= ?"},greater:{op:"> ?"},greater_or_equal:{op:">= ?"},between:{op:"BETWEEN ?",sep:" AND "},not_between:{op:"NOT BETWEEN ?",sep:" AND "},begins_with:{op:"LIKE(?)",mod:"{0}%"},not_begins_with:{op:"NOT LIKE(?)",mod:"{0}%"},contains:{op:"LIKE(?)",mod:"%{0}%"},not_contains:{op:"NOT LIKE(?)",mod:"%{0}%"},ends_with:{op:"LIKE(?)",mod:"%{0}"},not_ends_with:{op:"NOT LIKE(?)",mod:"%{0}"},is_empty:{op:"= ''"},is_not_empty:{op:"!= ''"},is_null:{op:"IS NULL"},is_not_null:{op:"IS NOT NULL"}},sqlRuleOperator:{"=":function(e){return{val:e,op:""===e?"is_empty":"equal"}},"!=":function(e){return{val:e,op:""===e?"is_not_empty":"not_equal"}},LIKE:function(e){return"%"==e.slice(0,1)&&"%"==e.slice(-1)?{val:e.slice(1,-1),op:"contains"}:"%"==e.slice(0,1)?{val:e.slice(1),op:"ends_with"}:"%"==e.slice(-1)?{val:e.slice(0,-1),op:"begins_with"}:void i.error("SQLParse",'Invalid value for LIKE operator "{0}"',e)},"NOT LIKE":function(e){return"%"==e.slice(0,1)&&"%"==e.slice(-1)?{val:e.slice(1,-1),op:"not_contains"}:"%"==e.slice(0,1)?{val:e.slice(1),op:"not_ends_with"}:"%"==e.slice(-1)?{val:e.slice(0,-1),op:"not_begins_with"}:void i.error("SQLParse",'Invalid value for NOT LIKE operator "{0}"',e)},IN:function(e){return{val:e,op:"in"}},"NOT IN":function(e){return{val:e,op:"not_in"}},"<":function(e){return{val:e,op:"less"}},"<=":function(e){return{val:e,op:"less_or_equal"}},">":function(e){return{val:e,op:"greater"}},">=":function(e){return{val:e,op:"greater_or_equal"}},BETWEEN:function(e){return{val:e,op:"between"}},"NOT BETWEEN":function(e){return{val:e,op:"not_between"}},IS:function(e){return null!==e&&i.error("SQLParse","Invalid value for IS operator"),{val:null,op:"is_null"}},"IS NOT":function(e){return null!==e&&i.error("SQLParse","Invalid value for IS operator"),{val:null,op:"is_not_null"}}},sqlStatements:{question_mark:function(){var e=[];return{add:function(t,r){return e.push(r),"?"},run:function(){return e}}},numbered:function(e){(!e||e.length>1)&&(e="$");var t=0,r=[];return{add:function(i,n){return r.push(n),e+ ++t},run:function(){return r}}},named:function(e){(!e||e.length>1)&&(e=":");var t={},r={};return{add:function(i,n){t[i.field]||(t[i.field]=1);var o=i.field+"_"+t[i.field]++;return r[o]=n,e+o},run:function(){return r}}}},sqlRuleStatement:{question_mark:function(e){var t=0;return{parse:function(r){return"?"==r?e[t++]:r},esc:function(e){return e.replace(/\?/g,"'?'")}}},numbered:function(e,t){(!t||t.length>1)&&(t="$");var r=new RegExp("^\\"+t+"[0-9]+$"),i=new RegExp("\\"+t+"([0-9]+)","g");return{parse:function(t){return r.test(t)?e[t.slice(1)-1]:t},esc:function(e){return e.replace(i,"'"+("$"==t?"$$":t)+"$1'")}}},named:function(e,t){(!t||t.length>1)&&(t=":");var r=new RegExp("^\\"+t),i=new RegExp("\\"+t+"("+Object.keys(e).join("|")+")","g");return{parse:function(t){return r.test(t)?e[t.slice(1)]:t},esc:function(e){return e.replace(i,"'"+("$"==t?"$$":t)+"$1'")}}}}}),r.extend({getSQL:function(e,t,r){if(!(r=void 0===r?this.getRules():r))return null;t=t?"\n":" ";var n=this.getPluginOptions("sql-support","boolean_as_integer");if(!0===e&&(e="question_mark"),"string"==typeof e){var o=u(e);e=this.settings.sqlStatements[o[1]](o[2])}var l=this,s=function r(o){if(o.condition||(o.condition=l.settings.default_condition),-1===["AND","OR"].indexOf(o.condition.toUpperCase())&&i.error("UndefinedSQLCondition",'Unable to build SQL query with condition "{0}"',o.condition),!o.rules)return"";var s=[];o.rules.forEach(function(o){if(o.rules&&o.rules.length>0)s.push("("+t+r(o)+t+")"+t);else{var a=l.settings.sqlOperators[o.operator],u=l.getOperatorByType(o.operator),p="";void 0===a&&i.error("UndefinedSQLOperator",'Unknown SQL operation for operator "{0}"',o.operator),0!==u.nb_inputs&&(o.value instanceof Array||(o.value=[o.value]),o.value.forEach(function(t,r){r>0&&(p+=a.sep),"boolean"==o.type&&n?t=t?1:0:e||"integer"===o.type||"double"===o.type||"boolean"===o.type||(t=i.escapeString(t)),a.mod&&(t=i.fmt(a.mod,t)),e?p+=e.add(o,t):("string"==typeof t&&(t="'"+t+"'"),p+=t)}));var d=function(e){return a.op.replace("?",function(){return e})},c=l.change("getSQLField",o.field,o)+" "+d(p);s.push(l.change("ruleToSQL",c,o,p,d))}});var a=s.join(" "+o.condition+t);return l.change("groupToSQL",a,o)}(r);return e?{sql:s,params:e.run()}:{sql:s}},getRulesFromSQL:function(t,r){"SQLParser"in window||i.error("MissingLibrary","SQLParser is required to parse SQL queries. Get it here https://github.com/mistic100/sql-parser");var n=this;if("string"==typeof t&&(t={sql:t}),!0===r&&(r="question_mark"),"string"==typeof r){var o=u(r);r=this.settings.sqlRuleStatement[o[1]](t.params,o[2])}r&&(t.sql=r.esc(t.sql)),0!==t.sql.toUpperCase().indexOf("SELECT")&&(t.sql="SELECT * FROM table WHERE "+t.sql);var l=SQLParser.parse(t.sql);l.where||i.error("SQLParse","No WHERE clause found");var s=n.change("parseSQLNode",l.where.conditions);if("rules"in s&&"condition"in s)return s;if("id"in s&&"operator"in s&&"value"in s)return{condition:this.settings.default_condition,rules:[s]};var a=n.change("sqlToGroup",{condition:this.settings.default_condition,rules:[]},s),p=a;return function t(o,l){if(null!==o)if("rules"in(o=n.change("parseSQLNode",o))&&"condition"in o)p.rules.push(o);else if("id"in o&&"operator"in o&&"value"in o)p.rules.push(o);else if("left"in o&&"right"in o&&"operation"in o||i.error("SQLParse","Unable to parse WHERE clause"),-1!==["AND","OR"].indexOf(o.operation.toUpperCase())){if(n.change("sqlGroupsDistinct",l>0&&p.condition!=o.operation.toUpperCase(),p,o,l)){var s=n.change("sqlToGroup",{condition:n.settings.default_condition,rules:[]},o);p.rules.push(s),p=s}p.condition=o.operation.toUpperCase(),l++;var a=p;t(o.left,l),p=a,t(o.right,l)}else{var u;e.isPlainObject(o.right.value)&&i.error("SQLParse","Value format not supported for {0}.",o.left.value),u=e.isArray(o.right.value)?o.right.value.map(function(e){return e.value}):o.right.value,r&&(u=e.isArray(u)?u.map(r.parse):r.parse(u));var d=o.operation.toUpperCase();"<>"==d&&(d="!=");var c=n.settings.sqlRuleOperator[d];void 0===c&&i.error("UndefinedSQLOperator",'Invalid SQL operation "{0}".',o.operation);var f,g=c.call(this,u,o.operation);"values"in o.left?f=o.left.values.join("."):"value"in o.left?f=o.left.value:i.error("SQLParse","Cannot find field name in {0}",JSON.stringify(o.left));var h=n.getSQLFieldID(f,u),_=n.change("sqlToRule",{id:h,field:f,operator:g.op,value:g.val},o);p.rules.push(_)}}(s,0),a},setRulesFromSQL:function(e,t){this.setRules(this.getRulesFromSQL(e,t))},getSQLFieldID:function(e,t){var r=this.filters.filter(function(t){return t.field.toLowerCase()===e.toLowerCase()});return 1===r.length?r[0].id:this.change("getSQLFieldID",e,t)}}),r.define("unique-filter",function(){this.status.used_filters={},this.on("afterUpdateRuleFilter",this.updateDisabledFilters),this.on("afterDeleteRule",this.updateDisabledFilters),this.on("afterCreateRuleFilters",this.applyDisabledFilters),this.on("afterReset",this.clearDisabledFilters),this.on("afterClear",this.clearDisabledFilters),this.on("getDefaultFilter.filter",function(e,t){var r=e.builder;(r.updateDisabledFilters(),e.value.id in r.status.used_filters)&&(r.filters.some(function(i){if(!(i.id in r.status.used_filters)||r.status.used_filters[i.id].length>0&&-1===r.status.used_filters[i.id].indexOf(t.parent))return e.value=i,!0})||(i.error(!1,"UniqueFilter","No more non-unique filters available"),e.value=void 0))})}),r.extend({updateDisabledFilters:function(e){var t=e?e.builder:this;t.status.used_filters={},t.model&&(!function e(r){r.each(function(e){e.filter&&e.filter.unique&&(t.status.used_filters[e.filter.id]||(t.status.used_filters[e.filter.id]=[]),"group"==e.filter.unique&&t.status.used_filters[e.filter.id].push(e.parent))},function(t){e(t)})}(t.model.root),t.applyDisabledFilters(e))},clearDisabledFilters:function(e){var t=e?e.builder:this;t.status.used_filters={},t.applyDisabledFilters(e)},applyDisabledFilters:function(t){var i=t?t.builder:this;i.$el.find(r.selectors.filter_container+" option").prop("disabled",!1),e.each(i.status.used_filters,function(e,t){0===t.length?i.$el.find(r.selectors.filter_container+' option[value="'+e+'"]:not(:selected)').prop("disabled",!0):t.forEach(function(t){t.each(function(t){t.$el.find(r.selectors.filter_container+' option[value="'+e+'"]:not(:selected)').prop("disabled",!0)})})}),i.settings.plugins&&i.settings.plugins["bt-selectpicker"]&&i.$el.find(r.selectors.rule_filter).selectpicker("render")}}),r.regional.en={__locale:"English (en)",__author:'Damien "Mistic" Sorel, http://www.strangeplanet.fr',add_rule:"Add rule",add_group:"Add group",delete_rule:"Delete",delete_group:"Delete",conditions:{AND:"AND",OR:"OR"},operators:{equal:"equal",not_equal:"not equal",in:"in",not_in:"not in",less:"less",less_or_equal:"less or equal",greater:"greater",greater_or_equal:"greater or equal",between:"between",not_between:"not between",begins_with:"begins with",not_begins_with:"doesn't begin with",contains:"contains",not_contains:"doesn't contain",ends_with:"ends with",not_ends_with:"doesn't end with",is_empty:"is empty",is_not_empty:"is not empty",is_null:"is null",is_not_null:"is not null"},errors:{no_filter:"No filter selected",empty_group:"The group is empty",radio_empty:"No value selected",checkbox_empty:"No value selected",select_empty:"No value selected",string_empty:"Empty value",string_exceed_min_length:"Must contain at least {0} characters",string_exceed_max_length:"Must not contain more than {0} characters",string_invalid_format:"Invalid format ({0})",number_nan:"Not a number",number_not_integer:"Not an integer",number_not_double:"Not a real number",number_exceed_min:"Must be greater than {0}",number_exceed_max:"Must be lower than {0}",number_wrong_step:"Must be a multiple of {0}",number_between_invalid:"Invalid values, {0} is greater than {1}",datetime_empty:"Empty value",datetime_invalid:"Invalid date format ({0})",datetime_exceed_min:"Must be after {0}",datetime_exceed_max:"Must be before {0}",datetime_between_invalid:"Invalid values, {0} is greater than {1}",boolean_not_valid:"Not a boolean",operator_not_multiple:'Operator "{1}" cannot accept multiple values'},invert:"Invert",NOT:"NOT"},r.defaults({lang_code:"en"}),r});