@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
2 lines • 34.2 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(1265)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1062:function(e,t){e.exports=require("./kendo.dropdownlist")},1100:function(e,t){e.exports=require("./kendo.binder")},1104:function(e,t){e.exports=require("./kendo.numerictextbox")},1189:function(e,t){e.exports=require("./kendo.datepicker")},1265:function(e,t,s){var l,i,a;!function(r,define){i=[s(1189),s(1104),s(1062),s(1100)],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=u.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)}}function c(e){return null!==e[this.field]}var u=window.kendo,p=u.ui,d=e.proxy,f=u.support,h=f.browser.chrome?"disabled":"off",m="kendoPopup",k="init",g="open",v="refresh",b="change",_=".kendoFilterMenu",y="Is equal to",x="Is not equal to",w={number:"numerictextbox",date:"datepicker"},S={string:"text",number:"number",date:"date"},F=u.isFunction,T=p.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='#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>',M='<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>',I='<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="'+h+'" >#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="'+h+'" ><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="'+h+'" />#}#</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="'+h+'" /></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="'+h+'" /></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="'+h+'" >#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="'+h+'" ><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="'+h+'" />#}#</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='<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="'+h+'" /></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="'+h+'" /></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>',B=T.extend({init:function(t,s){var l,i,a,r=this,n="string";s=s||{},s.componentType=s.componentType||"classic",T.fn.init.call(r,t,s),l=r.operators=s.operators||{},t=r.element,s=r.options,r.dataSource=D.create(s.dataSource),r.field=s.field||t.attr(u.attr("field")),r.link=r._createLink()||e(),r.model=r.dataSource.reader.model,r._parse=function(e){return null!=e?e+"":e},r.model&&r.model.fields&&(a=r.model.fields[r.field],a&&(n=a.type||"string",a.parse&&(r._parse=d(a.parse,a)))),s.values&&(n="enums"),r.type=n,l=l[n]||s.operators[n];for(i in l)break;r._defaultFilter=function(){return{field:r.field,operator:i||"eq",value:""}},r._refreshHandler=d(r.refresh,r),r.dataSource.bind(b,r._refreshHandler),s.appendToElement?r._init():r.refresh()},_init:function(){var t,s=this,l=s.options.ui,i=F(l);s.pane=s.options.pane,s.pane&&(s._isMobile=!0),i||(t=l||w[s.type]),s._isMobile?s._createMobileForm(t):s._createForm(t),s.form.on("submit"+_,d(s._submit,s)).on("reset"+_,d(s._reset,s)),i&&s.form.find(".k-textbox").removeClass("k-textbox").each(function(){l(e(this))}),s.form.find("["+u.attr("role")+"=numerictextbox]").removeClass("k-textbox").end().find("["+u.attr("role")+"=datetimepicker]").removeClass("k-textbox").end().find("["+u.attr("role")+"=timepicker]").removeClass("k-textbox").end().find("["+u.attr("role")+"=datepicker]").removeClass("k-textbox"),s.refresh(),s.trigger(k,{field:s.field,container:s.form}),s.options.cycleForm&&u.cycleForm(s.form)},_createForm:function(t){var s=this,i=s.options,a=s.operators||{},r=s.type;a=a[r]||i.operators[r],s.form=e('<form title="'+s.options.messages.title+'" class="k-filter-menu"/>').html(u.template(s._getTemplate())({field:s.field,format:i.format,ns:u.ns,messages:i.messages,extra:i.extra,operators:a,type:r,role:t,values:l(i.values),componentType:s.options.componentType})),i.appendToElement?(s.element.append(s.form),s.popup=s.element.closest(".k-popup").data(m)):s.popup=s.form[m]({anchor:s.link,copyAnchorStyles:!1,open:d(s._open,s),activate:d(s._activate,s),close:function(){s.options.closeCallback&&s.options.closeCallback(s.element)}}).data(m),s.form.on("keydown"+_,d(s._keydown,s))},_getTemplate:function(){var e=this,t=F(e.options.ui);return"boolean"===e.type?t?M:"modern"===e.options.componentType?A:C:I},_createMobileForm:function(t){var s=this,i=s.options,a=s.operators||{},r=u.guid(),n=s.type;a=a[n]||i.operators[n],s.form=e("<div />").html(u.template("boolean"===n?q:H)({field:s.field,title:i.title||s.field,format:i.format,ns:u.ns,messages:i.messages,extra:i.extra,operators:a,filterMenuGuid:r,type:n,role:t,inputType:S[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()})},_createLink:function(){var e,t=this,s=t.element,l=t.options,i=u.format(l.messages.buttonTitle,t.options.title||t.field);if(!l.appendToElement)return e=s.addClass("k-with-icon k-filterable").find(".k-grid-filter"),e[0]||(e=s.prepend('<a class="k-grid-filter" href="#" title="'+i+'" aria-label="'+i+'"><span class="k-icon k-i-filter"></span></a>').find(".k-grid-filter")),e.attr("tabindex",-1).on("click"+_,d(t._click,t)),e},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=u.observable({logic:"and",filters:s}),e.form&&(u.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=u.attr("role"),s=e.form.find("["+t+"='buttongroup']").data("kendoButtonGroup"),l="and"===this.logic?0:1;s.select(s.element.children().eq(l))}),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=u.attr("value"),s=e.sender.current().attr(t);this.set("logic",s)},destroy:function(){var e=this;T.fn.destroy.call(e),e.form&&(u.unbind(e.form),u.destroy(e.form),e.form.off(_),e.popup&&(e.popup.destroy(),e.popup=null),e.form=null),e.view&&(e.view.purge(),e.view=null),e.link.off(_),e._refreshHandler&&(e.dataSource.unbind(b,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(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,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.clear(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(m),t&&t.close()})},_activate:function(){this.form.find(":kendoFocusable").first().trigger("focus"),this.trigger(g,{field:this.field,container:this.form})},_keydown:function(e){e.keyCode==u.keys.ESC&&this.popup.close()},events:[k,"change",g],options:{name:"FilterMenu",extra:!0,appendToElement:!1,type:"string",operators:{string:{eq:y,neq:x,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:y,neq:x,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:y,neq:x,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:y,neq:x,isnull:"Is null",isnotnull:"Is not null"}},messages:{info:"Show items with value that:",title:"Show items with value that:",isTrue:"is true",isFalse:"is false",filter:"Filter",clear:"Clear",and:"And",or:"Or",selectValue:"-Select value-",operator:"Operator",value:"Value",additionalValue:"Additional value",additionalOperator:"Additional operator",logic:"Filters logic",cancel:"Cancel",done:"Done",into:"in",buttonTitle:"{0} filter column settings"},animations:{left:"slide",right:"slide:right"},componentType:"classic",cycleForm:!0}}),V=".kendoFilterMultiCheck",D=u.data.DataSource,G='<div data-#=ns#role="view" class="k-grid-filter-menu"><div data-#=ns#role="header" class="k-header"><a href="\\#" class="k-header-cancel k-link" title="#=messages.cancel#" aria-label="#=messages.cancel#"><span class="k-icon k-i-arrow-chevron-left"></span></a>#=messages.filter# #=messages.into# #=title#<a href="\\#" class="k-header-done k-link" title="#=messages.done#" aria-label="#=messages.done#"><span class="k-icon k-i-check"></span></a></div><form class="k-filter-menu"><ul class="k-reset">#if(search){#<li class="k-textbox k-space-right"><input class="k-input" placeholder="#=messages.search#" title="#=messages.search#" autocomplete="'+h+'" /><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>',O=T.extend({init:function(t,s){var l,i;T.fn.init.call(this,t,s),s=this.options,this.element=e(t),l=this.field=this.options.field||this.element.attr(u.attr("field")),i=s.checkSource,this._foreignKeyValues()?(this.checkSource=D.create(s.values),this.checkSource.fetch()):s.forceUnique?(i=e.extend(!0,{},s.dataSource.options),delete i.pageSize,this.checkSource=D.create(i),this.checkSource.reader.data=o(this.checkSource.reader.data,this.field)):this.checkSource=D.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()||this._foreignKeyValues()&&""===e)?null:parseFloat(e)}:l.parse&&(this._parse=d(l.parse,l)),this.type=l.type||"string")),s.appendToElement?this._init():this._createLink(),this._refreshHandler=d(this.refresh,this),this.dataSource.bind(b,this._refreshHandler)},_createLink:function(){var e=this.element,t=e.addClass("k-with-icon k-filterable").find(".k-grid-filter"),s=u.format(this.options.messages.buttonTitle,this.options.title||this.field);t[0]||(t=e.prepend('<a class="k-grid-filter" href="#" title="'+s+'" aria-label="'+s+'"><span class="k-icon k-i-filter"></span></a>').find(".k-grid-filter")),this._link=t.attr("tabindex",-1).on("click"+_,d(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(b,this.checkChangeHandler)),this.form.on("keydown"+V,d(this._keydown,this)).on("submit"+V,d(this._filter,this)).on("reset"+V,d(this._reset,this)),this.trigger(k,{field:this.field,container:this.form})},_attachProgress:function(){var e=this;this._progressHandler=function(){p.progress(e.container,!0)},this._progressHideHandler=function(){p.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)},_clearSearch:function(){var e=this;e.searchTextBox.val(""),e.search()},_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().trigger("focus"),this.trigger(g,{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+="<span class='k-searchbox'><span class='k-input-prefix'><span class='k-icon k-i-search'></span></span><input class='k-input' type='text' placeholder='"+s.messages.search+"' /><span class='k-input-suffix'><button type='button' class='k-button k-icon-button k-button-clear'><span class='k-icon k-i-close'></span></button></span></span>"),l+="<ul class='k-reset k-multicheck-wrap'></ul>",s.messages.selectedItemsFormat&&(l+="<div class='k-filter-selected-items'>"+u.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(u.template(G)({field:i.field,title:s.title||i.field,ns:u.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(m),this.element.append(this.form)):i.popup=i.form.kendoPopup({anchor:i._link,copyAnchorStyles:!1,open:d(i._open,i),activate:d(i._activate,i),close:function(){i.options.closeCallback&&i.options.closeCallback(i.element)}}).data(m),s.search&&(this.searchTextBox=this.form.find(".k-textbox > input, .k-searchbox > input"),this.searchTextBox.on("input"+V,d(this._input,this)),this.clearSearchButton=this.form.find(".k-searchbox button"),this.clearSearchButton.on("click"+V,d(this._clearSearch,this)))},createCheckAllItem:function(){var t=this.options,s=u.template(t.itemTemplate({field:"all",mobile:this._isMobile})),l=e(s({all:t.messages.checkAll}));this.container.prepend(l),l.addClass("k-check-all-wrap"),this.checkBoxAll=l.find(":checkbox").eq(0).addClass("k-check-all"),this.checkAllHandler=d(this.checkAll,this),this.checkBoxAll.on(b+V,this.checkAllHandler)},updateCheckAllState:function(){if(this.options.messages.selectedItemsFormat&&this.form.find(".k-filter-selected-items").text(u.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)}},createIsNullItem:function(){var t=this.options,s=u.template(t.itemTemplate({field:"isNull",mobile:this._isMobile,valueField:"value"})),l=e(s({isNull:t.messages.isNull,value:null}));this.container.append(l)},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(v))},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},a=c.bind(this);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(),"boolean"===this.type&&(this.createIsNullItem(),e=e.filter(a)),t=u.template(l.itemTemplate(i)),s=u.render(t,e),this.container.on(b+V,":checkbox",d(this.updateCheckAllState,this)),this.container.prepend(s),l.checkAll&&!this._isMobile&&this.createCheckAllItem()},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}}),this.trigger("change",{filter:s,field:l.field})||(s=this._merge(s),s.filters.length?this.dataSource.filter(s):l._removeFilter(l.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;T.fn.destroy.call(e),e.form&&(u.unbind(e.form),u.destroy(e.form),
e.form.off(V),e.popup&&(e.popup.destroy(),e.popup=null),e.form=null,e.container&&(e.container.off(V),e.container=null),e.checkBoxAll&&e.checkBoxAll.off(V)),e.view&&(e.view.purge(),e.view=null),e._link&&e._link.off(_),e._refreshHandler&&(e.dataSource.unbind(b,e._refreshHandler),e.dataSource=null),e.checkChangeHandler&&e.checkSource.unbind(b,e.checkChangeHandler),e._progressHandler&&e.checkSource.unbind("progress",e._progressHandler),e._progressHideHandler&&e.checkSource.unbind("change",e._progressHideHandler),this._clearTypingTimeout(),this.searchTextBox&&(this.searchTextBox.off(V),this.searchTextBox=null),this.clearSearchButton&&(this.clearSearchButton.off(V),this.clearSearchButton=null),e.element=e.checkSource=e.container=e.checkBoxAll=e._link=e._refreshHandler=e.checkAllHandler=null},options:{name:"FilterMultiCheck",itemTemplate:function(e){var 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 k-checkbox-label'><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' class='k-checkbox' value='#:kendo.format('{0"+r+"}',"+i+")#'/></span></label></li>":"<li class='k-item'><label class='k-label k-checkbox-label'><input type='checkbox' class='k-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",isNull:"is empty",clearAll:"Clear All",clear:"Clear",filter:"Filter",search:"Search",cancel:"Cancel",selectedItemsFormat:"{0} items selected",done:"Done",into:"in",buttonTitle:"{0} filter column settings"},forceUnique:!0,animations:{left:"slide",right:"slide:right"}},events:[k,v,"change",g]});e.extend(O.fn,{_click:B.fn._click,_keydown:B.fn._keydown,_reset:B.fn._reset,_closeForm:B.fn._closeForm,_removeFilter:B.fn._removeFilter,clear:B.fn.clear,_merge:B.fn._merge}),p.plugin(B),p.plugin(O)}(window.kendo.jQuery),window.kendo},s(3))}});