UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

1 lines 29.4 kB
module.exports=function(e){function t(s){if(i[s])return i[s].exports;var l=i[s]={exports:{},id:s,loaded:!1};return e[s].call(l.exports,l,l.exports,t),l.loaded=!0,l.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}({0:function(e,t,i){e.exports=i(1187)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1010:function(e,t){e.exports=require("./kendo.dropdownlist")},1060:function(e,t){e.exports=require("./kendo.binder")},1122:function(e,t){e.exports=require("./kendo.datepicker")},1139:function(e,t){e.exports=require("./kendo.numerictextbox")},1187:function(e,t,i){var s,l,a;!function(n,define){l=[i(1122),i(1139),i(1010),i(1060)],s=n,a="function"==typeof s?s.apply(t,l):s,!(void 0!==a&&(e.exports=a))}(function(){return function(e,t){function i(t,s){t.filters&&(t.filters=e.grep(t.filters,function(e){return i(e,s),e.filters?e.filters.length:e.field!=s}))}function s(e){var t,i,s,l,a,n;if(e&&e.length)for(n=[],t=0,i=e.length;t<i;t++)s=e[t],a=""!==s.text?s.text||s.value||s:s.text,l=null==s.value?s.text||s:s.value,n[t]={text:a,value:l};return n}function l(t,i){return e.grep(t,function(t){return t.filters?(t.filters=e.grep(t.filters,function(e){return e.field!=i}),t.filters.length):t.field!=i})}function a(t,i){t.filters&&(t.filters=e.grep(t.filters,function(e){return a(e,i),e.filters?e.filters.length:e.field==i&&"eq"==e.operator}))}function n(i){return"and"==i.logic&&i.filters.length>1?[]:i.filters?e.map(i.filters,function(e){return n(e)}):i.value!==t?[i.value]:[]}function r(e,i){for(var s,l,a=c.getter(i,!0),n=[],r=0,o={};r<e.length;)s=e[r++],l=a(s),l===t||o.hasOwnProperty(l)||(n.push(s),o[l]=!0);return n}function o(e,t){return function(i){var s=e(i);return r(s,t)}}var c=window.kendo,u=c.ui,d=e.proxy,f=c.support,p=f.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 k-mobile-list"><ul><li><span class="k-filter-help-text">#=messages.info#</span><ul><li class="k-item"><label class="k-label"><span class="k-filter-operator-text">#=messages.operator#</span><select id="operator_#=filterMenuGuid#" title="#=messages.operator#" class="k-filter-operator" data-#=ns#bind="value: filters[0].operator" autocomplete="'+p+'" >#for(var op in operators){#<option value="#=op#">#=operators[op]#</option>#}#</select></label></li><li class="k-item"><label class="k-label"><span class="k-filter-input-text">#=messages.value#</span>#if(values){#<select id="value_#=filterMenuGuid#" title="#=messages.value#" data-#=ns#bind="value:filters[0].value" autocomplete="'+p+'" ><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="'+p+'" />#}#</label></li></ul>#if(extra){#<ul><li class="k-item"><label class="k-label"><span class="k-filter-logic-and-text">#=messages.and#</span><input id="and_#=filterMenuGuid#" title="#=messages.and#" type="radio" name="logic" class="k-radio" data-#=ns#bind="checked: logic" value="and" autocomplete="'+p+'" /><span class="k-radio-label"></span></label></li><li class="k-item"><label class="k-label"><span class="k-filter-logic-or-text">#=messages.or#</span><input id="or_#=filterMenuGuid#" title="#=messages.or#" type="radio" name="logic" class="k-radio" data-#=ns#bind="checked: logic" value="or" autocomplete="'+p+'" /><span class="k-radio-label"></label></label></li></ul><ul><li class="k-item"><label class="k-label"><span class="k-filter-operator-text">#=messages.additionalOperator#</span><select id="additionalOperator_#=filterMenuGuid#" title="#=messages.additionalOperator#" class="k-filter-operator" data-#=ns#bind="value: filters[1].operator" autocomplete="'+p+'" >#for(var op in operators){#<option value="#=op#">#=operators[op]#</option>#}#</select></label></li><li class="k-item"><label class="k-label"><span class="k-filter-input-text">#=messages.additionalValue#</span>#if(values){#<select id="additionalValue_#=filterMenuGuid#" title="#=messages.additionalValue#" data-#=ns#bind="value:filters[1].value" autocomplete="'+p+'" ><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="'+p+'" />#}#</label></li></ul>#}#</li><li class="k-item k-clear-wrap"><span class="k-label k-clear" title="#=messages.clear#" aria-label="#=messages.clear#">#=messages.clear#</span></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 k-mobile-list"><ul><li><span class="k-filter-help-text">#=messages.info#</span><ul class="k-multicheck-bool-wrap"><li class="k-item"><label class="k-label"><input id="true_#=filterMenuGuid#" title="#=messages.isTrue#" class="k-check" type="radio" data-#=ns#bind="checked: filters[0].value" value="true" name="filters[0].value" autocomplete="'+p+'" /><span class="k-item-title">#=messages.isTrue#</span></label></li><li class="k-item"><label class="k-label"><input id="false_#=filterMenuGuid#" title="#=messages.isFalse#" class="k-check" type="radio" data-#=ns#bind="checked: filters[0].value" value="false" name="filters[0].value"/> autocomplete="'+p+'" <span for="false_#=filterMenuGuid#" class="k-item-title">#=messages.isFalse#</span></label></li></ul></li><li class="k-item k-clear-wrap"><span class="k-label k-clear" title="#=messages.clear#" aria-label="#=messages.clear#">#=messages.clear#</span></li></ul></form></div>',q=F.extend({init:function(t,i){var s,l,a,n,r=this,o="string";F.fn.init.call(r,t,i),s=r.operators=i.operators||{},t=r.element,i=r.options,i.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="'+i.messages.filter+'" aria-label="'+i.messages.filter+'"><span class="k-icon k-i-filter"></span></a>').find(".k-grid-filter")),a.attr("tabindex",-1).on("click"+b,d(r._click,r))),r.link=a||e(),r.dataSource=V.create(i.dataSource),r.field=i.field||t.attr(c.attr("field")),r.model=r.dataSource.reader.model,r._parse=function(e){return null!=e?e+"":e},r.model&&r.model.fields&&(n=r.model.fields[r.field],n&&(o=n.type||"string",n.parse&&(r._parse=d(n.parse,n)))),i.values&&(o="enums"),r.type=o,s=s[o]||i.operators[o];for(l in s)break;r._defaultFilter=function(){return{field:r.field,operator:l||"eq",value:""}},r._refreshHandler=d(r.refresh,r),r.dataSource.bind(v,r._refreshHandler),i.appendToElement?r._init():r.refresh()},_init:function(){var t,i=this,s=i.options.ui,l=S(s);i.pane=i.options.pane,i.pane&&(i._isMobile=!0),l||(t=s||x[i.type]),i._isMobile?i._createMobileForm(t):i._createForm(t),i.form.on("submit"+b,d(i._submit,i)).on("reset"+b,d(i._reset,i)),l&&i.form.find(".k-textbox").removeClass("k-textbox").each(function(){s(e(this))}),i.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"),i.refresh(),i.trigger(m,{field:i.field,container:i.form}),c.cycleForm(i.form)},_createForm:function(t){var i=this,l=i.options,a=i.operators||{},n=i.type,r=S(i.options.ui);a=a[n]||l.operators[n],i.form=e('<form title="'+i.options.messages.title+'" class="k-filter-menu"/>').html(c.template("boolean"===n?r?A:C:T)({field:i.field,format:l.format,ns:c.ns,messages:l.messages,extra:l.extra,operators:a,type:n,role:t,values:s(l.values)})),l.appendToElement?(i.element.append(i.form),i.popup=i.element.closest(".k-popup").data(h)):i.popup=i.form[h]({anchor:i.link,open:d(i._open,i),activate:d(i._activate,i),close:function(){i.options.closeCallback&&i.options.closeCallback(i.element)}}).data(h),i.form.on("keydown"+b,d(i._keydown,i))},_createMobileForm:function(t){var i=this,l=i.options,a=i.operators||{},n=c.guid(),r=i.type;a=a[r]||l.operators[r],i.form=e("<div />").html(c.template("boolean"===r?H:M)({field:i.field,title:l.title||i.field,format:l.format,ns:c.ns,messages:l.messages,extra:l.extra,operators:a,filterMenuGuid:n,type:r,role:t,inputType:w[r],values:s(l.values)})),i.view=i.pane.append(i.form.html()),i.form=i.view.element.find("form"),i.view.element.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",function(e){i._mobileClear(),e.preventDefault()}),i.view.bind("showStart",function(){i.refresh()})},refresh:function(){var e=this,t=e.dataSource.filter()||{filters:[],logic:"and"},i=[e._defaultFilter()],s=e._defaultFilter().operator;(e.options.extra||"isnull"!==s&&"isnullorempty"!==s&&"isnotnullorempty"!==s&&"isnotnull"!==s&&"isempty"!==s&&"isnotempty"!==s)&&i.push(e._defaultFilter()),e.filterModel=c.observable({logic:"and",filters:i}),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,i,s,l,a=this,n=e.filters,r=!1,o=0,c=a.filterModel;for(t=0,i=n.length;t<i;t++)l=n[t],l.field==a.field?(c.set("logic",e.logic),s=c.filters[o],s||(c.filters.push({field:a.field}),s=c.filters[o]),s.set("value",a._parse(l.value)),s.set("operator",l.operator),o++,r=!0):l.filters&&(r=r||a._bind(l));return r},_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,s,l,a=this,n=e.logic||"and",r=this._stripFilters(e.filters),o=a.dataSource.filter()||{filters:[],logic:"and"};for(i(o,a.field),s=0,l=r.length;s<l;s++)t=r[s],t.value=a._parse(t.value);return r.length&&(o.filters.length?(e.filters=r,"and"!==o.logic&&(o.filters=[{logic:o.logic,filters:o.filters}],o.logic="and"),o.filters.push(r.length>1?e:r[0])):(o.filters=r,o.logic=n)),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,i,s,l,a,n=this,r=n.view.element;"boolean"===n.type?(t=r.find(".k-check:checked"),i=t.val(),t.val(""),t.trigger("change"),t.val(i),t.prop("checked",!1)):(s=r.find("select"),s.each(function(t,i){var s=e(i);s.val(s.find("option:first").val()),s.trigger("change")}),"string"!==n.type&&"date"!==n.type&&"number"!==n.type||(l=r.find(".k-value-input"),l.each(function(t,i){var s=e(i);s.val(""),s.trigger("change")})),n.options.extra&&(a=r.find("[name=logic]").first(),a.prop("checked",!0),a.trigger("change")))},_removeFilter:function(t){var i=this;t.filters=e.grep(t.filters,function(e){return e.filters?(e.filters=l(e.filters,i.field),e.filters.length):e.field!=i.field}),t.filters.length||(t=null),i.dataSource.filter(t)},_submit:function(t){var i,s,l;t.preventDefault(),t.stopPropagation(),i=this.filterModel.toJSON(),s=e.grep(i.filters,function(e){return""!==e.value&&null!==e.value}),this._checkForNullOrEmptyFilter(i)||s&&s.length?this.filter(i):(l=this.dataSource.filter(),l&&(l.filters.push(i),i=l),this._removeFilter(i)),this._closeForm()},_checkForNullOrEmptyFilter:function(e){var t,i,s;return!!(e&&e.filters&&e.filters.length)&&(t=!1,i=!1,e.filters[0]&&(s=e.filters[0].operator,t="isnull"==s||"isnotnull"==s||"isnotempty"==s||"isempty"==s||"isnullorempty"==s||"isnotnullorempty"==s),e.filters[1]&&(s=e.filters[1].operator,i="isnull"==s||"isnotnull"==s||"isnotempty"==s||"isempty"==s||"isnullorempty"==s||"isnotnullorempty"==s),!this.options.extra&&t||this.options.extra&&(t||i))},_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,B='<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 k-mobile-list"><ul>#if(search){#<li class="k-textbox k-space-right"><input placeholder="#=messages.search#" title="#=messages.search#" autocomplete="'+p+'" /><span class="k-icon k-i-zoom" /></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"></ul></li></ul></form></div>',D=F.extend({init:function(t,i){var s,l;F.fn.init.call(this,t,i),i=this.options,this.element=e(t),s=this.field=this.options.field||this.element.attr(c.attr("field")),l=i.checkSource,this._foreignKeyValues()?(this.checkSource=V.create(i.values),this.checkSource.fetch()):i.forceUnique?(l=e.extend(!0,{},i.dataSource.options),delete l.pageSize,this.checkSource=V.create(l),this.checkSource.reader.data=o(this.checkSource.reader.data,this.field)):this.checkSource=V.create(l),this.dataSource=i.dataSource,this.model=this.dataSource.reader.model,this._parse=function(e){return e+""},this.model&&this.model.fields&&(s=this.model.fields[this.field],s&&("number"==s.type?this._parse=function(e){return"string"==typeof e&&"null"===e.toLowerCase()?null:parseFloat(e)}:s.parse&&(this._parse=d(s.parse,s)),this.type=s.type||"string")),i.appendToElement?this._init():this._createLink(),this._refreshHandler=d(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"/></a>').find(".k-grid-filter")),this._link=t.attr("tabindex",-1).on("click"+b,d(this._click,this))},_init:function(){var e=this,t=this.options.forceUnique,i=this.options;this.pane=i.pane,this.pane&&(this._isMobile=!0),this._createForm(),this._foreignKeyValues()?this.refresh():t&&!this.checkSource.options.serverPaging&&this.dataSource.data().length?(this.checkSource.data(r(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,d(this._keydown,this)).on("submit"+I,d(this._filter,this)).on("reset"+I,d(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,i,s=this.options.ignoreCase,l=this.searchTextBox[0].value,a=this.container.find("label");for(s&&(l=l.toLowerCase()),e=0,this.options.checkAll&&a.length&&(this._isMobile?this.view.element.find(".k-select-all")[0].style.visibility=l?"hidden":"":(a[0].parentNode.style.display=l?"none":"",e++));e<a.length;)t=a[e],i=t.textContent||t.innerText,s&&(i=i.toLowerCase()),t.parentNode.style.display=i.indexOf(l)>=0?"":"none",e++},_activate:function(){this.form.find(":kendoFocusable:first").focus(),this.trigger(k,{field:this.field,container:this.form})},_createForm:function(){var t,i=this.options,s="",l=this;this._isMobile||(s+="<div class='k-filter-menu-container'>",i.search&&(s+="<div class='k-textbox k-space-right'><input placeholder='"+i.messages.search+"'/><span class='k-icon k-i-zoom' /></div>"),s+="<ul class='k-reset k-multicheck-wrap'></ul>",i.messages.selectedItemsFormat&&(s+="<div class='k-filter-selected-items'>"+c.format(i.messages.selectedItemsFormat,0)+"</div>"),s+="<div class='k-action-buttons'>",s+="<button type='submit' class='k-button k-primary'>"+i.messages.filter+"</button>",s+="<button type='reset' class='k-button'>"+i.messages.clear+"</button>",s+="</div>",s+="</div>",this.form=e('<form class="k-filter-menu"/>').html(s),this.container=this.form.find(".k-multicheck-wrap")),this._isMobile?(l.form=e("<div />").html(c.template(B)({field:l.field,title:i.title||l.field,ns:c.ns,messages:i.messages,search:i.search,checkAll:i.checkAll})),l.view=l.pane.append(l.form.html()),l.form=l.view.element.find("form"),t=this.view.element,this.container=t.find(".k-multicheck-wrap"),t.on("click",".k-header-done",function(e){l.form.submit(),e.preventDefault()}).on("click",".k-header-cancel",function(e){l._closeForm(),e.preventDefault()}).on("click",".k-clear-all",function(e){l._mobileCheckAll(!1),e.preventDefault()}).on("click",".k-select-all",function(e){l._mobileCheckAll(!0),e.preventDefault()}),l.view.bind("showStart",function(){l.refresh()})):i.appendToElement?(this.popup=this.element.closest(".k-popup").data(h),this.element.append(this.form)):l.popup=l.form.kendoPopup({anchor:l._link,open:d(l._open,l),activate:d(l._activate,l),close:function(){l.options.closeCallback&&l.options.closeCallback(l.element)}}).data(h),i.search&&(this.searchTextBox=this.form.find(".k-textbox > input"),this.searchTextBox.on("input",d(this._input,this)))},createCheckAllItem:function(){var t=this.options,i=c.template(t.itemTemplate({field:"all",mobile:this._isMobile})),s=e(i({all:t.messages.checkAll}));this.container.prepend(s),this.checkBoxAll=s.find(":checkbox").eq(0).addClass("k-check-all"),this.checkAllHandler=d(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,i=this.dataSource,s=this.getFilterArray();this._link&&this._link.toggleClass("k-state-active",0!==s.length),this.form&&(e&&t&&e.sender===i&&!i.options.serverPaging&&("itemchange"==e.action||"add"==e.action||"remove"==e.action||i.options.autoSync&&"sync"===e.action)&&!this._foreignKeyValues()&&(this.checkSource.data(r(this.dataSource.data(),this.field)),this.container.empty()),this.container.is(":empty")&&this.createCheckBoxes(),this.checkValues(s),this.trigger(g))},getFilterArray:function(){var t,i=e.extend(!0,{},{filters:[],logic:"and"},this.dataSource.filter());return a(i,this.field),t=n(i)},createCheckBoxes:function(){var e,t,i,s=this.options,l={field:this.field,format:s.format,mobile:this._isMobile,type:this.type};this.options.forceUnique?this._foreignKeyValues()?(e=this.checkSource.data(),l.valueField="value",l.field="text"):e=this.checkSource.data():e=this.checkSource.view(),t=c.template(s.itemTemplate(l)),i=c.render(t,e),s.checkAll&&!this._isMobile&&this.createCheckAllItem(),this.container.on(v+I,":checkbox",d(this.updateCheckAllState,this)),this.container.append(i)},checkAll:function(){var e=this.checkBoxAll.is(":checked");this.container.find(":checkbox").prop("checked",e)},checkValues:function(t){var i=this;e(e.grep(this.container.find(":checkbox").prop("checked",!1),function(s){var l,a,n=!1;if(!e(s).is(".k-check-all"))for(l=i._parse(e(s).val()),a=0;a<t.length;a++)if(n="date"==i.type?t[a]&&l?t[a].getTime()==l.getTime():null===t[a]&&null===l:t[a]==l)return n})).prop("checked",!0),this.updateCheckAllState()},_mobileCheckAll:function(t){var i=this,s=i.container.find(":checkbox");s.each(function(i,s){var l=e(s);l.prop("checked",t),l.trigger("change")})},_filter:function(t){var i,s;t.preventDefault(),t.stopPropagation(),i={logic:"or"},s=this,i.filters=e.map(this.form.find(":checkbox:checked:not(.k-check-all)"),function(t){return{value:e(t).val(),operator:"eq",field:s.field}}),i.filters.length&&this.trigger("change",{filter:i,field:s.field})||(i=this._merge(i),i.filters.length?this.dataSource.filter(i):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 i=e.field,s=e.format,l=e.valueField,a=e.mobile,n="";return l===t&&(l=i),"date"==e.type&&(n=":yyyy-MM-ddTHH:mm:sszzz"),"<li class='k-item'><label class='k-label'><input type='checkbox' class='"+(a?"k-check":"")+"' value='#:kendo.format('{0"+n+"}',"+l+")#'/><span class='k-item-title'>#:kendo.format('"+(s?s:"{0}")+"', "+i+")#</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(D.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(D)}(window.kendo.jQuery),window.kendo},i(3))}});