@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 37.6 kB
JavaScript
module.exports=function(i){var s={};function l(e){if(s[e])return s[e].exports;var t=s[e]={exports:{},id:e,loaded:!1};return i[e].call(t.exports,t,t.exports,l),t.loaded=!0,t.exports}return l.m=i,l.c=s,l.p="",l(0)}({0:function(e,t,i){e.exports=i(1278)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1065:function(e,t){e.exports=require("./kendo.dropdownlist")},1115:function(e,t){e.exports=require("./kendo.binder")},1116:function(e,t){e.exports=require("./kendo.numerictextbox")},1198:function(e,t){e.exports=require("./kendo.datepicker")},1278:function(e,t,i){var s;i(3),i=[i(1198),i(1116),i(1065),i(1115)],void 0===(t="function"==typeof(s=function(){var s={id:"filtermenu",name:"Filtering Menu",category:"framework",depends:["datepicker","numerictextbox","dropdownlist","binder"],advanced:true},o=window.kendo.jQuery,f=void 0,c=window.kendo,t=c.ui,l,e=c.support.browser.chrome?"disabled":"off",a="kendoPopup",p="init",h="open",m="refresh",u="change",n=".kendoFilterMenu",k="[role='columnheader']",g="Is equal to",v="Is not equal to",b={number:"numerictextbox",date:"datepicker"},_={string:"text",number:"number",date:"date"},y=c.isFunction,d=t.Widget,x='<div class="k-filter-menu-container">'+'<div class="k-filter-help-text">#=messages.info#</div>'+"<label>"+'<input type="radio" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value"/>'+"#=messages.isTrue#"+"</label>"+"<label>"+'<input type="radio" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value"/>'+"#=messages.isFalse#"+"</label>"+'<div class="k-action-buttons">'+'<button type="submit" title="#=messages.filter#" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary"><span class="k-button-text">#=messages.filter#</span></button>'+'<button type="reset" title="#=messages.clear#" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base"><span class="k-button-text">#=messages.clear#</span></button>'+"</div>"+"</div>",w="#var inputId;#"+'<div class="k-filter-menu-container">'+"<div>"+'<ul class="k-radio-list k-reset">'+"<li>"+"#inputId = kendo.guid()#"+'<input type="radio" class="k-radio k-radio-md" id="#=inputId#" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value" />'+'<label class="k-radio-label" for="#=inputId#">#=messages.isTrue#</label>'+"</li>"+"<li>"+"#inputId = kendo.guid()#"+'<input type="radio" class="k-radio k-radio-md" id="#=inputId#" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value" />'+'<label class="k-radio-label" for="#=inputId#">#=messages.isFalse#</label>'+"</li>"+"</ul>"+'<div class="k-columnmenu-actions">'+'<button class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base" type="reset" title="#=messages.clear#"><span class="k-button-text">#=messages.clear#</span></button>'+'<button class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary" type="submit" title="#=messages.filter#"><span class="k-button-text">#=messages.filter#</span></button>'+"</div>"+"</div>"+"</div>",S='<div class="k-filter-menu-container">'+'<div class="k-filter-help-text">#=messages.info#</div>'+"<label>"+'<span class="k-textbox k-input k-input-md k-rounded-md k-input-solid"><input class="k-input-inner" data-#=ns#bind="value: filters[0].value" name="filters[0].value"/></span>'+"</label>"+'<div class="k-action-buttons">'+'<button type="submit" title="#=messages.filter#" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary"><span class="k-button-text">#=messages.filter#</span></button>'+'<button type="reset" title="#=messages.clear#" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base"><span class="k-button-text">#=messages.clear#</span></button>'+"</div>"+"</div>",T='<div class="k-filter-menu-container">'+'#if(componentType === "classic") {#'+'<div class="k-filter-help-text">#=messages.info#</div>'+"#}#"+'<select title="#=messages.operator#" data-#=ns#bind="value: filters[0].operator" data-#=ns#role="dropdownlist">'+"#for(var op in operators){#"+'<option value="#=op#">#=operators[op]#</option>'+"#}#"+"</select>"+"#if(values){#"+'<select title="#=messages.value#" data-#=ns#bind="value:filters[0].value" data-#=ns#text-field="text" data-#=ns#value-field="value" data-#=ns#source=\'#=kendo.stringify(values).replace(/\'/g,"&\\#39;")#\' data-#=ns#role="dropdownlist" data-#=ns#option-label="#=messages.selectValue#" data-#=ns#value-primitive="true">'+"</select>"+"#}else{#"+'<input title="#=messages.value#" data-#=ns#bind="value:filters[0].value" class="k-input-inner" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""# />'+"#}#"+"#if(extra){#"+'#if(componentType === "modern") {#'+'<ul data-#=ns#role="buttongroup" data-bind="events: { select: onLogicChange }">'+'<li data-#=ns#value="and">And</li>'+'<li data-#=ns#value="or">Or</li>'+"</ul>"+"#} else {#"+'<select title="#=messages.logic#" class="k-filter-and" data-#=ns#bind="value: logic" data-#=ns#role="dropdownlist">'+'<option value="and">#=messages.and#</option>'+'<option value="or">#=messages.or#</option>'+"</select>"+"#}#"+'<select title="#=messages.additionalOperator#" data-#=ns#bind="value: filters[1].operator" data-#=ns#role="dropdownlist">'+"#for(var op in operators){#"+'<option value="#=op#">#=operators[op]#</option>'+"#}#"+"</select>"+"#if(values){#"+'<select title="#=messages.additionalValue#" data-#=ns#bind="value:filters[1].value" data-#=ns#text-field="text" data-#=ns#value-field="value" data-#=ns#source=\'#=kendo.stringify(values).replace(/\'/g,"&\\#39;")#\' data-#=ns#role="dropdownlist" data-#=ns#option-label="#=messages.selectValue#" data-#=ns#value-primitive="true">'+"</select>"+"#}else{#"+'<input title="#=messages.additionalValue#" data-#=ns#bind="value: filters[1].value" class="k-input-inner" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""#/>'+"#}#"+"#}#"+'<div class="k-action-buttons">'+'<button type="submit" title="#=messages.filter#" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary"><span class="k-button-text">#=messages.filter#</span></button>'+'<button type="reset" title="#=messages.clear#" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base"><span class="k-button-text">#=messages.clear#</span></button>'+"</div>"+"</div>",F='<div data-#=ns#role="view" class="k-grid-filter-menu">'+'<div data-#=ns#role="header" class="k-header">'+'<a href="\\#" class="k-header-cancel k-link" title="#=messages.cancel#" '+'aria-label="#=messages.cancel#"><span class="k-icon k-i-arrow-chevron-left"></span></a>'+"#=messages.filter# #=messages.into# #=title#"+'<a href="\\#" class="k-header-done k-link" title="#=messages.done#" '+'aria-label="#=messages.done#"><span class="k-icon k-i-check"></span></a>'+"</div>"+'<form title="#=messages.title#" class="k-filter-menu">'+'<ul class="k-reset">'+"<li>"+'<span class="k-list-title k-filter-help-text">#=messages.info#</span>'+'<ul class="k-listgroup k-listgroup-flush">'+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span class="k-listgroup-form-field-label k-filter-operator-text">#=messages.operator#</span>'+'<span class="k-listgroup-form-field-wrapper">'+'<select id="operator_#=filterMenuGuid#" title="#=messages.operator#" class="k-filter-operator" data-#=ns#bind="value: filters[0].operator" autocomplete="'+e+'" >'+"#for(var op in operators){#"+'<option value="#=op#">#=operators[op]#</option>'+"#}#"+"</select>"+"</span>"+"</label>"+"</li>"+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span class="k-listgroup-form-field-label k-filter-input-text">#=messages.value#</span>'+'<span class="k-listgroup-form-field-wrapper">'+"#if(values){#"+'<select id="value_#=filterMenuGuid#" title="#=messages.value#" data-#=ns#bind="value:filters[0].value" autocomplete="'+e+'" >'+'<option value="">#=messages.selectValue#</option>'+"#for(var val in values){#"+'<option value="#=values[val].value#">#=values[val].text#</option>'+"#}#"+"</select>"+"#}else{#"+'<input id="value_#=filterMenuGuid#" title="#=messages.value#" data-#=ns#bind="value:filters[0].value" class="k-value-input" type="#=inputType#" autocomplete="'+e+'" />'+"#}#"+"</span>"+"</label>"+"</li>"+"</ul>"+"#if(extra){#"+'<ul class="k-listgroup k-listgroup-flush">'+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span class="k-listgroup-form-field-label k-filter-logic-and-text">#=messages.and#</span>'+'<span class="k-listgroup-form-field-wrapper">'+'<input id="and_#=filterMenuGuid#" title="#=messages.and#" type="radio" name="logic"data-#=ns#bind="checked: logic" value="and" autocomplete="'+e+'" />'+"</span>"+"</label>"+"</li>"+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span class="k-listgroup-form-field-label k-filter-logic-or-text">#=messages.or#</span>'+'<span class="k-listgroup-form-field-wrapper">'+'<input id="or_#=filterMenuGuid#" title="#=messages.or#" type="radio" name="logic" data-#=ns#bind="checked: logic" value="or" autocomplete="'+e+'" />'+"</span>"+"</label>"+"</li>"+"</ul>"+'<ul class="k-listgroup k-listgroup-flush">'+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span class="k-listgroup-form-field-label k-filter-operator-text">#=messages.additionalOperator#</span>'+'<span class="k-listgroup-form-field-wrapper">'+'<select id="additionalOperator_#=filterMenuGuid#" title="#=messages.additionalOperator#" class="k-filter-operator" data-#=ns#bind="value: filters[1].operator" autocomplete="'+e+'" >'+"#for(var op in operators){#"+'<option value="#=op#">#=operators[op]#</option>'+"#}#"+"</select>"+"</span>"+"</label>"+"</li>"+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span class="k-listgroup-form-field-label k-filter-input-text">#=messages.additionalValue#</span>'+'<span class="k-listgroup-form-field-wrapper">'+"#if(values){#"+'<select id="additionalValue_#=filterMenuGuid#" title="#=messages.additionalValue#" data-#=ns#bind="value:filters[1].value" autocomplete="'+e+'" >'+'<option value="">#=messages.selectValue#</option>'+"#for(var val in values){#"+'<option value="#=values[val].value#">#=values[val].text#</option>'+"#}#"+"</select>"+"#}else{#"+'<input id="additionalValue_#=filterMenuGuid#" title="#=messages.additionalValue#" data-#=ns#bind="value:filters[1].value" class="k-value-input" type="#=inputType#" autocomplete="'+e+'" />'+"#}#"+"</span>"+"</label>"+"</li>"+"</ul>"+"#}#"+"</li>"+'<li class="k-item k-clear-wrap">'+'<span class="k-list-title"> </span>'+'<ul class="k-listgroup k-listgroup-flush">'+'<li class="k-listgroup-item">'+'<span class="k-link k-label k-clear" title="#=messages.clear#" aria-label="#=messages.clear#">'+"#=messages.clear#"+"</span>"+"</li>"+"</ul>"+"</li>"+"</ul>"+"</form>"+"</div>",C='<div data-#=ns#role="view" class="k-grid-filter-menu">'+'<div data-#=ns#role="header" class="k-header">'+'<a href="\\#" class="k-header-cancel k-link" title="#=messages.cancel#" '+'aria-label="#=messages.cancel#"><span class="k-icon k-i-arrow-chevron-left"></span></a>'+"#=messages.filter# #=messages.into# #=title#"+'<a href="\\#" class="k-header-done k-link" title="#=messages.done#" '+'aria-label="#=messages.done#"><span class="k-icon k-i-check"></span></a>'+"</div>"+'<form title="#=messages.title#" class="k-filter-menu">'+'<ul class="k-reset">'+"<li>"+'<span class="k-list-title k-filter-help-text">#=messages.info#</span>'+'<ul class="k-listgroup k-listgroup-flush k-multicheck-bool-wrap">'+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span class="k-listgroup-form-field-label k-item-title">#=messages.isTrue#</span>'+'<span class="k-listgroup-form-field-wrapper"></span>'+'<input id="true_#=filterMenuGuid#" title="#=messages.isTrue#" type="radio" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value" autocomplete="'+e+'" />'+"</span>"+"</label>"+"</li>"+'<li class="k-item k-listgroup-item">'+'<label class="k-listgroup-form-row k-label">'+'<span for="false_#=filterMenuGuid#" class="k-listgroup-form-field-label k-item-title">#=messages.isFalse#</span>'+'<span class="k-listgroup-form-field-wrapper">'+'<input id="false_#=filterMenuGuid#" title="#=messages.isFalse#" type="radio" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value" autocomplete="'+e+'" />'+"</span>"+"</label>"+"</li>"+"</ul>"+"</li>"+'<li class="k-item k-clear-wrap">'+'<span class="k-list-title"> </span>'+'<ul class="k-listgroup k-listgroup-flush">'+'<li class="k-listgroup-item">'+'<span class="k-link k-label k-clear" title="#=messages.clear#" aria-label="#=messages.clear#">'+"#=messages.clear#"+"</span>"+"</li>"+"</ul>"+"</li>"+"</ul>"+"</form>"+"</div>";function A(e,t){if(e.filters)e.filters=o.grep(e.filters,function(e){A(e,t);if(e.filters)return e.filters.length;else return e.field!=t})}function M(e){var t,i,s,l,a,n;if(e&&e.length){n=[];for(t=0,i=e.length;t<i;t++){s=e[t];a=s.text!==""?s.text||s.value||s:s.text;l=s.value==null?s.text||s:s.value;n[t]={text:a,value:l}}}return n}function I(e,t){return o.grep(e,function(e){if(e.filters){e.filters=o.grep(e.filters,function(e){return e.field!=t});return e.filters.length}return e.field!=t})}var i=d.extend({init:function(e,t){var i=this,s="string",l,a,n,r;t=t||{};t.componentType=t.componentType||"classic";d.fn.init.call(i,e,t);l=i.operators=t.operators||{};e=i.element;t=i.options;i.dataSource=D.create(t.dataSource);i.field=t.field||e.attr(c.attr("field"));r=o(e.closest(k));if(r.length)i.appendTo=r.find(t.appendTo);else i.appendTo=o(t.appendTo);i.link=i._createLink()||o();i.model=i.dataSource.reader.model;i._parse=function(e){return e!=null?e+"":e};if(i.model&&i.model.fields){n=i.model.fields[i.field];if(n){s=n.type||"string";if(n.parse)i._parse=n.parse.bind(n)}}if(t.values)s="enums";i.type=s;l=l[s]||t.operators[s];for(a in l)break;i._defaultFilter=function(){return{field:i.field,operator:a||"eq",value:""}};i._refreshHandler=i.refresh.bind(i);i.dataSource.bind(u,i._refreshHandler);if(t.appendToElement)i._init();else i.refresh()},_init:function(){var e=this,t=e.options.ui,i=y(t),s=c.attr("role"),l;e.pane=e.options.pane;if(e.pane)e._isMobile=true;if(!i)l=t||b[e.type];if(e._isMobile)e._createMobileForm(l);else e._createForm(l);e.form.on("submit"+n,e._submit.bind(e)).on("reset"+n,e._reset.bind(e));if(i)e.form.find(".k-input-inner").removeClass("k-input-inner").each(function(){t(o(this))});else{e.form.find(".k-input-inner["+s+"]").removeClass("k-input-inner");e.form.find(".k-input-inner:not([data-role]):not(.k-numerictextbox>.k-input-inner)").wrap("<span class='k-textbox k-input k-input-md k-rounded-md k-input-solid'></span>")}e.refresh();e.trigger(p,{field:e.field,container:e.form});if(e.options.cycleForm)c.cycleForm(e.form)},_createForm:function(e){var t=this,i=t.options,s=t.operators||{},l=t.type;s=s[l]||i.operators[l];t.form=o('<form title="'+t.options.messages.title+'" class="k-filter-menu"/>').html(c.template(t._getTemplate())({field:t.field,format:i.format,ns:c.ns,messages:i.messages,extra:i.extra,operators:s,type:l,role:e,values:M(i.values),componentType:t.options.componentType}));if(!i.appendToElement)t.popup=t.form[a]({anchor:t.link,copyAnchorStyles:false,open:t._open.bind(t),activate:t._activate.bind(t),close:function(){if(t.options.closeCallback)t.options.closeCallback(t.element)}}).data(a);else{t.element.append(t.form);t.popup=t.element.closest(".k-popup").data(a)}t.form.on("keydown"+n,t._keydown.bind(t))},_getTemplate:function(){var e=this,t=y(e.options.ui);if(e.type==="boolean")if(t)return S;else if(e.options.componentType==="modern")return w;else return x;else return T},_createMobileForm:function(e){var t=this,i=t.options,s=t.operators||{},l=c.guid(),a=t.type;s=s[a]||i.operators[a];t.form=o("<div />").html(c.template(a==="boolean"?C:F)({field:t.field,title:i.title||t.field,format:i.format,ns:c.ns,messages:i.messages,extra:i.extra,operators:s,filterMenuGuid:l,type:a,role:e,inputType:_[a],values:M(i.values)}));t.view=t.pane.append(t.form.html());t.form=t.view.element.find("form");t.view.element.on("click",".k-header-done",function(e){t.form.submit();e.preventDefault()}).on("click",".k-header-cancel",function(e){t._closeForm();e.preventDefault()}).on("click",".k-clear",function(e){t._mobileClear();e.preventDefault()});t.view.bind("showStart",function(){t.refresh()})},_createLink:function(){var e=this,t=e.element,i=e.appendTo.length?t.find(e.appendTo):t,s=e.options,l=c.format(s.messages.buttonTitle,e.options.title||e.field),a;if(s.appendToElement)return;a=t.addClass("k-filterable").find(".k-grid-filter");if(!a[0])a=i.append('<a class="k-grid-filter-menu k-grid-filter" href="#" title="'+l+'" aria-label="'+l+'"><span class="k-icon k-i-filter"></span></a>').find(".k-grid-filter");a.attr("tabindex",-1).on("click"+n,e._click.bind(e));return a},refresh:function(){var s=this,e=s.dataSource.filter()||{filters:[],logic:"and"};var t=[s._defaultFilter()];var i=s._defaultFilter().operator;if(s.options.extra||i!=="isnull"&&i!=="isnullorempty"&&i!=="isnotnullorempty"&&i!=="isnotnull"&&i!=="isempty"&&i!=="isnotempty")t.push(s._defaultFilter());s.filterModel=c.observable({logic:"and",filters:t});if(s.form){c.bind(s.form.children().first(),s.filterModel);if(s.options.componentType==="modern"&&s.options.extra&&s.type!=="boolean"&&!s._isMobile){s.filterModel.bind("change",function(){var e=c.attr("role");var t=s.form.find("["+e+"='buttongroup']").data("kendoButtonGroup");var i=this.logic==="and"?0:1;t.select(t.element.children().eq(i))});s.filterModel.set("onLogicChange",s._logicChangeHandler)}}if(s._bind(e))s.link.addClass("k-state-active");else s.link.removeClass("k-state-active")},_logicChangeHandler:function(e){var t=c.attr("value");var i=e.sender.current().attr(t);this.set("logic",i)},destroy:function(){var e=this;d.fn.destroy.call(e);if(e.form){c.unbind(e.form);c.destroy(e.form);e.form.off(n);if(e.popup){e.popup.destroy();e.popup=null}e.form=null}if(e.view){e.view.purge();e.view=null}e.link.off(n);if(e._refreshHandler){e.dataSource.unbind(u,e._refreshHandler);e.dataSource=null}e.element=e.link=e._refreshHandler=e.filterModel=null},_bind:function(e){var t=this,i=e.filters,s,l,a=false,n=0,r=t.filterModel,o,c;for(s=0,l=i.length;s<l;s++){c=i[s];if(c.field==t.field){r.set("logic",e.logic);o=r.filters[n];if(!o){r.filters.push({field:t.field});o=r.filters[n]}o.set("value",t._parse(c.value));o.set("operator",c.operator);n++;a=true}else if(c.filters)a=a||t._bind(c)}return a},_stripFilters:function(e){return o.grep(e,function(e){return e.value!==""&&e.value!=null||(e.operator==="isnull"||e.operator==="isnotnull"||e.operator==="isempty"||e.operator==="isnotempty"||e.operator=="isnullorempty"||e.operator=="isnotnullorempty")})},_merge:function(e){var t=this,i=e.logic||"and",s=this._stripFilters(e.filters),l,a=t.dataSource.filter()||{filters:[],logic:"and"},n,r;A(a,t.field);for(n=0,r=s.length;n<r;n++){l=s[n];l.value=t._parse(l.value)}if(s.length)if(a.filters.length){e.filters=s;if(a.logic!=="and"){a.filters=[{logic:a.logic,filters:a.filters}];a.logic="and"}if(s.length>1)a.filters.push(e);else a.filters.push(s[0])}else{a.filters=s;a.logic=i}return a},filter:function(e){var t=this._stripFilters(e.filters);if(t.length&&this.trigger("change",{filter:{logic:e.logic,filters:t},field:this.field}))return;e=this._merge(e);if(e.filters.length)this.dataSource.filter(e)},clear:function(e){var t=this;e=e||o.extend(true,{},{filters:[]},t.dataSource.filter())||{filters:[]};if(this.trigger("change",{filter:null,field:t.field}))return;t._removeFilter(e)},_mobileClear:function(){var e=this;var t=e.view.element;if(e.type==="boolean"){var i=t.find("[type='radio']:checked");var s=i.val();i.val("");i.trigger("change");i.val(s);i.prop("checked",false)}else{var l=t.find("select");l.each(function(e,t){var i=o(t);i.val(i.find("option").first().val());i.trigger("change")});if(e.type==="string"||e.type==="date"||e.type==="number"){var a=t.find(".k-value-input");a.each(function(e,t){var i=o(t);i.val("");i.trigger("change")})}if(e.options.extra){var n=t.find("[name=logic]").first();n.prop("checked",true);n.trigger("change")}}},_removeFilter:function(e){var t=this;e.filters=o.grep(e.filters,function(e){if(e.filters){e.filters=I(e.filters,t.field);return e.filters.length}return e.field!=t.field});if(!e.filters.length)e=null;t.dataSource.filter(e)},_submit:function(e){e.preventDefault();e.stopPropagation();var t=this.filterModel.toJSON();var i=o.grep(t.filters,function(e){return e.value!==""&&e.value!==null});if(this._checkForNullOrEmptyFilter(t)||i&&i.length)this.filter(t);else{var s=this.dataSource.filter();if(s){s.filters.push(t);t=s}this.clear(t)}this._closeForm()},_checkForNullOrEmptyFilter:function(e){if(!e||!e.filters||!e.filters.length)return false;var t=false;var i=false;var s;if(e.filters[0]){s=e.filters[0].operator;t=s=="isnull"||s=="isnotnull"||s=="isnotempty"||s=="isempty"||s=="isnullorempty"||s=="isnotnullorempty"}if(e.filters[1]){s=e.filters[1].operator;i=s=="isnull"||s=="isnotnull"||s=="isnotempty"||s=="isempty"||s=="isnullorempty"||s=="isnotnullorempty"}return!this.options.extra&&t||this.options.extra&&(t||i)},_reset:function(){this.clear();if(this.options.search&&this.container)this.container.find("label").parent().show();this._closeForm()},_closeForm:function(){if(this._isMobile)this.pane.navigate("",this.options.animations.right);else this.popup.close()},_click:function(e){e.preventDefault();e.stopPropagation();if(!this.popup&&!this.pane)this._init();if(this._isMobile)this.pane.navigate(this.view,this.options.animations.left);else this.popup.toggle()},_open:function(){var e;o(".k-filter-menu").not(this.form).each(function(){e=o(this).data(a);if(e)e.close()})},_activate:function(){this.form.find(":kendoFocusable").first().trigger("focus");this.trigger(h,{field:this.field,container:this.form})},_keydown:function(e){if(e.keyCode==c.keys.ESC)this.popup.close()},events:[p,"change",h],options:{name:"FilterMenu",extra:true,appendToElement:false,type:"string",operators:{string:{eq:g,neq:v,startswith:"Starts with",contains:"Contains",doesnotcontain:"Does not contain",endswith:"Ends with",isnull:"Is null",isnotnull:"Is not null",isempty:"Is empty",isnotempty:"Is not empty",isnullorempty:"Has no value",isnotnullorempty:"Has value"},number:{eq:g,neq:v,gte:"Is greater than or equal to",gt:"Is greater than",lte:"Is less than or equal to",lt:"Is less than",isnull:"Is null",isnotnull:"Is not null"},date:{eq:g,neq:v,gte:"Is after or equal to",gt:"Is after",lte:"Is before or equal to",lt:"Is before",isnull:"Is null",isnotnull:"Is not null"},enums:{eq:g,neq:v,isnull:"Is null",isnotnull:"Is not null"}},messages:{info:"Show items with value that:",title:"Show items with value that:",isTrue:"is true",isFalse:"is false",filter:"Filter",clear:"Clear",and:"And",or:"Or",selectValue:"-Select value-",operator:"Operator",value:"Value",additionalValue:"Additional value",additionalOperator:"Additional operator",logic:"Filters logic",cancel:"Cancel",done:"Done",into:"in",buttonTitle:"{0} filter column settings"},animations:{left:"slide",right:"slide:right"},componentType:"classic",cycleForm:true,appendTo:null}}),r=".kendoFilterMultiCheck";function H(e,t){if(e.filters)e.filters=o.grep(e.filters,function(e){H(e,t);if(e.filters)return e.filters.length;else return e.field==t&&e.operator=="eq"})}function q(e){if(e.logic=="and"&&e.filters.length>1)return[];if(e.filters)return o.map(e.filters,function(e){return q(e)});else if(e.value!==f)return[e.value];else return[]}function B(e,t){var i=c.getter(t,true),s=[],l=0,a={};while(l<e.length){var n=e[l++],r=i(n);if(r!==f&&!a.hasOwnProperty(r)){s.push(n);a[r]=true}}return s}function V(i,s){return function(e){var t=i(e);return B(t,s)}}var D=c.data.DataSource,G='<div data-#=ns#role="view" class="k-grid-filter-menu">'+'<div data-#=ns#role="header" class="k-header">'+'<a href="\\#" class="k-header-cancel k-link" title="#=messages.cancel#" '+'aria-label="#=messages.cancel#"><span class="k-icon k-i-arrow-chevron-left"></span></a>'+"#=messages.filter# #=messages.into# #=title#"+'<a href="\\#" class="k-header-done k-link" title="#=messages.done#" '+'aria-label="#=messages.done#"><span class="k-icon k-i-check"></span></a>'+"</div>"+'<form class="k-filter-menu">'+'<ul class="k-reset">'+"#if(search){#"+'<li class="k-space-right">'+'<span class="k-searchbox k-textbox k-input k-input-md k-rounded-md k-input-solid">'+'<input class="k-input-inner" placeholder="#=messages.search#" title="#=messages.search#" autocomplete="'+e+'" />'+'<span class="k-input-suffix"><span class="k-icon k-i-zoom"></span>'+"</span>"+"</li>"+"#}#"+'<li class="k-filter-tools">'+'<span style="#=checkAll ? "" : "visibility: hidden;" #" class="k-label k-select-all" title="#=messages.checkAll#" '+'aria-label="#=messages.checkAll#">#=messages.checkAll#</span>'+'<span class="k-label k-clear-all" title="#=messages.clearAll#" '+'aria-label="#=messages.clearAll#">#=messages.clearAll#</span>'+"</li>"+"#if(messages.selectedItemsFormat){#"+"<li>"+'<div class="k-filter-selected-items"></div>'+"</li>"+"#}#"+"<li>"+'<ul class="k-multicheck-wrap k-listgroup k-listgroup-flush"></ul>'+"</li>"+"</ul>"+"</form>"+"</div>",O=d.extend({init:function(e,t){d.fn.init.call(this,e,t);t=this.options;this.element=o(e);var i;var s=this.field=this.options.field||this.element.attr(c.attr("field"));var l=t.checkSource;if(this._foreignKeyValues()){this.checkSource=D.create(t.values);this.checkSource.fetch()}else if(t.forceUnique){l=o.extend(true,{},t.dataSource.options);delete l.pageSize;this.checkSource=D.create(l);this.checkSource.reader.data=V(this.checkSource.reader.data,this.field)}else this.checkSource=D.create(l);this.dataSource=t.dataSource;this.model=this.dataSource.reader.model;this._parse=function(e){return e+""};if(this.model&&this.model.fields){s=this.model.fields[this.field];if(s){if(s.type=="number")this._parse=function(e){if(typeof e==="string"&&(e.toLowerCase()==="null"||this._foreignKeyValues()&&e===""))return null;return parseFloat(e)};else if(s.parse)this._parse=s.parse.bind(s);this.type=s.type||"string"}}i=o(e.closest(k));if(i.length)this.appendTo=i.find(t.appendTo);else this.appendTo=o(t.appendTo);if(!t.appendToElement)this._createLink();else this._init();this._refreshHandler=this.refresh.bind(this);this.dataSource.bind(u,this._refreshHandler)},_createLink:function(){var e=this.element;var t=this.appendTo.length?e.find(this.appendTo):e;var i=e.addClass("k-filterable").find(".k-grid-filter");var s=c.format(this.options.messages.buttonTitle,this.options.title||this.field);if(!i[0])i=t.append('<a class="k-grid-filter-menu k-grid-filter" href="#" title="'+s+'" aria-label="'+s+'"><span class="k-icon k-i-filter"></span></a>').find(".k-grid-filter");this._link=i.attr("tabindex",-1).on("click"+n,this._click.bind(this))},_init:function(){var e=this;var t=this.options.forceUnique;var i=this.options;this.pane=i.pane;if(this.pane)this._isMobile=true;this._createForm();if(this._foreignKeyValues())this.refresh();else if(t&&!this.checkSource.options.serverPaging&&this.dataSource.data().length){this.checkSource.data(B(this.dataSource.data(),this.field));this.refresh()}else{this._attachProgress();this.checkSource.fetch(function(){e.refresh.call(e)})}if(!this.options.forceUnique){this.checkChangeHandler=function(){e.container.empty();e.refresh()};this.checkSource.bind(u,this.checkChangeHandler)}this.form.on("keydown"+r,this._keydown.bind(this)).on("submit"+r,this._filter.bind(this)).on("reset"+r,this._reset.bind(this));this.trigger(p,{field:this.field,container:this.form})},_attachProgress:function(){var e=this;this._progressHandler=function(){t.progress(e.container,true)};this._progressHideHandler=function(){t.progress(e.container,false)};this.checkSource.bind("progress",this._progressHandler).bind("change",this._progressHideHandler)},_input:function(){var e=this;e._clearTypingTimeout();e._typingTimeout=setTimeout(function(){e.search()},100)},_clearSearch:function(){var e=this;e.searchTextBox.val("");e.search()},_clearTypingTimeout:function(){if(this._typingTimeout){clearTimeout(this._typingTimeout);this._typingTimeout=null}},search:function(){var e=this.options.ignoreCase;var t=this.searchTextBox[0].value;var i=this.container.find("label");if(e)t=t.toLowerCase();var s=0;if(this.options.checkAll&&i.length)if(!this._isMobile){i[0].parentNode.style.display=t?"none":"";s++}else this.view.element.find(".k-select-all")[0].style.visibility=t?"hidden":"";while(s<i.length){var l=i[s];var a=l.textContent||l.innerText;if(e)a=a.toLowerCase();l.parentNode.style.display=a.indexOf(t)>=0?"":"none";s++}},_activate:function(){this.form.find(":kendoFocusable").first().trigger("focus");this.trigger(h,{field:this.field,container:this.form})},_createForm:function(){var e=this.options;var t="";var i=this;if(!this._isMobile){t+="<div class='k-filter-menu-container'>";if(e.search)t+="<span class='k-searchbox k-textbox k-input k-input-md k-rounded-md k-input-solid'>"+"<span class='k-input-icon k-icon k-i-search'></span>"+"<input class='k-input-inner' type='text' placeholder='"+e.messages.search+"' />"+"<span class='k-input-suffix'>"+"<span class='k-clear-value'><span class='k-icon k-i-x'></span></span>"+"</span>"+"</span>";t+="<ul class='k-reset k-multicheck-wrap'></ul>";if(e.messages.selectedItemsFormat)t+="<div class='k-filter-selected-items'>"+c.format(e.messages.selectedItemsFormat,0)+"</div>";t+="<div class='k-action-buttons'>";t+="<button type='submit' class='k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary'><span class='k-button-text'>"+e.messages.filter+"</span></button>";t+="<button type='reset' class='k-button k-button-md k-rounded-md k-button-solid k-button-solid-base'><span class='k-button-text'>"+e.messages.clear+"</span></button>";t+="</div>";t+="</div>";this.form=o('<form class="k-filter-menu"/>').html(t);this.container=this.form.find(".k-multicheck-wrap")}if(this._isMobile){i.form=o("<div />").html(c.template(G)({field:i.field,title:e.title||i.field,ns:c.ns,messages:e.messages,search:e.search,checkAll:e.checkAll}));i.view=i.pane.append(i.form.html());i.form=i.view.element.find("form");var s=this.view.element;this.container=s.find(".k-multicheck-wrap");s.on("click",".k-header-done",function(e){i.form.submit();e.preventDefault()}).on("click",".k-header-cancel",function(e){i._closeForm();e.preventDefault()}).on("click",".k-clear-all",function(e){i._mobileCheckAll(false);e.preventDefault()}).on("click",".k-select-all",function(e){i._mobileCheckAll(true);e.preventDefault()});i.view.bind("showStart",function(){i.refresh()})}else if(!e.appendToElement)i.popup=i.form.kendoPopup({anchor:i._link,copyAnchorStyles:false,open:i._open.bind(i),activate:i._activate.bind(i),close:function(){if(i.options.closeCallback)i.options.closeCallback(i.element)}}).data(a);else{this.popup=this.element.closest(".k-popup").data(a);this.element.append(this.form)}if(e.search){this.searchTextBox=this.form.find(".k-searchbox input");this.searchTextBox.on("input"+r,this._input.bind(this));this.clearSearchButton=this.form.find(".k-searchbox .k-clear-value");this.clearSearchButton.on("click"+r,this._clearSearch.bind(this))}},_open:function(){var e;o(".k-filter-menu").not(this.form).each(function(){e=o(this).data(a);if(e)e.close()})},createCheckAllItem:function(){var e=this.options;var t=c.template(e.itemTemplate({field:"all",mobile:this._isMobile}));var i=o(t({all:e.messages.checkAll}));this.container.prepend(i);i.addClass("k-check-all-wrap");this.checkBoxAll=i.find(":checkbox").eq(0).addClass("k-check-all");this.checkAllHandler=this.checkAll.bind(this);this.checkBoxAll.on(u+r,this.checkAllHandler)},updateCheckAllState:function(){if(this.options.messages.selectedItemsFormat)this.form.find(".k-filter-selected-items").text(c.format(this.options.messages.selectedItemsFormat,this.container.find(":checked:not(.k-check-all)").length));if(this.checkBoxAll){var e=this.container.find(":checkbox:not(.k-check-all)").length==this.container.find(":checked:not(.k-check-all)").length;this.checkBoxAll.prop("checked",e)}},createIsNullItem:function(){var e=this.options;var t=c.template(e.itemTemplate({field:"isNull",mobile:this._isMobile,valueField:"value"}));var i=o(t({isNull:e.messages.isNull,value:null}));this.container.append(i)},refresh:function(e){var t=this.options.forceUnique;var i=this.dataSource;var s=this.getFilterArray();if(this._link)this._link.toggleClass("k-state-active",s.length!==0);if(this.form){if(e&&t&&e.sender===i&&!i.options.serverPaging&&(e.action=="itemchange"||e.action=="add"||e.action=="remove"||i.options.autoSync&&e.action==="sync")&&!this._foreignKeyValues()){this.checkSource.data(B(this.dataSource.data(),this.field));this.container.empty()}if(this.container.is(":empty"))this.createCheckBoxes();this.checkValues(s);this.trigger(m)}},getFilterArray:function(){var e=o.extend(true,{},{filters:[],logic:"and"},this.dataSource.filter());H(e,this.field);var t=q(e);return t},createCheckBoxes:function(){var e=this.options;var t;var i={field:this.field,format:e.format,mobile:this._isMobile,type:this.type};var s=E.bind(this);if(!this.options.forceUnique)t=this.checkSource.view();else if(this._foreignKeyValues()){t=this.checkSource.data();i.valueField="value";i.field="text"}else if(this.checkSource._isServerGrouped())t=B(this.checkSource._flatData(this.checkSource.data()),this.field);else t=this.checkSource.data();if(this.type==="boolean"){this.createIsNullItem();t=t.filter(s)}var l=c.template(e.itemTemplate(i));var a=c.render(l,t);this.container.on(u+r,":checkbox",this.updateCheckAllState.bind(this));this.container.prepend(a);if(e.checkAll&&!this._isMobile)this.createCheckAllItem()},checkAll:function(){var e=this.checkBoxAll.is(":checked");this.container.find(":checkbox").prop("checked",e)},checkValues:function(l){var a=this;o(o.grep(this.container.find(":checkbox").prop("checked",false),function(e){var t=false;if(o(e).is(".k-check-all"))return;var i=a._parse(o(e).val());for(var s=0;s<l.length;s++){if(a.type=="date")if(l[s]&&i)t=l[s].getTime()==i.getTime();else if(l[s]===null&&i===null)t=true;else t=false;else t=l[s]==i;if(t)return t}})).prop("checked",true);this.updateCheckAllState()},_mobileCheckAll:function(s){var e=this;var t=e.container.find(":checkbox");t.each(function(e,t){var i=o(t);i.prop("checked",s);i.trigger("change")})},_filter:function(e){e.preventDefault();e.stopPropagation();var t={logic:"or"};var i=this;t.filters=o.map(this.form.find(":checkbox:checked:not(.k-check-all)"),function(e){return{value:o(e).val(),operator:"eq",field:i.field}});if(this.trigger("change",{filter:t,field:i.field}))return;t=this._merge(t);if(t.filters.length)this.dataSource.filter(t);else i._removeFilter(i.dataSource.filter()||{filters:[]});this._closeForm()},_stripFilters:function(e){return o.grep(e,function(e){return e.value!=null})},_foreignKeyValues:function(){var e=this.options;return e.values&&!e.checkSource},destroy:function(){var e=this;d.fn.destroy.call(e);if(e.form){c.unbind(e.form);c.destroy(e.form);e.form.off(r);if(e.popup){e.popup.destroy();e.popup=null}e.form=null;if(e.container){e.container.off(r);e.container=null}if(e.checkBoxAll)e.checkBoxAll.off(r)}if(e.view){e.view.purge();e.view=null}if(e._link)e._link.off(n);if(e._refreshHandler){e.dataSource.unbind(u,e._refreshHandler);e.dataSource=null}if(e.checkChangeHandler)e.checkSource.unbind(u,e.checkChangeHandler);if(e._progressHandler)e.checkSource.unbind("progress",e._progressHandler);if(e._progressHideHandler)e.checkSource.unbind("change",e._progressHideHandler);this._clearTypingTimeout();if(this.searchTextBox){this.searchTextBox.off(r);this.searchTextBox=null}if(this.clearSearchButton){this.clearSearchButton.off(r);this.clearSearchButton=null}e.element=e.checkSource=e.container=e.checkBoxAll=e._link=e._refreshHandler=e.checkAllHandler=null},options:{name:"FilterMultiCheck",itemTemplate:function(e){var t=e.field;var i=e.format;var s=e.valueField;var l=e.mobile;var a="";if(s===f)s=t;if(e.type=="date")a=":yyyy-MM-ddTHH:mm:sszzz";if(l)return"<li class='k-item k-listgroup-item'>"+"<label class='k-label k-listgroup-form-row k-checkbox-label'>"+"<span class='k-listgroup-form-field-label k-item-title '>#:kendo.format('"+(i?i:"{0}")+"', "+t+")#</span>"+'<span class="k-listgroup-form-field-wrapper">'+"<input type='checkbox' class='k-checkbox k-checkbox-md k-rounded-md' value='#:kendo.format('{0"+a+"}',"+s+")#'/>"+"</span>"+"</label>"+"</li>";return"<li class='k-item'>"+"<label class='k-label k-checkbox-label'>"+"<input type='checkbox' class='k-checkbox k-checkbox-md k-rounded-md' value='#:kendo.format('{0"+a+"}',"+s+")#'/>"+"<span>#:kendo.format('"+(i?i:"{0}")+"', "+t+")#</span>"+"</label>"+"</li>"},checkAll:true,search:false,ignoreCase:true,appendToElement:false,messages:{checkAll:"Select All",isNull:"is empty",clearAll:"Clear All",clear:"Clear",filter:"Filter",search:"Search",cancel:"Cancel",selectedItemsFormat:"{0} items selected",done:"Done",into:"in",buttonTitle:"{0} filter column settings"},forceUnique:true,animations:{left:"slide",right:"slide:right"},appendTo:null},events:[p,m,"change",h]});function E(e){return e[this.field]!==null}return o.extend(O.fn,{_click:i.fn._click,_keydown:i.fn._keydown,_reset:i.fn._reset,_closeForm:i.fn._closeForm,_removeFilter:i.fn._removeFilter,clear:i.fn.clear,_merge:i.fn._merge}),t.plugin(i),t.plugin(O),window.kendo})?s.apply(t,i):s)||(e.exports=t)}});