UNPKG

@progress/kendo-ui

Version:

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

3 lines 40.5 kB
/* @license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.datepicker.min.js`),require(`kendo.numerictextbox.min.js`),require(`kendo.dropdownlist.min.js`),require(`kendo.buttongroup.min.js`),require(`kendo.binder.min.js`),require(`kendo.html.button.min.js`),require(`kendo.icons.min.js`),require(`kendo.pane.min.js`),require(`kendo.actionsheet.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.datepicker.min`,`kendo.numerictextbox.min`,`kendo.dropdownlist.min`,`kendo.buttongroup.min`,`kendo.binder.min`,`kendo.html.button.min`,`kendo.icons.min`,`kendo.pane.min`,`kendo.actionsheet.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Filtermenu={}),e.kendo._globals.Datepicker,e.kendo._globals.Numerictextbox,e.kendo._globals.Dropdownlist,e.kendo._globals.Buttongroup,e.kendo._globals.Binder,e.kendo._globals.HtmlButton,e.kendo._globals.Icons,e.kendo._globals.Pane,e.kendo._globals.Actionsheet))})(this,function(e,t,n,r,i,a,o,s,c,l){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let u={id:`filtermenu`,name:`Filtering Menu`,category:`framework`,depends:[`datepicker`,`numerictextbox`,`dropdownlist`,`buttongroup`,`binder`,`html.button`,`icons`,`actionsheet`],advanced:!0};(function(e,t){var n=window.kendo,r=n.ui,i=n.support,a=n.htmlEncode,o=i.browser.chrome?`disabled`:`off`,s=`kendoPopup`,c=`kendoActionSheet`,l=`init`,u=`open`,d=`refresh`,f=`change`,p=`.kendoFilterMenu`,m=`.k-table-th`,h=`Is equal to`,g=`Is not equal to`,_={number:`numerictextbox`,date:`datepicker`},v={string:`text`,number:`number`,date:`date`},y=n.isFunction,b=r.Widget,x=({actionsCssClass:e,messages:t,size:r})=>`<div class="k-actions-stretched ${e||`k-actions`}">`+n.html.renderButton(`<button title="${t.filter}">${a(t.filter)}</button>`,{type:`submit`,themeColor:`primary`,icon:`filter`,size:r})+n.html.renderButton(`<button title="${t.clear}">${a(t.clear)}</button>`,{type:`reset`,icon:`filter-clear`,size:r})+`</div>`,S=({field:e,format:t,ns:n,messages:r,extra:i,operators:o,type:s,role:c,values:l,componentType:u,isAdaptive:d})=>`<div class="k-filter-menu-container"><div class="k-filter-help-text">${a(r.info)}</div><label><input type="radio" class="k-radio${d?` k-radio-lg`:``}" data-${n}bind="checked: filters[0].value" value="true" name="filters[0].value"/>${a(r.isTrue)}</label><label><input type="radio" class="k-radio${d?` k-radio-lg`:``}" data-${n}bind="checked: filters[0].value" value="false" name="filters[0].value"/>${a(r.isFalse)}</label>${d?``:x({messages:r})}</div>`,C=({field:e,format:t,ns:r,messages:i,extra:o,operators:s,type:c,role:l,values:u,componentType:d,isAdaptive:f})=>{var p=n.guid(),m=n.guid();return`<div class="k-filter-menu-container"><div><ul class="k-radio-list k-reset"><li><input type="radio" class="k-radio${f?` k-radio-lg`:``}" id="${p}" ${f?`data-size="large"`:``} data-${r}bind="checked: filters[0].value" value="true" name="filters[0].value" /><label class="k-radio-label" for="${p}">${a(i.isTrue)}</label></li><li><input type="radio" class="k-radio${f?` k-radio-lg`:``}" id="${m}" data-${r}bind="checked: filters[0].value" value="false" name="filters[0].value" /><label class="k-radio-label" for="${m}">${a(i.isFalse)}</label></li></ul>${f?``:x({actionsCssClass:`k-columnmenu-actions`,messages:i})}</div></div>`},w=({field:e,format:t,ns:n,messages:r,extra:i,operators:o,type:s,role:c,values:l,componentType:u,isAdaptive:d})=>`<div class="k-filter-menu-container"><div class="k-filter-help-text">${a(r.info)}</div><label><span class="k-textbox k-input${d?` k-input-lg`:``}"><input class="k-input-inner" ${d?`data-size="large"`:``} data-${n}bind="value: filters[0].value" ${d?`data-${n}adaptive-mode="auto"`:`data-${n}adaptive-mode="none"`} name="filters[0].value"/></span></label>${d?``:x({messages:r})}</div>`,T=({ns:e,messages:t,componentType:n,isAdaptive:r})=>n===`modern`?`<ul data-${e}role="buttongroup" data-bind="events: { select: onLogicChange }"><li data-${e}value="and">${a(t.and)}</li><li data-${e}value="or">${a(t.or)}</li></ul>`:`<select title="${t.logic}" class="k-filter-and" ${r?`data-size="large"`:``} data-${e}adaptive-mode="${r?`auto`:`none`}" data-${e}bind="value: logic" data-${e}role="dropdownlist"><option value="and">${a(t.and)}</option><option value="or">${a(t.or)}</option></select>`,E=({field:e,format:t,ns:r,messages:i,extra:o,operators:s,type:c,role:l,values:u,componentType:d,isAdaptive:f})=>`<div class="k-filter-menu-container">`+(d===`classic`?`<div class="k-filter-help-text">${a(i.info)}</div>`:``)+`<select title="${i.operator}" data-${r}bind="value: filters[0].operator" ${f?`data-size="large"`:``} data-${r}adaptive-mode="${f?`auto`:`none`}" data-${r}role="dropdownlist">${Object.keys(s||{}).map(e=>`<option value="${e}">${s[e]}</option>`)}</select>`+(u?`<select title="${i.value}" data-${r}bind="value:filters[0].value" data-${r}text-field="text" ${f?`data-size="large"`:``} data-${r}adaptive-mode="${f?`auto`:`none`}" data-${r}value-field="value" data-${r}source='${n.stringify(u).replace(/\'/g,`&#39;`)}' data-${r}role="dropdownlist" data-${r}option-label="${i.selectValue}" data-${r}value-primitive="true"></select>`:`<input title="${i.value}" data-${r}bind="value:filters[0].value" ${f?`data-size="large"`:``} class="k-input-inner" type="text" data-${r}adaptive-mode="${f?`auto`:`none`}" ${l?`data-${r}role="${l}"`:``} />`)+(o?T({ns:r,messages:i,componentType:d,isAdaptive:f})+`<select title="${i.additionalOperator}" ${f?`data-size="large"`:``} data-${r}bind="value: filters[1].operator" data-${r}adaptive-mode="${f?`auto`:`none`}" data-${r}role="dropdownlist">${Object.keys(s||{}).map(e=>`<option value="${e}">${a(s[e])}</option>`)}</select>`+(u?`<select title="${i.additionalValue}" data-${r}bind="value:filters[1].value" ${f?`data-size="large"`:``} data-${r}text-field="text" data-${r}adaptive-mode="${f?`auto`:`none`}" data-${r}value-field="value" data-${r}source='${n.stringify(u).replace(/\'/g,`&#39;`)}' data-${r}role="dropdownlist" data-${r}option-label="${i.selectValue}" data-${r}value-primitive="true"></select>`:`<input title="${i.additionalValue}" data-${r}bind="value: filters[1].value" ${f?`data-size="large"`:``} class="k-input-inner" type="text" data-${r}adaptive-mode="${f?`auto`:`none`}" ${l?`data-${r}role="${l}"`:``}/>`):``)+`${f?``:x({messages:i})}</div>`,D=({field:e,title:t,format:r,ns:i,messages:s,extra:c,operators:l,filterMenuGuid:u,type:d,role:f,inputType:p,values:m})=>`<div data-${i}role="view" class="k-grid-filter-menu"><div data-${i}role="header" class="k-appbar k-appbar-primary">`+n.html.renderButton(`<button class="k-header-cancel" title="${s.cancel}" aria-label="${s.cancel}"></button>`,{icon:`chevron-left`,fillMode:`flat`})+`<span class="k-spacer"></span><span>${a(s.filter)} ${a(s.into)} ${a(t)}</span><span class="k-spacer"></span>`+n.html.renderButton(`<button class="k-header-done" title="${s.done}" aria-label="${s.done}"></button>`,{icon:`check`,fillMode:`flat`})+`</div><form title="${s.title}" class="k-filter-menu"><ul class="k-reset"><li><span class="k-list-title k-filter-help-text">${a(s.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">${s.operator}</span><span class="k-listgroup-form-field-wrapper"><select id="operator_${u}" title="${s.operator}" class="k-filter-operator" data-${i}bind="value: filters[0].operator" autocomplete="${o}" >${Object.keys(l||{}).map(e=>`<option value="${e}">${a(l[e])}</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">${s.value}</span><span class="k-listgroup-form-field-wrapper">`+(m?`<select id="value_${u}" title="${s.value}" data-${i}bind="value:filters[0].value" autocomplete="${o}" ><option value="">${s.selectValue}</option>${Object.keys(m||{}).map(e=>`<option value="${m[e].value}">${a(m[e].text)}</option>`)}</select>`:`<input id="value_${u}" title="${s.value}" data-${i}bind="value:filters[0].value" class="k-value-input" type="${p}" autocomplete="${o}" />`)+`</span></label></li></ul>`+(c?`<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">${s.and}</span><span class="k-listgroup-form-field-wrapper"><input id="and_${u}" title="${s.and}" type="radio" name="logic"data-${i}bind="checked: logic" value="and" autocomplete="${o}" /></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">${s.or}</span><span class="k-listgroup-form-field-wrapper"><input id="or_${u}" title="${s.or}" type="radio" name="logic" data-${i}bind="checked: logic" value="or" autocomplete="${o}" /></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">${s.additionalOperator}</span><span class="k-listgroup-form-field-wrapper"><select id="additionalOperator_${u}" title="${s.additionalOperator}" class="k-filter-operator" data-${i}bind="value: filters[1].operator" autocomplete="${o}" >${Object.keys(l||{}).map(e=>`<option value="${e}">${l[e]}</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">${s.additionalValue}</span><span class="k-listgroup-form-field-wrapper">`+(m?`<select id="additionalValue_${u}" title="${s.additionalValue}" data-${i}bind="value:filters[1].value" autocomplete="${o}" ><option value="">${s.selectValue}</option>${Object.keys(m||{}).map(e=>`<option value="${m[e].value}">${a(m[e].text)}</option>`)}</select>`:`<input id="additionalValue_${u}" title="${s.additionalValue}" data-${i}bind="value:filters[1].value" class="k-value-input" type="${p}" autocomplete="${o}" />`)+`</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="${s.clear}" aria-label="${s.clear}">${a(s.clear)}</span></li></ul></li></ul></form></div>`,O=({field:e,title:t,format:r,ns:i,messages:s,extra:c,operators:l,filterMenuGuid:u,type:d,role:f,inputType:p,values:m})=>`<div data-${i}role="view" class="k-grid-filter-menu"><div data-${i}role="header" class="k-appbar k-appbar-primary">`+n.html.renderButton(`<button class="k-header-cancel" title="${s.cancel}" aria-label="${s.cancel}"></button>`,{icon:`chevron-left`,fillMode:`flat`})+`<span class="k-spacer"></span><span>${a(s.filter)} ${a(s.into)} ${a(t)}</span><span class="k-spacer"></span>`+n.html.renderButton(`<button class="k-header-done" title="${s.done}" aria-label="${s.done}"></button>`,{icon:`check`,fillMode:`flat`})+`</div><form title="${s.title}" class="k-filter-menu"><ul class="k-reset"><li><span class="k-list-title k-filter-help-text">${a(s.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">${a(s.isTrue)}</span><span class="k-listgroup-form-field-wrapper"></span><input id="true_${u}" title="${s.isTrue}" type="radio" data-${i}bind="checked: filters[0].value" value="true" name="filters[0].value" autocomplete="${o}" /></span></label></li><li class="k-item k-listgroup-item"><label class="k-listgroup-form-row k-label"><span for="false_${u}" class="k-listgroup-form-field-label k-item-title">${a(s.isFalse)}</span><span class="k-listgroup-form-field-wrapper"><input id="false_${u}" title="${s.isFalse}" type="radio" data-${i}bind="checked: filters[0].value" value="false" name="filters[0].value" autocomplete="${o}" /></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="${s.clear}" aria-label="${s.clear}">${a(s.clear)}</span></li></ul></li></ul></form></div>`;function k(t,n){t.filters&&=e.grep(t.filters,function(e){return k(e,n),e.filters?e.filters.length:e.field!=n})}function A(e){var t,n,r,i,a,o;if(e&&e.length)for(o=[],t=0,n=e.length;t<n;t++)r=e[t],a=r.text===``?r.text:r.text||r.value||r,i=r.value==null?r.text||r:r.value,o[t]={text:a,value:i};return o}function j(t,n){return e.grep(t,function(t){return t.filters?(t.filters=e.grep(t.filters,function(e){return e.field!=n}),t.filters.length):t.field!=n})}var M=b.extend({init:function(t,r){var i=this,a=`string`,o,s,c,l;for(s in r||={},r.componentType=r.componentType||`classic`,b.fn.init.call(i,t,r),o=i.operators=r.operators||{},t=i.element,r=i.options,i.dataSource=R.create(r.dataSource),i.field=r.field||t.attr(n.attr(`field`)),l=e(t.closest(m)),l.length?i.appendTo=l.find(r.appendTo):i.appendTo=e(r.appendTo),i.link=i._createLink()||e(),i.model=i.dataSource.reader.model,i._bindMediaQueries(),i._parse=function(e){return e==null?e:e+``},i.model&&i.model.fields&&(c=i.model.fields[i.field],c&&(a=c.type||`string`,c.parse&&(i._parse=c.parse.bind(c)))),r.values&&(a=`enums`),i.type=a,o=o[a]||r.operators[a],o)break;i._defaultFilter=function(e){let t={field:i.field,operator:s||`eq`,value:``};if(!i.form)return t;let r=i.form.find(`.k-filter-menu-container`),a=r.children().find(`input[${n.attr(`bind`)}]`);a.length||(a=r.children(`input`));let o=a.first(),c=a.last();if(o.is(c)&&e)return t;let l=e?c:o,u=n.widgetInstance(l);return u?!i.dataSource.filter()&&u.value()?{field:i.field,operator:s||`eq`,value:e?``:i._initialFirstInputValue}:{field:i.field,operator:s||`eq`,value:u.value()}:t},i._refreshHandler=i.refresh.bind(i),i.dataSource.bind(f,i._refreshHandler),r.appendToElement?i._init():i.refresh()},_init:function(){var t=this,r=t.options.ui,i=y(r),a=n.attr(`role`),o;t.pane=t.options.pane,t.pane&&(t._isMobile=!0),i||(o=r||_[t.type]),t._isMobile?t._createMobileForm(o):t._createForm(o),t.form.on(`submit`+p,t._submit.bind(t)).on(`reset`+p,t._reset.bind(t)),i?t.form.find(`.k-input-inner`).removeClass(`k-input-inner`).each(function(){r(e(this)),t._storeInitialValues()}):(t.form.find(`.k-input-inner[`+a+`]`).removeClass(`k-input-inner`),t.form.find(`.k-input-inner:not([data-role]):not(.k-numerictextbox>.k-input-inner)`).wrap(`<span class='k-textbox k-input${t._showAdaptiveView?` k-input-lg`:``}'></span>`)),t.refresh(),t.trigger(l,{field:t.field,container:t.form}),t.options.cycleForm&&n.cycleForm(t.form)},_adaptiveView:function(){let e=this;e.popup&&=(e.popup.close(),e.popup.wrapper&&e.popup.wrapper.remove(),e.popup.destroy(),null)},_createForm:function(t){var r=this,i=r.options,o=r.operators||{},l=r.type;let u=r._showAdaptiveView;o=o[l]||i.operators[l],r.form=e(`<form title="`+a(r.options.messages.title)+`" class="k-filter-menu"/>`).html(n.template(r._getTemplate())({field:r.field,format:i.format,ns:n.ns,messages:i.messages,extra:i.extra,operators:o,type:l,role:t,values:A(i.values),componentType:r.options.componentType,isAdaptive:u})),i.appendToElement?(r.element.append(r.form),r.popup=r.element.closest(`.k-column-menu.k-popup`).data(s)):u?(r.popup=e(`<div></div>`).append(r.form).appendTo(`body`)[c]({anchor:r.link,copyAnchorStyles:!1,open:r._open.bind(r),activate:r._activate.bind(r),adaptive:!0,closeButton:!0,title:i.adaptiveTitle||`Filter by `+r.field,subtitle:i.adaptiveSubtitle,actionButtons:[{text:`Clear`,icon:`filter-clear`},{text:`Filter`,icon:`filter`,themeColor:`primary`}],close:function(){r.options.closeCallback&&r.options.closeCallback(r.element)}}).data(c),r.popup.fullscreen(r.smallMQL.mediaQueryList.matches)):r.popup=r.form[s]({anchor:r.link,copyAnchorStyles:!1,open:r._open.bind(r),activate:r._activate.bind(r),close:function(){r.options.closeCallback&&r.options.closeCallback(r.element)}}).data(s),r.form.on(`keydown`+p,r._keydown.bind(r))},_getTemplate:function(){var e=this,t=y(e.options.ui);return e.type===`boolean`?t?w:e.options.componentType===`modern`?C:S:E},_createMobileForm:function(t){var r=this,i=r.options,a=r.operators||{},o=n.guid(),s=r.type;a=a[s]||i.operators[s],r.form=e(`<div />`).html(n.template(s===`boolean`?O:D)({field:r.field,title:i.title||r.field,format:i.format,ns:n.ns,messages:i.messages,extra:i.extra,operators:a,filterMenuGuid:o,type:s,role:t,inputType:v[s],values:A(i.values)})),r.view=r.pane.append(r.form.html()),r.form=r.view.element.find(`form`),r.view.element.on(`click`,`.k-header-done`,function(e){r.form.submit(),e.preventDefault()}).on(`click`,`.k-header-cancel`,function(e){r._closeForm(),e.preventDefault()}).on(`click`,`.k-clear`,function(e){r._mobileClear(),e.preventDefault()}),r.view.bind(`showStart`,function(){r.refresh()}),r.view.bind(`transitionEnd`,function(e){e.type===`show`&&r.trigger(u,{field:r.field,container:r.form})})},_createLink:function(){var e=this,t=e.element,r=e.appendTo.length?t.find(e.appendTo):t,i=e.options,a=n.format(i.messages.buttonTitle,e.options.title||e.field),o;if(!i.appendToElement)return o=t.addClass(`k-filterable`).find(`.k-grid-filter-menu`),o[0]||(o=r.append(`<a class="k-grid-filter-menu k-grid-header-menu" href="#" aria-hidden="true" title="`+a+`" >`+n.ui.icon(`filter`)+`</a>`).find(`.k-grid-filter-menu`)),o.attr(`tabindex`,-1).on(`click`+p,e._click.bind(e)),o},_bindMediaQueries:function(){let e=this;e.options.adaptiveMode===`auto`?(e.largeMQL=n.mediaQuery(`large`),e.mediumMQL=n.mediaQuery(`medium`),e.smallMQL=n.mediaQuery(`small`),e.smallMQL.onEnter(()=>{e._showAdaptiveView=!0,e.popup&&e.popup.visible()&&e.popup.fullscreen?e.popup.fullscreen(!0):e._adaptiveView()}),e.mediumMQL.onEnter(()=>{e._showAdaptiveView=!0,e.popup&&e.popup.visible()&&e.popup.fullscreen?e.popup.fullscreen(!1):e._adaptiveView()}),e.largeMQL.onEnter(()=>{e._showAdaptiveView=!1,e._adaptiveView()})):(e.smallMQL&&e.smallMQL.destroy(),e.mediumMQL&&e.mediumMQL.destroy(),e.largeMQL&&e.largeMQL.destroy(),e._showAdaptiveView=!1)},refresh:function(){var e=this,t=e.dataSource.filter()||{filters:[],logic:`and`},r=[e._defaultFilter()],i=e._defaultFilter().operator;(e.options.extra||i!==`isnull`&&i!==`isnullorempty`&&i!==`isnotnullorempty`&&i!==`isnotnull`&&i!==`isempty`&&i!==`isnotempty`)&&r.push(e._defaultFilter(!0)),e.filterModel=n.observable({logic:`and`,filters:r}),e.form&&(n.bind(e.form.children().first(),e.filterModel),e.options.componentType===`modern`&&e.options.extra&&e.type!==`boolean`&&!e._isMobile&&(e.filterModel.bind(`change`,function(){var t=n.attr(`role`),r=e.form.find(`[`+t+`='buttongroup']`).data(`kendoButtonGroup`),i=this.logic===`and`?0:1;r.select(r.element.children().eq(i))}),e.filterModel.set(`onLogicChange`,e._logicChangeHandler))),e._bind(t)?e.link.addClass(`k-active`):e.link.removeClass(`k-active`)},_storeInitialValues:function(){var e=this;if(!e._initialSetup){let t=e.form.children().first().find(`input[${n.attr(`bind`)}]`).first();e._initialFirstInputValue=n.widgetInstance(t)?.value(),e._initialSetup=!0}},_logicChangeHandler:function(e){var t=n.attr(`value`),r=e.sender.current().attr(t);this.set(`logic`,r)},destroy:function(){var e=this;b.fn.destroy.call(e),e.form&&=(n.unbind(e.form),n.destroy(e.form),e.form.off(p),e.popup&&=(e.popup.destroy(),null),null),e.view&&=(e.view.purge(),null),e.link.off(p),e._refreshHandler&&(e.dataSource.unbind(f,e._refreshHandler),e.dataSource=null),e.element=e.link=e._refreshHandler=e.filterModel=null},_bind:function(e){var t=this,n=e.filters,r,i,a=!1,o=0,s=t.filterModel,c,l;for(r=0,i=n.length;r<i;r++)l=n[r],l.field==t.field?(s.set(`logic`,e.logic),c=s.filters[o],c||=(s.filters.push({field:t.field}),s.filters[o]),c.set(`value`,t._parse(l.value)),c.set(`operator`,l.operator),o++,a=!0):l.filters&&(a||=t._bind(l));return a},_stripFilters:function(t){return e.grep(t,function(e){return e.value!==``&&e.value!=null||e.operator===`isnull`||e.operator===`isnotnull`||e.operator===`isempty`||e.operator===`isnotempty`||e.operator==`isnullorempty`||e.operator==`isnotnullorempty`})},_merge:function(e){var t=this,n=e.logic||`and`,r=this._stripFilters(e.filters),i,a=t.dataSource.filter()||{filters:[],logic:`and`},o,s;for(k(a,t.field),o=0,s=r.length;o<s;o++)i=r[o],i.value=t._parse(i.value);return r.length&&(a.filters.length?(e.filters=r,a.logic!==`and`&&(a.filters=[{logic:a.logic,filters:a.filters}],a.logic=`and`),r.length>1?a.filters.push(e):a.filters.push(r[0])):(a.filters=r,a.logic=n)),a},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(t){var n=this;t=t||e.extend(!0,{},{filters:[]},n.dataSource.filter())||{filters:[]},!this.trigger(`change`,{filter:null,field:n.field})&&n._removeFilter(t)},_mobileClear:function(){var t=this,n=t.view.element;if(t.type===`boolean`){var r=n.find(`[type='radio']:checked`),i=r.val();r.val(``),r.trigger(`change`),r.val(i),r.prop(`checked`,!1)}else if(n.find(`select`).each(function(t,n){var r=e(n);r.val(r.find(`option`).first().val()),r.trigger(`change`)}),(t.type===`string`||t.type===`date`||t.type===`number`)&&n.find(`.k-value-input`).each(function(t,n){var r=e(n);r.val(``),r.trigger(`change`)}),t.options.extra){var a=n.find(`[name=logic]`).first();a.prop(`checked`,!0),a.trigger(`change`)}},_removeFilter:function(t){var n=this;t.filters=e.grep(t.filters,function(e){return e.filters?(e.filters=j(e.filters,n.field),e.filters.length):e.field!=n.field}),t.filters.length||(t=null),n.dataSource.filter(t)},_submit:function(t){t.preventDefault(),t.stopPropagation();var n=this.filterModel.toJSON(),r=e.grep(n.filters,function(e){return e.value!==``&&e.value!==null});if(this._checkForNullOrEmptyFilter(n)||r&&r.length)this.filter(n);else{var i=this.dataSource.filter();i&&(i.filters.push(n),n=i),this.clear(n)}this._closeForm()},_checkForNullOrEmptyFilter:function(e){if(!e||!e.filters||!e.filters.length)return!1;var t=!1,n=!1,r;return e.filters[0]&&(r=e.filters[0].operator,t=r==`isnull`||r==`isnotnull`||r==`isnotempty`||r==`isempty`||r==`isnullorempty`||r==`isnotnullorempty`),e.filters[1]&&(r=e.filters[1].operator,n=r==`isnull`||r==`isnotnull`||r==`isnotempty`||r==`isempty`||r==`isnullorempty`||r==`isnotnullorempty`),!this.options.extra&&t||this.options.extra&&(t||n)},_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&&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(s),t&&t.close()})},_activate:function(){let t=this;t.form.find(`:kendoFocusable`).first().trigger(`focus`),t.popup&&t.popup.wrapper.find(`[ref-actionsheet-action-button]`).bind(`click`,function(n){e(n.currentTarget).hasClass(`k-button-primary`)?t.form.trigger(`submit`):t.form.trigger(`reset`)}),t.trigger(u,{field:t.field,container:t.form})},_keydown:function(t){var r=e(t.target),i;if(t.keyCode==n.keys.ESC){if(i=n.widgetInstance(r.find(`select`)),r.hasClass(`k-picker`)&&i&&i.popup.visible()){t.stopPropagation();return}r.closest(`.k-popup`).getKendoPopup().close()}},events:[l,`change`,u],options:{name:`FilterMenu`,extra:!0,appendToElement:!1,adaptiveMode:`none`,adaptiveTitle:null,adaptiveSubtitle:null,type:`string`,operators:{string:{eq:h,neq:g,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:h,neq:g,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:h,neq:g,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:h,neq:g,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,appendTo:null}}),N=`.kendoFilterMultiCheck`;function P(t,n){t.filters&&=e.grep(t.filters,function(e){return P(e,n),e.filters?e.filters.length:e.field==n&&e.operator==`eq`})}function F(n){return n.logic==`and`&&n.filters.length>1?[]:n.filters?e.map(n.filters,function(e){return F(e)}):n.value===t?[]:[n.value]}function I(e,r){for(var i=n.getter(r,!0),a=[],o=0,s={};o<e.length;){var c=e[o++],l=i(c);l!==t&&!s.hasOwnProperty(l)&&(a.push(c),s[l]=!0)}return a}function L(e,t){return function(n){return I(e(n),t)}}var R=n.data.DataSource,z=({field:e,title:t,ns:r,messages:i,search:s,checkAll:c})=>`<div data-${r}role="view" class="k-grid-filter-menu"><div data-${r}role="header" class="k-appbar k-appbar-primary">`+n.html.renderButton(`<button class="k-header-cancel" title="${i.cancel}" aria-label="${i.cancel}"></button>`,{icon:`chevron-left`,fillMode:`flat`})+`<span class="k-spacer"></span><span>${a(i.filter)} ${a(i.into)} ${a(t)}</span><span class="k-spacer"></span>`+n.html.renderButton(`<button class="k-header-done" title="${i.done}" aria-label="${i.done}"></button>`,{icon:`check`,fillMode:`flat`})+`</div><div class="k-stretched-view k-content"><form class="k-filter-menu">`+(s?`<div class="k-list-filter"><span class="k-searchbox k-input"><span class="k-input-icon k-icon k-svg-icon k-svg-i-search">`+n.ui.icon(`search`)+`</span><input class="k-input-inner" placeholder="${i.search}" title="${i.search}" autocomplete="${o}" /></span></div>`:``)+`<div class="k-filter-tools">`+(i.selectedItemsFormat?`<div class="k-filter-selected-items"></div>`:``)+`<span class="k-spacer"></span><span ${c?``:`${n.attr(`style-visibility`)}="hidden"`} class="k-label k-select-all" title="${i.checkAll}" aria-label="${i.checkAll}">${i.checkAll}</span><span class="k-label k-clear-all" title="${i.clearAll}" aria-label="${i.clearAll}">${i.clearAll}</span></div><ul class="k-multicheck-wrap k-listgroup k-listgroup-flush"></ul></form></div></div>`,B=b.extend({init:function(t,r){b.fn.init.call(this,t,r),r=this.options,this.element=e(t);var i,a=this.field=this.options.field||this.element.attr(n.attr(`field`)),o=r.checkSource;this._foreignKeyValues()?(this.checkSource=R.create(r.values),this.checkSource.fetch()):r.forceUnique?(o=e.extend(!0,{},r.dataSource.options),delete o.pageSize,this.checkSource=R.create(o),this.checkSource.reader.data=L(this.checkSource.reader.data,this.field)):this.checkSource=R.create(o),this.dataSource=r.dataSource,this.model=this.dataSource.reader.model,this._bindMediaQueries(),this._parse=function(e){return e+``},this.model&&this.model.fields&&(a=this.model.fields[this.field],a&&(a.type==`number`?this._parse=function(e){return typeof e==`string`&&(e.toLowerCase()===`null`||this._foreignKeyValues()&&e===``)?null:parseFloat(e)}:a.parse&&(this._parse=a.parse.bind(a)),this.type=a.type||`string`)),i=e(t.closest(m)),i.length?this.appendTo=i.find(r.appendTo):this.appendTo=e(r.appendTo),r.appendToElement?this._init():this._createLink(),this._refreshHandler=this.refresh.bind(this),this.dataSource.bind(f,this._refreshHandler)},_bindMediaQueries:function(){let e=this;e.options.adaptiveMode===`auto`?(e.largeMQL=n.mediaQuery(`large`),e.mediumMQL=n.mediaQuery(`medium`),e.smallMQL=n.mediaQuery(`small`),e.smallMQL.onEnter(()=>{e._showAdaptiveView=!0,e.popup&&e.popup.visible()&&e.popup.fullscreen?e.popup.fullscreen(!0):e._adaptiveView()}),e.mediumMQL.onEnter(()=>{e._showAdaptiveView=!0,e.popup&&e.popup.visible()&&e.popup.fullscreen?e.popup.fullscreen(!1):e._adaptiveView()}),e.largeMQL.onEnter(()=>{e._showAdaptiveView=!1,e._adaptiveView()})):(e.smallMQL&&e.smallMQL.destroy(),e.mediumMQL&&e.mediumMQL.destroy(),e.largeMQL&&e.largeMQL.destroy(),e._showAdaptiveView=!1)},_adaptiveView:function(){let e=this;e.popup&&=(e.popup.close(),e.popup.wrapper&&e.popup.wrapper.remove(),e.popup.destroy(),null)},_createLink:function(){var e=this.element,t=this.appendTo.length?e.find(this.appendTo):e,r=e.addClass(`k-filterable`).find(`.k-grid-filter-menu`),i=a(n.format(this.options.messages.buttonTitle,this.options.title||this.field));r[0]||(r=t.append(`<a class="k-grid-filter-menu k-grid-header-menu" href="#" title="`+i+`" aria-hidden="true"">`+n.ui.icon(`filter`)+`</a>`).find(`.k-grid-filter-menu`)),this._link=r.attr(`tabindex`,-1).on(`click`+p,this._click.bind(this))},_init:function(){var e=this,t=this.options.forceUnique;this.pane=this.options.pane,this.pane&&(this._isMobile=!0),this._createForm(),this._foreignKeyValues()?this.refresh():t&&!this.checkSource.options.serverPaging&&this.dataSource.data().length?(this.checkSource.data(I(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(f,this.checkChangeHandler)),this.form.on(`keydown`+N,this._keydown.bind(this)).on(`submit`+N,this._filter.bind(this)).on(`reset`+N,this._reset.bind(this)),this.trigger(l,{field:this.field,container:this.form})},_attachProgress:function(){var e=this;this._progressHandler=function(){r.progress(e.container,!0)},this._progressHideHandler=function(){r.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),null)},search:function(){var e=this.options.ignoreCase,t=this.searchTextBox[0].value,n=this.container.find(`label`);e&&(t=t.toLowerCase());var r=0;for(this.options.checkAll&&n.length&&(this._isMobile?this.view.element.find(`.k-select-all`)[0].style.visibility=t?`hidden`:``:(n[0].parentNode.style.display=t?`none`:``,r++));r<n.length;){var i=n[r],a=i.textContent||i.innerText;e&&(a=a.toLowerCase()),i.parentNode.style.display=a.indexOf(t)>=0?``:`none`,r++}},_activate:function(){let t=this;t.form.find(`:kendoFocusable`).first().trigger(`focus`),t.popup?.position(),t.popup&&t.popup.wrapper.find(`[ref-actionsheet-action-button]`).bind(`click`,function(n){e(n.currentTarget).hasClass(`k-button-primary`)?t.form.trigger(`submit`):t.form.trigger(`reset`)}),t.trigger(u,{field:t.field,container:t.form})},_createForm:function(){var t=this.options,r=``,i=this;let o=i._showAdaptiveView;if(this._isMobile||(r+=`<div class='k-filter-menu-container'>`,t.search&&(r+=`<span class='k-searchbox k-textbox k-input${o?` k-input-lg`:``}'>`+n.ui.icon(e(`<span class="k-input-icon"></span>`),`search`)+`<input class='k-input-inner' type='text' placeholder='`+a(t.messages.search)+`' /><span class='k-input-suffix'><span class='k-clear-value'>`+n.ui.icon(`x`)+`</span></span></span>`),r+=`<ul class='k-reset k-multicheck-wrap'></ul>`,t.messages.selectedItemsFormat&&(r+=`<div class='k-filter-selected-items'>`+n.format(t.messages.selectedItemsFormat,0)+`</div>`),o||(r+=`<div class='k-actions'>`,r+=`<button type='submit' class='k-button'><span class='k-button-text'>`+a(t.messages.filter)+`</span></button>`,r+=`<button type='reset' class='k-button'><span class='k-button-text'>`+a(t.messages.clear)+`</span></button>`,r+=`</div>`),r+=`</div>`,this.form=e(`<form class="k-filter-menu"/>`).html(r),this.container=this.form.find(`.k-multicheck-wrap`)),this._isMobile){let r=e(n.template(z)({field:i.field,title:t.title||i.field,ns:n.ns,messages:t.messages,search:t.search,checkAll:t.checkAll}));n.applyStylesFromKendoAttributes(r,[`visibility`]),i.form=e(`<div />`).append(r),i.view=i.pane.append(i.form.html()),i.form=i.view.element.find(`form`);var l=this.view.element;this.container=l.find(`.k-multicheck-wrap`),l.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()}),i.view.bind(`transitionEnd`,function(e){e.type===`show`&&i.trigger(u,{field:i.field,container:i.form})})}else t.appendToElement?(this.popup=this.element.closest(`.k-column-menu.k-popup`).data(s),this.element.append(this.form)):o?(i.popup=e(`<div></div>`).append(i.form).appendTo(`body`)[c]({anchor:i._link,copyAnchorStyles:!1,open:i._open.bind(i),activate:i._activate.bind(i),adaptive:!0,closeButton:!0,title:t.adaptiveTitle||`Filter by `+i.field,subtitle:t.adaptiveSubtitle,actionButtons:[{text:`Clear`,icon:`filter-clear`},{text:`Filter`,icon:`filter`,themeColor:`primary`}],close:function(){i.options.closeCallback&&i.options.closeCallback(i.element)}}).data(c),i.popup.fullscreen(i.smallMQL.mediaQueryList.matches)):i.popup=i.form.kendoPopup({anchor:i._link,copyAnchorStyles:!1,open:i._open.bind(i),activate:i._activate.bind(i),close:function(){i.options.closeCallback&&i.options.closeCallback(i.element)}}).data(s);t.search&&(this.searchTextBox=this.form.find(`.k-searchbox input`),this.searchTextBox.on(`input`+N,this._input.bind(this)),this.clearSearchButton=this.form.find(`.k-searchbox .k-clear-value`),this.clearSearchButton.on(`click`+N,this._clearSearch.bind(this)))},_open:function(){var t;e(`.k-filter-menu`).not(this.form).each(function(){t=e(this).data(s),t&&t.close()})},createCheckAllItem:function(){let t=this;var r=this.options,i=e(n.template(r.itemTemplate({field:`all`,mobile:this._isMobile,isAdaptive:t._showAdaptiveView}))({all:r.messages.checkAll}));this.container.prepend(i),i.addClass(`k-check-all-wrap`),this.checkBoxAll=i.find(`:checkbox`).eq(0).addClass(`k-check-all`),this.checkAllHandler=this.checkAll.bind(this),this.checkBoxAll.on(f+N,this.checkAllHandler)},updateCheckAllState:function(){if(this.options.messages.selectedItemsFormat&&this.form.find(`.k-filter-selected-items`).text(n.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(){let t=this;var r=this.options,i=e(n.template(r.itemTemplate({field:`isNull`,mobile:this._isMobile,valueField:`value`,isAdaptive:t._showAdaptiveView}))({isNull:r.messages.isNull,value:null}));this.container.append(i)},refresh:function(e){var t=this.options.forceUnique,n=this.dataSource,r=this.getFilterArray();this._link&&this._link.toggleClass(`k-active`,r.length!==0),this.form&&(e&&t&&e.sender===n&&!n.options.serverPaging&&(e.action==`itemchange`||e.action==`add`||e.action==`remove`||n.options.autoSync&&e.action===`sync`)&&!this._foreignKeyValues()&&(this.checkSource.data(I(this.dataSource.data(),this.field)),this.container.empty()),this.container.is(`:empty`)&&this.createCheckBoxes(),this.checkValues(r),this.trigger(d))},getFilterArray:function(){var t=e.extend(!0,{},{filters:[],logic:`and`},this.dataSource.filter());return P(t,this.field),F(t)},createCheckBoxes:function(){let e=this;var t=this.options,r,i={field:this.field,format:t.format,mobile:this._isMobile,type:this.type,isAdaptive:e._showAdaptiveView},a=V.bind(this);this.options.forceUnique?this._foreignKeyValues()?(r=this.checkSource.data(),i.valueField=`value`,i.field=`text`):r=this.checkSource._isServerGrouped()?I(this.checkSource._flatData(this.checkSource.data()),this.field):this.checkSource.data():r=this.checkSource.view(),this.type===`boolean`&&(this.createIsNullItem(),r=r.filter(a));var o=n.template(t.itemTemplate(i)),s=n.render(o,r);this.container.on(f+N,`:checkbox`,this.updateCheckAllState.bind(this)),this.container.prepend(s),t.checkAll&&!this._isMobile&&this.createCheckAllItem()},checkAll:function(){var e=this.checkBoxAll.is(`:checked`);this.container.find(`:checkbox`).prop(`checked`,e)},checkValues:function(t){var n=this;e(e.grep(this.container.find(`:checkbox`).prop(`checked`,!1),function(r){var i=!1;if(!e(r).is(`.k-check-all`)){for(var a=n._parse(e(r).val()),o=0;o<t.length;o++)if(i=n.type==`date`?t[o]&&a?t[o].getTime()==a.getTime():t[o]===null&&a===null:t[o]==a,i)return i}})).prop(`checked`,!0),this.updateCheckAllState()},_mobileCheckAll:function(t){this.container.find(`:checkbox`).each(function(n,r){var i=e(r);i.prop(`checked`,t),i.trigger(`change`)})},_filter:function(t){t.preventDefault(),t.stopPropagation();var n={logic:`or`},r=this;n.filters=e.map(this.form.find(`:checkbox:checked:not(.k-check-all)`),function(t){return{value:e(t).val(),operator:`eq`,field:r.field}}),!this.trigger(`change`,{filter:n,field:r.field})&&(n=this._merge(n),n.filters.length?this.dataSource.filter(n):r._removeFilter(r.dataSource.filter()||{filters:[]}),this._closeForm())},_stripFilters:function(t){return e.grep(t,function(e){return e.value!=null})},_foreignKeyValues:function(){var e=this.options;return e.values&&!e.checkSource},destroy:function(){var e=this;b.fn.destroy.call(e),e.form&&(n.unbind(e.form),n.destroy(e.form),e.form.off(N),e.popup&&=(e.popup.destroy(),null),e.form=null,e.container&&=(e.container.off(N),null),e.checkBoxAll&&e.checkBoxAll.off(N)),e.view&&=(e.view.purge(),null),e._link&&e._link.off(p),e._refreshHandler&&(e.dataSource.unbind(f,e._refreshHandler),e.dataSource=null),e.checkChangeHandler&&e.checkSource.unbind(f,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(N),null),this.clearSearchButton&&=(this.clearSearchButton.off(N),null),e.element=e.checkSource=e.container=e.checkBoxAll=e._link=e._refreshHandler=e.checkAllHandler=null},options:{name:`FilterMultiCheck`,itemTemplate:({field:e,mobile:r,valueField:i,format:o,type:s,isAdaptive:c})=>{var l=``;return i===t&&(i=e),s==`date`&&(l=`:yyyy-MM-ddTHH:mm:sszzz`),r?t=>`<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 '>${a(n.format(o||`{0}`,n.getter(e)(t)))}</span><span class="k-listgroup-form-field-wrapper"><input type='checkbox' class='k-checkbox' value='${a(n.format(`{0${l}}`,n.getter(i)(t)))}'/></span></label></li>`:t=>`<li class='k-item'><label class='k-label k-checkbox-label'><span class="k-checkbox-wrap"><input type='checkbox' class='k-checkbox${c?` k-checkbox-lg`:``}' value='${a(n.format(`{0${l}}`,n.getter(i)(t)))}'/></span><span>${a(n.format(o||`{0}`,n.getter(e)(t)))}</span></label></li>`},checkAll:!0,search:!1,adaptiveMode:`none`,adaptiveTitle:null,adaptiveSubtitle:null,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`},appendTo:null},events:[l,d,`change`,u]});function V(e){return e[this.field]!==null}e.extend(B.fn,{_click:M.fn._click,_keydown:M.fn._keydown,_reset:M.fn._reset,_closeForm:M.fn._closeForm,_removeFilter:M.fn._removeFilter,clear:M.fn.clear,_merge:M.fn._merge}),r.plugin(M),r.plugin(B)})(window.kendo.jQuery);var d=kendo;e.__meta__=u,e.default=d}); //# sourceMappingURL=kendo.filtermenu.min.js.map