@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 31.1 kB
JavaScript
module.exports=function(e){function t(l){if(s[l])return s[l].exports;var i=s[l]={exports:{},id:l,loaded:!1};return e[l].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}({0:function(e,t,s){e.exports=s(1214)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1022:function(e,t){e.exports=require("./kendo.dropdownlist")},1076:function(e,t){e.exports=require("./kendo.binder")},1138:function(e,t){e.exports=require("./kendo.datepicker")},1155:function(e,t){e.exports=require("./kendo.numerictextbox")},1214:function(e,t,s){var l,i,a;!function(r,define){i=[s(1138),s(1155),s(1022),s(1076)],l=r,a="function"==typeof l?l.apply(t,i):l,!(void 0!==a&&(e.exports=a))}(function(){return function(e,t){function s(t,l){t.filters&&(t.filters=e.grep(t.filters,function(e){return s(e,l),e.filters?e.filters.length:e.field!=l}))}function l(e){var t,s,l,i,a,r;if(e&&e.length)for(r=[],t=0,s=e.length;t<s;t++)l=e[t],a=""!==l.text?l.text||l.value||l:l.text,i=null==l.value?l.text||l:l.value,r[t]={text:a,value:i};return r}function i(t,s){return e.grep(t,function(t){return t.filters?(t.filters=e.grep(t.filters,function(e){return e.field!=s}),t.filters.length):t.field!=s})}function a(t,s){t.filters&&(t.filters=e.grep(t.filters,function(e){return a(e,s),e.filters?e.filters.length:e.field==s&&"eq"==e.operator}))}function r(s){return"and"==s.logic&&s.filters.length>1?[]:s.filters?e.map(s.filters,function(e){return r(e)}):s.value!==t?[s.value]:[]}function n(e,s){for(var l,i,a=c.getter(s,!0),r=[],n=0,o={};n<e.length;)l=e[n++],i=a(l),i===t||o.hasOwnProperty(i)||(r.push(l),o[i]=!0);return r}function o(e,t){return function(s){var l=e(s);return n(l,t)}}var c=window.kendo,u=c.ui,p=e.proxy,d=c.support,f=d.browser.chrome?"disabled":"off",h="kendoPopup",m="init",k="open",g="refresh",v="change",b=".kendoFilterMenu",_="Is equal to",y="Is not equal to",x={number:"numerictextbox",date:"datepicker"},w={string:"text",number:"number",date:"date"},S=c.isFunction,F=u.Widget,C='<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-primary">#=messages.filter#</button><button type="reset" title="#=messages.clear#" class="k-button">#=messages.clear#</button></div></div>',A='<div class="k-filter-menu-container"><div class="k-filter-help-text">#=messages.info#</div><label><input class="k-textbox" data-#=ns#bind="value: filters[0].value" name="filters[0].value"/></label><div class="k-action-buttons"><button type="submit" title="#=messages.filter#" class="k-button k-primary">#=messages.filter#</button><button type="reset" title="#=messages.clear#" class="k-button">#=messages.clear#</button></div></div>',T='<div class="k-filter-menu-container"><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-textbox" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""# />#}##if(extra){#<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-textbox" type="text" #=role ? "data-" + ns + "role=\'" + role + "\'" : ""#/>#}##}#<div class="k-action-buttons"><button type="submit" title="#=messages.filter#" class="k-button k-primary">#=messages.filter#</button><button type="reset" title="#=messages.clear#" class="k-button">#=messages.clear#</button></div></div>',M='<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="'+f+'" >#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="'+f+'" ><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="'+f+'" />#}#</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="'+f+'" /></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="'+f+'" /></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="'+f+'" >#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="'+f+'" ><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="'+f+'" />#}#</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>',H='<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="'+f+'" /></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="'+f+'" /></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>',q=F.extend({init:function(t,s){var l,i,a,r,n=this,o="string";F.fn.init.call(n,t,s),l=n.operators=s.operators||{},t=n.element,s=n.options,s.appendToElement||(a=t.addClass("k-with-icon k-filterable").find(".k-grid-filter"),a[0]||(a=t.prepend('<a class="k-grid-filter" href="#" title="'+s.messages.filter+'" aria-label="'+s.messages.filter+'"><span class="k-icon k-i-filter"></span></a>').find(".k-grid-filter")),a.attr("tabindex",-1).on("click"+b,p(n._click,n))),n.link=a||e(),n.dataSource=V.create(s.dataSource),n.field=s.field||t.attr(c.attr("field")),n.model=n.dataSource.reader.model,n._parse=function(e){return null!=e?e+"":e},n.model&&n.model.fields&&(r=n.model.fields[n.field],r&&(o=r.type||"string",r.parse&&(n._parse=p(r.parse,r)))),s.values&&(o="enums"),n.type=o,l=l[o]||s.operators[o];for(i in l)break;n._defaultFilter=function(){return{field:n.field,operator:i||"eq",value:""}},n._refreshHandler=p(n.refresh,n),n.dataSource.bind(v,n._refreshHandler),s.appendToElement?n._init():n.refresh()},_init:function(){var t,s=this,l=s.options.ui,i=S(l);s.pane=s.options.pane,s.pane&&(s._isMobile=!0),i||(t=l||x[s.type]),s._isMobile?s._createMobileForm(t):s._createForm(t),s.form.on("submit"+b,p(s._submit,s)).on("reset"+b,p(s._reset,s)),i&&s.form.find(".k-textbox").removeClass("k-textbox").each(function(){l(e(this))}),s.form.find("["+c.attr("role")+"=numerictextbox]").removeClass("k-textbox").end().find("["+c.attr("role")+"=datetimepicker]").removeClass("k-textbox").end().find("["+c.attr("role")+"=timepicker]").removeClass("k-textbox").end().find("["+c.attr("role")+"=datepicker]").removeClass("k-textbox"),s.refresh(),s.trigger(m,{field:s.field,container:s.form}),c.cycleForm(s.form)},_createForm:function(t){var s=this,i=s.options,a=s.operators||{},r=s.type,n=S(s.options.ui);a=a[r]||i.operators[r],s.form=e('<form title="'+s.options.messages.title+'" class="k-filter-menu"/>').html(c.template("boolean"===r?n?A:C:T)({field:s.field,format:i.format,ns:c.ns,messages:i.messages,extra:i.extra,operators:a,type:r,role:t,values:l(i.values)})),i.appendToElement?(s.element.append(s.form),s.popup=s.element.closest(".k-popup").data(h)):s.popup=s.form[h]({anchor:s.link,open:p(s._open,s),activate:p(s._activate,s),close:function(){s.options.closeCallback&&s.options.closeCallback(s.element)}}).data(h),s.form.on("keydown"+b,p(s._keydown,s))},_createMobileForm:function(t){var s=this,i=s.options,a=s.operators||{},r=c.guid(),n=s.type;a=a[n]||i.operators[n],s.form=e("<div />").html(c.template("boolean"===n?H:M)({field:s.field,title:i.title||s.field,format:i.format,ns:c.ns,messages:i.messages,extra:i.extra,operators:a,filterMenuGuid:r,type:n,role:t,inputType:w[n],values:l(i.values)})),s.view=s.pane.append(s.form.html()),s.form=s.view.element.find("form"),s.view.element.on("click",".k-header-done",function(e){s.form.submit(),e.preventDefault()}).on("click",".k-header-cancel",function(e){s._closeForm(),e.preventDefault()}).on("click",".k-clear",function(e){s._mobileClear(),e.preventDefault()}),s.view.bind("showStart",function(){s.refresh()})},refresh:function(){var e=this,t=e.dataSource.filter()||{filters:[],logic:"and"},s=[e._defaultFilter()],l=e._defaultFilter().operator;(e.options.extra||"isnull"!==l&&"isnullorempty"!==l&&"isnotnullorempty"!==l&&"isnotnull"!==l&&"isempty"!==l&&"isnotempty"!==l)&&s.push(e._defaultFilter()),e.filterModel=c.observable({logic:"and",filters:s}),e.form&&c.bind(e.form.children().first(),e.filterModel),e._bind(t)?e.link.addClass("k-state-active"):e.link.removeClass("k-state-active")},destroy:function(){var e=this;F.fn.destroy.call(e),e.form&&(c.unbind(e.form),c.destroy(e.form),e.form.unbind(b),e.popup&&(e.popup.destroy(),e.popup=null),e.form=null),e.view&&(e.view.purge(),e.view=null),e.link.unbind(b),e._refreshHandler&&(e.dataSource.unbind(v,e._refreshHandler),e.dataSource=null),e.element=e.link=e._refreshHandler=e.filterModel=null},_bind:function(e){var t,s,l,i,a=this,r=e.filters,n=!1,o=0,c=a.filterModel;for(t=0,s=r.length;t<s;t++)i=r[t],i.field==a.field?(c.set("logic",e.logic),l=c.filters[o],l||(c.filters.push({field:a.field}),l=c.filters[o]),l.set("value",a._parse(i.value)),l.set("operator",i.operator),o++,n=!0):i.filters&&(n=n||a._bind(i));return n},_stripFilters:function(t){return e.grep(t,function(e){return""!==e.value&&null!=e.value||"isnull"===e.operator||"isnotnull"===e.operator||"isempty"===e.operator||"isnotempty"===e.operator||"isnullorempty"==e.operator||"isnotnullorempty"==e.operator})},_merge:function(e){var t,l,i,a=this,r=e.logic||"and",n=this._stripFilters(e.filters),o=a.dataSource.filter()||{filters:[],logic:"and"};for(s(o,a.field),l=0,i=n.length;l<i;l++)t=n[l],t.value=a._parse(t.value);return n.length&&(o.filters.length?(e.filters=n,"and"!==o.logic&&(o.filters=[{logic:o.logic,filters:o.filters}],o.logic="and"),o.filters.push(n.length>1?e:n[0])):(o.filters=n,o.logic=r)),o},filter:function(e){var t=this._stripFilters(e.filters);t.length&&this.trigger("change",{filter:{logic:e.logic,filters:t},field:this.field})||(e=this._merge(e),e.filters.length&&this.dataSource.filter(e))},clear:function(){var e=this,t=e.dataSource.filter()||{filters:[]};this.trigger("change",{filter:null,field:e.field})||e._removeFilter(t)},_mobileClear:function(){var t,s,l,i,a,r=this,n=r.view.element;"boolean"===r.type?(t=n.find("[type='radio']:checked"),s=t.val(),t.val(""),t.trigger("change"),t.val(s),t.prop("checked",!1)):(l=n.find("select"),l.each(function(t,s){var l=e(s);l.val(l.find("option:first").val()),l.trigger("change")}),"string"!==r.type&&"date"!==r.type&&"number"!==r.type||(i=n.find(".k-value-input"),i.each(function(t,s){var l=e(s);l.val(""),l.trigger("change")})),r.options.extra&&(a=n.find("[name=logic]").first(),a.prop("checked",!0),a.trigger("change")))},_removeFilter:function(t){var s=this;t.filters=e.grep(t.filters,function(e){return e.filters?(e.filters=i(e.filters,s.field),e.filters.length):e.field!=s.field}),t.filters.length||(t=null),s.dataSource.filter(t)},_submit:function(t){var s,l,i;t.preventDefault(),t.stopPropagation(),s=this.filterModel.toJSON(),l=e.grep(s.filters,function(e){return""!==e.value&&null!==e.value}),this._checkForNullOrEmptyFilter(s)||l&&l.length?this.filter(s):(i=this.dataSource.filter(),i&&(i.filters.push(s),s=i),this._removeFilter(s)),this._closeForm()},_checkForNullOrEmptyFilter:function(e){var t,s,l;return!!(e&&e.filters&&e.filters.length)&&(t=!1,s=!1,e.filters[0]&&(l=e.filters[0].operator,t="isnull"==l||"isnotnull"==l||"isnotempty"==l||"isempty"==l||"isnullorempty"==l||"isnotnullorempty"==l),e.filters[1]&&(l=e.filters[1].operator,s="isnull"==l||"isnotnull"==l||"isnotempty"==l||"isempty"==l||"isnullorempty"==l||"isnotnullorempty"==l),!this.options.extra&&t||this.options.extra&&(t||s))},_reset:function(){this.clear(),this.options.search&&this.container&&this.container.find("label").parent().show(),this._closeForm()},_closeForm:function(){this._isMobile?this.pane.navigate("",this.options.animations.right):this.popup.close()},_click:function(e){e.preventDefault(),e.stopPropagation(),this.popup||this.pane||this._init(),this._isMobile?this.pane.navigate(this.view,this.options.animations.left):this.popup.toggle()},_open:function(){var t;e(".k-filter-menu").not(this.form).each(function(){t=e(this).data(h),t&&t.close()})},_activate:function(){this.form.find(":kendoFocusable:first").focus(),this.trigger(k,{field:this.field,container:this.form})},_keydown:function(e){e.keyCode==c.keys.ESC&&this.popup.close()},events:[m,"change",k],options:{name:"FilterMenu",extra:!0,appendToElement:!1,type:"string",operators:{string:{eq:_,neq:y,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:_,neq:y,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:_,neq:y,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:_,neq:y,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"},animations:{left:"slide",right:"slide:right"}}}),I=".kendoFilterMultiCheck",V=c.data.DataSource,D='<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-textbox k-space-right"><input placeholder="#=messages.search#" title="#=messages.search#" autocomplete="'+f+'" /><span class="k-icon k-i-zoom"></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>',B=F.extend({init:function(t,s){var l,i;F.fn.init.call(this,t,s),s=this.options,this.element=e(t),l=this.field=this.options.field||this.element.attr(c.attr("field")),i=s.checkSource,this._foreignKeyValues()?(this.checkSource=V.create(s.values),this.checkSource.fetch()):s.forceUnique?(i=e.extend(!0,{},s.dataSource.options),delete i.pageSize,this.checkSource=V.create(i),this.checkSource.reader.data=o(this.checkSource.reader.data,this.field)):this.checkSource=V.create(i),this.dataSource=s.dataSource,this.model=this.dataSource.reader.model,this._parse=function(e){return e+""},this.model&&this.model.fields&&(l=this.model.fields[this.field],l&&("number"==l.type?this._parse=function(e){return"string"==typeof e&&"null"===e.toLowerCase()?null:parseFloat(e)}:l.parse&&(this._parse=p(l.parse,l)),this.type=l.type||"string")),s.appendToElement?this._init():this._createLink(),this._refreshHandler=p(this.refresh,this),this.dataSource.bind(v,this._refreshHandler)},_createLink:function(){var e=this.element,t=e.addClass("k-with-icon k-filterable").find(".k-grid-filter");t[0]||(t=e.prepend('<a class="k-grid-filter" href="#" title="'+this.options.messages.filter+'" aria-label="'+this.options.messages.filter+'"><span class="k-icon k-i-filter"></span></a>').find(".k-grid-filter")),this._link=t.attr("tabindex",-1).on("click"+b,p(this._click,this))},_init:function(){var e=this,t=this.options.forceUnique,s=this.options;this.pane=s.pane,this.pane&&(this._isMobile=!0),this._createForm(),this._foreignKeyValues()?this.refresh():t&&!this.checkSource.options.serverPaging&&this.dataSource.data().length?(this.checkSource.data(n(this.dataSource.data(),this.field)),this.refresh()):(this._attachProgress(),this.checkSource.fetch(function(){e.refresh.call(e)})),this.options.forceUnique||(this.checkChangeHandler=function(){e.container.empty(),e.refresh()},this.checkSource.bind(v,this.checkChangeHandler)),this.form.on("keydown"+I,p(this._keydown,this)).on("submit"+I,p(this._filter,this)).on("reset"+I,p(this._reset,this)),this.trigger(m,{field:this.field,container:this.form})},_attachProgress:function(){var e=this;this._progressHandler=function(){u.progress(e.container,!0)},this._progressHideHandler=function(){u.progress(e.container,!1)},this.checkSource.bind("progress",this._progressHandler).bind("change",this._progressHideHandler)},_input:function(){var e=this;e._clearTypingTimeout(),e._typingTimeout=setTimeout(function(){e.search()},100)},_clearTypingTimeout:function(){this._typingTimeout&&(clearTimeout(this._typingTimeout),this._typingTimeout=null)},search:function(){var e,t,s,l=this.options.ignoreCase,i=this.searchTextBox[0].value,a=this.container.find("label");for(l&&(i=i.toLowerCase()),e=0,this.options.checkAll&&a.length&&(this._isMobile?this.view.element.find(".k-select-all")[0].style.visibility=i?"hidden":"":(a[0].parentNode.style.display=i?"none":"",e++));e<a.length;)t=a[e],s=t.textContent||t.innerText,l&&(s=s.toLowerCase()),t.parentNode.style.display=s.indexOf(i)>=0?"":"none",e++},_activate:function(){this.form.find(":kendoFocusable:first").focus(),this.trigger(k,{field:this.field,container:this.form})},_createForm:function(){var t,s=this.options,l="",i=this;this._isMobile||(l+="<div class='k-filter-menu-container'>",s.search&&(l+="<div class='k-textbox k-space-right'><input placeholder='"+s.messages.search+"'/><span class='k-icon k-i-zoom'></span></div>"),l+="<ul class='k-reset k-multicheck-wrap'></ul>",s.messages.selectedItemsFormat&&(l+="<div class='k-filter-selected-items'>"+c.format(s.messages.selectedItemsFormat,0)+"</div>"),l+="<div class='k-action-buttons'>",l+="<button type='submit' class='k-button k-primary'>"+s.messages.filter+"</button>",l+="<button type='reset' class='k-button'>"+s.messages.clear+"</button>",l+="</div>",l+="</div>",this.form=e('<form class="k-filter-menu"/>').html(l),this.container=this.form.find(".k-multicheck-wrap")),this._isMobile?(i.form=e("<div />").html(c.template(D)({field:i.field,title:s.title||i.field,ns:c.ns,messages:s.messages,search:s.search,checkAll:s.checkAll})),i.view=i.pane.append(i.form.html()),i.form=i.view.element.find("form"),t=this.view.element,this.container=t.find(".k-multicheck-wrap"),t.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(!1),e.preventDefault()}).on("click",".k-select-all",function(e){i._mobileCheckAll(!0),e.preventDefault()}),i.view.bind("showStart",function(){i.refresh()})):s.appendToElement?(this.popup=this.element.closest(".k-popup").data(h),this.element.append(this.form)):i.popup=i.form.kendoPopup({anchor:i._link,open:p(i._open,i),activate:p(i._activate,i),close:function(){i.options.closeCallback&&i.options.closeCallback(i.element)}}).data(h),s.search&&(this.searchTextBox=this.form.find(".k-textbox > input"),this.searchTextBox.on("input",p(this._input,this)))},createCheckAllItem:function(){var t=this.options,s=c.template(t.itemTemplate({field:"all",mobile:this._isMobile})),l=e(s({all:t.messages.checkAll}));this.container.prepend(l),this.checkBoxAll=l.find(":checkbox").eq(0).addClass("k-check-all"),this.checkAllHandler=p(this.checkAll,this),this.checkBoxAll.on(v+I,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)),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)}},refresh:function(e){var t=this.options.forceUnique,s=this.dataSource,l=this.getFilterArray();this._link&&this._link.toggleClass("k-state-active",0!==l.length),this.form&&(e&&t&&e.sender===s&&!s.options.serverPaging&&("itemchange"==e.action||"add"==e.action||"remove"==e.action||s.options.autoSync&&"sync"===e.action)&&!this._foreignKeyValues()&&(this.checkSource.data(n(this.dataSource.data(),this.field)),this.container.empty()),this.container.is(":empty")&&this.createCheckBoxes(),this.checkValues(l),this.trigger(g))},getFilterArray:function(){var t,s=e.extend(!0,{},{filters:[],logic:"and"},this.dataSource.filter());return a(s,this.field),t=r(s)},createCheckBoxes:function(){var e,t,s,l=this.options,i={field:this.field,format:l.format,mobile:this._isMobile,type:this.type};this.options.forceUnique?this._foreignKeyValues()?(e=this.checkSource.data(),i.valueField="value",i.field="text"):e=this.checkSource._isServerGrouped()?n(this.checkSource._flatData(this.checkSource.data()),this.field):this.checkSource.data():e=this.checkSource.view(),t=c.template(l.itemTemplate(i)),s=c.render(t,e),l.checkAll&&!this._isMobile&&this.createCheckAllItem(),this.container.on(v+I,":checkbox",p(this.updateCheckAllState,this)),this.container.append(s)},checkAll:function(){var e=this.checkBoxAll.is(":checked");this.container.find(":checkbox").prop("checked",e)},checkValues:function(t){var s=this;e(e.grep(this.container.find(":checkbox").prop("checked",!1),function(l){var i,a,r=!1;if(!e(l).is(".k-check-all"))for(i=s._parse(e(l).val()),a=0;a<t.length;a++)if(r="date"==s.type?t[a]&&i?t[a].getTime()==i.getTime():null===t[a]&&null===i:t[a]==i)return r})).prop("checked",!0),this.updateCheckAllState()},_mobileCheckAll:function(t){var s=this,l=s.container.find(":checkbox");l.each(function(s,l){var i=e(l);i.prop("checked",t),i.trigger("change")})},_filter:function(t){var s,l;t.preventDefault(),t.stopPropagation(),s={logic:"or"},l=this,s.filters=e.map(this.form.find(":checkbox:checked:not(.k-check-all)"),function(t){return{value:e(t).val(),operator:"eq",field:l.field}}),s.filters.length&&this.trigger("change",{filter:s,field:l.field})||(s=this._merge(s),s.filters.length?this.dataSource.filter(s):this.clear(),this._closeForm())},_stripFilters:function(t){return e.grep(t,function(e){return null!=e.value})},_foreignKeyValues:function(){var e=this.options;return e.values&&!e.checkSource},destroy:function(){var e=this;F.fn.destroy.call(e),e.form&&(c.unbind(e.form),c.destroy(e.form),e.form.unbind(I),e.popup&&(e.popup.destroy(),e.popup=null),e.form=null,e.container&&(e.container.unbind(I),e.container=null),e.checkBoxAll&&e.checkBoxAll.unbind(I)),e.view&&(e.view.purge(),e.view=null),e._link&&e._link.unbind(b),e._refreshHandler&&(e.dataSource.unbind(v,e._refreshHandler),e.dataSource=null),e.checkChangeHandler&&e.checkSource.unbind(v,e.checkChangeHandler),e._progressHandler&&e.checkSource.unbind("progress",e._progressHandler),e._progressHideHandler&&e.checkSource.unbind("change",e._progressHideHandler),this._clearTypingTimeout(),this.searchTextBox=null,e.element=e.checkSource=e.container=e.checkBoxAll=e._link=e._refreshHandler=e.checkAllHandler=null},options:{name:"FilterMultiCheck",itemTemplate:function(e){var s=e.field,l=e.format,i=e.valueField,a=e.mobile,r="";return i===t&&(i=s),"date"==e.type&&(r=":yyyy-MM-ddTHH:mm:sszzz"),a?"<li class='k-item k-listgroup-item'><label class='k-label k-listgroup-form-row'><span class='k-listgroup-form-field-label k-item-title '>#:kendo.format('"+(l?l:"{0}")+"', "+s+")#</span><span class=\"k-listgroup-form-field-wrapper\"><input type='checkbox' value='#:kendo.format('{0"+r+"}',"+i+")#'/></span></label></li>":"<li class='k-item'><label class='k-label'><input type='checkbox' value='#:kendo.format('{0"+r+"}',"+i+")#'/><span>#:kendo.format('"+(l?l:"{0}")+"', "+s+")#</span></label></li>"},checkAll:!0,search:!1,ignoreCase:!0,appendToElement:!1,messages:{checkAll:"Select All",clearAll:"Clear All",clear:"Clear",filter:"Filter",search:"Search",cancel:"Cancel",selectedItemsFormat:"{0} items selected",done:"Done",into:"in"},forceUnique:!0,animations:{left:"slide",right:"slide:right"}},events:[m,g,"change",k]});e.extend(B.fn,{_click:q.fn._click,_keydown:q.fn._keydown,_reset:q.fn._reset,_closeForm:q.fn._closeForm,_removeFilter:q.fn._removeFilter,clear:q.fn.clear,_merge:q.fn._merge}),u.plugin(q),u.plugin(B)}(window.kendo.jQuery),window.kendo},s(3))}});