gridstack 4.2.6 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -19
- package/dist/es5/gridstack-dd.d.ts +35 -0
- package/dist/es5/gridstack-dd.js +683 -0
- package/dist/es5/gridstack-dd.js.map +1 -0
- package/dist/es5/gridstack-ddi.d.ts +17 -0
- package/dist/es5/gridstack-ddi.js +31 -0
- package/dist/es5/gridstack-ddi.js.map +1 -0
- package/dist/es5/gridstack-engine.d.ts +93 -0
- package/dist/es5/gridstack-engine.js +955 -0
- package/dist/es5/gridstack-engine.js.map +1 -0
- package/dist/es5/gridstack-h5.d.ts +10 -0
- package/dist/es5/gridstack-h5.js +3 -0
- package/dist/es5/gridstack-h5.js.LICENSE.txt +7 -0
- package/dist/es5/gridstack-h5.js.map +1 -0
- package/dist/es5/gridstack-jq.d.ts +10 -0
- package/dist/es5/gridstack-jq.js +3 -0
- package/dist/es5/gridstack-jq.js.LICENSE.txt +99 -0
- package/dist/es5/gridstack-jq.js.map +1 -0
- package/dist/{gridstack-poly.js → es5/gridstack-poly.js} +152 -1
- package/dist/es5/gridstack-static.d.ts +9 -0
- package/dist/es5/gridstack-static.js +3 -0
- package/dist/es5/gridstack-static.js.LICENSE.txt +7 -0
- package/dist/es5/gridstack-static.js.map +1 -0
- package/dist/es5/gridstack.d.ts +346 -0
- package/dist/es5/gridstack.js +1482 -0
- package/dist/es5/gridstack.js.map +1 -0
- package/dist/es5/h5/dd-base-impl.d.ts +20 -0
- package/dist/es5/h5/dd-base-impl.js +43 -0
- package/dist/es5/h5/dd-base-impl.js.map +1 -0
- package/dist/es5/h5/dd-draggable.d.ts +30 -0
- package/dist/es5/h5/dd-draggable.js +319 -0
- package/dist/es5/h5/dd-draggable.js.map +1 -0
- package/dist/es5/h5/dd-droppable.d.ts +23 -0
- package/dist/es5/h5/dd-droppable.js +182 -0
- package/dist/es5/h5/dd-droppable.js.map +1 -0
- package/dist/es5/h5/dd-element.d.ts +27 -0
- package/dist/es5/h5/dd-element.js +96 -0
- package/dist/es5/h5/dd-element.js.map +1 -0
- package/dist/es5/h5/dd-manager.d.ts +8 -0
- package/dist/es5/h5/dd-manager.js +14 -0
- package/dist/es5/h5/dd-manager.js.map +1 -0
- package/dist/es5/h5/dd-resizable-handle.d.ts +14 -0
- package/dist/es5/h5/dd-resizable-handle.js +83 -0
- package/dist/es5/h5/dd-resizable-handle.js.map +1 -0
- package/dist/es5/h5/dd-resizable.d.ts +29 -0
- package/dist/es5/h5/dd-resizable.js +302 -0
- package/dist/es5/h5/dd-resizable.js.map +1 -0
- package/dist/es5/h5/dd-utils.d.ts +17 -0
- package/dist/es5/h5/dd-utils.js +99 -0
- package/dist/es5/h5/dd-utils.js.map +1 -0
- package/dist/es5/h5/gridstack-dd-native.d.ts +26 -0
- package/dist/es5/h5/gridstack-dd-native.js +175 -0
- package/dist/es5/h5/gridstack-dd-native.js.map +1 -0
- package/dist/es5/jq/gridstack-dd-jqueryui.d.ts +22 -0
- package/dist/es5/jq/gridstack-dd-jqueryui.js +162 -0
- package/dist/es5/jq/gridstack-dd-jqueryui.js.map +1 -0
- package/dist/es5/types.d.ts +258 -0
- package/dist/es5/types.js +7 -0
- package/dist/es5/types.js.map +1 -0
- package/dist/es5/utils.d.ts +73 -0
- package/dist/es5/utils.js +444 -0
- package/dist/es5/utils.js.map +1 -0
- package/dist/gridstack-dd.d.ts +1 -1
- package/dist/gridstack-dd.js +16 -8
- package/dist/gridstack-dd.js.map +1 -1
- package/dist/gridstack-ddi.d.ts +1 -1
- package/dist/gridstack-ddi.js +1 -1
- package/dist/gridstack-ddi.js.map +1 -1
- package/dist/gridstack-engine.d.ts +3 -2
- package/dist/gridstack-engine.js +101 -61
- package/dist/gridstack-engine.js.map +1 -1
- package/dist/gridstack-extra.css +800 -530
- package/dist/gridstack-extra.min.css +1 -1
- package/dist/gridstack-h5.d.ts +1 -1
- package/dist/gridstack-h5.js +1 -1
- package/dist/gridstack-h5.js.LICENSE.txt +1 -1
- package/dist/gridstack-h5.js.map +1 -1
- package/dist/gridstack-jq.d.ts +1 -1
- package/dist/gridstack-jq.js +1 -1
- package/dist/gridstack-jq.js.LICENSE.txt +1 -1
- package/dist/gridstack-jq.js.map +1 -1
- package/dist/gridstack-static.d.ts +1 -1
- package/dist/gridstack-static.js +1 -1
- package/dist/gridstack-static.js.LICENSE.txt +1 -1
- package/dist/gridstack-static.js.map +1 -1
- package/dist/gridstack.css +305 -228
- package/dist/gridstack.d.ts +1 -1
- package/dist/gridstack.js +19 -12
- package/dist/gridstack.js.map +1 -1
- package/dist/gridstack.min.css +1 -1
- package/dist/h5/dd-base-impl.d.ts +1 -1
- package/dist/h5/dd-base-impl.js +1 -1
- package/dist/h5/dd-base-impl.js.map +1 -1
- package/dist/h5/dd-draggable.d.ts +1 -1
- package/dist/h5/dd-draggable.js +1 -1
- package/dist/h5/dd-draggable.js.map +1 -1
- package/dist/h5/dd-droppable.d.ts +1 -1
- package/dist/h5/dd-droppable.js +1 -1
- package/dist/h5/dd-droppable.js.map +1 -1
- package/dist/h5/dd-element.d.ts +1 -1
- package/dist/h5/dd-element.js +1 -1
- package/dist/h5/dd-element.js.map +1 -1
- package/dist/h5/dd-manager.d.ts +1 -1
- package/dist/h5/dd-manager.js +1 -1
- package/dist/h5/dd-manager.js.map +1 -1
- package/dist/h5/dd-resizable-handle.d.ts +1 -1
- package/dist/h5/dd-resizable-handle.js +1 -1
- package/dist/h5/dd-resizable-handle.js.map +1 -1
- package/dist/h5/dd-resizable.d.ts +1 -1
- package/dist/h5/dd-resizable.js +2 -1
- package/dist/h5/dd-resizable.js.map +1 -1
- package/dist/h5/dd-utils.d.ts +1 -1
- package/dist/h5/dd-utils.js +1 -1
- package/dist/h5/dd-utils.js.map +1 -1
- package/dist/h5/gridstack-dd-native.d.ts +1 -1
- package/dist/h5/gridstack-dd-native.js +1 -1
- package/dist/h5/gridstack-dd-native.js.map +1 -1
- package/dist/jq/gridstack-dd-jqueryui.js.map +1 -1
- package/dist/src/gridstack-extra.scss +7 -5
- package/dist/src/gridstack.scss +9 -7
- package/dist/types.d.ts +5 -2
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +3 -1
- package/dist/utils.js +7 -5
- package/dist/utils.js.map +1 -1
- package/doc/CHANGES.md +26 -0
- package/package.json +6 -5
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.DDUtils = void 0;
|
|
15
|
+
/**
|
|
16
|
+
* dd-utils.ts 4.4.0
|
|
17
|
+
* Copyright (c) 2021 Alain Dumesny - see GridStack root license
|
|
18
|
+
*/
|
|
19
|
+
var DDUtils = /** @class */ (function () {
|
|
20
|
+
function DDUtils() {
|
|
21
|
+
}
|
|
22
|
+
DDUtils.clone = function (el) {
|
|
23
|
+
var node = el.cloneNode(true);
|
|
24
|
+
node.removeAttribute('id');
|
|
25
|
+
return node;
|
|
26
|
+
};
|
|
27
|
+
DDUtils.appendTo = function (el, parent) {
|
|
28
|
+
var parentNode;
|
|
29
|
+
if (typeof parent === 'string') {
|
|
30
|
+
parentNode = document.querySelector(parent);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
parentNode = parent;
|
|
34
|
+
}
|
|
35
|
+
if (parentNode) {
|
|
36
|
+
parentNode.appendChild(el);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
DDUtils.setPositionRelative = function (el) {
|
|
40
|
+
if (!(/^(?:r|a|f)/).test(window.getComputedStyle(el).position)) {
|
|
41
|
+
el.style.position = "relative";
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
DDUtils.addElStyles = function (el, styles) {
|
|
45
|
+
if (styles instanceof Object) {
|
|
46
|
+
var _loop_1 = function (s) {
|
|
47
|
+
if (styles.hasOwnProperty(s)) {
|
|
48
|
+
if (Array.isArray(styles[s])) {
|
|
49
|
+
// support fallback value
|
|
50
|
+
styles[s].forEach(function (val) {
|
|
51
|
+
el.style[s] = val;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
el.style[s] = styles[s];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
for (var s in styles) {
|
|
60
|
+
_loop_1(s);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
DDUtils.initEvent = function (e, info) {
|
|
65
|
+
var evt = { type: info.type };
|
|
66
|
+
var obj = {
|
|
67
|
+
button: 0,
|
|
68
|
+
which: 0,
|
|
69
|
+
buttons: 1,
|
|
70
|
+
bubbles: true,
|
|
71
|
+
cancelable: true,
|
|
72
|
+
target: info.target ? info.target : e.target
|
|
73
|
+
};
|
|
74
|
+
// don't check for `instanceof DragEvent` as Safari use MouseEvent #1540
|
|
75
|
+
if (e.dataTransfer) {
|
|
76
|
+
evt['dataTransfer'] = e.dataTransfer; // workaround 'readonly' field.
|
|
77
|
+
}
|
|
78
|
+
['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].forEach(function (p) { return evt[p] = e[p]; }); // keys
|
|
79
|
+
['pageX', 'pageY', 'clientX', 'clientY', 'screenX', 'screenY'].forEach(function (p) { return evt[p] = e[p]; }); // point info
|
|
80
|
+
return __assign(__assign({}, evt), obj);
|
|
81
|
+
};
|
|
82
|
+
DDUtils.isEventSupportPassiveOption = ((function () {
|
|
83
|
+
var supportsPassive = false;
|
|
84
|
+
var passiveTest = function () {
|
|
85
|
+
// do nothing
|
|
86
|
+
};
|
|
87
|
+
document.addEventListener('test', passiveTest, {
|
|
88
|
+
get passive() {
|
|
89
|
+
supportsPassive = true;
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
document.removeEventListener('test', passiveTest);
|
|
94
|
+
return supportsPassive;
|
|
95
|
+
})());
|
|
96
|
+
return DDUtils;
|
|
97
|
+
}());
|
|
98
|
+
exports.DDUtils = DDUtils;
|
|
99
|
+
//# sourceMappingURL=dd-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dd-utils.js","sourceRoot":"","sources":["../../../src/h5/dd-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * dd-utils.ts 4.4.0\n * Copyright (c) 2021 Alain Dumesny - see GridStack root license\n */\nexport class DDUtils {\n\n public static isEventSupportPassiveOption = ((() => {\n let supportsPassive = false;\n let passiveTest = () => {\n // do nothing\n };\n document.addEventListener('test', passiveTest, {\n get passive() {\n supportsPassive = true;\n return true;\n }\n });\n document.removeEventListener('test', passiveTest);\n return supportsPassive;\n })());\n\n public static clone(el: HTMLElement): HTMLElement {\n const node = el.cloneNode(true) as HTMLElement;\n node.removeAttribute('id');\n return node;\n }\n\n public static appendTo(el: HTMLElement, parent: string | HTMLElement | Node): void {\n let parentNode: HTMLElement;\n if (typeof parent === 'string') {\n parentNode = document.querySelector(parent as string);\n } else {\n parentNode = parent as HTMLElement;\n }\n if (parentNode) {\n parentNode.appendChild(el);\n }\n }\n\n public static setPositionRelative(el: HTMLElement): void {\n if (!(/^(?:r|a|f)/).test(window.getComputedStyle(el).position)) {\n el.style.position = \"relative\";\n }\n }\n\n public static addElStyles(el: HTMLElement, styles: { [prop: string]: string | string[] }): void {\n if (styles instanceof Object) {\n for (const s in styles) {\n if (styles.hasOwnProperty(s)) {\n if (Array.isArray(styles[s])) {\n // support fallback value\n (styles[s] as string[]).forEach(val => {\n el.style[s] = val;\n });\n } else {\n el.style[s] = styles[s];\n }\n }\n }\n }\n }\n\n public static initEvent<T>(e: DragEvent | MouseEvent, info: { type: string; target?: EventTarget }): T {\n const evt = { type: info.type };\n const obj = {\n button: 0,\n which: 0,\n buttons: 1,\n bubbles: true,\n cancelable: true,\n target: info.target ? info.target : e.target\n };\n // don't check for `instanceof DragEvent` as Safari use MouseEvent #1540\n if ((e as DragEvent).dataTransfer) {\n evt['dataTransfer'] = (e as DragEvent).dataTransfer; // workaround 'readonly' field.\n }\n ['altKey','ctrlKey','metaKey','shiftKey'].forEach(p => evt[p] = e[p]); // keys\n ['pageX','pageY','clientX','clientY','screenX','screenY'].forEach(p => evt[p] = e[p]); // point info\n return {...evt, ...obj} as unknown as T;\n }\n}"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gridstack-dd-native.ts 4.4.0
|
|
3
|
+
* Copyright (c) 2021 Alain Dumesny - see GridStack root license
|
|
4
|
+
*/
|
|
5
|
+
import { DDElementHost } from './dd-element';
|
|
6
|
+
import { GridStackElement } from '../gridstack';
|
|
7
|
+
import { GridStackDD, DDOpts, DDKey, DDDropOpt, DDCallback, DDValue } from '../gridstack-dd';
|
|
8
|
+
import { GridItemHTMLElement, DDDragInOpt } from '../types';
|
|
9
|
+
export * from '../gridstack-dd';
|
|
10
|
+
/**
|
|
11
|
+
* HTML 5 Native DragDrop based drag'n'drop plugin.
|
|
12
|
+
*/
|
|
13
|
+
export declare class GridStackDDNative extends GridStackDD {
|
|
14
|
+
resizable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDDNative;
|
|
15
|
+
draggable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDDNative;
|
|
16
|
+
dragIn(el: GridStackElement, opts: DDDragInOpt): GridStackDDNative;
|
|
17
|
+
droppable(el: GridItemHTMLElement, opts: DDOpts | DDDropOpt, key?: DDKey, value?: DDValue): GridStackDDNative;
|
|
18
|
+
/** true if element is droppable */
|
|
19
|
+
isDroppable(el: DDElementHost): boolean;
|
|
20
|
+
/** true if element is draggable */
|
|
21
|
+
isDraggable(el: DDElementHost): boolean;
|
|
22
|
+
/** true if element is draggable */
|
|
23
|
+
isResizable(el: DDElementHost): boolean;
|
|
24
|
+
on(el: GridItemHTMLElement, name: string, callback: DDCallback): GridStackDDNative;
|
|
25
|
+
off(el: GridItemHTMLElement, name: string): GridStackDD;
|
|
26
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* gridstack-dd-native.ts 4.4.0
|
|
4
|
+
* Copyright (c) 2021 Alain Dumesny - see GridStack root license
|
|
5
|
+
*/
|
|
6
|
+
var __extends = (this && this.__extends) || (function () {
|
|
7
|
+
var extendStatics = function (d, b) {
|
|
8
|
+
extendStatics = Object.setPrototypeOf ||
|
|
9
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
10
|
+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
11
|
+
return extendStatics(d, b);
|
|
12
|
+
};
|
|
13
|
+
return function (d, b) {
|
|
14
|
+
extendStatics(d, b);
|
|
15
|
+
function __() { this.constructor = d; }
|
|
16
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
17
|
+
};
|
|
18
|
+
})();
|
|
19
|
+
var __assign = (this && this.__assign) || function () {
|
|
20
|
+
__assign = Object.assign || function(t) {
|
|
21
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
22
|
+
s = arguments[i];
|
|
23
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
24
|
+
t[p] = s[p];
|
|
25
|
+
}
|
|
26
|
+
return t;
|
|
27
|
+
};
|
|
28
|
+
return __assign.apply(this, arguments);
|
|
29
|
+
};
|
|
30
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
31
|
+
if (k2 === undefined) k2 = k;
|
|
32
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
33
|
+
}) : (function(o, m, k, k2) {
|
|
34
|
+
if (k2 === undefined) k2 = k;
|
|
35
|
+
o[k2] = m[k];
|
|
36
|
+
}));
|
|
37
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
38
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
39
|
+
};
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.GridStackDDNative = void 0;
|
|
42
|
+
var dd_manager_1 = require("./dd-manager");
|
|
43
|
+
var dd_element_1 = require("./dd-element");
|
|
44
|
+
var gridstack_dd_1 = require("../gridstack-dd");
|
|
45
|
+
var utils_1 = require("../utils");
|
|
46
|
+
// export our base class (what user should use) and all associated types
|
|
47
|
+
__exportStar(require("../gridstack-dd"), exports);
|
|
48
|
+
/**
|
|
49
|
+
* HTML 5 Native DragDrop based drag'n'drop plugin.
|
|
50
|
+
*/
|
|
51
|
+
var GridStackDDNative = /** @class */ (function (_super) {
|
|
52
|
+
__extends(GridStackDDNative, _super);
|
|
53
|
+
function GridStackDDNative() {
|
|
54
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
55
|
+
}
|
|
56
|
+
GridStackDDNative.prototype.resizable = function (el, opts, key, value) {
|
|
57
|
+
this._getDDElements(el).forEach(function (dEl) {
|
|
58
|
+
var _a;
|
|
59
|
+
if (opts === 'disable' || opts === 'enable') {
|
|
60
|
+
dEl.ddResizable && dEl.ddResizable[opts](); // can't create DD as it requires options for setupResizable()
|
|
61
|
+
}
|
|
62
|
+
else if (opts === 'destroy') {
|
|
63
|
+
dEl.ddResizable && dEl.cleanResizable();
|
|
64
|
+
}
|
|
65
|
+
else if (opts === 'option') {
|
|
66
|
+
dEl.setupResizable((_a = {}, _a[key] = value, _a));
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
var grid = dEl.el.gridstackNode.grid;
|
|
70
|
+
var handles = dEl.el.getAttribute('gs-resize-handles') ? dEl.el.getAttribute('gs-resize-handles') : grid.opts.resizable.handles;
|
|
71
|
+
dEl.setupResizable(__assign(__assign(__assign({}, grid.opts.resizable), { handles: handles }), {
|
|
72
|
+
start: opts.start,
|
|
73
|
+
stop: opts.stop,
|
|
74
|
+
resize: opts.resize
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
return this;
|
|
79
|
+
};
|
|
80
|
+
GridStackDDNative.prototype.draggable = function (el, opts, key, value) {
|
|
81
|
+
this._getDDElements(el).forEach(function (dEl) {
|
|
82
|
+
var _a;
|
|
83
|
+
if (opts === 'disable' || opts === 'enable') {
|
|
84
|
+
dEl.ddDraggable && dEl.ddDraggable[opts](); // can't create DD as it requires options for setupDraggable()
|
|
85
|
+
}
|
|
86
|
+
else if (opts === 'destroy') {
|
|
87
|
+
dEl.ddDraggable && dEl.cleanDraggable();
|
|
88
|
+
}
|
|
89
|
+
else if (opts === 'option') {
|
|
90
|
+
dEl.setupDraggable((_a = {}, _a[key] = value, _a));
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
var grid = dEl.el.gridstackNode.grid;
|
|
94
|
+
dEl.setupDraggable(__assign(__assign({}, grid.opts.draggable), {
|
|
95
|
+
containment: (grid.opts._isNested && !grid.opts.dragOut)
|
|
96
|
+
? grid.el.parentElement
|
|
97
|
+
: (grid.opts.draggable.containment || null),
|
|
98
|
+
start: opts.start,
|
|
99
|
+
stop: opts.stop,
|
|
100
|
+
drag: opts.drag
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
return this;
|
|
105
|
+
};
|
|
106
|
+
GridStackDDNative.prototype.dragIn = function (el, opts) {
|
|
107
|
+
this._getDDElements(el).forEach(function (dEl) { return dEl.setupDraggable(opts); });
|
|
108
|
+
return this;
|
|
109
|
+
};
|
|
110
|
+
GridStackDDNative.prototype.droppable = function (el, opts, key, value) {
|
|
111
|
+
if (typeof opts.accept === 'function' && !opts._accept) {
|
|
112
|
+
opts._accept = opts.accept;
|
|
113
|
+
opts.accept = function (el) { return opts._accept(el); };
|
|
114
|
+
}
|
|
115
|
+
this._getDDElements(el).forEach(function (dEl) {
|
|
116
|
+
var _a;
|
|
117
|
+
if (opts === 'disable' || opts === 'enable') {
|
|
118
|
+
dEl.ddDroppable && dEl.ddDroppable[opts]();
|
|
119
|
+
}
|
|
120
|
+
else if (opts === 'destroy') {
|
|
121
|
+
if (dEl.ddDroppable) { // error to call destroy if not there
|
|
122
|
+
dEl.cleanDroppable();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else if (opts === 'option') {
|
|
126
|
+
dEl.setupDroppable((_a = {}, _a[key] = value, _a));
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
dEl.setupDroppable(opts);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
return this;
|
|
133
|
+
};
|
|
134
|
+
/** true if element is droppable */
|
|
135
|
+
GridStackDDNative.prototype.isDroppable = function (el) {
|
|
136
|
+
return !!(el && el.ddElement && el.ddElement.ddDroppable && !el.ddElement.ddDroppable.disabled);
|
|
137
|
+
};
|
|
138
|
+
/** true if element is draggable */
|
|
139
|
+
GridStackDDNative.prototype.isDraggable = function (el) {
|
|
140
|
+
return !!(el && el.ddElement && el.ddElement.ddDraggable && !el.ddElement.ddDraggable.disabled);
|
|
141
|
+
};
|
|
142
|
+
/** true if element is draggable */
|
|
143
|
+
GridStackDDNative.prototype.isResizable = function (el) {
|
|
144
|
+
return !!(el && el.ddElement && el.ddElement.ddResizable && !el.ddElement.ddResizable.disabled);
|
|
145
|
+
};
|
|
146
|
+
GridStackDDNative.prototype.on = function (el, name, callback) {
|
|
147
|
+
this._getDDElements(el).forEach(function (dEl) {
|
|
148
|
+
return dEl.on(name, function (event) {
|
|
149
|
+
callback(event, dd_manager_1.DDManager.dragElement ? dd_manager_1.DDManager.dragElement.el : event.target, dd_manager_1.DDManager.dragElement ? dd_manager_1.DDManager.dragElement.helper : null);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
return this;
|
|
153
|
+
};
|
|
154
|
+
GridStackDDNative.prototype.off = function (el, name) {
|
|
155
|
+
this._getDDElements(el).forEach(function (dEl) { return dEl.off(name); });
|
|
156
|
+
return this;
|
|
157
|
+
};
|
|
158
|
+
/** @internal returns a list of DD elements, creating them on the fly by default */
|
|
159
|
+
GridStackDDNative.prototype._getDDElements = function (els, create) {
|
|
160
|
+
if (create === void 0) { create = true; }
|
|
161
|
+
var hosts = utils_1.Utils.getElements(els);
|
|
162
|
+
if (!hosts.length)
|
|
163
|
+
return [];
|
|
164
|
+
var list = hosts.map(function (e) { return e.ddElement || (create ? dd_element_1.DDElement.init(e) : null); });
|
|
165
|
+
if (!create) {
|
|
166
|
+
list.filter(function (d) { return d; });
|
|
167
|
+
} // remove nulls
|
|
168
|
+
return list;
|
|
169
|
+
};
|
|
170
|
+
return GridStackDDNative;
|
|
171
|
+
}(gridstack_dd_1.GridStackDD));
|
|
172
|
+
exports.GridStackDDNative = GridStackDDNative;
|
|
173
|
+
// finally register ourself
|
|
174
|
+
gridstack_dd_1.GridStackDD.registerPlugin(GridStackDDNative);
|
|
175
|
+
//# sourceMappingURL=gridstack-dd-native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gridstack-dd-native.js","sourceRoot":"","sources":["../../../src/h5/gridstack-dd-native.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * gridstack-dd-native.ts 4.4.0\n * Copyright (c) 2021 Alain Dumesny - see GridStack root license\n */\n\nimport { DDManager } from './dd-manager';\nimport { DDElement, DDElementHost } from './dd-element';\n\nimport { GridStackElement } from '../gridstack';\nimport { GridStackDD, DDOpts, DDKey, DDDropOpt, DDCallback, DDValue } from '../gridstack-dd';\nimport { GridItemHTMLElement, DDDragInOpt } from '../types';\nimport { Utils } from '../utils';\n\n// export our base class (what user should use) and all associated types\nexport * from '../gridstack-dd';\n\n/**\n * HTML 5 Native DragDrop based drag'n'drop plugin.\n */\nexport class GridStackDDNative extends GridStackDD {\n\n public resizable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDDNative {\n this._getDDElements(el).forEach(dEl => {\n if (opts === 'disable' || opts === 'enable') {\n dEl.ddResizable && dEl.ddResizable[opts](); // can't create DD as it requires options for setupResizable()\n } else if (opts === 'destroy') {\n dEl.ddResizable && dEl.cleanResizable();\n } else if (opts === 'option') {\n dEl.setupResizable({ [key]: value });\n } else {\n const grid = dEl.el.gridstackNode.grid;\n let handles = dEl.el.getAttribute('gs-resize-handles') ? dEl.el.getAttribute('gs-resize-handles') : grid.opts.resizable.handles;\n dEl.setupResizable({\n ...grid.opts.resizable,\n ...{ handles: handles },\n ...{\n start: opts.start,\n stop: opts.stop,\n resize: opts.resize\n }\n });\n }\n });\n return this;\n }\n\n public draggable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDDNative {\n this._getDDElements(el).forEach(dEl => {\n if (opts === 'disable' || opts === 'enable') {\n dEl.ddDraggable && dEl.ddDraggable[opts](); // can't create DD as it requires options for setupDraggable()\n } else if (opts === 'destroy') {\n dEl.ddDraggable && dEl.cleanDraggable();\n } else if (opts === 'option') {\n dEl.setupDraggable({ [key]: value });\n } else {\n const grid = dEl.el.gridstackNode.grid;\n dEl.setupDraggable({\n ...grid.opts.draggable,\n ...{\n containment: (grid.opts._isNested && !grid.opts.dragOut)\n ? grid.el.parentElement\n : (grid.opts.draggable.containment || null),\n start: opts.start,\n stop: opts.stop,\n drag: opts.drag\n }\n });\n }\n });\n return this;\n }\n\n public dragIn(el: GridStackElement, opts: DDDragInOpt): GridStackDDNative {\n this._getDDElements(el).forEach(dEl => dEl.setupDraggable(opts));\n return this;\n }\n\n public droppable(el: GridItemHTMLElement, opts: DDOpts | DDDropOpt, key?: DDKey, value?: DDValue): GridStackDDNative {\n if (typeof opts.accept === 'function' && !opts._accept) {\n opts._accept = opts.accept;\n opts.accept = (el) => opts._accept(el);\n }\n this._getDDElements(el).forEach(dEl => {\n if (opts === 'disable' || opts === 'enable') {\n dEl.ddDroppable && dEl.ddDroppable[opts]();\n } else if (opts === 'destroy') {\n if (dEl.ddDroppable) { // error to call destroy if not there\n dEl.cleanDroppable();\n }\n } else if (opts === 'option') {\n dEl.setupDroppable({ [key]: value });\n } else {\n dEl.setupDroppable(opts);\n }\n });\n return this;\n }\n\n /** true if element is droppable */\n public isDroppable(el: DDElementHost): boolean {\n return !!(el && el.ddElement && el.ddElement.ddDroppable && !el.ddElement.ddDroppable.disabled);\n }\n\n /** true if element is draggable */\n public isDraggable(el: DDElementHost): boolean {\n return !!(el && el.ddElement && el.ddElement.ddDraggable && !el.ddElement.ddDraggable.disabled);\n }\n\n /** true if element is draggable */\n public isResizable(el: DDElementHost): boolean {\n return !!(el && el.ddElement && el.ddElement.ddResizable && !el.ddElement.ddResizable.disabled);\n }\n\n public on(el: GridItemHTMLElement, name: string, callback: DDCallback): GridStackDDNative {\n this._getDDElements(el).forEach(dEl =>\n dEl.on(name, (event: Event) => {\n callback(\n event,\n DDManager.dragElement ? DDManager.dragElement.el : event.target as GridItemHTMLElement,\n DDManager.dragElement ? DDManager.dragElement.helper : null)\n })\n );\n return this;\n }\n\n public off(el: GridItemHTMLElement, name: string): GridStackDD {\n this._getDDElements(el).forEach(dEl => dEl.off(name));\n return this;\n }\n\n /** @internal returns a list of DD elements, creating them on the fly by default */\n private _getDDElements(els: GridStackElement, create = true): DDElement[] {\n let hosts = Utils.getElements(els) as DDElementHost[];\n if (!hosts.length) return [];\n let list = hosts.map(e => e.ddElement || (create ? DDElement.init(e) : null));\n if (!create) { list.filter(d => d); } // remove nulls\n return list;\n }\n}\n\n// finally register ourself\nGridStackDD.registerPlugin(GridStackDDNative);\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GridStackElement } from '../gridstack';
|
|
2
|
+
import { GridStackDD, DDOpts, DDKey, DDDropOpt, DDCallback, DDValue } from '../gridstack-dd';
|
|
3
|
+
import { GridItemHTMLElement, DDDragInOpt } from '../types';
|
|
4
|
+
import * as $ from 'jquery';
|
|
5
|
+
export { $ };
|
|
6
|
+
import 'jquery-ui';
|
|
7
|
+
import 'jquery.ui.touch-punch';
|
|
8
|
+
export * from '../gridstack-dd';
|
|
9
|
+
/**
|
|
10
|
+
* legacy Jquery-ui based drag'n'drop plugin.
|
|
11
|
+
*/
|
|
12
|
+
export declare class GridStackDDJQueryUI extends GridStackDD {
|
|
13
|
+
resizable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDD;
|
|
14
|
+
draggable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDD;
|
|
15
|
+
dragIn(el: GridStackElement, opts: DDDragInOpt): GridStackDD;
|
|
16
|
+
droppable(el: GridItemHTMLElement, opts: DDOpts | DDDropOpt, key?: DDKey, value?: DDValue): GridStackDD;
|
|
17
|
+
isDroppable(el: HTMLElement): boolean;
|
|
18
|
+
isDraggable(el: HTMLElement): boolean;
|
|
19
|
+
isResizable(el: HTMLElement): boolean;
|
|
20
|
+
on(el: GridItemHTMLElement, name: string, callback: DDCallback): GridStackDD;
|
|
21
|
+
off(el: GridItemHTMLElement, name: string): GridStackDD;
|
|
22
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
extendStatics(d, b);
|
|
11
|
+
function __() { this.constructor = d; }
|
|
12
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
var __assign = (this && this.__assign) || function () {
|
|
16
|
+
__assign = Object.assign || function(t) {
|
|
17
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
18
|
+
s = arguments[i];
|
|
19
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
20
|
+
t[p] = s[p];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
return __assign.apply(this, arguments);
|
|
25
|
+
};
|
|
26
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
29
|
+
}) : (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
o[k2] = m[k];
|
|
32
|
+
}));
|
|
33
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
34
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.GridStackDDJQueryUI = exports.$ = void 0;
|
|
38
|
+
var gridstack_dd_1 = require("../gridstack-dd");
|
|
39
|
+
// export jq symbols see
|
|
40
|
+
// https://stackoverflow.com/questions/35345760/importing-jqueryui-with-typescript-and-requirejs
|
|
41
|
+
// https://stackoverflow.com/questions/33998262/jquery-ui-and-webpack-how-to-manage-it-into-module
|
|
42
|
+
//
|
|
43
|
+
// Note: user should be able to bring their own by changing their webpack aliases like
|
|
44
|
+
// alias: {
|
|
45
|
+
// 'jquery': 'gridstack/dist/jq/jquery.js',
|
|
46
|
+
// 'jquery-ui': 'gridstack/dist/jq/jquery-ui.js',
|
|
47
|
+
// 'jquery.ui': 'gridstack/dist/jq/jquery-ui.js',
|
|
48
|
+
// 'jquery.ui.touch-punch': 'gridstack/dist/jq/jquery.ui.touch-punch.js',
|
|
49
|
+
// },
|
|
50
|
+
var $ = require("jquery"); // compile this in... having issues TS/ES6 app would include instead
|
|
51
|
+
exports.$ = $;
|
|
52
|
+
require("jquery-ui");
|
|
53
|
+
require("jquery.ui.touch-punch"); // include for touch mobile devices
|
|
54
|
+
// export our base class (what user should use) and all associated types
|
|
55
|
+
__exportStar(require("../gridstack-dd"), exports);
|
|
56
|
+
/**
|
|
57
|
+
* legacy Jquery-ui based drag'n'drop plugin.
|
|
58
|
+
*/
|
|
59
|
+
var GridStackDDJQueryUI = /** @class */ (function (_super) {
|
|
60
|
+
__extends(GridStackDDJQueryUI, _super);
|
|
61
|
+
function GridStackDDJQueryUI() {
|
|
62
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
63
|
+
}
|
|
64
|
+
GridStackDDJQueryUI.prototype.resizable = function (el, opts, key, value) {
|
|
65
|
+
var $el = $(el);
|
|
66
|
+
if (opts === 'enable') {
|
|
67
|
+
$el.resizable().resizable(opts);
|
|
68
|
+
}
|
|
69
|
+
else if (opts === 'disable' || opts === 'destroy') {
|
|
70
|
+
if ($el.data('ui-resizable')) { // error to call destroy if not there
|
|
71
|
+
$el.resizable(opts);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (opts === 'option') {
|
|
75
|
+
$el.resizable(opts, key, value);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
var grid = el.gridstackNode.grid;
|
|
79
|
+
var handles = $el.data('gs-resize-handles') ? $el.data('gs-resize-handles') : grid.opts.resizable.handles;
|
|
80
|
+
$el.resizable(__assign(__assign(__assign({}, grid.opts.resizable), { handles: handles }), {
|
|
81
|
+
start: opts.start,
|
|
82
|
+
stop: opts.stop,
|
|
83
|
+
resize: opts.resize // || function() {}
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
return this;
|
|
87
|
+
};
|
|
88
|
+
GridStackDDJQueryUI.prototype.draggable = function (el, opts, key, value) {
|
|
89
|
+
var $el = $(el);
|
|
90
|
+
if (opts === 'enable') {
|
|
91
|
+
$el.draggable().draggable('enable');
|
|
92
|
+
}
|
|
93
|
+
else if (opts === 'disable' || opts === 'destroy') {
|
|
94
|
+
if ($el.data('ui-draggable')) { // error to call destroy if not there
|
|
95
|
+
$el.draggable(opts);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (opts === 'option') {
|
|
99
|
+
$el.draggable(opts, key, value);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
var grid = el.gridstackNode.grid;
|
|
103
|
+
$el.draggable(__assign(__assign({}, grid.opts.draggable), {
|
|
104
|
+
containment: (grid.opts._isNested && !grid.opts.dragOut) ?
|
|
105
|
+
$(grid.el).parent() : (grid.opts.draggable.containment || null),
|
|
106
|
+
start: opts.start,
|
|
107
|
+
stop: opts.stop,
|
|
108
|
+
drag: opts.drag // || function() {}
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
return this;
|
|
112
|
+
};
|
|
113
|
+
GridStackDDJQueryUI.prototype.dragIn = function (el, opts) {
|
|
114
|
+
var $el = $(el); // workaround Type 'string' is not assignable to type 'PlainObject<any>' - see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/29312
|
|
115
|
+
$el.draggable(opts);
|
|
116
|
+
return this;
|
|
117
|
+
};
|
|
118
|
+
GridStackDDJQueryUI.prototype.droppable = function (el, opts, key, value) {
|
|
119
|
+
var $el = $(el);
|
|
120
|
+
if (typeof opts.accept === 'function' && !opts._accept) {
|
|
121
|
+
// convert jquery event to generic element
|
|
122
|
+
opts._accept = opts.accept;
|
|
123
|
+
opts.accept = function ($el) { return opts._accept($el.get(0)); };
|
|
124
|
+
}
|
|
125
|
+
if (opts === 'disable' || opts === 'destroy') {
|
|
126
|
+
if ($el.data('ui-droppable')) { // error to call destroy if not there
|
|
127
|
+
$el.droppable(opts);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
$el.droppable(opts, key, value);
|
|
132
|
+
}
|
|
133
|
+
return this;
|
|
134
|
+
};
|
|
135
|
+
GridStackDDJQueryUI.prototype.isDroppable = function (el) {
|
|
136
|
+
var $el = $(el);
|
|
137
|
+
return Boolean($el.data('ui-droppable'));
|
|
138
|
+
};
|
|
139
|
+
GridStackDDJQueryUI.prototype.isDraggable = function (el) {
|
|
140
|
+
var $el = $(el);
|
|
141
|
+
return Boolean($el.data('ui-draggable'));
|
|
142
|
+
};
|
|
143
|
+
GridStackDDJQueryUI.prototype.isResizable = function (el) {
|
|
144
|
+
var $el = $(el);
|
|
145
|
+
return Boolean($el.data('ui-resizable'));
|
|
146
|
+
};
|
|
147
|
+
GridStackDDJQueryUI.prototype.on = function (el, name, callback) {
|
|
148
|
+
var $el = $(el);
|
|
149
|
+
$el.on(name, function (event, ui) { return callback(event, ui.draggable ? ui.draggable[0] : event.target, ui.helper ? ui.helper[0] : null); });
|
|
150
|
+
return this;
|
|
151
|
+
};
|
|
152
|
+
GridStackDDJQueryUI.prototype.off = function (el, name) {
|
|
153
|
+
var $el = $(el);
|
|
154
|
+
$el.off(name);
|
|
155
|
+
return this;
|
|
156
|
+
};
|
|
157
|
+
return GridStackDDJQueryUI;
|
|
158
|
+
}(gridstack_dd_1.GridStackDD));
|
|
159
|
+
exports.GridStackDDJQueryUI = GridStackDDJQueryUI;
|
|
160
|
+
// finally register ourself
|
|
161
|
+
gridstack_dd_1.GridStackDD.registerPlugin(GridStackDDJQueryUI);
|
|
162
|
+
//# sourceMappingURL=gridstack-dd-jqueryui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gridstack-dd-jqueryui.js","sourceRoot":"","sources":["../../../src/jq/gridstack-dd-jqueryui.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,gDAA6F;AAG7F,wBAAwB;AACxB,gGAAgG;AAChG,kGAAkG;AAClG,EAAE;AACF,sFAAsF;AACtF,WAAW;AACX,6CAA6C;AAC7C,mDAAmD;AACnD,mDAAmD;AACnD,2EAA2E;AAC3E,KAAK;AACL,0BAA4B,CAAC,oEAAoE;AACxF,cAAC;AACV,qBAAmB;AACnB,iCAA+B,CAAC,mCAAmC;AAEnE,wEAAwE;AACxE,kDAAgC;AAEhC;;GAEG;AACH;IAAyC,uCAAW;IAApD;;IAoGA,CAAC;IAlGQ,uCAAS,GAAhB,UAAiB,EAAuB,EAAE,IAAY,EAAE,GAAW,EAAE,KAAe;QAClF,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,GAAG,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACjC;aAAM,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;YACnD,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,qCAAqC;gBACnE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;SACF;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC5B,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SACjC;aAAM;YACL,IAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YACnC,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC1G,GAAG,CAAC,SAAS,gCACR,IAAI,CAAC,IAAI,CAAC,SAAS,GACnB,EAAE,OAAO,EAAE,OAAO,EAAE,GACpB;gBACD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;aACxC,EACD,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,uCAAS,GAAhB,UAAiB,EAAuB,EAAE,IAAY,EAAE,GAAW,EAAE,KAAe;QAClF,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,GAAG,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACrC;aAAM,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;YACnD,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,qCAAqC;gBACnE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;SACF;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC5B,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SACjC;aAAM;YACL,IAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YACnC,GAAG,CAAC,SAAS,uBAAK,IAAI,CAAC,IAAI,CAAC,SAAS,GAAK;gBACxC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,IAAI,CAAC;gBACjE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB;aACpC,EAAE,CAAC;SACL;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,oCAAM,GAAb,UAAc,EAAoB,EAAE,IAAiB;QACnD,IAAI,GAAG,GAAW,CAAC,CAAC,EAAS,CAAC,CAAC,CAAC,8IAA8I;QAC9K,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,uCAAS,GAAhB,UAAiB,EAAuB,EAAE,IAAwB,EAAE,GAAW,EAAE,KAAe;QAC9F,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACtD,0CAA0C;YAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,UAAC,GAAW,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAxB,CAAwB,CAAC;SACzD;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE;YAC5C,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,qCAAqC;gBACnE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACrB;SACF;aAAM;YACL,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,yCAAW,GAAlB,UAAmB,EAAe;QAChC,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,yCAAW,GAAlB,UAAmB,EAAe;QAChC,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,yCAAW,GAAlB,UAAmB,EAAe;QAChC,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,gCAAE,GAAT,UAAU,EAAuB,EAAE,IAAY,EAAE,QAAoB;QACnE,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,UAAC,KAAK,EAAE,EAAE,IAAO,OAAO,QAAQ,CAAC,KAAY,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;QAC/I,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iCAAG,GAAV,UAAW,EAAuB,EAAE,IAAY;QAC9C,IAAI,GAAG,GAAW,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACH,0BAAC;AAAD,CAAC,AApGD,CAAyC,0BAAW,GAoGnD;AApGY,kDAAmB;AAsGhC,2BAA2B;AAC3B,0BAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC","sourcesContent":["// gridstack-dd-jqueryui.ts 4.4.0\r\n// Copyright (c) 2021 Alain Dumesny - see root license\r\nimport { GridStackElement } from '../gridstack';\r\nimport { GridStackDD, DDOpts, DDKey, DDDropOpt, DDCallback, DDValue } from '../gridstack-dd';\r\nimport { GridItemHTMLElement, DDDragInOpt } from '../types';\r\n\r\n// export jq symbols see\r\n// https://stackoverflow.com/questions/35345760/importing-jqueryui-with-typescript-and-requirejs\r\n// https://stackoverflow.com/questions/33998262/jquery-ui-and-webpack-how-to-manage-it-into-module\r\n//\r\n// Note: user should be able to bring their own by changing their webpack aliases like\r\n// alias: {\r\n// 'jquery': 'gridstack/dist/jq/jquery.js',\r\n// 'jquery-ui': 'gridstack/dist/jq/jquery-ui.js',\r\n// 'jquery.ui': 'gridstack/dist/jq/jquery-ui.js',\r\n// 'jquery.ui.touch-punch': 'gridstack/dist/jq/jquery.ui.touch-punch.js',\r\n// },\r\nimport * as $ from 'jquery'; // compile this in... having issues TS/ES6 app would include instead\r\nexport { $ };\r\nimport 'jquery-ui';\r\nimport 'jquery.ui.touch-punch'; // include for touch mobile devices\r\n\r\n// export our base class (what user should use) and all associated types\r\nexport * from '../gridstack-dd';\r\n\r\n/**\r\n * legacy Jquery-ui based drag'n'drop plugin.\r\n */\r\nexport class GridStackDDJQueryUI extends GridStackDD {\r\n\r\n public resizable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDD {\r\n let $el: JQuery = $(el);\r\n if (opts === 'enable') {\r\n $el.resizable().resizable(opts);\r\n } else if (opts === 'disable' || opts === 'destroy') {\r\n if ($el.data('ui-resizable')) { // error to call destroy if not there\r\n $el.resizable(opts);\r\n }\r\n } else if (opts === 'option') {\r\n $el.resizable(opts, key, value);\r\n } else {\r\n const grid = el.gridstackNode.grid;\r\n let handles = $el.data('gs-resize-handles') ? $el.data('gs-resize-handles') : grid.opts.resizable.handles;\r\n $el.resizable({\r\n ...grid.opts.resizable,\r\n ...{ handles: handles },\r\n ...{\r\n start: opts.start, // || function() {},\r\n stop: opts.stop, // || function() {},\r\n resize: opts.resize // || function() {}\r\n }\r\n });\r\n }\r\n return this;\r\n }\r\n\r\n public draggable(el: GridItemHTMLElement, opts: DDOpts, key?: DDKey, value?: DDValue): GridStackDD {\r\n let $el: JQuery = $(el);\r\n if (opts === 'enable') {\r\n $el.draggable().draggable('enable');\r\n } else if (opts === 'disable' || opts === 'destroy') {\r\n if ($el.data('ui-draggable')) { // error to call destroy if not there\r\n $el.draggable(opts);\r\n }\r\n } else if (opts === 'option') {\r\n $el.draggable(opts, key, value);\r\n } else {\r\n const grid = el.gridstackNode.grid;\r\n $el.draggable({...grid.opts.draggable, ...{ // was using $.extend()\r\n containment: (grid.opts._isNested && !grid.opts.dragOut) ?\r\n $(grid.el).parent() : (grid.opts.draggable.containment || null),\r\n start: opts.start, // || function() {},\r\n stop: opts.stop, // || function() {},\r\n drag: opts.drag // || function() {}\r\n }});\r\n }\r\n return this;\r\n }\r\n\r\n public dragIn(el: GridStackElement, opts: DDDragInOpt): GridStackDD {\r\n let $el: JQuery = $(el as any); // workaround Type 'string' is not assignable to type 'PlainObject<any>' - see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/29312\r\n $el.draggable(opts);\r\n return this;\r\n }\r\n\r\n public droppable(el: GridItemHTMLElement, opts: DDOpts | DDDropOpt, key?: DDKey, value?: DDValue): GridStackDD {\r\n let $el: JQuery = $(el);\r\n if (typeof opts.accept === 'function' && !opts._accept) {\r\n // convert jquery event to generic element\r\n opts._accept = opts.accept;\r\n opts.accept = ($el: JQuery) => opts._accept($el.get(0));\r\n }\r\n if (opts === 'disable' || opts === 'destroy') {\r\n if ($el.data('ui-droppable')) { // error to call destroy if not there\r\n $el.droppable(opts);\r\n }\r\n } else {\r\n $el.droppable(opts, key, value);\r\n }\r\n return this;\r\n }\r\n\r\n public isDroppable(el: HTMLElement): boolean {\r\n let $el: JQuery = $(el);\r\n return Boolean($el.data('ui-droppable'));\r\n }\r\n\r\n public isDraggable(el: HTMLElement): boolean {\r\n let $el: JQuery = $(el);\r\n return Boolean($el.data('ui-draggable'));\r\n }\r\n\r\n public isResizable(el: HTMLElement): boolean {\r\n let $el: JQuery = $(el);\r\n return Boolean($el.data('ui-resizable'));\r\n }\r\n\r\n public on(el: GridItemHTMLElement, name: string, callback: DDCallback): GridStackDD {\r\n let $el: JQuery = $(el);\r\n $el.on(name, (event, ui) => { return callback(event as any, ui.draggable ? ui.draggable[0] : event.target, ui.helper ? ui.helper[0] : null) });\r\n return this;\r\n }\r\n\r\n public off(el: GridItemHTMLElement, name: string): GridStackDD {\r\n let $el: JQuery = $(el);\r\n $el.off(name);\r\n return this;\r\n }\r\n}\r\n\r\n// finally register ourself\r\nGridStackDD.registerPlugin(GridStackDDJQueryUI);\r\n"]}
|