@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 3.9 kB
JavaScript
module.exports=function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}({0:function(e,t,r){e.exports=r(1045)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1006:function(e,t){e.exports=require("./kendo.core")},1045:function(e,t,r){var n,i,o;!function(s,define){i=[r(1006)],n=s,o="function"==typeof n?n.apply(t,i):n,!(void 0!==o&&(e.exports=o))}(function(){return function(e,t){function r(r){var i,o=r.find("tr:not(.k-filter-row)"),s=function(){var t=e(this);return!t.hasClass("k-group-cell")&&!t.hasClass("k-hierarchy-cell")},a=e();return o.length>1&&(a=o.find("th:visible").filter(s).filter(function(){return this.rowSpan>1})),a=a.add(o.last().find("th:visible").filter(s)),i=n.attr("index"),a.sort(function(r,n){var o,s;return r=e(r),n=e(n),o=r.attr(i),s=n.attr(i),o===t&&(o=e(r).index()),s===t&&(s=e(n).index()),o=parseInt(o,10),s=parseInt(s,10),o>s?1:o<s?-1:0}),a}var n=window.kendo,i=n.ui,o=i.Widget,s="dir",a="asc",l="single",d="field",c="desc",f=".kendoColumnSorter",p=".k-link",u="aria-sort",h=e.proxy,k=o.extend({init:function(e,t){var r,n=this;o.fn.init.call(n,e,t),n._refreshHandler=h(n.refresh,n),n.dataSource=n.options.dataSource.bind("change",n._refreshHandler),n.directions=n.options.initialDirection===a?[a,c]:[c,a],r=n.element.find(p),r[0]||(r=n.element.wrapInner('<a class="k-link" href="#"/>').find(p)),n.link=r,n.element.on("click"+f,h(n._click,n))},options:{name:"ColumnSorter",mode:l,allowUnsort:!0,compare:null,filter:"",initialDirection:a,showIndexes:!1},events:["change"],destroy:function(){var e=this;o.fn.destroy.call(e),e.element.off(f),e.dataSource.unbind("change",e._refreshHandler),e._refreshHandler=e.element=e.link=e.dataSource=null},refresh:function(){var i,o,l,f,p,h,k,g,m=this,v=m.dataSource.sort()||[],S=m.element,x=S.attr(n.attr(d));for(S.removeAttr(n.attr(s)),S.removeAttr(u),i=0,o=v.length;i<o;i++)l=v[i],x==l.field&&(S.attr(n.attr(s),l.dir),h=i+1);f=S.attr(n.attr(s)),S.is("th")&&(g=S.closest("table"),g.parent().hasClass("k-grid-header-wrap")?g=g.closest(".k-grid").find(".k-grid-content > table"):g.parent().hasClass("k-grid-header-locked")?g=g.closest(".k-grid").find(".k-grid-content-locked > table"):g.parent().hasClass("k-grid")||(g=null),g&&(S.attr(n.attr("index"))?(k=r(S.closest(".k-grid-header")),p=k.index(S)):p=S.parent().children(":visible").index(S),S.toggleClass("k-sorted",f!==t),g.children("colgroup").children(":not(.k-group-col):not(.k-hierarchy-col)").eq(p).toggleClass("k-sorted",f!==t))),S.find(".k-i-sort-asc-sm,.k-i-sort-desc-sm,.k-sort-order").remove(),f===a?(e('<span class="k-icon k-i-sort-asc-sm" />').appendTo(m.link),S.attr(u,"ascending")):f===c&&(e('<span class="k-icon k-i-sort-desc-sm" />').appendTo(m.link),S.attr(u,"descending")),m.options.showIndexes&&v.length>1&&h&&e('<span class="k-sort-order" />').html(h).appendTo(m.link)},_toggleSortDirection:function(e){var r=this.directions;return e===r[r.length-1]&&this.options.allowUnsort?t:r[0]===e?r[1]:r[0]},_click:function(e){var r,i,o=this,a=o.element,c=a.attr(n.attr(d)),f=a.attr(n.attr(s)),p=o.options,u=null===o.options.compare?t:o.options.compare,h=o.dataSource.sort()||[];if(e.preventDefault(),(!p.filter||a.is(p.filter))&&(f=this._toggleSortDirection(f),!this.trigger("change",{sort:{field:c,dir:f,compare:u}}))){if(p.mode===l)h=[{field:c,dir:f,compare:u}];else if("multiple"===p.mode){for(r=0,i=h.length;r<i;r++)if(h[r].field===c){h.splice(r,1);break}h.push({field:c,dir:f,compare:u})}this.dataSource.options.endless&&(this.dataSource.options.endless=null,a.closest(".k-grid").getKendoGrid()._endlessPageSize=o.dataSource.options.pageSize,this.dataSource.pageSize(o.dataSource.options.pageSize)),this.dataSource.sort(h)}}});i.plugin(k)}(window.kendo.jQuery),window.kendo},r(3))}});