pandorafms/pandora_console/include/javascript/gridstack.jQueryUI.js

111 lines
3.1 KiB
JavaScript

/** gridstack.js 1.2.1 - 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.GridStack, exports);
} else {
factory(jQuery, GridStack, window);
}
})(function($, GridStack, scope) {
/**
* @class JQueryUIGridStackDragDropPlugin
* jQuery UI implementation of drag'n'drop gridstack plugin.
*/
function JQueryUIGridStackDragDropPlugin(grid) {
GridStack.DragDropPlugin.call(this, grid);
}
GridStack.DragDropPlugin.registerPlugin(JQueryUIGridStackDragDropPlugin);
JQueryUIGridStackDragDropPlugin.prototype = Object.create(
GridStack.DragDropPlugin.prototype
);
JQueryUIGridStackDragDropPlugin.prototype.constructor = JQueryUIGridStackDragDropPlugin;
JQueryUIGridStackDragDropPlugin.prototype.resizable = function(el, opts) {
el = $(el);
if (opts === "disable" || opts === "enable" || opts === "destroy") {
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" || opts === "destroy") {
el.draggable(opts);
} else {
el.draggable(
$.extend({}, this.grid.opts.draggable, {
containment:
this.grid.opts.isNested && !this.grid.opts.dragOut
? this.grid.$el.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;
});