@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 11.1 kB
JavaScript
module.exports=function(e){function t(r){if(i[r])return i[r].exports;var n=i[r]={exports:{},id:r,loaded:!1};return e[r].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}({0:function(e,t,i){e.exports=i(1385)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1018:function(e,t){e.exports=require("./kendo.core")},1077:function(e,t){e.exports=require("./kendo.draganddrop")},1158:function(e,t){e.exports=require("./kendo.resizable")},1385:function(e,t,i){var r,n,s;!function(o,define){n=[i(1018),i(1077),i(1158)],r=o,s="function"==typeof r?r.apply(t,n):r,!(void 0!==s&&(e.exports=s))}(function(){return function(e){function t(t,i){try{return e.contains(t,i)||t==i}catch(r){return!1}}var i=window.kendo,r=i.ui,n=r.Widget,s=r.Draggable,o=i.selectorFromClasses,a="resize",d="reorder",l=".kendoTileLayout",c="k-cursor-ns-resize",p="k-cursor-ew-resize",h="k-cursor-nwse-resize",u="k-cursor-nesw-resize",m="k-cursor-grab",g="k-cursor-grabbing",f=1,w="k-cursor-nesw-resize k-cursor-nwse-resize k-cursor-ew-resize k-cursor-ns-resize",v={wrapper:"k-widget k-tilelayout",item:"k-tilelayout-item k-card",itemHeader:"k-tilelayout-item-header k-card-header",itemHeaderTitle:"k-card-title",itemBody:"k-tilelayout-item-body k-card-body",reorderHint:"k-layout-item-hint k-layout-item-hint-reorder",resizeHint:"k-layout-item-hint k-layout-item-hint-resize"},H=n.extend({init:function(t,i){var r=this;n.fn.init.call(r,t,i),e.cssNumber.gridColumnStart=!0,e.cssNumber.gridColumnEnd=!0,e.cssNumber.gridRowStart=!0,e.cssNumber.gridRowEnd=!0,r.element=e(t).addClass(H.styles.wrapper),r._setWrapperStyles(),r._initContainers(),r._resizable(),r._reorderable()},events:[a,d],options:{name:"TileLayout",columns:null,gap:{columns:16,rows:16},containers:[],resizable:!1,reorderable:!1,columnsWidth:"1fr",rowsHeight:"1fr",height:"",width:""},destroy:function(){n.fn.destroy.call(this),this._draggableInstance&&(this.element.find(".k-tilelayout-item").each(function(){var t=e(this);t.data("kendoDropTarget")&&t.data("kendoDropTarget").destroy()}),this._draggableInstance.destroy(),this._draggableInstance.element=this._draggableInstance.draggable=null),this.resizable&&(this.resizable.destroy(),this.resizable=null),this.element.off(l)},setOptions:function(e){this.destroy(),i.deepExtend(this.options,e),this.element.empty(),this.init(this.element,this.options)},getOptions:function(){var t=e.extend(!0,{},this.options);return t.containers=i.deepExtend([],this.items),t},_initContainers:function(){var t,r,n,s,o,a,d,l,c=this,p=c.options.containers,h=c.element.children(),u=!!h.length;if(c.items=[],c.itemsMap={},u)h.each(function(r,n){t=i.guid();var s=e(n).addClass(H.styles.item).attr("id",t);c._addContainer(s,p[r],r,t)});else for(l=0;l<p.length;l++)t=i.guid(),a=p[l],r=e("<div></div>").addClass(H.styles.item).attr("id",t),s=a.header,s&&(s.template||s.text)&&(n=e("<div></div>").addClass(H.styles.itemHeader),c.options.reorderable&&n.addClass(m),s.text&&(d="<h5 class='"+H.styles.itemHeaderTitle+"'>"+s.text+"</h5>"),n.append(d||i.template(s.template)({})),n.appendTo(r)),o=e("<div></div>").addClass(H.styles.itemBody),o.append(i.template(a.bodyTemplate)({})),o.appendTo(r),r.appendTo(c.element),c._addContainer(r,a,l,t)},_addContainer:function(e,t,r,n){var s=this;t.order=t.order||r,e.attr(i.attr("index"),t.order),t.id=n,s._setContainerCoordinates(e,t),s.itemsMap[n]=t,s.items.push(s.itemsMap[n])},_setWrapperStyles:function(){var e=this,t=e.options;e.element.css({"grid-template-columns":i.format("repeat({0}, minmax(0, {1}))",t.columns,"string"==typeof t.columnsWidth?t.columnsWidth:t.columnsWidth+"px"),"grid-auto-rows":i.format("minmax(0, {0})","string"==typeof t.rowsHeight?t.rowsHeight:t.rowsHeight+"px"),"column-gap":t.gap.columns,width:"string"==typeof t.width?t.width:t.width+"px",height:"string"==typeof t.height?t.height:t.height+"px",padding:t.gap.rows+"px "+t.gap.columns+"px ","row-gap":t.gap.rows})},_setContainerCoordinates:function(e,t){t&&e.css({order:t.order,"grid-column-end":i.format("span {0}",t.colSpan),"grid-row-end":i.format("span {0}",t.rowSpan)}).attr(i.attr("index"),t.order)},_updateContainers:function(){var e,t=this;for(e=0;e<t.items.length;e++)t._setContainerCoordinates(t.element.find("#"+t.items[e].id),t.items[e])},_createResizeHandle:function(t,i,r){var n=this;n._isresizing||(n.resizeHandle&&n.resizeHandle.data("div")[0]!==t[0]&&(n.resizeHandle.off(l).remove(),n.resizeHandle=null),n.resizeHandle||(n.resizeHandle=e('<div class="k-resize-handle"></div>'),n.resizeHandle.appendTo(t)),n._positionResizeHandle(t,i,r))},_positionResizeHandle:function(e,t,r){var n,s=this,o=parseFloat(e.css("borderRightWidth")),a=parseFloat(e.css("borderBottomWidth")),d=e.height(),l=e.width(),m=r?d-6.5-a:0,g=t?l-4.5-o:0,f=9,v=9;t&&r?(v=f=25,m-=12.5,g-=12.5,n=i.support.isRtl(s.element)?u:h):t&&!r?(v=d,n=p):!t&&r&&(f=l,n=c),s.resizeHandle.css({top:m,left:g,height:v,width:f}).attr("side",t).attr("down",r).removeClass(w).addClass(n).data("div",e).show()},_createResizeHint:function(t){var i,r,n,s=this;s.hint||(i=t.css("grid-column-end"),r=t.css("grid-row-end"),n=t.css("order"),s.hint=e("<div class='"+H.styles.resizeHint+"'></div>").css({order:n,"grid-column-end":i,"grid-row-end":r}).insertAfter(t))},_removeResizeHint:function(){this._isresizing||this.hint&&(this.hint.remove(),this.hint=null)},_positionHint:function(e,t){var r=this;e&&r.hint.css("grid-column-end",i.format("span {0}",e)),t&&r.hint.css("grid-row-end",i.format("span {0}",t))},_removeAbsoluteStyles:function(e){e.css("position",""),e.css("left",""),e.css("top",""),e.css("width",""),e.css("height",""),e.css("z-index","")},_positionAbsolutely:function(e){var t,i,r;"absolute"!=e.css("position")&&(t=e.position(),i=e.outerWidth(),r=e.outerHeight(),e.css("position","absolute"),e.css("left",t.left),e.css("top",t.top),e.css("width",i),e.css("height",r),e.css("z-index",2))},_resizable:function(){var t,i,n,s,d,c,p,h=this,u=0,m=0,g=0,w=0,v=0,_=0,y=0;h.options.resizable&&(h.element.on("mousemove"+l,o(H.styles.item),function(t){var i=e(this),r=i[0].getBoundingClientRect(),n=Math.abs(r.right-t.clientX)<16,s=Math.abs(r.bottom-t.clientY)<16;n&&s?h._createResizeHandle(i,!0,!0):n?h._createResizeHandle(i,!0,!1):s&&h._createResizeHandle(i,!1,!0)}),h.resizable=new r.Resizable(h.element,{handle:".k-resize-handle",start:function(r){var o=e(r.currentTarget);c=o.data("div"),n=c.attr("id"),t=o.attr("side"),i=o.attr("down"),p=h.element.css("grid-template-rows").split(" ").length,t&&(s=h._calculateFractionWidth(),y=h._calculateRightEndSide(s),u=r.x.location,g=c.width(),v=parseInt(c.css("grid-column-end").replace("span",""),10)),i&&(d=(h.element[0].scrollHeight-(p+1)*h.options.gap.rows)/p,m=r.y.location,w=c.height(),_=parseInt(c.css("grid-row-end").replace("span",""),10)),h._isresizing=!0},resize:function(e){var r,o,a=0,l=0,p=0,H=0,z=0,x=0,b=0,k=h.element[0].getBoundingClientRect();h._positionAbsolutely(c),h._createResizeHint(c),"true"==t&&(p=e.x.location-u,r=k.left+y-window.scrollX-e.x.location<h.options.gap.columns,o=g+p<s,r||o?p=0:(b=p/(s+h.options.gap.columns),z=p-Math.floor(b)*(s+h.options.gap.columns),a=v+Math.floor(b)+(z>=s/2?1:0),h.itemsMap[n].colSpan=Math.max(a,f))),"true"==i&&(H=e.y.location-m,r=k.bottom+window.scrollY-e.y.location<h.options.gap.rows,o=w+H<=d,r||o?H=0:(x=H/(d+h.options.gap.rows),z=H-Math.floor(x)*(d+h.options.gap.rows),l=_+Math.floor(x)+(z>=d/2?1:0),h.itemsMap[n].rowSpan=Math.max(l,f))),h._positionHint(a,l),h._positionResizeHandle(c,"true"==t,"true"==i),H&&c.css("height",w+H),p&&c.css("width",g+p)},resizeend:function(){h._isresizing=!1,h._setContainerCoordinates(c,h.itemsMap[n]),h._removeAbsoluteStyles(c),h._removeResizeHint(),h.trigger(a,{item:c})}}))},_calculateFractionWidth:function(){var e=this,t=e.element.children().first(),i=e.itemsMap[t.attr("id")].colSpan,r=t.outerWidth();return(r-(i-1)*e.options.gap.columns)/i},_calculateRightEndSide:function(e){var t=this,i=t.options.columns,r=t.options.gap.columns;return i*(e+r)+r},_createDropHint:function(t){this.dropHint=e("<div class='"+H.styles.reorderHint+"'></div>").css({order:t.order,"grid-column-end":t.columnEnd,"grid-row-end":t.rowEnd}).attr(i.attr("index"),t.order).attr("direction",t.direction)},_insertDropHint:function(e,t){"right"==t?this.dropHint.insertAfter(e):this.dropHint.insertBefore(e)},_removeDropHint:function(){this.dropHint&&(this.dropHint.remove(),this.dropHint=null)},_reorderable:function(){var r,n,a,l,c;this.options.reorderable&&(r=this,n=r.element,l=o(H.styles.item),c=o(H.styles.itemHeader),this._draggableInstance=new s(this.element,{filter:c,hint:function(e){var t=e.closest(l),i=t.width(),r=t.height(),n=t.clone();return n.find(c).removeClass(m).addClass(g),n.width(i).height(r)},dragstart:function(t){a=e(t.currentTarget).closest(l)},drag:function(n){var s,o,d,c,p,h,u,m,g=i.elementUnderCursor(n),f=n.sender.hint,w=r._draggableInstance.currentTarget.closest(l);if(t(f[0],g)){if(f.hide(),g=i.elementUnderCursor(n),!t(a[0],g)){if(r.dropHint&&r.dropHint[0]==g[0])return void f.show();s=e(g),s=s.hasClass(H.styles.item)?s:s.closest(l),s.hasClass(H.styles.item)&&(o=s[0].getBoundingClientRect(),d=n.clientX-o.left,c=o.right-n.clientX,p=d>c?"right":"left",h=s.css("order"),r.dropHint&&r.dropHint.attr("direction")!==p?(u=r.dropHint.clone(),u.css("order",h),r.dropHint.remove(),r.dropHint=u,r._insertDropHint(s,p),r.dropHint.attr("direction",p).attr(i.attr("index"),h)):r.dropHint||(m="right"==p?s.next():s.prev(),m[0]!=a[0]&&(r._createDropHint({order:h,columnEnd:w.css("grid-column-end"),rowEnd:w.css("grid-row-end"),direction:p}),a.hide(),r._insertDropHint(s,p))))}f.show()}},dragend:function(t){var n,s,o,a,c,p,h,u,m,g,f,w;if(!r.dropHint)return t.sender.hint.remove(),void r._removeDropHint();for(n=parseInt(r.dropHint.css("order"),10),s=t.currentTarget.closest(l),o=r.element.find(l),a=parseInt(s.css("order"),10),c=s.attr("id"),p=r.element.children(":visible"),h=i.attr("index"),p.sort(function(t,i){var r,n;return t=e(t),i=e(i),r=t.attr(h),n=i.attr(h),void 0===r&&(r=e(t).index()),void 0===n&&(n=e(i).index()),r=parseInt(r,10),n=parseInt(n,10),r>n?1:r<n?-1:0}),n=p.index(r.dropHint[0]),m=Math.max(n,a),u=Math.min(n,a),r.itemsMap[c].order=n,f=n>a?"right":"left","left"==f?m--:u++,w=u;w<=m;w++)g=o.filter("["+i.attr("index")+"='"+w+"']"),r.itemsMap[g.attr("id")].order+="left"==f?1:-1;s.show(),r._updateContainers(),t.sender.hint.remove(),r._removeDropHint(),r.trigger(d,{newIndex:n,oldIndex:a,container:s})}}),n.find(l).kendoDropTarget({dragenter:function(t){var i,n,s,o,d,c,p;if(!r._isresizing&&(i=e(t.dropTarget),n=r._draggableInstance.currentTarget.closest(l),a[0]!=i[0])){if(s=i[0].getBoundingClientRect(),o=t.clientX-s.left,d=s.right-t.clientX,p=o>d?"right":"left",c="right"==p?i.next():i.prev(),c[0]==a[0])return;r._removeDropHint(),a.hide(),r._createDropHint({order:i.css("order"),columnEnd:n.css("grid-column-end"),rowEnd:n.css("grid-row-end"),direction:p}),a.hide(),r._insertDropHint(i,p)}}}))}});r.plugin(H),e.extend(!0,H,{styles:v})}(window.kendo.jQuery),window.kendo},i(3))}});