136 lines
3.5 KiB
JavaScript
136 lines
3.5 KiB
JavaScript
/**
|
|
* gridstack.js 0.3.0
|
|
* http://troolee.github.io/gridstack.js/
|
|
* (c) 2014-2016 Pavel Reznikov, Dylan Weiss
|
|
* gridstack.js may be freely distributed under the MIT license.
|
|
* @preserve
|
|
*/
|
|
(function(factory) {
|
|
if (typeof define === "function" && define.amd) {
|
|
define([
|
|
"jquery",
|
|
"lodash",
|
|
"gridstack",
|
|
"jquery-ui/data",
|
|
"jquery-ui/disable-selection",
|
|
"jquery-ui/focusable",
|
|
"jquery-ui/form",
|
|
"jquery-ui/ie",
|
|
"jquery-ui/keycode",
|
|
"jquery-ui/labels",
|
|
"jquery-ui/jquery-1-7",
|
|
"jquery-ui/plugin",
|
|
"jquery-ui/safe-active-element",
|
|
"jquery-ui/safe-blur",
|
|
"jquery-ui/scroll-parent",
|
|
"jquery-ui/tabbable",
|
|
"jquery-ui/unique-id",
|
|
"jquery-ui/version",
|
|
"jquery-ui/widget",
|
|
"jquery-ui/widgets/mouse",
|
|
"jquery-ui/widgets/draggable",
|
|
"jquery-ui/widgets/droppable",
|
|
"jquery-ui/widgets/resizable"
|
|
], factory);
|
|
} else if (typeof exports !== "undefined") {
|
|
try {
|
|
jQuery = require("jquery");
|
|
} catch (e) {}
|
|
try {
|
|
_ = require("lodash");
|
|
} catch (e) {}
|
|
try {
|
|
GridStackUI = require("gridstack");
|
|
} catch (e) {}
|
|
factory(jQuery, _, GridStackUI);
|
|
} else {
|
|
factory(jQuery, _, GridStackUI);
|
|
}
|
|
})(function($, _, GridStackUI) {
|
|
var scope = window;
|
|
|
|
/**
|
|
* @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 {
|
|
el.resizable(
|
|
_.extend({}, this.grid.opts.resizable, {
|
|
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.container.parent()
|
|
: null,
|
|
start: opts.start || function() {},
|
|
stop: opts.stop || function() {},
|
|
drag: opts.drag || function() {}
|
|
})
|
|
);
|
|
}
|
|
return this;
|
|
};
|
|
|
|
JQueryUIGridStackDragDropPlugin.prototype.droppable = function(el, opts) {
|
|
el = $(el);
|
|
if (opts === "disable" || opts === "enable") {
|
|
el.droppable(opts);
|
|
} else {
|
|
el.droppable({
|
|
accept: opts.accept
|
|
});
|
|
}
|
|
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;
|
|
};
|
|
|
|
return JQueryUIGridStackDragDropPlugin;
|
|
});
|