Jonathan Ouellette 580e90f6a2 initial add
2022-09-27 14:10:30 -07:00

10 lines
7.1 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.core.min","./kendo.draganddrop.min"],function(){!function(t){function e(t){return t.position().top+3}var r=window.kendo,n=r.ui.Widget,a=t.proxy,i=!1,o=".kendoGroupable",d=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-si-arrow-${(data.dir || "asc") == "asc" ? "n" : "s"}">(sorted ${(data.dir || "asc") == "asc" ? "ascending": "descending"})</span>${data.title ? data.title: data.field}</a><a class="k-button k-button-icon k-button-bare"><span class="k-icon k-group-delete"></span></a></div>',{useWithBlock:!1}),s=function(e){return t('<div class="k-header k-drag-clue" />').css({width:e.width(),paddingLeft:e.css("paddingLeft"),paddingRight:e.css("paddingRight"),lineHeight:e.height()+"px",paddingTop:e.css("paddingTop"),paddingBottom:e.css("paddingBottom")}).html(e.attr(r.attr("title"))||e.attr(r.attr("field"))).prepend('<span class="k-icon k-drag-status k-denied" />')},l=t('<div class="k-grouping-dropclue"/>'),g=/("|\%|'|\[|\]|\$|\.|\,|\:|\;|\+|\*|\&|\!|\#|\(|\)|<|>|\=|\?|\@|\^|\{|\}|\~|\/|\||`)/g,c=n.extend({init:function(d,g){var c,u,p,f=this,h=r.guid(),m=a(f._intializePositions,f),k=f._dropCuePositions=[];n.fn.init.call(f,d,g),i=r.support.isRtl(d),p=i?"right":"left",f.draggable=u=f.options.draggable||new r.ui.Draggable(f.element,{filter:f.options.draggableElements,hint:s,group:h}),c=f.groupContainer=t(f.options.groupContainer,f.element).kendoDropTarget({group:u.options.group,dragenter:function(t){f._canDrag(t.draggable.currentTarget)&&(t.draggable.hint.find(".k-drag-status").removeClass("k-denied").addClass("k-add"),l.css("top",e(c)).css(p,0).appendTo(c))},dragleave:function(t){t.draggable.hint.find(".k-drag-status").removeClass("k-add").addClass("k-denied"),l.remove()},drop:function(e){var n,a=e.draggable.currentTarget,o=a.attr(r.attr("field")),d=a.attr(r.attr("title")),s=f.indicator(o),g=f._dropCuePositions,c=g[g.length-1];(a.hasClass("k-group-indicator")||f._canDrag(a))&&(c?(n=f._dropCuePosition(r.getOffset(l).left+parseInt(c.element.css("marginLeft"),10)*(i?-1:1)+parseInt(c.element.css("marginRight"),10)),n&&f._canDrop(t(s),n.element,n.left)&&(n.before?n.element.before(s||f.buildIndicator(o,d)):n.element.after(s||f.buildIndicator(o,d)),f._change())):(f.groupContainer.append(f.buildIndicator(o,d)),f._change()))}}).kendoDraggable({filter:"div.k-group-indicator",hint:s,group:u.options.group,dragcancel:a(f._dragCancel,f),dragstart:function(t){var r=t.currentTarget,n=parseInt(r.css("marginLeft"),10),a=r.position(),o=i?a.left-n:a.left+r.outerWidth();m(),l.css({top:e(c),left:o}).appendTo(c),this.hint.find(".k-drag-status").removeClass("k-denied").addClass("k-add")},dragend:function(){f._dragEnd(this)},drag:a(f._drag,f)}).on("click"+o,".k-button",function(e){e.preventDefault(),f._removeIndicator(t(this).parent())}).on("click"+o,".k-link",function(e){var n=t(this).parent(),a=f.buildIndicator(n.attr(r.attr("field")),n.attr(r.attr("title")),"asc"==n.attr(r.attr("dir"))?"desc":"asc");n.before(a).remove(),f._change(),e.preventDefault()}),u.bind(["dragend","dragcancel","dragstart","drag"],{dragend:function(){f._dragEnd(this)},dragcancel:a(f._dragCancel,f),dragstart:function(t){var e,r,n;return f.options.allowDrag||f._canDrag(t.currentTarget)?(m(),k.length?(e=k[k.length-1].element,r=parseInt(e.css("marginRight"),10),n=e.position().left+e.outerWidth()+r):n=0,undefined):(t.preventDefault(),undefined)},drag:a(f._drag,f)}),f.dataSource=f.options.dataSource,f.dataSource&&(f._refreshHandler=a(f.refresh,f),f.dataSource.bind("change",f._refreshHandler))},refresh:function(){var e=this,n=e.dataSource;e.groupContainer.empty().append(t.map(n.group()||[],function(t){var n=t.field.replace(g,"\\$1"),a=e.element.find(e.options.filter).filter("["+r.attr("field")+"="+n+"]");return e.buildIndicator(t.field,a.attr(r.attr("title")),t.dir)}).join("")),e._invalidateGroupContainer()},destroy:function(){var t=this;n.fn.destroy.call(t),t.groupContainer.off(o).kendoDropTarget("destroy").kendoDraggable("destroy"),t.options.draggable||t.draggable.destroy(),t.dataSource&&t._refreshHandler&&t.dataSource.unbind("change",t._refreshHandler)},options:{name:"Groupable",filter:"th",draggableElements:"th",messages:{empty:"Drag a column header and drop it here to group by that column"}},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){return d({field:t.replace(/"/g,"'"),dir:n,title:e,ns:r.ns})},descriptors:function(){var e,n,a,i,o,d=this,s=t(".k-group-indicator",d.groupContainer);return e=d.element.find(d.options.filter).map(function(){var e=t(this),a=e.attr(r.attr("aggregates")),d=e.attr(r.attr("field"));if(a&&""!==a)for(n=a.split(","),a=[],i=0,o=n.length;o>i;i++)a.push({field:d,aggregate:n[i]});return a}).toArray(),t.map(s,function(n){return n=t(n),a=n.attr(r.attr("field")),{field:a,dir:n.attr(r.attr("dir")),aggregates:e||[]}})},_removeIndicator:function(t){var e=this;t.remove(),e._invalidateGroupContainer(),e._change()},_change:function(){var t=this;t.dataSource&&t.dataSource.group(t.descriptors())},_dropCuePosition:function(e){var r,n,a,o,d,s=this._dropCuePositions;if(l.is(":visible")&&0!==s.length)return e=Math.ceil(e),r=s[s.length-1],n=r.left,a=r.right,o=parseInt(r.element.css("marginLeft"),10),d=parseInt(r.element.css("marginRight"),10),e>=a&&!i||n>e&&i?e={left:r.element.position().left+(i?-o:r.element.outerWidth()+d),element:r.element,before:!1}:(e=t.grep(s,function(t){return t.left<=e&&e<=t.right||i&&e>t.right})[0],e&&(e={left:i?e.element.position().left+e.element.outerWidth()+d:e.element.position().left-o,element:e.element,before:!0})),e},_drag:function(t){var e=this._dropCuePosition(t.x.location);e&&l.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]||!i&&r>n.position().left||i&&r<n.position().left);return a},_dragEnd:function(e){var n=this,a=e.currentTarget.attr(r.attr("field")),i=n.indicator(a);e!==n.options.draggable&&!e.dropped&&i&&n._removeIndicator(t(i)),n._dragCancel()},_dragCancel:function(){l.remove(),this._dropCuePositions=[]},_intializePositions:function(){var e,n=this,a=t(".k-group-indicator",n.groupContainer);n._dropCuePositions=t.map(a,function(n){return n=t(n),e=r.getOffset(n).left,{left:parseInt(e,10),right:parseInt(e+n.outerWidth(),10),element:n}})},_invalidateGroupContainer:function(){var t=this.groupContainer;t.is(":empty")&&t.html(this.options.messages.empty)}});r.ui.plugin(c)}(window.kendo.jQuery)})}("function"==typeof define&&define.amd?define:function(t,e){return e()});
//@ sourceMappingURL=kendo.groupable.min.js.map