90 lines
3 KiB
JavaScript
90 lines
3 KiB
JavaScript
/** gridstack.js 0.6.4 - JQuery UI Drag&Drop plugin @preserve */
|
|
/**
|
|
* https://gridstackjs.com/
|
|
* (c) 2014-2020 Alain Dumesny, Dylan Weiss, Pavel Reznikov
|
|
* gridstack.js may be freely distributed under the MIT license.
|
|
*/
|
|
(function(factory) {
|
|
if (typeof define === 'function' && define.amd) {
|
|
define(['jquery', 'gridstack', 'exports'], factory);
|
|
} else if (typeof exports !== 'undefined') {
|
|
try { jQuery = require('jquery'); } catch (e) {}
|
|
try { gridstack = require('gridstack'); } catch (e) {}
|
|
factory(jQuery, gridstack.GridStackUI, exports);
|
|
} else {
|
|
factory(jQuery, GridStackUI, window);
|
|
}
|
|
})(function($, GridStackUI, scope) {
|
|
/**
|
|
* @class JQueryUIGridStackDragDropPlugin
|
|
* jQuery UI implementation of drag'n'drop gridstack plugin.
|
|
*/
|
|
function JQueryUIGridStackDragDropPlugin(grid) {
|
|
GridStackUI.GridStackDragDropPlugin.call(this, grid);
|
|
}
|
|
|
|
GridStackUI.GridStackDragDropPlugin.registerPlugin(JQueryUIGridStackDragDropPlugin);
|
|
|
|
JQueryUIGridStackDragDropPlugin.prototype = Object.create(GridStackUI.GridStackDragDropPlugin.prototype);
|
|
JQueryUIGridStackDragDropPlugin.prototype.constructor = JQueryUIGridStackDragDropPlugin;
|
|
|
|
JQueryUIGridStackDragDropPlugin.prototype.resizable = function(el, opts) {
|
|
el = $(el);
|
|
if (opts === 'disable' || opts === 'enable') {
|
|
el.resizable(opts);
|
|
} else if (opts === 'option') {
|
|
var key = arguments[2];
|
|
var value = arguments[3];
|
|
el.resizable(opts, key, value);
|
|
} else {
|
|
var handles = el.data('gs-resize-handles') ? el.data('gs-resize-handles') :
|
|
this.grid.opts.resizable.handles;
|
|
el.resizable($.extend({}, this.grid.opts.resizable, {
|
|
handles: handles
|
|
}, {
|
|
start: opts.start || function() {},
|
|
stop: opts.stop || function() {},
|
|
resize: opts.resize || function() {}
|
|
}));
|
|
}
|
|
return this;
|
|
};
|
|
|
|
JQueryUIGridStackDragDropPlugin.prototype.draggable = function(el, opts) {
|
|
el = $(el);
|
|
if (opts === 'disable' || opts === 'enable') {
|
|
el.draggable(opts);
|
|
} else {
|
|
el.draggable($.extend({}, this.grid.opts.draggable, {
|
|
containment: (this.grid.opts.isNested && !this.grid.opts.dragOut) ?
|
|
this.grid.container.parent() :
|
|
(this.grid.opts.draggable.containment || null),
|
|
start: opts.start || function() {},
|
|
stop: opts.stop || function() {},
|
|
drag: opts.drag || function() {}
|
|
}));
|
|
}
|
|
return this;
|
|
};
|
|
|
|
JQueryUIGridStackDragDropPlugin.prototype.droppable = function(el, opts) {
|
|
el = $(el);
|
|
el.droppable(opts);
|
|
return this;
|
|
};
|
|
|
|
JQueryUIGridStackDragDropPlugin.prototype.isDroppable = function(el, opts) {
|
|
el = $(el);
|
|
return Boolean(el.data('droppable'));
|
|
};
|
|
|
|
JQueryUIGridStackDragDropPlugin.prototype.on = function(el, eventName, callback) {
|
|
$(el).on(eventName, callback);
|
|
return this;
|
|
};
|
|
|
|
scope.JQueryUIGridStackDragDropPlugin = JQueryUIGridStackDragDropPlugin;
|
|
|
|
return JQueryUIGridStackDragDropPlugin;
|
|
});
|