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