UNPKG

@progress/kendo-ui

Version:

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

2 lines 32.9 kB
module.exports=function(e){function t(s){if(l[s])return l[s].exports;var i=l[s]={exports:{},id:s,loaded:!1};return e[s].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var l={};return t.m=e,t.c=l,t.p="",t(0)}({0:function(e,t,l){e.exports=l(1251)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1054:function(e,t){e.exports=require("./kendo.dropdownlist")},1112:function(e,t){e.exports=require("./kendo.binder")},1174:function(e,t){e.exports=require("./kendo.datepicker")},1191:function(e,t){e.exports=require("./kendo.numerictextbox")},1251:function(e,t,l){var s,i,a;!function(r,define){i=[l(1174),l(1191),l(1054),l(1112)],s=r,a="function"==typeof s?s.apply(t,i):s,!(void 0!==a&&(e.exports=a))}(function(){return function(e,t){function l(t,s){t.filters&&(t.filters=e.grep(t.filters,function(e){return l(e,s),e.filters?e.filters.length:e.field!=s}))}function s(e){var t,l,s,i,a,r;if(e&&e.length)for(r=[],t=0,l=e.length;t<l;t++)s=e[t],a=""!==s.text?s.text||s.value||s:s.text,i=null==s.value?s.text||s:s.value,r[t]={text:a,value:i};return r}function i(t,l){return e.grep(t,function(t){return t.filters?(t.filters=e.grep(t.filters,function(e){return e.field!=l}),t.filters.length):t.field!=l})}function a(t,l){t.filters&&(t.filters=e.grep(t.filters,function(e){return a(e,l),e.filters?e.filters.length:e.field==l&&"eq"==e.operator}))}function r(l){return"and"==l.logic&&l.filters.length>1?[]:l.filters?e.map(l.filters,function(e){return r(e)}):l.value!==t?[l.value]:[]}function n(e,l){for(var s,i,a=c.getter(l,!0),r=[],n=0,o={};n<e.length;)s=e[n++],i=a(s),i===t||o.hasOwnProperty(i)||(r.push(s),o[i]=!0);return r}function o(e,t){return function(l){var s=e(l);return n(s,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>',T='#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" 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" 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" type="reset" title="#=messages.clear#">#=messages.clear#</button><button class="k-button k-primary" type="submit" title="#=messages.filter#">#=messages.filter#</button></div></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>',M='<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-textbox" 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-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>',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"><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">&nbsp;</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>',I='<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">&nbsp;</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,l){var s,i,a,r,n=this,o="string";l=l||{},l.componentType=l.componentType||"classic",F.fn.init.call(n,t,l),s=n.operators=l.operators||{},t=n.element,l=n.options,l.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="'+l.messages.filter+'" aria-label="'+l.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=B.create(l.dataSource),n.field=l.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)))),l.values&&(o="enums"),n.type=o,s=s[o]||l.operators[o];for(i in s)break;n._defaultFilter=function(){return{field:n.field,operator:i||"eq",value:""}},n._refreshHandler=p(n.refresh,n),n.dataSource.bind(v,n._refreshHandler),l.appendToElement?n._init():n.refresh()},_init:function(){var t,l=this,s=l.options.ui,i=S(s);l.pane=l.options.pane,l.pane&&(l._isMobile=!0),i||(t=s||x[l.type]),l._isMobile?l._createMobileForm(t):l._createForm(t),l.form.on("submit"+b,p(l._submit,l)).on("reset"+b,p(l._reset,l)),i&&l.form.find(".k-textbox").removeClass("k-textbox").each(function(){s(e(this))}),l.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"),l.refresh(),l.trigger(m,{field:l.field,container:l.form}),l.options.cycleForm&&c.cycleForm(l.form)},_createForm:function(t){var l=this,i=l.options,a=l.operators||{},r=l.type;a=a[r]||i.operators[r],l.form=e('<form title="'+l.options.messages.title+'" class="k-filter-menu"/>').html(c.template(l._getTemplate())({field:l.field,format:i.format,ns:c.ns,messages:i.messages,extra:i.extra,operators:a,type:r,role:t,values:s(i.values),componentType:l.options.componentType})),i.appendToElement?(l.element.append(l.form),l.popup=l.element.closest(".k-popup").data(h)):l.popup=l.form[h]({anchor:l.link,copyAnchorStyles:!1,open:p(l._open,l),activate:p(l._activate,l),close:function(){l.options.closeCallback&&l.options.closeCallback(l.element)}}).data(h),l.form.on("keydown"+b,p(l._keydown,l))},_getTemplate:function(){var e=this,t=S(e.options.ui);return"boolean"===e.type?t?A:"modern"===e.options.componentType?T:C:M},_createMobileForm:function(t){var l=this,i=l.options,a=l.operators||{},r=c.guid(),n=l.type;a=a[n]||i.operators[n],l.form=e("<div />").html(c.template("boolean"===n?I:H)({field:l.field,title:i.title||l.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:s(i.values)})),l.view=l.pane.append(l.form.html()),l.form=l.view.element.find("form"),l.view.element.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",function(e){l._mobileClear(),e.preventDefault()}),l.view.bind("showStart",function(){l.refresh()})},refresh:function(){var e=this,t=e.dataSource.filter()||{filters:[],logic:"and"},l=[e._defaultFilter()],s=e._defaultFilter().operator;(e.options.extra||"isnull"!==s&&"isnullorempty"!==s&&"isnotnullorempty"!==s&&"isnotnull"!==s&&"isempty"!==s&&"isnotempty"!==s)&&l.push(e._defaultFilter()),e.filterModel=c.observable({logic:"and",filters:l}),e.form&&(c.bind(e.form.children().first(),e.filterModel),"modern"===e.options.componentType&&e.options.extra&&"boolean"!==e.type&&!e._isMobile&&(e.filterModel.bind("change",function(){var t=c.attr("role"),l=e.form.find("["+t+"='buttongroup']").data("kendoButtonGroup"),s="and"===this.logic?0:1;l.select(l.element.children().eq(s))}),e.filterModel.set("onLogicChange",e._logicChangeHandler))),e._bind(t)?e.link.addClass("k-state-active"):e.link.removeClass("k-state-active")},_logicChangeHandler:function(e){var t=c.attr("value"),l=e.sender.current().attr(t);this.set("logic",l)},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,l,s,i,a=this,r=e.filters,n=!1,o=0,c=a.filterModel;for(t=0,l=r.length;t<l;t++)i=r[t],i.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(i.value)),s.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,s,i,a=this,r=e.logic||"and",n=this._stripFilters(e.filters),o=a.dataSource.filter()||{filters:[],logic:"and"};for(l(o,a.field),s=0,i=n.length;s<i;s++)t=n[s],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(e){var t=this;e=e||t.dataSource.filter()||{filters:[]},this.trigger("change",{filter:null,field:t.field})||t._removeFilter(e)},_mobileClear:function(){var t,l,s,i,a,r=this,n=r.view.element;"boolean"===r.type?(t=n.find("[type='radio']:checked"),l=t.val(),t.val(""),t.trigger("change"),t.val(l),t.prop("checked",!1)):(s=n.find("select"),s.each(function(t,l){var s=e(l);s.val(s.find("option:first").val()),s.trigger("change")}),"string"!==r.type&&"date"!==r.type&&"number"!==r.type||(i=n.find(".k-value-input"),i.each(function(t,l){var s=e(l);s.val(""),s.trigger("change")})),r.options.extra&&(a=n.find("[name=logic]").first(),a.prop("checked",!0),a.trigger("change")))},_removeFilter:function(t){var l=this;t.filters=e.grep(t.filters,function(e){return e.filters?(e.filters=i(e.filters,l.field),e.filters.length):e.field!=l.field}),t.filters.length||(t=null),l.dataSource.filter(t)},_submit:function(t){var l,s,i;t.preventDefault(),t.stopPropagation(),l=this.filterModel.toJSON(),s=e.grep(l.filters,function(e){return""!==e.value&&null!==e.value}),this._checkForNullOrEmptyFilter(l)||s&&s.length?this.filter(l):(i=this.dataSource.filter(),i&&(i.filters.push(l),l=i),this.clear(l)),this._closeForm()},_checkForNullOrEmptyFilter:function(e){var t,l,s;return!!(e&&e.filters&&e.filters.length)&&(t=!1,l=!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,l="isnull"==s||"isnotnull"==s||"isnotempty"==s||"isempty"==s||"isnullorempty"==s||"isnotnullorempty"==s),!this.options.extra&&t||this.options.extra&&(t||l))},_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"},componentType:"classic",cycleForm:!0}}),V=".kendoFilterMultiCheck",B=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>',G=F.extend({init:function(t,l){var s,i;F.fn.init.call(this,t,l),l=this.options,this.element=e(t),s=this.field=this.options.field||this.element.attr(c.attr("field")),i=l.checkSource,this._foreignKeyValues()?(this.checkSource=B.create(l.values),this.checkSource.fetch()):l.forceUnique?(i=e.extend(!0,{},l.dataSource.options),delete i.pageSize,this.checkSource=B.create(i),this.checkSource.reader.data=o(this.checkSource.reader.data,this.field)):this.checkSource=B.create(i),this.dataSource=l.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()||this._foreignKeyValues()&&""===e)?null:parseFloat(e)}:s.parse&&(this._parse=p(s.parse,s)),this.type=s.type||"string")),l.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,l=this.options;this.pane=l.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"+V,p(this._keydown,this)).on("submit"+V,p(this._filter,this)).on("reset"+V,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,l,s=this.options.ignoreCase,i=this.searchTextBox[0].value,a=this.container.find("label");for(s&&(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],l=t.textContent||t.innerText,s&&(l=l.toLowerCase()),t.parentNode.style.display=l.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,l=this.options,s="",i=this;this._isMobile||(s+="<div class='k-filter-menu-container'>",l.search&&(s+="<div class='k-textbox k-space-right'><input placeholder='"+l.messages.search+"'/><span class='k-icon k-i-zoom'></span></div>"),s+="<ul class='k-reset k-multicheck-wrap'></ul>",l.messages.selectedItemsFormat&&(s+="<div class='k-filter-selected-items'>"+c.format(l.messages.selectedItemsFormat,0)+"</div>"),s+="<div class='k-action-buttons'>",s+="<button type='submit' class='k-button k-primary'>"+l.messages.filter+"</button>",s+="<button type='reset' class='k-button'>"+l.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?(i.form=e("<div />").html(c.template(D)({field:i.field,title:l.title||i.field,ns:c.ns,messages:l.messages,search:l.search,checkAll:l.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()})):l.appendToElement?(this.popup=this.element.closest(".k-popup").data(h),this.element.append(this.form)):i.popup=i.form.kendoPopup({anchor:i._link,copyAnchorStyles:!1,open:p(i._open,i),activate:p(i._activate,i),close:function(){i.options.closeCallback&&i.options.closeCallback(i.element)}}).data(h),l.search&&(this.searchTextBox=this.form.find(".k-textbox > input"),this.searchTextBox.on("input",p(this._input,this)))},createCheckAllItem:function(){var t=this.options,l=c.template(t.itemTemplate({field:"all",mobile:this._isMobile})),s=e(l({all:t.messages.checkAll}));this.container.prepend(s),this.checkBoxAll=s.find(":checkbox").eq(0).addClass("k-check-all"),this.checkAllHandler=p(this.checkAll,this),this.checkBoxAll.on(v+V,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,l=this.dataSource,s=this.getFilterArray();this._link&&this._link.toggleClass("k-state-active",0!==s.length),this.form&&(e&&t&&e.sender===l&&!l.options.serverPaging&&("itemchange"==e.action||"add"==e.action||"remove"==e.action||l.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(s),this.trigger(g))},getFilterArray:function(){var t,l=e.extend(!0,{},{filters:[],logic:"and"},this.dataSource.filter());return a(l,this.field),t=r(l)},createCheckBoxes:function(){var e,t,l,s=this.options,i={field:this.field,format:s.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(s.itemTemplate(i)),l=c.render(t,e),s.checkAll&&!this._isMobile&&this.createCheckAllItem(),this.container.on(v+V,":checkbox",p(this.updateCheckAllState,this)),this.container.append(l)},checkAll:function(){var e=this.checkBoxAll.is(":checked");this.container.find(":checkbox").prop("checked",e)},checkValues:function(t){var l=this;e(e.grep(this.container.find(":checkbox").prop("checked",!1),function(s){var i,a,r=!1;if(!e(s).is(".k-check-all"))for(i=l._parse(e(s).val()),a=0;a<t.length;a++)if(r="date"==l.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 l=this,s=l.container.find(":checkbox");s.each(function(l,s){var i=e(s);i.prop("checked",t),i.trigger("change")})},_filter:function(t){var l,s;t.preventDefault(),t.stopPropagation(),l={logic:"or"},s=this,l.filters=e.map(this.form.find(":checkbox:checked:not(.k-check-all)"),function(t){return{value:e(t).val(),operator:"eq",field:s.field}}),this.trigger("change",{filter:l,field:s.field})||(l=this._merge(l),l.filters.length?this.dataSource.filter(l):s._removeFilter(s.dataSource.filter()||{filters:[]}),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(V),e.popup&&(e.popup.destroy(),e.popup=null),e.form=null,e.container&&(e.container.unbind(V),e.container=null),e.checkBoxAll&&e.checkBoxAll.unbind(V)),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 l=e.field,s=e.format,i=e.valueField,a=e.mobile,r="";return i===t&&(i=l),"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('"+(s?s:"{0}")+"', "+l+")#</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('"+(s?s:"{0}")+"', "+l+")#</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(G.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(G)}(window.kendo.jQuery),window.kendo},l(3))}});