Files
librenms-librenms/dist/jquery.gridster.min.js

4 lines
36 KiB
JavaScript
Raw Normal View History

2012-12-10 14:33:25 -08:00
/*! gridster.js - v0.1.0 - 2012-12-10
2012-07-27 13:51:15 +02:00
* http://gridster.net/
2012-07-27 13:29:50 +02:00
* Copyright (c) 2012 ducksboard; Licensed MIT */
2012-12-10 14:33:25 -08:00
(function(e,t,n,r){function i(t){return t[0]&&e.isPlainObject(t[0])?this.data=t[0]:this.el=t,this.isCoords=!0,this.coords={},this.init(),this}var s=i.prototype;s.init=function(){this.set(),this.original_coords=this.get()},s.set=function(e,t){var n=this.el;n&&!e&&(this.data=n.offset(),this.data.width=n.width(),this.data.height=n.height());if(n&&e&&!t){var r=n.offset();this.data.top=r.top,this.data.left=r.left}var i=this.data;return this.coords.x1=i.left,this.coords.y1=i.top,this.coords.x2=i.left+i.width,this.coords.y2=i.top+i.height,this.coords.cx=i.left+i.width/2,this.coords.cy=i.top+i.height/2,this.coords.width=i.width,this.coords.height=i.height,this.coords.el=n||!1,this},s.update=function(t){if(!t&&!this.el)return this;if(t){var n=e.extend({},this.data,t);return this.data=n,this.set(!0,!0)}return this.set(!0),this},s.get=function(){return this.coords},e.fn.coords=function(){if(this.data("coords"))return this.data("coords");var e=new i(this,arguments[0]);return this.data("coords",e),e}})(jQuery,window,document),function(e,t,n,r){function s(t,n,r){this.options=e.extend(i,r),this.$element=t,this.last_colliders=[],this.last_colliders_coords=[],typeof n=="string"||n instanceof jQuery?this.$colliders=e(n,this.options.colliders_context).not(this.$element):this.colliders=e(n),this.init()}var i={colliders_context:n.body},o=s.prototype;o.init=function(){this.find_collisions()},o.overlaps=function(e,t){var n=!1,r=!1;if(t.x1>=e.x1&&t.x1<=e.x2||t.x2>=e.x1&&t.x2<=e.x2||e.x1>=t.x1&&e.x2<=t.x2)n=!0;if(t.y1>=e.y1&&t.y1<=e.y2||t.y2>=e.y1&&t.y2<=e.y2||e.y1>=t.y1&&e.y2<=t.y2)r=!0;return n&&r},o.detect_overlapping_region=function(e,t){var n="",r="";return e.y1>t.cy&&e.y1<t.y2&&(n="N"),e.y2>t.y1&&e.y2<t.cy&&(n="S"),e.x1>t.cx&&e.x1<t.x2&&(r="W"),e.x2>t.x1&&e.x2<t.cx&&(r="E"),n+r||"C"},o.calculate_overlapped_area_coords=function(t,n){var r=Math.max(t.x1,n.x1),i=Math.max(t.y1,n.y1),s=Math.min(t.x2,n.x2),o=Math.min(t.y2,n.y2);return e({left:r,top:i,width:s-r,height:o-i}).coords().get()},o.calculate_overlapped_area=function(e){return e.width*e.height},o.manage_colliders_start_stop=function(t,n,r){var i=this.last_colliders_coords;for(var s=0,o=i.length;s<o;s++)e.inArray(i[s],t)===-1&&n.call(this,i[s]);for(var u=0,a=t.length;u<a;u++)e.inArray(t[u],i)===-1&&r.call(this,t[u])},o.find_collisions=function(t){var n=this,r=[],i=[],s=this.colliders||this.$colliders,o=s.length,u=n.$element.coords().update(t||!1).get();while(o--){var a=n.$colliders?e(s[o]):s[o],f=a.isCoords?a:a.coords(),l=f.get(),c=n.overlaps(u,l);if(!c)continue;var h=n.detect_overlapping_region(u,l);if(h==="C"){var p=n.calculate_overlapped_area_coords(u,l),d=n.calculate_overlapped_area(p),v={area:d,area_coords:p,region:h,coords:l,player_coords:u,el:a};n.options.on_overlap&&n.options.on_overlap.call(this,v),r.push(f),i.push(v)}}return(n.options.on_overlap_stop||n.options.on_overlap_start)&&this.manage_colliders_start_stop(r,n.options.on_overlap_stop,n.options.on_overlap_start),this.last_colliders_coords=r,i},o.get_closest_colliders=function(e){var t=this.find_collisions(e);return t.sort(function(e,t){return e.region==="C"&&t.region==="C"?e.coords.y1<t.coords.y1||e.coords.x1<t.coords.x1?-1:1:e.area<t.area?1:1}),t},e.fn.collision=function(e,t){return new s(this,e,t)}}(jQuery,window,document),function(e,t){e.debounce=function(e,t,n){var r;return function(){var i=this,s=arguments,o=function(){r=null,n||e.apply(i,s)};n&&!r&&e.apply(i,s),clearTimeout(r),r=setTimeout(o,t)}},e.throttle=function(e,t){var n,r,i,s,o,u,a=debounce(function(){o=s=!1},t);return function(){n=this,r=arguments;var f=function(){i=null,o&&e.apply(n,r),a()};return i||(i=setTimeout(f,t)),s?o=!0:u=e.apply(n,r),a(),s=!0,u}}}(window),function(e,t,n,r){function a(t,r){this.options=e.extend({},i,r),this.$body=e(n.body),this.$container=e(t),this.$dragitems=e(this.options.items,this.$container),this.is_dragging=!1,this.player_min_left=0+this.options.offset_left,this.init()}var i={items:".gs_w",distance:1,limit:!0,offset_left:0,autoscroll:!0,ignore_dragging:["INPUT","TEXTAREA","SELECT","BUTTON"],handle:null},s=e(t),o="ontouchstart"in