10 lines
8.4 KiB
JavaScript
10 lines
8.4 KiB
JavaScript
/*
|
|
* Kendo UI Complete v2013.3.1119 (http://kendoui.com)
|
|
* Copyright 2013 Telerik AD. All rights reserved.
|
|
*
|
|
* Kendo UI Complete commercial licenses may be obtained at
|
|
* https://www.kendoui.com/purchase/license-agreement/kendo-ui-complete-commercial.aspx
|
|
* If you do not own a commercial license, this file shall be governed by the trial license terms.
|
|
*/
|
|
!function(define){return define(["./kendo.popup.min","./kendo.filtermenu.min","./kendo.menu.min"],function(){!function(e,n){function s(n){return e.trim(n).replace(/ /gi,"")}var i=window.kendo,t=i.ui,l=e.proxy,a=e.extend,o=e.grep,r=e.map,c=e.inArray,u="k-state-selected",d="asc",p="desc",f="change",m="init",k="select",h="kendoPopup",g="kendoFilterMenu",v="kendoMenu",b=".kendoColumnMenu",w=t.Widget,_=w.extend({init:function(n,s){var t,a=this;w.fn.init.call(a,n,s),n=a.element,s=a.options,a.owner=s.owner,a.dataSource=s.dataSource,a.field=n.attr(i.attr("field")),t=n.find(".k-header-column-menu"),t[0]||(t=n.prepend('<a class="k-header-column-menu" href="#"><span class="k-icon k-i-arrowhead-s"/></a>').find(".k-header-column-menu")),a.link=t.attr("tabindex",-1).on("click"+b,l(a._click,a)),a.wrapper=e('<div class="k-column-menu"/>')},_init:function(){var e=this;e.pane=e.element.closest(i.roleSelector("pane")).data("kendoMobilePane"),e.pane&&(e._isMobile=!0),e._isMobile?e._createMobileMenu():e._createMenu(),e._sort(),e._columns(),e._filter(),e.trigger(m,{field:e.field,container:e.wrapper})},events:[m],options:{name:"ColumnMenu",messages:{sortAscending:"Sort Ascending",sortDescending:"Sort Descending",filter:"Filter",columns:"Columns",done:"Done",settings:"Column Settings"},filter:"",columns:!0,sortable:!0,filterable:!0,animations:{left:"slide"}},_createMenu:function(){var e=this,n=e.options;e.wrapper.html(i.template(C)({ns:i.ns,messages:n.messages,sortable:n.sortable,filterable:n.filterable,columns:e._ownerColumns(),showColumns:n.columns})),e.popup=e.wrapper[h]({anchor:e.link,open:l(e._open,e),activate:l(e._activate,e),close:e.options.closeCallback}).data(h),e.menu=e.wrapper.children()[v]({orientation:"vertical",closeOnClick:!1}).data(v)},_createMobileMenu:function(){var e=this,n=e.options,s=i.template(M)({ns:i.ns,field:e.field,messages:n.messages,sortable:n.sortable,filterable:n.filterable,columns:e._ownerColumns(),showColumns:n.columns});e.view=e.pane.append(s),e.wrapper=e.view.element.find(".k-column-menu"),e.menu=new x(e.wrapper.children(),{pane:e.pane}),e.view.element.on("click",".k-done",function(n){e.close(),n.preventDefault()})},destroy:function(){var e=this;w.fn.destroy.call(e),e.filterMenu&&e.filterMenu.destroy(),e._refreshHandler&&e.dataSource.unbind(f,e._refreshHandler),e.options.columns&&(e.owner.unbind("columnShow",e._updateColumnsMenuHandler),e.owner.unbind("columnHide",e._updateColumnsMenuHandler)),e.menu&&(e.menu.element.off(b),e.menu.destroy()),e.wrapper.off(b),e.popup&&e.popup.destroy(),e.view&&e.view.purge(),e.link.off(b)},close:function(){this.menu.close(),this.popup&&(this.popup.close(),this.popup.element.off("keydown"+b))},_click:function(e){e.preventDefault(),e.stopPropagation();var n=this.options;n.filter&&this.element.is(!n.filter)||(this.popup||this.pane||this._init(),this._isMobile?this.pane.navigate(this.view,this.options.animations.left):this.popup.toggle())},_open:function(){var n=this;e(".k-column-menu").not(n.wrapper).each(function(){e(this).data(h).close()}),n.popup.element.on("keydown"+b,function(e){e.keyCode==i.keys.ESC&&n.close()})},_activate:function(){this.menu.element.focus()},_ownerColumns:function(){var e=this.owner.columns,n=o(e,function(e){var n=!0,i=s(e.title||"");return(e.menu===!1||!e.field&&!i.length)&&(n=!1),n});return r(n,function(n){return{originalField:n.field,field:n.field||n.title,title:n.title||n.field,hidden:n.hidden,index:c(n,e)}})},_sort:function(){var n=this;n.options.sortable&&(n.refresh(),n._refreshHandler=l(n.refresh,n),n.dataSource.bind(f,n._refreshHandler),n.menu.bind(k,function(s){var i,t=e(s.item);t.hasClass("k-sort-asc")?i=d:t.hasClass("k-sort-desc")&&(i=p),i&&(t.parent().find(".k-sort-"+(i==d?p:d)).removeClass(u),n._sortDataSource(t,i),n.close())}))},_sortDataSource:function(e,s){var i,t,l=this,a=l.options.sortable,o=l.dataSource,r=o.sort()||[];if(e.hasClass(u)&&a&&a.allowUnsort!==!1?(e.removeClass(u),s=n):e.addClass(u),a===!0||"single"===a.mode)r=[{field:l.field,dir:s}];else{for(i=0,t=r.length;t>i;i++)if(r[i].field===l.field){r.splice(i,1);break}r.push({field:l.field,dir:s})}o.sort(r)},_columns:function(){var n=this;n.options.columns&&(n._updateColumnsMenu(),n._updateColumnsMenuHandler=l(n._updateColumnsMenu,n),n.owner.bind(["columnHide","columnShow"],n._updateColumnsMenuHandler),n.menu.bind(k,function(s){var t,l,a,r,u=e(s.item),d=n.owner.columns;n._isMobile&&s.preventDefault(),u.parent().closest("li.k-columns-item")[0]&&(t=u.find(":checkbox"),t.attr("disabled")||(r=t.attr(i.attr("field")),a=o(d,function(e){return e.field==r||e.title==r})[0],l=c(a,d),a.hidden===!0?n.owner.showColumn(l):n.owner.hideColumn(l)))}))},_updateColumnsMenu:function(){var n=i.attr("field"),s=o(this._ownerColumns(),function(e){return!e.hidden}),t=o(s,function(e){return e.originalField}).length;s=r(s,function(e){return e.field}),this.wrapper.find(".k-columns-item input["+n+"]").prop("checked",!1).filter(function(){return c(e(this).attr(n),s)>-1}).prop("checked",!0).prop("disabled",1==t)},_filter:function(){var n=this,s=n.options;s.filterable!==!1&&(n.filterMenu=n.wrapper.find(".k-filterable")[g](a(!0,{},{appendToElement:!0,dataSource:s.dataSource,values:s.values,field:n.field},s.filterable)).data(g),n._isMobile&&n.menu.bind(k,function(s){var i=e(s.item);i.hasClass("k-filter-item")&&n.pane.navigate(n.filterMenu.view,n.options.animations.left)}))},refresh:function(){var e,n,s,i=this,t=i.options.dataSource.sort()||[],l=i.field;for(i.wrapper.find(".k-sort-asc, .k-sort-desc").removeClass(u),n=0,s=t.length;s>n;n++)e=t[n],l==e.field&&i.wrapper.find(".k-sort-"+e.dir).addClass(u)}}),C='<ul>#if(sortable){#<li class="k-item k-sort-asc"><span class="k-link"><span class="k-sprite k-i-sort-asc"></span>${messages.sortAscending}</span></li><li class="k-item k-sort-desc"><span class="k-link"><span class="k-sprite k-i-sort-desc"></span>${messages.sortDescending}</span></li>#if(showColumns || filterable){#<li class="k-separator"></li>#}##}##if(showColumns){#<li class="k-item k-columns-item"><span class="k-link"><span class="k-sprite k-i-columns"></span>${messages.columns}</span><ul>#for (var idx = 0; idx < columns.length; idx++) {#<li><input type="checkbox" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#"/>#=columns[idx].title#</li>#}#</ul></li>#if(filterable){#<li class="k-separator"></li>#}##}##if(filterable){#<li class="k-item k-filter-item"><span class="k-link"><span class="k-sprite k-filter"></span>${messages.filter}</span><ul><li><div class="k-filterable"></div></li></ul></li>#}#</ul>',M='<div data-#=ns#role="view" data-#=ns#init-widgets="false" class="k-grid-column-menu"><div data-#=ns#role="header" class="k-header">${messages.settings}<button class="k-button k-done">#=messages.done#</button></div><div class="k-column-menu k-mobile-list"><ul><li><span class="k-link">${field}</span><ul>#if(sortable){#<li class="k-item k-sort-asc"><span class="k-link"><span class="k-sprite k-i-sort-asc"></span>${messages.sortAscending}</span></li><li class="k-item k-sort-desc"><span class="k-link"><span class="k-sprite k-i-sort-desc"></span>${messages.sortDescending}</span></li>#}##if(filterable){#<li class="k-item k-filter-item"><span class="k-link k-filterable"><span class="k-sprite k-filter"></span>${messages.filter}</span></li>#}#</ul></li>#if(showColumns){#<li class="k-columns-item"><span class="k-link">${messages.columns}</span><ul>#for (var idx = 0; idx < columns.length; idx++) {#<li class="k-item"><label class="k-label"><input type="checkbox" class="k-check" data-#=ns#field="#=columns[idx].field.replace(/"/g,"&\\#34;")#" data-#=ns#index="#=columns[idx].index#"/>#=columns[idx].title#</label></li>#}#</ul></li>#}#</ul></div></div>',x=w.extend({init:function(e,n){w.fn.init.call(this,e,n),this.element.on("click"+b,"li:not(.k-separator)","_click")},events:[k],_click:function(e){this.trigger(k,{item:e.currentTarget})&&e.preventDefault()},close:function(){this.options.pane.navigate("")},destroy:function(){w.fn.destroy.call(this),this.element.off(b)}});t.plugin(_)}(window.kendo.jQuery)})}("function"==typeof define&&define.amd?define:function(e,n){return n()});
|
|
//@ sourceMappingURL=kendo.columnmenu.min.js.map
|