@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 19.3 kB
JavaScript
module.exports=function(e){function n(s){if(t[s])return t[s].exports;var i=t[s]={exports:{},id:s,loaded:!1};return e[s].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var t={};return n.m=e,n.c=t,n.p="",n(0)}({0:function(e,n,t){e.exports=t(1058)},3:function(e,n){e.exports=function(){throw Error("define cannot be used indirect")}},1054:function(e,n){e.exports=require("./kendo.popup")},1058:function(e,n,t){var s,i,l;!function(a,define){i=[t(1054),t(1059),t(1060)],s=a,l="function"==typeof s?s.apply(n,i):s,!(void 0!==l&&(e.exports=l))}(function(){return function(e,n){function t(e){return c.trim(e).replace(/ /gi,"")}function s(e,n){var t,s,i,l={};for(t=0,s=e.length;t<s;t++)i=e[t],l[i[n]]=i;return l}function i(e){var n,t=[];for(n=0;n<e.length;n++)e[n].columns?t=t.concat(i(e[n].columns)):t.push(e[n]);return t}function l(e,n){return"["+c.attr(e)+"='"+(n||"").replace(/'/g,'"')+"']"}function a(e,n,t){e>0?n.insertAfter(t.children().eq(e-1)):t.prepend(n)}function o(e){var n,t,s={};for(t=0;t<e.length;t++)n=JSON.stringify(e[t]),s[n]?s[n].push(t):s[n]=[t];return s}function r(e,n){var t,s,i,l,a,o,r=c.attr("index"),u=c.attr("field"),d={};for(o=0;o<e.length;o++)s=n.eq(o),i=parseInt(s.attr(r),10),l=s.attr(u),a=s.attr("title"),t=l?l:a,d[t]?d[t].push(i):d[t]=[i];return d}var c=window.kendo,u=c.ui,d=e.proxy,p=e.extend,m=e.grep,k=e.map,f=e.inArray,h="k-state-selected",g="asc",v="desc",C="change",w="init",_="open",b="select",x="kendoPopup",M="kendoFilterMenu",S="kendoMenu",y=".kendoColumnMenu",I=u.Widget,H=I.extend({init:function(n,t){var s,i=this;I.fn.init.call(i,n,t),n=i.element,t=i.options,i.owner=t.owner,i.dataSource=t.dataSource,i.field=n.attr(c.attr("field")),i.title=n.attr(c.attr("title")),s=n.find(".k-header-column-menu"),s[0]||(s=n.addClass("k-with-icon").prepend('<a class="k-header-column-menu" href="#" title="'+t.messages.settings+'" aria-label="'+t.messages.settings+'"><span class="k-icon k-i-more-vertical"></span></a>').find(".k-header-column-menu")),i.link=s.attr("tabindex",-1).on("click"+y,d(i._click,i)),i.wrapper=e('<div class="k-column-menu"/>'),i._refreshHandler=d(i.refresh,i),i.dataSource.bind(C,i._refreshHandler)},_init:function(){var e=this;e.pane=e.options.pane,e.pane&&(e._isMobile=!0),e._isMobile?e._createMobileMenu():e._createMenu(),e.owner._muteAngularRebind(function(){e._angularItems("compile")}),e._sort(),e._columns(),e._filter(),e._lockColumns(),e.trigger(w,{field:e.field,container:e.wrapper})},events:[w,_,"sort","filtering"],options:{name:"ColumnMenu",messages:{sortAscending:"Sort Ascending",sortDescending:"Sort Descending",filter:"Filter",column:"Column",columns:"Columns",columnVisibility:"Column Visibility",clear:"Clear",cancel:"Cancel",done:"Done",settings:"Edit Column Settings",lock:"Lock",unlock:"Unlock"},filter:"",columns:!0,sortable:!0,filterable:!0,animations:{left:"slide"}},_createMenu:function(){var e=this,n=e.options;e.wrapper.html(c.template(L)({uid:c.guid(),ns:c.ns,messages:n.messages,sortable:n.sortable,filterable:n.filterable,columns:e._ownerColumns(),showColumns:n.columns,lockedColumns:n.lockedColumns})),e.popup=e.wrapper[x]({anchor:e.link,open:d(e._open,e),activate:d(e._activate,e),deactivate:d(e._deactivate,e),close:function(){e.menu._closing=!0,e.options.closeCallback&&e.options.closeCallback(e.element)}}).data(x),e.menu=e.wrapper.children()[S]({orientation:"vertical",closeOnClick:!1,open:function(){e._updateMenuItems()}}).data(S)},_deactivate:function(){this.menu._closing=!1},_createMobileMenu:function(){var e,n=this,t=n.options,s=c.template($)({ns:c.ns,field:n.field,title:n.title||n.field,messages:t.messages,sortable:t.sortable,filterable:t.filterable,columns:n._ownerColumns(),showColumns:t.columns,lockedColumns:t.lockedColumns});n.view=n.pane.append(s),n.view.state={columns:{}},n.wrapper=n.view.element.find(".k-column-menu"),n.menu=new D(n.wrapper.children(),{pane:n.pane,columnMenu:n}),n.menu.element.on("transitionend"+y,function(e){e.stopPropagation()}),e=n.view.wrapper&&n.view.wrapper[0]?n.view.wrapper:n.view.element,e.on("click",".k-header-done",function(e){e.preventDefault(),n.menu._applyChanges(),n.menu._cancelChanges(!1),n.close()}),e.on("click",".k-header-cancel",function(e){e.preventDefault(),n.menu._cancelChanges(!0),n.close()}),n.view.bind("showStart",function(){var e=n.view||{columns:{}};n.options.lockedColumns&&n._updateLockedColumns(),e.element.find(".k-sort-asc.k-state-selected").length?e.state.initialSort="asc":e.element.find(".k-sort-desc.k-state-selected").length&&(e.state.initialSort="desc")})},_angularItems:function(n){var t=this;t.angular(n,function(){var n=t.wrapper.find(".k-columns-item input["+c.attr("field")+"]").map(function(){return e(this).closest("li")}),s=k(t._ownerColumns(),function(e){return{column:e._originalObject}});return{elements:n,data:s}})},destroy:function(){var e=this;e._angularItems("cleanup"),I.fn.destroy.call(e),e.filterMenu&&e.filterMenu.destroy(),e._refreshHandler&&e.dataSource.unbind(C,e._refreshHandler),e.options.columns&&e.owner&&(e._updateColumnsMenuHandler&&(e.owner.unbind("columnShow",e._updateColumnsMenuHandler),e.owner.unbind("columnHide",e._updateColumnsMenuHandler)),e._updateColumnsLockedStateHandler&&(e.owner.unbind("columnLock",e._updateColumnsLockedStateHandler),e.owner.unbind("columnUnlock",e._updateColumnsLockedStateHandler))),e.menu&&(e.menu.element.off(y),e.menu.destroy()),e.wrapper.off(y),e.popup&&e.popup.destroy(),e.view&&e.view.purge(),e.link.off(y),e.owner=null,e.wrapper=null,e.element=null},close:function(){this.menu.close(),this.popup&&(this.popup.close(),this.popup.element.off("keydown"+y))},_click:function(e){var n,t=this;e.preventDefault(),e.stopPropagation(),n=this.options,n.filter&&this.element.is(!n.filter)||(this.popup||this.pane?t._updateMenuItems():this._init(),this._isMobile?this.pane.navigate(this.view,this.options.animations.left):this.popup.toggle())},_updateMenuItems:function(){var e=this;e.options.columns&&(e._setMenuItemsVisibility(),e._reorderMenuItems())},_setMenuItemsVisibility:function(){var e=this;e._eachRenderedMenuItem(function(e,n,t){n.matchesMedia===!1?t.hide():t.show()})},_reorderMenuItems:function(){var e=this;e._eachRenderedMenuItem(function(e,n,t,s){t[0]&&t.index()!==e&&a(e,t,s)})},_eachRenderedMenuItem:function(n){var s,a,c,u,d,p,k,f=this,h=m(i(f.owner.columns),function(e){var n=!0,s=t(e.title||"");return e.menu!==!1&&(e.field||s.length)||(n=!1),n}).map(function(e){return{field:e.field,title:e.title,matchesMedia:e.matchesMedia}}),g=f._isMobile&&f.view?e(f.view.element).find(".k-columns-item").children("ul"):e(f.wrapper).find(".k-menu-group").first(),v=g.find("span."+(this._isMobile?"k-listgroup-form-field-wrapper":"k-menu-link")),C=r(v,g.find("input[type=checkbox]")),w=o(h);for(p=0;p<h.length;p++){for(u=h[p],c=u.field?u.field:u.title,a=e.inArray(p,w[JSON.stringify(u)]),d=e(),k=0;k<C[c].length;k++)d=d.add(v.eq(C[c][k]));s=d.find(l("field",c)).closest("li").eq(a),n(p,u,s,g)}},_open:function(){var n=this;e(".k-column-menu").not(n.wrapper).each(function(){e(this).data(x).close()}),n.popup.element.on("keydown"+y,function(e){e.keyCode==c.keys.ESC&&n.close()}),n.options.lockedColumns&&n._updateLockedColumns()},_activate:function(){this.menu.element.focus(),this.trigger(_,{field:this.field,container:this.wrapper})},_ownerColumns:function(){var e=i(this.owner.columns),n=m(e,function(e){var n=!0,s=t(e.title||"");return e.menu!==!1&&(e.field||s.length)||(n=!1),n});return k(n,function(n){return{originalField:n.field,field:n.field||n.title,title:n.title||n.field,hidden:n.hidden,matchesMedia:n.matchesMedia,index:f(n,e),locked:!!n.locked,_originalObject:n}})},_sort:function(){var n=this;n.options.sortable&&(n.refresh(),n.menu.bind(b,function(t){var s,i=e(t.item);i.hasClass("k-sort-asc")?s=g:i.hasClass("k-sort-desc")&&(s=v),s&&(i.parent().find(".k-sort-"+(s==g?v:g)).removeClass(h),n._sortDataSource(i,s),n._isMobile||n.close())}))},_sortDataSource:function(e,t){var s,i,l=this,a=l.options.sortable,o=null===a.compare?n:a.compare,r=l.dataSource,c=r.sort()||[],u=e.hasClass(h)&&a&&a.allowUnsort!==!1;if(t=u?n:t,!l.trigger("sort",{sort:{field:l.field,dir:t,compare:o}})){if(u?e.removeClass(h):e.addClass(h),"multiple"===a.mode){for(s=0,i=c.length;s<i;s++)if(c[s].field===l.field){c.splice(s,1);break}c.push({field:l.field,dir:t,compare:o})}else c=[{field:l.field,dir:t,compare:o}];r.sort(c)}},_columns:function(){var n=this;n.options.columns&&(n._updateColumnsMenu(),n._updateColumnsMenuHandler=d(n._updateColumnsMenu,n),n.owner.bind(["columnHide","columnShow"],n._updateColumnsMenuHandler),n._updateColumnsLockedStateHandler=d(n._updateColumnsLockedState,n),n.owner.bind(["columnUnlock","columnLock"],n._updateColumnsLockedStateHandler),n.menu.bind(b,function(s){var l,a,o=e(s.item),r=c.attr("index"),u={},d=0,p=m(i(n.owner.columns),function(e,n){var s=!0,i=t(e.title||"");return e.menu!==!1&&(e.field||i.length)||(s=!1),s&&(u[n]=d,d++),s});n._isMobile&&s.preventDefault(),o.parent().closest("li.k-columns-item")[0]&&(l=o.find(":checkbox"),l.attr("disabled")||(a=p[u[parseInt(l.attr(r),10)]],a.hidden===!0?n.owner.showColumn(a):n.owner.hideColumn(a)))}))},_updateColumnsMenu:function(){var e,n,s,l,a,o,r,u=c.attr("field"),d=c.attr("locked"),p={},k=0,f=c.attr("index"),h=0,g=m(i(this.owner.columns),function(e,n){var s=!0,i=t(e.title||"");return e.menu!==!1&&(e.field||i.length)||(s=!1),s&&(p[n]=k,k++),s}),v=m(this._ownerColumns(),function(e){return!e.hidden&&e.matchesMedia!==!1}),C=m(v,function(e){return e.originalField}),w=m(C,function(e){return e.locked===!0}).length,_=m(C,function(e){return e.locked!==!0}).length,b=m(this.owner.columns,function(e){return e.menu===!1}),x=m(b,function(e){return e.hidden});for(this.wrapper.find("[role='menuitemcheckbox']").attr("aria-checked",!1),o=this.wrapper.find(".k-columns-item input["+u+"]").prop("disabled",!1).prop("checked",!1),e=0,n=o.length;e<n;e++)s=o.eq(e),a="true"===s.attr(d),l=!1,r=s.data("kendoSwitch"),h=p[parseInt(s.attr(f),10)],l=!g[h].hidden&&g[h].matchesMedia!==!1,s.prop("checked",l),r&&(r.enable(!0),r.check(l)),s.closest("[role='menuitemcheckbox']").attr("aria-checked",l),l&&(1==w&&a&&(s.prop("disabled",!0),r&&r.enable(!1)),0!==b.length&&b.length!==x.length||1!=_||a||(s.prop("disabled",!0),r&&r.enable(!1)))},_updateColumnsLockedState:function(){var e,n,t,i,l=c.attr("field"),a=c.attr("locked"),o=s(this._ownerColumns(),"field"),r=this.wrapper.find(".k-columns-item input[type=checkbox]");for(e=0,n=r.length;e<n;e++)t=r.eq(e),i=o[t.attr(l)],i&&t.attr(a,i.locked);this._updateColumnsMenu()},_filter:function(){var n=this,t=M,s=n.options;s.filterable!==!1&&(s.filterable.multi&&(t="kendoFilterMultiCheck",s.filterable.dataSource&&(s.filterable.checkSource=s.filterable.dataSource,delete s.filterable.dataSource)),n.filterMenu=n.wrapper.find(".k-filterable")[t](p(!0,{},{appendToElement:!0,dataSource:s.dataSource,values:s.values,field:n.field,title:n.title,change:function(e){n.trigger("filtering",{filter:e.filter,field:e.field})&&e.preventDefault()}},s.filterable)).data(t),n._isMobile&&n.menu.bind(b,function(t){var s=e(t.item);s.hasClass("k-filter-item")&&n.pane.navigate(n.filterMenu.view,n.options.animations.left)}))},_lockColumns:function(){var n=this;n.menu.bind(b,function(t){var s=e(t.item);s.hasClass("k-lock")?(n.owner.lockColumn(n.field),n._isMobile||n.close()):s.hasClass("k-unlock")&&(n.owner.unlockColumn(n.field),n._isMobile||n.close())})},_updateLockedColumns:function(){var e,n,t,s,i=this.field,l=this.owner.columns,a=m(l,function(e){return e.field==i||e.title==i})[0];a&&(e=a.locked===!0,n=m(l,function(n){return!n.hidden&&(n.locked&&e||!n.locked&&!e)}).length,t=this.wrapper.find(".k-lock").removeClass("k-state-disabled"),s=this.wrapper.find(".k-unlock").removeClass("k-state-disabled"),(e||1==n)&&t.addClass("k-state-disabled"),e&&1!=n||s.addClass("k-state-disabled"),this._updateColumnsLockedState())},refresh:function(){var e,n,t,s=this,i=s.options.dataSource.sort()||[],l=s.field;for(s.wrapper.find(".k-sort-asc, .k-sort-desc").removeClass(h),n=0,t=i.length;n<t;n++)e=i[n],l==e.field&&s.wrapper.find(".k-sort-"+e.dir).addClass(h);s.link[s._filterExist(s.dataSource.filter())?"addClass":"removeClass"]("k-state-active")},_filterExist:function(e){var n,t,s,i=!1;if(e){for(e=e.filters,t=0,s=e.length;t<s;t++)n=e[t],n.field==this.field?i=!0:n.filters&&(i=i||this._filterExist(n));return i}}}),L='<ul id="#=uid#">#if(sortable){#<li class="k-item k-menu-item k-sort-asc"><span class="k-link k-menu-link"><span class="k-icon k-i-sort-asc-sm"></span>${messages.sortAscending}</span></li><li class="k-item k-menu-item k-sort-desc"><span class="k-link k-menu-link"><span class="k-icon k-i-sort-desc-sm"></span>${messages.sortDescending}</span></li>#if(showColumns || filterable){#<li class="k-separator k-menu-separator" role="presentation"></li>#}##}##if(showColumns){#<li class="k-item k-menu-item k-columns-item" aria-haspopup="true"><span class="k-link k-menu-link"><span class="k-icon k-i-columns"></span>${messages.columns}</span><ul>#for (var idx = 0; idx < columns.length; idx++) {#<li role="menuitemcheckbox" aria-checked="false" #=columns[idx].matchesMedia === false ? "style=\'display:none;\'" : ""#><input type="checkbox" title="#=columns[idx].title#" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#" data-#=ns#locked="#=columns[idx].locked#"/>#=columns[idx].title#</li>#}#</ul></li>#if(filterable || lockedColumns){#<li class="k-separator k-menu-separator" role="presentation"></li>#}##}##if(filterable){#<li class="k-item k-menu-item k-filter-item" aria-haspopup="true"><span class="k-link k-menu-link"><span class="k-icon k-i-filter"></span>${messages.filter}</span><ul><li><div class="k-filterable"></div></li></ul></li>#if(lockedColumns){#<li class="k-separator k-menu-separator" role="presentation"></li>#}##}##if(lockedColumns){#<li class="k-item k-menu-item k-lock"><span class="k-link k-menu-link"><span class="k-icon k-i-lock"></span>${messages.lock}</span></li><li class="k-item k-menu-item k-unlock"><span class="k-link k-menu-link"><span class="k-icon k-i-unlock"></span>${messages.unlock}</span></li>#}#</ul>',$='<div data-#=ns#role="view" class="k-grid-column-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.settings}<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><div class="k-column-menu"><ul class="k-reset"><li><span class="k-list-title">#=messages.column#: ${title}</span><ul class="k-listgroup k-listgroup-flush">#if(sortable){#<li id="#=kendo.guid()#" class="k-item k-listgroup-item k-sort-asc"><span class="k-link"><span class="k-icon k-i-sort-asc-sm"></span><span class="k-item-title">${messages.sortAscending}</span></span></li><li id="#=kendo.guid()#" class="k-item k-listgroup-item k-sort-desc"><span class="k-link"><span class="k-icon k-i-sort-desc-sm"></span><span class="k-item-title">${messages.sortDescending}</span></span></li>#}##if(lockedColumns){#<li id="#=kendo.guid()#" class="k-item k-listgroup-item k-lock"><span class="k-link"><span class="k-icon k-i-lock"></span><span class="k-item-title">${messages.lock}</span></span></li><li id="#=kendo.guid()#" class="k-item k-listgroup-item k-unlock"><span class="k-link"><span class="k-icon k-i-unlock"></span><span class="k-item-title">${messages.unlock}</span></span></li>#}##if(filterable){#<li id="#=kendo.guid()#" class="k-item k-listgroup-item k-filter-item"><span class="k-link k-filterable"><span class="k-icon k-i-filter"></span><span class="k-item-title">${messages.filter}</span><span class="k-select"><span class="k-icon k-i-arrow-chevron-right"></span></span></span></li>#}#</ul></li>#if(showColumns){#<li class="k-columns-item"><span class="k-list-title">${messages.columnVisibility}</span><ul class="k-listgroup k-listgroup-flush">#for (var idx = 0; idx < columns.length; idx++) {#<li id="#=kendo.guid()#" class="k-item k-listgroup-item"><span class="k-listgroup-form-row"><span class="k-listgroup-form-field-label k-item-title">#=columns[idx].title#</span><span class="k-listgroup-form-field-wrapper"><input type="checkbox" title="#=columns[idx].title#" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#" data-#=ns#locked="#=columns[idx].locked#" /></span></span></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></div></div>',D=I.extend({init:function(e,n){var t=this;I.fn.init.call(t,e,n),t._createCheckBoxes(),t.element.on("click"+y,"li.k-item:not(.k-separator):not(.k-state-disabled):not(:has(.k-switch))","_click")},events:[b],_click:function(t){var s=this;return e(t.target).is("[type=checkbox]")||t.preventDefault(),e(t.target).hasClass("k-clear")?(s._cancelChanges(!0),n):e(t.target).hasClass("k-filterable")?(s._cancelChanges(!0),s.trigger(b,{item:t.currentTarget}),n):(s._updateSelectedItems(t.currentTarget),n)},_updateSelectedItems:function(n){var t,s,i,l=this,a=e(n),o=l.options.columnMenu.view.state||{columns:{}},r=a.prop("id");a.hasClass("k-filter-item")||(o[r]=!o[r],(a.hasClass("k-sort-asc")||a.hasClass("k-sort-desc"))&&(a.hasClass("k-sort-asc")?(t="asc",s=l.element.find(".k-sort-desc")):(t="desc",s=l.element.find(".k-sort-asc")),i=s.prop("id"),t!==o.initialSort||a.hasClass("k-state-selected")||(o[r]=!1),o[i]&&(o[i]=!1),s.removeClass(h)),a.hasClass(h)?a.removeClass(h):a.addClass(h))},_cancelChanges:function(e){var n,t,s,i,l=this,a=l.options.columnMenu,o=a.view,r=o.state||{columns:{}},c=r.columns;if(l.element.find("."+h).removeClass(h),a.refresh(),e){n=[];for(t in c)c.hasOwnProperty(t)&&c[t]===!0&&(s=o.element.find("#"+t),n.push(s[0]));for(i=n.length-1;i>=0;i--)l.trigger(b,{item:n[i]});a.options.lockedColumns&&a._updateLockedColumns()}l.options.columnMenu.view.state={columns:{}}},_applyChanges:function(){var e,n,t=this,s=t.options.columnMenu.view,i=s.state||{columns:{}};for(e in i)i.hasOwnProperty(e)&&"initialSort"!==e&&"columns"!==e&&i[e]===!0&&(n=s.element.find("#"+e),n.hasClass(h)?n.removeClass(h):n.addClass(h),t.trigger(b,{item:n[0]}))},_createCheckBoxes:function(){var e=this;e.element.find(".k-columns-item").find("[type='checkbox']").kendoSwitch({messages:{checked:"",unchecked:""},change:function(n){var t=n.sender.element.closest(".k-item"),s=e.options.columnMenu.view.state||{columns:{}},i=t.prop("id");s.columns[i]=!s.columns[i],e.trigger(b,{item:t})}})},_destroyCheckBoxes:function(){var e,n,t=this,s=t.element.find(".k-columns-item").find("[type='checkbox']");for(n=0;n<s.length;n++)e=s.eq(n).data("kendoSwitch"),e&&e.destroy()},close:function(){this.options.pane.navigate("")},destroy:function(){var e=this;I.fn.destroy.call(e),e.element.off(y),e._destroyCheckBoxes()}});u.plugin(H)}(window.kendo.jQuery),window.kendo},t(3))},1059:function(e,n){e.exports=require("./kendo.filtermenu")},1060:function(e,n){e.exports=require("./kendo.menu")}});