UNPKG

@progress/kendo-ui

Version:

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

1 lines 8 kB
module.exports=function(t){function e(n){if(r[n])return r[n].exports;var a=r[n]={exports:{},id:n,loaded:!1};return t[n].call(a.exports,a,a.exports,e),a.loaded=!0,a.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}({0:function(t,e,r){t.exports=r(1210)},3:function(t,e){t.exports=function(){throw Error("define cannot be used indirect")}},1006:function(t,e){t.exports=require("./kendo.core")},1061:function(t,e){t.exports=require("./kendo.draganddrop")},1210:function(t,e,r){var n,a,o;!function(i,define){a=[r(1006),r(1061)],n=i,o="function"==typeof n?n.apply(e,a):n,!(void 0!==o&&(t.exports=o))}(function(){return function(t,e){var r=window.kendo,n=r.ui.Widget,a=r._outerWidth,o=r.attr,i=t.extend,s=t.each,d=t.proxy,l=!1,c="dir",u="field",g="title",p="asc",f="desc",h="group-sort",m=".kendoGroupable",v="change",k=r.template('<div class="k-group-indicator" data-#=data.ns#field="${data.field}" data-#=data.ns#title="${data.title || ""}" data-#=data.ns#dir="${data.dir || "asc"}"><a href="\\#" class="k-link"><span class="k-icon k-i-sort-${(data.dir || "asc") == "asc" ? "asc-sm" : "desc-sm"}" title="(sorted ${(data.dir || "asc") == "asc" ? "ascending": "descending"})"></span>${data.title ? data.title: data.field}</a><a class="k-button k-button-icon k-bare"><span class="k-icon k-i-close"></span></a></div>',{useWithBlock:!1}),_=function(e){var n=e.attr(r.attr("title"));return n&&(n=r.htmlEncode(n)),t('<div class="k-header k-group-clue k-drag-clue" />').html(n||e.attr(r.attr("field"))).prepend('<span class="k-icon k-drag-status k-i-cancel" />')},C=t('<div class="k-grouping-dropclue"/>'),b=n.extend({init:function(s,u){var g,k,b=this,I=r.guid(),D=d(b._intializePositions,b),x=b._dropCuePositions=[];n.fn.init.call(b,s,u),l=r.support.isRtl(s),k=l?"right":"left",b.draggable=g=b.options.draggable||new r.ui.Draggable(b.element,{filter:b.options.draggableElements,hint:_,group:I}),b.groupContainer=t(b.options.groupContainer,b.element).kendoDropTarget({group:g.options.group,dragenter:function(t){b._canDrag(t.draggable.currentTarget)&&(t.draggable.hint.find(".k-drag-status").removeClass("k-i-cancel").addClass("k-i-plus"),C.css(k,0).appendTo(b.groupContainer))},dragleave:function(t){t.draggable.hint.find(".k-drag-status").removeClass("k-i-plus").addClass("k-i-cancel"),C.remove()},drop:function(e){var n,a=e.draggable.currentTarget,o=a.attr(r.attr("field")),s=a.attr(r.attr("title")),d=b.indicator(o),c=b._dropCuePositions,u=c[c.length-1],g=i({},b.options.sort,a.data(h)),p=g.dir;(a.hasClass("k-group-indicator")||b._canDrag(a))&&(u?(n=b._dropCuePosition(r.getOffset(C).left+parseInt(u.element.css("marginLeft"),10)*(l?-1:1)+parseInt(u.element.css("marginRight"),10)),n&&b._canDrop(t(d),n.element,n.left)&&(n.before?n.element.before(d||b.buildIndicator(o,s,p)):n.element.after(d||b.buildIndicator(o,s,p)),b._setIndicatorSortOptions(o,g),b._change())):(b.groupContainer.empty(),b.groupContainer.append(b.buildIndicator(o,s,p)),b._setIndicatorSortOptions(o,g),b._change()))}}).kendoDraggable({filter:"div.k-group-indicator",hint:_,group:g.options.group,dragcancel:d(b._dragCancel,b),dragstart:function(t){var e=t.currentTarget,r=parseInt(e.css("marginLeft"),10),n=e.position(),o=l?n.left-r:n.left+a(e);D(),C.css("left",o).appendTo(b.groupContainer),this.hint.find(".k-drag-status").removeClass("k-i-cancel").addClass("k-i-plus")},dragend:function(){b._dragEnd(this)},drag:d(b._drag,b)}).on("click"+m,".k-button",function(e){e.preventDefault(),b._removeIndicator(t(this).parent())}).on("click"+m,".k-link",function(e){var r=t(this).parent(),n=r.attr(o(c))===p?f:p;r.attr(o(c),n),b._change(),e.preventDefault()}),g.bind(["dragend","dragcancel","dragstart","drag"],{dragend:function(){b._dragEnd(this)},dragcancel:d(b._dragCancel,b),dragstart:function(t){var r,n,o;return b.options.allowDrag||b._canDrag(t.currentTarget)?(D(),x.length?(r=x[x.length-1].element,n=parseInt(r.css("marginRight"),10),o=r.position().left+a(r)+n):o=0,e):(t.preventDefault(),e)},drag:d(b._drag,b)}),b.dataSource=b.options.dataSource,b.dataSource&&b._refreshHandler?b.dataSource.unbind(v,b._refreshHandler):b._refreshHandler=d(b.refresh,b),b.dataSource&&(b.dataSource.bind("change",b._refreshHandler),b.refresh())},refresh:function(){var e,r=this,n=r.dataSource,a=n.group()||[],d=o(u),l=o(g);r.groupContainer&&(r.groupContainer.empty(),s(a,function(n,a){var o=a.field,s=a.dir,c=r.element.find(r.options.filter).filter(function(){return t(this).attr(d)===o});e=r.buildIndicator(o,c.attr(l),s),r.groupContainer.append(e),r._setIndicatorSortOptions(o,i({},r.options.sort,{dir:s,compare:a.compare}))})),r._invalidateGroupContainer()},destroy:function(){var t=this;n.fn.destroy.call(t),t.groupContainer.off(m),t.groupContainer.data("kendoDropTarget")&&t.groupContainer.data("kendoDropTarget").destroy(),t.groupContainer.data("kendoDraggable")&&t.groupContainer.data("kendoDraggable").destroy(),t.options.draggable||t.draggable.destroy(),t.dataSource&&t._refreshHandler&&(t.dataSource.unbind("change",t._refreshHandler),t._refreshHandler=null),t.groupContainer=t.element=t.draggable=null},events:["change"],options:{name:"Groupable",filter:"th",draggableElements:"th",messages:{empty:"Drag a column header and drop it here to group by that column"},sort:{dir:p,compare:null}},indicator:function(e){var n=t(".k-group-indicator",this.groupContainer);return t.grep(n,function(n){return t(n).attr(r.attr("field"))===e})[0]},buildIndicator:function(t,e,n){var a=this,o=k({ns:r.ns,field:t.replace(/"/g,"'"),title:e,dir:n||(a.options.sort||{}).dir||p});return o},_setIndicatorSortOptions:function(e,r){var n=t(this.indicator(e));n.data(h,r)},aggregates:function(){var e,n,a,o=this;return o.element.find(o.options.filter).map(function(){var o=t(this),i=o.attr(r.attr("aggregates")),s=o.attr(r.attr("field"));if(i&&""!==i)for(e=i.split(","),i=[],n=0,a=e.length;n<a;n++)i.push({field:s,aggregate:e[n]});return i}).toArray()},descriptors:function(){var e,n=this,a=t(".k-group-indicator",n.groupContainer),o=n.aggregates();return t.map(a,function(a){var i,s;return a=t(a),e=a.attr(r.attr("field")),i=n.options.sort||{},s=a.data(h)||{},{field:e,dir:a.attr(r.attr("dir")),aggregates:o||[],compare:s.compare||i.compare}})},_removeIndicator:function(t){var e=this;t.off(),t.removeData(),t.remove(),e._invalidateGroupContainer(),e._change()},_change:function(){var t,r=this;if(r.dataSource){if(t=r.descriptors(),r.trigger("change",{groups:t}))return r.refresh(),e;r.dataSource.group(t)}},_dropCuePosition:function(e){var r,n,o,i,s,d=this._dropCuePositions;if(C.is(":visible")&&0!==d.length)return e=Math.ceil(e),r=d[d.length-1],n=r.left,o=r.right,i=parseInt(r.element.css("marginLeft"),10),s=parseInt(r.element.css("marginRight"),10),e>=o&&!l||e<n&&l?e={left:r.element.position().left+(l?-i:a(r.element)+s),element:r.element,before:!1}:(e=t.grep(d,function(t){return t.left<=e&&e<=t.right||l&&e>t.right})[0],e&&(e={left:l?e.element.position().left+a(e.element)+s:e.element.position().left-i,element:e.element,before:!0})),e},_drag:function(t){var e=this._dropCuePosition(t.x.location);e&&C.css({left:e.left,right:"auto"})},_canDrag:function(t){var e=t.attr(r.attr("field"));return"false"!=t.attr(r.attr("groupable"))&&e&&(t.hasClass("k-group-indicator")||!this.indicator(e))},_canDrop:function(t,e,r){var n=t.next(),a=t[0]!==e[0]&&(!n[0]||e[0]!==n[0]||!l&&r>n.position().left||l&&r<n.position().left);return a},_dragEnd:function(e){var n=this,a=e.currentTarget.attr(r.attr("field")),o=n.indicator(a);e!==n.options.draggable&&!e.dropped&&o&&n._removeIndicator(t(o)),n._dragCancel()},_dragCancel:function(){C.remove(),this._dropCuePositions=[]},_intializePositions:function(){var e,n=this,o=t(".k-group-indicator",n.groupContainer);n._dropCuePositions=t.map(o,function(n){return n=t(n),e=r.getOffset(n).left,{left:parseInt(e,10),right:parseInt(e+a(n),10),element:n}})},_invalidateGroupContainer:function(){var t=this.groupContainer;t&&t.is(":empty")&&t.html(this.options.messages.empty)}});r.ui.plugin(b)}(window.kendo.jQuery),window.kendo},r(3))}});